:root{color-scheme:dark;--bg:#070f1b;--panel:#122231;--line:#2c4152;--text:#eef4f8;--muted:#97adbc;--yellow:#f5c542;--green:#77dbad;--cyan:#6ccee5;--red:#ff9694}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{background:#030912;color:var(--text);font:14px/1.35 system-ui,-apple-system,sans-serif}button,input,select{font:inherit}button{cursor:pointer;min-height:38px;border:1px solid var(--line);border-radius:7px;color:var(--text);background:#0a1725;padding:7px 12px;font-weight:650}button:hover{border-color:var(--yellow)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}a{color:var(--yellow)}.accent{background:var(--yellow);color:#111c25;border-color:var(--yellow)}.sprites{position:absolute;width:0;height:0}.instrument{height:100dvh;display:grid;grid-template-rows:54px minmax(0,1fr) 58px;padding:var(--panel-safe-top,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left));background:radial-gradient(ellipse at 30% 0,#183a3d50,transparent 65%),var(--bg)}.topbar{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:5px 9px;min-width:0}.identity{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:.12em;font-weight:800;line-height:1.2;flex-shrink:0}.identity img{border-radius:7px}.identity b{display:block;color:var(--yellow);font-size:13px}.station-button{min-height:34px;border:0;border-left:1px solid var(--line);border-radius:0;background:transparent;text-align:left;padding:0 0 0 16px;min-width:0}.station-button>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:26vw}.station-button>span:first-child{font:bold 12px ui-monospace,monospace;color:var(--yellow)}.station-button>span:last-child{font-size:10px;color:var(--muted)}.system{margin-left:auto;display:flex;gap:14px;align-items:center;font:10px ui-monospace,monospace}.local-badge{color:var(--muted);border:1px solid var(--line);padding:4px 6px;border-radius:4px}.signal-dot{color:var(--green)}.icon-button{background:transparent;font-size:20px;min-width:34px;padding:0;border:0}.bottomnav{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);gap:4px;padding:5px 2px}.bottomnav button{border:0;background:transparent;display:flex;gap:7px;align-items:center;justify-content:center;border-radius:6px;min-width:0;font-size:10px;letter-spacing:.07em;padding:4px;color:var(--muted)}.bottomnav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}.bottomnav button[aria-current=page]{background:#f5c54216;color:var(--yellow);box-shadow:inset 0 -2px var(--yellow)}#workspace{min-width:0;min-height:0;position:relative}.screen{height:100%;display:none;overflow:auto;overscroll-behavior:contain;padding:9px 4px;scrollbar-width:thin}.screen.active{display:block}.screen.sdr-screen{padding:0}.sdr-screen iframe{border:0;width:100%;height:100%;background:var(--bg)}.screen-heading{display:flex;align-items:center;gap:10px;margin-bottom:9px;min-height:30px}.screen-heading h1,.screen-heading h2{font-size:15px;letter-spacing:-.025em;margin:0}.screen-heading>.source{margin-left:auto}.source{font-size:9px;color:var(--muted)}.source a{color:inherit}.subnav{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:9px}.subnav button{font-size:11px;min-height:34px;padding:6px 11px}.subnav button.active{background:var(--yellow);color:var(--bg);border-color:var(--yellow)}.card{border:1px solid var(--line);border-radius:11px;background:linear-gradient(125deg,#17303b80,#101e2e);padding:14px;min-width:0;overflow:hidden}.card-label{display:flex;gap:7px;align-items:center;font-size:10px;color:var(--muted);letter-spacing:.07em;text-transform:uppercase;font-weight:650;margin-bottom:10px}.card-label svg{width:16px;height:16px;fill:none;stroke:var(--yellow);stroke-width:1.4}.micro{font-size:10px;color:var(--muted);margin:7px 0 0;line-height:1.45}.quiet{color:var(--muted)}.yellow{color:var(--yellow)}.green{color:var(--green)}.cyan{color:var(--cyan)}.red{color:var(--red)}.metric{font:600 clamp(24px,3.5vw,46px)/1 ui-monospace,monospace;color:var(--yellow);letter-spacing:-.055em;white-space:nowrap}.metric small{font:11px system-ui;color:var(--muted);letter-spacing:0;margin-left:4px}.tile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.tile .metric{font-size:clamp(24px,3.4vw,44px)}.tile .card-label{font-size:9px;letter-spacing:.025em;min-height:24px;align-items:flex-start;margin-bottom:6px}.tile .micro{font-size:9px}.home-layout{height:100%;min-height:390px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(130px,1fr) auto minmax(145px,1.15fr);gap:8px}.clock-card{grid-column:span 5;display:flex;flex-direction:column;justify-content:center;position:relative}.clock-local{font:400 clamp(48px,7.6vw,102px)/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:-.08em;white-space:nowrap}.clock-local small{font-size:22px;letter-spacing:-.04em;color:var(--muted);margin-left:5px}.clock-info{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;font:11px ui-monospace,monospace}.utc-pill{color:var(--cyan);font-size:11px}.home-weather{grid-column:span 3;display:flex;flex-direction:column;justify-content:center}.home-map{grid-column:span 4;display:flex;flex-direction:column;padding:9px}.home-map .card-label{margin-bottom:0}.home-map svg{width:100%;flex:1;min-height:70px;max-height:210px}.home-tiles{grid-column:span 12;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.home-bottom{grid-column:span 5;display:flex;flex-direction:column}.home-bottom.beacon-card{grid-column:span 4}.home-bottom.action-card{grid-column:span 3}.band-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:2px}.band-strip>div{padding:8px 5px;border:1px solid var(--line);border-radius:7px;font-size:10px;background:#08111f55}.band-strip strong{display:block;margin-top:5px;font-size:12px}.card-button{width:100%;text-align:left;display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:11px;min-height:35px}.card-button span:last-child{margin-left:auto;color:var(--yellow)}.beacon-mini{display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;font:12px ui-monospace,monospace}.beacon-mini strong{color:var(--yellow);font-weight:650}.beacon-mini small{color:var(--muted);font-size:10px}.empty{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:10px;min-height:140px;padding:20px;border:1px dashed var(--line);border-radius:9px}.empty strong{font-size:15px}.empty p{max-width:65ch;color:var(--muted);font-size:12px;margin:0}.empty button{font-size:12px}.two-columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:9px}.three-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.chart{width:100%;height:170px;margin-top:12px}.chart text{font:9px system-ui;fill:var(--muted)}.chart .bar{fill:var(--cyan)}.chart .forecast{fill:var(--yellow)}.scale-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.scale-row>div{background:#08111f66;padding:12px;border:1px solid var(--line);border-radius:8px}.scale-row strong{font:600 35px ui-monospace,monospace;color:var(--cyan)}.worldmap{width:100%;height:auto;display:block;max-height:52vh}.map-caption{display:flex;gap:15px;flex-wrap:wrap;margin-top:9px;font-size:11px;color:var(--muted)}table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}th{text-align:left;color:var(--muted);font-size:10px;font-weight:600;padding:9px 8px;border-bottom:1px solid var(--line)}td{padding:9px 8px;border-bottom:1px solid #2c415266}td:first-child{font-family:ui-monospace,monospace;color:var(--yellow)}tbody tr:last-child td{border-bottom:0}.table-scroll{overflow:auto;max-height:62vh}.compact td{padding:7px 8px}.weather-now{display:flex;align-items:center;gap:18px}.weather-now svg{width:60px;height:60px;stroke:var(--cyan);fill:none;stroke-width:1}.weather-now .metric{font-size:60px}.weather-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:12px}.weather-facts small{display:block;color:var(--muted);font-size:10px}.daily{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:9px}.daily>div{border:1px solid var(--line);border-radius:8px;text-align:center;padding:11px 5px;font-size:12px;background:#08111f66}.daily strong,.daily span{display:block;margin-top:5px}.daily span{font-size:10px;color:var(--cyan)}.weather-hours{display:flex;gap:15px;overflow:auto;padding:12px 0;font-size:12px}.weather-hours>div{min-width:46px}.weather-hours strong{display:block;color:var(--yellow);margin-top:4px}.weather-hours small{color:var(--cyan)}.inline-fields{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-fields input{flex:1;min-width:100px}.inline-fields label{font-size:11px;color:var(--muted)}input,select,textarea{background:#07111f;border:1px solid #41586b;border-radius:7px;padding:9px 10px;min-height:38px;color:var(--text);min-width:0}input[type=range]{accent-color:var(--yellow);padding:0}.filter-row{display:flex;gap:8px;align-items:center;margin-bottom:9px}.filter-row input{width:100%}.morse-pad{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px;margin:12px 0}.morse-pad button{padding:5px;min-height:45px;font:600 14px ui-monospace,monospace}.morse-pad small{display:block;color:var(--yellow);font-size:10px;letter-spacing:.08em}.morse-code{min-height:50px;font:24px ui-monospace,monospace;letter-spacing:.1em;color:var(--yellow);overflow-wrap:anywhere}.tag{display:inline-block;padding:3px 6px;border:1px solid var(--line);border-radius:4px;font-size:9px;color:var(--muted)}.loading{color:var(--muted);font-size:12px;padding:20px}.notice{border-left:3px solid var(--yellow);background:#f5c5420b;padding:10px 12px;font-size:11px;color:var(--muted);margin:10px 0}.source-line{font-size:9px;color:var(--muted);margin:9px 0}.screen .source-line a{color:inherit}dialog{max-width:460px;width:calc(100% - 28px);max-height:90dvh;overflow:auto;border:1px solid #40566c;border-radius:16px;background:#101e2d;color:var(--text);padding:22px}dialog::backdrop{background:#000b;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.dialog-heading small{font-size:9px;letter-spacing:.15em;color:var(--yellow)}.dialog-heading h2{font-size:25px;margin:4px 0}.dialog-heading button{border:0;background:transparent;font-size:25px}#profile-form>label{display:block;margin-bottom:12px;font-size:12px}#profile-form input{display:block;width:100%;margin-top:5px}.optional{color:var(--muted);font-size:10px}.coordinate-row{display:flex;gap:9px;margin:12px 0}.coordinate-row label{width:50%;font-size:12px}#city-results button{display:block;text-align:left;width:100%;font-size:12px;margin-top:6px}#profile-error{font-size:11px;color:var(--red)}#toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);padding:10px 15px;background:var(--yellow);color:var(--bg);border-radius:8px;font-size:12px;max-width:90%;z-index:10;display:none}
@media(min-width:1500px){.instrument{max-width:2200px;margin:auto;grid-template-rows:64px minmax(0,1fr) 65px;padding-left:20px;padding-right:20px}.screen{padding:14px 8px}.card{padding:20px}.home-layout{gap:12px}.card-label{font-size:12px}.metric{font-size:58px}table{font-size:15px}th{font-size:12px}.micro{font-size:12px}.beacon-mini{font-size:16px}.screen-heading h1{font-size:20px}}
@media(max-width:650px) and (orientation:portrait){.instrument{grid-template-rows:54px minmax(0,1fr) 61px}.topbar{gap:8px;padding-left:2px;padding-right:2px}.identity{font-size:8px;gap:6px}.identity b{font-size:11px}.identity img{width:26px;height:26px}.station-button{padding-left:8px}.station-button>span:first-child{font-size:10px}.station-button>span:last-child{font-size:8px}.system{font-size:8px;gap:0}.local-badge{display:none}.bottomnav button{flex-direction:column;gap:4px;font-size:8px;letter-spacing:.01em}.bottomnav svg{width:19px;height:19px}.home-layout{height:auto;min-height:100%;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;gap:7px}.clock-card{grid-column:span 2;min-height:130px}.clock-local{font-size:75px}.home-weather,.home-map{grid-column:span 1;min-height:150px}.home-tiles{grid-column:span 2;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.home-tiles .tile{padding:11px}.home-tiles .metric{font-size:29px}.home-bottom,.home-bottom.beacon-card,.home-bottom.action-card{grid-column:span 2}.home-bottom{min-height:130px}.band-strip{grid-template-columns:repeat(4,1fr)}.two-columns,.three-columns{grid-template-columns:1fr}.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{font-size:35px}.card{padding:12px}.card-label{font-size:9px}.home-map svg{max-height:130px}.screen-heading{align-items:flex-start}.source{font-size:8px;max-width:45%;text-align:right}.daily{gap:4px}.daily>div{font-size:10px;padding:8px 3px}.daily span{font-size:8px}.weather-now .metric{font-size:48px}.morse-pad{grid-template-columns:repeat(6,minmax(0,1fr))}.subnav{gap:4px}.subnav button{font-size:10px;padding:6px 9px}table{font-size:11px}.table-scroll{max-height:65vh}.worldmap{max-height:40vh}.source-line{font-size:8px}}
@media(orientation:landscape) and (max-height:550px){.instrument{grid-template-rows:39px minmax(0,1fr) 44px}.topbar{gap:10px;padding-top:3px;padding-bottom:3px}.identity img{width:24px;height:24px}.identity{font-size:8px}.identity b{font-size:10px}.station-button>span:first-child{font-size:10px}.station-button>span:last-child{font-size:8px}.system{font-size:8px}.bottomnav{padding:3px 0}.bottomnav button{font-size:9px;gap:6px;min-height:34px}.bottomnav svg{width:17px;height:17px}.screen{padding:6px 3px}.home-layout{min-height:0;grid-template-rows:minmax(78px,.9fr) minmax(66px,.7fr) minmax(75px,1fr);gap:5px}.card{padding:8px}.card-label{font-size:8px;margin-bottom:5px;min-height:0}.clock-local{font-size:clamp(36px,6.6vw,66px)}.clock-local small{font-size:16px}.clock-info{font-size:9px;margin-top:5px}.utc-pill{font-size:9px}.home-map{padding:5px}.home-map svg{min-height:30px;max-height:90px}.home-tiles{gap:5px}.home-tiles .metric{font-size:25px}.metric small{font-size:8px}.home-tiles .card-label{font-size:8px;min-height:20px}.home-tiles .micro{font-size:7px;line-height:1.1}.home-weather .metric{font-size:31px}.home-weather .micro{font-size:8px;margin-top:3px}.micro{font-size:8px;margin-top:4px}.home-bottom .card-label{margin-bottom:3px}.band-strip{gap:4px}.band-strip>div{font-size:8px;padding:4px 3px}.band-strip strong{font-size:10px;margin-top:3px}.beacon-mini{font-size:10px;gap:2px 6px}.beacon-mini small{font-size:8px}.card-button{min-height:25px;font-size:9px;padding:4px 7px;margin-bottom:4px}.home-bottom.action-card .micro{display:none}.source{font-size:8px}.screen-heading{min-height:22px;margin-bottom:5px}.screen-heading h1{font-size:12px}.subnav{margin-bottom:5px}.subnav button{min-height:27px;font-size:9px;padding:4px 9px}.two-columns{gap:6px}.tile-grid{gap:5px}.tile .metric{font-size:30px}.chart{height:105px;margin-top:5px}.worldmap{max-height:47vh}.table-scroll{max-height:56vh}td{padding:6px 7px}.daily>div{padding:6px}.weather-hours{padding:8px 0}.morse-pad{gap:3px;margin:8px 0}.morse-pad button{min-height:33px;font-size:12px}.morse-code{font-size:19px;min-height:35px}}
.gap{margin-top:10px}.card-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}#sounder-select{width:100%;max-width:100%}
.home-map .card-label svg{width:14px;height:14px;flex:none;min-height:0;max-height:none}
/* Instrument body only. The approved header and its selectors stay unchanged. */
@media(orientation:landscape) and (max-height:550px){
 .home-layout{min-height:276px;grid-template-rows:minmax(90px,.9fr) minmax(70px,.65fr) minmax(106px,1fr)}
 .home-layout>.card{padding:7px}
 .home-layout .card-label{flex-shrink:0;line-height:1.2}
 .home-layout .clock-local{font-size:clamp(38px,5.4vw,60px);flex-shrink:0}
 .home-layout .clock-info{flex-shrink:0;margin-top:4px}
 .home-layout .home-weather>.metric,.home-layout .home-weather>.micro{flex-shrink:0}
 .home-tiles{min-height:0}
 .home-tiles .tile{display:grid;grid-template-rows:auto minmax(25px,1fr) auto;gap:2px;min-height:0;padding:7px}
 .home-tiles .tile .card-label{min-height:0;margin:0;line-height:1.15;font-size:8px}
 .home-tiles .tile .metric{align-self:center;line-height:1;font-size:25px}
 .home-tiles .tile .micro{margin:0;font-size:8px;line-height:1.2}
 .home-bottom{justify-content:flex-start}
 .home-bottom>.card-label{margin-bottom:4px}
 .home-bottom .band-strip{flex-shrink:0}
 .home-bottom>.micro{flex-shrink:0;line-height:1.3}
 .home-layout>.action-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto repeat(3,minmax(23px,1fr));gap:3px;align-content:stretch;justify-content:stretch}
 .home-layout>.action-card>.card-label{margin:0;min-height:10px}
 .home-layout>.action-card>.card-button{min-height:23px;height:100%;margin:0;padding:3px 7px;line-height:1.2}
}

