/* Yönetim paneli: temel katman (yazı tipleri, renk token'ları, sıfırlama).
   Kaynak: public/fonts.css ve public/styles.css :root. Token değerleri sitedekiyle BİREBİR aynıdır;
   test/yonetim-arayuz.test.js eşitliği denetler. Site token'ı değişirse buradaki kopya da güncellenir.
   Yazı tipleri panelin kendi kökünden (<kök>/fonts/, api.js FONT_DOSYALARI): dış kaynak yok, CSP font-src 'self'.
   Panel token'ları (--y-*) yonetim.css'te. */

@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 500 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/bricolage-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 500 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/bricolage-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/geist-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/geist-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url(fonts/geist-mono-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url(fonts/geist-mono-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Ölçüsü eşlenmiş yedek yüzler (CLS): asıl yazı tipi gelene kadar (font-display: swap) metin Arial ile çizilir; size-adjust
   ve ascent/descent-override değerleri gerçek yazı tipiyle aynı genişlik ve satır yüksekliğini verir, yazı tipi değişince
   satır sayısı ve altındaki içerik yerinden oynamaz. Değerler Türkçe örnek metinle ölçüldü (Bricolage 22-40 px ağırlık
   650-700 ≈ Arial Bold × 0,98; Geist 400-500 ≈ Arial × 1,045; Geist 600-700 ≈ Arial Bold × 1,015; Geist Mono = 0,6 em =
   Courier/Liberation Mono). Dikey ölçü: gerçek yazı tipinin hhea değeri ÷ size-adjust. local() adları: Arial (macOS, iOS,
   Windows, Android), Liberation Sans/Arimo (Linux, Arial ile aynı ölçüde). Hiçbiri yoksa yedek sistem yazı tipine düşer. */
@font-face {
  font-family: 'Bricolage Fallback';
  font-style: normal;
  font-weight: 500 800;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('Arimo Bold');
  size-adjust: 98%;
  ascent-override: 94.9%;
  descent-override: 27.6%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Geist Fallback';
  font-style: normal;
  font-weight: 400 500;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
  size-adjust: 104.5%;
  ascent-override: 96.2%;
  descent-override: 28.2%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Geist Fallback';
  font-style: normal;
  font-weight: 600 700;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('Arimo Bold');
  size-adjust: 101.5%;
  ascent-override: 99%;
  descent-override: 29.1%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Geist Mono Fallback';
  font-style: normal;
  font-weight: 400 600;
  src: local('Courier New'), local('CourierNewPSMT'), local('Liberation Mono'), local('Cousine');
  size-adjust: 100%;
  ascent-override: 100.5%;
  descent-override: 29.5%;
  line-gap-override: 0%;
}

/* --- Renk ve yazı token'ları (public/styles.css :root ile aynı) --------------------------------------------------- */
:root {
  --paper: #f3f1ea;
  --surface: #fbfaf7;
  --text: #0f100d;
  --text-2: #3a3b35;
  --muted: #66655d;
  --line: #d9d6cb;
  --line-soft: #e7e4da;
  --field-line: #8a877b;
  --lime: #d4ff3f;
  --lime-soft: #ecf7c4;
  --lime-text: #3f5a00;
  --night: #0f100d;
  --night-2: #1b1c18;
  --night-text: #efede6;
  --night-muted: #9d9c92;
  --danger: #b3261e;
  --accent: #d9bf87;
  --accent-soft: #f3e9d2;
  --accent-text: #6b5320;
  --on-accent: #0f100d;
  --warn: #d63d22;
  --warn-soft: #fde8e2;
  --warn-text: #a3290f;
  --good: #17804a;
  --good-on: #ffffff;
  --good-text: #17663d;
  --good-soft: #dcefe2;
  --fair-text: #8a5a00;
  --fair-soft: #f6e7c6;
  --score-night-top: #45c985;
  --score-night-good: #45c985;
  --score-night-fair: #f0bf5a;
  --good-night: #45c985;
  --score-good: var(--good);
  --score-good-on: var(--good-on);
  --score-good-text: var(--good-text);
  --score-good-soft: var(--good-soft);
  --radius: 10px;
  --focus: var(--text);
  --media-well: #faf9f6;
  --card-line: #d2cec1;
  --plan-off: rgba(63, 90, 0, 0.16);
  --surface-tone: #dedacb;
  --surface-tone-hov: #d6d2c1;
  --surface-tone-sel: #fbfaf7;
  --k-hov: #8a877b;
  --k-sel-ring: rgba(15, 16, 13, 0.4);
  --chart-context: #85827a;
  --chart-accent: var(--lime-text);
  --chart-line: var(--accent-text);
  --display: 'Bricolage Grotesque', 'Bricolage Fallback', ui-sans-serif, system-ui, sans-serif;
  --sans: 'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono: 'Geist Mono', 'Geist Mono Fallback', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) {
    --paper: #0f100d;
    --surface: #171814;
    --text: #efede6;
    --text-2: #cfcdc4;
    --muted: #9d9c92;
    --line: #2d2e29;
    --line-soft: #23241f;
    --field-line: #6b6a63;
    --lime-soft: #26300d;
    --lime-text: #d4ff3f;
    --night: #070806;
    --night-2: #151612;
    --danger: #ff8a80;
    --accent: #f1e3c2;
    --accent-soft: #2b2517;
    --accent-text: #f1dcae;
    --on-accent: #0f100d;
    --warn: #ff7a59;
    --warn-soft: #3a1810;
    --warn-text: #ff8f73;
    --good: #45c985;
    --good-on: #0f100d;
    --good-text: #86dfae;
    --good-soft: #15301f;
    --fair-text: #f0bf5a;
    --fair-soft: #33270f;
    --chart-context: #6e6d65;
    --chart-line: var(--accent);
    --media-well: #f3f1ec;
    --card-line: #393a34;
    --plan-off: rgba(212, 255, 63, 0.16);
    --surface-tone: #1a1b17;
    --surface-tone-hov: #1f201b;
    --surface-tone-sel: #252620;
    --k-hov: #6a6b63;
    --k-sel-ring: rgba(239, 237, 230, 0.14);
    color-scheme: dark;
  }
}
:root[data-theme='dark'] {
  --paper: #0f100d;
  --surface: #171814;
  --text: #efede6;
  --text-2: #cfcdc4;
  --muted: #9d9c92;
  --line: #2d2e29;
  --line-soft: #23241f;
  --field-line: #6b6a63;
  --lime-soft: #26300d;
  --lime-text: #d4ff3f;
  --night: #070806;
  --night-2: #151612;
  --danger: #ff8a80;
  --accent: #f1e3c2;
  --accent-soft: #2b2517;
  --accent-text: #f1dcae;
  --on-accent: #0f100d;
  --warn: #ff7a59;
  --warn-soft: #3a1810;
  --warn-text: #ff8f73;
  --good: #45c985;
  --good-on: #0f100d;
  --good-text: #86dfae;
  --good-soft: #15301f;
  --fair-text: #f0bf5a;
  --fair-soft: #33270f;
  --chart-context: #6e6d65;
  --chart-line: var(--accent);
  --media-well: #f3f1ec;
  --card-line: #393a34;
  --plan-off: rgba(212, 255, 63, 0.16);
  --surface-tone: #1a1b17;
  --surface-tone-hov: #1f201b;
  --surface-tone-sel: #252620;
  --k-hov: #6a6b63;
  --k-sel-ring: rgba(239, 237, 230, 0.14);
  color-scheme: dark;
}

/* --- Sıfırlama ve temel yazı ------------------------------------------------------------------------------------------- */
* { box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
html, body { margin: 0; }
body {
  font-family: var(--sans);
  font-size: 1rem;
  background: var(--paper);
  color: var(--text);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, p, ul, ol, figure, fieldset { margin: 0; }
ul, ol { padding: 0; list-style: none; }
fieldset { border: 0; padding: 0; min-width: 0; }
legend { padding: 0; }
a { color: inherit; }
img, svg { display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.gizli {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}

/* Hareket azaltma: konum ve ölçek hareketi durur; renk ve opaklık anında değişir. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
