.sat-tools { --orbit-future:var(--teal); --orbit-past:var(--accent); }
@media(max-width:420px) { .sat-tools .sat-live-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:18px; } }
.sat-tools h2 { font-size:16px; font-weight:600; margin:4px 0 0; letter-spacing:-.3px; }
.sat-section-label { color:var(--muted); font:8px var(--mono); letter-spacing:1.8px; }
.sat-control-card,.sat-map-card,.sat-sky-card,.sat-pass-card,.sat-doppler-card { background:var(--card); border:1px solid var(--border); border-radius:14px; min-width:0; }
.sat-control-card { padding:25px; margin-bottom:20px; }
.sat-main-controls { display:flex; align-items:flex-end; flex-wrap:wrap; gap:12px; margin:15px 0 20px; }
.sat-tools label { display:flex; flex-direction:column; gap:7px; color:var(--muted); font-size:11px; min-width:0; }
.sat-main-controls label { flex:1 1 260px; }.sat-main-controls select { min-width:190px; font:13px var(--mono); }
.sat-main-controls .btn { min-height:40px; }
.sat-observer-controls { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; border-top:1px solid var(--border); padding-top:18px; }
.sat-observer-controls label { flex:1 1 125px; max-width:180px; }.sat-observer-controls input,.sat-observer-controls select { width:100%; min-height:38px; }
.sat-observer-controls [data-height] { max-width:130px; }.sat-observer-controls .btn { min-height:38px; }.sat-observer-controls .text-button { min-height:38px; border:0; background:none; color:var(--accent); font-size:11px; cursor:pointer; }
.sat-observer-status { color:var(--muted); margin-top:15px; font:11px/1.8 var(--mono); }
.sat-feedback { color:var(--green); font-size:11px; line-height:1.8; margin-top:7px; }.sat-feedback.error { color:var(--orange); }
.sat-manual { font-size:11px; color:var(--muted); margin-top:12px; }.sat-manual summary { cursor:pointer; width:max-content; padding:4px 0; color:var(--accent); }.sat-manual p { margin:10px 0; }.sat-manual textarea { display:block; width:100%; margin:10px 0; }.sat-manual[open] { border-top:1px solid var(--border); padding-top:12px; margin-top:16px; }
.sat-workspace { display:grid; grid-template-columns:minmax(0,2.2fr) minmax(235px,1fr); gap:20px; margin-bottom:20px; }
.sat-panel-heading { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:24px; }.sat-panel-heading>span { color:var(--muted); font:11px var(--mono); }
.sat-panel-heading .sat-live-status { font:10px sans-serif; padding:5px 10px; border-radius:20px; color:var(--muted); background:var(--bg2); white-space:nowrap; }.sat-live-status.above { color:var(--green); background:color-mix(in srgb,var(--green) 12%,var(--card)); }
.sat-map-wrap { overflow:hidden; margin:0 20px; border:1px solid var(--border); border-radius:8px; background:var(--bg2); }
.sat-world { display:block; width:100%; height:auto; aspect-ratio:2; }.sat-world [data-land] { fill:var(--teal); opacity:.5; }.sat-graticule { fill:none; stroke:var(--border); stroke-width:.6; }
.sat-world path:not(.sat-graticule path) { fill:none; }.sat-track-past { stroke:var(--orbit-past); stroke-width:1.5; stroke-dasharray:4 3; opacity:.75; }.sat-track-future { stroke:var(--orbit-future); stroke-width:1.7; }.sat-footprint { stroke:var(--accent); stroke-width:1; opacity:.5; }
.sat-point { fill:var(--accent); stroke:var(--card); stroke-width:1; }.sat-point-halo { fill:var(--accent); opacity:.17; }.sat-observer-marker { stroke:var(--text); stroke-width:1.6; }
.sat-map-legend { display:flex; align-items:center; flex-wrap:wrap; gap:14px; padding:14px 24px; color:var(--muted); font-size:9px; }.sat-map-legend>span { display:flex; align-items:center; gap:5px; }.sat-map-legend i { width:16px; border-top:2px solid var(--accent); }.sat-map-legend .past { border-top-style:dashed; }.sat-map-legend .future { border-color:var(--teal); }.sat-map-legend .footprint { border-top-width:1px; opacity:.6; }.sat-map-legend time { margin-left:auto; font-family:var(--mono); }
.sat-live-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:20px 24px; border-top:1px solid var(--border); gap:14px; }.sat-live-metrics span { display:block; color:var(--muted); font-size:10px; margin-bottom:8px; }.sat-live-metrics strong { font:500 25px var(--mono); letter-spacing:-1px; color:var(--text); }.sat-live-metrics small { color:var(--muted); margin-left:4px; font-size:10px; }
.sat-element-status { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; border-top:1px solid var(--border); padding:12px 24px; color:var(--muted); font:9px/1.8 var(--mono); }
.sat-side { display:flex; flex-direction:column; gap:20px; }.sat-countdown-card { background:linear-gradient(120deg,var(--navy),#244452); color:#e2ecf1; border:1px solid #345260; border-radius:14px; padding:25px; }.sat-countdown-card .sat-section-label { color:#b5c8d2; letter-spacing:1px; font-size:10px; }.sat-countdown-card strong { display:block; font:500 36px var(--mono); letter-spacing:-1px; padding:16px 0 9px; color:#f0b38f; }.sat-countdown-card p { color:#b5c8d2; font-size:11px; }
.sat-sky-card { flex:1; padding-bottom:22px; text-align:center; }.sat-sky-card .sat-panel-heading { padding-bottom:0; text-align:left; }.sat-sky { display:block; max-width:235px; width:85%; margin:7px auto; }.sat-sky-grid { fill:none; stroke:var(--border); stroke-width:1; }.sat-sky-grid path { stroke-dasharray:3 3; }.sat-sky-labels { fill:var(--muted); font:9px var(--mono); text-anchor:middle; }.sat-sky-track { stroke:var(--teal); stroke-width:2; fill:none; }.sat-sky [data-sky-current] { fill:var(--accent); }.sat-sky-card p { color:var(--muted); font-size:10px; line-height:1.8; padding:0 16px; }.sat-sky-card>small { color:var(--muted); font-size:9px; display:block; margin-top:7px; }
.sat-pass-card { overflow:hidden; margin-bottom:20px; }.sat-pass-card .table-wrap { border-radius:0 0 14px 14px; }.sat-pass-card .log-table { font:10px var(--mono); min-width:760px; }.sat-pass-card .log-table td { padding:17px 18px; }.sat-pass-card .log-table tr.selected { background:var(--bg2); }.sat-pass-card .sat-peak-value { color:var(--teal); font-weight:600; }
.sat-doppler-card { padding:24px; display:grid; grid-template-columns:1fr 1.4fr; gap:24px; }.sat-doppler-card h2 { margin-top:6px; }.sat-doppler-card p { font-size:11px; color:var(--muted); line-height:1.9; margin-top:12px; max-width:360px; }.sat-frequency-controls { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.sat-frequency-results { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; grid-column:1/-1; border-top:1px solid var(--border); padding-top:20px; }.sat-frequency-results span { display:block; font-size:10px; color:var(--muted); margin-bottom:9px; }.sat-frequency-results strong { font:13px var(--mono); color:var(--text); }
.sat-source { color:var(--muted); font-size:10px; line-height:1.9; padding:18px 2px; }.sat-source p { margin-bottom:8px; }.sat-source a { color:var(--teal); text-decoration:underline; text-underline-offset:3px; }
.admin-body .sat-tools h2 { margin:4px 0 0; }.admin-body .sat-pass-card .table-wrap { min-height:0; }
@media(max-width:1100px) { .sat-workspace { grid-template-columns:1fr; }.sat-side { display:grid; grid-template-columns:.9fr 1.1fr; }.sat-countdown-card { align-self:start; }.sat-sky-card { min-width:0; }.sat-sky { max-width:200px; }.sat-frequency-results { grid-template-columns:1fr 1fr; } }
@media(max-width:700px) { .sat-control-card { padding:20px; }.sat-main-controls .sat-catalog-label { flex-basis:100%; }.sat-main-controls .btn { flex:1; }.sat-main-controls .btn-primary { flex-basis:100%; }.sat-observer-controls { gap:10px; }.sat-observer-controls label { flex-basis:120px; }.sat-observer-controls [data-height] { max-width:none; }.sat-observer-controls .btn { flex:1; }.sat-observer-controls .text-button { flex:1; }.sat-panel-heading { padding:20px; }.sat-map-wrap { margin:0 12px; }.sat-map-legend { padding:13px 16px; gap:10px; }.sat-map-legend time { width:100%; margin-left:0; }.sat-live-metrics { gap:10px; padding:17px; }.sat-live-metrics strong { font-size:20px; }.sat-live-metrics small { display:block; margin:4px 0 0; }.sat-element-status { padding:12px 17px; flex-direction:column; }.sat-side { display:flex; }.sat-countdown-card strong { font-size:34px; }.sat-sky { max-width:230px; }.sat-doppler-card { padding:20px; grid-template-columns:1fr; }.sat-frequency-controls { grid-template-columns:1fr; }.sat-frequency-results { grid-template-columns:1fr; }.sat-observer-status { overflow-wrap:anywhere; } }

/* Field guide: compact identity, clear operating notes, paired TX/RX channels. */
.sat-info-card { margin-bottom:22px; border:1px solid var(--border); border-radius:14px; background:var(--card); overflow:hidden; }
.sat-profile-heading { display:flex; gap:20px; padding:26px 28px 23px; align-items:flex-start; }
.sat-profile-monogram { display:grid; place-items:center; width:62px; height:62px; flex:none; border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border)); background:var(--soft-accent); color:var(--accent); border-radius:16px; font:18px var(--mono); letter-spacing:1px; }
.sat-tools .sat-profile-heading h2 { font-size:21px; margin:7px 0 10px; letter-spacing:-.4px; }.sat-profile-heading h2 span { font:10px var(--mono); margin-left:13px; letter-spacing:.5px; color:var(--muted); vertical-align:middle; }
.sat-profile-heading p { font-size:12px; color:var(--muted); line-height:1.9; max-width:850px; }
.sat-profile-facts { display:grid; grid-template-columns:1.5fr 1fr 1.3fr .8fr .8fr; padding:0 28px 24px; gap:20px; }.sat-profile-facts span { display:block; color:var(--muted); font-size:10px; margin-bottom:9px; }.sat-profile-facts strong { font-size:12px; font-weight:500; overflow-wrap:anywhere; line-height:1.7; }
.sat-profile-schedule { display:grid; grid-template-columns:1fr 1fr; gap:28px; background:var(--bg2); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:23px 28px; }.sat-profile-schedule>div:only-child { grid-column:1/-1; }.sat-tools h3 { font-size:12px; font-weight:600; margin:0 0 10px; }.sat-profile-schedule .sat-section-label { margin-bottom:8px; }.sat-profile-schedule p { color:var(--muted); font-size:11px; line-height:1.9; }
.sat-payloads-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:23px 28px 16px; }.sat-payloads-heading h3 { margin:0; }.sat-payloads-heading>span { color:var(--muted); font:9px var(--mono); }
.sat-payload-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:0 28px 20px; }.sat-payload { border:1px solid var(--border); border-radius:10px; padding:17px; min-width:0; }.sat-payload-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:18px; }.sat-payload-heading strong { font-size:11px; font-weight:600; line-height:1.6; overflow-wrap:anywhere; }.sat-payload-status { font-size:9px; color:var(--green); background:color-mix(in srgb,var(--green) 8%,transparent); padding:3px 6px; border-radius:4px; white-space:nowrap; }.sat-payload-status.historical { color:var(--muted); background:var(--bg2); }
.sat-payload-frequencies { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.sat-payload-frequencies span { display:block; font-size:9px; color:var(--muted); margin-bottom:8px; }.sat-payload-frequencies b { font:15px var(--mono); color:var(--text); line-height:1.7; overflow-wrap:anywhere; }.sat-payload-frequencies small { font:9px var(--mono); display:block; color:var(--muted); }.sat-payload-frequencies .sat-freq-empty { font-size:15px; }.sat-payload-footer { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:18px; padding-top:12px; border-top:1px solid var(--border); font-size:9px; color:var(--muted); }.sat-payload-footer .text-button { margin-left:auto; padding:0; font-size:10px; }.sat-payload-footer a { color:var(--teal); }
.sat-more-payloads summary { padding:0 28px 20px; cursor:pointer; color:var(--muted); font-size:11px; }.sat-info-feedback { padding:0 28px 22px; color:var(--muted); font-size:12px; }.sat-profile-sources { border-top:1px solid var(--border); padding:17px 28px; color:var(--muted); font-size:9px; line-height:1.9; }.sat-profile-sources>div { display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:7px; }.sat-profile-sources a { color:var(--teal); text-decoration:underline; text-underline-offset:3px; }.sat-frequency-feedback { grid-column:1/-1; }.sat-frequency-feedback:empty { display:none; }
@media(max-width:1100px) { .sat-profile-facts { grid-template-columns:repeat(3,minmax(0,1fr)); }.sat-payload-grid { grid-template-columns:1fr; } }
@media(max-width:700px) { .sat-profile-heading { padding:21px 20px; gap:13px; }.sat-profile-monogram { width:45px; height:45px; border-radius:12px; font-size:14px; }.sat-tools .sat-profile-heading h2 { font-size:18px; }.sat-profile-heading h2 span { display:block; margin:7px 0 0; }.sat-profile-heading p { font-size:11px; }.sat-profile-facts { padding:0 20px 20px; gap:16px; grid-template-columns:1fr 1fr; }.sat-profile-schedule { padding:20px; gap:20px; grid-template-columns:1fr; }.sat-payloads-heading { padding:20px; }.sat-payload-grid { padding:0 20px 20px; }.sat-payload { padding:14px; }.sat-payload-heading { flex-wrap:wrap; gap:8px; }.sat-payload-frequencies b { font-size:13px; }.sat-profile-sources { padding:16px 20px; }.sat-more-payloads summary { padding:0 20px 20px; } }
