:root {
  --politiks-accent: #5b5ce2;
  --politiks-accent-rgb: 91, 92, 226;
  --politiks-ink: #15182b;
  --politiks-surface: #ffffff;
  --politiks-border: rgba(21, 24, 43, 0.1);
  --politiks-shadow: 0 24px 60px rgba(28, 31, 64, 0.1);
}

[data-bs-theme="dark"] {
  --politiks-accent: #a8a9ff;
  --politiks-accent-rgb: 168, 169, 255;
  --politiks-ink: #f5f5ff;
  --politiks-surface: #1b1d2e;
  --politiks-border: rgba(255, 255, 255, 0.1);
  --politiks-shadow: 0 24px 70px rgba(0, 0, 0, 0.3);
  --bs-body-bg: #10111d;
  --bs-body-color: #efeff8;
  --bs-border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme="dark"] .btn-outline-secondary {
  --bs-btn-color: #b9bac9;
  --bs-btn-border-color: #686a7c;
  --bs-btn-hover-color: #10111d;
  --bs-btn-hover-bg: #c9cad5;
  --bs-btn-hover-border-color: #c9cad5;
}

html { scroll-behavior: smooth; }

body {
  min-height: 100vh;
  background:
    radial-gradient(circle at 12% 3%, rgba(var(--politiks-accent-rgb), 0.12), transparent 31rem),
    var(--bs-body-bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: -0.012em;
}

.py-lg-6 { padding-top: 6rem !important; padding-bottom: 6rem !important; }
.text-balance { text-wrap: balance; }
.text-accent { color: var(--politiks-accent); }

.skip-link {
  position: fixed;
  z-index: 1100;
  inset: 1rem auto auto 1rem;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  background: var(--bs-body-bg);
}

.app-navbar {
  background: var(--bs-body-bg);
  border-bottom: 1px solid var(--politiks-border);
}

.navbar-brand { color: var(--politiks-ink); font-weight: 750; letter-spacing: -0.04em; }
.brand-mark,
.icon-tile {
  display: inline-grid;
  width: 2.4rem;
  height: 2.4rem;
  place-items: center;
  border-radius: 0.8rem;
  color: white;
  background: linear-gradient(145deg, #7374ee, #4748b8);
  box-shadow: 0 9px 24px rgba(73, 74, 187, 0.26);
}

.icon-tile { width: 3rem; height: 3rem; font-size: 1.15rem; }
.btn-quiet { border: 1px solid transparent; color: var(--bs-body-color); }
.btn-quiet:hover, .btn-quiet:focus-visible { border-color: var(--politiks-border); background: rgba(var(--politiks-accent-rgb), 0.08); }
.theme-menu { min-width: 10rem; }

.hero-section { overflow: clip; }
.hero-section h1 { color: var(--politiks-ink); letter-spacing: -0.065em; line-height: 0.98; }
.eyebrow { color: var(--politiks-accent); font-size: 0.77rem; font-weight: 760; letter-spacing: 0.12em; text-transform: uppercase; }
.status-dot { display: inline-block; width: 0.48rem; height: 0.48rem; margin-right: 0.5rem; border-radius: 50%; background: #29a476; box-shadow: 0 0 0 0.22rem rgba(41, 164, 118, 0.13); }

.surface-card {
  border: 1px solid var(--politiks-border);
  border-radius: 1.35rem;
  background: var(--politiks-surface);
  box-shadow: var(--politiks-shadow);
}

.auth-card { padding: clamp(1.5rem, 4vw, 2.5rem); }
.google-login { min-height: 44px; overflow: hidden; }
.google-login > div, .google-login iframe { max-width: 100% !important; }
.process-section { background: rgba(var(--politiks-accent-rgb), 0.028); }
.process-item { display: flex; gap: 1rem; }
.process-item > span { flex: 0 0 auto; color: var(--politiks-accent); font-weight: 800; font-size: 0.78rem; letter-spacing: 0.08em; }
.process-item h2 { margin-bottom: 0.35rem; font-weight: 700; }
.process-item p { margin: 0; color: var(--bs-secondary-color); font-size: 0.93rem; }
.empty-state { padding: clamp(2.25rem, 7vw, 4.5rem); box-shadow: none; }
.catalogue-status { padding: 2.25rem; color: var(--bs-secondary-color); box-shadow: none; }
.insight-list { display: grid; gap: 1rem; }
.insight-list .accordion-item { overflow: hidden; border: 1px solid var(--politiks-border); border-radius: 1.15rem; background: var(--politiks-surface); box-shadow: 0 12px 32px rgba(28, 31, 64, 0.06); }
.insight-list .accordion-button { align-items: flex-start; padding: 1.3rem; background: transparent; color: var(--bs-body-color); box-shadow: none; }
.insight-list .accordion-button:not(.collapsed) { color: var(--bs-body-color); background: rgba(var(--politiks-accent-rgb), 0.055); }
.insight-list .accordion-body { padding: 0 1.3rem 1.3rem; }
.insight-claim { font-size: 1.04rem; line-height: 1.55; }
.scope-badge { border: 1px solid var(--politiks-border); background: rgba(var(--politiks-accent-rgb), 0.06); color: var(--bs-body-color); font-weight: 600; }
.vote-evidence { border-left: 3px solid var(--politiks-accent); padding-left: 1rem; }
.public-context-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: .8rem; }
.public-context-card { overflow: hidden; border: 1px solid var(--politiks-border); border-radius: .9rem; background: rgba(var(--politiks-accent-rgb), .025); }
.public-context-image { display: block; width: 100%; height: 13rem; object-fit: cover; background: rgba(var(--politiks-accent-rgb), .06); }
.owner-card { height: 100%; padding: 1.25rem; border: 1px solid var(--politiks-border); border-radius: 1rem; background: rgba(var(--politiks-accent-rgb), 0.025); }
.owner-card .btn { margin-top: auto; }
.owner-card-actions .btn { margin-top: 0; }
.visibility-draft { color: var(--bs-secondary-color); }
.visibility-unlisted { color: #b06b00; }
.visibility-public { color: #16815d; }
[data-bs-theme="dark"] .visibility-unlisted { color: #ffc46b; }
[data-bs-theme="dark"] .visibility-public { color: #69d5ad; }
.share-panel { border: 1px solid rgba(var(--politiks-accent-rgb), 0.25); background: rgba(var(--politiks-accent-rgb), 0.07); }
.modal-footer .btn { flex: 1 1 0; }

.btn-primary {
  --bs-btn-bg: #5859d9;
  --bs-btn-border-color: #5859d9;
  --bs-btn-hover-bg: #494abd;
  --bs-btn-hover-border-color: #494abd;
  --bs-btn-active-bg: #4142aa;
  --bs-btn-active-border-color: #4142aa;
  --bs-btn-disabled-bg: #7778cb;
  --bs-btn-disabled-border-color: #7778cb;
}

.btn { border-radius: 0.75rem; font-weight: 650; }
.btn-lg { border-radius: 0.9rem; }
.btn:focus-visible, .nav-link:focus-visible, .dropdown-item:focus-visible { outline: 3px solid rgba(var(--politiks-accent-rgb), 0.35); outline-offset: 2px; }

@media (max-width: 767.98px) {
  .py-lg-6 { padding-top: 4rem !important; padding-bottom: 4rem !important; }
  .hero-section h1 { font-size: clamp(2.8rem, 14vw, 4rem); }
  .app-navbar .navbar-collapse { padding-bottom: 0.6rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
