:root,
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f4f7fb;
  --panel: #ffffff;
  --line: #d8e1eb;
  --muted: #617083;
  --accent: #187d70;
  --text: #172033;
  --chrome: #ffffff;
  --nav-active: #e6f2ef;
  --nav-active-text: #173f39;
  --button-bg: #edf2f7;
  --button-text: #172033;
  --button-hover-bg: #dfe9ee;
  --button-active-bg: #d3e2e8;
  --button-disabled-bg: #e5ebf0;
  --button-disabled-text: #405362;
  --color-primary: #15836d;
  --color-primary-hover: #116b5b;
  --color-primary-text: #ffffff;
  --color-primary-focus: #70cdb9;
  --color-primary-disabled: #8aaea7;
  --control-bg: #ffffff;
  --control-text: #172033;
  --control-line: #8593a3;
  --table-head: #eef3f8;
  --row-hover: #edf5f5;
  --panel-soft: #f7f9fc;
  --panel-quiet: #f0f4f8;
  --panel-hover: #eaf2f4;
  --note-line: #93c9ba;
  --note-bg: #edf8f4;
  --warning-line: #d6b45c;
  --warning-bg: #fff7e3;
  --warning-text: #73520b;
  --warning: #8a6414;
  --error-text: #b42318;
  --error-bg: #fff0ef;
  --badge-bg: #e5f4f1;
  --badge-text: #21695f;
  --overlay-shadow: 0 10px 28px rgba(15, 23, 42, .16);
  --option-hover: #e6f0f3;
  --danger-bg: #fdebed;
  --danger-text: #9d2735;
  --urgent-bg: #fff0d9;
  --urgent-text: #8a5a12;
  --caution-bg: #fff7d6;
  --caution-text: #746216;
  --archive-bg: #f1e7e8;
  --archive-text: #7c4a50;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #171717;
  --panel: #212121;
  --line: #3a3a3a;
  --muted: #b4b4b4;
  --accent: #c6c6c6;
  --text: #ececec;
  --chrome: #212121;
  --nav-active: #343434;
  --nav-active-text: #ececec;
  --button-bg: #303030;
  --button-text: #ececec;
  --button-hover-bg: #3b3b3b;
  --button-active-bg: #424242;
  --button-disabled-bg: #292929;
  --button-disabled-text: #b4b4b4;
  --color-primary: #454545;
  --color-primary-hover: #505050;
  --color-primary-text: #ffffff;
  --color-primary-focus: #c6c6c6;
  --color-primary-disabled: #535353;
  --control-bg: #212121;
  --control-text: #ececec;
  --control-line: #858585;
  --table-head: #292929;
  --row-hover: #2d2d2d;
  --panel-soft: #262626;
  --panel-quiet: #242424;
  --panel-hover: #303030;
  --note-line: #535353;
  --note-bg: #292929;
  --warning-line: #978354;
  --warning-bg: #383124;
  --warning-text: #ecd3a1;
  --warning: #ecd3a1;
  --error-text: #f0b4b4;
  --error-bg: #3b2b30;
  --badge-bg: #2c302d;
  --badge-text: #b3cdbf;
  --overlay-shadow: 0 10px 28px rgba(0, 0, 0, .35);
  --option-hover: #393939;
  --danger-bg: #3b2b30;
  --danger-text: #f0b4b4;
  --urgent-bg: #383124;
  --urgent-text: #ecd3a1;
  --caution-bg: #353224;
  --caution-text: #e4d6aa;
  --archive-bg: #303030;
  --archive-text: #b4b4b4;
}

