/* ═══════════════════════════════════════════════════════════════════
   УчОл — theme control and complete dark surface layer.
   Light remains the default. Dark is explicit (data-theme="dark") and
   uses the existing design tokens; no global invert/transparency hacks.
   ═══════════════════════════════════════════════════════════════════ */

/* ---------- theme toggle (shared header) ---------- */
.theme-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: none;
  min-height: 34px;
  padding: 3px 9px 3px 6px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-surface-glass);
  color: var(--color-text-secondary);
  font: 700 11px/1 var(--font-sans);
  cursor: pointer;
  user-select: none;
  transition: background var(--motion-fast) var(--ease-standard),
              border-color var(--motion-fast) var(--ease-standard),
              color var(--motion-fast) var(--ease-standard);
}
.theme-toggle:hover { border-color: var(--color-brand-border); background: var(--color-brand-soft); color: var(--color-brand-strong); }
.theme-toggle-input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}
.theme-toggle-track {
  display: inline-flex;
  align-items: center;
  width: 30px;
  height: 18px;
  padding: 2px;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-pill);
  background: var(--color-surface-muted);
  transition: background var(--motion-base) var(--ease-standard), border-color var(--motion-base);
}
.theme-toggle-thumb {
  display: block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--color-text-tertiary);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .18);
  transition: transform var(--motion-base) var(--ease-spring), background var(--motion-base);
}
.theme-toggle-input:checked ~ .theme-toggle-track {
  border-color: var(--color-brand);
  background: var(--color-brand);
}
.theme-toggle-input:checked ~ .theme-toggle-track .theme-toggle-thumb {
  transform: translateX(12px);
  background: #fff;
}
.theme-toggle-input:focus-visible ~ .theme-toggle-track {
  outline: 3px solid var(--color-focus);
  outline-offset: 2px;
}
.theme-toggle-text { white-space: nowrap; }
[data-theme="dark"] .theme-toggle { background: rgba(44, 44, 46, .74); color: var(--color-text-secondary); }
[data-theme="dark"] .theme-toggle:hover { background: var(--color-brand-soft); color: var(--color-brand-strong); }

