/* Страница «Инструменты GNSS». Подключается <link>-ом из templates/tools.html. */
.tools-nav { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 8px; }
.tools-nav a { padding:7px 14px; border:1px solid var(--line-strong); border-radius:var(--radius-sm); background:var(--card); text-decoration:none; font-weight:500; font-size:14px; }
.tools-nav a:hover { border-color:var(--ink); }
.tsec { margin-top:48px; scroll-margin-top:calc(var(--head-h) + 24px); }
.tsub { margin:30px 0 14px; font-size:1.25rem; }
.tnote { font-size:13px; margin:8px 0; max-width:60em; }
.tcols { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; align-items:start; }
.tcard { min-width:0; padding:20px; border:1px solid var(--line); border-radius:var(--radius); background:var(--card); margin:0; }
.tcard h3 { margin:0 0 12px; font-size:1.1rem; }
.tcard-wide { margin-top:20px; }
.tunavail { margin-top:10px; color:var(--muted); }
.twarn { margin:12px 0; padding:10px 14px; border-left:3px solid var(--accent); background:var(--paper-2); font-size:14px; }

/* небесная карта и графики (SVG) */
.tsky { max-width:420px; margin:0 auto; }
.tg-sky, .tg-chart, .tg-kp { display:block; width:100%; height:auto; overflow:visible; }
.tg-ring, .tg-mask { fill:none; stroke:var(--line-strong); stroke-width:1; }
.tg-mask { stroke:var(--accent-strong); stroke-dasharray:4 4; }
.tg-axis, .tg-grid { stroke:var(--line); stroke-width:1; }
.tg-grid-v { stroke-dasharray:2 4; }
.tg-tick { fill:var(--muted); font:11px var(--font-mono); }
.tg-dir { fill:var(--ink); font:600 14px var(--font-body); }
.tg-low { opacity:.45; }
.tg-now { stroke:var(--ink); stroke-width:1; stroke-dasharray:3 3; }
.sys-gps { fill:#2563b8; } .sys-glonass { fill:#c43030; } .sys-galileo { fill:#1f8a4c; } .sys-beidou { fill:#7c4ec4; }
.tg-sky .sys-gps, .tg-sky .sys-glonass, .tg-sky .sys-galileo, .tg-sky .sys-beidou { stroke:#fff; stroke-width:1; }
.tg-line { fill:none; stroke-width:1.8; stroke-linejoin:round; stroke-linecap:round; }
.sys-gps-line { stroke:#2563b8; } .sys-glonass-line { stroke:#c43030; } .sys-galileo-line { stroke:#1f8a4c; } .sys-beidou-line { stroke:#7c4ec4; }
.tg-line-total { stroke:var(--ink); stroke-width:3; }
.tg-key { vertical-align:-2px; flex:none; }
.tg-key-line { display:inline-block; width:16px; height:3px; background:var(--ink); vertical-align:middle; margin-right:6px; }
.tlegend { display:flex; flex-wrap:wrap; gap:6px 18px; list-style:none; margin:10px 0 0; padding:0; font-size:14px; }
.tlegend li { display:inline-flex; align-items:center; gap:6px; }

/* таблицы */
.ttable-wrap { overflow-x:auto; margin:14px 0; }
.ttable { width:100%; border-collapse:collapse; font-size:14px; }
.ttable th, .ttable td { padding:8px 8px; border-bottom:1px solid var(--line); text-align:left; font-weight:400; }
.ttable thead th { font-size:12px; color:var(--muted); font-weight:600; letter-spacing:.03em; }
.ttable tbody th, .ttable tfoot th { font-weight:600; white-space:nowrap; }
.ttable .num { text-align:right; }
.ttable .big { font-size:1.25rem; font-weight:600; color:var(--ink); }
.ttable tfoot th, .ttable tfoot td { border-top:2px solid var(--ink); border-bottom:0; }
.ttable-pts td, .ttable-pts th { white-space:nowrap; }

/* Kp */
.tkp-head { display:flex; flex-wrap:wrap; gap:12px 28px; align-items:center; margin-bottom:12px; }
.tkp-val { font-size:2.4rem; line-height:1; margin-left:8px; font-weight:600; }
.tkp-text { max-width:44em; font-size:15px; }
.tkp-chart { max-width:520px; }
.kp-calm { color:#1f7a45; } .kp-unsettled { color:#9a6200; } .kp-storm { color:#b3261e; }
rect.kp-bar { stroke:none; } rect.kp-calm { fill:#3b9d68; } rect.kp-unsettled { fill:#e0a020; } rect.kp-storm { fill:#c43030; }
rect.kp-last { stroke:var(--ink); stroke-width:2; }

/* формы */
.tform { display:grid; gap:12px; align-content:start; }
.tform label { display:grid; gap:5px; font-size:13px; color:var(--muted); }
.tform input[type=text], .tform textarea { width:100%; padding:10px 12px; font:16px var(--font-mono); color:var(--text); background:#fff; border:1px solid var(--line-strong); border-radius:var(--radius-sm); }
.tform textarea { resize:vertical; min-height:130px; }
.tform .btn { justify-self:start; }
.tform-wide { margin-top:14px; }
.tradio { display:flex; flex-wrap:wrap; gap:8px 22px; margin:0; padding:0; border:0; }
.tradio legend { padding:0; margin-bottom:6px; font-size:13px; color:var(--muted); }
.tradio label { display:inline-flex; align-items:center; gap:8px; color:var(--text); font-size:15px; }
.tresult:not(:empty) { margin-top:20px; }
.tres { padding:20px; border:1px solid var(--ink); border-radius:var(--radius); background:var(--card); }
.tres-h { margin:0 0 10px; font-size:1.1rem; }
.kv { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:6px 24px; margin:0 0 6px; }
.kv dt { color:var(--muted); font-size:14px; } .kv dd { margin:0; word-break:break-word; }

/* карта: кнопка видна только с JS (без JS карту не показать) */
.tools-map-btn { display:none; margin-top:12px; }
.js .tools-map-btn { display:inline-flex; }
.tmap { height:380px; margin-top:14px; border:1px solid var(--line-strong); background:var(--paper-2); }
.tmap[hidden] { display:none; }
.js .tmap-note { display:block; } .tmap-note { display:none; }
.tmap .leaflet-container { font:13px var(--font-body); }

@media (max-width:760px) {
  .tcols { grid-template-columns:minmax(0,1fr); }
  .tsec { margin-top:36px; }
  .tcard, .tres { padding:16px; }
  .kv { grid-template-columns:minmax(0,1fr); gap:0; } .kv dd { margin-bottom:10px; }
  .tmap { height:300px; }
  .ttable { font-size:13px; } .ttable th, .ttable td { padding:7px 5px; }
}
