:root.dark-theme {
  --primary-color: #3b82f6;
  --primary-700: #2563eb;
  --bg: #0b1220;
  --surface: #111827;
  --text: #e5e7eb;
  --muted: #9ca3af;
  --border: #1f2937;
  --red-color: #f43f5e;
  --red-700: #e11d48;
  --red-soft: rgba(244, 63, 94, 0.12);
  --shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  --shadow-sm: 0 6px 18px rgba(0, 0, 0, 0.4);
}

/* Buttons */
.dark-theme .btn {
  border: 1px solid rgba(96, 165, 250, .28);
  background: var(--primary-color);
  color: #f8fafc;
  box-shadow: 0 12px 26px rgba(59, 130, 246, .20);
  transition: transform .08s ease, background .2s ease, box-shadow .2s ease;
}

.dark-theme .btn:hover {
  background: var(--primary-700);
  box-shadow: 0 16px 30px rgba(59, 130, 246, .24);
}

.dark-theme .btn.reset {
  background: var(--surface);
  color: var(--red-color);
  border-color: rgba(251, 113, 133, .28);
  box-shadow: var(--shadow-sm);
}

.dark-theme .btn.reset:hover {
  background: var(--red-soft);
  border-color: var(--red-700);
  color: #fecdd3;
}

/* Subject action buttons */
.dark-theme .delete,
.dark-theme .show-recommendation {
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
}

.dark-theme .show-recommendation {
  border-color: rgba(96, 165, 250, .24);
  color: #bfdbfe;
}

.dark-theme .delete {
  color: var(--red-color);
  border-color: rgba(251, 113, 133, .24);
}

.dark-theme .delete:hover,
.dark-theme .show-recommendation:hover {
  background: #182235;
  box-shadow: 0 10px 18px rgba(0, 0, 0, .22);
}

/* Components */
.dark-theme .theme-button {
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04),
              0 10px 30px rgba(0,0,0,.35);
}

.dark-theme .message-empty {
  background: rgba(0, 24, 39, 0.75);
}

.dark-theme .recommendations {
  background:
    radial-gradient(circle at top left, rgba(96, 165, 250, 0.10), transparent 35%),
    linear-gradient(180deg, rgba(96, 165, 250, 0.06), transparent 60%);
}

.dark-theme .rec {
  border: 1px solid rgba(96, 165, 250, 0.14);
  background: rgba(17, 24, 39, 0.82);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.28);
}

.dark-theme .badge,
.dark-theme .rec-metrics span,
.dark-theme .rec-steps li::before {
  background: rgba(96, 165, 250, .14);
  border-color: rgba(96, 165, 250, .24);
  color: #bfdbfe;
}

.dark-theme .rec-steps li {
  background: rgba(15, 23, 42, .92);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .22);
}

.dark-theme .rec-badge-critical {
  color: #fecdd3;
  background: rgba(244, 63, 94, .16);
  border-color: rgba(244, 63, 94, .28);
}

.dark-theme .rec-badge-high {
  color: #fed7aa;
  background: rgba(249, 115, 22, .16);
  border-color: rgba(249, 115, 22, .28);
}

.dark-theme .rec-badge-medium {
  color: #bfdbfe;
  background: rgba(59, 130, 246, .16);
  border-color: rgba(59, 130, 246, .28);
}

.dark-theme .rec-badge-low {
  color: #bbf7d0;
  background: rgba(34, 197, 94, .16);
  border-color: rgba(34, 197, 94, .28);
}

.dark-theme .rec-warning {
  background: rgba(249, 115, 22, 0.12);
  border: 1px solid rgba(249, 115, 22, 0.24);
}

.dark-theme .rec-boost {
  background: rgba(34, 197, 94, 0.12);
  border: 1px solid rgba(34, 197, 94, 0.24);
}

.dark-theme .modal-container {
  background: rgba(2, 6, 23, .60);
}

.dark-theme .modal-close,
.dark-theme .btn.ghost {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text);
}

.dark-theme .btn.ghost:hover,
.dark-theme .modal-close:hover {
  background: #182235;
}

/* Form overlay */
.dark-theme .form-container {
  background: rgba(2, 6, 23, .60);
}

/* Form box */
.dark-theme .form {
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}

/* Close button */
.dark-theme #formClose {
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: 0 4px 12px rgba(0, 0, 0, .16);
}

.dark-theme #formClose:hover {
  background: #182235;
  box-shadow: 0 10px 18px rgba(0, 0, 0, .22);
}

.dark-theme #formClose i {
  color: var(--text);
}

/* Labels and titles */
.dark-theme .form-title {
  color: var(--primary-color);
}

.dark-theme .form-question,
.dark-theme .label {
  color: var(--text);
}

.dark-theme .label {
  color: var(--muted);
}

/* Inputs */
.dark-theme input[type="text"],
.dark-theme select {
  background: #0f172a;
  color: var(--text);
  border: 1px solid var(--border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03);
}

.dark-theme input[type="text"]::placeholder {
  color: #7c8aa0;
}

.dark-theme input[type="text"]:focus,
.dark-theme select:focus {
  border-color: rgba(96, 165, 250, .55);
  box-shadow: 0 0 0 4px rgba(96, 165, 250, .12);
}

.dark-theme .select-wrap i {
  color: var(--muted);
}

.dark-theme .checker {
  color: #fda4af;
}

/* Checkbox row */
.dark-theme .checkbox-row {
  color: var(--text);
}

/* Schedule */
.dark-theme .schedule {
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}

.dark-theme .schedule-header {
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, rgba(96, 165, 250, .08), transparent 65%);
}

.dark-theme .schedule-title {
  color: var(--primary-color);
}

.dark-theme .schedule-table th,
.dark-theme .schedule-table td {
  border-bottom: 1px solid var(--border);
}

.dark-theme .schedule-table th {
  color: var(--text);
}

.dark-theme .schedule-table td {
  color: var(--muted);
}

.dark-theme .day-list li {
  background: rgba(15, 23, 42, .92);
  border: 1px solid var(--border);
  color: var(--text);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .18);
}