/* Shared appearance tokens keep every module on the same palette. */
:root{color-scheme:light;--surface:#fff;--canvas:#f3f5f8;--raised:#edf2f8;--input:#fff;--link:#003f99;--ink:#203044;--muted:#57667a;--line:#dbe2ea;--input-line:#b4c1d0;--row-hover:#f0f5fc;--badge-bg:#e7effa;--badge-ink:#244c7a;--success-bg:#e5f0e9;--success-ink:#205735;--warn-bg:#fff8e9;--warn-ink:#725409;--error-bg:#f9e3e3;--error-ink:#a32929}
:root[data-color-scheme=dark]{color-scheme:dark;--surface:#152235;--canvas:#0c1421;--raised:#1c2d44;--input:#101b2c;--link:#91bcff;--ink:#e3ebf7;--muted:#a9b9ce;--line:#34465f;--input-line:#586c88;--row-hover:#1d304b;--badge-bg:#253e61;--badge-ink:#c6dcff;--success-bg:#173c2b;--success-ink:#b4e6c8;--warn-bg:#382d18;--warn-ink:#f0d38a;--error-bg:#46232b;--error-ink:#ffb1b9;--brand-ink:var(--ink);--brand-muted:var(--muted);--brand-line:var(--line)}
body{background:var(--canvas);color:var(--ink)}
.card,.login-card{background:var(--surface);border-color:var(--line)}
a{color:var(--link)}a:where(:not(.button,.brand,.sidebar a)):hover{color:var(--link)}
.muted,.field-help,.login-note,.empty,.stat-title,.site-footer,.login-card>p{color:var(--muted)}
.form-group :is(input,textarea,select),.data-table th :is(input,select){background:var(--input);color:var(--ink);border-color:var(--input-line)}
input:disabled,select:disabled,textarea:disabled{opacity:.75}
.data-table th{background:var(--raised);color:var(--ink);border-color:var(--line)}
.data-table td,.comment,.project-ticket-link,.ipam-tree details,.ipam-tree h2,.ipam-facts,.ipam-tree-child{border-color:var(--line)}
.data-table tbody tr:hover{background:var(--row-hover)}
.stat-number,.table-link,.ipam-summary strong,.sync-counts dd{color:var(--link)}
.button-secondary{background:var(--surface);color:var(--link);border-color:var(--input-line)}
.page-heading .button{background:#fff;color:#003f99}.page-heading .button-secondary{background:transparent;color:#fff}
.badge{background:var(--badge-bg);color:var(--badge-ink)}
.messages{background:var(--success-bg);color:var(--success-ink)}
.internal,.sync-notice{background:var(--warn-bg);color:var(--warn-ink)}
.alert{background:var(--error-bg);color:var(--error-ink)}.field-error,.errorlist,.login-card .errorlist{color:var(--error-ink)}
.sync-counts>div{background:var(--raised)}
.ipam-summary span,.ipam-table small,.ipam-facts strong{color:var(--muted)}
.ipam-meter{background:var(--raised)}
:root[data-color-scheme=dark] :is(.ipam-cell.free,.ipam-legend .free){background:#263347;color:#c7d2e2}
:root[data-color-scheme=dark] :is(.ipam-cell.active,.ipam-status.active,.ipam-legend .active){background:#1c4230;color:#b4e6c8}
:root[data-color-scheme=dark] :is(.ipam-cell.reserved,.ipam-status.reserved,.ipam-legend .reserved){background:#47391e;color:#f0d38a}
:root[data-color-scheme=dark] :is(.ipam-cell.dhcp,.ipam-status.dhcp,.ipam-legend .dhcp){background:#253e61;color:#c6dcff}
:root[data-color-scheme=dark] :is(.ipam-cell.offline,.ipam-status.offline,.ipam-legend .offline){background:#46232b;color:#ffb1b9}
.theme-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:#e3ebf7}
.theme-control select{font:inherit;border:1px solid #8497b4;background:#101b2c;color:#fff;border-radius:2px;padding:8px;min-height:36px;max-width:110px;color-scheme:dark}
.theme-control .logout-button{font-size:12px;padding:8px 12px}.theme-control [role=status]{max-width:160px;font-size:11px}
@media(max-width:700px){.theme-control{width:100%}.user-area .theme-control{justify-content:flex-start}}
@media(prefers-reduced-motion:no-preference){.theme-control button:disabled{opacity:.7}}