.sidebar,
.topbar { background: var(--chrome); }
.nav a.active,
.nav a:hover { background: var(--nav-active); color: var(--nav-active-text); }
.btn { background: var(--button-bg); color: var(--button-text); }
.btn:not(.primary):not(.danger):not(:disabled):not([aria-disabled="true"]):not(.active):not([aria-pressed="true"]):not([aria-selected="true"]):hover {
  background: var(--button-hover-bg); color: var(--button-text); filter: none;
}
.btn:not(.primary):not(.danger):not(:disabled):not([aria-disabled="true"]):not(.active):not([aria-pressed="true"]):not([aria-selected="true"]):active {
  background: var(--button-active-bg); color: var(--button-text); filter: none;
}
.btn:is(.active, [aria-pressed="true"], [aria-selected="true"]) {
  background: var(--nav-active); color: var(--nav-active-text); filter: none;
  box-shadow: inset 0 -3px 0 var(--accent);
}
.btn:focus-visible,
.section-tabs a:focus-visible,
.fuel-section-nav a:focus-visible,
.aat-calendar button:focus-visible {
  outline: 3px solid var(--accent); outline-offset: 3px;
}
.btn:disabled, .btn[aria-disabled="true"] {
  background: var(--button-disabled-bg); color: var(--button-disabled-text);
  opacity: 1; cursor: not-allowed; filter: none;
}
.btn.primary {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: var(--color-primary-text);
}
.btn.primary:hover {
  border-color: var(--color-primary-hover);
  background: var(--color-primary-hover);
  color: var(--color-primary-text);
  filter: none;
}
.btn.primary:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}
.btn.primary:disabled,
.btn.primary[aria-disabled="true"] {
  border-color: var(--color-primary-disabled);
  background: var(--button-disabled-bg);
  color: var(--button-disabled-text);
  opacity: 1;
  cursor: not-allowed;
}
input:not([type=checkbox]),
select,
textarea { border-color: var(--control-line); background: var(--control-bg); color: var(--control-text); }
th { background: var(--table-head); }
tbody tr[data-row-href]:hover { background: var(--row-hover); }
.note,
.notice { border-color: var(--note-line); background: var(--note-bg); }
.warning { border-color: var(--warning-line); background: var(--warning-bg); color: var(--warning-text); }
.errorlist,
.errors { color: var(--error-text); }
.errors { background: var(--error-bg); }
.badge { background: var(--badge-bg); color: var(--badge-text); }
.plan-result,
.counterparty-quick > div,
.role-checks label,
.checkbox-field { background: var(--panel-soft); }
.plan-field,
p[data-row-href]:hover { background: var(--panel-quiet); }
.plan-result[data-row-href]:hover { background: var(--panel-hover); }
.row-menu[open] > summary,
.row-menu nav a:hover { background: var(--button-bg); }
.row-menu nav { background: var(--chrome); }
.deadline-expired,
.notification-danger { background: var(--danger-bg); color: var(--danger-text); }
.deadline-within_7,
.notification-urgent { background: var(--urgent-bg); color: var(--urgent-text); }
.deadline-within_30,
.notification-warning { background: var(--caution-bg); color: var(--caution-text); }
.deadline-later { background: var(--badge-bg); color: var(--badge-text); }
.maintenance-overdue { background: var(--danger-bg); color: var(--danger-text); }
.maintenance-upcoming { background: var(--urgent-bg); color: var(--urgent-text); }
.maintenance-later { background: var(--badge-bg); color: var(--badge-text); }
.badge-archive { background: var(--archive-bg); color: var(--archive-text); }
:root[data-theme="dark"] .document-ok { color: var(--badge-text); }
.searchable-options,
.order-options { box-shadow: var(--overlay-shadow); }
.searchable-options [role=option]:hover,
.searchable-options .highlighted,
.order-options [role=option]:hover,
.order-options .highlighted { background: var(--option-hover); }

.topbar-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
}
.theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 6px 10px;
  background: var(--panel);
  color: var(--text);
  cursor: pointer;
  white-space: nowrap;
}
.theme-toggle:hover { background: var(--button-bg); }
.theme-toggle-icon { width: 1.1em; text-align: center; font-size: 16px; line-height: 1; }
.auth-theme-switch { position: fixed; top: 16px; right: 16px; z-index: 10; }

