:root{color-scheme:dark;--bg:#0b1320;--panel:#142236;--line:#2b4058;--text:#dfebf7;--muted:#a8bfd5;--accent:#3a9fd5}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}body{display:flex;flex-direction:column;min-height:100vh}button,select,input{font:inherit}button,select{background:#23364c;color:#ecf5ff;border:1px solid #48617c;border-radius:5px;padding:9px;cursor:pointer}button:disabled,select:disabled{opacity:.5;cursor:default}button:hover:not(:disabled),select:hover:not(:disabled){border-color:#8eb7d9}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #79bce7;outline-offset:2px}.mast{background:#0e1b2d;min-height:69px;border-bottom:1px solid var(--line);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px}.eyebrow{font-size:10px;letter-spacing:1.45px;color:#8fb6dc;font-weight:700}.mast h1{margin:4px 0 0;font-size:21px}.version{font-size:11px;color:#b9c9d8;font-weight:400}.right-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.right-head a{color:#9bd1f5;font-size:12px}.status{font-size:12px;border:1px solid #55748e;background:#1a3449;border-radius:20px;padding:6px 10px}.status.bad{background:#4a2d2a;border-color:#a15a54}.toolbar{display:flex;gap:10px;padding:9px 14px;flex-wrap:wrap;background:#122136;border-bottom:1px solid var(--line)}.toolbar label{display:flex;flex-direction:column;gap:4px;color:#a9c3d9;font-size:11px;font-weight:700;min-width:155px}.toolbar select{font-size:12px;padding:7px 24px 7px 9px;max-width:310px}main{min-height:340px;flex:1;display:flex;overflow:hidden}.side{width:273px;flex:0 0 273px;overflow-y:auto;padding:12px;background:#101d30;border-right:1px solid var(--line)}.side-card{background:#17273b;border:1px solid #324962;border-radius:7px;padding:13px;margin-bottom:10px}.side-card h2{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#b5cbe1;margin:0 0 11px}.side-card .large{font-size:19px;font-weight:800;margin:8px 0}.side-card p{font-size:12px;line-height:1.48;color:#c2d2e4}.minor{font-size:11px!important;color:#9db6cd!important;line-height:1.4}.meta{border-top:1px solid #38516a;margin-top:12px;padding-top:9px}.meta div{font-size:11px;color:#a8c0d7;display:flex;justify-content:space-between;gap:10px;margin:8px 0}.meta strong{text-align:right;color:#eef7ff;font-weight:600}.map-region{position:relative;flex:1;min-height:450px;min-width:0;background:#142940}#map{height:100%;width:100%;background:#102338}.map-overlay-top{position:absolute;z-index:600;top:10px;left:10px;background:#0d1e30ed;border:1px solid #506b86;border-radius:5px;padding:10px 12px;pointer-events:none;max-width:calc(100% - 92px);display:flex;flex-direction:column;gap:5px}.map-overlay-top strong{font-size:14px}.map-overlay-top small{color:#bad0e3;font-size:11px}.map-overlay-bottom{position:absolute;z-index:600;bottom:11px;left:10px;right:10px;display:flex;justify-content:space-between;gap:10px;pointer-events:none;font-size:10px;color:#e3f2fc;text-shadow:0 1px 4px #000}.empty{position:absolute;z-index:700;top:50%;left:50%;transform:translate(-50%,-50%);background:#0b1929f5;border:1px solid #7c96ae;border-radius:8px;padding:23px;max-width:min(450px,90%);text-align:center}.empty strong{font-size:17px}.empty p{font-size:13px;line-height:1.55;color:#c3d5e5}.empty small{color:#f1b0a1}.legend{margin-top:12px}.legend span{font-size:11px;color:#bed0e0}.gradient{height:13px;border-radius:4px;margin:9px 0 5px;background:linear-gradient(90deg,#508bc3,#42b0a6,#e3c75a,#d37b48,#ad394c)}.legend-label{display:flex;justify-content:space-between}.timeline{padding:10px 17px 13px;border-top:1px solid #3b526d;background:#111f31}.time-head{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.time-head button{font-size:11px;padding:8px 12px}.time-head span{font-size:12px;font-weight:700;color:#cfdeed;margin-left:8px}.timeline input{width:100%;accent-color:#4db4ea;margin:12px 0 3px}.ticks{display:flex;justify-content:space-between;color:#a8c0d3;font-size:10px}.value-label{border:1px solid #ffffff9e;color:white;background:#284663d9;border-radius:5px;display:flex;align-items:center;justify-content:center;width:47px;height:23px;font:700 12px Arial,Helvetica,sans-serif;text-shadow:0 1px 1px #000;box-shadow:0 1px 3px #001}.value-label.light{background:#102c47e8}.value-label.dot{width:13px;height:13px;border-radius:50%;font-size:0;border:2px solid white}.leaflet-div-icon{border:0!important;background:transparent!important}.leaflet-container{font-family:Arial,Helvetica,sans-serif}.modal[hidden],.empty[hidden]{display:none!important}.modal{position:fixed;z-index:2000;inset:0;background:#000b;display:flex;align-items:center;justify-content:center;padding:18px}.modal-panel{background:#101d2c;display:flex;flex-direction:column;border:1px solid #7da1c1;border-radius:10px;max-width:1440px;width:100%;height:min(790px,96vh);overflow:hidden;box-shadow:0 16px 70px #0009}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:17px 20px;gap:15px;border-bottom:1px solid #3e5570}.modal-header h2{font-size:19px;margin:5px 0}.modal-header button{flex-shrink:0}.modal-sub{display:flex;gap:30px;flex-wrap:wrap;font-size:11px;color:#b5cbe0;padding:9px 15px;background:#182941;border-bottom:1px solid #425974}.table-scroll{overflow:auto;flex:1;min-height:70px}.table-scroll table{border-collapse:separate;border-spacing:0;font:12px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;width:max-content;min-width:100%;font-variant-numeric:tabular-nums}.table-scroll th,.table-scroll td{padding:11px 9px;min-width:68px;text-align:center;border-right:1px solid #25394f;border-bottom:1px solid #2a3d53;white-space:nowrap}.table-scroll th{position:sticky;top:0;background:#21374f;color:#e9f5ff;z-index:2}.table-scroll .rowhead{position:sticky;left:0;min-width:150px;width:150px;text-align:left;background:#1b3048;color:#eef5fc;font-weight:700;z-index:3}.table-scroll thead .rowhead{z-index:5;background:#304961}.table-scroll tbody tr:nth-child(even) td{background:#142438}.table-scroll tbody tr:hover td{background:#25415c}.table-scroll tbody tr td.rowhead{background:#1b3048}.table-scroll td button{padding:0;background:none;border:0;color:inherit;font:inherit;width:100%;min-height:19px}.table-scroll td button:hover{text-decoration:underline;color:#89cffc}.definition{margin:0;padding:12px 16px;background:#142e44;color:#deeffd;font-size:12px;min-height:42px}.modal-footer{padding:11px 16px;color:#a8c2d8;border-top:1px solid #30465c;font-size:11px;line-height:1.45}.warning{color:#ffc499}@media(max-width:820px){.mast{padding:10px 12px}.mast h1{font-size:17px}main{flex-direction:column}.side{order:2;flex:0 0 auto;width:100%;display:flex;gap:8px;overflow-x:auto;padding:9px}.side-card{margin:0;min-width:215px;flex:1}.map-region{order:1;min-height:470px}.toolbar label{min-width:140px}.details{display:none}.modal{padding:0}.modal-panel{height:100vh;border-radius:0}.table-scroll .rowhead{min-width:107px;width:107px}.table-scroll td,.table-scroll th{min-width:58px;padding:10px 5px}.right-head a{display:none}}@media(max-width:440px){.map-region{min-height:400px}.toolbar{gap:6px}.toolbar label{flex:1 1 44%;min-width:0}.toolbar select{width:100%}.mast h1{font-size:15px}.side{display:none}.modal-header{padding:13px}.modal-header h2{font-size:16px}.modal-header button{font-size:11px}.map-overlay-top strong{font-size:12px}.time-head span{width:100%;margin:2px 0}}

/* v0.1.3: old-school NOAA bulletin display; do not change Leaflet or map styles. */
.classic-panel{max-width:1550px; width:min(98vw,1550px)}
.bulletin-toolbar{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#192c41;border-bottom:1px solid #354e68;flex-wrap:wrap}
.bulletin-toolbar button{font-size:12px;padding:7px 11px;border-radius:3px}
.bulletin-toolbar button[aria-pressed="true"]{background:#327bad;color:#fff;border-color:#6ec5fa;font-weight:700}
.bulletin-toolbar .copy-bulletin{margin-left:auto}
.bulletin-scroll{overflow:auto;flex:1;min-height:80px;background:#fff;color:#111;border-top:1px solid #eee;border-bottom:1px solid #ddd;overscroll-behavior:contain}
#bulletin-text{margin:0;width:max-content;min-width:100%;padding:16px 18px 26px;color:#111;font:16px/1.27 "Courier New",Courier,monospace;white-space:pre;tab-size:8;letter-spacing:0;font-variant-numeric:tabular-nums}
#bulletin-text .noaa-data-row{cursor:pointer;display:inline;outline-offset:1px}
#bulletin-text .noaa-data-row:hover,#bulletin-text .noaa-data-row:focus{background:#fff0a7;outline:1px solid #d5bd56}
.classic-panel .definition{flex:0 0 auto;min-height:38px;padding:9px 15px}
.classic-panel .modal-footer{font-size:11px}
@media(max-width:820px){#bulletin-text{font-size:14px;line-height:1.25;padding:12px}.classic-panel{width:100%;max-width:none}}
@media(max-width:440px){#bulletin-text{font-size:12px}.bulletin-toolbar button{font-size:11px;padding:6px}.bulletin-toolbar .copy-bulletin{margin-left:0}}

/* v0.1.4: station MOS text and map markers; preserve v0.1.3 GLMP presentation. */
.mos-switch-label{display:flex;flex-direction:column;gap:3px;font-size:10px;font-weight:bold;color:#a3bdd3;margin-right:8px}
.mos-switch-label select{min-width:155px;font-size:12px;padding:6px}
[hidden]{display:none!important}
.mos-marker{background:#fff;color:#102335;border:2px solid #294e71;min-width:49px;min-height:25px;border-radius:5px;text-align:center;font-weight:800;font:700 13px/22px monospace;box-shadow:0 2px 8px #0008;white-space:nowrap}
.mos-marker:hover{outline:2px solid #f4dc73}
.mos-marker.missing{background:#cbd6df;color:#294359}
