html{--ui-bg:#0c1422;--ui-panel:#152236;--ui-inset:#101c2e;--ui-text:#edf4ff;--ui-muted:#abbcd2;--ui-line:#34465e;--ui-accent:#8dc8ff;--ui-on-accent:#102339;--ui-soft:#203b55;--ui-good:#79dfb2;--ui-good-bg:#153c32;--ui-warn:#ffd18a;--ui-warn-bg:#43351e;--ui-bad:#ff9aa7;--ui-bad-bg:#482733;--ui-shadow:#0004;color-scheme:dark}
html[data-theme="ocean"]{--ui-bg:#071d24;--ui-panel:#102e37;--ui-inset:#0b252e;--ui-text:#e9fafb;--ui-muted:#a6c8ce;--ui-line:#31535e;--ui-accent:#6de4d5;--ui-on-accent:#082d2a;--ui-soft:#164641}
html[data-theme="forest"]{--ui-bg:#111d19;--ui-panel:#1c2e26;--ui-inset:#16251f;--ui-text:#f0f6eb;--ui-muted:#b5c8b5;--ui-line:#405647;--ui-accent:#c1dfa0;--ui-on-accent:#25351b;--ui-soft:#35452c}
html[data-theme="light"]{--ui-bg:#eef3f8;--ui-panel:#ffffff;--ui-inset:#f4f7fb;--ui-text:#1d3045;--ui-muted:#50657a;--ui-line:#c8d5e2;--ui-accent:#155d91;--ui-on-accent:#ffffff;--ui-soft:#dfedf8;--ui-good:#146443;--ui-good-bg:#e0f2e8;--ui-warn:#855000;--ui-warn-bg:#fff0d5;--ui-bad:#ad283c;--ui-bad-bg:#fbe7eb;--ui-shadow:#233b5319;color-scheme:light}
html:root{--bg:var(--ui-bg)!important;--card:var(--ui-panel)!important;--panel:var(--ui-panel)!important;--card2:var(--ui-inset)!important;--text:var(--ui-text)!important;--muted:var(--ui-muted)!important;--line:var(--ui-line)!important;--accent:var(--ui-accent)!important;--green:var(--ui-good)!important;--amber:var(--ui-warn)!important;--yellow:var(--ui-warn)!important;--red:var(--ui-bad)!important}
html body{background:var(--ui-bg)!important;color:var(--ui-text)!important;padding-bottom:76px}
body a{color:var(--ui-accent)}
body .tile,body .card,body .panel,body .vehicle,body .summary-card{background:var(--ui-panel);border-color:var(--ui-line);color:var(--ui-text)}
body .muted,body .intro,body .meta,body footer{color:var(--ui-muted)}
body input,body select,body textarea{background:var(--ui-inset);color:var(--ui-text);border-color:var(--ui-line)}
body button,body .btn,body .refresh,body .install-app{background:var(--ui-soft);color:var(--ui-accent);border-color:var(--ui-line)}
body input[type=checkbox],body input[type=radio],body input[type=range]{accent-color:var(--ui-accent)}
body .good,body .status-on{color:var(--ui-good)}
body .notice{background:var(--ui-warn-bg);color:var(--ui-warn);border-color:var(--ui-warn)}
body .result{background:var(--ui-soft);color:var(--ui-text)}
body .filters a.selected,body .range-links a.active{background:var(--ui-accent);color:var(--ui-on-accent)}
body svg text{fill:var(--ui-muted)}
body .leaflet-container{color:#182e3c}
body .leaflet-container a{color:#155d91}
:focus-visible{outline:3px solid var(--ui-accent);outline-offset:3px}
#appearance{position:fixed;right:18px;bottom:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:9999;font:14px/1.5 system-ui,-apple-system,sans-serif;color:var(--ui-text);max-width:calc(100vw - 32px)}
#appearance .appearance-toggle{width:auto;margin:0;padding:10px 16px;border:1px solid var(--ui-line);border-radius:30px;background:var(--ui-panel);color:var(--ui-text);box-shadow:0 4px 20px var(--ui-shadow);font:inherit;cursor:pointer}
#appearance .appearance-panel{position:absolute;bottom:54px;right:0;width:310px;max-width:calc(100vw - 32px);padding:18px;background:var(--ui-panel);border:1px solid var(--ui-line);border-radius:18px;box-shadow:0 8px 35px var(--ui-shadow)}
#appearance [hidden]{display:none!important}
#appearance h2{font-size:18px;margin:0 0 4px;color:var(--ui-text)}
#appearance p{font-size:12px;margin:0 0 14px;color:var(--ui-muted)}
#appearance .appearance-option{display:flex;align-items:center;gap:10px;border:1px solid var(--ui-line);border-radius:10px;padding:10px;margin:7px 0;cursor:pointer;font-size:14px;color:var(--ui-text);font-weight:500}
#appearance input{width:16px;height:16px;margin:0;padding:0;flex:none}
#appearance .appearance-swatch{width:26px;height:26px;border-radius:50%;border:4px solid;flex:none}
#appearance .appearance-current{margin-left:auto;color:var(--ui-muted);font-size:12px}
@media print{#appearance{display:none!important}html body{padding-bottom:0}}

body .status.green,body .badge.good,body .badge.green,body .feedback.good,body .ok{background:var(--ui-good-bg);color:var(--ui-good)}
body .status.amber,body .badge.mid,body .warn{background:var(--ui-warn-bg);color:var(--ui-warn)}
body .status.red,body .badge.bad,body .feedback.bad{background:var(--ui-bad-bg);color:var(--ui-bad)}
body .learning-progress span,body .bar span,body .bar div,body .yield-fill{background:var(--ui-accent)}
body .vehicle:before{background:var(--ui-accent)}
body .status .light{background:var(--ui-warn)}
body .status.green .light{background:var(--ui-good)}
body .status.red .light{background:var(--ui-bad)}
