:root[data-palette=day]{--page:#EFF6FA;--surface:#FFFFFF;--ink:#193642;--muted:#48636B;--line:#A6BEC6;--soft:#E1EEF2;--blue:#28646B;--accent:#28646B;--glow:#28646B;--button-ink:#FFFFFF;--sidebar:#E0EEF1;--sidebar-ink:#193642;--nav-active:#C7DFE5;--success:#285B40;--danger:#95363F;--danger-bg:#F8E4E6;--warning:#705016;--warning-bg:#F7EDCC;color-scheme:light}
:root[data-palette=night]{--page:#101917;--surface:#192723;--ink:#E8F3EE;--muted:#ADC5BC;--line:#506D62;--soft:#243B32;--blue:#9AD3B7;--accent:#9AD3B7;--glow:#9AD3B7;--button-ink:#10241A;--sidebar:#0B1310;--sidebar-ink:#E8F3EE;--nav-active:#2C5142;--success:#A2D8B7;--danger:#F2B2B8;--danger-bg:#42242C;--warning:#E8D296;--warning-bg:#3D3520;color-scheme:dark}
:root[data-palette=dawn]{--page:#EAF5F0;--surface:#F7FBF8;--ink:#173F3D;--muted:#446B63;--line:#9BBDB0;--soft:#D9EEE5;--blue:#246B63;--accent:#246B63;--glow:#246B63;--button-ink:#FFFFFF;--sidebar:#D3E9E1;--sidebar-ink:#173F3D;--nav-active:#B6D9CD;--success:#285B40;--danger:#95363F;--danger-bg:#F8E4E6;--warning:#705016;--warning-bg:#F7EDCC;color-scheme:light}
:root[data-palette=sunset]{--page:#F4EBDD;--surface:#FFF8EE;--ink:#493323;--muted:#75583F;--line:#BE946E;--soft:#F1DFC9;--blue:#975025;--accent:#975025;--glow:#975025;--button-ink:#FFFFFF;--sidebar:#E8D5BB;--sidebar-ink:#493323;--nav-active:#DABD96;--success:#285B40;--danger:#95363F;--danger-bg:#F8E4E6;--warning:#705016;--warning-bg:#F7EDCC;color-scheme:light}
:root[data-palette]{--control-line:var(--line);--badge-bg:var(--soft);--badge-ink:var(--ink);--success-bg:color-mix(in srgb,var(--success) 12%,var(--surface));--warning-line:var(--warning);background:var(--page);color:var(--ink)}
:root[data-palette] body{background:var(--page);color:var(--ink)}:root[data-palette] header{background:var(--surface);color:var(--ink);border-color:var(--line)}:root[data-palette] button,:root[data-palette] input,:root[data-palette] select,:root[data-palette] textarea{font:inherit;background:var(--surface);color:var(--ink);border-color:var(--line)}:root[data-palette] button:hover{background:var(--soft);border-color:var(--accent)}:root[data-palette] .primary{background:var(--accent);border-color:var(--accent);color:var(--button-ink);box-shadow:none}:root[data-palette] .primary:hover{background:color-mix(in srgb,var(--accent) 88%,var(--surface));box-shadow:none;transform:translateY(-1px)}:root[data-palette] .subtle,:root[data-palette] .hint,:root[data-palette] .metric span,:root[data-palette] .empty{color:var(--muted)}:root[data-palette] a{color:var(--accent)}:root[data-palette] .table-wrap,:root[data-palette] .file-zone,:root[data-palette] .trip-tile{background:var(--surface);border-color:var(--line)}:root[data-palette] th{background:var(--soft);color:var(--muted)}:root[data-palette] th,:root[data-palette] td{border-color:var(--line)}:root[data-palette] .badge{background:var(--soft);color:var(--ink)}:root[data-palette] .badge.good,:root[data-palette] .good{background:var(--success-bg);color:var(--success)}:root[data-palette] .badge.warning{background:var(--warning-bg);color:var(--warning)}:root[data-palette] .bad{background:var(--danger-bg);color:var(--danger)}:root[data-palette] .warning{background:var(--warning-bg);border-color:var(--warning-line);color:var(--ink)}:root[data-palette] .trip-green{border-color:var(--success)}:root[data-palette] .trip-red{border-color:var(--danger)}:root[data-palette] .trip-yellow{border-color:var(--warning)}:root[data-palette] .file-button{background:var(--soft);border-color:var(--line);color:var(--accent)}:root[data-palette] .stepper .done span{color:var(--button-ink)}:root[data-palette] #notice{background:var(--soft);border-color:var(--line);color:var(--ink)}:root[data-palette] #notice[data-kind=error]{background:var(--danger-bg);border-color:var(--danger)}:root[data-palette] #notice[data-kind=success]{background:var(--success-bg);border-color:var(--success)}:root[data-palette] .operation-status{border-color:var(--line)}:root[data-palette] .operation-status[data-state=error]{border-color:var(--danger)}:root[data-palette] .operation-status[data-state=success]{border-color:var(--success)}:root[data-palette] .operation-status .state-icon{color:var(--accent)}:root[data-palette] #wizard-error{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}:root[data-palette] button,:root[data-palette] .trip-tile{transition:background .18s,border-color .18s,transform .18s}:root[data-palette] :focus-visible{outline:3px solid var(--accent);outline-offset:3px}
@media(prefers-reduced-motion:reduce){:root[data-palette] *{transition:none!important;scroll-behavior:auto!important}:root[data-palette] .primary:hover{transform:none}}

:root[data-palette] .metrics{border:0;gap:14px;padding:0;margin:24px 0}:root[data-palette] .metric{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px;box-shadow:0 5px 16px #00000009}:root[data-palette] .metric strong{display:block;font-size:24px;font-weight:600;line-height:1.3;margin-top:7px}:root[data-palette] .metric span{font-size:12px}:root[data-palette] .gps-operational-card,:root[data-palette] .route-card{box-shadow:0 5px 18px #0000000b;border-radius:10px}:root[data-palette] .error-list,:root[data-palette] .row-error,:root[data-palette] .route-issue{color:var(--danger)}
