/* ============================================================================
   VOTUM — tasarım belirteçleri

   FİKİR: Ürünün özü birbirine zıt iki niteliği bir arada tutmaktır —
   mühürlü (kimse göremez) ve şeffaf (herkes doğrulayabilir). Tasarım bunu
   yüzey seçimiyle anlatır:

     koyu mürekkep yüzeyler  → mühürlemenin olduğu anlar (hero, kabin, tören)
     açık kâğıt yüzeyler     → yayımlamanın olduğu anlar (tahta, kanıt, panel)

   Renkler OKLCH ile tanımlı: açıklık değerleri algısal olarak tutarlı,
   dolayısıyla kontrast hesapları tonlar arasında kaymıyor.

   DIŞ BAĞIMLILIK YOK: yazı tipi indirilmiyor. CSP `font-src 'self'` diyor ve
   oy kabininde CDN'den dosya çekmek kabul edilemez. Tipografi sistem
   yığınıyla, ölçek ve ritimle kuruluyor.
   ============================================================================ */

:root {
  /* --- Mürekkep: koyu yüzeyler --- */
  --ink-950: oklch(0.145 0.018 265);
  --ink-900: oklch(0.185 0.022 265);
  --ink-850: oklch(0.225 0.024 265);
  --ink-800: oklch(0.265 0.026 265);
  --ink-700: oklch(0.345 0.028 265);
  --ink-600: oklch(0.455 0.026 265);

  /* --- Kâğıt: açık yüzeyler --- */
  --paper-0:  oklch(1 0 0);
  --paper-50: oklch(0.985 0.003 265);
  --paper-100:oklch(0.968 0.005 265);
  --paper-200:oklch(0.932 0.007 265);
  --paper-300:oklch(0.878 0.009 265);

  /* --- Vurgu: "kriptografik" indigo-mor --- */
  --accent-400: oklch(0.70 0.16 278);
  --accent-500: oklch(0.585 0.205 277);
  --accent-600: oklch(0.515 0.215 277);
  --accent-700: oklch(0.445 0.195 277);

  /* --- Durum --- */
  --verify-500: oklch(0.66 0.155 158);   /* doğrulandı */
  --verify-600: oklch(0.565 0.145 158);
  --warn-500:   oklch(0.75 0.155 75);    /* dikkat */
  --warn-600:   oklch(0.655 0.155 65);
  --danger-500: oklch(0.63 0.21 22);     /* hata / bozulma */
  --danger-600: oklch(0.545 0.20 22);

  /* --- Anlamsal: açık tema --- */
  --bg:          var(--paper-50);
  --bg-raised:   var(--paper-0);
  --bg-sunken:   var(--paper-100);
  --border:      var(--paper-200);
  --border-soft: var(--paper-100);
  --fg:          var(--ink-900);
  --fg-muted:    var(--ink-600);
  --fg-subtle:   oklch(0.58 0.018 265);

  --accent:      var(--accent-600);
  --accent-hover:var(--accent-700);
  --accent-fg:   var(--paper-0);
  --accent-weak: oklch(0.585 0.205 277 / 0.10);
  --accent-ring: oklch(0.585 0.205 277 / 0.35);

  --verify:      var(--verify-600);
  --warn:        var(--warn-600);
  --danger:      var(--danger-600);

  /* --- Yarıçap --- */
  --r-sm:  8px;
  --r-md:  12px;
  --r-lg:  18px;
  --r-xl:  26px;
  --r-pill: 999px;

  /* --- Gölge: katmanlı, düşük opaklık --- */
  --shadow-sm: 0 1px 2px oklch(0.185 0.022 265 / 0.05),
               0 1px 3px oklch(0.185 0.022 265 / 0.04);
  --shadow-md: 0 2px 4px oklch(0.185 0.022 265 / 0.04),
               0 6px 16px oklch(0.185 0.022 265 / 0.07);
  --shadow-lg: 0 4px 8px oklch(0.185 0.022 265 / 0.04),
               0 16px 40px oklch(0.185 0.022 265 / 0.10);
  --shadow-accent: 0 4px 14px oklch(0.585 0.205 277 / 0.28);

  /* --- Hareket --- */
  --ease:      cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out:  cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);
  --t-fast: 120ms;
  --t-mid:  220ms;
  --t-slow: 420ms;

  /* --- Ölçü --- */
  --wrap:      72rem;
  --wrap-wide: 90rem;
  --wrap-text: 40rem;
  --gutter: clamp(1rem, 4vw, 2.5rem);

  /* --- Tipografi --- */
  --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto,
          "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
          "Liberation Mono", monospace;

  --fs-display: clamp(2.5rem, 1.2rem + 4.6vw, 4.75rem);
  --fs-h1:      clamp(2rem, 1.2rem + 2.8vw, 3.1rem);
  --fs-h2:      clamp(1.5rem, 1.1rem + 1.5vw, 2.1rem);
  --fs-h3:      clamp(1.15rem, 1rem + 0.6vw, 1.4rem);
  --fs-lead:    clamp(1.075rem, 1rem + 0.5vw, 1.3rem);
  --fs-body:    1rem;
  --fs-sm:      0.9125rem;
  --fs-xs:      0.8125rem;
  --fs-label:   0.75rem;
}

/* ----------------------------------------------------------------------------
   Koyu tema
   Yüzeyler ters çevrilmiyor, YENİDEN kuruluyor: koyu zeminde aynı vurgu rengi
   soluk kalır, bu yüzden bir tık açık tonu kullanılıyor.
   -------------------------------------------------------------------------- */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg:          var(--ink-950);
    --bg-raised:   var(--ink-900);
    --bg-sunken:   oklch(0.125 0.016 265);
    --border:      var(--ink-800);
    --border-soft: var(--ink-850);
    --fg:          oklch(0.955 0.005 265);
    --fg-muted:    oklch(0.72 0.015 265);
    --fg-subtle:   oklch(0.60 0.018 265);

    --accent:      var(--accent-400);
    --accent-hover:oklch(0.76 0.14 278);
    --accent-fg:   var(--ink-950);
    --accent-weak: oklch(0.70 0.16 278 / 0.14);
    --accent-ring: oklch(0.70 0.16 278 / 0.45);

    --verify:      var(--verify-500);
    --warn:        var(--warn-500);
    --danger:      var(--danger-500);

    --shadow-sm: 0 1px 2px oklch(0 0 0 / 0.30);
    --shadow-md: 0 2px 6px oklch(0 0 0 / 0.35), 0 8px 24px oklch(0 0 0 / 0.30);
    --shadow-lg: 0 8px 32px oklch(0 0 0 / 0.45);
    --shadow-accent: 0 4px 18px oklch(0.70 0.16 278 / 0.35);
  }
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: var(--ink-950); --bg-raised: var(--ink-900); --bg-sunken: oklch(0.125 0.016 265);
  --border: var(--ink-800); --border-soft: var(--ink-850);
  --fg: oklch(0.955 0.005 265); --fg-muted: oklch(0.72 0.015 265);
  --fg-subtle: oklch(0.60 0.018 265);
  --accent: var(--accent-400); --accent-hover: oklch(0.76 0.14 278);
  --accent-fg: var(--ink-950); --accent-weak: oklch(0.70 0.16 278 / 0.14);
  --accent-ring: oklch(0.70 0.16 278 / 0.45);
  --verify: var(--verify-500); --warn: var(--warn-500); --danger: var(--danger-500);
}
