:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e5edf4;background:#081420;font-synthesis:none}*{box-sizing:border-box}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}body{margin:0;min-height:100vh}#app{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr)}.sidebar{background:#0b1a2a;border-right:1px solid #1c3548;padding:27px 14px 18px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:4px 12px 38px;letter-spacing:.12em}.brandmark{display:grid;place-items:center;width:39px;height:39px;border:1px solid #49d8c7;color:#49d8c7;border-radius:12px;font-size:25px}.brand strong{display:block;font-size:16px;letter-spacing:.14em}.brand small{display:block;font-size:8px;color:#7596a7;margin-top:5px;letter-spacing:.15em}.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;color:#6f94a8}.side-label{padding:0 13px;margin-bottom:11px}.side-section{margin-bottom:28px}.side-item{border:0;background:transparent;width:100%;text-align:left;color:#9eb3c2;padding:12px 13px;display:flex;align-items:center;gap:13px;border-radius:10px;font-size:13px}.side-item:hover,.side-item.active{background:#173044;color:#f3f8fa}.side-item.active{box-shadow:inset 3px 0 #55d8c4}.side-item span:first-child{font-size:19px;width:20px;text-align:center;color:#7da2b1}.side-item b{font-size:10px;margin-left:auto;color:#7eb6b4}.side-title{display:flex;align-items:center;justify-content:space-between;padding:0 8px 8px 13px}.icon-btn{background:transparent;border:0;color:#9ab4c2;font-size:21px;line-height:1;border-radius:8px;padding:4px 8px}.icon-btn:hover{background:#234052;color:white}.folder-row{display:flex;align-items:center}.folder-row .side-item{flex:1;min-width:0;padding-right:2px}.folder-row .side-item .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.folder-row .folder-more{font-size:17px;opacity:.65}.sidebar-bottom{margin-top:auto}.connection{display:flex;align-items:center;gap:9px;color:#8da6b4;font-size:12px;padding:12px}.connection i{width:7px;height:7px;border-radius:50%;background:#f2ae62}.connection.online i{background:#5ad6aa}.connection.offline i{background:#fa756f}.side-tip{font-size:10px;line-height:1.55;color:#607f91;padding:0 12px 18px}.workspace{min-width:0}.topbar{height:70px;border-bottom:1px solid #1b3446;display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:#091724}.crumb{color:#7697a9;letter-spacing:.13em;font-size:10px;font-weight:800}.crumb span{padding:0 9px;color:#4b7187}.crumb strong{color:#d4e3ea}.top-actions{display:flex;align-items:center;gap:15px}.update-status{font-size:11px;color:#81a0af}.refresh-btn,.button{border:1px solid #386077;background:#173448;color:#dff8f6;padding:9px 15px;border-radius:9px;font-size:12px;font-weight:700}.refresh-btn:hover,.button:hover{border-color:#55d8c4}.button.primary{background:#44c8b5;color:#06252c;border-color:#44c8b5}.button.ghost{background:transparent;color:#b4c8d2;border-color:#2b485b}.mobile-brand{display:none}main{padding:32px 38px 60px;max-width:1560px;margin:0 auto}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:23px}.hero h1{margin:6px 0 9px;font-size:clamp(26px,3vw,38px);line-height:1.1;letter-spacing:-.04em}.hero p{margin:0;color:#91abb8;font-size:13px;line-height:1.5}.hero-actions{display:flex;gap:8px;flex-wrap:wrap}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:23px}.summary-card{background:#102437;border:1px solid #244057;border-radius:13px;padding:17px 19px;min-height:103px;position:relative;overflow:hidden}.summary-card:after{content:"";position:absolute;top:0;right:0;width:55px;height:55px;border-radius:50%;background:#245e5a;filter:blur(38px);opacity:.25}.summary-card .label{font-size:10px;letter-spacing:.13em;color:#89a8b7;font-weight:800}.summary-card .number{font-size:27px;font-weight:750;margin-top:15px;line-height:1}.summary-card .sub{font-size:10px;color:#6e90a2;margin-top:7px}.summary-card.warn .number{color:#efba73}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:21px 0 12px}.section-heading h2{font-size:15px;margin:0;letter-spacing:-.01em}.search{width:240px;max-width:100%;border:1px solid #2a485b;background:#0c2030;color:#e8f4f6;border-radius:9px;padding:10px 12px;font-size:12px;outline:0}.search:focus,input:focus,select:focus{border-color:#55d8c4}.station-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}.station-card{border:1px solid #284358;background:#102538;border-radius:13px;padding:17px;text-align:left;color:inherit;min-height:165px;position:relative;transition:transform .15s,border-color .15s}.station-card:hover{transform:translateY(-2px);border-color:#63c8bf}.station-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.station-code{font-size:22px;font-weight:780;letter-spacing:.03em}.station-name{color:#92aab9;font-size:11px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:185px}.badge{font-size:10px;letter-spacing:.08em;padding:5px 7px;border-radius:5px;border:1px solid #377267;background:#173b3d;color:#88e0bf;font-weight:800;white-space:nowrap}.badge.MVFR{background:#243a54;border-color:#436aa0;color:#a7c9fc}.badge.IFR{background:#443743;border-color:#926179;color:#ffb5c3}.badge.LIFR{background:#4e344f;border-color:#865a9d;color:#e1b5fa}.badge.unknown{background:#243744;color:#95aebb;border-color:#365063}.metrics{display:flex;gap:0;margin-top:19px}.metric{flex:1;min-width:0}.metric+.metric{border-left:1px solid #294454;padding-left:11px}.metric small{display:block;color:#718fa1;font-size:9px;letter-spacing:.11em;margin-bottom:6px}.metric strong{font-size:13px;font-weight:700;white-space:nowrap}.station-foot{display:flex;justify-content:space-between;gap:8px;color:#7093a5;font-size:10px;margin-top:17px}.stale{color:#efb36c!important}.empty{border:1px dashed #345367;border-radius:13px;padding:28px;color:#8ba8b8;line-height:1.6}.detail-shell{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px}.panel{background:#102538;border:1px solid #29485b;border-radius:14px;padding:20px;margin-bottom:16px}.panel h2{font-size:14px;margin:0 0 15px}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.detail-code{font-size:40px;line-height:1;font-weight:790;letter-spacing:.02em}.detail-name{color:#a1b8c4;font-size:13px;margin:8px 0 18px}.data-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.data-tile{border:1px solid #2b495b;border-radius:10px;padding:12px;background:#0d2031}.data-tile small{display:block;font-size:10px;color:#7798a8;margin-bottom:10px}.data-tile strong{font-size:19px}.raw{background:#091a29;color:#c3dfdf;padding:17px;border-radius:9px;white-space:pre-wrap;word-break:break-word;line-height:1.65;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.muted{color:#91aab8;font-size:12px;line-height:1.6}.forecast-row{border-top:1px solid #294457;padding:12px 0;font-size:12px;display:grid;grid-template-columns:120px 1fr;gap:10px}.forecast-row strong{color:#65d4c1}.actions-row{display:flex;gap:7px;flex-wrap:wrap}.pill{background:#183549;color:#a6c4d0;border:1px solid #365668;border-radius:20px;padding:7px 10px;font-size:11px}.pill.active{background:#23544f;color:#bdf4e8;border-color:#5bc4aa}.field{display:flex;flex-direction:column;gap:7px;margin:12px 0;color:#a3bac7;font-size:12px}.field input:not([type=checkbox]),.field select{width:100%;border:1px solid #33566a;background:#0a1c2a;color:#e2eef1;padding:10px 11px;border-radius:8px;outline:0}.field-inline{display:flex;gap:10px;align-items:center}.field-inline input[type=checkbox]{width:auto}.map-panel{position:relative;overflow:hidden;aspect-ratio:1.9;background:radial-gradient(circle at 45% 42%,#1e4253,#102637 70%);border:1px solid #2d5263;border-radius:16px}.map-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px);background-size:16.666% 25%}.map-marker{position:absolute;transform:translate(-50%,-50%);border:1px solid #b4fcdf;color:#05252a;background:#58d6b9;border-radius:50%;width:22px;height:22px;box-shadow:0 0 0 6px #5ed6b521;z-index:2}.map-marker span{position:absolute;color:#daedee;background:#102637;padding:3px 6px;top:23px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:10px;border-radius:4px}.map-label{position:absolute;color:#53798c;font-size:10px}.map-empty{position:absolute;inset:0;display:grid;place-items:center;color:#9fb7c4}.route-list{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.route-stop{border:1px solid #47717a;background:#173d48;color:#d6f3ef;border-radius:9px;padding:10px 12px;font-size:12px}.route-arrow{color:#6a98a5;align-self:center}.notice{border-left:3px solid #e9aa69;background:#302b2b;color:#eacdb0;padding:11px 13px;border-radius:3px 8px 8px 3px;font-size:11px;line-height:1.5;margin-bottom:14px}.info{border-color:#56c9b7;background:#16363d;color:#a8ded8}.listline{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #29495c;padding:13px 0;gap:12px;font-size:12px}.listline:first-child{border-top:0}.listline small{display:block;color:#7597a7;margin-top:4px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}dialog{border:1px solid #406275;border-radius:14px;background:#10283a;color:#eaf3f5;width:min(420px,calc(100vw - 24px));padding:22px;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;overflow-x:hidden;box-shadow:0 24px 70px #0009}dialog::backdrop{background:#030c14b8}dialog h2{margin:0 0 10px;font-size:21px}dialog p{color:#9db8c4;font-size:12px;line-height:1.55}dialog .actions-row{justify-content:flex-end;margin-top:18px}#toast{position:fixed;bottom:20px;right:20px;background:#244e53;color:#e7faf6;border:1px solid #56bfae;border-radius:9px;padding:11px 15px;font-size:12px;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}.footer-note{font-size:11px;color:#658595;margin-top:23px;line-height:1.5}.mobile-nav{display:none}.tag-list{display:flex;gap:7px;flex-wrap:wrap}.toggle-row{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:8px;color:#b5cad2;font-size:13px;line-height:1.45;min-width:0;max-width:100%;padding:5px 0;cursor:pointer}.toggle-row input[type=checkbox]{appearance:auto;width:18px;height:18px;min-width:18px;margin:1px 0 0;padding:0;accent-color:#44c8b5;cursor:pointer}.group-option-name{min-width:0;overflow-wrap:anywhere}.table-wrap{overflow-x:auto}.wx-table{width:100%;border-collapse:collapse;font-size:12px}.wx-table th{text-align:left;color:#7e9eae;font-size:10px;letter-spacing:.09em}.wx-table th,.wx-table td{padding:12px 10px;border-bottom:1px solid #294658}.wx-table tr{cursor:pointer}.wx-table tr:hover{background:#1b394b}.warn-text{color:#eeb476}.good-text{color:#78d5b8}
@media(max-width:1050px){#app{grid-template-columns:204px minmax(0,1fr)}.sidebar{padding-left:8px;padding-right:8px}main{padding:25px}.topbar{padding:0 25px}.detail-shell{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){#app{display:block}.sidebar{position:static;height:auto;min-height:0;padding:0;background:#091724}.sidebar .brand,.sidebar .side-section,.sidebar-bottom{display:none}.workspace{min-height:100vh}.topbar{height:63px;padding:0 17px}.mobile-brand{display:block;white-space:nowrap;font-size:13px;font-weight:850;letter-spacing:.1em;color:#6ad7c4}.crumb{display:none}.top-actions{gap:8px}.update-status{display:none}.refresh-btn{padding:7px 10px}.refresh-btn span{display:none}main{padding:22px 16px 95px}.hero{align-items:flex-start;flex-direction:column}.hero h1{font-size:29px}.summary-grid{gap:8px}.summary-card{padding:13px;min-height:85px}.summary-card .number{font-size:23px;margin-top:12px}.station-grid{grid-template-columns:1fr}.station-card{min-height:148px}.data-grid{grid-template-columns:repeat(2,1fr)}.settings-grid{grid-template-columns:1fr}.map-panel{aspect-ratio:.95}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:12;background:#0b1d2d;border-top:1px solid #315064;padding:6px 6px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}.mobile-nav button{border:0;background:transparent;color:#819fae;padding:7px 9px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;min-width:62px}.mobile-nav button.active{color:#62dbc4}.mobile-nav button span{font-size:18px}#toast{bottom:85px;left:15px;right:15px}.forecast-row{grid-template-columns:1fr;gap:3px}}

@media print{body,#app{background:#fff;color:#111}#app{display:block}.sidebar,.topbar,.hero-actions,.mobile-nav,.footer-note,button{display:none!important}main{padding:0}.panel,.notice{background:#fff;color:#111;border-color:#999}.raw{background:#fff;color:#111;border:1px solid #bbb}.muted,.listline small{color:#333}.wx-table th,.wx-table td{color:#111;border-color:#bbb}}

/* Flight categories: one palette across the station list, detail, map and route. */
.flight-VFR,.badge.VFR{--flight-color:#00ff80;--flight-bg:#064b2a;--flight-glow:#00ff8040}
.flight-MVFR,.badge.MVFR{--flight-color:#38aaff;--flight-bg:#073f72;--flight-glow:#38aaff40}
.flight-IFR,.badge.IFR{--flight-color:#ff4d61;--flight-bg:#641a2b;--flight-glow:#ff4d6140}
.flight-LIFR,.badge.LIFR{--flight-color:#ff4ff3;--flight-bg:#581764;--flight-glow:#ff4ff340}
.flight-unknown,.badge.unknown{--flight-color:#a3b2be;--flight-bg:#263541}
.category-name{color:var(--flight-color,#a3b2be)}
.badge.VFR,.badge.MVFR,.badge.IFR,.badge.LIFR,.badge.unknown{display:inline-flex;align-items:center;gap:6px;color:var(--flight-color);background:var(--flight-bg);border-color:var(--flight-color);font-size:11px;padding:6px 8px;vertical-align:middle}
.badge:before{content:"";width:7px;height:7px;flex:none;border-radius:50%;background:currentColor}
.station-card{border-left:6px solid var(--flight-color,#a3b2be);background:linear-gradient(110deg,var(--flight-bg,#263541),#102538 85%)}
.station-card:hover,.station-card:focus-visible{border-color:var(--flight-color,#a3b2be)}
.station-card .station-code{color:var(--flight-color,#a3b2be)}
.weather-panel{border-top:3px solid var(--flight-color,#a3b2be)}
.flight-legend{background:#0d2030;border:1px solid #29485b;border-radius:10px;padding:12px 14px;margin:0 0 18px;font-size:11px}
.legend-items{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap}
.legend-label{font-size:9px;letter-spacing:.1em;color:#91aab8;font-weight:750}
.legend-item,.legend-age{display:inline-flex;align-items:center;gap:6px;color:#d1dfe8;white-space:nowrap;font-weight:650}
.legend-item i{background:var(--flight-color);width:11px;height:11px;border-radius:50%;flex:none}
.legend-age{color:#ffdb00;font-weight:500}.legend-age i{width:9px;height:9px;border:2px solid currentColor;border-radius:50%}
.legend-details{margin-top:10px;color:#91aab8}.legend-details summary{cursor:pointer;width:fit-content;padding:3px 0;color:#a9c6d7}.legend-details summary:focus-visible{outline:2px solid #70b2ff;outline-offset:3px}
.legend-explanation{max-width:700px;font-size:12px;line-height:1.6}.legend-explanation p{margin:10px 0}.category-table{width:100%;border-collapse:collapse;font-size:12px}.category-table th,.category-table td{border-bottom:1px solid #29485b;padding:7px 10px;text-align:left}.category-table th{font-weight:500;color:#91aab8}.category-table td{color:#d1dfe8}
.map-marker{background:var(--flight-color,#a3b2be);border-color:var(--flight-color,#a3b2be);box-shadow:0 0 0 5px var(--flight-bg,#263541)}
.map-marker.weather-old{outline:2px solid #ffdb00;outline-offset:5px}
.map-marker span{border:1px solid var(--flight-color,#a3b2be);line-height:1.4}.map-marker b{color:var(--flight-color,#a3b2be);margin-left:3px;font-size:9px}
.route-stop{color:var(--flight-color,#a3b2be);border-color:var(--flight-color,#a3b2be);background:var(--flight-bg,#263541);font-weight:750}.route-stop small{font-size:10px;margin-left:5px}
.station-foot .stale{color:#ffdb00!important}
@media(max-width:700px){.flight-legend{padding:11px 12px}.legend-items{gap:10px 14px}.legend-label{width:100%}.legend-age{font-size:10px}.station-foot{line-height:1.4}.category-table th,.category-table td{padding:7px 5px}}
@media print{.badge,.legend-item,.map-marker,.route-stop{print-color-adjust:exact;-webkit-print-color-adjust:exact}.flight-legend{background:#fff;border-color:#bbb}.legend-label,.legend-item,.legend-details,.legend-details summary,.legend-explanation,.category-table th,.category-table td{color:#111}.legend-details{display:none}}
.station-top>div:first-child{min-width:0;flex:1}.station-name{max-width:100%}.station-top .badge{flex-shrink:0}

/* High visibility category accents. */
.badge.VFR,.badge.MVFR,.badge.IFR,.badge.LIFR{background:var(--flight-color);color:#061520;border-color:var(--flight-color);box-shadow:0 0 12px var(--flight-glow);font-weight:900}
.station-card .station-code,.hero .category-name{text-shadow:0 0 16px var(--flight-glow,transparent)}
.legend-item{color:var(--flight-color)}.legend-item i{box-shadow:0 0 9px var(--flight-glow,transparent)}
.map-marker{box-shadow:0 0 0 5px var(--flight-bg,#263541),0 0 18px var(--flight-glow,transparent)}
.route-stop.flight-VFR,.route-stop.flight-MVFR,.route-stop.flight-IFR,.route-stop.flight-LIFR{background:var(--flight-color);color:#061520;box-shadow:0 0 10px var(--flight-glow)}
@media print{.legend-item{color:#111}.station-card .station-code,.hero .category-name{text-shadow:none}.badge,.map-marker,.route-stop{box-shadow:none}}

/* Four overview parameters remain readable on narrow airport cards. */
.station-card .metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 0;align-items:start}
.station-card .metric+.metric{border-left:0;padding-left:0}
.station-card .metric:nth-child(even){border-left:1px solid #365469;padding-left:12px}
.station-card .metric strong{display:block;white-space:normal;overflow-wrap:anywhere;line-height:1.4}
.station-card .metric-note{display:block;color:#9cb8c9;font-size:10px;line-height:1.45;margin-top:3px}
.station-card .cloud-metric strong{color:#e7f5ff}

/* Group checkboxes have their own layout, independent of text input fields. */
#dialog .group-picker{border:0;padding:0;margin:16px 0;min-inline-size:0;min-width:0;width:100%;max-width:100%}
#dialog .group-picker legend{padding:0;margin:0 0 8px;color:#b5cad2;font-size:12px}
#dialog .group-choice-list{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;width:100%;min-width:0}
#dialog .group-choice{display:flex;align-items:center;justify-content:flex-start;gap:8px;width:100%;max-width:100%;min-width:0;margin:0;padding:9px 10px;border:1px solid #35536a;border-radius:8px;background:#0c2030;color:#e5edf4;text-align:left;cursor:pointer;line-height:1.45}
#dialog .group-choice input[type=checkbox]{appearance:auto;flex:0 0 18px;width:18px;min-width:18px;max-width:18px;height:18px;margin:0;padding:0;accent-color:#44c8b5;cursor:pointer}
#dialog .group-choice-name{display:block;flex:1 1 0;min-width:0;margin:0;padding:0;white-space:normal;overflow-wrap:anywhere;font-size:13px;color:#e5edf4}
#dialog .group-choice:focus-within{outline:2px solid #44c8b5;outline-offset:1px}

/* Compact aviation weather list. */
:root{color-scheme:dark;background:#0b0c10;color:#f1f2f5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{background:#0b0c10}#app{display:block;max-width:780px;margin:0 auto;min-height:100vh;border-left:1px solid #24262d;border-right:1px solid #24262d}.workspace{min-height:100vh}
.topbar.compact-toolbar{height:58px;position:sticky;top:0;z-index:10;padding:0 12px;gap:6px;background:#111216;border-bottom:1px solid #34363e;justify-content:flex-start}
.toolbar-title{font-size:19px;font-weight:650;line-height:1.25;min-width:0;flex:1;margin:0}.list-title-button{display:flex;align-items:center;gap:6px;width:100%;min-width:0;padding:8px 0;background:transparent;border:0;color:#f1f2f5;text-align:left;font:inherit}.list-title-button #view-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.title-chevron{color:#8d929e;font-size:16px;flex-shrink:0}.toolbar-actions{display:flex;align-items:center;gap:0;flex-shrink:0}.toolbar-icon{width:38px;height:42px;padding:0;border:0;background:transparent;color:#53a9ff;font-size:25px;line-height:1;border-radius:6px}.toolbar-icon:hover{background:#252832}.toolbar-icon:focus-visible,.list-title-button:focus-visible{outline:2px solid #53a9ff;outline-offset:1px}.toolbar-icon[hidden]{display:none}
main{max-width:none;margin:0;padding:20px 16px 30px}main.list-view{padding:0}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wx-list{display:block}.wx-station{display:block;width:100%;min-width:0;margin:0;padding:11px 15px 10px 12px;border:0;border-left:3px solid var(--flight-color,#737987);border-bottom:1px solid #30323a;border-radius:0;background:#111216;color:#eceef3;text-align:left;font-size:13px;line-height:1.45;font-variant-numeric:tabular-nums;cursor:pointer}.wx-station:hover{background:#1a1c23}.wx-station:focus-visible{outline:2px solid #53a9ff;outline-offset:-2px}
.wx-identity{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0;margin-bottom:3px}.wx-name{font-size:15px;font-weight:650;min-width:0;overflow-wrap:anywhere;color:#fafafa}.wx-code{font-size:13px;letter-spacing:.02em;color:#b9bdc7;flex-shrink:0}
.wx-readings{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3px 12px;align-items:center;min-width:0}.wx-readings>span{min-width:0;overflow-wrap:anywhere}.wx-temperature,.wx-pressure,.wx-age{text-align:right}.wx-temperature{display:flex;justify-content:flex-end;align-items:center;gap:9px;flex-wrap:wrap}.wx-temperature strong{font-size:14px;font-weight:600}.wx-station .badge{font-size:10px;padding:2px 5px;gap:4px;border-radius:4px;line-height:1.2;box-shadow:none;font-weight:800;letter-spacing:0}.wx-station .badge:before{display:none}.wx-key{color:#8f95a2;font-size:11px;margin-right:5px}.wx-wind{color:#f4f5f8;font-weight:550}.wx-visibility,.wx-pressure,.wx-clouds{color:#d3d7e0;font-size:12px}.wx-age{color:#9299a6;font-size:10px}.wx-age.stale{color:#ffdb00!important}
.airport-search{padding:10px 14px;background:#111216;border-bottom:1px solid #30323a}.airport-search .search{width:100%;background:#20222a;border-color:#353842}.airport-search[hidden]{display:none}.offline-line{padding:6px 15px;font-size:11px;color:#ffdb00;background:#24200e;border-bottom:1px solid #4b4222}.list-empty{border:0;border-radius:0;background:#111216;color:#aeb4c0;font-size:13px;padding:24px 16px}.list-empty .button{margin-top:14px}
#dialog{background:#17191f;border-color:#454954;color:#f1f2f5;border-radius:12px;max-width:calc(100vw - 24px)}dialog p,.field{color:#b3b8c3}.field input:not([type=checkbox]),.field select{background:#252831;border-color:#454954;color:#f1f2f5}.group-menu{display:grid;grid-template-columns:minmax(0,1fr);margin-top:12px;min-width:0}.menu-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;min-width:0;width:100%;padding:10px 0;border:0;border-bottom:1px solid #343740;background:transparent;color:#e7eaf1;font-size:14px;text-align:left}.menu-row span{min-width:0;overflow-wrap:anywhere}.menu-row small{color:#949ba9;font-size:12px;flex-shrink:0}.menu-row.current{color:#61b0ff}.menu-row:hover{color:#61b0ff}.group-menu-row{display:flex;align-items:center;gap:8px;min-width:0}.group-menu-row .menu-row{flex:1}.group-menu-row .icon-btn{flex-shrink:0}.menu-close{margin-top:18px}.button.primary{background:#3185d8;border-color:#3185d8;color:#fff}.button.ghost{color:#77baff;border-color:#404653}#dialog .group-choice{background:#252831;border-color:#454954}#dialog .group-choice-name{color:#f1f2f5}#dialog .group-choice input[type=checkbox]{accent-color:#53a9ff}
.panel{background:#151820;border-color:#343944}.raw{background:#0c0e13}.hero .eyebrow{color:#9ba5b6}.mobile-nav{display:none!important}#toast{bottom:18px;background:#242c39;border-color:#537eac;color:#f1f2f5}
@media(max-width:700px){#app{border:0}.topbar.compact-toolbar{height:56px;padding:0 10px;gap:2px}.toolbar-title{font-size:18px}.toolbar-icon{width:34px;height:42px}.wx-station{padding:10px 12px 9px 10px}.wx-name{font-size:14px}.wx-readings{gap:3px 10px}.wx-wind{font-size:12px}.wx-temperature{gap:6px}.wx-temperature strong{font-size:13px}.wx-key{font-size:10px;margin-right:4px}.wx-visibility,.wx-pressure,.wx-clouds{font-size:11px}.wx-age{font-size:10px}main{padding:18px 14px 25px}main.list-view{padding:0}#toast{bottom:18px}.detail-shell{grid-template-columns:minmax(0,1fr)}}
@media print{.compact-toolbar{display:none!important}#app{max-width:none;border:0}main{padding:0}.wx-station{background:#fff;color:#111;break-inside:avoid}.wx-name,.wx-code,.wx-wind,.wx-visibility,.wx-pressure,.wx-clouds,.wx-age,.wx-key{color:#111}}

.wx-station[hidden]{display:none}

.folder-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.toolbar-title #view-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Airport removal: left swipe on touch, context menu on desktop. */
.wx-list{overflow-x:clip}.wx-station{touch-action:pan-y pinch-zoom;transition:transform .15s ease,background .15s ease}.wx-station.swiping{transition:none;background:#352029;user-select:none;-webkit-user-select:none}
.button.danger{background:#c93247;border-color:#e65164;color:#fff}.button.danger:hover{background:#dd3a50;border-color:#ff7383}#dialog .station-action-name{color:#e5e9f1;font-weight:600;overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.wx-station{transition:none}}

/* Controls belong to the folder row, outside the airport's detail button. */
.wx-station-row{display:grid;grid-template-columns:minmax(0,1fr) 42px;min-width:0;border-bottom:1px solid #30323a;background:#111216}
.wx-station-row[hidden]{display:none}
.wx-station-row .wx-station{border-bottom:0}
.station-controls{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-bottom:0;border-left:1px solid #30323a}
.station-control{display:grid;place-items:center;width:36px;min-height:26px;padding:0;border:0;border-radius:5px;background:transparent;color:#99b5d1;font-size:17px;line-height:1}
.station-control:hover:not(:disabled),.station-control:focus-visible{color:#fff;background:#293748}
.station-control:focus-visible{outline:2px solid #53a9ff;outline-offset:-2px}
.station-control:disabled{opacity:.25}
.station-trash{color:#cf8794}
.station-trash:hover:not(:disabled){color:#fff;background:#8d3445}
@media(max-width:700px){.wx-station-row{grid-template-columns:minmax(0,1fr) 38px}.station-control{width:34px;min-height:28px}}
@media print{.wx-station-row{display:block;border:0}.station-controls{display:none!important}}

.wind-arrow{display:inline-block;color:#63c9ec;font-size:17px;font-weight:800;line-height:1;vertical-align:-2px;margin:0 5px 0 1px;transform-origin:center;white-space:nowrap}
.data-tile .wind-arrow{font-size:20px}
.runway-entry{border-top:1px solid #29495c;padding:11px 0;font-size:12px}
.runway-entry .listline{padding:0 0 7px;border:0}
.runway-entry .muted{display:block;margin-top:5px}
.runway-components{display:grid;gap:3px;color:#d9eaf3;line-height:1.5}
.runway-components small{color:#92adba}
.runway-notam{margin:16px 0 8px;color:#e8bc86;font-size:12px;line-height:1.5}
.runway-source-links{display:flex;gap:12px;flex-wrap:wrap;font-size:12px}
.runway-source-links a{color:#78d5b8}

.runway-diagram{margin:13px 0 16px;border:1px solid #314658;border-radius:12px;background:radial-gradient(circle at center,#1a3447,#0b1c2b 72%);padding:9px}
.runway-diagram svg{display:block;width:100%;max-width:360px;height:auto;margin:auto}
.runway-diagram svg text{fill:#e2eff6;font-size:11px;font-weight:700;paint-order:stroke;stroke:#102538;stroke-width:3px;stroke-linejoin:round}
.runway-diagram svg .north-label{fill:#8aaec2;font-size:13px}
.runway-diagram svg .wind-label{fill:#69d4f1;font-size:9px}
.runway-diagram p{margin:3px 5px 7px;font-size:10px;color:#8eafc0;line-height:1.45}
.runway-diagram-empty{border:1px dashed #35566a;padding:18px;border-radius:9px;color:#94aebb;font-size:12px}
.wind-components{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:3px 0 5px}
.wind-components>span{display:flex;flex-direction:column;gap:4px;border:1px solid #35566a;background:#132e3d;border-radius:8px;padding:8px;min-width:0}
.wind-components small{font-size:9px;letter-spacing:.04em}
.wind-components strong{font-size:16px;color:#f5f9fc}
.wind-components .component-head strong{color:#83ddb8}
.runway-wind-sketch{max-width:360px;margin:6px 0 9px;padding:9px 10px 7px;border:1px solid #315367;border-radius:10px;background:#102737}
.runway-wind-sketch .sketch-caption{display:flex;align-items:baseline;justify-content:space-between;gap:7px;color:#e7f4f7;font-size:11px}
.runway-wind-sketch .sketch-caption span,.runway-wind-sketch>small{color:#9bb8c5;font-size:10px}
.runway-wind-sketch svg{display:block;width:100%;height:auto;margin:2px auto 0}
.runway-wind-sketch svg text{font-size:10px;font-weight:700;paint-order:stroke;stroke:#102737;stroke-width:3px;stroke-linejoin:round}
.runway-wind-sketch .sketch-strip{fill:#405a6a;stroke:#95adba;stroke-width:1}
.runway-wind-sketch .sketch-centerline{stroke:#e6edf0;stroke-width:2;stroke-dasharray:9 8}
.runway-wind-sketch .sketch-end{fill:#e9f3f6;font-size:12px}
.runway-wind-sketch svg path{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.runway-wind-sketch .sketch-cross-arrow{stroke:#5dd2f1}
.runway-wind-sketch .sketch-head-arrow{stroke:#8ae2b6}
.runway-wind-sketch .sketch-tail-arrow{stroke:#f2b371}
.runway-wind-sketch .sketch-cross-label{fill:#86ddf4}
.runway-wind-sketch .sketch-head-label{fill:#92e9c2}
.runway-wind-sketch .sketch-tail-label{fill:#f7c187}

/* Draw the airflow direction directly in SVG coordinates, north at the top. */
.wind-arrow{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;vertical-align:middle;margin:0 4px 0 0;line-height:1;transform:none;font-size:inherit;flex-shrink:0}
.wind-arrow svg{display:block;width:22px;height:22px;overflow:visible}.data-tile .wind-arrow{width:25px;height:25px}.data-tile .wind-arrow svg{width:25px;height:25px}
