:root{--bg:#061422;--card:#0a1d2e;--line:#1a354a;--text:#edf7ff;--muted:#8ca7ba;--blue:#24a8ff;--green:#34d485;--yellow:#f5ca3e;--orange:#fb912f;--red:#f0515d;--purple:#a970ff}*{box-sizing:border-box}body{margin:0;min-width:320px;color:var(--text);background:#061421;font:13px/1.4 Arial,sans-serif}.skip{position:absolute;left:-999px}.skip:focus{left:5px;top:5px;z-index:9;background:#fff;color:#000;padding:8px}header{height:70px;padding:9px 20px;display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);background:#071522;position:sticky;top:0;z-index:5}.brand{margin-right:auto}.brand b,.brand small{display:block}.brand b{font-size:16px}.brand small,p,small{color:var(--muted);font-size:11px}button,select,input{border:1px solid var(--line);border-radius:5px;background:#0b2032;color:var(--text);padding:8px;font:inherit}button{cursor:pointer}header label{font-size:11px;white-space:nowrap}.shell{display:flex;min-height:calc(100vh - 70px)}aside{width:205px;flex:none;background:#071624;border-right:1px solid var(--line);padding:14px 10px}aside button{border:0;background:transparent;width:100%;text-align:left;margin:2px 0;color:#b8cad7}aside button.active,aside button:hover{background:#103149;color:#62bdff}aside em{display:block;margin:15px 8px 3px;color:#6c879a;font-size:9px;font-style:normal}aside footer{position:fixed;bottom:15px;width:185px;padding:10px;border:1px solid var(--line);border-radius:6px;font-size:10px}aside footer i{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:5px}aside footer b,aside footer small{display:block}main{width:calc(100% - 205px);max-width:1900px;padding:22px 26px 50px}.page{display:none}.page.active{display:block}.title{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:15px}.title h1{font-size:20px;margin:0}.title p{margin:3px 0}.title input{max-width:260px}.card{background:linear-gradient(145deg,#0b2032,#081927);border:1px solid var(--line);border-radius:7px;padding:13px;min-width:0;box-shadow:0 6px 20px #0002}.card h2{font-size:13px;margin:0}.card-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.card-head button{border:0;background:transparent;color:#65c1ff;font-size:10px}#kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:11px;margin-bottom:14px}.kpi{padding:12px;min-height:105px;border:1px solid var(--line);border-radius:7px;background:linear-gradient(145deg,#0d2639,#081a2a);border-top:2px solid var(--accent)}.kpi i{font-size:20px;color:var(--accent);float:left;margin-right:7px}.kpi b{display:block;font-size:25px;margin-top:7px}.kpi span,.kpi small{display:block;font-size:10px;color:var(--muted)}.kpi small{color:var(--accent);margin-top:3px}#overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.chart{height:190px}.split{display:flex;align-items:center;height:190px}.donut{width:48%;height:170px}.legend{display:grid;gap:6px;font-size:10px;flex:1}.legend span{display:flex;justify-content:space-between}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:4px}.list{display:grid;gap:4px}.row{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:5px;border-bottom:1px solid #193249;padding:7px 0;font-size:10px}.row:last-child{border:0}.badge{display:inline-block;border-radius:9px;padding:2px 5px;font-size:9px;background:#193b50}.bad-red{background:#54212a;color:#ffc0c7}.bad-orange{background:#55341e;color:#ffd39c}.bad-green{background:#164332;color:#9af1c9}.bad-yellow{background:#51451e;color:#fff09a}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.wide{grid-column:1/-1}.table{overflow:auto;max-height:560px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:8px;border-bottom:1px solid #193249;vertical-align:top}th{font-size:10px;color:var(--muted)}#map,.small-map{height:min(68vh,660px);margin-top:12px;border-radius:5px;overflow:hidden}.small-map{height:360px}.news{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.news article{background:var(--card);border:1px solid var(--line);border-radius:7px;padding:13px}.news h2{font-size:14px;margin:0}.news a{color:#66c4ff}.tabs button.active{border-color:#4caef5;background:#113952}.error{padding:14px;color:#ffb8c0}.empty{padding:16px;color:var(--muted)}#message{margin-bottom:12px;padding:10px;border:1px solid #865832;border-radius:6px;background:#392a1d;color:#ffdaa8}@media(max-width:1200px){#kpis{grid-template-columns:repeat(3,1fr)}#overview-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){header{height:auto;min-height:60px;padding:8px 10px}header #clock,.brand small{display:none}header label small{display:none}#menu{display:block}aside{position:fixed;z-index:8;top:0;bottom:0;transform:translateX(-100%);transition:.2s;padding-top:72px;box-shadow:8px 0 25px #0009}aside.open{transform:translateX(0)}aside footer{position:absolute}main{width:100%;padding:16px}.two{grid-template-columns:1fr}#overview-grid{grid-template-columns:1fr}.wide{grid-column:auto}}@media(min-width:801px){#menu{display:none}}@media(max-width:480px){header{gap:5px}.brand b{font-size:13px}header button,header select{padding:7px}#kpis{grid-template-columns:repeat(2,1fr);gap:8px}.kpi{min-height:100px;padding:9px}.kpi b{font-size:21px}main{padding:13px 9px}.news{grid-template-columns:1fr}.title input{max-width:150px}.chart{height:180px}}@media print{header,aside{display:none}main{width:100%;padding:0}.page{display:none!important}#reports{display:block!important}.card{border:0;box-shadow:none;color:#000;background:#fff}}

.zip-legend{background:#071827eF;border:1px solid #355269;border-radius:5px;padding:8px;color:#edf7ff;font:11px Arial;box-shadow:0 1px 5px #0008}.zip-legend b,.zip-legend span{display:block}.zip-legend span{margin-top:3px}.zip-legend i{display:inline-block;width:12px;height:12px;margin-right:5px;vertical-align:-2px;border:1px solid #9bb0be}
.event-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end}.event-form label{display:grid;gap:6px;color:#b9d0df;font-size:.86rem}.event-form input,.event-form textarea{width:100%;box-sizing:border-box;background:#0c2132;border:1px solid #315269;border-radius:6px;color:#edf7ff;padding:9px;font:inherit}.event-form textarea{min-height:76px;resize:vertical}.event-form button{justify-self:start}@media(max-width:700px){.event-form{grid-template-columns:1fr}.event-form button{width:100%}}
.chart canvas{cursor:crosshair}
.airport-legend{background:#071a29eF;color:#eaf6ff;border:1px solid #477087;border-radius:5px;padding:7px 9px;font:12px Arial,sans-serif;box-shadow:0 1px 5px #0008}.airport-legend b{display:block;margin-bottom:4px}.airport-legend span{display:inline-flex;align-items:center;margin-right:8px;gap:3px}.airport-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;border:1px solid #d8edf6}
.airport-name{display:block;margin-top:3px;color:#91aabd}
.alert-open{margin-top:10px}.alert-modal{position:fixed;inset:0;z-index:2000;background:#000a;display:grid;place-items:center;padding:18px}.alert-modal article{position:relative;width:min(780px,100%);max-height:88vh;overflow:auto;background:#0b2132;color:#eaf6ff;border:1px solid #477087;border-radius:10px;padding:24px}#alert-modal>article{height:min(700px,88vh);box-sizing:border-box}.alert-modal h2{margin:0 36px 8px 0}.alert-modal #alert-modal-close{position:absolute;right:15px;top:12px;font-size:24px;line-height:1}.alert-modal dl{display:grid;grid-template-columns:150px 1fr;gap:10px;margin:18px 0}.alert-modal dt{font-weight:700;color:#9fc2d6}.alert-modal dd{margin:0;white-space:normal;line-height:1.5}@media(max-width:520px){.alert-modal dl{grid-template-columns:1fr}.alert-modal dt{margin-top:8px}}


/* Keep the Overview county doughnut and its legend in separate layout tracks. */
#overview-grid .split{display:grid;grid-template-columns:minmax(150px,42%) minmax(0,1fr);gap:12px;align-items:center;height:190px;min-width:0}
#overview-grid .split>.donut,#overview-grid .split>.donut>.donut{width:100%;height:170px;min-width:0}
#overview-grid .split .donut canvas{display:block!important;width:100%!important;height:170px!important;max-width:100%}
#overview-grid #county-legend{min-width:0;align-content:center}
#overview-grid #county-legend span{gap:8px;min-width:0}
#overview-grid #county-legend b{min-width:0;overflow-wrap:anywhere}
@media(max-width:480px){#overview-grid .split{grid-template-columns:1fr;height:auto;min-height:0}#overview-grid .split>.donut,#overview-grid .split>.donut>.donut{max-width:220px;margin-inline:auto}#overview-grid #county-legend{padding-top:4px}}

/* Match airport list badges to Leaflet METAR marker categories. */
.flight-badge{font-weight:700;color:#061421}.flight-badge.flight-vfr{background:#35d484}.flight-badge.flight-mvfr{background:#2ca8ff}.flight-badge.flight-ifr{background:#ef515d}.flight-badge.flight-lifr{background:#ae70ff}.flight-badge.flight-na{background:#94a9b7}

/* Keep the raw METAR observation visually separate from the temperature. */
.metar-raw{display:block;margin-top:4px;overflow-wrap:anywhere}

/* Keep the county table beside the two current outage maps on larger screens. */
.outage-current-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px;align-items:stretch;margin-bottom:13px}.outage-map-stack{display:grid;gap:13px}.outage-current-layout .outage-snapshot{min-height:780px}.outage-current-layout .outage-snapshot .table{max-height:715px}@media(max-width:800px){.outage-current-layout{grid-template-columns:1fr}.outage-current-layout .outage-snapshot{min-height:0}.outage-current-layout .outage-snapshot .table{max-height:560px}}

/* FAA alert type remains a compact status label in the alert grid. */
.faa-alert-badge{justify-self:start;align-self:start;width:auto;max-width:100%;padding:3px 6px;line-height:1.15}

/* Data-source attribution page. */
.source-intro{margin-bottom:13px}.source-intro p{margin:0;font-size:13px}.source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.source-card{min-height:155px}.source-card-head{display:flex;align-items:center;gap:10px}.source-card-head img{width:30px;height:30px;object-fit:contain;border-radius:4px;flex:none}.source-card-head h2{font-size:14px}.source-card-head p{margin:2px 0 0}.source-card>p{margin:13px 0 10px}.source-fresh{display:block;padding-top:8px;border-top:1px solid #193249;color:#a9c9d9}.source-disclaimer{color:var(--muted);font-size:11px;margin:15px 2px}@media(max-width:620px){.source-grid{grid-template-columns:1fr}.source-card{min-height:0}}

.event-comments-card{margin-top:13px}.event-comment-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.45fr) auto;gap:12px;align-items:end;margin-bottom:14px}.event-comment-form label{display:grid;gap:5px;color:#b9d0df}.event-comment-form textarea{min-height:76px;resize:vertical}.event-comments{display:grid;gap:9px}.event-comment{padding:10px;border:1px solid #193249;border-radius:6px;background:#091b2a}.event-comment p{white-space:pre-wrap;margin:7px 0;color:#dbeaf2}.event-media-list{display:flex;flex-wrap:wrap;gap:9px;margin-top:8px}.event-media-list a{display:grid;gap:4px;width:120px;color:#a9c9d9;font-size:10px;text-decoration:none;overflow-wrap:anywhere}.event-media-list img{width:120px;height:84px;object-fit:cover;border:1px solid #3b5970;border-radius:4px;background:#061421}@media(max-width:700px){.event-comment-form{grid-template-columns:1fr}.event-comment-form button{width:100%}}

.alert-map-legend{background:#071a29eF;color:#eaf6ff;border:1px solid #477087;border-radius:5px;padding:7px 9px;font:11px Arial,sans-serif;box-shadow:0 1px 5px #0008}.alert-map-legend b,.alert-map-legend span{display:block}.alert-map-legend span{margin-top:3px}.alert-map-legend i{display:inline-block;width:11px;height:11px;margin-right:5px;border:1px solid #d8edf6;vertical-align:-2px}
.alert-choice-list{display:grid;gap:10px;margin-top:16px}.alert-choice{display:grid;gap:4px;width:100%;text-align:left;padding:12px;border:1px solid #477087;border-radius:7px;background:#102d42;color:#eaf6ff}.alert-choice:hover,.alert-choice:focus{background:#16405c;border-color:#80b8d5}.alert-choice span{color:#b9d0df}.alert-choice small{color:#9fc2d6}
.spc-discussion-text{max-height:none;white-space:pre-wrap;font:11px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace}
