/* Shared presentation tokens. Light is also the print palette. */
:root{--surface:#fff;--surface-soft:#f3f7f8;--surface-raised:#fff;--page:#f1f6f7;--text:#193b45;--text-muted:#516c77;--stroke:#ccdde2;--accent:#186e78;--accent-text:#fff;--focus:#238895;--in:#087956;--out:#996011;--danger:#ab3349;--success-bg:#e4f5ed;--warning-bg:#fff3dc;--error-bg:#ffedf0;--shadow:0 18px 60px #193b450a;color-scheme:light}
html[data-theme=dark]{--surface:#172b35;--surface-soft:#1d3540;--surface-raised:#223c47;--page:#101e27;--text:#e5f0f3;--text-muted:#aec5cf;--stroke:#3a5561;--accent:#68d2cd;--accent-text:#092a32;--focus:#80e2dc;--in:#70deba;--out:#ffc578;--danger:#ff9baa;--success-bg:#193e35;--warning-bg:#423726;--error-bg:#442935;--shadow:0 18px 60px #0003;color-scheme:dark}
html[data-theme]{--bg:var(--page);--card:var(--surface);--ink:var(--text);--mut:var(--text-muted);--line:var(--stroke);--teal:var(--accent);--blu:var(--accent);--grn:var(--in);--amb:var(--out);--red:var(--danger)}
body{background:var(--page);color:var(--text)}
input,select,textarea,button{font:inherit}input,select,textarea{color:var(--text);background-color:var(--surface);border-color:var(--stroke)}
input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
:focus-visible{outline:3px solid var(--focus)!important;outline-offset:3px}
button:disabled{cursor:not-allowed;opacity:.65}dialog{color:var(--text);background:var(--surface-raised);border-color:var(--stroke)}
dialog::backdrop{background:#071821a8}
.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}
.presentation-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}
.presentation-select{display:flex;align-items:center;gap:5px;border:1px solid #6b909d80;border-radius:9px;padding:0 8px;color:#e5f3f6;background:#ffffff08}
.presentation-select select{width:auto;max-width:215px;min-height:38px;padding:6px 22px 6px 2px;background:transparent;color:inherit;border:0;font-size:12px;cursor:pointer}
.presentation-select option{background:var(--surface);color:var(--text)}
.header-tools{flex-wrap:wrap}.user-menu{flex-shrink:0}
.presentation-message{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);z-index:20000;background:var(--surface-raised);color:var(--text);border:1px solid var(--stroke);box-shadow:var(--shadow);padding:12px 18px;border-radius:10px}
html[data-theme=dark] .filter-form,html[data-theme=dark] .dashboard-filter-form{background:var(--surface)}
html[data-theme=dark] .chart>.data-state,html[data-theme=dark] .state-target[data-state=loading]>.data-state{background:#1d3540f5;color:var(--text-muted)}
html[data-theme=dark] #source-status[data-state=ready]:before{background:var(--in)}html[data-theme=dark] #source-status[data-state=partial]:before{background:var(--out)}html[data-theme=dark] #source-status[data-state=error]:before{background:var(--danger)}
.auth-layout{min-height:100vh;display:flex;flex-direction:column}
.auth-layout .top{background:var(--page);border-bottom:1px solid var(--stroke)}
.auth-layout .brand-word{color:var(--text)}.auth-layout .brand-suffix{color:var(--accent)}
.auth-layout .brand-caption,.auth-layout .header-clock{color:var(--text-muted)}
.auth-layout .header-lines{display:none}.auth-layout .header-tools{gap:12px}
.auth-layout .presentation-select{background:var(--surface);color:var(--text);border-color:var(--stroke)}
.auth-layout main{width:100%;max-width:1320px;flex:1;display:flex;align-items:center;padding:44px 36px}
.auth-layout footer{background:transparent;border:0;padding:12px 20px 22px}
.auth-shell{width:100%;min-height:590px;display:grid;grid-template-columns:1.1fr 1fr;border:1px solid var(--stroke);border-radius:24px;overflow:hidden;box-shadow:var(--shadow);background:var(--surface)}
.auth-story{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(145deg,#193f49,#102b37);padding:52px 44px 28px;color:#e6f6f5;display:flex;flex-direction:column;min-height:590px}
.auth-kicker{color:#9cddd9;font-weight:700;letter-spacing:.17em;font-size:12px}
.auth-story h1{font-size:clamp(25px,2.15vw,34px);line-height:1.55;margin:24px 0 16px;letter-spacing:-.5px;color:#f1fbfb}
.auth-story h1 span{color:#9fdfd9}.auth-story>p{font-size:15px;max-width:375px;color:#c0d9df;line-height:1.9;margin:0}
.auth-road{position:absolute;bottom:-20px;left:0;width:100%;height:340px;z-index:-1;color:#abd9dc}
.auth-story-footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:auto;padding-top:180px;font-size:11px;color:#c0d9df}
.auth-form-panel{display:flex;align-items:center;justify-content:center;padding:46px}
.auth-card{width:100%;max-width:375px}.auth-mark{display:block;margin-bottom:24px}
.auth-card h2{font-size:27px;line-height:1.5;letter-spacing:-.4px;margin:0 0 10px;color:var(--text)}
.auth-description{color:var(--text-muted);font-size:14px;line-height:1.8;margin:0 0 30px}
.auth-field{margin:0 0 20px}.auth-field label,.auth-form>p>label{display:block;margin-bottom:8px;font-weight:600;font-size:13px;color:var(--text)}
.auth-form input:not([type=hidden]){width:100%;min-height:48px;border:1px solid var(--stroke);border-radius:10px;padding:11px 13px;background:var(--surface-soft);color:var(--text);font-size:15px}
.auth-form input:autofill{box-shadow:0 0 0 1000px var(--surface-soft) inset;-webkit-text-fill-color:var(--text)}
.password-field{position:relative}.auth-form .password-field input{padding-right:48px}
.password-toggle{position:absolute;right:3px;top:3px;width:42px;height:42px;background:transparent!important;color:var(--text-muted)!important;padding:8px;display:flex;justify-content:center;align-items:center;border-radius:8px}
.auth-submit{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 17px;margin-top:8px;border-radius:10px;background:var(--accent)!important;color:var(--accent-text)!important;font-weight:700}
.auth-submit[aria-busy=true]{opacity:.75}.auth-footnote{color:var(--text-muted);font-size:12px;text-align:center;margin:22px 0 0}
.caps-notice{color:var(--out);font-size:12px}.auth-notice{padding:12px;border:1px solid var(--stroke);border-radius:9px;background:var(--surface-soft);font-size:13px}
.auth-errors,.auth-form .errorlist{color:var(--danger);font-size:13px}.auth-errors{background:var(--error-bg);padding:10px 12px;border-radius:9px;margin-bottom:20px}.auth-errors ul{margin:0;padding-left:17px}
.auth-compact{max-width:550px;width:100%;margin:0 auto!important;padding:36px!important;border-radius:20px!important}.auth-compact h1{font-size:25px}
.auth-compact .helptext{font-size:12px;color:var(--text-muted);line-height:1.7;margin-top:6px}
html[data-theme=dark] .leaflet-container{background:#213943}html[data-theme=dark] .leaflet-popup-content-wrapper,html[data-theme=dark] .leaflet-popup-tip,html[data-theme=dark] .leaflet-tooltip{background:var(--surface-raised);color:var(--text);border-color:var(--stroke)}
html[data-theme=dark] .leaflet-control-zoom a{background:var(--surface);color:var(--text);border-color:var(--stroke)}
html[data-theme=dark] .leaflet-control-attribution{background:#172b35e6;color:var(--text-muted)}html[data-theme=dark] .leaflet-control-attribution a{color:var(--accent)}
/* Tile imagery keeps its original geography and attribution; overlays use the UI palette. */
@media(max-width:1000px){.auth-shell{grid-template-columns:1fr 1fr}.auth-story{padding:36px 28px}.auth-form-panel{padding:32px}.header-clock{display:none}}
@media(max-width:720px){.auth-layout main{padding:24px 16px}.auth-shell{grid-template-columns:1fr;min-height:0;border-radius:18px}.auth-story{display:none}.auth-form-panel{padding:32px 24px}.auth-card{max-width:430px}.auth-layout .brand-caption{display:none}.auth-layout .brand-mark{width:36px;height:36px}.auth-layout .brand-word{font-size:19px}.auth-layout .brand-row{gap:14px;flex-wrap:wrap;padding:16px}.auth-layout .header-tools{margin-left:0}.presentation-select select{max-width:190px}.auth-compact{padding:24px!important}.auth-layout footer{font-size:11px}}
@media(prefers-reduced-motion:reduce){:where(html:not([data-motion-system-override="true"])) *,:where(html:not([data-motion-system-override="true"])) *::before,:where(html:not([data-motion-system-override="true"])) *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{html[data-theme],:root{color-scheme:light;--surface:#fff;--surface-soft:#f3f7f8;--surface-raised:#fff;--page:#fff;--text:#193b45;--text-muted:#516c77;--stroke:#ccdde2;--accent:#186e78;--accent-text:#fff;--in:#087956;--out:#996011;--danger:#ab3349;--success-bg:#e4f5ed;--warning-bg:#fff3dc;--error-bg:#ffedf0}.presentation-controls,.presentation-message{display:none!important}}

/* Existing component declarations mapped to the common dark palette. */
@media screen{html[data-theme=dark]{--ui-line-00886b:#3a5561;--ui-line-157680:#3a5561;--ui-line-1596a1:#3a5561;--ui-line-176e78:#3a5561;--ui-line-179989:#3a5561;--ui-line-18737c:#3a5561;--ui-line-1c7480:#3a5561;--ui-line-248395:#3a5561;--ui-line-248ea7:#3a5561;--ui-line-257983:#3a5561;--ui-line-297c85:#3a5561;--ui-line-298575:#3a5561;--ui-line-298d93:#3a5561;--ui-line-369196:#3a5561;--ui-line-48646e:#3a5561;--ui-line-496372:#3a5561;--ui-line-59a9b3:#3a5561;--ui-line-5abcc7:#3a5561;--ui-line-69c9d2:#3a5561;--ui-line-71aab4:#3a5561;--ui-line-77acb1:#3a5561;--ui-line-8970a9:#3a5561;--ui-line-8bbce1:#3a5561;--ui-line-aaa:#3a5561;--ui-line-aed5c9:#3a5561;--ui-line-b9d9dc:#3a5561;--ui-line-bbd1d8:#3a5561;--ui-line-bc8c4a:#3a5561;--ui-line-bcd9d9:#3a5561;--ui-line-bd7113:#3a5561;--ui-line-bd8f46:#3a5561;--ui-line-bdd1d7:#3a5561;--ui-line-bddcdd:#3a5561;--ui-line-c3dddf:#3a5561;--ui-line-c3e3df:#3a5561;--ui-line-c5d8dc:#3a5561;--ui-line-c6d9db:#3a5561;--ui-line-c78b37:#3a5561;--ui-line-c7dbe0:#3a5561;--ui-line-c7dfdb:#3a5561;--ui-line-c8dbe0:#3a5561;--ui-line-c8dfe3:#3a5561;--ui-line-c9d4e4:#3a5561;--ui-line-c9dce1:#3a5561;--ui-line-cadcdf:#3a5561;--ui-line-cbaf75:#3a5561;--ui-line-cbdde2:#3a5561;--ui-line-ccc:#3a5561;--ui-line-ccdce0:#3a5561;--ui-line-cce1e5:#3a5561;--ui-line-cdd5e2:#3a5561;--ui-line-cddde3:#3a5561;--ui-line-cddfdf:#3a5561;--ui-line-cfdee1:#3a5561;--ui-line-cfe0df:#3a5561;--ui-line-d1dfe3:#3a5561;--ui-line-d2dfe3:#3a5561;--ui-line-d3ad67:#3a5561;--ui-line-d3e1e4:#3a5561;--ui-line-d3e1e5:#3a5561;--ui-line-d4dfe5:#3a5561;--ui-line-d4e2e6:#3a5561;--ui-line-d4e3e7:#3a5561;--ui-line-d5e2e7:#3a5561;--ui-line-d5e7e8:#3a5561;--ui-line-d6e4e8:#3a5561;--ui-line-d7e3e7:#3a5561;--ui-line-d7e7e5:#3a5561;--ui-line-d7e9e2:#3a5561;--ui-line-dae5e9:#3a5561;--ui-line-dbe5e7:#3a5561;--ui-line-dbe7e8:#3a5561;--ui-line-dbe7eb:#3a5561;--ui-line-dbe8eb:#3a5561;--ui-line-dce6e9:#3a5561;--ui-line-dce7e9:#3a5561;--ui-line-dce8eb:#3a5561;--ui-line-dde9ec:#3a5561;--ui-line-dfe9ed:#3a5561;--ui-line-e0e6e8:#3a5561;--ui-line-e0e9ed:#3a5561;--ui-line-e4e9eb:#3a5561;--ui-line-e4edef:#3a5561;--ui-line-e5c9a7:#3a5561;--ui-line-e5ecee:#3a5561;--ui-line-e5ecef:#3a5561;--ui-line-e5edef:#3a5561;--ui-line-e5f3f3:#3a5561;--ui-line-e6d5ad:#3a5561;--ui-line-e6d6b9:#3a5561;--ui-line-e6edef:#3a5561;--ui-line-e7edef:#3a5561;--ui-line-e9b8c4:#3a5561;--ui-line-e9eff1:#3a5561;--ui-line-eadab7:#3a5561;--ui-line-eaf0f2:#3a5561;--ui-line-eba536:#3a5561;--ui-line-ecc6c0:#3a5561;--ui-line-ecdfbd:#3a5561;--ui-line-edddb6:#3a5561;--ui-line-edf1f3:#3a5561;--ui-line-efd1d6:#3a5561;--ui-line-efdfcb:#3a5561;--ui-line-f0f3f8:#3a5561;--ui-line-f3c9cf:#3a5561;--ui-surface-0d1b2f:#0d1b2f;--ui-surface-102c38:#102c38;--ui-surface-105b64:#105b64;--ui-surface-115762:#115762;--ui-surface-122336:#122336;--ui-surface-132d38:#132d38;--ui-surface-176d78:#176d78;--ui-surface-18374b:#18374b;--ui-surface-1a5fc4:#1a5fc4;--ui-surface-1d6fe0:#1d6fe0;--ui-surface-246db4:#246db4;--ui-surface-24806e:#24806e;--ui-surface-288c79:#288c79;--ui-surface-294955:#294955;--ui-surface-68d6b4:#68d6b4;--ui-surface-8c9faf:#8c9faf;--ui-surface-94aab0:#94aab0;--ui-surface-9aabb6:#29444e;--ui-surface-c08a37:#c08a37;--ui-surface-c2ccdb:#29444e;--ui-surface-e0eaed:#1d3540;--ui-surface-e0eff0:#1d3540;--ui-surface-e2f4f1:#1d3540;--ui-surface-e2f5ec:#1d3540;--ui-surface-e3b762:#e3b762;--ui-surface-e3f2eb:#1d3540;--ui-surface-e3f2f0:#1d3540;--ui-surface-e3f4ed:#1d3540;--ui-surface-e6f5ed:#1d3540;--ui-surface-e7f3f4:#1d3540;--ui-surface-e8edf5:#1d3540;--ui-surface-e8f4ee:#1d3540;--ui-surface-e8f5f4:#1d3540;--ui-surface-e9eff0:#1d3540;--ui-surface-eaf2f4:#1d3540;--ui-surface-eaf3f3:#1d3540;--ui-surface-eaf5f1:#1d3540;--ui-surface-ecf5f5:#1d3540;--ui-surface-edf1f3:#1d3540;--ui-surface-edf2f4:#1d3540;--ui-surface-edf2f5:#1d3540;--ui-surface-edf4f6:#1d3540;--ui-surface-edf5f4:#1d3540;--ui-surface-edf5f5:#1d3540;--ui-surface-edf6f3:#1d3540;--ui-surface-edf6f7:#1d3540;--ui-surface-edf7f3:#1d3540;--ui-surface-edf7f6:#1d3540;--ui-surface-edf8f7:#1d3540;--ui-surface-eef2f5:#1d3540;--ui-surface-eef3fb:#1d3540;--ui-surface-eef5f6:#1d3540;--ui-surface-eff6f7:#1d3540;--ui-surface-eff7f6:#1d3540;--ui-surface-eff7f8:#1d3540;--ui-surface-eff9f4:#1d3540;--ui-surface-f0ebf9:#1d3540;--ui-surface-f0f4f5:#1d3540;--ui-surface-f0f5f6:#1d3540;--ui-surface-f0f6f7:#1d3540;--ui-surface-f0f7f7:#1d3540;--ui-surface-f1f6f7:#1d3540;--ui-surface-f2f5f7:#1d3540;--ui-surface-f2f5fa:#1d3540;--ui-surface-f2f7f7:#1d3540;--ui-surface-f2f7f8:#1d3540;--ui-surface-f3f5f7:#1d3540;--ui-surface-f3f6f7:#1d3540;--ui-surface-f3f7f8:#1d3540;--ui-surface-f4f6f7:#1d3540;--ui-surface-f4f8f9:#172b35;--ui-surface-f5f8f9:#172b35;--ui-surface-f6f9fa:#172b35;--ui-surface-f7f9fa:#172b35;--ui-surface-f7fbfb:#172b35;--ui-surface-f7fcfa:#172b35;--ui-surface-f7fcfb:#172b35;--ui-surface-f8f6fc:#172b35;--ui-surface-f8fbfb:#172b35;--ui-surface-fbe9e8:#1d3540;--ui-surface-fbf0dd:#1d3540;--ui-surface-fbf4e8:#1d3540;--ui-surface-fbfcfe:#172b35;--ui-surface-fde8ea:#1d3540;--ui-surface-fdf3e0:#1d3540;--ui-surface-feebee:#1d3540;--ui-surface-ff8593:#29444e;--ui-surface-ffebeb:#1d3540;--ui-surface-fff:#172b35;--ui-surface-fff0cd:#1d3540;--ui-surface-fff0d7:#1d3540;--ui-surface-fff0ee:#172b35;--ui-surface-fff0f0:#172b35;--ui-surface-fff0f1:#172b35;--ui-surface-fff1d8:#1d3540;--ui-surface-fff4d9:#1d3540;--ui-surface-fff4f4:#172b35;--ui-surface-fff5df:#1d3540;--ui-surface-fff6e5:#1d3540;--ui-surface-fff6e8:#1d3540;--ui-surface-fff6f6:#172b35;--ui-surface-fff7e8:#1d3540;--ui-surface-fff8e8:#1d3540;--ui-surface-fff9ee:#172b35;--ui-surface-fffaf1:#172b35;--ui-surface-fffbf0:#172b35;--ui-surface-fffcf7:#172b35;--ui-text-007c60:#96eeda;--ui-text-0a6866:#96eeec;--ui-text-0a6b47:#96eecd;--ui-text-0b655c:#96eee5;--ui-text-116449:#96edd1;--ui-text-116773:#96e3ee;--ui-text-125e69:#97e2ed;--ui-text-126d74:#96e8ee;--ui-text-126e77:#96e6ee;--ui-text-145e66:#99e3eb;--ui-text-146953:#98ebd6;--ui-text-159686:#96eee3;--ui-text-163e48:#a1d5e2;--ui-text-167053:#99ebd0;--ui-text-173c49:#a2d1e2;--ui-text-173d47:#a3d4e1;--ui-text-173e48:#a2d4e1;--ui-text-175e70:#99daea;--ui-text-176047:#9ce7ce;--ui-text-176573:#99deeb;--ui-text-176c76:#99e2eb;--ui-text-176e78:#98e3eb;--ui-text-183841:#a6d2de;--ui-text-193c46:#a5d2df;--ui-text-19634a:#9de6ce;--ui-text-196571:#9bdee9;--ui-text-1b3f49:#a6d2de;--ui-text-20454c:#a9d3db;--ui-text-204653:#a7cfdd;--ui-text-214650:#a8d0db;--ui-text-21545d:#a5d6df;--ui-text-215c68:#a2d7e2;--ui-text-21685e:#a2e2d9;--ui-text-216c61:#a1e2d9;--ui-text-222:#e5f0f3;--ui-text-22424b:#abcfd9;--ui-text-226774:#a0d9e3;--ui-text-234853:#a9cfdb;--ui-text-234953:#a9d0db;--ui-text-236e5c:#a2e1d2;--ui-text-24505b:#a7d2dc;--ui-text-24515e:#a6d1dd;--ui-text-245965:#a5d4df;--ui-text-25344f:#acbbd8;--ui-text-25616a:#a4d8df;--ui-text-266c60:#a4dfd5;--ui-text-274650:#e5f0f3;--ui-text-284b54:#e5f0f3;--ui-text-285d68:#a7d4dd;--ui-text-294457:#e5f0f3;--ui-text-294652:#e5f0f3;--ui-text-294954:#e5f0f3;--ui-text-2a4f5b:#abcdd8;--ui-text-2e6866:#aad9d8;--ui-text-31646c:#abd3d9;--ui-text-367d82:#a9d8db;--ui-text-375c69:#aec5cf;--ui-text-398276:#aadad2;--ui-text-41576b:#aec5cf;--ui-text-41949b:#a9d7db;--ui-text-42557a:#aec5cf;--ui-text-43616a:#aec5cf;--ui-text-47626c:#aec5cf;--ui-text-487f88:#aec5cf;--ui-text-496276:#aec5cf;--ui-text-496476:#aec5cf;--ui-text-4a6770:#aec5cf;--ui-text-4c6670:#aec5cf;--ui-text-4d6972:#aec5cf;--ui-text-4d6c76:#aec5cf;--ui-text-4e6276:#aec5cf;--ui-text-4e6871:#aec5cf;--ui-text-50677c:#aec5cf;--ui-text-506a74:#aec5cf;--ui-text-526778:#aec5cf;--ui-text-526871:#aec5cf;--ui-text-526b77:#aec5cf;--ui-text-526c75:#aec5cf;--ui-text-526e76:#aec5cf;--ui-text-52707a:#aec5cf;--ui-text-52727a:#aec5cf;--ui-text-53456b:#aec5cf;--ui-text-536f78:#aec5cf;--ui-text-546b77:#aec5cf;--ui-text-55717b:#aec5cf;--ui-text-56717a:#aec5cf;--ui-text-57727b:#aec5cf;--ui-text-5a737c:#aec5cf;--ui-text-5a7680:#aec5cf;--ui-text-5b747d:#aec5cf;--ui-text-5d7279:#aec5cf;--ui-text-5d7680:#aec5cf;--ui-text-5e7680:#aec5cf;--ui-text-5e777d:#aec5cf;--ui-text-60727a:#aec5cf;--ui-text-607980:#aec5cf;--ui-text-607b88:#aec5cf;--ui-text-637e88:#aec5cf;--ui-text-64428a:#aec5cf;--ui-text-647089:#aec5cf;--ui-text-647d86:#aec5cf;--ui-text-647e88:#aec5cf;--ui-text-647f8a:#aec5cf;--ui-text-667c85:#aec5cf;--ui-text-667d87:#aec5cf;--ui-text-677f89:#aec5cf;--ui-text-67808a:#aec5cf;--ui-text-67818a:#aec5cf;--ui-text-687e88:#aec5cf;--ui-text-6b573b:#aec5cf;--ui-text-6b818c:#aec5cf;--ui-text-6c7d86:#aec5cf;--ui-text-6c858d:#aec5cf;--ui-text-6d8189:#aec5cf;--ui-text-6d828b:#aec5cf;--ui-text-6e838a:#aec5cf;--ui-text-708191:#aec5cf;--ui-text-71828e:#aec5cf;--ui-text-74658c:#aec5cf;--ui-text-748994:#aec5cf;--ui-text-758891:#aec5cf;--ui-text-765117:#ebcb99;--ui-text-765a2d:#ddc8a6;--ui-text-766036:#d9c9ab;--ui-text-78878d:#aec5cf;--ui-text-7a7159:#aec5cf;--ui-text-7b8a90:#aec5cf;--ui-text-7b969c:#aec5cf;--ui-text-7c5424:#e3c5a0;--ui-text-7dd6d1:#a2e2de;--ui-text-805407:#eece96;--ui-text-806025:#e4cca0;--ui-text-816025:#e4cba0;--ui-text-816128:#e2cba2;--ui-text-835d16:#edcf96;--ui-text-875510:#eec996;--ui-text-888:#aec5cf;--ui-text-895a1c:#eac799;--ui-text-8a5a00:#eecf96;--ui-text-8b653c:#dac3aa;--ui-text-8c1d2b:#ea9aa4;--ui-text-8c662c:#e2c8a2;--ui-text-905722:#e8c09c;--ui-text-913b37:#dda9a6;--ui-text-92263c:#e69ead;--ui-text-94b4ba:#aec5cf;--ui-text-966000:#eece96;--ui-text-976326:#e6c59d;--ui-text-976426:#e6c59d;--ui-text-983e33:#e0aaa3;--ui-text-986022:#e9c49b;--ui-text-986127:#e6c39e;--ui-text-994250:#daa9b1;--ui-text-99602a:#e5c19f;--ui-text-9a2d38:#e3a0a7;--ui-text-9b621e:#ebc598;--ui-text-a01829:#ee96a1;--ui-text-a02c38:#e59fa6;--ui-text-a13243:#e2a2ab;--ui-text-a9c2e6:#aec5cf;--ui-text-b4cdd2:#aec5cf;--ui-text-b57c29:#e8c99b;--ui-text-b7ccd1:#aec5cf;--ui-text-b8cbd7:#aec5cf;--ui-text-bdcdd8:#aec5cf;--ui-text-c0d2d8:#aec5cf;--ui-text-cae0e4:#aec5cf;--ui-text-cfe0f5:#e5f0f3;--ui-text-d7ecee:#e5f0f3;--ui-text-edf6fa:#e5f0f3;--ui-text-f1f8f9:#e5f0f3;--ui-text-fff:#e5f0f3;}}

html[data-theme] .eyebrow{color:var(--text-muted)}

/* Component-local tokens also follow the chosen palette. */
html[data-theme] #settings-hub{--settings-teal:var(--accent);--settings-border:var(--stroke);--settings-muted:var(--text-muted)}
html[data-theme] #diagnostics-hub{--diag-teal:var(--accent);--diag-line:var(--stroke)}
html[data-theme] .filter-bar #reload{background:var(--accent);color:var(--accent-text)}
html[data-theme] #settings-hub .secondary,html[data-theme] #diagnostics-hub .secondary{background:var(--surface-soft);color:var(--accent);border:1px solid var(--stroke)}
html[data-theme] button[role=tab]:hover{background:var(--surface-soft)}

/* One content edge for the application header, navigation and every page. */
body:not(.auth-layout){--shell-width:1740px;--shell-gutter:30px}
body:not(.auth-layout) header.top .brand-row,
body:not(.auth-layout)>main{box-sizing:border-box;width:100%;max-width:var(--shell-width);margin-inline:auto;padding-inline:var(--shell-gutter)}
body:not(.auth-layout)>nav.tabs{padding-inline:max(var(--shell-gutter),calc((100% - var(--shell-width))/2 + var(--shell-gutter)))}
@media(max-width:800px){body:not(.auth-layout){--shell-gutter:16px}}

/* Explicit surfaces also protect pages whose older interface.css is cached. */
html[data-theme=dark] .direction-card{background:var(--surface);color:var(--text)}
html[data-theme=dark] .in-card{border-top-color:var(--in)}
html[data-theme=dark] .out-card{border-top-color:var(--out)}
html[data-theme=dark] body:not(.auth-layout)>footer{background:var(--surface-soft);color:var(--text-muted)}
html[data-theme=dark] .card th{background:var(--surface-soft)}
html[data-theme=dark] .card tbody th{background:var(--surface)}
html[data-theme=dark] .card tbody tr:hover{background:var(--surface-soft)}
html[data-theme=dark] .card tbody tr:hover th{background:var(--surface-soft)}
html[data-theme=dark] .multi summary,
html[data-theme=dark] .multi-options{background:var(--surface);color:var(--text);border-color:var(--stroke)}
html[data-theme=dark] .multi-options label{color:var(--text)}
html[data-theme=dark] .multi-options label:hover{background:var(--surface-soft)}
html[data-theme=dark] .multi-options .choose-all,
html[data-theme=dark] .exp a{background:var(--surface-soft);color:var(--accent)}
html[data-theme=dark] .unit{color:var(--text-muted)}
html[data-theme=light]{--ui-text-7b969c:var(--text-muted);--ui-text-6d8189:var(--text-muted);--ui-text-5d7680:var(--text-muted);--ui-text-758891:var(--text-muted);--ui-text-687e88:var(--text-muted);--ui-text-6c7d86:var(--text-muted);--ui-text-667d87:var(--text-muted);--ui-text-607980:var(--text-muted);--ui-text-647e88:var(--text-muted);--ui-text-94b4ba:var(--text-muted);--ui-text-6c858d:var(--text-muted);--ui-text-67808a:var(--text-muted);--ui-text-637e88:var(--text-muted)}

/* Developer attribution shared by signed-in and authentication pages. */
.project-credit{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:4px 7px;margin-top:7px;color:var(--text-muted);font-size:12px;line-height:1.8}
.project-credit a{display:inline-flex;align-items:center;gap:5px;max-width:100%;color:#000;font-weight:650;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;border-radius:3px}
.project-credit a:hover{text-decoration-thickness:2px}
.project-credit a:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
.project-credit a [aria-hidden]{font-size:13px;text-decoration:none}

.project-credit .credit-mark{width:36px;height:36px;object-fit:contain;flex:none}
.project-credit .credit-mark-dark{display:none}
html[data-theme=dark] .project-credit a{color:#f7c900}
html[data-theme=dark] .project-credit .credit-mark-light{display:none}
html[data-theme=dark] .project-credit .credit-mark-dark{display:block}
@media print{html[data-theme] .project-credit a{color:#000}html[data-theme] .project-credit .credit-mark-light{display:block}html[data-theme] .project-credit .credit-mark-dark{display:none}}

/* Global data refresh belongs to the shared header in both themes. */
.presentation-controls{flex-wrap:wrap;align-items:center}
.global-refresh{display:grid;grid-template-columns:auto minmax(82px,100px);gap:2px 8px;align-items:center;font-size:11px;color:#d9e8ec}
.global-refresh select{width:100%;min-height:40px;padding:7px 9px;border:1px solid #45636c;border-radius:9px;background:#1b343e;color:#edf7fa;font:inherit}
.global-refresh select:focus-visible{outline:2px solid #77d9d5;outline-offset:2px}
.global-refresh-status{grid-column:1/-1;text-align:right;font-size:10px;min-height:13px;color:#bad1d9}
.global-refresh-status[data-state=error],.global-refresh-status[data-state=expired]{color:#ffd68b}
@media(max-width:1100px){.header-tools{flex-wrap:wrap;justify-content:flex-end}.global-refresh{grid-template-columns:auto 90px}}
@media(max-width:700px){.global-refresh{grid-template-columns:auto minmax(85px,1fr)}.global-refresh-status{text-align:left}}
@media print{.global-refresh{display:none!important}}

/* One aligned toolbar: captions, equal controls, and a reserved status line. */
body:not(.auth-layout) .header-tools{display:grid;grid-template-columns:auto minmax(150px,210px) auto;align-items:center;gap:18px;flex-wrap:nowrap}
body:not(.auth-layout) .presentation-controls{display:grid;grid-template-columns:128px 176px 152px;align-items:start;gap:10px;min-width:0}
body:not(.auth-layout) .presentation-select,
body:not(.auth-layout) .global-refresh{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:14px 40px 14px;gap:4px;min-width:0;margin:0;padding:0;border:0;border-radius:0;background:none;color:#e5f3f6;font-size:12px;line-height:1.4}
body:not(.auth-layout) .presentation-select .sr-only{position:static!important;grid-row:1;width:auto;height:auto;margin:0;padding:0;overflow:visible;clip:auto;white-space:nowrap;color:#b9cfd6;font-size:11px;line-height:14px}
body:not(.auth-layout) .presentation-select>span[aria-hidden]{position:absolute;left:12px;top:31px;line-height:14px;color:#b9d9df;pointer-events:none}
body:not(.auth-layout) .presentation-select select,
body:not(.auth-layout) .global-refresh select{grid-row:2;display:block;width:100%;min-width:0;max-width:none;height:40px;min-height:40px;margin:0;padding:7px 10px;border:1px solid #45636c;border-radius:9px;background:#1b343e;color:#edf7fa;font:inherit;cursor:pointer;color-scheme:dark}
body:not(.auth-layout) .presentation-select select{padding-left:30px}
body:not(.auth-layout) .presentation-select select:hover,
body:not(.auth-layout) .global-refresh select:hover{border-color:#7599a3;background:#213e48}
body:not(.auth-layout) [data-refresh-label]{grid-row:1;display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap;color:#b9cfd6;font-size:11px;line-height:14px}
body:not(.auth-layout) .global-refresh-status{grid-column:1;grid-row:3;text-align:left;min-height:14px;font-size:10px;line-height:14px;white-space:nowrap}
body:not(.auth-layout) .header-source,
body:not(.auth-layout) .header-clock{min-width:0;margin:0;padding-left:18px;border-left:1px solid #45636c;color:#c5d9df;text-align:left;line-height:1.5}
body:not(.auth-layout) .header-source{gap:4px;font-size:11px}
body:not(.auth-layout) .header-clock{display:block}
body:not(.auth-layout) .header-source #status{font-size:10px;color:#afc9d2;font-variant-numeric:tabular-nums}
body:not(.auth-layout) .user-menu summary{min-height:40px;padding:5px 9px 5px 5px;border:1px solid #45636c;border-radius:24px;background:#ffffff05;gap:8px}
body:not(.auth-layout) .user-menu summary:hover,
body:not(.auth-layout) .user-menu[open] summary{background:#ffffff0d;border-color:#7599a3}
body:not(.auth-layout) .user-menu summary>span:nth-child(2){max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body:not(.auth-layout) .user-avatar{width:28px;height:28px;font-size:12px}
@media(max-width:1250px){
 body:not(.auth-layout) header.top .brand-row{flex-wrap:wrap;gap:12px;padding-block:16px}
 body:not(.auth-layout) .header-tools{width:100%;grid-template-columns:auto minmax(150px,1fr) auto;margin-left:0;gap:16px}
}
@media(max-width:800px){
 body:not(.auth-layout) .header-tools{grid-template-columns:minmax(0,1fr) auto;gap:10px 14px}
 body:not(.auth-layout) .presentation-controls{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) minmax(0,1fr)}
 body:not(.auth-layout) .header-source,
 body:not(.auth-layout) .header-clock{display:flex;border:0;padding:0}
 body:not(.auth-layout) .header-tools>.user-menu{grid-column:2;grid-row:2;justify-self:end}
 body:not(.auth-layout) .user-menu summary>span:not(.user-avatar){display:inline}
}
@media(max-width:560px){
 body:not(.auth-layout) .presentation-controls{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:4px 10px}
 body:not(.auth-layout) .presentation-select{grid-template-rows:14px 40px}
 body:not(.auth-layout) .global-refresh{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(90px,1.35fr);grid-template-rows:40px 14px;gap:2px 10px;align-items:center;padding-top:6px}
 body:not(.auth-layout) .global-refresh [data-refresh-label]{grid-row:1;grid-column:1;font-size:11px;line-height:14px}
 body:not(.auth-layout) .global-refresh select{grid-row:1;grid-column:2}
 body:not(.auth-layout) .global-refresh-status{grid-row:2;grid-column:2}
 body:not(.auth-layout) .header-tools{row-gap:10px}
}
@media print{body:not(.auth-layout) .header-tools{display:none!important}}
/* Methodology, observation age and actual connection failures are distinct. */
:root{--status-info-bg:#edf4f6;--status-info-fg:#365865;--status-good-bg:#e7f5ef;--status-good-fg:#12674c;--status-attention-bg:#fff3dc;--status-attention-fg:#805300;--status-error-bg:#fcebed;--status-error-fg:#9c2639}
:root[data-theme=dark]{--status-info-bg:#233c47;--status-info-fg:#c3dce5;--status-good-bg:#193d34;--status-good-fg:#7be0bb;--status-attention-bg:#423623;--status-attention-fg:#f5cf89;--status-error-bg:#482d36;--status-error-fg:#ffb8c5}
.status-readable{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:16px;padding:4px 9px;line-height:1.5;font-size:12px;font-weight:500;white-space:normal;text-align:start;max-width:100%;overflow-wrap:anywhere}
.status-readable.tone-info{background:var(--status-info-bg);color:var(--status-info-fg)}
.status-readable.tone-good{background:var(--status-good-bg);color:var(--status-good-fg)}
.status-readable.tone-attention{background:var(--status-attention-bg);color:var(--status-attention-fg)}
.status-readable.tone-error{background:var(--status-error-bg);color:var(--status-error-fg)}
.status-reading,.status-basis,.status-reason{display:block;white-space:normal;overflow-wrap:anywhere}
.status-basis,.status-reason{color:var(--mut);font-size:11px;line-height:1.55;margin-top:5px}
.status-details{max-width:360px;min-width:130px;text-align:start;white-space:normal}
.status-details>summary{display:flex;align-items:center;cursor:pointer;gap:3px;list-style:none;color:var(--status-info-fg)}
.status-details>summary::-webkit-details-marker{display:none}
.status-details>summary:focus-visible,.status-action:focus-visible,.evidence>summary:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.status-detail-body{padding:12px;margin-top:8px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font-size:12px;line-height:1.6;white-space:normal}
.status-detail-body ul{margin:8px 0;padding:0;list-style:none}
.status-detail-body li{padding:10px 0;border-top:1px solid var(--line)}
.status-detail-body li>strong{display:block;margin-bottom:5px}
.status-action{display:inline-block;font-size:12px;line-height:1.5;margin-top:8px;color:var(--teal);white-space:normal}
.detail-directions .status-details{max-width:100%}
.evidence>summary,.evidence-pill,.point-comparison-evidence,.data-state.state-unverified{background:var(--status-info-bg)!important;color:var(--status-info-fg)!important;border-color:var(--line)!important}
.evidence>summary{border-radius:14px;font-weight:500;padding:3px 9px;font-size:11px}
.evidence>div{color:var(--ink);background:var(--card)}
.point-state.state-empty,.point-state.state-unconfigured,.point-state.state-unknown,.point-state.state-partial,.diag-badge.state-empty,.diag-badge.state-unverified,.status-chip.status-empty{background:var(--status-info-bg)!important;color:var(--status-info-fg)!important}
.point-state.state-clock_error{background:var(--status-attention-bg);color:var(--status-attention-fg)}
.camera-health-label{display:block;font-size:11px;color:var(--mut);margin:7px 0 5px}
.camera-media-state{font-size:12px;border-radius:8px;padding:6px 9px;margin:10px 0 0;background:var(--status-info-bg);color:var(--status-info-fg)}
.camera-media-state[data-tone=good]{background:var(--status-good-bg);color:var(--status-good-fg)}
.camera-media-state[data-tone=attention]{background:var(--status-attention-bg);color:var(--status-attention-fg)}
.camera-media-state[data-tone=error]{background:var(--status-error-bg);color:var(--status-error-fg)}
@media(max-width:560px){.status-details{min-width:110px}.status-detail-body{padding:8px}.status-readable{font-size:11px}}

.archive-evidence{background:var(--status-info-bg)!important;color:var(--status-info-fg)!important;border-color:var(--line)!important}.archive-evidence summary{color:var(--status-info-fg)!important}
