:root {
  --bg: #080d18;
  --bg-elevated: #111827;
  --bg-dark: #030712;
  --bg-dark-soft: #1a2332;
  --ink: #f1f5f9;
  --ink-soft: #94a3b8;
  --ink-muted: #64748b;
  --accent: #38bdf8;
  --accent-hover: #0ea5e9;
  --accent-soft: rgba(56, 189, 248, 0.14);
  --sage: #818cf8;
  --sage-soft: rgba(129, 140, 248, 0.14);
  --sage-muted: #a5b4fc;
  --line: rgba(148, 163, 184, 0.12);
  --line-strong: rgba(148, 163, 184, 0.22);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 8px 32px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 24px 64px rgba(0, 0, 0, 0.55);
  --shadow-ui: 0 32px 80px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(56, 189, 248, 0.08);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-xl: 28px;
  --font-display: "Archivo", "Noto Sans KR", sans-serif;
  --font-body: "Epilogue", "Noto Sans KR", sans-serif;
  --nav-scroll-bg: rgba(8, 13, 24, 0.92);
  --logo-gradient: linear-gradient(145deg, #38bdf8, #6366f1);
  --hero-bg: radial-gradient(ellipse 70% 50% at 50% 0%, rgba(56, 189, 248, 0.12), transparent), radial-gradient(ellipse 40% 30% at 90% 80%, rgba(99, 102, 241, 0.1), transparent);
  --btn-shadow: 0 4px 14px rgba(56, 189, 248, 0.22);
  --flow-glow: 0 0 0 6px rgba(56, 189, 248, 0.25);
  --module-hover-border: rgba(56, 189, 248, 0.35);
  --cta-bg: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%);
  --cta-glow: radial-gradient(circle at 70% 30%, rgba(56, 189, 248, 0.2), transparent 55%);
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --container: 1180px;
  --nav-h: 72px;
}

body.theme-midnight .hero-grid {
  align-items: start;
}

body.theme-midnight .hero {
  padding-bottom: 48px;
}

body.theme-midnight .hero-title {
  max-width: none;
}

body.theme-midnight .btn-primary {
  box-shadow: 0 4px 14px rgba(56, 189, 248, 0.22);
}

body.theme-midnight .flow-section {
  background: linear-gradient(180deg, #0f172a 0%, #1e1b4b 100%);
}

body.theme-midnight .site-header:not(.scrolled) {
  background: transparent;
}

body.theme-midnight .btn-ghost {
  color: var(--ink);
  border-color: var(--line-strong);
}

body.theme-midnight .btn-ghost:hover {
  background: var(--bg-elevated);
}

body.theme-midnight .feature-list li::before {
  color: var(--accent);
}

body.theme-midnight .ui-row-tag {
  background: var(--accent-soft);
  color: var(--accent);
}

body.theme-midnight .ui-day.highlight {
  background: var(--accent-soft);
  border-color: rgba(56, 189, 248, 0.25);
}

body.theme-midnight .ui-sidebar-item.active {
  background: var(--accent-soft);
  color: var(--accent);
}

body.theme-midnight .ui-float-card .check {
  background: var(--accent-soft);
  color: var(--accent);
}

body.theme-midnight .hero-meta dt {
  color: var(--accent);
}

body.theme-midnight .problem-icon {
  background: var(--accent-soft);
  color: var(--accent);
}

body.theme-midnight .role-avatar {
  color: var(--accent);
}

body.theme-midnight .section[id="solution"],
body.theme-midnight .section[id="roles"],
body.theme-midnight .section[id="reports"] {
  background: var(--bg-dark-soft) !important;
}

body.theme-midnight .problem-card,
body.theme-midnight .module-card,
body.theme-midnight .role-card,
body.theme-midnight .feature-visual,
body.theme-midnight .ui-mock {
  background: var(--bg-elevated);
}

body.theme-midnight .ui-mock-bar { background: var(--bg-dark-soft); }

body.theme-midnight .ui-sidebar { background: var(--bg-dark-soft); }

body.theme-midnight .ui-day { background: var(--bg-dark-soft); }

body.theme-midnight .ui-row { background: var(--bg-dark-soft); }

body.theme-midnight .price-section {
  background: linear-gradient(180deg, rgba(239, 68, 68, 0.12) 0%, transparent 140px);
}

body.theme-midnight .price-confidential-banner {
  background: rgba(239, 68, 68, 0.14);
  border-color: #f87171;
  box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.12);
}

body.theme-midnight .price-confidential-text strong {
  color: #fca5a5;
}

body.theme-midnight .price-confidential-text p {
  color: #fecaca;
}

body.theme-midnight .price-internal-wrap {
  border-color: #f87171;
  box-shadow: inset 0 0 0 1px rgba(248, 113, 113, 0.1);
}
