/* ── PassPoint Base / Reset ──────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=DM+Mono:wght@400;500&display=swap');

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  overflow-x: hidden;
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

::selection {
  background: var(--cyan-mid);
}

/* Scrollbar */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--faint); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: var(--muted); }

/* Typography */
h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.3;
}

a {
  color: var(--cyan);
  text-decoration: none;
}
a:hover { text-decoration: underline; }

p { line-height: 1.65; }

/* Prevent iOS zoom on inputs */
input, select, textarea {
  font-size: 16px;
}

@media (min-width: 769px) {
  input, select, textarea {
    font-size: 14px;
  }
}

/* Focus visible */
:focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: 2px;
}

/* ─── LIGHT MODE BASE OVERRIDES ──────────────── */
[data-theme="light"] body {
  background: var(--bg);
  color: var(--text);
}

[data-theme="light"] .input {
  background: #ffffff;
  border-color: rgba(0,0,0,0.15);
  color: #0f1117;
}
[data-theme="light"] .input::placeholder { color: #94a3b8; }
[data-theme="light"] .input:focus { border-color: var(--cyan); }

[data-theme="light"] .tap-btn {
  background: #ffffff;
  border-color: rgba(0,0,0,0.12);
  color: #5a6478;
}
[data-theme="light"] .tap-btn:hover { background: var(--faint); color: #0f1117; }
[data-theme="light"] .tap-btn.sel  { background: var(--cyan-dim); border-color: var(--cyan); color: var(--cyan); }

[data-theme="light"] .opt-card {
  background: #ffffff;
  border-color: rgba(0,0,0,0.12);
}
[data-theme="light"] .opt-card:hover, [data-theme="light"] .opt-card.sel {
  background: var(--cyan-dim);
  border-color: var(--cyan);
}

[data-theme="light"] .btn-ghost {
  background: #ffffff;
  border-color: rgba(0,0,0,0.14);
  color: #5a6478;
}
[data-theme="light"] .btn-ghost:hover { border-color: var(--cyan); color: var(--cyan); }

[data-theme="light"] .btn-primary { color: #ffffff; }

[data-theme="light"] .chip-muted { background: #e4e8f0; color: #5a6478; }

[data-theme="light"] .tbl tr:hover td { background: #f5f7fa; }

[data-theme="light"] .skeleton { background: #e4e8f0; }
[data-theme="light"] .skeleton::after {
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
}

[data-theme="light"] ::-webkit-scrollbar-thumb { background: #d1d9e6; }

[data-theme="light"] .hero { background: #ffffff; }
[data-theme="light"] .report-hero { background: #ffffff; }
[data-theme="light"] .kpi { background: #ffffff; }
