@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
  --color-bg-primary: #f5f7fb; --color-bg-secondary: #eef2f7; --color-bg-tertiary: #fff;
  --color-text-primary: #111827; --color-text-secondary: #6b7280; --color-text-tertiary: #9ca3af;
  --color-border: #e5e7eb; --color-border-light: #dbe1ea; --color-neon-blue: #4f46e5;
  --color-neon-purple: #4f46e5; --color-neon-pink: #6366f1; --color-neon-cyan: #4338ca;
  --gradient-primary: #4f46e5; --gradient-secondary: #6366f1;
  --shadow-sm: 0 2px 8px rgba(15,23,42,.04); --shadow-md: 0 8px 24px rgba(15,23,42,.08); --shadow-lg: 0 16px 40px rgba(15,23,42,.10); --shadow-xl: 0 24px 56px rgba(15,23,42,.12);
  --radius-sm: 8px; --radius-md: 12px; --radius-lg: 18px; --radius-xl: 20px;
}
* { scrollbar-color: #cbd5e1 transparent; }
body { background: var(--color-bg-primary); color: var(--color-text-primary); font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
p { color: var(--color-text-secondary); } a { color: #4f46e5; } a:hover { color: #3730a3; }
h1,h2,h3,h4 { letter-spacing: -.035em; } h1 { font-weight: 800; }
.btn { min-height: 44px; padding: .7rem 1.05rem; border-radius: 12px; text-transform: none; letter-spacing: 0; font-size: .9rem; font-weight: 700; box-shadow: none; position: relative; overflow: visible; }
.btn::before { display:none; }.btn-primary { background: #4f46e5; border: 1px solid #4f46e5; color:#fff; box-shadow: 0 4px 12px rgba(79,70,229,.2); }.btn-primary:hover { background:#4338ca; box-shadow:0 6px 16px rgba(79,70,229,.25); transform:translateY(-1px); }
.btn-secondary { background:#fff; border:1px solid var(--color-border); color:#374151; }.btn-secondary:hover,.btn-ghost:hover { background:#f3f4f6; color:#111827; border-color:#d1d5db; box-shadow:none; }.btn-ghost { background:transparent; color:#4b5563; border:1px solid var(--color-border); }.btn-danger { background:#fef2f2; border:1px solid #fecaca; color:#dc2626; }.btn-danger:hover { background:#fee2e2; box-shadow:none; transform:translateY(-1px); }
.glass-card,.report-card { background:#fff; border:1px solid rgba(229,231,235,.7); box-shadow:var(--shadow-md); }.glass-card::before,.glass-card:hover::before { display:none; }.glass-card:hover { border-color:#e5e7eb; box-shadow:var(--shadow-lg); transform:translateY(-2px); }
.form-label { color:#374151; letter-spacing:0; text-transform:none; font-size:.85rem; }.form-group { margin-bottom:1.25rem; }
input[type='text'],input[type='email'],input[type='password'],input[type='number'],textarea,select { background:#fff; border:1px solid #dfe3ea; color:#111827; border-radius:12px; padding:.78rem .9rem; }.input-group { margin-bottom:1rem; }
input[type='text']:focus,input[type='email']:focus,input[type='password']:focus,input[type='number']:focus,textarea:focus,select:focus { border-color:#6366f1; background:#fff; box-shadow:0 0 0 4px rgba(99,102,241,.12); }
footer { color:#6b7280; background:transparent; padding:24px; margin-left:260px; } footer p { font-size:.8rem; }

/* Landing page pricing */
.pricing-section { padding:64px 24px 72px; background:#eef2f7; scroll-margin-top:76px; }
.pricing-container { max-width:1200px; margin:0 auto; }
.pricing-section .section-header { margin-bottom:38px; }
.pricing-section .section-header h2 { color:#111827; font-size:clamp(1.8rem,3vw,2.35rem); margin-bottom:10px; }
.pricing-section .section-header p { color:#64748b; }
.pricing-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:24px; }
.pricing-card { position:relative; display:flex; flex-direction:column; min-width:0; padding:24px 26px; border:1px solid #e8ebf0; border-radius:18px; background:#fff; box-shadow:var(--shadow-md); }
.pricing-card-popular { border:2px solid #635bff; outline:2px solid rgba(99,91,255,.22); outline-offset:2px; box-shadow:0 8px 24px rgba(79,70,229,.12); }
.pricing-popular-badge { position:absolute; top:-14px; left:50%; transform:translateX(-50%); padding:6px 16px; border-radius:999px; background:#4f46e5; color:#fff; font-size:.78rem; font-weight:700; white-space:nowrap; }
.pricing-icon { display:grid; place-items:center; width:52px; height:52px; margin-bottom:12px; border-radius:14px; background:#f0efff; color:#4f46e5; }
.pricing-icon svg { width:26px; height:26px; }
.pricing-name { margin-bottom:4px; color:#111827; font-size:1.25rem; }
.pricing-recommendation { align-self:flex-start; margin:0 0 8px; color:#6d28d9; font-size:.78rem; font-weight:700; }
.pricing-description { min-height:48px; margin-bottom:14px; color:#64748b; font-size:.9rem; line-height:1.5; }
.pricing-price { display:flex; align-items:baseline; gap:8px; padding-bottom:14px; border-bottom:1px solid #edf0f4; color:#64748b; font-size:.9rem; }
.pricing-price > span:first-child { color:#4f46e5; font-size:2.25rem; font-weight:800; letter-spacing:-.05em; line-height:1.2; }
.pricing-price-options { display:grid; align-items:stretch; gap:5px; }
.pricing-option { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin:0; color:#64748b; font-size:1rem; }
.pricing-option strong { color:#4f46e5; font-size:1.55rem; font-weight:800; letter-spacing:-.04em; line-height:1.25; white-space:nowrap; }
.pricing-period { white-space:nowrap; }
.pricing-features { display:grid; gap:10px; margin:16px 0 20px; padding:0; list-style:none; color:#475569; font-size:.86rem; }
.pricing-features li { position:relative; padding-left:26px; line-height:1.45; }
.pricing-features li::before { position:absolute; top:1px; left:0; display:grid; place-items:center; width:16px; height:16px; border-radius:50%; background:#eeedff; color:#4f46e5; content:"✓"; font-size:.7rem; font-weight:800; }
.pricing-cta { display:flex; align-items:center; justify-content:center; gap:10px; min-height:44px; margin-top:auto; padding:10px 16px; border-radius:12px; background:#f0efff; color:#4338ca; font-size:.88rem; font-weight:700; transition:background .2s ease,color .2s ease,transform .2s ease; }
.pricing-cta:hover { transform:translateY(-1px); background:#e4e2ff; color:#3730a3; }
.pricing-card-popular .pricing-cta { background:#4f46e5; color:#fff; box-shadow:0 4px 12px rgba(79,70,229,.2); }
.pricing-card-popular .pricing-cta:hover { background:#4338ca; color:#fff; }
.pricing-cta span { font-size:1.1rem; }

@media (max-width:900px) {
  .pricing-grid { grid-template-columns:1fr; max-width:560px; margin:0 auto; gap:20px; }
  .pricing-card-popular { margin-top:8px; }
  .pricing-description { min-height:0; }
}

/* Application shell */
.dashboard-layout { display:flex; width:100%; min-height:100vh; background:#f5f7fb; }
.sidebar {
  position:fixed; top:0; left:0; height:100vh; width:280px; background:rgba(247,247,250,.96); border-right:1px solid rgba(148,163,184,.24); padding:18px 16px; box-shadow:none; transition:width .28s ease, padding .28s ease;
}
.sidebar:not(.is-expanded) {
  width:90px; padding-left:12px; padding-right:12px;
}
.sidebar-header { border:0; padding:0 6px 0; margin-bottom:18px; display:flex; align-items:center; min-height:52px; }
.sidebar-logo { display:inline-flex; align-items:center; gap:12px; color:#111827; background:none; -webkit-text-fill-color:initial; font-size:1.8rem; font-weight:800; letter-spacing:-.04em; white-space:nowrap; }
.sidebar-logo::before { content:'N'; display:inline-grid; place-items:center; width:38px; height:38px; margin-right:0; border-radius:12px; background:linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%); color:#fff; font-size:1.5rem; vertical-align:middle; box-shadow:0 10px 24px rgba(79,70,229,.22); }
.sidebar:not(.is-expanded) .sidebar-logo { font-size:0; gap:0; }
.sidebar:not(.is-expanded) .theme-toggle { display:none; }
.sidebar-nav { display:flex; flex:1; flex-direction:column; gap:10px; }
.sidebar-nav-item { margin:0; }
.sidebar-nav-item:last-child { margin-top:auto; }
.sidebar-nav-link { display:flex; align-items:center; justify-content:flex-start; gap:14px; min-height:52px; padding:0 14px; border-radius:14px; color:#1f2937; border:1px solid transparent; font-size:1.02rem; font-weight:500; }
.sidebar-nav-link:hover,.sidebar-nav-link.active { color:#4338ca; background:rgba(91,76,242,.12); border-color:rgba(91,76,242,.06); padding-left:14px; }
.sidebar:not(.is-expanded) .sidebar-nav-link { justify-content:center; padding:0; font-size:0; }
.sidebar-nav-icon { font-size:1.15rem; width:18px; height:18px; }
.sidebar-nav-link.sidebar-logout-link { width:100%; border:0; background:#fff5f5; color:#ef4444; cursor:pointer; font-family:inherit; font-size:.9rem; font-weight:600; text-align:left; margin-top:0; }
.sidebar-nav-link.sidebar-logout-link:hover { background:#fee2e2; color:#dc2626; }
.dashboard-main { flex:1; min-width:0; overflow-x:hidden; margin-left:280px; padding:28px 34px 52px; transition:margin-left .25s ease, padding .25s ease; }
.sidebar:not(.is-expanded) ~ .dashboard-main { margin-left:90px; }
.dashboard-header,.resume-header,.interview-header { margin-bottom:30px; }
.dashboard-header h1,.resume-header h1,.interview-header h1 { font-size:clamp(1.8rem,3vw,2.35rem); margin-bottom:7px; }
.dashboard-header p,.resume-header p,.interview-header p { font-size:1rem; }

@media (max-width: 767px) {
  .dashboard-layout {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .dashboard-main {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin-left: 0;
    padding: 72px 16px 28px;
  }

  .welcome-card,
  .dashboard-grid,
  .stats-card,
  .quick-actions,
  .history-section {
    width: 100%;
    max-width: none;
    min-width: 0;
  }

  .dashboard-grid {
    grid-template-columns: 1fr;
  }

  .welcome-card {
    grid-column: span 1;
    padding: 24px 20px;
  }

  .welcome-card h2 {
    font-size: clamp(2.2rem, 9vw, 3.3rem);
    line-height: 0.98;
    letter-spacing: -0.05em;
  }

  .welcome-card-actions {
    flex-direction: column;
    gap: 12px;
  }

  .welcome-card .btn {
    width: 100%;
  }

  .stats-card {
    min-width: 0;
  }

  .quick-actions {
    grid-template-columns: 1fr;
  }

  .section-header {
    align-items: flex-start;
  }

  footer {
    margin-left: 0;
  }
}

.welcome-card { background:#171b34; background-image:radial-gradient(circle at 88% 20%, rgba(99,102,241,.35), transparent 26%); border:0; border-radius:20px; box-shadow:var(--shadow-lg); min-height:220px; padding:38px; }.welcome-card h2,.welcome-card p { color:#fff; }.welcome-card p { color:#c7d2fe; }.welcome-card .btn:first-child { background:#fff; color:#3730a3; border-color:#fff; }.welcome-card .btn:last-child { background:transparent; border-color:rgba(255,255,255,.35); color:#fff; }
.dashboard-grid { gap:18px; margin:24px 0; }.stats-card,.history-section,.action-card { background:#fff; border:1px solid #edf0f4; box-shadow:var(--shadow-sm); border-radius:18px; }.stats-card { padding:22px; }.stats-card:hover,.action-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }.stats-icon,.action-icon { background:#eef2ff; color:#4f46e5; border-radius:12px; }.stats-value { color:#111827; }.stats-change { color:#10b981; }.history-section { padding:24px; margin-top:22px; }.section-title { color:#111827; }.section-link { font-size:.85rem; font-weight:700; }.quick-actions { gap:16px; }.action-card { padding:22px; }.action-title { color:#111827; }.action-description { color:#6b7280; }.history-table { min-width:640px; }.history-section { overflow-x:auto; }.history-table th { background:#f8fafc; color:#64748b; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; }.history-table td { border-color:#eef0f3; color:#374151; }.history-table tr:hover td { background:#fafbfc; }

/* Resume, reports, interview */
.upload-section,.interview-setup { gap:22px; }.upload-box,.analysis-panel,.history-card,.setup-form,.setup-info,.interview-main,.progress-widget,.previous-questions,.conversation-panel,.interview-transcript,.score-card,.analysis-card,.suggestion-card { background:#fff; border:1px solid #edf0f4; box-shadow:var(--shadow-md); border-radius:18px; }.upload-box { border:1.5px dashed #a5b4fc; background:#f8faff; }.upload-box:hover,.upload-box.dragover { border-color:#4f46e5; background:#f5f7ff; }.upload-box-icon,.setup-info-icon { color:#4f46e5; }.analysis-panel,.history-card { padding:26px; }.analysis-item { border-color:#eef0f3; }.analysis-item-title,.upload-box-title { color:#111827; }.analysis-item-value { color:#6b7280!important; }.history-list { color:#374151; }
.setup-form,.setup-info { padding:28px; }.setup-info-item { border-color:#eef0f3; }.interview-question-card { background:#f8faff; border:1px solid #e0e7ff; border-radius:18px; }.ai-indicator,.metric-card,.conversation-panel,.interview-transcript,.microphone-widget,.progress-widget,.previous-questions { border-color:#edf0f4; background:#fff; }.ai-dot { background:#10b981; box-shadow:0 0 0 4px #d1fae5; }.status-pill { background:#eef2ff; color:#4338ca; }.metric-card { box-shadow:none; }.metric-value { color:#111827; }.microphone-icon { color:#4f46e5; }.waveform-bar { background:#6366f1; }.progress-item.current { background:#4f46e5; }.progress-item.completed { background:#10b981; }.progress-item.pending { background:#f1f5f9; color:#94a3b8; }
.analysis-results { margin-top:24px; }.score-card-value,.score-number { color:#4f46e5!important; }.progress-bar,.score-progress { background:#e0e7ff; }.progress-fill { background:#4f46e5; }.keyword-chip,.skill-tag { background:#eef2ff; color:#4338ca; border:0; }.report-item,.feedback-item { background:#f8fafc; border-color:#e5e7eb; }.report-item.positive,.feedback-item.positive { border-left-color:#10b981; }.report-item.negative,.feedback-item.negative { border-left-color:#ef4444; }

/* Profile and result page */
.profile-sidebar,.profile-content,.score-display,.result-box,.timeline-card,.transcript-card { background:#fff!important; border:1px solid #edf0f4!important; box-shadow:var(--shadow-md)!important; border-radius:18px!important; }.profile-avatar { background:#4f46e5!important; box-shadow:0 8px 24px rgba(79,70,229,.2)!important; }.badge { background:#eef2ff!important; color:#4338ca!important; }.profile-stats,.meta-item { background:#f8fafc!important; }.stat-value,.score-number { color:#4f46e5!important; }.profile-section-title,.profile-divider { border-color:#edf0f4!important; }.results-header h1 { color:#111827!important; background:none!important; -webkit-text-fill-color:initial!important; }.result-item { background:#f8fafc!important; border-left-color:#6366f1!important; }.score-circle circle:first-child { stroke:#e5e7eb!important; }

/* Authentication */
.auth-container { min-height:100vh; display:grid; place-items:center; padding:32px; background:#eef2f7; }.auth-card { position:relative; width:min(100%,460px); margin-left:40%; background:transparent; border:0; box-shadow:none; }.auth-header { text-align:left; margin-bottom:24px; }.auth-header h1 { color:#111827; background:none; -webkit-text-fill-color:initial; font-size:1.75rem; }.auth-form { background:#fff; border:1px solid #e7eaf0; border-radius:20px; box-shadow:var(--shadow-lg); padding:30px; }.auth-submit { width:100%; }.error-message { background:#fef2f2; color:#b91c1c; border:1px solid #fecaca; }.success-message { background:#ecfdf5; color:#047857; border:1px solid #a7f3d0; }.checkbox-wrapper input { accent-color:#4f46e5; }
.fp-container,.rp-container { min-height:100vh; display:grid; place-items:center; padding:24px; background:#eef2f7!important; }.fp-card,.rp-card { background:#fff!important; border:1px solid #e7eaf0!important; box-shadow:var(--shadow-lg)!important; border-radius:20px!important; }.fp-card h1,.rp-card h1 { color:#111827!important; }.animated-bg { display:none; }.eye-toggle { color:#6b7280!important; }

/* Landing page overrides (loaded after local styles) */
.navbar-landing { background:rgba(255,255,255,.88)!important; border-color:#e5e7eb!important; backdrop-filter:blur(14px); }.navbar-logo { background:none!important; color:#111827!important; -webkit-text-fill-color:initial!important; letter-spacing:-.06em; }.navbar-links a { color:#4b5563!important; }.navbar-links a:hover { color:#4f46e5!important; }.hero-section { min-height:calc(100vh - 70px)!important; background:#f5f7fb; }.hero-particle { opacity:.35; filter:none; }.hero-particle-1,.hero-particle-2,.hero-particle-3 { background:#e0e7ff!important; }.hero-title { color:#111827!important; background:none!important; -webkit-text-fill-color:initial!important; letter-spacing:-.06em; }.hero-subtitle { color:#64748b!important; }.features-section,.testimonials-section { background:#eef2f7!important; }.feature-card,.testimonial-card,.cta-card { background:#fff!important; border:1px solid #e8ebf0!important; box-shadow:var(--shadow-sm)!important; }.feature-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md)!important; }.feature-icon { background:#eef2ff!important; color:#4f46e5!important; }.cta-section { background:#f5f7fb!important; }.cta-card { background:#181b34!important; }.cta-card h2,.cta-card p { color:#fff!important; }.footer { background:#fff!important; border-color:#e5e7eb!important; }
/* Legal pages */
body > .header { background:#181b34!important; padding:76px 20px!important; } body > .header h1 { color:#fff!important; } body > .header p { color:#c7d2fe!important; } body > .container { max-width:1000px; padding:52px 20px; } body > .container .card { background:#fff!important; border:1px solid #e8ebf0!important; backdrop-filter:none!important; box-shadow:var(--shadow-sm); border-radius:18px!important; } body > .container .card h2 { color:#111827!important; } body > .container .card p,body > .container .card li { color:#6b7280!important; } body > .footer { margin-left:0; color:#6b7280; }
@media (max-width:1024px) {
  .dashboard-main,
  footer {
    margin-left: 0;
  }

  .dashboard-main {
    padding: 30px 24px;
  }

  .auth-container::before {
    display: none;
  }

  .auth-card {
    margin: 0;
  }

  .auth-container {
    background: #eef2f7;
  }
}

@media (max-width:900px) {
  .sidebar,
  .sidebar:not(.is-expanded) {
    position: fixed;
    top: 0;
    left: 0;
    width: 280px;
    max-width: 82vw;
    height: 100vh;
    height: 100dvh;
    padding: 18px 16px;
    overflow-x: hidden;
    overflow-y: auto;
    z-index: 120;
  }

  .sidebar:not(.is-expanded) {
    transform: translateX(-100%);
  }

  body.mobile-sidebar-open .sidebar:not(.is-expanded) {
    transform: translateX(0);
  }

  .sidebar:not(.is-expanded) .sidebar-logo {
    gap: 12px;
    font-size: 1.8rem;
  }

  .sidebar:not(.is-expanded) .theme-toggle {
    display: inline-flex;
  }

  .sidebar:not(.is-expanded) .sidebar-nav-link {
    justify-content: flex-start;
    padding: 0 14px;
    font-size: 1.02rem;
  }

  .dashboard-main,
  .sidebar:not(.is-expanded) ~ .dashboard-main {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin-left: 0;
    padding: 82px 16px 28px;
    box-sizing: border-box;
  }

  .dashboard-layout + footer {
    margin-left: 0;
  }
}

@media (max-width:640px) {
  .welcome-card {
    padding: 26px;
  }

  .history-section {
    padding: 18px;
  }

  .auth-container {
    padding: 16px;
  }

  .auth-form {
    padding: 24px 20px;
  }

  .profile-container,
  .results-container {
    padding: 24px 16px !important;
  }

  .score-summary {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }