:root {
  --side-bg:#eceee6;--side-ink:#344331;--side-muted:#626d5b;--header-bg:#fbfaf6;
  --ink-secondary:#53624e;--muted:#69745f;--action-hover:#435741;--on-accent:#ffffff;--on-accent-muted:#d3dfcd;
  --hover:#e6ebde;--selected:#e1ead8;--selected-ink:#3f5733;--focus:#6c8657;--bar-1:#7b8d69;--bar-2:#a3ac8c;--bar-3:#b3b9a0;--bar-4:#c8c8ad;
  --working-bg:#f3e9d8;--working-ink:#725a2e;--done-bg:#dcebd2;--done-ink:#416731;--planned-bg:#e7edf4;--planned-ink:#506982;--deferred-bg:#ededeb;--deferred-ink:#62625e;
  --warm-bg:#f1e8df;--warm-ink:#805c43;--result-negative:#f7c4ae;
  color-scheme:light;
}
:root[data-theme="green"] {
  --bg:#edf3eb;--paper:#f9fcf7;--ink:#233e2d;--muted:#5d7162;--ink-secondary:#45614d;--green:#315c43;--olive:#779574;--line:#d0dece;--soft:#dfeadb;
  --side-bg:#243d31;--side-ink:#edf4e8;--side-muted:#b2c4b1;--header-bg:#e3edde;--hover:#d8e7d2;--selected:#d0e2c7;--selected-ink:#23472d;--focus:#537e50;--action-hover:#3c6b4d;
  --bar-1:#58845e;--bar-2:#7c9c72;--bar-3:#a2b69a;--bar-4:#c0ccaf;
}
:root[data-theme="dark"] {
  --bg:#191e1b;--paper:#242b25;--ink:#edf0e7;--muted:#aab5a5;--ink-secondary:#c3cdbd;--green:#b3cca2;--olive:#a1b595;--line:#3b463c;--soft:#2e382e;--clay:#d4a17d;--red:#f1a18d;
  --side-bg:#202621;--side-ink:#e7eddf;--side-muted:#abb6a3;--header-bg:#202621;--hover:#354334;--selected:#3c4e36;--selected-ink:#e0ecd8;--focus:#bed6ac;--action-hover:#c3d9b4;--on-accent:#1b2818;--on-accent-muted:#344b2a;
  --bar-1:#a7bf92;--bar-2:#819b71;--bar-3:#667f5a;--bar-4:#506648;
  --working-bg:#453a26;--working-ink:#e8c384;--done-bg:#2b3e2c;--done-ink:#b8d5a6;--planned-bg:#2b3848;--planned-ink:#b3c9e2;--deferred-bg:#343837;--deferred-ink:#bec4bf;--warm-bg:#44352a;--warm-ink:#e0b993;--result-negative:#803424;
  color-scheme:dark;
}
html,body{background:var(--bg);color:var(--ink)}
.sidebar{background:var(--side-bg);border-color:var(--line);color:var(--side-ink)}
.sidebar{overflow:hidden}
.sidebar .brand,.sidebar .place,.sidebar-bottom{flex-shrink:0}
.sidebar #navigation{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:12px}
.brand small,.place small,.nav-group-label,.profile small,.profile-arrow{color:var(--side-muted)}
.place,.brand-mark,.profile{border-color:var(--line)}
.status-dot{background:var(--olive)}
.nav-item{color:var(--side-muted)}
.nav-item:hover{background:var(--hover);color:var(--ink)}
.nav-item.active,.btn.primary,.stat.result,.tree-root{background:var(--green);border-color:var(--green);color:var(--on-accent)}
.nav-item .nav-badge{background:var(--soft);color:var(--ink-secondary)}
.nav-item.active .nav-badge{background:var(--on-accent);color:var(--green)}
.profile{background:var(--side-bg);color:var(--side-ink)}
.avatar{background:var(--soft);color:var(--ink-secondary)}
.topbar{background:var(--header-bg)}
.breadcrumb,.breadcrumb span,.eyebrow,.subtitle,.stat-top,.stat-note,.section-label,.panel-subtitle,.analysis-date,.analysis-caption,.task-meta,.mini-metrics small,.person-card p,.task-card-footer,.record-note,footer,footer button,.modal-heading p,.modal-warning,.auth-card p,#cloud-status,.duty-role{color:var(--muted)}
.breadcrumb b,.bar-label b,td.amount,td strong,.modal-text strong{color:var(--ink)}
.period-select,.btn,.search,.duty-select,.field input,.field select,.field textarea{background:var(--paper);border-color:var(--line);color:var(--ink)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.btn:hover,.icon-btn:hover{background:var(--hover)}
.btn.primary:hover{background:var(--action-hover);color:var(--on-accent)}
.icon-btn,.row-action{color:var(--muted)}
.month-notice,.stat.tint,.plan-card,.analysis-card.highlight,.summary-card,.task-column,.callout,.table-total,.empty-graphic,.script-card,.duty-day.weekend{background:var(--soft);border-color:var(--line)}
.month-notice,.bar-label,.plan-caption,.plan-value small,.daily-plan,.progress-caption,.analysis-text,.task-column h3,.tree-column p,.callout,.modal-text,.script-text,.staff-access>p,.staff-access-grid p{color:var(--ink-secondary)}
.stat:hover{border-color:var(--olive)}
.stat-top svg,.stat-value .currency,.analysis-card h3 svg,.search svg{color:var(--olive)}
.stat.result .stat-top,.stat.result .stat-note,.stat.result .stat-value .currency,.stat.result .stat-top svg{color:var(--on-accent-muted)}
.stat.result .negative{color:var(--result-negative)!important}
.link-button,.month-notice a,.modal-text a{color:var(--ink-secondary)}
.link-button:hover{color:var(--ink)}
.bar-track,.plan-progress{background:var(--line)}
.bar-fill,.plan-progress>span{background:var(--bar-1)}
.bar-row:nth-child(2) .bar-fill{background:var(--bar-2)}
.bar-row:nth-child(3) .bar-fill{background:var(--bar-3)}
.bar-row:nth-child(4) .bar-fill{background:var(--bar-4)}
.plan-card:after,.task-mini,.person-bottom,.tree-column h3{border-color:var(--line)}
.task-check{border-color:var(--line);color:var(--ink-secondary)}
.task-check.done,.filter.active,.duty-day.assigned{background:var(--selected);color:var(--selected-ink);border-color:var(--line)}
.task-mini.done>span,.task-card.done .task-name{color:var(--muted)}
.filter{border-color:var(--line);color:var(--ink-secondary)}
th{background:var(--soft);color:var(--muted);border-color:var(--line)}
td{border-color:var(--line);color:var(--ink-secondary)}
.empty-graphic,.empty-state p,.summary-card small{color:var(--muted)}
.task-card{background:var(--paper);border-color:var(--line)}
.task-card select,.status-select{background:var(--soft);color:var(--ink-secondary);border-color:var(--line)}
.status-select.working{background:var(--working-bg);color:var(--working-ink);border-color:var(--working-bg)}
.status-select.done{background:var(--done-bg);color:var(--done-ink);border-color:var(--done-bg)}
.status-select.planned{background:var(--planned-bg);color:var(--planned-ink);border-color:var(--planned-bg)}
.status-select.deferred{background:var(--deferred-bg);color:var(--deferred-ink);border-color:var(--deferred-bg)}
.tag,.duty-role-tag{background:var(--soft);color:var(--ink-secondary)}
.tag.variable,.duty-role-tag.admins{background:var(--warm-bg);color:var(--warm-ink)}
dialog,.auth-card{background:var(--paper);color:var(--ink);border-color:var(--line)}
.field{color:var(--ink-secondary)}
.auth-screen{background:var(--bg)}
.auth-card #auth-error{color:var(--red)}
#toast{background:var(--green);border-color:var(--green);color:var(--on-accent)}
.scripts-search input{color:var(--ink)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-color:var(--focus)}
.sidebar-bottom{padding-top:18px}
.theme-picker{border:0;border-top:1px solid var(--line);margin:0 0 18px;padding:18px 0 0;min-width:0}
.theme-picker legend{float:left;width:100%;padding:0;margin-bottom:13px;font-size:11px;font-weight:500;color:var(--side-ink)}
.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;clear:both}
.theme-choice{background:transparent;border:1px solid transparent;border-radius:9px;color:var(--side-muted);padding:11px 2px 9px;display:flex;flex-direction:column;align-items:center;gap:9px;font-size:10px;min-height:79px}
.theme-choice:hover{border-color:var(--side-muted)}
.theme-choice[aria-pressed="true"]{border-color:var(--side-ink);color:var(--side-ink);background:color-mix(in srgb,var(--side-ink) 5%,transparent)}
.theme-swatch{width:25px;height:25px;border-radius:50%;border:1px solid #b9c5b2;display:block;flex:none}
.theme-swatch.light{background:#f4f0df}
.theme-swatch.green{background:linear-gradient(135deg,#c1ddba 50%,#315c43 50%)}
.theme-swatch.dark{background:linear-gradient(135deg,#bcc4b7 50%,#202621 50%)}
.theme-hint{font-size:9px;color:var(--side-muted);line-height:1.5;text-align:center;margin:10px 0 0}
@media(max-width:730px){.theme-choice{min-height:83px}.theme-picker{padding-top:18px}}