/* ---------- explicit dark token layer ---------- */
[data-theme="dark"] { color-scheme: dark; }
[data-theme="dark"] html,
[data-theme="dark"] body {
  background-color: #000;
  color: var(--color-text-primary);
}
[data-theme="dark"] body {
  background-image:
    radial-gradient(ellipse at 8% -4%, rgba(10, 132, 255, .13), transparent 34rem),
    radial-gradient(ellipse at 96% 6%, rgba(125, 122, 255, .10), transparent 30rem),
    radial-gradient(ellipse at 55% 105%, rgba(100, 210, 255, .06), transparent 32rem);
}
[data-theme="dark"] .sidebar {
  background: linear-gradient(180deg, rgba(28, 28, 30, .97), rgba(28, 28, 30, .86));
  border-bottom-color: var(--color-border);
}
[data-theme="dark"] .main-area .page-heading,
[data-theme="dark"] .home-intro,
[data-theme="dark"] .login-wrap {
  border-color: rgba(10, 132, 255, .24);
  box-shadow: 0 18px 42px rgba(0, 0, 0, .24);
}
[data-theme="dark"] .main-area .page-heading,
[data-theme="dark"] .home-intro {
  background:
    radial-gradient(circle at 88% 16%, rgba(100, 210, 255, .10), transparent 31%),
    radial-gradient(circle at 76% 118%, rgba(125, 122, 255, .12), transparent 35%),
    linear-gradient(125deg, #1c1c1e 0%, #17212d 54%, #1d1a2a 100%);
}
[data-theme="dark"] .main-area .page-heading .heading-actions .button-outline { background: rgba(44, 44, 46, .78); }
[data-theme="dark"] .today-label { background: rgba(44, 44, 46, .55); border-color: var(--color-border); color: var(--color-text-secondary); }
[data-theme="dark"] .breadcrumb { color: var(--color-text-tertiary); }
[data-theme="dark"] .topbar { border-bottom-color: transparent; }

/* page surfaces and cards */
[data-theme="dark"] .main-area .panel,
[data-theme="dark"] .main-area .catalog-card,
[data-theme="dark"] .main-area .stat-card,
[data-theme="dark"] .main-area .edition-card,
[data-theme="dark"] .main-area .form-panel,
[data-theme="dark"] .main-area .review-decision-panel,
[data-theme="dark"] .main-area .queue-filter-panel,
[data-theme="dark"] .main-area .dashboard-shortcut,
[data-theme="dark"] .main-area .month-agenda-item,
[data-theme="dark"] .main-area .deadline-card {
  background: linear-gradient(155deg, #1c1c1e 20%, #191f28 100%);
  border-color: var(--color-border);
  color: var(--color-text-primary);
}
[data-theme="dark"] .main-area .stat-lilac { background: linear-gradient(155deg, #1c1c1e 20%, #211d2e 100%); }
[data-theme="dark"] .main-area .stat-peach { background: linear-gradient(155deg, #1c1c1e 20%, #281f16 100%); }
[data-theme="dark"] .main-area .stat-blue { background: linear-gradient(155deg, #1c1c1e 20%, #172230 100%); }
[data-theme="dark"] .main-area .stat-card::after { opacity: .65; }
[data-theme="dark"] .main-area .stat-card small,
[data-theme="dark"] .main-area .panel-header h2,
[data-theme="dark"] .main-area .activity-details b,
[data-theme="dark"] .main-area .deadline-info b { color: var(--color-text-primary); }
[data-theme="dark"] .main-area .panel::before { opacity: .55; }
[data-theme="dark"] .main-area .catalog-card::before { opacity: .48; }
[data-theme="dark"] .main-area .catalog-card:hover,
[data-theme="dark"] .main-area .stat-card-link:hover,
[data-theme="dark"] .main-area .admission-center-goal:hover,
[data-theme="dark"] .main-area .admission-result:hover { border-color: rgba(10, 132, 255, .42); }
[data-theme="dark"] .main-area .activity-row:hover,
[data-theme="dark"] .main-area .review-row:hover { background: linear-gradient(90deg, rgba(10, 132, 255, .10), transparent 76%); }
[data-theme="dark"] .main-area .activity-date { background: #17283e; border-color: #254873; color: #64b5ff; }
[data-theme="dark"] .main-area .notification {
  background: linear-gradient(90deg, #1c1c1e, #18212b);
  border-color: var(--color-border);
  border-left-color: var(--color-brand);
}
[data-theme="dark"] .main-area .notification:hover { border-color: #315b87; }
[data-theme="dark"] .main-area .admission-center-stats > div,
[data-theme="dark"] .main-area .admission-center-goal,
[data-theme="dark"] .main-area .admission-result,
[data-theme="dark"] .main-area .admission-goal,
[data-theme="dark"] .main-area .admission-next-actions a,
[data-theme="dark"] .main-area .compare-choice {
  background: linear-gradient(145deg, #1c1c1e, #181f28);
  border-color: var(--color-border);
}
[data-theme="dark"] .main-area .admission-center-stats strong { color: #64b5ff; }
[data-theme="dark"] .main-area .empty-state,
[data-theme="dark"] .main-area .empty-filter-state,
[data-theme="dark"] .main-area .compact-empty,
[data-theme="dark"] .main-area .admission-center-empty {
  background: linear-gradient(145deg, #1b222c, #1d1a28);
  border-color: #354a58;
}
[data-theme="dark"] .main-area .attention-banner,
[data-theme="dark"] .main-area .next-action-panel {
  background: linear-gradient(130deg, #162536, #211d30);
  border-color: #2b4a70;
}
[data-theme="dark"] .main-area .count-pill { background: #3d3115; border-color: #5c4a20; color: #f5d08a; }
[data-theme="dark"] .main-area .progress-track { background: #2c2c2e; }
[data-theme="dark"] .main-area .progress-track > span { background: linear-gradient(90deg, #0a84ff, #7d7aff, #64d2ff); }

/* forms and controls */
[data-theme="dark"] .main-area :where(
  input:not([type="checkbox"]):not([type="radio"]),
  select, textarea, .review-tools input, .queue-filters input, .queue-filters select
) {
  background: #242428;
  border-color: var(--color-border-strong);
  color: var(--color-text-primary);
}
[data-theme="dark"] .main-area :where(input, select, textarea)::placeholder { color: var(--color-text-tertiary); }
[data-theme="dark"] .main-area .form-actions {
  background: rgba(28, 28, 30, .92);
  border-color: var(--color-border);
}
[data-theme="dark"] .main-area .notification-settings-form .field {
  background: linear-gradient(135deg, #1c1c1e, #18212b);
  border-color: var(--color-border);
}
[data-theme="dark"] .main-area .notification-settings-form .field:hover { border-color: #315b87; }
[data-theme="dark"] .main-area .field > input[type="checkbox"],
[data-theme="dark"] .main-area .field > input[type="radio"] { accent-color: var(--color-brand); }
[data-theme="dark"] .main-area .category-tab,
[data-theme="dark"] .main-area .child-chip,
[data-theme="dark"] .main-area .route-chip {
  background: #242428;
  border-color: var(--color-border-strong);
  color: var(--color-text-secondary);
}
[data-theme="dark"] .main-area .category-tab[aria-pressed="true"],
[data-theme="dark"] .main-area .child-chip.active {
  background: linear-gradient(135deg, #0f304d, #241f47);
  border-color: #315b87;
  color: #64b5ff;
}
[data-theme="dark"] .main-area .pagination-link { background: #242428; border-color: var(--color-border-strong); color: var(--color-text-secondary); }
[data-theme="dark"] .main-area .pagination-link:hover { background: #17283e; color: #64b5ff; }
[data-theme="dark"] .main-area .pagination-link.active,
[data-theme="dark"] .main-area .pagination-link[aria-current="page"] { background: #173652; color: #64b5ff; }
[data-theme="dark"] .main-area thead th { background: #242428; color: var(--color-text-secondary); }
[data-theme="dark"] .main-area tbody tr:hover { background: rgba(10, 132, 255, .08); }

/* catalogs and public/home surfaces */
[data-theme="dark"] .catalog-modes a,
[data-theme="dark"] .catalog-filter-panel,
[data-theme="dark"] .edition-card,
[data-theme="dark"] .home-stats > div,
[data-theme="dark"] .home-filter select,
[data-theme="dark"] .catalog-page input,
[data-theme="dark"] .catalog-page select,
[data-theme="dark"] .catalog-page textarea,
[data-theme="dark"] .next-date {
  background: #1c1c1e;
  border-color: var(--color-border);
  color: var(--color-text-primary);
}
[data-theme="dark"] .catalog-modes a[aria-current] { background: #0b2a4a; border-color: #1b4b7a; }
[data-theme="dark"] .catalog-filter-panel label,
[data-theme="dark"] .edition-switch label,
[data-theme="dark"] .staff-controls label,
[data-theme="dark"] .catalog-page .muted { color: var(--color-text-secondary); }
[data-theme="dark"] .home-action { background: var(--color-brand); color: #fff; }
[data-theme="dark"] .home-eyebrow { color: #64b5ff; }
[data-theme="dark"] .home-stats strong { color: #a5a2ff; }
[data-theme="dark"] .site-footer { color: var(--color-text-tertiary); }

/* login */
[data-theme="dark"] .login-wrap { background: #1c1c1e; }
[data-theme="dark"] .login-art {
  background:
    radial-gradient(circle at 20% 20%, rgba(255, 255, 255, .06), transparent 18%),
    radial-gradient(circle at 86% 90%, rgba(100, 210, 255, .13), transparent 34%),
    linear-gradient(135deg, #17283e, #241f47 52%, #151d27);
}
[data-theme="dark"] .login-panel { background: radial-gradient(circle at 100% 0%, rgba(10,132,255,.10), transparent 35%), #1c1c1e; }
[data-theme="dark"] .login-panel h1, [data-theme="dark"] .art-quote { color: var(--color-text-primary); }
[data-theme="dark"] .login-note { color: var(--color-text-tertiary); }

/* calendar */
[data-theme="dark"] .main-area .gcal-shell,
[data-theme="dark"] .main-area .gcal-sidebar,
[data-theme="dark"] .main-area .gcal-main,
[data-theme="dark"] .main-area .gcal-mini,
[data-theme="dark"] .main-area .month-calendar {
  background: #1c1c1e;
  border-color: var(--color-border);
}
[data-theme="dark"] .main-area .gcal-main { background: linear-gradient(180deg, #1c1c1e, #171b21); }
[data-theme="dark"] .main-area .gcal-mini { background: linear-gradient(145deg, #242428, #17202a); }
[data-theme="dark"] .main-area .gcal-add-btn { background: linear-gradient(135deg, #0a84ff, #409cff); color: #fff; }
[data-theme="dark"] .main-area .gcal-filter:hover { background: rgba(10, 132, 255, .10); }
[data-theme="dark"] .gcal-popover,
[data-theme="dark"] .gcal-popover-backdrop + .gcal-popover {
  background: #1c1c1e;
  border-color: var(--color-border);
  color: var(--color-text-primary);
}
[data-theme="dark"] .gcal-popover-title { color: var(--color-text-primary); }
[data-theme="dark"] .gcal-popover-close, [data-theme="dark"] .gcal-mini-nav { color: var(--color-text-secondary); }
[data-theme="dark"] .gcal-popover-row { border-color: var(--color-border); }
[data-theme="dark"] .student-calendar-embed .fc {
  --fc-border-color: #38383a;
  --fc-page-bg-color: #1c1c1e;
  --fc-neutral-bg-color: #242428;
  --fc-today-bg-color: rgba(10, 132, 255, .10);
  --fc-button-bg-color: #242428;
  --fc-button-border-color: #48484a;
  --fc-button-text-color: #f5f5f7;
  --fc-button-hover-bg-color: #2c2c2e;
  --fc-button-active-bg-color: #173652;
  --fc-list-event-hover-bg-color: #242428;
  --fc-event-text-color: #fff;
  color: var(--color-text-primary);
}
[data-theme="dark"] .student-calendar-embed .fc .fc-toolbar-title,
[data-theme="dark"] .student-calendar-embed .fc .fc-col-header-cell-cushion { color: var(--color-text-primary); }
[data-theme="dark"] .student-calendar-embed .fc .fc-daygrid-day-number { color: var(--color-text-secondary); }

/* status chips keep semantic meaning */
[data-theme="dark"] .status-assigned { background: #0b2a4a; color: #a9c8f5; }
[data-theme="dark"] .status-in_progress, [data-theme="dark"] .status-pending { background: #3d3115; color: #f5d08a; }
[data-theme="dark"] .status-approved, [data-theme="dark"] .status-stage_completed,
[data-theme="dark"] .status-prize_winner, [data-theme="dark"] .status-winner { background: #173d2a; color: #9be3b4; }
[data-theme="dark"] .status-rejected { background: #3f1d1d; color: #f3afaf; }
[data-theme="dark"] .status-cancelled { background: #2c2c2e; color: var(--color-text-tertiary); }
[data-theme="dark"] .category-badge,
[data-theme="dark"] .reliability-chip { border-color: var(--color-border-strong); color: var(--color-text-secondary); }

/* misc surfaces */
[data-theme="dark"] .messages .message { background: linear-gradient(90deg, #1c1c1e, #18212b); border-color: var(--color-border); }
[data-theme="dark"] .main-area .deadline-panel { background: #2e2712; border-color: #5c4a20; }
[data-theme="dark"] .main-area .site-footer { border-top-color: var(--color-border); }
[data-theme="dark"] .main-area .month-calendar-cell.is-today { background: linear-gradient(145deg, #0b2a4a, #1c1c1e); }
[data-theme="dark"] .main-area .today-label { border-color: var(--color-border); }
[data-theme="dark"] .theme-toggle-track { background: #2c2c2e; border-color: #48484a; }
[data-theme="dark"] .theme-toggle-thumb { background: #8e8e93; }
[data-theme="dark"] .theme-toggle-input:checked ~ .theme-toggle-track { background: #0a84ff; border-color: #0a84ff; }

@media (max-width: 760px) {
  .theme-toggle { min-height: 32px; padding: 2px 7px 2px 5px; gap: 6px; }
  .theme-toggle-text { font-size: 10px; }
  .topbar-right { flex-wrap: wrap; justify-content: flex-end; }
}
@media (prefers-reduced-transparency: reduce) {
  [data-theme="dark"] .sidebar { background: #1c1c1e; }
  [data-theme="dark"] .today-label { background: #1c1c1e; }
}
@media print {
  .theme-toggle { display: none !important; }
  [data-theme="dark"] body { background: #fff !important; color: #000 !important; }
}

/* Targeted dark fixes for controls/surfaces whose page-level CSS sets a
   literal light background (verified in browser screenshots). */
[data-theme="dark"] .main-area .metric-list li {
  background: linear-gradient(145deg, #1c1c1e, #18212b);
  border-color: var(--color-border);
  color: var(--color-text-secondary);
}
[data-theme="dark"] .main-area .metric-list li strong { color: #64b5ff; }
[data-theme="dark"] .main-area .filter-form input,
[data-theme="dark"] .main-area input[type="date"],
[data-theme="dark"] .main-area input[type="datetime-local"],
[data-theme="dark"] .main-area input[type="time"] {
  background-color: #242428 !important;
  color: var(--color-text-primary) !important;
  color-scheme: dark;
}
[data-theme="dark"] .student-calendar-embed .fc .fc-col-header-cell,
[data-theme="dark"] .student-calendar-embed .fc .fc-scrollgrid-section-header > *,
[data-theme="dark"] .student-calendar-embed .fc .fc-scrollgrid-section-header .fc-scrollgrid-shrink {
  background: #242428 !important;
  border-color: var(--color-border) !important;
}
[data-theme="dark"] .student-calendar-embed .fc .fc-toolbar,
[data-theme="dark"] .student-calendar-embed .fc .fc-view-harness,
[data-theme="dark"] .student-calendar-embed .fc .fc-scrollgrid {
  background: var(--color-surface);
}
[data-theme="dark"] .student-calendar-embed .fc .fc-col-header-cell-cushion,
[data-theme="dark"] .student-calendar-embed .fc .fc-daygrid-day-number { color: var(--color-text-secondary); }
[data-theme="dark"] .student-calendar-embed .fc .fc-daygrid-day.fc-day-today { background: rgba(10, 132, 255, .12); }
[data-theme="dark"] .main-area .month-calendar-weekday { background: #242428; color: var(--color-text-secondary); }
[data-theme="dark"] .main-area .month-calendar-cell { background: #1c1c1e; color: var(--color-text-primary); }
[data-theme="dark"] .main-area .month-calendar-cell.is-outside { background: #18181a; }
[data-theme="dark"] .main-area .month-calendar-cell:hover { background: #242428; }

/* Mobile table→card layout from workflow.css keeps a literal white surface. */
[data-theme="dark"] .main-area table tr {
  background: #1c1c1e;
  border-color: var(--color-border);
  color: var(--color-text-primary);
}
[data-theme="dark"] .main-area table td { color: var(--color-text-secondary); }
