/* PrepSphere design system - indigo/cyan, Bootstrap 5 variable overrides */
:root {
  --ps-primary: #3949ab;
  --ps-primary-dark: #232f6e;
  --ps-primary-light: #5c6bc0;
  --ps-accent: #00bcd4;
  --ps-accent-dark: #0097a7;
  --ps-bg: #f4f6fb;
  --ps-surface: #ffffff;
  --ps-border: #e3e7f1;
  --ps-text: #1f2437;
  --ps-text-muted: #6b7280;
  --ps-success: #22a06b;
  --ps-warning: #f0a020;
  --ps-danger: #e0446f;
  --ps-radius: 14px;
  --ps-radius-sm: 8px;
  --ps-shadow: 0 2px 10px rgba(35,47,110,0.06);
  --ps-shadow-lg: 0 12px 32px rgba(35,47,110,0.12);
  --bs-primary: var(--ps-primary);
  --bs-primary-rgb: 57,73,171;
  --bs-body-bg: var(--ps-bg);
  --bs-body-color: var(--ps-text);
  --bs-border-radius: var(--ps-radius-sm);
  font-family: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

body { background: var(--ps-bg); color: var(--ps-text); font-family: inherit; }
a { color: var(--ps-primary); text-decoration: none; }
a:hover { color: var(--ps-primary-dark); }

.btn-primary { background: var(--ps-primary); border-color: var(--ps-primary); }
.btn-primary:hover, .btn-primary:focus { background: var(--ps-primary-dark); border-color: var(--ps-primary-dark); }
.btn-accent { background: var(--ps-accent); border-color: var(--ps-accent); color: #fff; }
.btn-accent:hover { background: var(--ps-accent-dark); border-color: var(--ps-accent-dark); color: #fff; }
.btn-outline-primary { color: var(--ps-primary); border-color: var(--ps-primary); }
.btn-outline-primary:hover { background: var(--ps-primary); border-color: var(--ps-primary); }
.text-primary { color: var(--ps-primary) !important; }
.text-accent { color: var(--ps-accent-dark) !important; }
.bg-primary { background: var(--ps-primary) !important; }
.bg-accent { background: var(--ps-accent) !important; }
.bg-brand-gradient { background: linear-gradient(135deg, var(--ps-primary) 0%, var(--ps-primary-dark) 55%, #131a45 100%); }

.ps-navbar { background: var(--ps-surface); border-bottom: 1px solid var(--ps-border); box-shadow: var(--ps-shadow); }
.ps-navbar .navbar-brand { font-weight: 800; letter-spacing: -.02em; color: var(--ps-primary-dark); }
.ps-navbar .navbar-brand .accent { color: var(--ps-accent-dark); }
.ps-navbar .nav-link { color: var(--ps-text-muted); font-weight: 500; }
.ps-navbar .nav-link.active, .ps-navbar .nav-link:hover { color: var(--ps-primary); }

.ps-sidebar { background: var(--ps-surface); border-right: 1px solid var(--ps-border); min-height: 100vh; }
.ps-sidebar .nav-link { color: var(--ps-text-muted); border-radius: var(--ps-radius-sm); padding: .55rem .9rem; font-weight: 500; font-size: .93rem; }
.ps-sidebar .nav-link i { width: 20px; display: inline-block; text-align: center; margin-right: .5rem; }
.ps-sidebar .nav-link.active { background: rgba(57,73,171,.1); color: var(--ps-primary); font-weight: 600; }
.ps-sidebar .nav-link:hover { background: rgba(57,73,171,.06); color: var(--ps-primary); }
.ps-sidebar .nav-section { text-transform: uppercase; font-size: .7rem; letter-spacing: .06em; color: #9aa1b5; font-weight: 700; margin: 1rem .9rem .35rem; }

.card, .ps-card { border: 1px solid var(--ps-border); border-radius: var(--ps-radius); box-shadow: var(--ps-shadow); background: var(--ps-surface); }
.ps-card-hover { transition: transform .15s ease, box-shadow .15s ease; }
.ps-card-hover:hover { transform: translateY(-2px); box-shadow: var(--ps-shadow-lg); }

.ps-stat { border-radius: var(--ps-radius); padding: 1.1rem 1.25rem; background: var(--ps-surface); border: 1px solid var(--ps-border); }
.ps-stat .value { font-size: 1.7rem; font-weight: 800; color: var(--ps-primary-dark); }
.ps-stat .label { color: var(--ps-text-muted); font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; }

.ps-badge-strong { background: rgba(34,160,107,.12); color: var(--ps-success); }
.ps-badge-average { background: rgba(0,188,212,.12); color: var(--ps-accent-dark); }
.ps-badge-weak { background: rgba(240,160,32,.14); color: #a06a00; }
.ps-badge-critical { background: rgba(224,68,111,.12); color: var(--ps-danger); }

.progress { border-radius: 999px; background: #eef0f7; }
.progress-bar { border-radius: 999px; }

.ps-option { border: 1.5px solid var(--ps-border); border-radius: var(--ps-radius-sm); padding: .7rem 1rem; cursor: pointer; transition: all .12s ease; display: flex; gap: .65rem; align-items: flex-start; }
.ps-option:hover { border-color: var(--ps-primary-light); background: rgba(57,73,171,.04); }
.ps-option.selected { border-color: var(--ps-primary); background: rgba(57,73,171,.08); }
.ps-option.correct { border-color: var(--ps-success); background: rgba(34,160,107,.1); }
.ps-option.incorrect { border-color: var(--ps-danger); background: rgba(224,68,111,.1); }
.ps-option .label-chip { width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--ps-border); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .8rem; flex-shrink: 0; }
.ps-option.selected .label-chip { background: var(--ps-primary); border-color: var(--ps-primary); color: #fff; }
.ps-option.correct .label-chip { background: var(--ps-success); border-color: var(--ps-success); color: #fff; }
.ps-option.incorrect .label-chip { background: var(--ps-danger); border-color: var(--ps-danger); color: #fff; }

.ps-palette-btn { width: 38px; height: 38px; border-radius: 8px; font-size: .8rem; font-weight: 700; border: 1.5px solid var(--ps-border); background: #fff; }
.ps-palette-btn.st-not_visited { background: #fff; color: var(--ps-text-muted); }
.ps-palette-btn.st-not_answered { background: var(--ps-danger); color: #fff; border-color: var(--ps-danger); }
.ps-palette-btn.st-answered { background: var(--ps-success); color: #fff; border-color: var(--ps-success); }
.ps-palette-btn.st-marked { background: #8e5bd1; color: #fff; border-color: #8e5bd1; }
.ps-palette-btn.st-answered_marked { background: #8e5bd1; color: #fff; border-color: #8e5bd1; box-shadow: inset 0 0 0 3px rgba(34,160,107,.7); }
.ps-palette-btn.current { outline: 2px solid var(--ps-primary); outline-offset: 2px; }

.ps-timer { font-variant-numeric: tabular-nums; font-weight: 800; letter-spacing: .02em; }

.ps-hero { background: linear-gradient(135deg,#232f6e 0%, #3949ab 55%, #00838f 130%); color: #fff; border-radius: 0 0 32px 32px; }
.ps-pricing-card.featured { border: 2px solid var(--ps-accent); box-shadow: 0 16px 40px rgba(0,188,212,.18); }
.ps-readiness-ring { transform: rotate(-90deg); }

.ps-chat-bubble { border-radius: 16px; padding: .75rem 1rem; max-width: 80%; }
.ps-chat-bubble.user { background: var(--ps-primary); color: #fff; margin-left: auto; border-bottom-right-radius: 4px; }
.ps-chat-bubble.assistant { background: #fff; border: 1px solid var(--ps-border); border-bottom-left-radius: 4px; }

.table > :not(caption) > * > * { vertical-align: middle; }
.ps-empty { text-align: center; padding: 3rem 1rem; color: var(--ps-text-muted); }
.ps-empty i { font-size: 2.4rem; color: #c6cbe0; }

.ps-full-viewport { min-height: 100vh; display: flex; flex-direction: column; }
@media (max-width: 767.98px) {
  .ps-sidebar { min-height: auto; }
  .ps-stat .value { font-size: 1.35rem; }
}
