/* Shared theme palette. Public ui-theme.css must match this file. */
:root[data-ui-page] { color-scheme:light; --ui-bg:#f3f7f5; --ui-panel:#fff; --ui-soft:#edf3ef; --ui-text:#172b21; --ui-muted:#63746b; --ui-line:#cbd8d0; --ui-green-ink:#176343; --ui-blue-ink:#21658c; --ui-red-ink:#a32c2c; --ui-amber-ink:#795400; --ui-violet-ink:#72518a; --ui-green-bg:#e4f3eb; --ui-blue-bg:#e6f2fb; --ui-red-bg:#fdeaea; --ui-amber-bg:#fff3d7; --ui-violet-bg:#eee6f5; }
:root[data-theme="dark"] { color-scheme:dark; --ui-bg:#111a16; --ui-panel:#1a2720; --ui-soft:#24362b; --ui-text:#edf3ef; --ui-muted:#b1c0b7; --ui-line:#42594b; --ui-green-ink:#a7ddb9; --ui-blue-ink:#b8d9ed; --ui-red-ink:#ffb9b4; --ui-amber-ink:#f0d79d; --ui-violet-ink:#d4bde6; --ui-green-bg:#243d2d; --ui-blue-bg:#233b49; --ui-red-bg:#482b2c; --ui-amber-bg:#44371d; --ui-violet-bg:#3e304b;
--ink:var(--ui-text); --fg:var(--ui-text); --muted:var(--ui-muted); --line:var(--ui-line); --paper:var(--ui-panel); --white:var(--ui-panel); --wash:var(--ui-bg); --bg:var(--ui-bg); --panel:var(--ui-panel); --panel-soft:var(--ui-soft); --soft:var(--ui-soft); --red:var(--ui-red-ink); --blue:var(--ui-blue-ink); --amber:var(--ui-amber-ink); --red-wash:var(--ui-red-bg); --green-wash:var(--ui-green-bg); --blue-wash:var(--ui-blue-bg); --amber-wash:var(--ui-amber-bg); --brand-soft:var(--ui-green-bg); --danger:var(--ui-red-ink); --danger-soft:var(--ui-red-bg); --success:var(--ui-green-ink); --success-soft:var(--ui-green-bg); --warn:var(--ui-amber-ink); --warn-soft:var(--ui-amber-bg); }
:root[data-theme="dark"] body { background:var(--ui-bg); color:var(--ui-text); }
:root[data-theme="dark"] :is(input,select,textarea,dialog) { background-color:var(--ui-panel); color:var(--ui-text); border-color:var(--ui-line); }
:root[data-theme="dark"] :is(input,textarea)::placeholder { color:var(--ui-muted); opacity:1; }
:root[data-theme="dark"] :where(button,a,input,select,textarea,summary):focus-visible { outline-color:#8ecfa7; }
.theme-heading { display:flex; align-items:center; justify-content:flex-start; gap:10px; min-width:0; }
.theme-heading > :is(h1,.user-name,strong) { min-width:0; }
button.ui-theme-toggle { box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; flex:0 0 34px; width:34px; height:34px; min-height:34px; padding:0; margin:0; border:1px solid var(--ui-line); border-radius:6px; color:var(--ui-text); background:var(--ui-panel); cursor:pointer; vertical-align:middle; touch-action:manipulation; pointer-events:auto; }
button.ui-theme-toggle:hover { background:var(--ui-soft); }
button.ui-theme-toggle svg { display:block; flex:none; }
button.ui-theme-toggle:focus-visible { outline:3px solid #2f8b5b; outline-offset:3px; }
@media(max-width:640px) { button.ui-theme-toggle { flex-basis:44px; width:44px; height:44px; min-height:44px; } .theme-heading { gap:8px; } }


/* public */
:root[data-ui-page="public"][data-theme="dark"] body {color:var(--fg);background:var(--bg)}
:root[data-ui-page="public"][data-theme="dark"] p {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .btn {border:1px solid transparent}
:root[data-ui-page="public"][data-theme="dark"] .btn-brand {background:var(--brand);color:#fff}
:root[data-ui-page="public"][data-theme="dark"] .btn-quiet {border-color:var(--line);background:var(--ui-panel);color:var(--fg)}
:root[data-ui-page="public"][data-theme="dark"] .panel {background:var(--panel);border:1px solid var(--line)}
:root[data-ui-page="public"][data-theme="dark"] .price-tabs {border:1px solid var(--line);background:var(--soft)}
:root[data-ui-page="public"][data-theme="dark"] .price-tab {border:0;background:transparent;color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .price-tab.active {background:var(--ui-panel);color:var(--ui-green-ink)}
:root[data-ui-page="public"][data-theme="dark"] .price {background:var(--soft);border:1px solid var(--line)}
:root[data-ui-page="public"][data-theme="dark"] .price span {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .metric {background:var(--soft);border:1px solid var(--line)}
:root[data-ui-page="public"][data-theme="dark"] .metric-label {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .temperature-toggle {border:0;background:transparent;color:var(--ui-green-ink)}
:root[data-ui-page="public"][data-theme="dark"] .temperature-toggle::after {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .metric-value {color:var(--fg)}
:root[data-ui-page="public"][data-theme="dark"] .metric-note {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] #court-status {background:var(--ui-soft)}
:root[data-ui-page="public"][data-theme="dark"] #court-next {background:var(--success-soft);color:var(--success)}
:root[data-ui-page="public"][data-theme="dark"] .booking-band {background:var(--brand-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
:root[data-ui-page="public"][data-theme="dark"] .calendar-navigation button {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="public"][data-theme="dark"] #schedule-updated {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] #loading {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .loader-dot {background:var(--ui-soft)}
:root[data-ui-page="public"][data-theme="dark"] .day {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="public"][data-theme="dark"] .day-wd {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .free-day {background:var(--success-soft);border-color:var(--ui-line)}
:root[data-ui-page="public"][data-theme="dark"] .partially-available {background:var(--warn-soft);border-color:var(--ui-line)}
:root[data-ui-page="public"][data-theme="dark"] .closed-day {background:var(--ui-soft);border-color:var(--ui-line);color:var(--ui-muted)}
:root[data-ui-page="public"][data-theme="dark"] .closed-day .day-wd {color:var(--ui-muted)}
:root[data-ui-page="public"][data-theme="dark"] .fully-booked {background:var(--danger-soft);border-color:var(--ui-line);color:var(--ui-red-ink)}
:root[data-ui-page="public"][data-theme="dark"] .today {outline:3px solid rgba(11,107,58,.32)}
:root[data-ui-page="public"][data-theme="dark"] .calendar.skeleton .day {background:linear-gradient(90deg,var(--ui-soft) 25%,var(--ui-soft) 37%,var(--ui-soft) 63%);color:transparent;border-color:var(--ui-line)}
:root[data-ui-page="public"][data-theme="dark"] .legend {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .schedule-empty {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .schedule-item {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="public"][data-theme="dark"] .separator {color:var(--ui-muted)}
:root[data-ui-page="public"][data-theme="dark"] .status.booked {color:var(--ui-red-ink);background:var(--danger-soft)}
:root[data-ui-page="public"][data-theme="dark"] .status.free {color:#fff;background:var(--brand)}
:root[data-ui-page="public"][data-theme="dark"] .booking-dialog {border:0;color:var(--fg)}
:root[data-ui-page="public"][data-theme="dark"] .dialog-close {border:0;background:transparent;color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .booking-field label {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .booking-field select {border:1px solid var(--line);background:var(--ui-panel);color:var(--fg)}
:root[data-ui-page="public"][data-theme="dark"] .booking-summary {border:1px solid var(--ui-line);background:var(--success-soft)}
:root[data-ui-page="public"][data-theme="dark"] :where(button,a,select):focus-visible {outline:3px solid rgba(11,107,58,.35)}
:root[data-ui-page="public"][data-theme="dark"] .footer {color:var(--muted)}
:root[data-ui-page="public"][data-theme="dark"] .mobile-cta {background:rgba(255,255,255,.92);border-top:1px solid var(--line)}
:root[data-ui-page="public"][data-theme="dark"] .schedule-close {border:1px solid var(--line);background:var(--ui-panel)}

/* admin */
:root[data-ui-page="admin"][data-theme="dark"] body {background:var(--wash);color:var(--ink)}
:root[data-ui-page="admin"][data-theme="dark"] .visually-hidden {border:0}
:root[data-ui-page="admin"][data-theme="dark"] .compact-command {border:1px solid var(--ui-line);background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .compact-command:hover {background:var(--ui-green-bg)}
:root[data-ui-page="admin"][data-theme="dark"] .muted {color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] .day-loading {color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] input,:root[data-ui-page="admin"][data-theme="dark"] select,:root[data-ui-page="admin"][data-theme="dark"] textarea {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ink)}
:root[data-ui-page="admin"][data-theme="dark"] input:focus,:root[data-ui-page="admin"][data-theme="dark"] select:focus,:root[data-ui-page="admin"][data-theme="dark"] textarea:focus {outline:3px solid var(--ui-line);border-color:var(--green)}
:root[data-ui-page="admin"][data-theme="dark"] .date-step {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-green-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .date-step:hover {background:var(--ui-green-bg)}
:root[data-ui-page="admin"][data-theme="dark"] .date-current {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="admin"][data-theme="dark"] .date-current:hover {background:var(--ui-green-bg)}
:root[data-ui-page="admin"][data-theme="dark"] section {background:var(--paper);border:1px solid var(--line)}
:root[data-ui-page="admin"][data-theme="dark"] .bookings-panel {background:var(--paper);border:1px solid var(--line)}
:root[data-ui-page="admin"][data-theme="dark"] .booking-toggle {color:var(--ui-green-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .bookings {border-top:1px solid var(--line)}
:root[data-ui-page="admin"][data-theme="dark"] .booking {border-bottom:1px solid var(--line)}
:root[data-ui-page="admin"][data-theme="dark"] .booking.cancellation-row {background:var(--ui-amber-bg);border-left:4px solid #d0a51d}
:root[data-ui-page="admin"][data-theme="dark"] .booking-source {color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] .booking-detail {color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] .action {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="admin"][data-theme="dark"] .action:hover {background:var(--ui-soft)}
:root[data-ui-page="admin"][data-theme="dark"] .action.danger {color:var(--red);border-color:var(--ui-line)}
:root[data-ui-page="admin"][data-theme="dark"] .action:disabled {background:var(--ui-soft)}
:root[data-ui-page="admin"][data-theme="dark"] .empty {color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] .day-view {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="admin"][data-theme="dark"] .day-hour {border-top:1px solid var(--ui-line);color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] .day-free-slot {border:1px solid transparent;background:transparent}
:root[data-ui-page="admin"][data-theme="dark"] .day-free-slot:hover {border-color:var(--ui-line);background:var(--ui-green-bg)}
:root[data-ui-page="admin"][data-theme="dark"] .day-event {border:0;border-left:4px solid var(--green);background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .day-event.unpaid {border-color:#c43a3a;background:var(--ui-red-bg);color:var(--ui-red-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .day-event.balance {border-color:#2c78a8;background:var(--ui-blue-bg);color:var(--ui-blue-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .day-event.owner {border-color:var(--ui-line);background:var(--ui-soft);color:var(--ui-text)}
:root[data-ui-page="admin"][data-theme="dark"] .day-event.cancellation {border-color:#d0a51d;background:var(--ui-amber-bg);color:var(--ui-amber-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .account-tag {color:var(--ui-green-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .tariff,:root[data-ui-page="admin"][data-theme="dark"] .tariff-choice {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="admin"][data-theme="dark"] .tariff.active,:root[data-ui-page="admin"][data-theme="dark"] .tariff-choice.active {background:var(--ui-green-bg);border-color:var(--green);color:var(--ui-green-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .vehicle-chip {border:0;background:var(--ui-blue-bg);color:var(--ui-blue-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .vehicle-chip:hover {background:var(--ui-blue-bg)}
:root[data-ui-page="admin"][data-theme="dark"] .vehicle-chip.active {background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .vehicle-empty {color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] .textarea-note {color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] .primary {border:0;background:var(--green);color:#fff}
:root[data-ui-page="admin"][data-theme="dark"] .primary:hover {background:var(--green-dark)}
:root[data-ui-page="admin"][data-theme="dark"] .message.ok {background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .message.error {background:var(--red-wash);color:var(--red)}
:root[data-ui-page="admin"][data-theme="dark"] dialog {border:0}
:root[data-ui-page="admin"][data-theme="dark"] .close {border:0;background:transparent;color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] .fee-note {background:var(--ui-amber-bg);border:1px solid var(--ui-line)}
:root[data-ui-page="admin"][data-theme="dark"] .secondary {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="admin"][data-theme="dark"] .weekday span {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="admin"][data-theme="dark"] .weekday input:checked+span {background:var(--ui-green-bg);border-color:var(--green);color:var(--ui-green-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .recurring-result {border:1px solid var(--line)}
:root[data-ui-page="admin"][data-theme="dark"] .conflict-list {color:var(--red)}
:root[data-ui-page="admin"][data-theme="dark"] .batch-remove,:root[data-ui-page="admin"][data-theme="dark"] .week-template-remove {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--red)}
:root[data-ui-page="admin"][data-theme="dark"] .batch-remove:hover,:root[data-ui-page="admin"][data-theme="dark"] .week-template-remove:hover {background:var(--ui-red-bg)}
:root[data-ui-page="admin"][data-theme="dark"] .student-picker {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="admin"][data-theme="dark"] .student-picker-summary-text {color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] .student-selected-chip {background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .student-option {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="admin"][data-theme="dark"] .student-empty {color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] .student-add {border:0;background:transparent;color:var(--ui-green-ink)}
:root[data-ui-page="admin"][data-theme="dark"] .student-vehicles {color:var(--muted)}
:root[data-ui-page="admin"][data-theme="dark"] :where(button,a,input,select,textarea,summary):focus-visible {outline:3px solid #2f7d5b}

/* dispatch */
:root[data-ui-page="dispatch"][data-theme="dark"] body {background:var(--wash);color:var(--ink)}
:root[data-ui-page="dispatch"][data-theme="dark"] .muted {color:var(--muted)}
:root[data-ui-page="dispatch"][data-theme="dark"] .updated {background:var(--paper);border:1px solid var(--line)}
:root[data-ui-page="dispatch"][data-theme="dark"] .status.green {background:var(--green-wash);color:var(--ui-green-ink)}
:root[data-ui-page="dispatch"][data-theme="dark"] .status.red {background:var(--red-wash);color:var(--red)}
:root[data-ui-page="dispatch"][data-theme="dark"] .status.amber {background:var(--amber-wash);color:var(--amber)}
:root[data-ui-page="dispatch"][data-theme="dark"] .status.gray {background:var(--ui-soft);color:var(--ui-muted)}
:root[data-ui-page="dispatch"][data-theme="dark"] .plate {background:var(--ui-blue-bg);color:var(--ui-blue-ink)}
:root[data-ui-page="dispatch"][data-theme="dark"] .owner-block {background:var(--paper);border:1px solid var(--line)}
:root[data-ui-page="dispatch"][data-theme="dark"] .block-month {border-left:5px solid var(--green)}
:root[data-ui-page="dispatch"][data-theme="dark"] .block-light {border-left:5px solid var(--blue)}
:root[data-ui-page="dispatch"][data-theme="dark"] .block-court {border-left:5px solid var(--green)}
:root[data-ui-page="dispatch"][data-theme="dark"] .block-gate {border-left:5px solid var(--red)}
:root[data-ui-page="dispatch"][data-theme="dark"] .block-ocr {border-left:5px solid var(--amber)}
:root[data-ui-page="dispatch"][data-theme="dark"] .block-chat {border-left:5px solid var(--blue)}
:root[data-ui-page="dispatch"][data-theme="dark"] .block-money {border-left:5px solid var(--green)}
:root[data-ui-page="dispatch"][data-theme="dark"] .block-today {border-left:5px solid var(--green-dark)}
:root[data-ui-page="dispatch"][data-theme="dark"] .block-endday {border-left:5px solid var(--gold)}
:root[data-ui-page="dispatch"][data-theme="dark"] .block-head {border-bottom:1px solid var(--line)}
:root[data-ui-page="dispatch"][data-theme="dark"] .metric strong {color:var(--ui-green-ink)}
:root[data-ui-page="dispatch"][data-theme="dark"] .metric span {color:var(--muted)}
:root[data-ui-page="dispatch"][data-theme="dark"] .row {border-top:1px solid var(--line)}
:root[data-ui-page="dispatch"][data-theme="dark"] .label {color:var(--muted)}
:root[data-ui-page="dispatch"][data-theme="dark"] .small-button {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-green-ink)}
:root[data-ui-page="dispatch"][data-theme="dark"] .control-button {border:1px solid var(--ui-line);background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="dispatch"][data-theme="dark"] .control-button.danger {border-color:var(--ui-line);background:var(--ui-panel);color:var(--red)}
:root[data-ui-page="dispatch"][data-theme="dark"] .month-picker {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ink)}
:root[data-ui-page="dispatch"][data-theme="dark"] .chat-message.worker {background:var(--blue-wash)}
:root[data-ui-page="dispatch"][data-theme="dark"] .chat-message.owner {background:var(--green-wash)}
:root[data-ui-page="dispatch"][data-theme="dark"] .chat-compose textarea {border:1px solid var(--line)}
:root[data-ui-page="dispatch"][data-theme="dark"] .chat-compose button {border:1px solid var(--green);background:var(--green);color:#fff}
:root[data-ui-page="dispatch"][data-theme="dark"] .message {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="dispatch"][data-theme="dark"] .connection-message {background:var(--amber-wash);color:var(--ui-amber-ink);border:1px solid var(--ui-line)}

/* finance */
:root[data-ui-page="finance"][data-theme="dark"] body {background:var(--wash);color:var(--ink)}
:root[data-ui-page="finance"][data-theme="dark"] .muted {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .month-step {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .month-step:hover {background:var(--ui-green-bg)}
:root[data-ui-page="finance"][data-theme="dark"] .month-current {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="finance"][data-theme="dark"] .loading {border:1px solid var(--ui-line);background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .message.ok {background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .message.error {background:var(--red-wash);color:var(--red)}
:root[data-ui-page="finance"][data-theme="dark"] .stat {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="finance"][data-theme="dark"] .stat span {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .stat strong.positive {color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .stat strong.negative {color:var(--red)}
:root[data-ui-page="finance"][data-theme="dark"] .stat small {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .stat-help summary {color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .stat-help p {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .panel {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="finance"][data-theme="dark"] .panel-summary:hover {background:var(--ui-soft)}
:root[data-ui-page="finance"][data-theme="dark"] .panel-toggle {color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .panel-content {border-top:1px solid var(--line)}
:root[data-ui-page="finance"][data-theme="dark"] .list-item {border-top:1px solid var(--line)}
:root[data-ui-page="finance"][data-theme="dark"] .list-item:first-child {border-top:0}
:root[data-ui-page="finance"][data-theme="dark"] .list-copy span {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .empty {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .bulk-payment {border:1px solid var(--ui-line);background:var(--ui-green-bg)}
:root[data-ui-page="finance"][data-theme="dark"] .bulk-payment strong {color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .bulk-payment span {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .bulk-payment-preview {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="finance"][data-theme="dark"] .bulk-payment-preview span {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .search-result {border-top:1px solid var(--line)}
:root[data-ui-page="finance"][data-theme="dark"] .search-result-time span,:root[data-ui-page="finance"][data-theme="dark"] .search-result-copy span {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .search-result-state .paid {color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .search-result-state .unpaid {color:var(--red)}
:root[data-ui-page="finance"][data-theme="dark"] .search-empty {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .overall div {border:1px solid var(--line)}
:root[data-ui-page="finance"][data-theme="dark"] .overall span {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .overall .positive {color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .overall .negative {color:var(--red)}
:root[data-ui-page="finance"][data-theme="dark"] .balance-card {border:1px solid var(--ui-line);background:var(--ui-green-bg)}
:root[data-ui-page="finance"][data-theme="dark"] .balance-hours {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .balance-state {color:var(--ink)}
:root[data-ui-page="finance"][data-theme="dark"] .balance-state.debt {color:var(--red)}
:root[data-ui-page="finance"][data-theme="dark"] .balance-state.advance {color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .balance-details {border-top:1px solid var(--ui-line)}
:root[data-ui-page="finance"][data-theme="dark"] .balance-line {border-bottom:1px solid var(--ui-line)}
:root[data-ui-page="finance"][data-theme="dark"] .balance-line.included span,:root[data-ui-page="finance"][data-theme="dark"] .balance-line.included strong {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .balance-note {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .audit-item {border:1px solid var(--line);border-left:4px solid #c9952d;background:var(--ui-amber-bg)}
:root[data-ui-page="finance"][data-theme="dark"] .audit-item.error {background:var(--ui-red-bg)}
:root[data-ui-page="finance"][data-theme="dark"] .audit-ok {border:1px solid var(--ui-line);background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .credits-link {border:0;background:none;color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] .credits-link:hover {color:var(--ui-green-ink)}
:root[data-ui-page="finance"][data-theme="dark"] #client-credits-dialog .fee-note {background:var(--ui-amber-bg);border:1px solid var(--ui-line)}
:root[data-ui-page="finance"][data-theme="dark"] .primary {border:0;background:var(--green);color:#fff}
:root[data-ui-page="finance"][data-theme="dark"] .primary:hover {background:var(--green-dark)}
:root[data-ui-page="finance"][data-theme="dark"] .secondary,:root[data-ui-page="finance"][data-theme="dark"] .action {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="finance"][data-theme="dark"] .action:hover,:root[data-ui-page="finance"][data-theme="dark"] .secondary:hover {background:var(--ui-soft)}
:root[data-ui-page="finance"][data-theme="dark"] dialog {border:0}
:root[data-ui-page="finance"][data-theme="dark"] .close {border:0;background:transparent;color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] input,:root[data-ui-page="finance"][data-theme="dark"] select {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ink)}
:root[data-ui-page="finance"][data-theme="dark"] input:focus,:root[data-ui-page="finance"][data-theme="dark"] select:focus {outline:3px solid var(--ui-line);border-color:var(--green)}
:root[data-ui-page="finance"][data-theme="dark"] .dialog-message.error {background:var(--red-wash);color:var(--red)}
:root[data-ui-page="finance"][data-theme="dark"] :where(button,a,input,select,textarea,summary):focus-visible {outline:3px solid #2f7d5b}
:root[data-ui-page="finance"][data-theme="dark"] .month-unpaid {border:0;background:none;color:var(--red)}
:root[data-ui-page="finance"][data-theme="dark"] .month-unpaid strong {border-bottom:1px dashed currentColor}
:root[data-ui-page="finance"][data-theme="dark"] .donut-label {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .donut-label strong {color:var(--ink)}
:root[data-ui-page="finance"][data-theme="dark"] .receipt-row {border-bottom:1px solid var(--line)}
:root[data-ui-page="finance"][data-theme="dark"] .receipt-row small {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .past-debt {border:1px solid var(--ui-line);background:var(--red-wash)}
:root[data-ui-page="finance"][data-theme="dark"] .past-debt summary {color:var(--red)}
:root[data-ui-page="finance"][data-theme="dark"] .past-debt p {color:var(--muted)}
:root[data-ui-page="finance"][data-theme="dark"] .unpaid-client {border-top:1px solid var(--line)}
:root[data-ui-page="finance"][data-theme="dark"] .unpaid-booking {border-bottom:1px solid var(--line)}
:root[data-ui-page="finance"][data-theme="dark"] .unpaid-booking a {color:var(--ui-green-ink)}

/* clients */
:root[data-ui-page="clients"][data-theme="dark"] body {background:var(--wash);color:var(--ink)}
:root[data-ui-page="clients"][data-theme="dark"] .muted {color:var(--muted)}
:root[data-ui-page="clients"][data-theme="dark"] .primary {border:0;background:var(--green);color:#fff}
:root[data-ui-page="clients"][data-theme="dark"] .primary:hover {background:var(--green-dark)}
:root[data-ui-page="clients"][data-theme="dark"] .secondary,:root[data-ui-page="clients"][data-theme="dark"] .action {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="clients"][data-theme="dark"] .action:hover,:root[data-ui-page="clients"][data-theme="dark"] .secondary:hover {background:var(--ui-soft)}
:root[data-ui-page="clients"][data-theme="dark"] .message.ok {background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="clients"][data-theme="dark"] .message.bad {background:var(--red-wash);color:var(--red)}
:root[data-ui-page="clients"][data-theme="dark"] .stat {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="clients"][data-theme="dark"] .stat span {color:var(--muted)}
:root[data-ui-page="clients"][data-theme="dark"] .tools {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="clients"][data-theme="dark"] .loading {border:1px solid var(--ui-line);background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="clients"][data-theme="dark"] input,:root[data-ui-page="clients"][data-theme="dark"] textarea {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ink)}
:root[data-ui-page="clients"][data-theme="dark"] input:focus,:root[data-ui-page="clients"][data-theme="dark"] textarea:focus {outline:3px solid var(--ui-line);border-color:var(--green)}
:root[data-ui-page="clients"][data-theme="dark"] .note {color:var(--muted)}
:root[data-ui-page="clients"][data-theme="dark"] .client-card {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="clients"][data-theme="dark"] .client-card.inactive {background:var(--ui-soft)}
:root[data-ui-page="clients"][data-theme="dark"] .state,:root[data-ui-page="clients"][data-theme="dark"] .type-badge {background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="clients"][data-theme="dark"] .type-badge {background:var(--ui-green-bg);color:var(--ui-green-ink);border:1px solid var(--ui-line)}
:root[data-ui-page="clients"][data-theme="dark"] .inactive .state {background:var(--ui-soft);color:var(--ui-muted)}
:root[data-ui-page="clients"][data-theme="dark"] .vehicle {background:var(--ui-blue-bg);color:var(--ui-blue-ink)}
:root[data-ui-page="clients"][data-theme="dark"] .empty-chip {color:var(--muted)}
:root[data-ui-page="clients"][data-theme="dark"] .card-actions {border-top:1px solid var(--line)}
:root[data-ui-page="clients"][data-theme="dark"] .student-panel {border-top:1px solid var(--line)}
:root[data-ui-page="clients"][data-theme="dark"] .student-item {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="clients"][data-theme="dark"] .empty {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="clients"][data-theme="dark"] dialog {border:0}
:root[data-ui-page="clients"][data-theme="dark"] .close {border:0;background:transparent;color:var(--muted)}
:root[data-ui-page="clients"][data-theme="dark"] .dialog-message.bad {background:var(--red-wash);color:var(--red)}
:root[data-ui-page="clients"][data-theme="dark"] :where(button,a,input,textarea):focus-visible {outline:3px solid #2f7d5b}

/* client */
:root[data-ui-page="client"][data-theme="dark"] body {background:var(--wash);color:var(--ink)}
:root[data-ui-page="client"][data-theme="dark"] section,:root[data-ui-page="client"][data-theme="dark"] .login-card {background:var(--paper);border:1px solid var(--line)}
:root[data-ui-page="client"][data-theme="dark"] input,:root[data-ui-page="client"][data-theme="dark"] select {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ink)}
:root[data-ui-page="client"][data-theme="dark"] input:focus,:root[data-ui-page="client"][data-theme="dark"] select:focus {outline:3px solid var(--ui-line);border-color:var(--green)}
:root[data-ui-page="client"][data-theme="dark"] .muted {color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .page-loader {background:var(--ui-soft)}
:root[data-ui-page="client"][data-theme="dark"] .page-loader-card {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="client"][data-theme="dark"] .spinner {border:3px solid var(--ui-line)}
:root[data-ui-page="client"][data-theme="dark"] .loading-notice {border:1px solid var(--ui-line);background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .primary {border:0;background:var(--green);color:#fff}
:root[data-ui-page="client"][data-theme="dark"] .primary:hover {background:var(--green-dark)}
:root[data-ui-page="client"][data-theme="dark"] .secondary {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="client"][data-theme="dark"] .secondary:hover {background:var(--ui-soft)}
:root[data-ui-page="client"][data-theme="dark"] .topbar-actions a {color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .date-step {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .date-current {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="client"][data-theme="dark"] .day-strip::-webkit-scrollbar-track {background:var(--ui-soft)}
:root[data-ui-page="client"][data-theme="dark"] .day-strip::-webkit-scrollbar-thumb {background:var(--ui-soft)}
:root[data-ui-page="client"][data-theme="dark"] .day-pill {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="client"][data-theme="dark"] .day-pill.active {border-color:var(--green);background:var(--ui-green-bg)}
:root[data-ui-page="client"][data-theme="dark"] .day-pill.has-own {background:var(--ui-blue-bg);border-color:var(--ui-line)}
:root[data-ui-page="client"][data-theme="dark"] .day-pill span {color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .day-pill em {color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .stat {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="client"][data-theme="dark"] .stat span {color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .debt {color:var(--red)}
:root[data-ui-page="client"][data-theme="dark"] .advance {color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .slot {border:1px solid var(--ui-line);background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .slot:hover {background:var(--ui-green-bg)}
:root[data-ui-page="client"][data-theme="dark"] .slot.selected {background:var(--green);border-color:var(--green);color:#fff}
:root[data-ui-page="client"][data-theme="dark"] .slot-extra {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .slot-extra:hover,:root[data-ui-page="client"][data-theme="dark"] .slot-extra.active {background:var(--ui-green-bg);border-color:var(--green)}
:root[data-ui-page="client"][data-theme="dark"] .own-slot {border:1px solid var(--ui-line);background:var(--ui-blue-bg);color:var(--ui-blue-ink)}
:root[data-ui-page="client"][data-theme="dark"] .own-slot span {color:var(--ui-muted)}
:root[data-ui-page="client"][data-theme="dark"] .occupied-slot {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-muted)}
:root[data-ui-page="client"][data-theme="dark"] .occupied-slot span {background:var(--ui-red-bg);color:var(--ui-red-ink)}
:root[data-ui-page="client"][data-theme="dark"] .cart {border:1px solid var(--ui-line);background:var(--ui-green-bg)}
:root[data-ui-page="client"][data-theme="dark"] .cart-item {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="client"][data-theme="dark"] .cart-summary span {color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .cart-note {color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .student-picker,:root[data-ui-page="client"][data-theme="dark"] .vehicle-picker {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="client"][data-theme="dark"] .student-choice,:root[data-ui-page="client"][data-theme="dark"] .vehicle-choice {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="client"][data-theme="dark"] .student-choice:has(input:checked),:root[data-ui-page="client"][data-theme="dark"] .vehicle-choice:has(input:checked) {border-color:var(--green);background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .student-picker-empty,:root[data-ui-page="client"][data-theme="dark"] .vehicle-picker-empty {color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .vehicle-chip {background:var(--ui-blue-bg);color:var(--ui-blue-ink)}
:root[data-ui-page="client"][data-theme="dark"] .vehicle-chip button {border:0;background:transparent;color:var(--ui-red-ink)}
:root[data-ui-page="client"][data-theme="dark"] .cart-item>button {border:0;background:transparent;color:var(--red)}
:root[data-ui-page="client"][data-theme="dark"] .booking {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="client"][data-theme="dark"] .booking.cancellation {background:var(--ui-panel);border-color:var(--ui-line)}
:root[data-ui-page="client"][data-theme="dark"] .booking-date {color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .booking-student {background:var(--ui-soft);color:var(--ink)}
:root[data-ui-page="client"][data-theme="dark"] .booking-meta {color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .danger {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--red)}
:root[data-ui-page="client"][data-theme="dark"] .danger:hover {background:var(--red-wash)}
:root[data-ui-page="client"][data-theme="dark"] .payment-status.paid {background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .payment-status.unpaid {background:var(--ui-red-bg);color:var(--ui-red-ink)}
:root[data-ui-page="client"][data-theme="dark"] .payment-status.partial {background:var(--ui-amber-bg);color:var(--ui-amber-ink)}
:root[data-ui-page="client"][data-theme="dark"] .payment-status.balance {background:var(--ui-blue-bg);color:var(--ui-blue-ink)}
:root[data-ui-page="client"][data-theme="dark"] .payment-status.neutral {background:var(--ui-soft);color:var(--ui-muted)}
:root[data-ui-page="client"][data-theme="dark"] .transfer-history {border-top:1px solid var(--line)}
:root[data-ui-page="client"][data-theme="dark"] .transfer-history summary {color:var(--blue)}
:root[data-ui-page="client"][data-theme="dark"] .transfer-entry {background:var(--ui-soft);color:var(--ui-muted)}
:root[data-ui-page="client"][data-theme="dark"] .transfer-entry strong {color:var(--ink)}
:root[data-ui-page="client"][data-theme="dark"] .message.ok {background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .message.error {background:var(--red-wash);color:var(--red)}
:root[data-ui-page="client"][data-theme="dark"] dialog {border:0}
:root[data-ui-page="client"][data-theme="dark"] .close {border:0;background:transparent;color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .move-slot {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="client"][data-theme="dark"] .move-slot.active {background:var(--ui-green-bg);border-color:var(--green);color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .move-confirm {border:1px solid var(--ui-line);background:var(--ui-amber-bg)}
:root[data-ui-page="client"][data-theme="dark"] :where(button,a,input,select,textarea,summary):focus-visible {outline:3px solid #2f7d5b}
:root[data-ui-page="client"][data-theme="dark"] .booking-delegation {color:var(--ui-green-ink)}
:root[data-ui-page="client"][data-theme="dark"] .delegation-toggle[aria-pressed="true"] {background:#12382a;color:#fff}
:root[data-ui-page="client"][data-theme="dark"] .own-toolbar button[aria-pressed="true"] {background:#12382a;color:#fff;border-color:#12382a}
:root[data-ui-page="client"][data-theme="dark"] .own-calendar {border:1px solid var(--line)}
:root[data-ui-page="client"][data-theme="dark"] .own-weekday {color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .own-day {border:1px solid transparent;background:var(--ui-panel)}
:root[data-ui-page="client"][data-theme="dark"] .own-day.has-booking {background:var(--ui-blue-bg);color:var(--ui-blue-ink)}
:root[data-ui-page="client"][data-theme="dark"] .own-day.has-booking:after {background:currentColor}
:root[data-ui-page="client"][data-theme="dark"] .own-day[aria-pressed="true"] {background:#12382a;color:#fff}
:root[data-ui-page="client"][data-theme="dark"] .own-calendar-note {color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .block-feedback {color:var(--muted)}
:root[data-ui-page="client"][data-theme="dark"] .block-feedback.error {color:var(--red)}

/* students */
:root[data-ui-page="students"][data-theme="dark"] body {background:var(--ui-soft);color:var(--ink)}
:root[data-ui-page="students"][data-theme="dark"] .brand span {color:var(--ui-muted)}
:root[data-ui-page="students"][data-theme="dark"] .header-actions a,:root[data-ui-page="students"][data-theme="dark"] .header-actions button {border:1px solid var(--ui-line);background:var(--ui-panel);color:#fff}
:root[data-ui-page="students"][data-theme="dark"] .header-actions a:hover,:root[data-ui-page="students"][data-theme="dark"] .header-actions button:hover {background:var(--ui-panel)}
:root[data-ui-page="students"][data-theme="dark"] .muted {color:var(--muted)}
:root[data-ui-page="students"][data-theme="dark"] .primary {border:1px solid var(--green);background:var(--green);color:#fff}
:root[data-ui-page="students"][data-theme="dark"] .primary:hover {background:#0f633b}
:root[data-ui-page="students"][data-theme="dark"] .secondary {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-green-ink)}
:root[data-ui-page="students"][data-theme="dark"] .secondary:hover {background:var(--ui-soft)}
:root[data-ui-page="students"][data-theme="dark"] .danger {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--red)}
:root[data-ui-page="students"][data-theme="dark"] .danger:hover {background:var(--red-wash)}
:root[data-ui-page="students"][data-theme="dark"] .summary-card {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="students"][data-theme="dark"] .summary-card span {color:var(--muted)}
:root[data-ui-page="students"][data-theme="dark"] .tools {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="students"][data-theme="dark"] .search {border:1px solid var(--ui-line);color:var(--ink);background:var(--ui-panel)}
:root[data-ui-page="students"][data-theme="dark"] .archive-toggle {color:var(--muted)}
:root[data-ui-page="students"][data-theme="dark"] .student-card {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="students"][data-theme="dark"] .student-card.archived {background:var(--ui-soft)}
:root[data-ui-page="students"][data-theme="dark"] .status {background:var(--green-wash);color:var(--ui-green-ink)}
:root[data-ui-page="students"][data-theme="dark"] .archived .status {background:var(--ui-soft);color:var(--ui-muted)}
:root[data-ui-page="students"][data-theme="dark"] .next-booking {background:var(--ui-blue-bg);color:var(--ui-blue-ink)}
:root[data-ui-page="students"][data-theme="dark"] .next-booking strong {color:var(--ui-blue-ink)}
:root[data-ui-page="students"][data-theme="dark"] .no-booking {color:var(--muted)}
:root[data-ui-page="students"][data-theme="dark"] .vehicle-title {color:var(--muted)}
:root[data-ui-page="students"][data-theme="dark"] .vehicle {background:var(--ui-blue-bg);color:var(--ui-blue-ink)}
:root[data-ui-page="students"][data-theme="dark"] .vehicle button {border:0;background:transparent;color:var(--ui-red-ink)}
:root[data-ui-page="students"][data-theme="dark"] .vehicle-empty {color:var(--muted)}
:root[data-ui-page="students"][data-theme="dark"] .vehicle-add input {border:1px solid var(--ui-line)}
:root[data-ui-page="students"][data-theme="dark"] .card-actions {border-top:1px solid var(--ui-line)}
:root[data-ui-page="students"][data-theme="dark"] .empty {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="students"][data-theme="dark"] .message.ok {background:var(--green-wash);color:var(--ui-green-ink)}
:root[data-ui-page="students"][data-theme="dark"] .message.error {background:var(--red-wash);color:var(--ui-red-ink)}
:root[data-ui-page="students"][data-theme="dark"] .access {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="students"][data-theme="dark"] dialog {border:0}
:root[data-ui-page="students"][data-theme="dark"] .close {border:0;background:transparent;color:var(--muted)}
:root[data-ui-page="students"][data-theme="dark"] .field input,:root[data-ui-page="students"][data-theme="dark"] .field textarea {border:1px solid var(--ui-line);color:var(--ink)}
:root[data-ui-page="students"][data-theme="dark"] .hint {color:var(--muted)}

/* vehicle-ocr */
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] body {background:var(--wash);color:var(--ink)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .muted {color:var(--muted)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .filters label {color:var(--muted)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] input,:root[data-ui-page="vehicle-ocr"][data-theme="dark"] select,:root[data-ui-page="vehicle-ocr"][data-theme="dark"] textarea {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ink)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] input:focus,:root[data-ui-page="vehicle-ocr"][data-theme="dark"] select:focus,:root[data-ui-page="vehicle-ocr"][data-theme="dark"] textarea:focus {outline:3px solid var(--ui-line);border-color:var(--green)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .stat {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .stat span {color:var(--muted)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .message.ok {background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .message.error {background:var(--red-wash);color:var(--red)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .message.warn {background:var(--ui-amber-bg);color:var(--ui-amber-ink);border:1px solid var(--ui-line)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .analysis {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .analysis-head {border-bottom:1px solid var(--line)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .analysis-stat {border:1px solid var(--line);background:var(--ui-green-bg)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .analysis-stat span {color:var(--muted)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .analysis-item {border-top:1px solid var(--line)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .analysis-item:first-child {border-top:0}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .insights {color:var(--ui-text)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .card {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .card-head {border-bottom:1px solid var(--line)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .card-meta {color:var(--muted)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .empty {color:var(--muted)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .panel {border:1px solid var(--line);background:var(--ui-green-bg)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .ocr-text {color:var(--ui-text)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .chip {border:1px solid var(--ui-line);background:var(--ui-green-bg)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .primary {border:0;background:var(--green);color:#fff}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .primary:hover {background:var(--green-dark)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .secondary,:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .action {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .secondary:hover,:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .action:hover {background:var(--ui-soft)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .danger {color:var(--red);border-color:var(--ui-line)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .link {color:var(--blue)}
:root[data-ui-page="vehicle-ocr"][data-theme="dark"] .field-note {color:var(--muted)}

/* client-cameras */
:root[data-ui-page="client-cameras"][data-theme="dark"] a {color:var(--ui-green-ink)}
:root[data-ui-page="client-cameras"][data-theme="dark"] .panel {background:var(--ui-panel);border:1px solid var(--ui-line)}
:root[data-ui-page="client-cameras"][data-theme="dark"] .muted {color:var(--ui-muted)}
:root[data-ui-page="client-cameras"][data-theme="dark"] button {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-text)}
:root[data-ui-page="client-cameras"][data-theme="dark"] button.primary,:root[data-ui-page="client-cameras"][data-theme="dark"] button[aria-pressed=true] {background:#087842;border-color:#087842;color:white}
:root[data-ui-page="client-cameras"][data-theme="dark"] #message[data-error=true] {color:var(--ui-red-ink)}
:root[data-ui-page="client-cameras"][data-theme="dark"] button:focus-visible,:root[data-ui-page="client-cameras"][data-theme="dark"] a:focus-visible {outline:3px solid var(--ui-line)}

/* camera-trial */
:root[data-ui-page="camera-trial"][data-theme="dark"] a {color:var(--ui-green-ink)}
:root[data-ui-page="camera-trial"][data-theme="dark"] .muted {color:var(--ui-muted)}
:root[data-ui-page="camera-trial"][data-theme="dark"] .panel {background:var(--ui-panel);border:1px solid var(--ui-line)}
:root[data-ui-page="camera-trial"][data-theme="dark"] .badge {background:var(--ui-soft)}
:root[data-ui-page="camera-trial"][data-theme="dark"] button {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-text)}
:root[data-ui-page="camera-trial"][data-theme="dark"] button.primary {background:#087749;color:white;border-color:#087749}
:root[data-ui-page="camera-trial"][data-theme="dark"] #status[data-error=true] {color:var(--ui-red-ink)}

/* trainer-journal */
:root[data-ui-page="trainer-journal"][data-theme="dark"] button {color:inherit}
:root[data-ui-page="trainer-journal"][data-theme="dark"] button:focus-visible,:root[data-ui-page="trainer-journal"][data-theme="dark"] a:focus-visible,:root[data-ui-page="trainer-journal"][data-theme="dark"] input:focus-visible,:root[data-ui-page="trainer-journal"][data-theme="dark"] select:focus-visible,:root[data-ui-page="trainer-journal"][data-theme="dark"] summary:focus-visible {outline:3px solid var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] a {color:inherit}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .demo-bar {background:var(--ui-soft);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .demo-bar i,:root[data-ui-page="trainer-journal"][data-theme="dark"] .shared-state i {background:#73914e}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .demo-bar button {border:0;background:none}
:root[data-ui-page="trainer-journal"][data-theme="dark"] header {background:var(--white);border-bottom:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .brand small {color:var(--muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .profile small {color:var(--muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .sage {background:var(--ui-green-bg);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .rose {background:var(--ui-red-bg);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .blue {background:var(--ui-blue-bg);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .sand {background:var(--ui-amber-bg);color:var(--ui-amber-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .violet {background:var(--ui-soft);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .eyebrow {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .page-heading p {color:var(--muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .primary {background:var(--green);color:#fff;border:1px solid var(--green)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .primary:hover {background:var(--deep)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .secondary {background:var(--ui-panel);border:1px solid var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .secondary:hover {background:var(--ui-green-bg)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .text-button {border:0;background:none;color:var(--ui-green-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .summary-strip {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .summary-item {border-right:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .summary-item:last-child {border:0}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .summary-icon {border:1px solid var(--ui-line);color:var(--ui-muted);background:var(--ui-green-bg)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .summary-item strong small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .summary-item p {color:var(--muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .student-panel {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .count {background:var(--ui-soft);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .search {background:var(--ui-soft);border:1px solid var(--ui-line);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .search input {border:0;background:transparent;outline:none;color:var(--ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .student-row {border:0;background:var(--ui-panel)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .student-row.active {background:var(--ui-green-bg)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .student-row:hover {background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .student-row small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .student-row>span:last-child:not(.name) {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .student-row.active:before {background:#60844d}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .account-card {border:1px solid var(--ui-line);background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .balance-label {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .balance-value small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .balance-track {background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .balance-track i {background:#789160}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .balance-track i+ i {background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .balance-line {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .balance-line strong {color:var(--ui-text)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .balance-line .dot {background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .balance-line.free .dot {background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .account-card .secondary {background:var(--ui-panel)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .account-note {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .aside-note {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .mini-court {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .journal-panel {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .view-tabs {border-bottom:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .view-tabs button {border:0;background:none;color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .view-tabs button.active {color:var(--ui-green-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .view-tabs button.active:after {background:var(--green)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .icon-button {border:1px solid var(--line);background:var(--ui-panel);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .shared-state {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .week-strip {border-bottom:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .week-strip>.icon-button {border:0}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .day-button {border:0;background:none;color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .day-button strong {color:var(--ui-text)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .day-button.active {background:var(--green);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .day-button.active strong {color:white}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .day-button .day-dot {background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .day-button.active .day-dot {background:var(--ui-green-bg)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .day-button:hover:not(.active) {background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .day-heading p {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pill {border:1px solid var(--ui-line);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pill.amber {background:var(--ui-amber-bg);color:var(--ui-amber-ink);border-color:var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pill.green {background:var(--ui-green-bg);color:var(--ui-muted);border-color:var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pill.blue {color:var(--ui-muted);background:var(--ui-blue-bg);border-color:var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .lesson {border:1px solid var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .lesson-head {background:var(--ui-green-bg);border-bottom:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .time small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .type-icon {background:var(--ui-green-bg);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .lesson-meta {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendee {border-bottom:1px solid var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendee:last-child {border-bottom:0}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendee-name small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendee.absent strong {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .mark-button {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .mark-button:hover {background:var(--ui-green-bg)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .mark-button.yes {color:var(--ui-green-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .mark-button.chosen {background:var(--ui-green-bg);border-color:var(--ui-line);color:var(--ui-green-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .mark-button.no {color:var(--ui-muted);border-color:var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .mark-button.no.chosen {background:var(--ui-amber-bg)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .remove-button {border:0;background:none;color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .lesson-foot {border-top:1px dashed var(--ui-line);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .empty {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .empty strong {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .info-note {background:var(--ui-soft);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .gate-details {border-top:1px solid var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .gate-details summary {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .gate-car {color:var(--ui-muted);border-bottom:1px solid var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .gate-caption {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .stats-table th {color:var(--ui-muted);border-bottom:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .stats-table td {border-bottom:1px solid var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .stats-table button {border:0;background:var(--ui-green-bg);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .legend {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .stat-detail {border-bottom:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .stat-detail small {color:var(--muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] #toast {background:#234a38;color:white}
:root[data-ui-page="trainer-journal"][data-theme="dark"] footer {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] dialog {border:0;color:var(--ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .dialog-head button {border:0;background:none;color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .dialog-intro {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .field {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .field input,:root[data-ui-page="trainer-journal"][data-theme="dark"] .field select {border:1px solid var(--ui-line);background:var(--ui-panel);color:var(--ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .weekdays span {border:1px solid var(--ui-line);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .weekdays input:checked+span {background:var(--ui-green-bg);border-color:var(--ui-line);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .weekdays input:focus-visible+span {outline:2px solid var(--green)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .form-note {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .form-error {color:var(--red)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .plan-preview {border:1px solid var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .preview-head {background:var(--ui-green-bg);color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .preview-row {border-top:1px solid var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .preview-row span:last-child {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .preview-row.missing span:last-child,:root[data-ui-page="trainer-journal"][data-theme="dark"] .preview-row.occupied span:last-child {color:var(--ui-amber-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .choice-card {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .choice-card:hover {background:var(--ui-green-bg);border-color:var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .choice-card small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .choice-symbol {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .student-pick {border:0;border-bottom:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .student-pick span:last-child {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .negative {color:var(--red)!important}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .account-card .secondary {background:var(--ui-panel)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendee-name small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .day-heading p {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .account-note {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .reserved-schedule {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .reserved-label small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .reserved-schedule i {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .reserved-schedule>div>span {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendance-card {border:1px solid var(--ui-line);background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendance-title small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .hour-comparison button {border:0;background:transparent}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .hour-comparison button+button {border-left:1px solid var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .hour-comparison span {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .hour-comparison strong {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .hour-comparison button+button strong {color:var(--ui-green-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendance-track {background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendance-track i {background:#8da56e}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendance-breakdown button {border:0;background:none;color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendance-breakdown strong {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendance-note {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .stats-person small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendee.absent strong {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .attendee.absent {background:var(--ui-amber-bg)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .undo-mark {border:0;background:none;color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .enrollment-modes {background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .enrollment-modes button {border:0;background:none}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .enrollment-modes button[aria-pressed="true"] {background:var(--green);color:white}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .picker-help,:root[data-ui-page="trainer-journal"][data-theme="dark"] .picker-legend,:root[data-ui-page="trainer-journal"][data-theme="dark"] .picker-empty {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-weekday {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-day {border:1px solid transparent;background:var(--ui-green-bg)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-day:disabled {background:transparent}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-day.has-selection {background:var(--green);color:#fff}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-day.viewing {border-color:#7d965b}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-day:focus-visible,:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-time:focus-visible {outline:2px solid #819553}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-time {border:1px solid var(--ui-line);background:var(--ui-panel)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-time span {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-time[aria-pressed="true"] {border-color:var(--green);background:var(--ui-green-bg);color:var(--ui-green-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-time[aria-pressed="true"] span {color:var(--ui-green-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-time:disabled {background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .picked-summary {border:1px solid var(--ui-line);background:var(--ui-green-bg)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .picked-summary summary {color:var(--ui-green-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .picked-row {border-top:1px solid var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .picked-row small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .picked-row button {border:0;background:transparent;color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] #series-fields {border:0}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .enrollment-footer {background:var(--ui-panel);border-top:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .participant-option {border:1px solid transparent}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .participant-option small {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .participant-option:has(input:checked:not(:disabled)) {background:var(--ui-green-bg);border-color:var(--ui-line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .participant-count {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .trainer-photo {background:var(--ui-green-bg)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .demo-bar a {color:inherit}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .trainer-photo {background:var(--ui-green-bg);color:var(--ui-text)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .load-message {background:var(--ui-soft)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .load-message.error,:root[data-ui-page="trainer-journal"][data-theme="dark"] .bulk-errors {background:var(--ui-amber-bg);color:var(--ui-red-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .load-message a {color:inherit}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .readonly-note {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .dialog-error {color:var(--ui-red-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .date-navigation>.day-step {border:0}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .date-tools {border-bottom:1px solid var(--line);color:var(--muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .series-option {border:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .series-option:has(input:checked) {background:var(--ui-green-bg);border-color:var(--ui-line);color:var(--ui-green-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .enrollment-pupils {border:1px solid var(--line)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .enrollment-pupils summary small {color:var(--muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .conducted-by {background:var(--ui-green-bg);color:var(--ui-text)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .lesson-updated {color:var(--ui-muted)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .trainer-hour-summary {background:var(--ui-green-bg)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .pick-time.delegation-removal {background:var(--ui-amber-bg);border-color:var(--ui-line);color:var(--ui-amber-ink)}
:root[data-ui-page="trainer-journal"][data-theme="dark"] .structure-options .participant-option small {color:var(--muted)}

/* court-finance */
:root[data-ui-page="court-finance"][data-theme="dark"] button,:root[data-ui-page="court-finance"][data-theme="dark"] input,:root[data-ui-page="court-finance"][data-theme="dark"] select,:root[data-ui-page="court-finance"][data-theme="dark"] textarea {color:inherit}
:root[data-ui-page="court-finance"][data-theme="dark"] a {color:var(--ui-green-ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] button {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="court-finance"][data-theme="dark"] button:hover {background:var(--ui-soft)}
:root[data-ui-page="court-finance"][data-theme="dark"] :where(button,a,input,select,textarea):focus-visible {outline:3px solid var(--ui-line)}
:root[data-ui-page="court-finance"][data-theme="dark"] button.primary {background:var(--ink);color:white;border-color:var(--ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] .brand span {color:var(--ui-muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .eyebrow {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .sub {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .month-control input {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .summary article {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .summary span {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .summary small {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] #received {color:var(--ui-green-ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] .negative {color:var(--red)}
:root[data-ui-page="court-finance"][data-theme="dark"] .status-row {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] #report-status.error {color:var(--red)}
:root[data-ui-page="court-finance"][data-theme="dark"] .model-panel {background:var(--ui-soft);border:1px solid var(--line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .view-label select {border:1px solid var(--ui-line);background:var(--ui-green-bg)}
:root[data-ui-page="court-finance"][data-theme="dark"] #model-status {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .marker {background:var(--ui-panel)}
:root[data-ui-page="court-finance"][data-theme="dark"] .marker span {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .marker small {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] [aria-pressed=true].marker {border-color:var(--green)}
:root[data-ui-page="court-finance"][data-theme="dark"] .model-bottom {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .model-bottom [aria-pressed=true] {border-color:var(--green);color:var(--ui-green-ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] .details {background:var(--ui-panel);border:1px solid var(--line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .operations-heading {border-top:1px solid var(--line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .operation {border-bottom:1px solid var(--ui-line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .income {color:var(--ui-green-ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] .operation-date {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .operation-comment {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .category-edit select {border:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="court-finance"][data-theme="dark"] .save-message {color:var(--red)}
:root[data-ui-page="court-finance"][data-theme="dark"] .empty {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .footnote {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] dialog {border:1px solid var(--line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .dialog-head button {border:0}
:root[data-ui-page="court-finance"][data-theme="dark"] dialog input,:root[data-ui-page="court-finance"][data-theme="dark"] dialog select,:root[data-ui-page="court-finance"][data-theme="dark"] dialog textarea {border:1px solid var(--line)}
:root[data-ui-page="court-finance"][data-theme="dark"] #expense-message {color:var(--red)}
:root[data-ui-page="court-finance"][data-theme="dark"] .article-button small {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .article-button[aria-pressed=true] {border-color:var(--green)}
:root[data-ui-page="court-finance"][data-theme="dark"] .summary .payer-button {border:0;background:transparent}
:root[data-ui-page="court-finance"][data-theme="dark"] .summary .payer-button:hover,:root[data-ui-page="court-finance"][data-theme="dark"] .summary .payer-button[aria-pressed=true] {background:var(--ui-soft)}
:root[data-ui-page="court-finance"][data-theme="dark"] .summary .payer-name {color:var(--ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] .summary .payer-share {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .income-focus {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .summary .payer-metric .payer-sum {color:var(--ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] .summary .payer-share,:root[data-ui-page="court-finance"][data-theme="dark"] .summary .payer-remaining {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .summary .payer-remaining {color:var(--ui-amber-ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] .income-explanation {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .model-controls button[aria-pressed=true] {border-color:var(--green);background:var(--ui-soft)}
:root[data-ui-page="court-finance"][data-theme="dark"] .model-controls p {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .court-live-panel {border-top:1px solid var(--line);background:var(--ui-panel)}
:root[data-ui-page="court-finance"][data-theme="dark"] .court-live-panel p {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .court-live-panel #court-light-status {color:var(--ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] .court-live-panel #court-light-status[data-state=unknown] {color:var(--ui-amber-ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] .court-camera-list small {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .camera-map-button {background:#17392ef0;color:white}
:root[data-ui-page="court-finance"][data-theme="dark"] #court-camera-dialog {border:1px solid var(--line);color:var(--ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] .camera-dialog-modes [aria-pressed=true] {background:var(--ui-soft);border-color:var(--green)}
:root[data-ui-page="court-finance"][data-theme="dark"] #court-camera-note {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .boiler-toolbar {border-top:1px solid var(--ui-line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .boiler-toolbar button {background:var(--ui-amber-bg);border-color:var(--ui-line);color:var(--ui-amber-ink)}
:root[data-ui-page="court-finance"][data-theme="dark"] .boiler-toolbar p {color:var(--ui-muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .model-panel[data-boiler=true] #model-stage {background:var(--ui-soft)}
:root[data-ui-page="court-finance"][data-theme="dark"] .equipment-expense-card {background:var(--ui-amber-bg);border-color:var(--ui-line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .equipment-expense-card small {color:var(--ui-muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .equipment-expense-card::after {background:var(--ui-amber-bg);border-right:1px solid var(--ui-line);border-bottom:1px solid var(--ui-line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .equipment-expense-controls {border-top:1px solid var(--ui-line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .equipment-expense-controls span {color:var(--ui-muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] .equipment-expense-controls [aria-pressed=true] {background:var(--ui-soft);border-color:#46765a}
:root[data-ui-page="court-finance"][data-theme="dark"] .sun-panel {border-top:1px solid var(--line)}
:root[data-ui-page="court-finance"][data-theme="dark"] .sun-panel small {color:var(--muted)}
:root[data-ui-page="court-finance"][data-theme="dark"] #model-finance-toggle {color:var(--ui-green-ink);border-color:var(--ui-line)}
:root[data-ui-page="court-finance"][data-theme="dark"] #model-finance-toggle[aria-pressed=true] {background:var(--ui-soft)}

/* Shared OFP dialog and controls inserted after page load. */
:root[data-theme="dark"] .ofp-summary { background:var(--ui-green-bg); color:var(--ui-green-ink); }
:root[data-theme="dark"] .ofp-dialog { color:var(--ui-text); background:var(--ui-panel); }
:root[data-theme="dark"] .ofp-close { color:var(--ui-muted); }
:root[data-theme="dark"] .ofp-dialog :is(.ofp-student,input,select,.secondary,.danger) { border-color:var(--ui-line); background:var(--ui-panel); color:var(--ui-text); }
:root[data-theme="dark"] .ofp-dialog .danger,:root[data-theme="dark"] .ofp-error { color:var(--ui-red-ink); }
/* These controls use foreground variables as their solid background in the original pages. */
:root[data-ui-page="court-finance"][data-theme="dark"] .header { background:#12382a; }
:root[data-ui-page="court-finance"][data-theme="dark"] button.primary { background:#176348; border-color:#38885b; color:white; }
:root[data-ui-page="court-finance"][data-theme="dark"] .equipment-expense-card { background:var(--ui-amber-bg); }
:root[data-ui-page="court-finance"][data-theme="dark"] .equipment-expense-card::after { background:var(--ui-amber-bg); }
:root[data-ui-page="trainer-journal"][data-theme="dark"] .account-card .secondary { background:var(--ui-panel); }
:root[data-ui-page="trainer-journal"][data-theme="dark"] .day-button.active strong { color:white; }
:root[data-ui-page="trainer-journal"][data-theme="dark"] .day-button.active { color:#d2decd; }
:root[data-ui-page="admin"][data-theme="dark"] .booking.push-target { background:var(--ui-amber-bg); border-color:#d0a51d; }
:root[data-ui-page="public"][data-theme="dark"] .mobile-cta { background:#1a2720f5; }
:root[data-ui-page="public"] .hero .theme-heading { align-items:flex-start; }
:root[data-ui-page="public"] .hero .ui-theme-toggle { margin-top:8px; }
:root[data-ui-page="public"][data-theme="dark"] .free-day { border-color:#588568; }
:root[data-ui-page="public"][data-theme="dark"] .partially-available { border-color:#9b8247; }
:root[data-ui-page="public"][data-theme="dark"] .fully-booked { border-color:#aa6662; }

/* Night status also starts light; the gate is a separate, untouched page. */
:root[data-ui-page="night"]:not([data-theme="dark"]) { --ink:var(--ui-text); --muted:var(--ui-muted); --line:var(--ui-line); --panel:var(--ui-panel); --panel-soft:var(--ui-soft); --green:#176343; --amber:#795400; --red:#a32c2c; --blue:#21658c; }
:root[data-ui-page="night"] body { background:var(--ui-bg); }
:root[data-ui-page="night"] .hero { background:var(--ui-panel); }
:root[data-ui-page="night"] :is(.message textarea,.message-status,.chat-line) { background:var(--ui-panel); border-color:var(--ui-line); }
:root[data-ui-page="night"] .message button { background:#176343; color:white; }
:root[data-ui-page="night"] .push-toggle { background:var(--ui-panel); border-color:var(--ui-line); }
:root[data-ui-page="night"] .push-toggle.enabled { background:#1f8d54; color:white; }
:root[data-ui-page="night"] .push-toggle.error { background:#8d3030; color:white; }
:root[data-ui-page="night"] .push-toggle.unsupported { background:#6c6748; color:white; }
@media(max-width:540px) { :root[data-ui-page="night"] .top { grid-template-columns:minmax(0,1fr); } :root[data-ui-page="night"] .clock { text-align:left; } :root[data-ui-page="night"] .connection { justify-content:flex-start; } }

/* Only panorama controls change theme; canvas, photos and videos retain their colors. */
:root[data-ui-page="court-360"]:not([data-theme="dark"]) { --bg:var(--ui-bg); --fg:var(--ui-text); --muted:var(--ui-muted); --line:var(--ui-line); }
:root[data-ui-page="court-360"] :is(.title,.hint,.error) { background:var(--ui-panel); color:var(--ui-text); }
:root[data-ui-page="court-360"] .title .theme-heading { gap:8px; }
:root[data-ui-page="court-360"] .title { padding:8px 10px; }
:root[data-ui-page="court-360"] .error { top:90px; }
@media(max-width:380px) { :root[data-ui-page="court-360"] .title strong { font-size:14px; } :root[data-ui-page="court-360"] .title { padding:5px; } }
:root[data-theme="dark"] { background:var(--ui-bg); color:var(--ui-text); }
@media(max-width:640px) {
  :root[data-ui-page="trainer-journal"] .page-heading { flex-direction:column; align-items:stretch; }
  :root[data-ui-page="trainer-journal"] .page-heading p { max-width:none; }
  :root[data-ui-page="trainer-journal"] .journal-actions { width:100%; }
  :root[data-ui-page="trainer-journal"] .journal-actions button { flex:1; }
}

/* Keep the theme control neutral even on pages with generic pressed-button styles. */
:root[data-ui-page][data-theme] button.ui-theme-toggle { color:var(--ui-text); background:var(--ui-panel); border:1px solid var(--ui-line); }
:root[data-ui-page][data-theme] button.ui-theme-toggle:hover { background:var(--ui-soft); }