.mobile-nav-toggle {
  display: none;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 9px 12px;
  background: var(--button-bg);
  color: var(--button-text);
  cursor: pointer;
}
.nav > a,
.nav-section > a,
.nav-submenu > a,
.nav-group-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  text-align: left;
}
.nav-section { margin-top: 14px; }
.nav-section-label { padding: 0 13px 3px; color: var(--muted); font-size: 10px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.nav a { padding: 8px 13px; margin: 2px 0; }
.nav-group { margin-top: 10px; }
.notification-link { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 6px 9px; border: 1px solid var(--line); border-radius: 8px; color: var(--text); }
.notification-link:hover, .notification-link.active { background: var(--nav-active); text-decoration: none; }
.notification-link svg { flex-shrink: 0; }
.section-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.section-tabs a { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 7px 13px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); }
.section-tabs a, .fuel-section-nav a { background: var(--button-bg); color: var(--button-text); }
.section-tabs a:hover, .fuel-section-nav a:hover { background: var(--button-hover-bg); color: var(--button-text); text-decoration: none; }
.section-tabs a:is(.active, [aria-current="page"]),
.fuel-section-nav a:is(.active, [aria-current="page"]),
.section-tabs a:is(.active, [aria-current="page"]):hover,
.fuel-section-nav a:is(.active, [aria-current="page"]):hover {
  background: var(--nav-active); color: var(--nav-active-text); font-weight: 700; text-decoration: none;
  box-shadow: inset 0 -3px 0 var(--accent);
}
@media (min-width: 851px) {
  .sidebar { position: sticky; top: 0; max-height: 100vh; overflow-y: auto; padding: 20px 16px; }
  .sidebar .brand small { font-size: 10px; letter-spacing: .09em; margin-bottom: 18px; }
  .nav-section { margin-top: 10px; }
  .nav a { padding: 5px 13px; margin: 1px 0; font-size: 14px; }
  .nav-group .nav-group-toggle { padding: 5px 13px; margin: 1px 0; font-size: 14px; }
}
@media (min-width: 851px) and (max-height: 920px) {
  .nav a, .nav-group .nav-group-toggle { padding-top: 4px; padding-bottom: 4px; }
}
.nav-group-toggle {
  border: 0;
  border-radius: 9px;
  padding: 8px 13px;
  margin: 2px 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
}
.nav-group-toggle:hover,
.nav-group.has-active-child > .nav-group-toggle {
  background: var(--nav-active);
  color: var(--nav-active-text);
}
.nav-arrow {
  flex: 0 0 auto;
  transition: transform .18s ease;
}
.nav-group-toggle[aria-expanded="true"] .nav-arrow { transform: rotate(180deg); }
.nav-submenu { padding-left: 14px; }
.nav-submenu[hidden] { display: none; }
.nav-submenu a { padding-left: 20px; }
[data-telegram-pending-count][hidden] { display: none; }
.nav-count {
  min-width: 22px;
  padding: 1px 7px;
  border-radius: 999px;
  background: var(--badge-bg);
  color: var(--badge-text);
  font-size: 12px;
  font-weight: 700;
  text-align: center;
}
.registry-sections { margin-bottom: 24px; }
.registry-sections h2 { margin: 0 0 12px; }
.registry-section-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}
.registry-section-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px;
  background: var(--panel);
  color: var(--text);
}

