/* Merchant workspace only. The public site keeps its own dark appearance. */
html[data-theme="dark"] body.app-body {
  --ink: #f0f6f1;
  --muted: #a9b9ae;
  --line: #34473c;
  --paper: #101815;
  --white: #1c2a24;
  --green: #82d6a7;
  --green-deep: #70c996;
  --mint: #293f33;
  --surface-raised: #223129;
  --surface-hover: #293f33;
  background: var(--paper);
  color: var(--ink);
}

html[data-theme="dark"] .app-body .sidebar {
  background: #18251f;
  border-color: var(--line);
}
html[data-theme="dark"] .app-body .topbar {
  background: #1a2721;
  border-color: var(--line);
}
html[data-theme="dark"] .app-body .app-main { background: var(--paper); }
html[data-theme="dark"] .app-body .side-caption,
html[data-theme="dark"] .app-body .topbar-label,
html[data-theme="dark"] .app-body .topbar-date,
html[data-theme="dark"] .app-body .control-label { color: var(--muted); }
html[data-theme="dark"] .app-body .side-caption {
  font-size: 11px;
  letter-spacing: .14em;
}
html[data-theme="dark"] .app-body .side-nav a {
  color: #c1d0c5;
  font-size: 13px;
  font-weight: 650;
  transition: color .18s, background-color .18s;
}
html[data-theme="dark"] .app-body .side-nav a span { color: #a9bcae; }
html[data-theme="dark"] .app-body .side-nav a:hover {
  background: var(--surface-hover);
  color: var(--ink);
}
html[data-theme="dark"] .app-body .side-nav a.selected {
  background: #2c4938;
  color: #dcf7e5;
  box-shadow: inset 3px 0 0 var(--green);
}
html[data-theme="dark"] .app-body .side-nav a.selected span { color: var(--green); }
html[data-theme="dark"] .app-body .sidebar-foot { border-color: var(--line); }
html[data-theme="dark"] .app-body .avatar,
html[data-theme="dark"] .app-body .quick-icon,
html[data-theme="dark"] .app-body .empty > span,
html[data-theme="dark"] .app-body .check.done,
html[data-theme="dark"] .app-body .settings-status-icon {
  background: #2a4234;
  color: var(--green);
}
html[data-theme="dark"] .app-body .user-mini small,
html[data-theme="dark"] .app-body .logout { color: var(--muted); }
html[data-theme="dark"] .app-body .logout:hover { color: var(--green); }
html[data-theme="dark"] .app-body .env-pill {
  background: #2a4234;
  color: #aee7bf;
}

/* Keep the content plane and cards distinct without heavy shadows. */
html[data-theme="dark"] .app-body .panel,
html[data-theme="dark"] .app-body .stat,
html[data-theme="dark"] .app-body .period-links,
html[data-theme="dark"] .app-body .flash {
  background: var(--white);
  border-color: var(--line);
  color: var(--ink);
  box-shadow: none;
}
html[data-theme="dark"] .app-body .stat:hover {
  border-color: #4a6754;
  box-shadow: none;
}
html[data-theme="dark"] .app-body .desk-summary > div {
  background: var(--surface-raised);
  border-color: var(--line);
}
html[data-theme="dark"] .app-body .page-heading h1,
html[data-theme="dark"] .app-body .panel h2,
html[data-theme="dark"] .app-body .panel h3,
html[data-theme="dark"] .app-body .stat strong,
html[data-theme="dark"] .app-body .line-chart-head strong,
html[data-theme="dark"] .app-body .balance-card strong,
html[data-theme="dark"] .app-body td strong { color: var(--ink); }
html[data-theme="dark"] .app-body .stat strong {
  font-size: clamp(23px, 2vw, 29px);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.045em;
}
html[data-theme="dark"] .app-body .eyebrow { color: var(--green); }
html[data-theme="dark"] .app-body .page-heading p,
html[data-theme="dark"] .app-body .panel > p,
html[data-theme="dark"] .app-body .settings-grid .panel > p,
html[data-theme="dark"] .app-body .stat > span,
html[data-theme="dark"] .app-body .stat small,
html[data-theme="dark"] .app-body .count,
html[data-theme="dark"] .app-body .small-note,
html[data-theme="dark"] .app-body .muted,
html[data-theme="dark"] .app-body .check-list small,
html[data-theme="dark"] .app-body .dashboard-quick small,
html[data-theme="dark"] .app-body .desk-summary small,
html[data-theme="dark"] .app-body .dashboard-desks-foot,
html[data-theme="dark"] .app-body .chart-foot,
html[data-theme="dark"] .app-body .activity-bar strong,
html[data-theme="dark"] .app-body .sessions-panel small,
html[data-theme="dark"] .app-body .settings-status-line small,
html[data-theme="dark"] .app-body .info-row,
html[data-theme="dark"] .app-body .balance-card small,
html[data-theme="dark"] .app-body .empty,
html[data-theme="dark"] .app-body .empty p {
  color: var(--muted);
}
html[data-theme="dark"] .app-body .stat > span { font-size: 11px; }
html[data-theme="dark"] .app-body .stat small,
html[data-theme="dark"] .app-body .panel > p,
html[data-theme="dark"] .app-body .page-heading p { font-size: 12px; }
html[data-theme="dark"] .app-body .page-heading p { font-size: 14px; }

/* Tables, balances, and chart labels need the same legibility on every page. */
html[data-theme="dark"] .app-body th {
  color: #b6c9ba;
  border-color: var(--line);
  font-size: 11px;
}
html[data-theme="dark"] .app-body td {
  color: #c5d4c9;
  border-color: var(--line);
  font-size: 12px;
}
html[data-theme="dark"] .app-body td small { color: var(--muted); font-size: 11px; }
html[data-theme="dark"] .app-body tbody tr:hover { background: #25372c; }
html[data-theme="dark"] .app-body .balance-card,
html[data-theme="dark"] .app-body .settings-status-line,
html[data-theme="dark"] .app-body .support-message,
html[data-theme="dark"] .app-body .chart-empty {
  background: var(--surface-raised);
  border-color: var(--line);
  color: var(--ink);
}
html[data-theme="dark"] .app-body .support-message.from-staff { background: #2b4034; }
html[data-theme="dark"] .app-body .support-message small { color: var(--green); }
html[data-theme="dark"] .app-body .check { background: #304037; color: var(--muted); }
html[data-theme="dark"] .app-body .chart-grid-line { stroke: #415448; }
html[data-theme="dark"] .app-body .chart-line-current { stroke: var(--green); }
html[data-theme="dark"] .app-body .chart-line-previous { stroke: #a9b9ae; }
html[data-theme="dark"] .app-body .chart-legend i { border-color: var(--green); }
html[data-theme="dark"] .app-body .chart-legend i.previous { border-color: var(--muted); }
html[data-theme="dark"] .app-body .line-chart-head small b { color: var(--green); }
html[data-theme="dark"] .app-body .line-chart-head small b.down { color: #f0bd86; }
html[data-theme="dark"] .app-body .activity-track span {
  background: linear-gradient(180deg, #82d6a7, #4f9e72);
}

/* Forms and actions. Accent is reserved for decisions and useful links. */
html[data-theme="dark"] .app-body .stack-form label { color: #d7e4d9; }
html[data-theme="dark"] .app-body .stack-form label small,
html[data-theme="dark"] .app-body .upload-filename { color: var(--muted); }
html[data-theme="dark"] .app-body .stack-form input,
html[data-theme="dark"] .app-body .stack-form select,
html[data-theme="dark"] .app-body .stack-form textarea,
html[data-theme="dark"] .app-body .search-form input,
html[data-theme="dark"] .app-body .display-controls select,
html[data-theme="dark"] .app-body .theme-toggle,
html[data-theme="dark"] .app-body .upload-control {
  background: #17231d;
  border: 1px solid #405548;
  color: var(--ink);
}
html[data-theme="dark"] .app-body input::placeholder,
html[data-theme="dark"] .app-body textarea::placeholder { color: #a5b8aa; opacity: 1; }
html[data-theme="dark"] .app-body .stack-form input:focus,
html[data-theme="dark"] .app-body .stack-form select:focus,
html[data-theme="dark"] .app-body .stack-form textarea:focus,
html[data-theme="dark"] .app-body .search-form input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px #82d6a72b;
}
html[data-theme="dark"] .app-body .button.primary,
html[data-theme="dark"] .app-body .button.dark,
html[data-theme="dark"] .app-body .search-form button {
  background: var(--green);
  color: #10261b;
  font-weight: 800;
}
html[data-theme="dark"] .app-body .button.primary:hover:not(:disabled),
html[data-theme="dark"] .app-body .button.dark:hover:not(:disabled),
html[data-theme="dark"] .app-body .search-form button:hover:not(:disabled) {
  background: #9be5b7;
}
html[data-theme="dark"] .app-body .button.outline,
html[data-theme="dark"] .app-body .period-links a,
html[data-theme="dark"] .app-body .settings-disclosure summary {
  background: var(--surface-raised);
  border-color: #496052;
  color: var(--ink);
}
html[data-theme="dark"] .app-body .button.outline:hover,
html[data-theme="dark"] .app-body .period-links a:hover,
html[data-theme="dark"] .app-body .settings-disclosure summary:hover { background: var(--surface-hover); }
html[data-theme="dark"] .app-body .period-links a.active,
html[data-theme="dark"] .app-body .settings-disclosure[open] summary {
  background: #304a39;
  color: #d4f5df;
}
html[data-theme="dark"] .app-body .panel-head > a,
html[data-theme="dark"] .app-body .table-action,
html[data-theme="dark"] .app-body .text-link,
html[data-theme="dark"] .app-body .dashboard-desks-foot a { color: var(--green); }
html[data-theme="dark"] .app-body .table-action:hover,
html[data-theme="dark"] .app-body .panel-head > a:hover { color: #a6e9bd; text-decoration: underline; }

/* Badges retain meaning without bright blocks across long tables. */
html[data-theme="dark"] .app-body .status {
  background: #2d3c33;
  color: #c4d7ca;
}
html[data-theme="dark"] .app-body .status.active,
html[data-theme="dark"] .app-body .status.approved,
html[data-theme="dark"] .app-body .status.succeeded,
html[data-theme="dark"] .app-body .status.paid,
html[data-theme="dark"] .app-body .notice.success {
  background: #284638;
  color: #c0f2d1;
  border-color: #3d6b50;
}
html[data-theme="dark"] .app-body .status.pending,
html[data-theme="dark"] .app-body .status.requested,
html[data-theme="dark"] .app-body .status.processing,
html[data-theme="dark"] .app-body .notice.amber {
  background: #443a27;
  color: #f2d5a1;
  border-color: #685638;
}
html[data-theme="dark"] .app-body .status.rejected,
html[data-theme="dark"] .app-body .status.failed,
html[data-theme="dark"] .app-body .status.revoked,
html[data-theme="dark"] .app-body .status.suspended,
html[data-theme="dark"] .app-body .flash.error {
  background: #4b302f;
  color: #ffd1c7;
  border-color: #754743;
}
html[data-theme="dark"] .app-body .status.paused,
html[data-theme="dark"] .app-body .status.draft,
html[data-theme="dark"] .app-body .status.exhausted,
html[data-theme="dark"] .app-body .status.expired { background: #34423a; color: #d5e2d8; }
html[data-theme="dark"] .app-body .flash.success { color: #c0f2d1; }

html[data-theme="dark"] .app-body .confirm-dialog {
  background: var(--white);
  color: var(--ink);
  border: 1px solid var(--line);
}
html[data-theme="dark"] .app-body .confirm-dialog p { color: var(--muted); }
html[data-theme="dark"] .app-body .dialog-icon { background: #2a4234; color: var(--green); }
html[data-theme="dark"] .app-body .app-footer {
  background: #17211d;
  border-top: 1px solid var(--line);
}
html[data-theme="dark"] .app-body .app-footer p,
html[data-theme="dark"] .app-body .app-footer a,
html[data-theme="dark"] .app-body .app-footer .footer-bottom { color: #b7c9bc; }

html[data-theme="dark"] .app-body :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 2px solid #9be5b7;
  outline-offset: 3px;
}
@media (max-width: 760px) {
  html[data-theme="dark"] .app-body .sidebar {
    background: #18251f;
    border-color: var(--line);
    box-shadow: 0 -5px 18px #060d0980;
  }
  html[data-theme="dark"] .app-body .side-nav a { font-size: 10px; }
  html[data-theme="dark"] .app-body .topbar { background: #1a2721; }
}