/* Satellite instrument: list and selected pass, body only. */
.sat-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(235px,1fr);gap:12px;align-items:start}.sat-list{max-height:calc(100dvh - 230px);overflow:auto}.sat-list table{width:100%;min-width:0}.sat-list td,.sat-list th{padding:7px 6px;white-space:nowrap}.sat-list button{padding:3px 5px;min-height:30px;border:0;background:transparent;color:inherit;font-weight:700}.sat-selected{background:#f9c83e20;color:#f9c83e}.sat-selected button{color:#f9c83e}.sat-detail{padding:10px;border:1px solid #33495b;border-radius:12px;background:#091622;min-width:0}.sat-detail h2{color:#f9c83e;margin:0;font-size:25px}.sat-mode{margin:5px 0 9px;font-size:12px}.sat-radio{margin:0}.sat-radio dt{font-size:9px;color:#8fa6b5;margin-top:8px;letter-spacing:1px}.sat-radio dd{margin:3px 0;font-size:13px;line-height:1.35;overflow-wrap:anywhere}.sat-sky{display:block;width:160px;max-width:100%;margin:0 auto;color:#95b0bf}.sat-countdown{margin:8px 0 0;color:#6cd7ed;font-size:13px}.sat-route{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px;font-size:10px}.satellite-card .micro{margin:7px 0;font-size:10px;line-height:1.35}@media(max-width:600px){.sat-layout{grid-template-columns:minmax(0,1fr)}.sat-list{max-height:230px}.sat-list td,.sat-list th{padding:6px 3px;font-size:11px}.sat-detail{display:block}}

@media(orientation:landscape) and (max-height:550px){.sat-detail{position:relative;padding:8px}.sat-detail h2{font-size:22px}.sat-detail .sat-sky{position:absolute;right:5px;top:24px;width:100px}.sat-detail .sat-radio,.sat-detail .sat-mode{padding-right:100px}.sat-detail .sat-radio dd{font-size:10px;margin:2px 0}.sat-detail .sat-radio dt{font-size:8px;margin-top:5px}.sat-detail .sat-mode{font-size:10px;margin:4px 0}.sat-detail .micro{font-size:9px;margin:5px 0}.sat-detail .sat-countdown{font-size:11px}.satellite-card .source-line{margin:4px 0}.sat-list{max-height:calc(100dvh - 175px)}}
/* Fixed instrument viewport. Long content is paged, never vertically scrolled. */
.screen.fitted-screen.active{display:flex;flex-direction:column;overflow:hidden;gap:5px}.fitted-screen>.screen-heading,.fitted-screen>.subnav{flex-shrink:0;margin-bottom:0}.fit-viewport{flex:1;min-height:0;overflow:hidden;position:relative}.fit-page{display:flex;flex-direction:column;gap:7px;min-height:0}.fit-pager{display:flex;justify-content:center;align-items:center;gap:14px;flex-shrink:0;height:30px}.fit-pager button{font-size:11px;min-height:28px;padding:4px 12px}.fit-pager span{font:11px ui-monospace,monospace;color:var(--muted)}.fit-pager[hidden]{display:none}.fit-viewport .table-scroll,.fit-viewport .sat-list{overflow:visible;max-height:none}.fit-viewport .card{overflow:visible}.fit-viewport .gap{margin-top:0}.fit-viewport .home-layout{min-height:0;height:calc(100dvh - 110px)}.fit-viewport .home-layout>.card{overflow:hidden}.fit-viewport .home-layout>.home-tiles .tile{overflow:hidden}.fit-page>.home-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.fit-page>.clock-card,.fit-page>.home-weather,.fit-page>.home-map,.fit-page>.home-bottom{grid-column:auto;min-height:0}.fit-viewport .weather-hours{overflow:visible;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px}.fit-viewport .weather-hours>div{min-width:0}.fit-viewport .weather-facts{gap:8px}.fit-viewport .source-line{margin:4px 0}.fit-viewport .sat-sky{width:100px}.fit-viewport .morse-code{max-width:100%;font-size:17px;min-height:26px}.fit-page>.morse-pad{grid-template-columns:repeat(9,minmax(0,1fr))}.fit-viewport .sat-detail{position:relative}.fit-viewport .sat-detail .sat-sky{float:right;margin:0 0 5px 8px}.fit-viewport .sat-radio dd{font-size:11px}.fit-viewport .satellite-card>.sat-layout{align-items:start}.fit-viewport .tile-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.fit-viewport .tile .card-label{min-height:0}.fit-viewport .chart{height:110px;margin-top:4px}.fit-viewport .metric{font-size:30px}.fit-viewport .weather-now .metric{font-size:45px}.fit-viewport .card{padding:9px}.fit-viewport .card-label{margin-bottom:6px}.fit-viewport .worldmap{max-height:calc(100dvh - 230px)}
@media(orientation:landscape) and (max-height:550px){.fit-viewport .home-layout{height:calc(100dvh - 100px - env(safe-area-inset-top) - env(safe-area-inset-bottom));grid-template-rows:minmax(65px,.9fr) minmax(62px,.65fr) minmax(90px,1fr);gap:5px}.fit-viewport .home-layout .tile{padding:5px}.fit-viewport .home-layout .tile .metric{font-size:23px}.fit-viewport .home-layout .card-label{font-size:8px}.fit-viewport .home-layout .clock-local{font-size:45px}.fit-viewport .card{padding:7px}.fit-viewport .tile-grid{gap:5px}.fit-viewport .tile .metric{font-size:25px}.fit-viewport .chart{height:86px}.fit-viewport .card-label{margin-bottom:4px}.fit-viewport .micro{font-size:9px;line-height:1.3}.fit-viewport .sat-detail .sat-sky{position:static}.fit-viewport .sat-detail .sat-radio,.fit-viewport .sat-detail .sat-mode{padding-right:0}.fit-viewport .sat-detail .sat-radio dd{font-size:10px}.fit-viewport table{font-size:11px}.fit-viewport td,.fit-viewport th{padding:5px 6px}.fit-viewport .weather-facts{font-size:11px}.fit-viewport .daily>div{padding:7px 4px}.fit-viewport .weather-hours{padding:5px 0}.fit-viewport .scale-row>div{padding:6px}.fit-viewport .scale-row strong{font-size:24px}}
@media(max-width:650px) and (orientation:portrait){.fit-viewport .home-layout{height:auto;min-height:0}.fit-page>.home-map svg{max-height:120px}.fit-viewport .home-weather{min-height:0}.fit-viewport .tile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fit-viewport .sat-detail .sat-sky{width:110px}.fit-viewport .weather-hours{grid-template-columns:repeat(4,minmax(0,1fr))}.fit-viewport .two-columns{grid-template-columns:1fr}.fit-viewport .daily{grid-template-columns:repeat(5,minmax(0,1fr))}.fit-viewport .weather-facts{font-size:11px}.fit-viewport .home-layout .clock-card{min-height:110px}.fit-viewport .sat-list td,.fit-viewport .sat-list th{font-size:10px;padding:4px 2px}.fit-viewport .sat-list button{padding:3px;min-height:30px}}
.fit-viewport [hidden],.fit-pager [hidden]{display:none!important}.fit-pager.single-page{height:24px;justify-content:flex-end}.fit-pager.single-page:has(.fit-info[hidden]){visibility:hidden}.fit-info{margin-left:auto;color:var(--muted);font-size:9px!important;min-height:24px!important;padding:3px 7px!important}.list-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;height:27px;font:10px ui-monospace,monospace;color:var(--muted);margin-top:3px}.list-pager button{font-size:16px;min-height:26px;min-width:30px;padding:1px 8px}.fit-viewport .sat-layout{grid-template-columns:minmax(0,1.4fr) minmax(250px,1fr);gap:8px}.fit-viewport .sat-detail{padding:7px}.fit-viewport .sat-detail h2{font-size:22px}.fit-viewport .sat-detail .sat-sky{width:90px}.fit-viewport .sat-detail .sat-mode{font-size:10px;margin:3px 0}.fit-viewport .sat-detail .sat-radio dt{font-size:8px;margin-top:4px}.fit-viewport .sat-detail .sat-radio dd{font-size:10px;line-height:1.3}.fit-viewport .sat-detail .sat-route{font-size:9px}.fit-viewport .sat-detail>a.micro{display:inline-block;margin-top:5px}.fit-viewport .fit-page>.satellite-card{padding:7px}.fit-viewport .tile-grid .tile{padding:7px}.fit-viewport .tile .metric{font-size:25px}.fit-viewport .tile .micro{font-size:8px}.fit-viewport .tile .card-label{font-size:8px}.fit-viewport .home-layout{grid-template-rows:minmax(65px,.9fr) minmax(62px,.65fr) minmax(90px,1fr)}
@media(max-width:600px){.fit-viewport .sat-layout{grid-template-columns:minmax(0,1fr)}.fit-viewport .sat-detail{min-height:125px}.fit-viewport .sat-detail .sat-sky{width:100px}.fit-viewport .home-layout{grid-template-rows:auto}.fit-viewport .home-map{min-height:90px}.fit-viewport .home-weather{min-height:90px}.fit-viewport .home-layout>.home-bottom{min-height:0}}
@media(orientation:landscape) and (max-height:550px){.fit-viewport .chart{height:62px}.fit-viewport .tile .metric{font-size:23px}.fit-viewport .sat-list td,.fit-viewport .sat-list th{padding:4px}.fit-viewport .sat-detail .sat-sky{width:80px}.fit-viewport .sat-detail{padding:5px}.fit-viewport .sat-detail .sat-radio dd{font-size:9px}.fit-viewport .sat-detail .sat-countdown{font-size:10px;margin-top:4px}}
.fit-viewport .empty{min-height:0;padding:12px;gap:7px}.fit-viewport .empty p{font-size:11px}.fit-viewport .fit-page>.satellite-card{padding:3px}
@media(orientation:landscape) and (max-height:350px){.fit-viewport .sat-detail h2{font-size:18px}.fit-viewport .sat-detail .sat-sky{width:65px}.fit-viewport .sat-detail>a.micro{font-size:8px}.fit-viewport .sat-detail .sat-route{font-size:8px}.fit-viewport .sat-detail .sat-radio dd{font-size:9px}.fit-viewport .empty{padding:8px}}
.fit-viewport .fit-page>.satellite-card{padding:0!important;border:0;background:none}.fit-page[hidden]{display:none!important}#profile-dialog{padding:12px;max-height:calc(100dvh - 20px);overflow:hidden}#profile-form{display:flex;flex-direction:column;gap:6px;max-height:calc(100dvh - 46px)}#profile-form .dialog-heading{margin:0}#profile-form .dialog-heading h2{font-size:20px}#profile-form .profile-tabs{display:flex;gap:4px}#profile-form .profile-tabs button{font-size:11px;min-height:28px;padding:4px 10px}#profile-form .profile-tabs button[aria-pressed=true]{background:var(--yellow);color:var(--bg)}[data-profile-page]{min-height:0}[data-profile-page][hidden]{display:none!important}[data-profile-page]>label{display:block;font-size:11px}[data-profile-page]>button{min-height:30px;font-size:11px;padding:5px 9px;margin-top:5px}#profile-form input{min-height:30px;padding:5px 8px;margin-top:3px}#profile-form .coordinate-row{margin:6px 0}#profile-form .micro{font-size:10px;line-height:1.3}#profile-form #profile-error{margin:0}#profile-form .profile-save{min-height:30px;padding:5px 9px;font-size:12px}#city-results button{font-size:10px;min-height:29px;padding:4px 7px}#instrument-notes{overflow:hidden;padding:10px}#instrument-notes>.screen{padding:6px 0}#instrument-notes>.screen .micro{font-size:11px}#instrument-notes>button{min-height:28px;font-size:11px;padding:4px 10px}
#profile-form input{font-size:16px}.fit-viewport td,.fit-viewport th{overflow-wrap:anywhere}@media(max-width:650px){.fit-viewport table:not(.sat-list table){table-layout:fixed}}
@media(orientation:landscape) and (max-height:550px){.fit-viewport .home-layout .home-weather>.micro{line-height:1.15;margin-top:2px}.fit-viewport .home-layout{grid-template-rows:minmax(78px,.9fr) minmax(60px,.65fr) minmax(85px,1fr)}}
.fit-viewport .sat-list button{min-height:26px;padding:2px 4px}.fit-viewport .sat-list td,.fit-viewport .sat-list th{padding-top:3px;padding-bottom:3px}
.fit-viewport .morse-code{font-size:16px;line-height:1.1;margin:5px 0;letter-spacing:.04em}.morse-pages{display:flex;justify-content:flex-end;align-items:center;gap:9px;letter-spacing:0;margin-top:3px}.morse-pages button{min-height:24px;font-size:15px;padding:1px 8px}.morse-pages small{font:9px ui-monospace,monospace}
.sounder-control{display:flex;align-items:center;gap:8px;min-width:0}.sounder-control strong{flex:1;font-size:11px;overflow-wrap:anywhere}.sounder-control button,.speed-control button{min-height:28px;padding:3px 10px}.speed-control{display:flex;align-items:center;gap:7px;font-size:10px}
/* Integrated instruments: keep their context together, never split into pages. */
.fit-viewport .weather-board{display:grid;grid-template-rows:minmax(0,1.6fr) minmax(0,1fr) minmax(0,.55fr);gap:6px;min-height:0}.weather-board>.weather-current{min-height:0;gap:7px}.fit-viewport .weather-board .card{padding:7px;min-height:0}.fit-viewport .weather-board .weather-current>.card{display:flex;flex-direction:column;justify-content:space-between;gap:3px}.fit-viewport .weather-board .weather-now{gap:10px}.fit-viewport .weather-board .weather-now svg{width:42px;height:42px}.fit-viewport .weather-board .weather-now .metric{font-size:38px}.fit-viewport .weather-board .weather-now .micro{margin:3px 0 0;font-size:9px;line-height:1.2}.fit-viewport .weather-board .weather-hours{padding:3px 0 0;font-size:10px;line-height:1.2}.fit-viewport .weather-board .weather-hours strong{margin-top:3px}.fit-viewport .weather-board .weather-facts{gap:5px 10px;font-size:11px;line-height:1.2}.fit-viewport .weather-board .weather-facts small{font-size:9px}.fit-viewport .weather-board .card-label{margin:0;font-size:8px;line-height:1.2}.fit-viewport .weather-board .weather-forecast{display:flex;flex-direction:column;gap:3px}.fit-viewport .weather-board .daily{margin:0;gap:5px;flex:1;min-height:0}.fit-viewport .weather-board .daily>div{padding:4px;font-size:10px;line-height:1.2;display:grid;grid-template-columns:auto 1fr;align-content:center;gap:2px 4px}.fit-viewport .weather-board .daily strong{margin:0;text-align:right;white-space:nowrap}.fit-viewport .weather-board .daily span{grid-column:1/-1;margin:0;font-size:9px;line-height:1.2}.fit-viewport .weather-board .weather-alerts{display:flex;flex-direction:column;justify-content:center;gap:3px}.fit-viewport .weather-board .weather-alerts .micro{margin:0;font-size:9px;line-height:1.2}.fit-viewport .satellite-card{min-height:0}.fit-viewport .satellite-card>.sat-layout{height:100%;min-height:0;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:9px}.fit-viewport .satellite-card .sat-detail{min-height:0;padding:7px;align-self:start}.sat-title{display:flex;gap:8px;align-items:center}.sat-modes{display:flex;gap:3px}.sat-modes button{font-size:9px;min-height:22px;padding:2px 7px}.sat-modes button[aria-pressed=true]{color:var(--bg);background:var(--yellow)}.fit-viewport .satellite-card .sat-detail .sat-sky{position:static;float:right;width:76px;margin:0 0 3px 5px}.fit-viewport .satellite-card .sat-detail h2{font-size:22px;line-height:1.1;margin:0}.fit-viewport .satellite-card .sat-mode{font-size:10px;line-height:1.1;margin:4px 0}.fit-viewport .satellite-card .sat-radio{margin:0}.fit-viewport .satellite-card .sat-radio dt{margin-top:4px;font-size:8px;line-height:1.1}.fit-viewport .satellite-card .sat-radio dd{font-size:10px;line-height:1.2;margin:2px 0}.fit-viewport .satellite-card .live-message{font-size:9px;line-height:1.2;margin:5px 0}.fit-viewport .satellite-card .sat-countdown{font-size:10px;line-height:1.2;margin:4px 0}.fit-viewport .satellite-card .sat-route{font-size:9px;line-height:1.2}.fit-viewport .satellite-card .sat-detail>a.micro{font-size:9px;line-height:1.2;margin:4px 0 0}
@media(orientation:landscape) and (max-height:360px){.fit-viewport .weather-board{gap:4px;grid-template-rows:minmax(0,1.6fr) minmax(0,1fr) minmax(0,.6fr)}.fit-viewport .weather-board .card{padding:4px}.fit-viewport .weather-board .weather-now .metric{font-size:28px}.fit-viewport .weather-board .weather-now svg{width:30px;height:30px}.fit-viewport .weather-board .weather-hours{font-size:8px}.fit-viewport .weather-board .weather-facts{font-size:9px;gap:3px}.fit-viewport .weather-board .weather-facts small{font-size:8px}.fit-viewport .weather-board .daily>div{padding:2px;font-size:8px;gap:1px}.fit-viewport .weather-board .daily span{font-size:8px}.fit-viewport .weather-board .weather-alerts .micro{font-size:8px}.fit-viewport .weather-board .weather-now .micro{font-size:8px}.fit-viewport .satellite-card .sat-detail{padding:4px}.fit-viewport .satellite-card .sat-detail h2{font-size:18px}.fit-viewport .satellite-card .sat-detail .sat-sky{width:60px}.fit-viewport .satellite-card .sat-radio dd{font-size:9px}.fit-viewport .satellite-card .sat-mode{font-size:9px;margin:2px 0}.fit-viewport .satellite-card .live-message{font-size:8px;margin:3px 0}.fit-viewport .satellite-card .sat-radio dt{font-size:7px;margin-top:2px}.fit-viewport .satellite-card .sat-detail>a.micro{font-size:8px;margin-top:2px}.fit-viewport .satellite-card .sat-countdown,.fit-viewport .satellite-card .sat-route{font-size:8px;margin-top:2px}}
@media(orientation:portrait) and (max-width:600px){.fit-viewport .satellite-card>.sat-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.fit-viewport .satellite-card .sat-detail{align-self:end}.fit-viewport .weather-board{grid-template-rows:minmax(0,1.5fr) minmax(0,.75fr) minmax(0,.5fr)}.fit-viewport .weather-board .weather-current{grid-template-columns:1fr}.fit-viewport .weather-board .weather-current>.card{padding:7px}.fit-viewport .weather-board .weather-hours{grid-template-columns:repeat(8,minmax(0,1fr));font-size:9px}.fit-viewport .weather-board .weather-facts{grid-template-columns:repeat(3,minmax(0,1fr));font-size:10px}.fit-viewport .weather-board .daily{grid-template-columns:repeat(5,minmax(0,1fr))}.fit-viewport .weather-board .daily>div{display:flex;flex-direction:column;font-size:9px;padding:3px 2px}.fit-viewport .weather-board .daily span{font-size:8px}.fit-viewport .weather-board .daily strong{text-align:center}}
.fit-viewport .tile-grid:has(>.tile:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.fit-viewport .tile-grid:has(>.tile:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}.fit-viewport .card:has(#sounder-select) .tile .metric small{display:block;font-size:8px;line-height:1.1;margin:3px 0 0;white-space:normal}.fit-viewport .card:has(#sounder-select) .tile .metric{font-size:24px}.fit-viewport .scale-row>div{padding:6px}.fit-viewport .scale-row strong{font-size:26px}
@media(orientation:portrait) and (max-width:600px){.fit-viewport .tile-grid:has(>.tile:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(orientation:landscape) and (max-height:350px){.fit-viewport .satellite-card .sat-radio{display:grid;grid-template-columns:48px minmax(0,1fr);gap:3px 4px;clear:both}.fit-viewport .satellite-card .sat-radio dt,.fit-viewport .satellite-card .sat-radio dd{margin:0;align-self:center;line-height:1.1}.fit-viewport .satellite-card .sat-radio dd{font-size:8.5px}.fit-viewport .satellite-card .sat-detail .sat-sky{width:44px;position:absolute;right:5px;top:5px}.fit-viewport .satellite-card .sat-mode{padding-right:44px}.fit-viewport .satellite-card .live-message{margin:2px 0}.fit-viewport .satellite-card .sat-countdown{margin:2px 0}.fit-viewport .satellite-card .sat-detail{padding:3px}}
.fit-viewport .weather-board .weather-alerts{position:relative}.weather-alert-controls{position:absolute;right:4px;top:3px;display:flex;gap:5px;align-items:center;font-size:8px}.weather-alert-controls button{min-height:20px;font-size:13px;padding:0 6px}.weather-alerts:has(.weather-alert-controls) .card-label{padding-right:80px}.weather-alert-items [hidden]{display:none!important}
@media(orientation:landscape) and (max-height:550px){.fit-viewport .morse-card{padding:5px}.fit-viewport .morse-card .card-label{margin-bottom:4px;font-size:8px}.fit-viewport .morse-card .inline-fields{gap:5px}.fit-viewport .morse-card .inline-fields input:not([type=hidden]),.fit-viewport .morse-card .inline-fields button{min-height:27px;font-size:10px;padding:4px 7px}.fit-viewport .morse-card .morse-code{min-height:18px;font-size:16px;line-height:1.1;margin:4px 0}.fit-viewport .morse-card .morse-pad{margin:4px 0 0;gap:3px}.fit-viewport .morse-card .morse-pad button{min-height:26px;height:26px;font-size:11px;line-height:1;padding:2px}.fit-viewport .morse-card .morse-pad small{font-size:8px;line-height:1;margin-top:2px}.fit-viewport .morse-card .speed-control{font-size:9px;gap:5px}}
.fit-pager[hidden]{display:none!important}.provider-credit{color:inherit;text-decoration:none}.fit-viewport .two-columns:has(>.card:only-child){grid-template-columns:minmax(0,1fr)}.reading-time{font-variant-numeric:tabular-nums}
.fit-viewport .weather-board:not(:has(.weather-alerts)){grid-template-rows:minmax(0,1.7fr) minmax(0,1fr)}
@media(orientation:landscape) and (max-height:550px){.fit-viewport .home-bottom>.reading-time{margin-top:2px;line-height:1.1;font-size:8px}.fit-viewport .home-bottom>.card-label{margin-bottom:3px}}
@media(orientation:landscape) and (max-height:380px) and (min-width:700px){.fit-viewport .home-layout{grid-template-rows:minmax(78px,.9fr) minmax(60px,.65fr) minmax(100px,1fr);gap:3px}.fit-viewport .home-layout>.card{padding:5px}.fit-viewport .home-layout .clock-local{font-size:38px}.fit-viewport .home-layout>.action-card{gap:2px}}
/* Size each instrument's data area, rather than padding out short cards. */
.fit-viewport .solar-board{display:grid;grid-template-rows:minmax(66px,.32fr) minmax(0,1fr);gap:7px;min-height:0}.solar-board>.tile-grid,.solar-board>.two-columns{min-height:0}.fit-viewport .solar-board>.two-columns{margin:0;height:100%;grid-template-rows:minmax(0,1fr)}.fit-viewport .solar-board .two-columns>.card{display:flex;flex-direction:column;min-height:0}.fit-viewport .solar-board .chart{flex:1;height:100%;min-height:0;max-height:none!important;margin:0;width:100%}.fit-viewport .solar-board .tile{display:flex;flex-direction:column;justify-content:space-between;padding:7px;gap:3px}.fit-viewport .solar-board .tile .metric{font-size:clamp(24px,3.5vw,40px)}.fit-viewport .solar-board .tile .metric small{font-size:8px}.fit-viewport .solar-board .tile .micro{margin:0}.fit-viewport .solar-board .tile .card-label{margin:0}
.fit-viewport .bands-board{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:7px;min-height:0}.fit-viewport .bands-hf{display:flex;flex-direction:column;min-height:0}.fit-viewport .bands-hf table{height:100%;table-layout:fixed;font-size:clamp(12px,1.7vw,20px)}.fit-viewport .bands-hf thead{height:24px}.fit-viewport .bands-hf tbody tr{height:25%}.fit-viewport .bands-hf td{padding:4px 8px}.fit-viewport .px-tools{display:grid;grid-template-columns:minmax(110px,.65fr) minmax(0,1fr) minmax(0,1.35fr);align-items:center;gap:8px}.fit-viewport .px-tools .card-label{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:0}.fit-viewport .px-tools .card-button{margin:0;min-height:30px;height:100%;font-size:10px;padding:5px 8px}
.fit-viewport .repeater-card{display:flex;flex-direction:column;min-height:0;padding:7px}.fit-viewport .repeater-card .filter-row{flex-shrink:0;margin:0 0 6px}.fit-viewport .repeater-card input{min-height:31px;padding:5px 9px;font-size:12px}.fit-viewport .repeater-card #repeater-results{flex:1;min-height:0;display:flex;flex-direction:column}.fit-viewport .repeater-card .table-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;max-height:none;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.fit-viewport .repeater-card table{table-layout:fixed;width:100%;font-size:11px}.fit-viewport .repeater-card thead{position:sticky;top:0;background:#142534;z-index:1}.fit-viewport .repeater-card th,.fit-viewport .repeater-card td{padding:5px 6px;line-height:1.2}.fit-viewport .repeater-card th:nth-child(1){width:15%}.fit-viewport .repeater-card th:nth-child(2){width:38%}.fit-viewport .repeater-card th:nth-child(3){width:39%}.fit-viewport .repeater-card th:nth-child(4){width:8%}
.fit-viewport .weather-board:not(:has(.weather-alerts)){grid-template-rows:minmax(0,1.25fr) minmax(0,1fr)}.fit-viewport .weather-board .weather-now .metric{font-size:48px}.fit-viewport .weather-board .weather-now svg{width:52px;height:52px}.fit-viewport .weather-board .weather-now .micro{font-size:11px}.fit-viewport .weather-board .weather-hours{font-size:12px}.fit-viewport .weather-board .weather-current>.card:nth-child(2){justify-content:flex-start;gap:7px}.fit-viewport .weather-board .weather-facts{flex:1;align-content:space-between;font-size:13px}.fit-viewport .weather-board .weather-facts small{font-size:10px}.fit-viewport .weather-board .daily>div{align-content:space-between;font-size:12px;padding:6px}.fit-viewport .weather-board .daily strong{font-size:16px}.fit-viewport .weather-board .daily span{font-size:11px}
@media(orientation:landscape) and (max-height:360px){.fit-viewport .solar-board{grid-template-rows:58px minmax(0,1fr);gap:4px}.fit-viewport .solar-board .tile{padding:4px;gap:2px}.fit-viewport .solar-board .tile .metric{font-size:23px}.fit-viewport .solar-board .card{padding:5px}.fit-viewport .bands-hf table{font-size:11px}.fit-viewport .bands-hf .card-label{margin:0}.fit-viewport .bands-hf thead{height:18px}.fit-viewport .bands-hf th,.fit-viewport .bands-hf td{padding:2px 6px}.fit-viewport .px-tools{padding:4px;gap:5px}.fit-viewport .px-tools .card-button{font-size:9px;min-height:25px;padding:3px 6px}.fit-viewport .weather-board .weather-now .metric{font-size:32px}.fit-viewport .weather-board .weather-now svg{width:34px;height:34px}.fit-viewport .weather-board .weather-now .micro{font-size:9px}.fit-viewport .weather-board .weather-hours{font-size:9px}.fit-viewport .weather-board .weather-facts{font-size:10px;gap:3px}.fit-viewport .weather-board .weather-facts small{font-size:8px}.fit-viewport .weather-board .daily>div{font-size:9px;padding:3px}.fit-viewport .weather-board .daily strong{font-size:11px}.fit-viewport .weather-board .daily span{font-size:8px}}
@media(orientation:portrait) and (max-width:650px){.fit-viewport .solar-board{grid-template-rows:150px minmax(0,1fr)}.fit-viewport .solar-board>.tile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fit-viewport .solar-board>.two-columns{grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr))}.fit-viewport .px-tools{grid-template-columns:1fr 1fr}.fit-viewport .px-tools .card-label{grid-column:1/-1;flex-direction:row;align-items:center}.fit-viewport .bands-hf table{font-size:14px}.fit-viewport .weather-board .weather-hours{font-size:9px}.fit-viewport .weather-board .weather-facts{font-size:10px}.fit-viewport .weather-board .weather-facts small{font-size:8px}.fit-viewport .weather-board .daily>div{padding:3px 2px;font-size:10px}.fit-viewport .weather-board .daily strong{font-size:12px}.fit-viewport .weather-board .daily span{font-size:9px}.fit-viewport .weather-board .weather-now .metric{font-size:40px}}
/* The shell keeps the original overflow behavior. */
html,body{overflow:hidden}
.fit-viewport .repeater-card th,.fit-viewport .repeater-card td{padding:3px 6px}.fit-viewport .repeater-card input{font-size:16px;padding:4px 8px;min-height:32px}

/* The landscape notch is protected by the side insets, not a top gutter. */
@media(orientation:landscape){.instrument{padding-top:0}}
@media(orientation:landscape) and (max-height:350px){.fit-viewport .home-layout{grid-template-rows:minmax(68px,.85fr) minmax(54px,.68fr) minmax(87px,1fr);gap:3px}.fit-viewport .home-layout>.card{padding:3px}.fit-viewport .home-layout .clock-local{font-size:36px}.fit-viewport .home-layout .clock-info{font-size:8px;margin-top:2px}.fit-viewport .home-layout .utc-pill{font-size:8px}.fit-viewport .home-layout .card-label{font-size:7px;margin-bottom:2px}.fit-viewport .home-layout .home-weather .metric{font-size:28px}.fit-viewport .home-layout .home-weather .micro{font-size:7px;margin-top:2px}.fit-viewport .home-layout .tile{padding:3px}.fit-viewport .home-layout .tile .metric{font-size:22px}.fit-viewport .home-layout .tile .micro{font-size:7px}.fit-viewport .home-layout .tile .card-label{font-size:7px}.fit-viewport .home-layout>.action-card{grid-template-rows:auto repeat(3,minmax(21px,1fr));gap:2px}.fit-viewport .home-layout>.action-card>.card-label{min-height:8px}.fit-viewport .home-layout>.action-card>.card-button{min-height:21px;padding:1px 5px;font-size:8px}.fit-viewport .home-layout .band-strip>div{padding:3px;font-size:7px}.fit-viewport .home-layout .band-strip strong{font-size:9px;margin-top:2px}.fit-viewport .home-layout .reading-time{font-size:7px;margin-top:2px}.fit-viewport .home-layout .beacon-mini{font-size:9px}}
/* HF and PX share the instrument, as in the reference panel. */
.fit-viewport .bands-board{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:9px}.fit-viewport .px-tools{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:12px;padding:12px}.fit-viewport .px-tools .card-label{gap:10px}.fit-viewport .px-tools .tag{font:600 clamp(22px,4vw,42px)/1.1 ui-monospace,monospace;padding:10px 0;border:0;color:var(--cyan);white-space:nowrap}.fit-viewport .px-tools .card-button{height:auto;min-height:34px;font-size:11px}.fit-viewport .solar-board{gap:10px;grid-template-rows:minmax(66px,.32fr) minmax(0,1fr)}.fit-viewport .solar-board>.tile-grid{min-height:0}.fit-viewport .solar-board>.two-columns{min-height:0}
/* The map uses the entire body; solar times stay in a compact instrument strip. */
.fit-viewport .grayline-board{display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:6px;min-height:0}.grayline-map{min-height:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#123440}.fit-viewport .grayline-board .worldmap{display:block;width:100%;height:100%;min-height:0;max-height:none!important}.grayline-times,.grayline-twilight{display:flex;align-items:center;gap:20px;justify-content:space-between;font-variant-numeric:tabular-nums;line-height:1.15}.grayline-times{font-size:13px}.grayline-times strong{font-size:17px;color:var(--text);margin-left:4px}.grayline-times>.yellow strong{color:var(--yellow)}.grayline-twilight{font-size:10px;color:var(--muted);gap:10px}.grayline-twilight strong{color:var(--cyan);font-weight:500}
@media(orientation:landscape) and (max-height:350px){.fit-viewport .bands-board{gap:6px}.fit-viewport .px-tools{padding:6px;gap:6px}.fit-viewport .px-tools .card-label{gap:4px}.fit-viewport .px-tools .tag{font-size:24px;padding:4px 0}.fit-viewport .px-tools .card-button{min-height:28px;font-size:9px}.fit-viewport .solar-board{grid-template-rows:58px minmax(0,1fr);gap:7px}.fit-viewport .grayline-board{gap:4px}.grayline-times{font-size:10px}.grayline-times strong{font-size:13px}.grayline-twilight{font-size:8px;gap:7px}}
@media(orientation:portrait) and (max-width:650px){.fit-viewport .bands-board{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.fit-viewport .px-tools{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:8px}.fit-viewport .px-tools .card-label{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}.fit-viewport .px-tools .tag{font-size:21px;padding:0}.fit-viewport .solar-board{grid-template-rows:150px minmax(0,1fr);gap:9px}.grayline-times{gap:7px;font-size:10px}.grayline-times strong{font-size:13px}.grayline-twilight{flex-wrap:wrap;gap:6px;font-size:9px}.grayline-twilight>span:last-child{flex-basis:100%;text-align:center}}
.grayline-map{position:relative}.map-sun,.map-station{position:absolute;transform:translate(-50%,-50%);pointer-events:none}.map-sun{width:12px;height:12px;border-radius:50%;background:#ffd451;box-shadow:0 0 0 3px #ffd45125}.map-station{width:13px;height:13px}.map-station:before,.map-station:after{content:"";position:absolute;background:#8ef4bd}.map-station:before{width:13px;height:2px;top:5.5px;left:0}.map-station:after{width:2px;height:13px;top:0;left:5.5px}
@media(orientation:landscape){.fit-viewport .solar-board{grid-template-rows:minmax(76px,.32fr) minmax(0,1fr);gap:10px}}
@media(orientation:landscape) and (max-height:350px){.fit-viewport .solar-board{grid-template-rows:64px minmax(0,1fr);gap:8px}}
/* Anchor the shell independently of restored document scrolling. */
.instrument{position:fixed;top:0;left:0;right:0;height:var(--panel-viewport-height,100dvh)}
.instrument[data-viewport-orientation=landscape]{padding-top:0}
.viewport-probe{display:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
/* Selectable bands and simultaneous ionosonde measurements / path limits. */
.bands-hf td:first-child{padding:0!important}.bands-hf [data-band]{width:100%;height:100%;min-height:26px;border:0;background:transparent;text-align:left;padding:4px 8px;color:inherit;font:inherit}.band-selected{background:#f8ca4220;outline:1px solid var(--yellow);outline-offset:-1px}.band-detail-conditions{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1;align-items:center}.band-detail-conditions>div{display:flex;flex-direction:column;gap:10px}.band-detail-conditions span,.band-detail-age{color:var(--muted);font-size:12px}.band-detail-conditions strong{font-size:clamp(18px,3vw,36px)}.band-status{font:600 clamp(20px,4vw,42px)/1.2 ui-monospace,monospace;flex:1;display:flex;align-items:center}.fit-viewport .bands-hf tbody tr{height:20%}.sounder-board{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-height:0}.sounder-measurements,.sounder-paths{min-height:0;display:flex;flex-direction:column;gap:8px}.sounder-primary{flex:1;display:grid;grid-template-rows:1fr 1fr;gap:6px}.sounder-primary>div{display:flex;flex-direction:column;justify-content:center;min-height:0}.sounder-primary span{font-size:clamp(11px,1.5vw,18px);color:var(--muted)}.sounder-primary strong{font:600 clamp(24px,5vw,64px)/1.1 ui-monospace,monospace;color:var(--yellow)}.sounder-primary strong.cyan{color:var(--cyan)}.sounder-primary small{font-size:.55em}.sounder-secondary{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:clamp(10px,1.4vw,16px)}.sounder-path-list{flex:1;display:grid;grid-template-rows:repeat(6,minmax(0,1fr));min-height:0}.sounder-path-list>div{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #334654;font-size:clamp(11px,1.7vw,20px)}.sounder-path-list strong{font-size:clamp(9px,1.4vw,17px)}.sounder-control strong{min-width:0;overflow-wrap:anywhere;font-size:clamp(11px,1.5vw,18px)}
@media(orientation:landscape) and (max-height:430px){.sounder-board{gap:7px}.sounder-board .card{padding:7px}.sounder-measurements,.sounder-paths{gap:4px}.sounder-board .card-label{margin:0;font-size:10px}.sounder-primary strong{font-size:30px}.sounder-board .reading-time{font-size:9px;margin:0}.sounder-control button{min-height:24px;padding:1px 8px}.sounder-secondary{font-size:10px}.sounder-board .provider-credit{font-size:9px}}
@media(orientation:portrait){.sounder-board{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.sounder-primary{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.sounder-primary strong{font-size:30px}}
@media(orientation:landscape) and (max-height:360px){.sounder-measurements,.sounder-paths{gap:2px}.sounder-primary{gap:2px}.sounder-primary strong{font-size:23px}.sounder-primary span{font-size:10px}.sounder-control{gap:3px}.sounder-control button{min-height:20px;height:20px;font-size:13px}.sounder-control strong{font-size:10px;line-height:1.1}.sounder-board .card{padding:5px}.sounder-secondary{font-size:9px;gap:2px 8px}.sounder-path-list>div{font-size:11px}.sounder-path-list strong{font-size:9px}}

/* Fit all five rows inside the card, reserving space for the table header. */
.fit-viewport .bands-hf table{display:flex;flex-direction:column;flex:1;height:auto;min-height:0;margin:0}
.fit-viewport .bands-hf thead{display:block;flex:none;height:auto}
.fit-viewport .bands-hf tbody{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));flex:1;min-height:0}
.fit-viewport .bands-hf tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:auto;min-height:0}
.fit-viewport .bands-hf tbody tr{height:auto;cursor:pointer}
.fit-viewport .bands-hf th,.fit-viewport .bands-hf td{display:flex;align-items:center;min-width:0;min-height:0}
.fit-viewport .bands-hf td[colspan="2"]{grid-column:span 2}
.fit-viewport .bands-hf [data-band]{min-height:0;display:flex;align-items:center}
/* Five-day forecast: instrument-style icons and compact hierarchy. */
.fit-viewport .weather-board .daily>.forecast-day{display:flex;flex-direction:column;justify-content:space-between;gap:3px;padding:8px;min-width:0;background:linear-gradient(145deg,#172c3a88,#08152288)}
.fit-viewport .weather-board .daily>.forecast-today{border-color:#f8ca4270;background:linear-gradient(145deg,#f8ca4210,#08152288)}
.forecast-date,.forecast-main,.forecast-rain{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0}.forecast-date b{font-size:10px;letter-spacing:.1em;color:var(--yellow)}.forecast-date small{font-size:10px;color:var(--muted)}.forecast-icon{width:30px;height:30px;color:var(--cyan);flex-shrink:0}.forecast-clear,.forecast-sun{color:var(--yellow)}.forecast-temperatures{display:flex;align-items:baseline;gap:6px}.fit-viewport .weather-board .daily .forecast-temperatures strong{font:600 24px/1 ui-monospace,monospace;color:var(--yellow)}.forecast-temperatures small{font:14px/1 ui-monospace,monospace;color:var(--muted)}.fit-viewport .weather-board .daily .forecast-description{font-size:10px;line-height:1.15;text-align:left;color:var(--muted)}.forecast-rain{justify-content:flex-start;border-top:1px solid #66849530;padding-top:4px;color:var(--cyan);font-size:11px}.forecast-rain svg{width:9px;height:11px;fill:none;stroke:currentColor;stroke-width:1.5}.forecast-rain small{font-size:9px;color:var(--muted)}
@media(orientation:landscape) and (max-height:360px){.fit-viewport .weather-board .daily>.forecast-day{padding:4px;gap:2px}.forecast-icon{width:22px;height:22px}.fit-viewport .weather-board .daily .forecast-temperatures strong{font-size:18px}.forecast-temperatures small{font-size:11px}.forecast-date b,.forecast-date small{font-size:8px}.fit-viewport .weather-board .daily .forecast-description{font-size:8px}.forecast-rain{padding-top:2px;font-size:9px}.forecast-rain small{font-size:8px}}
@media(orientation:portrait) and (max-width:650px){.fit-viewport .weather-board .daily>.forecast-day{padding:5px 3px;gap:4px}.forecast-date,.forecast-main{flex-direction:column;gap:4px}.forecast-icon{width:25px;height:25px}.forecast-temperatures{gap:3px}.fit-viewport .weather-board .daily .forecast-temperatures strong{font-size:18px}.forecast-temperatures small{font-size:11px}.forecast-date b,.forecast-date small{font-size:9px}.fit-viewport .weather-board .daily .forecast-description{text-align:center;font-size:9px}.forecast-rain{flex-wrap:wrap;gap:3px;justify-content:center}.forecast-rain small{font-size:8px}}
@media(orientation:portrait) and (max-width:360px){.forecast-temperatures{flex-direction:column;align-items:center;gap:2px}.fit-viewport .weather-board .daily .forecast-description{font-size:8px;overflow-wrap:anywhere}.forecast-date b,.forecast-date small{font-size:8px}.fit-viewport .weather-board .daily>.forecast-day{gap:2px;padding:3px 2px}.forecast-rain small{flex-basis:100%;text-align:center}}
/* Allow the forecast row to shrink within the actual remaining safe-area height. */
.fit-viewport .weather-board .weather-forecast{min-height:0;container-type:size}
.fit-viewport .weather-board .weather-forecast>.card-label{flex-shrink:0;margin-bottom:2px}
.fit-viewport .weather-board .daily{grid-template-rows:minmax(0,1fr)}
.fit-viewport .weather-board .daily>.forecast-day{min-height:0}
@container(max-height:115px){
 .fit-viewport .weather-board .daily>.forecast-day{padding:4px 6px;gap:2px}
 .forecast-icon{width:24px;height:24px}
 .fit-viewport .weather-board .daily .forecast-temperatures strong{font-size:21px}
 .forecast-temperatures small{font-size:12px}
 .forecast-date b,.forecast-date small{font-size:9px}
 .forecast-rain{font-size:10px;padding-top:2px}
 .fit-viewport .weather-board .daily .forecast-description{font-size:9px}
}
@media(orientation:landscape) and (max-height:430px){.fit-viewport .weather-board:not(:has(.weather-alerts)){grid-template-rows:minmax(0,1fr) minmax(110px,1fr)}}
@container(max-height:95px){.fit-viewport .weather-board .daily>.forecast-day{padding:2px 4px;gap:1px}.forecast-icon{width:18px;height:18px}.fit-viewport .weather-board .daily .forecast-temperatures strong{font-size:17px}.forecast-date b,.forecast-date small{font-size:8px}.forecast-rain{font-size:9px;line-height:1;padding-top:1px}.forecast-rain small{font-size:8px}.fit-viewport .weather-board .daily .forecast-description{font-size:8px}}
/* HF overview: one shared period label, equal baselines and full card height. */
.home-band-period{margin-left:auto;font-size:.85em;color:var(--muted)}
.fit-viewport .home-bottom:has(.band-strip){display:flex;flex-direction:column;gap:4px;min-height:0}
.fit-viewport .home-bottom .band-strip{flex:1;min-height:0;margin:0;align-items:stretch;gap:5px}
.fit-viewport .home-bottom .band-strip>div{display:flex;flex-direction:column;justify-content:space-between;gap:4px;padding:8px 5px;min-height:0;min-width:0}
.home-band-name{white-space:nowrap;font-size:clamp(8px,1.15vw,16px);letter-spacing:-.025em}
.fit-viewport .home-bottom .band-strip strong{font-size:clamp(12px,1.8vw,24px);line-height:1.15;margin:0}
.fit-viewport .home-bottom:has(.band-strip)>.reading-time{margin:0;flex:none}
@media(orientation:landscape) and (max-height:350px){.fit-viewport .home-bottom:has(.band-strip){gap:2px}.fit-viewport .home-bottom .band-strip{gap:3px}.fit-viewport .home-bottom .band-strip>div{padding:4px 3px;gap:2px}.home-band-name{font-size:8px}.fit-viewport .home-bottom .band-strip strong{font-size:11px}}
[data-home-route]{cursor:pointer;touch-action:manipulation}
[data-home-route]:focus-visible{outline:2px solid var(--yellow);outline-offset:-3px}
@media(hover:hover){[data-home-route]:hover{border-color:#f5c54299}}
[data-home-route]:active{border-color:var(--yellow)}
/* Region D only: distribute its existing measurements over the available card. */
.fit-viewport .region-d-card{display:flex;flex-direction:column;min-height:0;gap:5px}
.fit-viewport .region-d-card>.metric{flex:1;display:flex;align-items:center;gap:5px;font-size:clamp(32px,6vw,76px)}
.fit-viewport .region-d-card>.reading-time{margin:0}
.fit-viewport .region-d-card>.tile-grid{grid-template-columns:repeat(2,minmax(0,1fr));flex:1;min-height:0;gap:8px;margin-top:4px}
.fit-viewport .region-d-card>.tile-grid>.tile{display:flex;flex-direction:column;justify-content:space-between;min-height:0;padding:8px}
.fit-viewport .region-d-card .tile .metric{font-size:clamp(24px,4vw,48px)}
.fit-viewport .region-d-card .tile .micro{margin:0}
@media(orientation:landscape) and (max-height:360px){.fit-viewport .region-d-card{gap:2px;padding:5px}.fit-viewport .region-d-card>.metric{font-size:32px}.fit-viewport .region-d-card>.reading-time{font-size:8px}.fit-viewport .region-d-card>.tile-grid{gap:4px;margin-top:2px}.fit-viewport .region-d-card>.tile-grid>.tile{padding:4px}.fit-viewport .region-d-card .tile .metric{font-size:23px}.fit-viewport .region-d-card .tile .card-label,.fit-viewport .region-d-card .tile .micro{font-size:8px;margin:0}}
.fit-viewport .ionosphere-layout{min-height:0}
.fit-viewport .region-d-card>.tile-grid{flex:1 1 0}
@media(orientation:landscape) and (max-height:360px){.fit-viewport .region-d-card>.metric{flex:0 0 auto;font-size:28px}.fit-viewport .region-d-card>.card-label{font-size:9px;margin-bottom:2px}.fit-viewport .region-d-card .tile .metric{font-size:20px}}
@media(orientation:portrait){.fit-viewport .ionosphere-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:7px}.fit-viewport .region-d-card>.metric{font-size:36px}.fit-viewport .region-d-card .tile .metric{font-size:27px}}
/* Requested header text adjustment and outline-only band selection. */
.station-button>span:first-child{font-size:13px}
.station-button>span:last-child{font-size:11px}
.fit-viewport .bands-hf .band-selected{background:transparent;outline:0;border-radius:8px;box-shadow:inset 0 0 0 1px var(--yellow)}
@media(orientation:landscape) and (max-height:550px){.station-button>span:first-child{font-size:11px}.station-button>span:last-child{font-size:9px}}
/* Satellite passes scroll independently; the selected trajectory fills its column. */
.fit-viewport .satellite-card>.sat-layout{align-items:stretch}
.fit-viewport .satellite-card .sat-list{min-height:0;height:100%;max-height:none;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.sat-list thead{position:sticky;top:0;background:#0b1825;z-index:1}
.sat-list tbody tr{cursor:pointer}
.fit-viewport .satellite-card .sat-detail{align-self:stretch;height:100%;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto auto auto auto;column-gap:8px;row-gap:3px;align-content:stretch}
.fit-viewport .satellite-card .sat-detail .sat-title{grid-column:1}
.fit-viewport .satellite-card .sat-detail .sat-sky{grid-column:2;grid-row:1/5;position:static;float:none;width:100%;height:100%;max-height:100%;min-height:0;align-self:center;margin:0}
.fit-viewport .satellite-card .sat-detail .sat-mode,.fit-viewport .satellite-card .sat-detail .sat-radio,.fit-viewport .satellite-card .sat-detail .sat-countdown{grid-column:1;padding-right:0}
.fit-viewport .satellite-card .sat-detail .sat-route,.fit-viewport .satellite-card .sat-detail>.reading-time,.fit-viewport .satellite-card .sat-detail>a{grid-column:1/-1}
.fit-viewport .satellite-card .sat-radio dd{overflow-wrap:anywhere}
@media(orientation:portrait){.fit-viewport .satellite-card>.sat-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(190px,.8fr)}.fit-viewport .satellite-card .sat-detail{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.fit-viewport .satellite-card .sat-radio{display:block;clear:none}.fit-viewport .satellite-card .sat-radio dd{margin:2px 0}.fit-viewport .satellite-card .sat-detail .sat-sky{width:100%;position:static}}
/* Full-height Morse console and reference ionosphere grouping. */
.fit-viewport .morse-card{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:6px;min-height:0}
.fit-viewport .morse-preview{display:flex;align-items:center;gap:14px;min-height:28px}
#morse-letter{font:600 30px/1 ui-monospace,monospace;color:var(--yellow)}
.fit-viewport .morse-code{margin:0;min-height:0;font-size:24px}
.fit-viewport .morse-pad{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:5px;min-height:0}
.fit-viewport .morse-pad button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;padding:2px;font:600 clamp(13px,2vw,25px)/1.1 ui-monospace,monospace}
.fit-viewport .morse-pad small{font-size:.65em;color:var(--yellow)}
.morse-pad button[aria-pressed=true]{background:transparent;box-shadow:inset 0 0 0 1px var(--yellow);border-color:var(--yellow)}
.morse-actions{display:flex;align-items:center;gap:6px}.morse-actions>span{font-size:10px;color:var(--muted);margin-right:auto}.morse-actions button{min-height:26px;padding:3px 12px;font-size:11px}
.iono-console{display:grid;grid-template-columns:1fr 1fr;gap:9px;min-height:0}
.iono-left,.iono-right{display:grid;gap:7px;min-height:0}.iono-left{grid-template-rows:minmax(0,.85fr) minmax(0,1.3fr) minmax(0,1fr)}.iono-right{grid-template-rows:minmax(0,.9fr) minmax(0,1.5fr)}
.fit-viewport .iono-console .card{padding:8px;min-height:0;display:flex;flex-direction:column}
.fit-viewport .iono-console .card-label{font-size:10px;margin-bottom:4px;flex:none}
.iono-scales{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;flex:1;min-height:0}
.iono-scales>div{display:flex;flex-direction:column;justify-content:space-around;min-height:0}.iono-scales strong{font:600 clamp(20px,3.5vw,40px)/1 ui-monospace,monospace;color:var(--cyan)}.iono-scales span{font-size:11px;color:var(--muted)}
.iono-space dl{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));flex:1;gap:3px;margin:0;min-height:0}.iono-space dl>div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:clamp(11px,1.7vw,20px)}.iono-space dt{color:var(--muted)}.iono-space dd{margin:0;font-weight:650;text-align:right}.iono-time{font-size:8px;color:var(--muted);margin-top:4px}.iono-forecast table{flex:1;min-height:0}.iono-forecast th,.iono-forecast td{font-size:11px;padding:3px 5px}.iono-drap>.metric{flex:1;display:flex;align-items:center;font-size:clamp(28px,5vw,55px)}.iono-drap>.reading-time{font-size:9px;margin:2px 0}.iono-reach .iono-scales strong{color:var(--muted);font-size:20px}
@media(orientation:landscape) and (max-height:360px){.fit-viewport .morse-card{gap:3px;padding:4px}.fit-viewport .morse-card .inline-fields{gap:3px}.fit-viewport .morse-card .inline-fields button,.fit-viewport .morse-card input{min-height:25px;padding:3px 6px;font-size:10px}.fit-viewport .morse-preview{min-height:22px}#morse-letter{font-size:22px}.fit-viewport .morse-code{font-size:18px}.fit-viewport .morse-pad{gap:3px}.morse-actions button{min-height:23px;padding:2px 8px;font-size:9px}.fit-viewport .iono-console{gap:5px}.iono-left,.iono-right{gap:4px}.fit-viewport .iono-console .card{padding:4px}.fit-viewport .iono-console .card-label{font-size:8px;margin-bottom:2px}.iono-scales strong{font-size:23px}.iono-scales span{font-size:8px}.iono-space dl>div{font-size:10px}.iono-forecast td,.iono-forecast th{font-size:9px;padding:1px 3px}.iono-drap>.metric{font-size:27px}.iono-drap>.reading-time{font-size:8px}.iono-time{font-size:7px;margin-top:1px}.iono-reach .iono-scales strong{font-size:15px}}
@media(orientation:portrait){.iono-console{grid-template-columns:1fr;grid-template-rows:1fr 1fr;gap:6px}.fit-viewport .morse-pad{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr))}.fit-viewport .morse-card .inline-fields{flex-wrap:wrap}.fit-viewport .morse-card .inline-fields input{flex-basis:100%;width:100%;min-width:0}.fit-viewport .morse-code{font-size:18px}.iono-scales strong{font-size:22px}.iono-scales span{font-size:9px}.fit-viewport .iono-console .card-label{font-size:9px}.iono-forecast td,.iono-forecast th{font-size:10px;padding:1px 4px}}
.fit-viewport .iono-console .iono-reach{padding:4px 7px}.fit-viewport .iono-reach .card-label{font-size:9px;line-height:1.1;margin-bottom:2px}.iono-reach .iono-scales>div{justify-content:space-between;gap:0}.iono-reach .iono-scales span{font-size:9px;line-height:1.05}.iono-reach .iono-scales strong{font-size:16px;line-height:1}
@media(orientation:landscape) and (max-height:360px){.iono-reach .iono-scales>div{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto minmax(0,1fr);gap:0 3px}.iono-reach .iono-scales span:first-child{grid-column:1;grid-row:1}.iono-reach .iono-scales span:last-child{grid-column:2;grid-row:1;font-size:7px}.iono-reach .iono-scales strong{grid-column:1/-1;grid-row:2;font-size:12px}.fit-viewport .iono-reach .card-label{font-size:8px}}
.fit-viewport .iono-left>.card:first-child{padding:5px 7px}.iono-left>.card:first-child .iono-scales strong{font-size:22px;line-height:1}.iono-left>.card:first-child .iono-scales span{font-size:9px;line-height:1}.iono-left>.card:first-child .iono-scales>div{justify-content:space-between}.fit-viewport .iono-console .iono-forecast{padding:5px 7px}.iono-forecast table{display:flex;flex-direction:column;min-height:0}.iono-forecast thead{flex:none}.iono-forecast tbody{flex:1;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));min-height:0}.iono-forecast tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-height:0}.iono-forecast td,.iono-forecast th{display:flex;align-items:center;min-height:0;padding:1px 3px;font-size:10px;line-height:1.1}
@media(orientation:landscape) and (max-height:360px){.iono-left>.card:first-child .iono-scales strong{font-size:17px}.iono-left>.card:first-child .iono-scales span{font-size:8px}.iono-forecast td,.iono-forecast th{font-size:8px;padding:0 2px}.fit-viewport .iono-console .iono-forecast,.fit-viewport .iono-left>.card:first-child{padding:3px 5px}}
.reach-period{margin-left:auto;font-size:7px;letter-spacing:0;white-space:nowrap}
.fit-viewport .iono-reach .iono-scales strong{font:650 15px/1.1 system-ui,sans-serif;margin:0}
.fit-viewport .iono-reach .iono-scales strong.green{color:var(--green)}.fit-viewport .iono-reach .iono-scales strong.yellow{color:var(--yellow)}.fit-viewport .iono-reach .iono-scales strong.red{color:var(--red)}.fit-viewport .iono-reach .iono-scales strong.quiet{color:var(--muted)}
@media(orientation:landscape) and (max-height:360px){.fit-viewport .iono-reach .iono-scales strong{font-size:11px}.reach-period{font-size:6px}.fit-viewport .iono-reach .card-label{font-size:7px}}
/* Keep D-RAP labels, metric and timestamp clear of the card outline. */
.fit-viewport .iono-console .iono-drap{display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:10px 12px;gap:5px;align-content:stretch}
.fit-viewport .iono-drap>.card-label{margin:0;line-height:1.2}
.fit-viewport .iono-drap>.metric{min-height:0;align-self:center;font-size:clamp(26px,4.4vw,48px);line-height:1;gap:5px}
.fit-viewport .iono-drap>.reading-time{margin:0;line-height:1.2;align-self:end}
.fit-viewport .iono-drap>.loading{font-size:11px;min-height:0}
@media(orientation:landscape) and (max-height:360px){.fit-viewport .iono-console .iono-drap{padding:6px 8px;gap:3px}.fit-viewport .iono-drap>.metric{font-size:26px}.fit-viewport .iono-drap>.card-label{font-size:8px}.fit-viewport .iono-drap>.reading-time{font-size:7px}}
/* Reserve distinct rows and visible separation around the D-RAP reading. */
.fit-viewport .iono-console .iono-drap{grid-template-rows:auto minmax(0,1fr) auto;row-gap:8px;padding:10px 12px}
.fit-viewport .iono-drap>.metric{font-size:clamp(24px,3.5vw,38px);line-height:1;align-self:center}
.fit-viewport .iono-drap>.reading-time{font-size:8px;line-height:1.25}
@media(orientation:landscape) and (max-height:360px){.fit-viewport .iono-console .iono-drap{padding:6px 8px;row-gap:5px}.fit-viewport .iono-drap>.metric{font-size:22px}.fit-viewport .iono-drap>.reading-time{font-size:7px}}
@media(orientation:landscape) and (max-height:360px){.fit-viewport .iono-drap>.metric{font-size:18px}.fit-viewport .iono-console .iono-drap{padding:5px 8px;row-gap:5px}}
@media(orientation:landscape) and (max-height:360px){.iono-right{grid-template-rows:minmax(70px,.9fr) minmax(0,1.5fr)}}
.install-notice{position:fixed;z-index:1000;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));margin:auto;max-width:560px;display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #f5c54280;border-radius:13px;background:#102231;box-shadow:0 8px 30px #0009}
.install-notice img{border-radius:8px;flex:none}.install-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.install-copy strong{font-size:13px}.install-copy span{font-size:11px;color:var(--muted);line-height:1.35}.install-notice button{flex:none;font-size:12px;min-height:36px;padding:6px 12px}.install-notice .install-close{font-size:23px;padding:0 3px;border:0;background:transparent;min-width:26px}
@media(max-width:380px){.install-notice{gap:7px;padding:9px}.install-notice img{width:30px;height:30px}.install-copy strong{font-size:11px}.install-notice button{font-size:11px;padding:5px 8px}}
/* Release preparation: notices occupy real space in the instrument body. */
#workspace{position:relative}.has-orientation-hint{padding-top:78px!important}#orientation-hint{position:absolute;top:4px;left:0;right:0;height:70px;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);z-index:2}#orientation-hint span{min-width:0;flex:1}#orientation-hint strong,#orientation-hint small{display:block}#orientation-hint small{font-size:11px;color:var(--muted)}#orientation-hint button{max-width:112px;font-size:11px;padding:6px}#data-freshness{position:absolute;bottom:2px;left:8px;right:8px;font-size:11px;padding:5px 8px;border-radius:6px;background:#352911;color:var(--yellow);z-index:3}#data-freshness[hidden]{display:none}.ios-install .install-copy{min-width:0}.ios-install .install-copy span{white-space:normal}.ios-install [hidden]{display:none!important}.profile-install{margin-top:12px;width:100%}
@media(orientation:portrait) and (max-height:780px){.has-orientation-hint .iono-left{grid-template-rows:minmax(58px,.85fr) minmax(0,1.3fr) minmax(0,1fr)}.has-orientation-hint .iono-left>.card:first-child .iono-scales strong{font-size:18px}.has-orientation-hint .iono-left>.card:first-child .iono-scales span{font-size:8px}.has-orientation-hint .iono-console .card-label{font-size:8px}}

#data-dialog{max-width:650px;width:calc(100% - 24px);max-height:85dvh}.data-help-content{max-height:60dvh;overflow:auto;line-height:1.5;font-size:13px}.data-help-content li{margin-bottom:10px}.data-help-content ul{padding-left:20px}

.ui-icon{display:inline-block;width:1em;height:1em;flex-shrink:0;vertical-align:-.12em;pointer-events:none}.card-button>.ui-icon:last-child{margin-left:auto;color:var(--yellow);width:14px;height:14px}