.dashboard-heading,.dashboard-section-title,.dashboard-trip-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}.dashboard-heading{margin-bottom:18px}.dashboard-heading h1,.dashboard-section h2{margin:0}.dashboard-updated,.dashboard-section-title p{margin:5px 0 0}.dashboard-actions{display:flex;gap:8px;flex-wrap:wrap}.dashboard-section{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:18px;margin-bottom:16px}.dashboard-section-title{margin-bottom:13px}.attention-list,.event-list{display:grid}.attention-row,.event-row{display:grid;align-items:center;gap:12px;border-top:1px solid var(--line);padding:10px 12px;color:var(--text)}.attention-row{grid-template-columns:minmax(0,1fr) auto auto;border-left:3px solid transparent}.attention-row:first-child,.event-row:first-child{border-top:0}.attention-row:hover,.event-row:hover{background:var(--panel-hover);text-decoration:none}.attention-danger{border-left-color:var(--danger-text)}.attention-warning{border-left-color:var(--caution-text)}.attention-neutral{border-left-color:var(--muted)}.dashboard-ok{margin:0;color:var(--muted)}.dashboard-summary{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.dashboard-summary>span,.dashboard-summary>a{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:155px;flex:1;padding:10px 13px;border-right:1px solid var(--line);color:var(--muted)}.dashboard-summary>:last-child{border-right:0}.dashboard-summary a:hover{background:var(--panel-hover);text-decoration:none}.dashboard-summary strong{color:var(--text);font-size:18px}.period-switch{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.period-switch a{padding:7px 12px;color:var(--muted);border-left:1px solid var(--line)}.period-switch a:first-child{border-left:0}.period-switch a.active{background:var(--nav-active);color:var(--nav-active-text);font-weight:700}.workday-status{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-top:12px;padding:12px;border-radius:10px;background:var(--panel-soft)}.workday-status>div{display:grid;gap:3px}.workday-form{display:flex;align-items:flex-end;gap:8px;max-width:520px}.workday-form textarea{min-height:38px;height:38px}.dashboard-trips{margin-bottom:10px}.dashboard-trips td{max-width:280px;overflow-wrap:anywhere}.dashboard-trips td:last-child span,.dashboard-trips td:last-child small{display:block}.document-missing{color:var(--danger-text)}.document-ok{color:var(--color-primary)}.status-ok{background:var(--badge-bg);color:var(--badge-text)}.status-warning{background:var(--caution-bg);color:var(--caution-text)}.dashboard-empty{padding:24px 12px;text-align:center;color:var(--muted)}.dashboard-footer{text-align:right;margin-top:10px}.event-row{grid-template-columns:125px minmax(190px,.8fr) minmax(220px,1.4fr) minmax(100px,.4fr)}.event-row time{color:var(--muted);font-variant-numeric:tabular-nums}.event-object{overflow-wrap:anywhere}.event-actor{color:var(--muted)}
@media(max-width:700px){.dashboard-actions{width:100%}.dashboard-actions .btn{flex:1;text-align:center}.dashboard-summary{display:grid;grid-template-columns:1fr 1fr}.dashboard-summary>span,.dashboard-summary>a{min-width:0;border-right:0;border-bottom:1px solid var(--line)}.dashboard-summary>:last-child{border-bottom:0}.workday-status,.workday-form{display:grid;width:100%;max-width:none}.dashboard-trips thead{display:none}.dashboard-trips table,.dashboard-trips tbody,.dashboard-trips tr,.dashboard-trips td{display:block;width:100%}.dashboard-trips tr{padding:10px 12px;border-bottom:1px solid var(--line)}.dashboard-trips td{display:grid;grid-template-columns:100px minmax(0,1fr);gap:8px;padding:5px 0;border:0;max-width:none}.dashboard-trips td:before{content:attr(data-label);color:var(--muted);font-size:12px}.event-row{grid-template-columns:1fr auto}.event-object,.event-actor{grid-column:1/-1}.period-switch{width:100%}.period-switch a{flex:1;text-align:center}}
.registry-section-card:hover {
  border-color: var(--color-primary-focus);
  background: var(--panel-hover);
  text-decoration: none;
}
.registry-section-title { font-weight: 750; }

@media (max-width: 700px) {
  .notification-link-text { display: none; }
  .theme-toggle [data-theme-label] { display: none; }
  .theme-toggle { padding: 7px 9px; }
  .topbar-actions { gap: 6px; }
}

@media (max-width: 850px) {
  .mobile-nav-toggle { display: flex; margin-top: 12px; }
  .nav[data-mobile-nav] {
    display: none;
    overflow: visible;
    flex-direction: column;
    align-items: stretch;
    margin-top: 8px;
  }
  .nav[data-mobile-nav].mobile-open { display: flex; }
  .nav[data-mobile-nav] > a,
  .nav-group-toggle { white-space: normal; }
  .nav-submenu { padding-left: 12px; }
  .nav-submenu a { padding-left: 18px; overflow-wrap: anywhere; }
}

@media (prefers-reduced-motion: reduce) {
  .nav-arrow { transition: none; }
}

/* Aliases consumed by existing modules and the customer cabinet. */
:root { --card: var(--panel); --border: var(--line); --ink: var(--text);
  --surface: var(--panel); --surface-2: var(--panel-soft);
  --success: var(--badge-text); --danger: var(--danger-text);
  --warning-soft: var(--warning-bg); --warning-ink: var(--warning-text);
  --paper: var(--panel); --green: var(--accent); --amber: var(--warning);
  --soft: var(--panel-soft); --verified: var(--badge-bg);
  --mismatch: var(--danger-bg); --changed: var(--warning-bg); }

.portal-header~main{color:var(--text)}
html[data-theme] .review-label[data-state=verified],html[data-theme] .group-review-state[data-state=verified]{color:var(--badge-text)}
html[data-theme] .review-actions button[aria-pressed=true][value=verified]{color:var(--badge-text);background:var(--badge-bg);border-color:var(--note-line)}
html[data-theme] .review-actions button[aria-pressed=true][value=mismatch],html[data-theme] .review-label[data-state=mismatch],html[data-theme] .group-review-state[data-state=mismatch]{color:var(--danger-text)}
html[data-theme] .review-label[data-state=changed],html[data-theme] .group-review-state[data-state=changed]{color:var(--warning-text)}
html[data-theme] .pending-driver-trip,html[data-theme] .summary.has-pending,html[data-theme] .delivery-card.has-pending:not([data-state=verified]),html[data-theme] .individual-trip.has-pending:not([data-state=verified]){background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-text)}
html[data-theme] .dispatcher-note{color:var(--danger-text)}
html[data-theme] .order-item.fulfilled .order-balance,html[data-theme] .order-status.is-complete,html[data-theme] .completed-orders>summary{color:var(--badge-text)}
html[data-theme] :is(.filter-menu>summary,.portal-date){border-color:var(--control-line)}

/* Cabinet links and primary actions share tokens without sharing their roles. */
.portal-header .brand-mark,.portal-header~main .primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}
.portal-header~main .primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}
.portal-calendar .calendar-grid button.selected{background:var(--color-primary);color:var(--color-primary-text)}
