/*
 * @vantage/ui tasarim belirteclerinin TEK kaynagi (Vantage v4). Kontrast testi (tests/tokens.test.ts) bu dosyadaki hex ciftlerini okur.
 * Tema: prefers-color-scheme; <html data-theme="light|dark"> sistem tercihini zorlar (shell.js secimi localStorage'da tutar).
 * Yazi tipleri: yerel IBM Plex woff2 (SIL OFL, fonts/OFL-IBM-Plex.txt); iki uygulama da /assets/fonts/ altindan sunar, harici yukleme yok.
 * --vt-border denetim sinirlari icin >= 3:1 (WCAG 1.4.11); --vt-line-strong yalniz dekoratif ayirici.
 */
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-display: swap; font-weight: 400; src: url("/assets/fonts/ibm-plex-sans-latin-ext-400-normal.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: "IBM Plex Sans"; font-style: normal; font-display: swap; font-weight: 400; src: url("/assets/fonts/ibm-plex-sans-latin-400-normal.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: "IBM Plex Sans"; font-style: normal; font-display: swap; font-weight: 600; src: url("/assets/fonts/ibm-plex-sans-latin-ext-600-normal.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: "IBM Plex Sans"; font-style: normal; font-display: swap; font-weight: 600; src: url("/assets/fonts/ibm-plex-sans-latin-600-normal.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: "IBM Plex Sans Condensed"; font-style: normal; font-display: swap; font-weight: 600; src: url("/assets/fonts/ibm-plex-sans-condensed-latin-ext-600-normal.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: "IBM Plex Sans Condensed"; font-style: normal; font-display: swap; font-weight: 600; src: url("/assets/fonts/ibm-plex-sans-condensed-latin-600-normal.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: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 400; src: url("/assets/fonts/ibm-plex-mono-latin-ext-400-normal.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: "IBM Plex Mono"; font-style: normal; font-display: swap; font-weight: 400; src: url("/assets/fonts/ibm-plex-mono-latin-400-normal.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; }

:root,
:root[data-theme="light"] {
  color-scheme: light;
  --vt-bg: #f6f7f9;
  --vt-surface: #ffffff;
  --vt-surface-sunken: #f0f2f6;
  --vt-text: #18202f;
  --vt-text-muted: #566074;
  --vt-border: #7d8799;
  --vt-border-subtle: #e1e5ec;
  --vt-line-strong: #c9d0dc;
  --vt-accent: #2250cc;
  --vt-accent-hover: #1a41a8;
  --vt-accent-soft: #e8eefc;
  --vt-on-accent: #ffffff;
  --vt-focus: #2250cc;
  --vt-ok: #0f7040;
  --vt-ok-soft: #e3f4eb;
  --vt-warn: #8a5200;
  --vt-warn-soft: #fdf0d8;
  --vt-danger: #b0211a;
  --vt-danger-soft: #fce8e6;
  --vt-info: #2250cc;
  --vt-info-soft: #e8eefc;
  --vt-on-danger: #ffffff;
  --vt-success-bg: #e3f4eb;
  --vt-success-text: #0f7040;
  --vt-warning-bg: #fdf0d8;
  --vt-warning-text: #8a5200;
  --vt-danger-bg: #fce8e6;
  --vt-danger-text: #b0211a;
  --vt-info-bg: #e8eefc;
  --vt-info-text: #2250cc;
  --vt-neutral-bg: #f0f2f6;
  --vt-neutral-text: #18202f;
  --vt-nav-bg: #0e1b38;
  --vt-nav-text: #c3cde3;
  --vt-nav-muted: #8f9cba;
  --vt-nav-line: #22325a;
  --vt-nav-active-bg: #1b2d58;
  --vt-nav-active: #ffffff;
  --vt-scrim: rgba(10, 16, 30, 0.5);
  --vt-shadow-pop: 0 8px 24px rgba(10, 16, 30, 0.14);
  --vt-chart-1: #2250cc;
  --vt-chart-2: #b0211a;
  --vt-chart-3: #8a5200;
  --vt-chart-4: #0f7040;
  --vt-chart-5: #5b3a8c;
  --vt-chart-6: #3f6b12;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --vt-bg: #0b101d;
  --vt-surface: #121a2b;
  --vt-surface-sunken: #18223a;
  --vt-text: #e7ebf4;
  --vt-text-muted: #9ba7c0;
  --vt-border: #6b7a99;
  --vt-border-subtle: #25304a;
  --vt-line-strong: #364462;
  --vt-accent: #86a8ff;
  --vt-accent-hover: #a6c0ff;
  --vt-accent-soft: #1a2748;
  --vt-on-accent: #0b101d;
  --vt-focus: #a6c0ff;
  --vt-ok: #5fd09a;
  --vt-ok-soft: #10301f;
  --vt-warn: #f0b95a;
  --vt-warn-soft: #38290c;
  --vt-danger: #ff8d85;
  --vt-danger-soft: #3b1714;
  --vt-info: #86a8ff;
  --vt-info-soft: #1a2748;
  --vt-on-danger: #2a0809;
  --vt-success-bg: #10301f;
  --vt-success-text: #5fd09a;
  --vt-warning-bg: #38290c;
  --vt-warning-text: #f0b95a;
  --vt-danger-bg: #3b1714;
  --vt-danger-text: #ff8d85;
  --vt-info-bg: #1a2748;
  --vt-info-text: #86a8ff;
  --vt-neutral-bg: #18223a;
  --vt-neutral-text: #e7ebf4;
  --vt-nav-bg: #080e1e;
  --vt-nav-text: #b7c3de;
  --vt-nav-muted: #8391b0;
  --vt-nav-line: #1a2644;
  --vt-nav-active-bg: #16223f;
  --vt-nav-active: #ffffff;
  --vt-scrim: rgba(0, 0, 0, 0.6);
  --vt-shadow-pop: 0 8px 24px rgba(0, 0, 0, 0.5);
  --vt-chart-1: #86a8ff;
  --vt-chart-2: #ff8d85;
  --vt-chart-3: #f0b95a;
  --vt-chart-4: #5fd09a;
  --vt-chart-5: #c4a6f2;
  --vt-chart-6: #a8d86f;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --vt-bg: #0b101d;
    --vt-surface: #121a2b;
    --vt-surface-sunken: #18223a;
    --vt-text: #e7ebf4;
    --vt-text-muted: #9ba7c0;
    --vt-border: #6b7a99;
    --vt-border-subtle: #25304a;
    --vt-line-strong: #364462;
    --vt-accent: #86a8ff;
    --vt-accent-hover: #a6c0ff;
    --vt-accent-soft: #1a2748;
    --vt-on-accent: #0b101d;
    --vt-focus: #a6c0ff;
    --vt-ok: #5fd09a;
    --vt-ok-soft: #10301f;
    --vt-warn: #f0b95a;
    --vt-warn-soft: #38290c;
    --vt-danger: #ff8d85;
    --vt-danger-soft: #3b1714;
    --vt-info: #86a8ff;
    --vt-info-soft: #1a2748;
    --vt-on-danger: #2a0809;
    --vt-success-bg: #10301f;
    --vt-success-text: #5fd09a;
    --vt-warning-bg: #38290c;
    --vt-warning-text: #f0b95a;
    --vt-danger-bg: #3b1714;
    --vt-danger-text: #ff8d85;
    --vt-info-bg: #1a2748;
    --vt-info-text: #86a8ff;
    --vt-neutral-bg: #18223a;
    --vt-neutral-text: #e7ebf4;
    --vt-nav-bg: #080e1e;
    --vt-nav-text: #b7c3de;
    --vt-nav-muted: #8391b0;
    --vt-nav-line: #1a2644;
    --vt-nav-active-bg: #16223f;
    --vt-nav-active: #ffffff;
    --vt-scrim: rgba(0, 0, 0, 0.6);
    --vt-shadow-pop: 0 8px 24px rgba(0, 0, 0, 0.5);
    --vt-chart-1: #86a8ff;
    --vt-chart-2: #ff8d85;
    --vt-chart-3: #f0b95a;
    --vt-chart-4: #5fd09a;
    --vt-chart-5: #c4a6f2;
    --vt-chart-6: #a8d86f;
  }
}

:root {
  --vt-font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --vt-font-head: "IBM Plex Sans Condensed", "IBM Plex Sans", system-ui, sans-serif;
  --vt-font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --vt-fs-xs: 0.75rem;
  --vt-fs-sm: 0.8125rem;
  --vt-fs-base: 0.875rem;
  --vt-fs-md: 1rem;
  --vt-fs-lg: 1.25rem;
  --vt-fs-xl: 1.5rem;
  --vt-lh-tight: 1.25;
  --vt-lh-base: 1.5;
  --vt-text-xs: 0.75rem;
  --vt-text-sm: 0.8125rem;
  --vt-text-md: 0.875rem;
  --vt-text-lg: 1.25rem;
  --vt-text-xl: 1.5rem;
  --vt-sp-1: 4px;
  --vt-sp-2: 8px;
  --vt-sp-3: 12px;
  --vt-sp-4: 16px;
  --vt-sp-5: 24px;
  --vt-sp-6: 32px;
  --vt-sp-7: 48px;
  --vt-space-1: 0.25rem;
  --vt-space-2: 0.5rem;
  --vt-space-3: 0.75rem;
  --vt-space-4: 1rem;
  --vt-space-6: 1.5rem;
  --vt-space-8: 2rem;
  --vt-r-sm: 4px;
  --vt-r-md: 6px;
  --vt-r-lg: 10px;
  --vt-r-pill: 999px;
  --vt-radius: 6px;
  --vt-radius-sm: 4px;
  --vt-side-w: 232px;
  --vt-top-h: 48px;
  --vt-control-height: 2rem;
  --vt-shadow: var(--vt-shadow-pop);
  --vt-motion: 140ms;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --vt-motion: 0ms;
  }
}

/*
 * @vantage/ui bilesen + kabuk stilleri (Vantage v4). Yalniz tokens.css degiskenleri (--vt-*); tema degisince elle renk yok.
 * Sira: tokens.css -> components.css -> uygulama css'i. Inline style YOK (CSP style-src 'self').
 * Eski sinif adlari (vt-btn--secondary, vt-badge--success/warning, vt-table-wrap, vt-field__*) takma ad olarak surer.
 */
/* Vantage v4 — ortak shell + bileşenler (vt-*) */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--vt-bg);color:var(--vt-text);font:400 var(--vt-fs-base)/var(--vt-lh-base) var(--vt-font)}
h1,h2,h3{font-family:var(--vt-font-head);font-weight:600;line-height:var(--vt-lh-tight);margin:0;letter-spacing:.005em}
h1{font-size:var(--vt-fs-xl)} h2{font-size:var(--vt-fs-md)} h3{font-size:var(--vt-fs-base)}
p{margin:0}
a{color:var(--vt-accent)}
button,input,select,textarea{font:inherit;color:inherit}
svg.vt-i{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.vt-sr, .vt-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.vt-skip{position:absolute;left:8px;top:-48px;background:var(--vt-surface);padding:8px 12px;z-index:100;border:1px solid var(--vt-border);border-radius:var(--vt-r-md)}
.vt-skip:focus{top:8px}
.vt-mono{font-family:var(--vt-font-mono);font-size:var(--vt-fs-sm)}
.vt-muted{color:var(--vt-text-muted)}

/* ---- Shell ---- */
.vt-app{display:grid;grid-template-columns:var(--vt-side-w) minmax(0,1fr);min-height:100vh}
.vt-side{background:var(--vt-nav-bg);color:var(--vt-nav-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.vt-brand{flex:none;display:flex;align-items:center;gap:var(--vt-sp-2);height:var(--vt-top-h);padding:0 var(--vt-sp-4);border-bottom:1px solid var(--vt-nav-line);color:#fff;font:600 1.0625rem var(--vt-font-head);text-decoration:none;letter-spacing:.02em}
.vt-brand__mark{width:20px;height:20px;border-radius:5px;background:#fff;display:grid;place-items:center;color:var(--vt-nav-bg)}
.vt-brand small{font:400 var(--vt-fs-xs) var(--vt-font);color:var(--vt-nav-muted);margin-left:auto;letter-spacing:0}
.vt-nav{padding:var(--vt-sp-3) var(--vt-sp-2);display:flex;flex-direction:column;gap:var(--vt-sp-4);flex:1 0 auto}
.vt-nav__title{font-size:var(--vt-fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--vt-nav-muted);padding:0 var(--vt-sp-2) var(--vt-sp-1)}
.vt-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.vt-nav a{display:flex;align-items:center;gap:var(--vt-sp-2);padding:7px var(--vt-sp-2);border-radius:var(--vt-r-md);color:var(--vt-nav-text);text-decoration:none;font-size:var(--vt-fs-base)}
.vt-nav a:hover{background:var(--vt-nav-active-bg);color:#fff}
.vt-nav a[aria-current=page]{background:var(--vt-nav-active-bg);color:var(--vt-nav-active);font-weight:600;box-shadow:inset 3px 0 0 #8fb0ff}
.vt-side :focus-visible{outline-color:#b9ceff}
.vt-nav__count{margin-left:auto;font-size:var(--vt-fs-xs);background:#2a3d6b;color:#fff;border-radius:var(--vt-r-pill);padding:0 7px}
.vt-side__foot{flex:none;padding:var(--vt-sp-3) var(--vt-sp-4);border-top:1px solid var(--vt-nav-line);font-size:var(--vt-fs-xs);color:var(--vt-nav-muted)}
.vt-scrim{display:none}
.vt-body{display:flex;flex-direction:column;min-width:0}
.vt-top{height:var(--vt-top-h);display:flex;align-items:center;gap:var(--vt-sp-3);padding:0 var(--vt-sp-5);background:var(--vt-surface);border-bottom:1px solid var(--vt-border-subtle);position:sticky;top:0;z-index:20}
.vt-btn.vt-top__menu{display:none}
.vt-crumb{flex:1 1 0;display:flex;gap:var(--vt-sp-2);align-items:center;color:var(--vt-text-muted);font-size:var(--vt-fs-sm);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vt-crumb b{color:var(--vt-text);font-weight:600}
.vt-crumb a{color:var(--vt-text-muted);text-decoration:none}
.vt-crumb a:hover{color:var(--vt-text);text-decoration:underline}
.vt-top__tools{margin-left:auto;flex:none;display:flex;gap:var(--vt-sp-2);align-items:center}
.vt-user{display:flex;align-items:center;gap:var(--vt-sp-2);font-size:var(--vt-fs-sm);padding-left:var(--vt-sp-3);border-left:1px solid var(--vt-border-subtle)}
.vt-avatar{width:26px;height:26px;border-radius:50%;background:var(--vt-accent-soft);color:var(--vt-accent);display:grid;place-items:center;font:600 var(--vt-fs-xs) var(--vt-font)}
.vt-main{padding:var(--vt-sp-5);max-width:1320px;width:100%}
.vt-head{display:flex;align-items:flex-start;gap:var(--vt-sp-4);flex-wrap:wrap;margin-bottom:var(--vt-sp-4)}
.vt-head p{color:var(--vt-text-muted);margin-top:2px}
.vt-head__act{margin-left:auto;display:flex;gap:var(--vt-sp-2);flex-wrap:wrap}

/* ---- Düğme / form ---- */
.vt-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 var(--vt-sp-3);border:1px solid var(--vt-border);background:var(--vt-surface);color:var(--vt-text);border-radius:var(--vt-r-md);cursor:pointer;font-size:var(--vt-fs-base);text-decoration:none;white-space:nowrap}
.vt-btn:hover{background:var(--vt-surface-sunken)}
.vt-btn--primary{background:var(--vt-accent);border-color:var(--vt-accent);color:var(--vt-on-accent);font-weight:600}
.vt-btn--primary:hover{background:var(--vt-accent-hover);border-color:var(--vt-accent-hover)}
.vt-btn--danger{color:var(--vt-danger);border-color:var(--vt-danger)}
.vt-btn--ghost{border-color:transparent;background:transparent;color:var(--vt-text-muted)}
.vt-btn--ghost:hover{background:var(--vt-surface-sunken);color:var(--vt-text)}
.vt-btn--icon{width:32px;padding:0;justify-content:center}
.vt-btn--sm{height:28px;padding:0 var(--vt-sp-2);font-size:var(--vt-fs-sm)}
.vt-btn[aria-pressed=true]{background:var(--vt-accent-soft);border-color:var(--vt-accent);color:var(--vt-accent)}
.vt-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.vt-field>label,.vt-label{font-size:var(--vt-fs-sm);font-weight:600}
.vt-hint{font-size:var(--vt-fs-xs);color:var(--vt-text-muted)}
.vt-input,.vt-select,.vt-textarea{height:34px;padding:0 var(--vt-sp-3);border:1px solid var(--vt-border);border-radius:var(--vt-r-md);background:var(--vt-surface);width:100%;min-width:0}
.vt-textarea{height:auto;padding:var(--vt-sp-2) var(--vt-sp-3);resize:vertical;min-height:72px}
.vt-input::placeholder,.vt-textarea::placeholder{color:var(--vt-text-muted)}
.vt-input-wrap{position:relative;display:flex}
.vt-input-wrap .vt-input{padding-right:84px}
.vt-input-wrap button{position:absolute;right:4px;top:4px;height:26px}
.vt-grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--vt-sp-3)}
.vt-seg{display:inline-flex;border:1px solid var(--vt-border);border-radius:var(--vt-r-md);overflow:hidden}
.vt-seg button{border:0;background:var(--vt-surface);padding:0 var(--vt-sp-3);height:30px;cursor:pointer;border-right:1px solid var(--vt-border-subtle)}
.vt-seg button:last-child{border-right:0}
.vt-seg button[aria-pressed=true]{background:var(--vt-accent-soft);color:var(--vt-accent);font-weight:600}
.vt-chips{display:flex;gap:6px;flex-wrap:wrap}
.vt-chip{border:1px solid var(--vt-border);background:var(--vt-surface);border-radius:var(--vt-r-pill);padding:3px 11px;font-size:var(--vt-fs-sm);cursor:pointer}
.vt-chip:hover{background:var(--vt-surface-sunken)}
.vt-chip[aria-pressed=true]{background:var(--vt-accent-soft);border-color:var(--vt-accent);color:var(--vt-accent);font-weight:600}

/* ---- Rozet: renk + ikon/metin birlikte ---- */
.vt-badge{display:inline-flex;align-items:center;gap:5px;font-size:var(--vt-fs-xs);font-weight:600;padding:1px 8px;border-radius:var(--vt-r-pill);background:var(--vt-surface-sunken);color:var(--vt-text-muted);white-space:nowrap}
.vt-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.vt-badge--ok{background:var(--vt-ok-soft);color:var(--vt-ok)}
.vt-badge--warn{background:var(--vt-warn-soft);color:var(--vt-warn)}
.vt-badge--warn::before{border-radius:1px;transform:rotate(45deg)}
.vt-badge--danger{background:var(--vt-danger-soft);color:var(--vt-danger)}
.vt-badge--danger::before{border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%)}
.vt-badge--info{background:var(--vt-info-soft);color:var(--vt-info)}
.vt-badge--demo{background:transparent;border:1px dashed var(--vt-warn);color:var(--vt-warn)}
.vt-badge--demo::before{display:none}

/* ---- Kart / tablo / sekme ---- */
.vt-card{background:var(--vt-surface);border:1px solid var(--vt-border-subtle);border-radius:var(--vt-r-lg)}
.vt-card__head{display:flex;align-items:center;gap:var(--vt-sp-2);padding:var(--vt-sp-3) var(--vt-sp-4);border-bottom:1px solid var(--vt-border-subtle)}
.vt-card__head .vt-btn,.vt-card__head a{margin-left:auto}
.vt-card__body{padding:var(--vt-sp-4)}
.vt-notice{display:flex;gap:var(--vt-sp-2);align-items:flex-start;padding:var(--vt-sp-2) var(--vt-sp-3);border:1px solid var(--vt-border-subtle);border-left:3px solid var(--vt-warn);background:var(--vt-warn-soft);color:var(--vt-text);border-radius:var(--vt-r-md);font-size:var(--vt-fs-sm);margin-bottom:var(--vt-sp-4)}
.vt-tablewrap{overflow-x:auto}
.vt-table{width:100%;border-collapse:collapse}
.vt-table th{text-align:left;font-size:var(--vt-fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--vt-text-muted);font-weight:600;padding:8px var(--vt-sp-4);border-bottom:1px solid var(--vt-border-subtle);white-space:nowrap}
.vt-table td{padding:9px var(--vt-sp-4);border-bottom:1px solid var(--vt-border-subtle);vertical-align:middle}
.vt-table tr:last-child td{border-bottom:0}
.vt-table tbody tr:hover{background:var(--vt-surface-sunken)}
.vt-table a.vt-rowlink{color:var(--vt-text);font-weight:600;text-decoration:none}
.vt-table a.vt-rowlink:hover{color:var(--vt-accent);text-decoration:underline}
.vt-table a.vt-rowlink::after{content:"";position:absolute;inset:0}
.vt-table tr{position:relative}
.vt-table td .vt-btn{position:relative;z-index:1}
.vt-toolbar{display:flex;gap:var(--vt-sp-2);flex-wrap:wrap;align-items:center;padding:var(--vt-sp-3) var(--vt-sp-4);border-bottom:1px solid var(--vt-border-subtle)}
.vt-toolbar .vt-input{max-width:260px}
.vt-toolbar .vt-select{width:auto;min-width:180px;max-width:320px}
.vt-tabs{display:flex;gap:var(--vt-sp-1);border-bottom:1px solid var(--vt-border-subtle);margin-bottom:var(--vt-sp-4);overflow-x:auto}
.vt-tabs [role=tab]{background:none;border:0;border-bottom:2px solid transparent;padding:9px var(--vt-sp-3);cursor:pointer;color:var(--vt-text-muted);white-space:nowrap;margin-bottom:-1px}
.vt-tabs [role=tab]:hover{color:var(--vt-text)}
.vt-tabs [role=tab][aria-selected=true]{color:var(--vt-text);font-weight:600;border-bottom-color:var(--vt-accent)}
.vt-tabs a{display:inline-flex;align-items:center;gap:var(--vt-sp-1);padding:9px var(--vt-sp-3);color:var(--vt-text-muted);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}
.vt-tabs a:hover{color:var(--vt-text)}
.vt-tabs a[aria-current=page]{color:var(--vt-text);font-weight:600;border-bottom-color:var(--vt-accent)}
.vt-kv{display:grid;grid-template-columns:140px 1fr;gap:var(--vt-sp-2) var(--vt-sp-4);margin:0}
.vt-kv dt{color:var(--vt-text-muted);font-size:var(--vt-fs-sm)} .vt-kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.vt-list{list-style:none;margin:0;padding:0}
.vt-list>li{padding:var(--vt-sp-3) var(--vt-sp-4);border-bottom:1px solid var(--vt-border-subtle);display:flex;gap:var(--vt-sp-3);align-items:flex-start}
.vt-list>li:last-child{border-bottom:0}
.vt-empty, .empty{padding:var(--vt-sp-6) var(--vt-sp-4);text-align:center;color:var(--vt-text-muted)}
.vt-empty b{display:block;color:var(--vt-text);margin-bottom:4px}
details.vt-adv{border:1px solid var(--vt-border-subtle);border-radius:var(--vt-r-lg);background:var(--vt-surface)}
details.vt-adv>summary{cursor:pointer;padding:var(--vt-sp-3) var(--vt-sp-4);font-weight:600;list-style:none;display:flex;align-items:center;gap:var(--vt-sp-2)}
details.vt-adv>summary::before{content:"▸";color:var(--vt-text-muted)} details.vt-adv[open]>summary::before{content:"▾"}
details.vt-adv>div{padding:0 var(--vt-sp-4) var(--vt-sp-4)}
.vt-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--vt-sp-4);align-items:start}
.vt-stack{display:flex;flex-direction:column;gap:var(--vt-sp-4)}

/* ---- İMZA 1: Yaşam şeridi (Merkez) ----
   tamamlanan = dolu, etkin = dolu + kalın + çerçeve, bekleyen = içi boş çizgili; faz adı her zaman metinle yazılır */
.vt-life{display:flex;gap:3px;list-style:none;margin:0;padding:0;align-items:center}
.vt-life__seg{flex:1;height:6px;border-radius:2px;border:1px solid var(--vt-border);background:transparent}
.vt-life__seg.is-done{background:var(--vt-ok);border-color:var(--vt-ok)}
.vt-life__seg.is-active{background:var(--vt-accent);border-color:var(--vt-accent);height:10px;box-shadow:0 0 0 2px var(--vt-accent-soft)}
.vt-life--cell{width:140px}
.vt-lifecell{display:flex;flex-direction:column;gap:5px}
.vt-lifecell span{font-size:var(--vt-fs-xs);color:var(--vt-text-muted)} .vt-lifecell b{color:var(--vt-text);font-weight:600}
.vt-life--lg{gap:6px;align-items:flex-start}
.vt-life--lg li{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.vt-life--lg .vt-life__seg{flex:none;width:100%;height:8px}
.vt-life--lg .vt-life__seg.is-active{height:12px}
.vt-life--lg .vt-life__name{font-size:var(--vt-fs-sm);font-weight:600}
.vt-life--lg .vt-life__state{font-size:var(--vt-fs-xs);color:var(--vt-text-muted)}
li[aria-current=step] .vt-life__name{color:var(--vt-accent)}

/* ---- Bölünmüş liste/detay (onaylar) ---- */
.vt-split{display:grid;grid-template-columns:380px minmax(0,1fr);align-items:start;gap:var(--vt-sp-4)}
.vt-rows{list-style:none;margin:0;padding:0}
.vt-rows a{display:block;padding:var(--vt-sp-3) var(--vt-sp-4);border-bottom:1px solid var(--vt-border-subtle);color:var(--vt-text);text-decoration:none;border-left:3px solid transparent}
.vt-rows a:hover{background:var(--vt-surface-sunken)}
.vt-rows a[aria-current=true]{background:var(--vt-accent-soft);border-left-color:var(--vt-accent)}
.vt-rows__top{display:flex;justify-content:space-between;gap:var(--vt-sp-2);align-items:center;margin-bottom:2px}
.vt-rows__sub{color:var(--vt-text-muted);font-size:var(--vt-fs-sm)}
.vt-diff{display:grid;grid-template-columns:1fr 1fr;gap:var(--vt-sp-3)}
.vt-diff>div{border:1px solid var(--vt-border-subtle);border-radius:var(--vt-r-md);padding:var(--vt-sp-3)}
.vt-diff .is-new{border-color:var(--vt-ok);background:var(--vt-ok-soft)}
.vt-diff h3{font-size:var(--vt-fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--vt-text-muted);margin-bottom:4px}

/* ---- İMZA 2: Sohbet + Kaynak şeridi (Panel) ---- */
.vt-chat{display:grid;grid-template-columns:minmax(0,1fr);height:calc(100vh - var(--vt-top-h));min-height:520px}
.vt-chat.has-source{grid-template-columns:minmax(0,1fr) 360px}
.vt-chat__col{display:flex;flex-direction:column;min-width:0;min-height:0}
.vt-thread{flex:1;overflow-y:auto;padding:var(--vt-sp-5) var(--vt-sp-5) var(--vt-sp-3)}
.vt-thread__in{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:var(--vt-sp-5)}
.vt-msg--user{align-self:flex-end;background:var(--vt-accent-soft);border:1px solid var(--vt-border-subtle);border-radius:var(--vt-r-lg) var(--vt-r-lg) 2px var(--vt-r-lg);padding:var(--vt-sp-2) var(--vt-sp-3);max-width:80%}
.vt-msg--ai{display:flex;gap:var(--vt-sp-3)}
.vt-msg--ai .vt-avatar{background:var(--vt-nav-bg);color:#fff;flex:none;border:1px solid var(--vt-border)}
.vt-msg__body{min-width:0;display:flex;flex-direction:column;gap:var(--vt-sp-3)}
.vt-msg__body p+p{margin-top:0}
.vt-msg__bar{display:flex;gap:var(--vt-sp-1);align-items:center;flex-wrap:wrap}
.vt-composer{border-top:1px solid var(--vt-border-subtle);background:var(--vt-surface);padding:var(--vt-sp-3) var(--vt-sp-5)}
.vt-composer__in{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:var(--vt-sp-2)}
.vt-composer__row{display:flex;gap:var(--vt-sp-2);align-items:flex-end}
.vt-composer textarea{min-height:40px;height:40px;flex:1}
.vt-source{border-left:1px solid var(--vt-border-subtle);background:var(--vt-surface);overflow-y:auto;display:flex;flex-direction:column}
.vt-source[hidden]{display:none}
.vt-source__head{display:flex;align-items:center;gap:var(--vt-sp-2);padding:var(--vt-sp-3) var(--vt-sp-4);border-bottom:1px solid var(--vt-border-subtle);position:sticky;top:0;background:var(--vt-surface)}
.vt-source__head .vt-btn{margin-left:auto}
.vt-source section{padding:var(--vt-sp-3) var(--vt-sp-4);border-bottom:1px solid var(--vt-border-subtle)}
.vt-source h3{font-size:var(--vt-fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--vt-text-muted);margin-bottom:var(--vt-sp-2)}
.vt-code{font:400 var(--vt-fs-sm)/1.55 var(--vt-font-mono);background:var(--vt-surface-sunken);border:1px solid var(--vt-border-subtle);border-radius:var(--vt-r-md);padding:var(--vt-sp-3);overflow-x:auto;margin:0;white-space:pre}

/* ---- Pazarlama önizleme ---- */
.vt-prev{border:1px solid var(--vt-border);border-radius:var(--vt-r-md);background:#fff;color:#1c2330;max-width:420px;overflow:hidden;font-size:var(--vt-fs-sm)}
.vt-prev__head{display:flex;gap:8px;align-items:center;padding:10px 12px}
.vt-prev__logo{width:32px;height:32px;border-radius:50%;background:#dde6fb;color:#1b3f9e;display:grid;place-items:center;font-weight:600;font-size:var(--vt-fs-xs)}
.vt-prev__img{aspect-ratio:1.91/1;background:repeating-linear-gradient(45deg,#e7ecf5 0 10px,#f1f4fa 10px 20px);display:grid;place-items:center;color:#4a5670;font-size:var(--vt-fs-xs);border-block:1px solid #dfe4ee}
.vt-prev__cta{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;background:#f2f4f8}
.vt-prev__cta span{background:#dfe4ee;border-radius:4px;padding:5px 10px;font-weight:600}
.vt-prev--g{padding:12px;max-width:560px}
.vt-prev--g .t{color:#1a0dab;font-size:1.0625rem;margin:2px 0;font-weight:400}
.vt-prev--g .u{font-size:var(--vt-fs-xs);color:#1c2330}
.vt-prev--g .sp{font-weight:600;font-size:var(--vt-fs-xs)}

/* ---- Modal ---- */
dialog.vt-modal{border:1px solid var(--vt-border);border-radius:var(--vt-r-lg);padding:0;background:var(--vt-surface);color:var(--vt-text);width:min(520px,calc(100vw - 24px));box-shadow:var(--vt-shadow-pop)}
dialog.vt-modal::backdrop{background:var(--vt-scrim)}
.vt-modal__head{padding:var(--vt-sp-4);border-bottom:1px solid var(--vt-border-subtle);display:flex;align-items:center;gap:var(--vt-sp-2)}
.vt-modal__head .vt-btn{margin-left:auto}
.vt-modal__body{padding:var(--vt-sp-4);display:flex;flex-direction:column;gap:var(--vt-sp-3)}
.vt-modal__foot{padding:var(--vt-sp-3) var(--vt-sp-4);border-top:1px solid var(--vt-border-subtle);display:flex;gap:var(--vt-sp-2);justify-content:flex-end}
.vt-steps{display:flex;gap:6px;list-style:none;padding:0;margin:0;font-size:var(--vt-fs-xs);color:var(--vt-text-muted)}
.vt-steps li{flex:1;border-top:3px solid var(--vt-border);padding-top:4px}
.vt-steps li.is-done{border-color:var(--vt-ok)} .vt-steps li[aria-current=step]{border-color:var(--vt-accent);color:var(--vt-text);font-weight:600}

/* ---- Giriş ---- */
.vt-login{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh}
.vt-login__brand{background:var(--vt-nav-bg);color:#fff;padding:var(--vt-sp-7);display:flex;flex-direction:column;justify-content:space-between;gap:var(--vt-sp-6)}
.vt-login__brand h1{font-size:2rem;max-width:18ch;line-height:1.15}
.vt-login__brand p{color:var(--vt-nav-text);max-width:42ch;margin-top:var(--vt-sp-3)}
.vt-login__brand ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--vt-sp-2);color:var(--vt-nav-text);font-size:var(--vt-fs-sm)}
.vt-login__form{display:grid;place-items:center;padding:var(--vt-sp-6)}
.vt-login__form form{width:min(360px,100%);display:flex;flex-direction:column;gap:var(--vt-sp-4)}
.vt-alert{border:1px solid var(--vt-danger);background:var(--vt-danger-soft);color:var(--vt-text);border-radius:var(--vt-r-md);padding:var(--vt-sp-2) var(--vt-sp-3);font-size:var(--vt-fs-sm)}
.vt-alert[hidden]{display:none}

/* ---- Duyarlı ---- */
@media (max-width:1100px){
  .vt-layout{grid-template-columns:minmax(0,1fr)}
  .vt-split{grid-template-columns:minmax(0,1fr)}
  .vt-chat.has-source{grid-template-columns:minmax(0,1fr)}
  .vt-source{position:fixed;inset:var(--vt-top-h) 0 0 auto;width:min(380px,100%);z-index:30;box-shadow:var(--vt-shadow-pop)}
}
@media (max-width:900px){
  .vt-app{grid-template-columns:minmax(0,1fr)}
  .vt-side{position:fixed;inset:0 auto 0 0;width:260px;z-index:50;transform:translateX(-100%);transition:transform .18s}
  .is-nav-open .vt-side{transform:none}
  .is-nav-open .vt-scrim{display:block;position:fixed;inset:0;background:var(--vt-scrim);z-index:40}
  .vt-top{padding:0 var(--vt-sp-3)}
  .vt-btn.vt-top__menu{display:inline-flex}
  .vt-user span.t{display:none}
  .vt-main{padding:var(--vt-sp-4) var(--vt-sp-3)}
  .vt-login{grid-template-columns:minmax(0,1fr)}
  .vt-login__brand{padding:var(--vt-sp-5)} .vt-login__brand ul{display:none} .vt-login__brand h1{font-size:1.375rem}
  .vt-thread,.vt-composer{padding-inline:var(--vt-sp-3)}
  .vt-grid2,.vt-diff{grid-template-columns:minmax(0,1fr)}
  .vt-kv{grid-template-columns:110px 1fr}
  .vt-hide-sm{display:none}
}
.vt-life--lg .vt-life__seg{margin-block:2px}.vt-life--lg .vt-life__seg.is-active{margin-block:0}
@media (max-width:900px){.vt-login__brand{gap:var(--vt-sp-4)}.vt-login{min-height:0}.vt-login__form{padding:var(--vt-sp-5) var(--vt-sp-4);align-items:start}}
.vt-notice{display:block}
@media (max-width:900px){.vt-table th,.vt-table td{padding:8px 10px}.vt-life--cell{width:92px}.vt-table .vt-badge{white-space:normal}}
/* ---- Satır içi düzenleme ---- */
.vt-ed{display:grid;grid-template-columns:160px minmax(0,1fr) auto;gap:var(--vt-sp-3);align-items:center;padding:var(--vt-sp-2) var(--vt-sp-4);border-bottom:1px solid var(--vt-border-subtle);min-height:48px}
.vt-ed:last-child{border-bottom:0}
.vt-ed__k{color:var(--vt-text-muted);font-size:var(--vt-fs-sm)}
.vt-ed__form{display:none;gap:var(--vt-sp-2);align-items:center}
.vt-ed.is-editing .vt-ed__form{display:flex}.vt-ed.is-editing .vt-ed__view,.vt-ed.is-editing>.vt-ed__act{display:none}
.vt-ed__form .vt-input,.vt-ed__form .vt-select{max-width:320px}
.vt-toast{background:var(--vt-surface);border:1px solid var(--vt-ok);border-left-width:4px;border-radius:var(--vt-r-md);padding:var(--vt-sp-2) var(--vt-sp-4);box-shadow:var(--vt-shadow-pop);z-index:60}
.vt-toast[hidden]{display:none}
.vt-cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--vt-sp-4);align-items:start}
.vt-pick{list-style:none;margin:0;padding:0}.vt-pick a{display:flex;justify-content:space-between;gap:var(--vt-sp-2);padding:var(--vt-sp-2) var(--vt-sp-4);border-bottom:1px solid var(--vt-border-subtle);color:var(--vt-text);text-decoration:none;border-left:3px solid transparent}
.vt-pick a:hover{background:var(--vt-surface-sunken)}.vt-pick a[aria-current=true]{background:var(--vt-accent-soft);border-left-color:var(--vt-accent);font-weight:600}
.vt-balance{display:flex;gap:var(--vt-sp-5);align-items:center;flex-wrap:wrap}.vt-balance b{font:600 var(--vt-fs-xl) var(--vt-font-head)}
.vt-num{text-align:right;font-variant-numeric:tabular-nums}
.vt-table .vt-input{height:30px;max-width:130px}
.vt-bar{position:sticky;bottom:0;display:flex;gap:var(--vt-sp-3);align-items:center;padding:var(--vt-sp-3) var(--vt-sp-4);background:var(--vt-surface);border:1px solid var(--vt-border);border-radius:var(--vt-r-lg);margin-top:var(--vt-sp-4)}
tr.is-changed td{background:var(--vt-warn-soft)}
@media (max-width:900px){.vt-cols3{grid-template-columns:minmax(0,1fr)}.vt-ed{grid-template-columns:minmax(0,1fr) auto}.vt-ed__k{grid-column:1/-1;margin-bottom:-6px}.vt-ed__form{flex-wrap:wrap}}
.vt-table th.vt-num{text-align:right}
.vt-btn:disabled{opacity:.55;cursor:not-allowed}
@media (max-width:600px){.vt-life--lg .vt-life__state{display:none}.vt-life--lg li[aria-current=step] .vt-life__state{display:block;position:absolute;opacity:0}.vt-life--lg .vt-life__name{font-size:var(--vt-fs-xs);overflow-wrap:anywhere}}
td.is-changed{background:var(--vt-warn-soft)}td .vt-badge[hidden]{display:none}.vt-cellwrap{display:flex;gap:var(--vt-sp-2);align-items:center;flex-wrap:wrap}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 2px solid var(--vt-focus); outline-offset: 2px; border-radius: var(--vt-r-sm); }
.vt-side :focus-visible { outline-color: #b9ceff; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
.vt-root { background: var(--vt-bg); color: var(--vt-text); font-family: var(--vt-font); }
.vt-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* ---- Eski adlar (takma ad) ---- */
.vt-btn--secondary { background: var(--vt-surface); color: var(--vt-text); }
.vt-btn--danger { background: var(--vt-surface); }
.vt-btn--danger:hover:not(:disabled) { background: var(--vt-danger-soft); }
.vt-btn__spinner { width: 1em; height: 1em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: vt-spin 800ms linear infinite; }
@keyframes vt-spin { to { transform: rotate(360deg); } }
.vt-badge--success { background: var(--vt-ok-soft); color: var(--vt-ok); }
.vt-badge--warning { background: var(--vt-warn-soft); color: var(--vt-warn); }
.vt-badge--warning::before { border-radius: 1px; transform: rotate(45deg); }
.vt-badge--neutral { background: var(--vt-surface-sunken); color: var(--vt-text-muted); }
.vt-badge--danger::before { border-radius: 0; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.vt-table-wrap { overflow-x: auto; }
.vt-table-wrap:focus-visible { outline: 2px solid var(--vt-focus); outline-offset: 2px; }
.vt-table caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.vt-table tbody th { text-align: left; text-transform: none; letter-spacing: 0; font-size: inherit; color: var(--vt-text); font-weight: 600; padding: 9px var(--vt-sp-4); border-bottom: 1px solid var(--vt-border-subtle); vertical-align: middle; white-space: normal; }
.vt-table tbody tr:last-child th { border-bottom: 0; }
.vt-table tbody th a, .vt-table td a { font-weight: 600; text-decoration: none; }
.vt-table tbody th a:hover, .vt-table td a:hover { text-decoration: underline; }
.vt-table tr[data-href] { cursor: pointer; }
.vt-table__empty { padding: var(--vt-sp-6) var(--vt-sp-4); text-align: center; color: var(--vt-text-muted); }
.vt-table__sort { all: unset; cursor: pointer; display: inline-flex; gap: var(--vt-sp-1); align-items: center; font-weight: 600; }
.vt-field__label { font-size: var(--vt-fs-sm); font-weight: 600; }
.vt-field__hint { color: var(--vt-text-muted); font-size: var(--vt-fs-xs); }
.vt-field__error { color: var(--vt-danger); font-size: var(--vt-fs-xs); font-weight: 600; }
.vt-field__error:empty { display: none; }
.vt-field__label, .vt-field > label { font-family: var(--vt-font); }
.vt-input[aria-invalid="true"], .vt-select[aria-invalid="true"], .vt-textarea[aria-invalid="true"] { border-color: var(--vt-danger); border-width: 2px; }
.vt-input:disabled, .vt-select:disabled, .vt-textarea:disabled { opacity: 0.6; cursor: not-allowed; }
.vt-input[type="search"] { appearance: none; }
.vt-select { padding-right: var(--vt-sp-2); }
.vt-btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; }
.vt-main > h1:first-child, .vt-head h1 { margin: 0; }

/* ---- Yeni ortak bilesenler ---- */
.vt-error, .state-error { display: flex; flex-direction: column; gap: var(--vt-sp-1); padding: var(--vt-sp-3) var(--vt-sp-4); border: 1px solid var(--vt-border-subtle); border-left: 3px solid var(--vt-danger); background: var(--vt-danger-soft); color: var(--vt-text); border-radius: var(--vt-r-md); font-size: var(--vt-fs-sm); }
.vt-error p, .state-error p { margin: 0; }
.vt-error a, .state-error a { font-weight: 600; }
.vt-success, .form-ok { padding: var(--vt-sp-2) var(--vt-sp-3); border: 1px solid var(--vt-border-subtle); border-left: 3px solid var(--vt-ok); background: var(--vt-ok-soft); border-radius: var(--vt-r-md); font-size: var(--vt-fs-sm); }
.vt-success:empty, .form-ok:empty { display: none; }
.vt-warn, .form-warn { padding: var(--vt-sp-2) var(--vt-sp-3); border: 1px solid var(--vt-border-subtle); border-left: 3px solid var(--vt-warn); background: var(--vt-warn-soft); border-radius: var(--vt-r-md); font-size: var(--vt-fs-sm); overflow-wrap: anywhere; }
.vt-warn:empty, .form-warn:empty { display: none; }
.vt-empty p, .empty p { margin: 0 0 var(--vt-sp-3); }
.vt-empty .vt-btn { margin-top: var(--vt-sp-2); }
.vt-toast--fixed { position: fixed; right: var(--vt-sp-4); bottom: var(--vt-sp-4); z-index: 60; max-width: min(24rem, calc(100vw - 2rem)); }
.vt-toast--fixed[hidden] { display: none; }
.vt-stat { display: flex; flex-direction: column; gap: 2px; }
.vt-stat b { font: 600 var(--vt-fs-lg) var(--vt-font-head); font-variant-numeric: tabular-nums; }
.vt-stat span { color: var(--vt-text-muted); font-size: var(--vt-fs-xs); }
.vt-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vt-sp-3); }
.vt-user form { margin: 0; }
.vt-top__tools .vt-btn { height: 32px; }
.vt-brand svg.vt-i { width: 14px; height: 14px; }
.vt-nav__badge { margin-left: auto; font-size: var(--vt-fs-xs); background: #2a3d6b; color: #fff; border-radius: var(--vt-r-pill); padding: 0 7px; }
@media (max-width: 900px) { .vt-grid3 { grid-template-columns: minmax(0, 1fr); } }
@media (forced-colors: active) { .vt-btn, .vt-chip, .vt-input, .vt-select, .vt-badge, .vt-toast { border: 1px solid CanvasText; } .vt-nav a[aria-current="page"] { outline: 2px solid Highlight; } }

/* ---- Dialog, toast kutusu, bildirim, widget, grafik, markdown (React bilesenleri) ---- */
.vt-skeleton { display: block; height: 1em; border-radius: var(--vt-radius-sm); background: var(--vt-neutral-bg); }

.vt-dialog { border: 1px solid var(--vt-border-subtle); border-radius: var(--vt-radius); background: var(--vt-surface); color: var(--vt-text); padding: 0; max-width: min(36rem, calc(100vw - 2rem)); width: 100%; box-shadow: var(--vt-shadow); }
.vt-dialog::backdrop { background: rgb(0 0 0 / 0.55); }
.vt-dialog__inner { padding: var(--vt-space-6); display: grid; gap: var(--vt-space-4); }
.vt-dialog__title { margin: 0; font-size: var(--vt-text-lg); }
.vt-dialog__actions { display: flex; justify-content: flex-end; gap: var(--vt-space-2); flex-wrap: wrap; }

.vt-toasts { position: fixed; inset-block-end: var(--vt-space-4); inset-inline-end: var(--vt-space-4); display: grid; gap: var(--vt-space-2); max-width: min(24rem, calc(100vw - 2rem)); z-index: 1000; }
.vt-toast { display: flex; gap: var(--vt-space-3); align-items: flex-start; padding: var(--vt-space-3) var(--vt-space-4); background: var(--vt-surface); color: var(--vt-text); border: 1px solid var(--vt-border); border-inline-start-width: 6px; border-radius: var(--vt-radius); box-shadow: var(--vt-shadow); }
.vt-toast--success { border-inline-start-color: var(--vt-success-text); }
.vt-toast--danger { border-inline-start-color: var(--vt-danger); }
.vt-toast--warning { border-inline-start-color: var(--vt-warning-text); }
.vt-toast--info { border-inline-start-color: var(--vt-info-text); }
.vt-toast__body { flex: 1; overflow-wrap: anywhere; }

.vt-bell { position: relative; display: inline-block; }
.vt-bell__button { position: relative; min-height: var(--vt-control-height); min-width: var(--vt-control-height); background: var(--vt-surface); color: var(--vt-text); border: 1px solid var(--vt-border); border-radius: var(--vt-radius); cursor: pointer; font: inherit; }
.vt-bell__count { position: absolute; inset-block-start: -0.4rem; inset-inline-end: -0.4rem; min-width: 1.25rem; padding: 0 0.3rem; border-radius: 999px; background: var(--vt-danger); color: var(--vt-on-danger); font-size: var(--vt-text-xs); font-weight: 700; line-height: 1.25rem; text-align: center; }
.vt-bell__panel { position: absolute; inset-inline-end: 0; margin-top: var(--vt-space-2); min-width: 18rem; max-width: 24rem; background: var(--vt-surface); border: 1px solid var(--vt-border-subtle); border-radius: var(--vt-radius); box-shadow: var(--vt-shadow); padding: var(--vt-space-2); z-index: 900; }
.vt-bell__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--vt-space-1); }
.vt-bell__item { padding: var(--vt-space-2) var(--vt-space-3); border-radius: var(--vt-radius-sm); }
.vt-bell__item[data-unread="true"] { background: var(--vt-info-bg); color: var(--vt-info-text); font-weight: 600; }

.vt-widget { display: grid; gap: var(--vt-space-3); margin-block: var(--vt-space-4); }
.vt-widget__title { margin: 0; font-size: var(--vt-text-md); font-weight: 700; }
.vt-widget__note { color: var(--vt-text-muted); font-size: var(--vt-text-xs); margin: 0; }
.vt-widget--fallback { padding: var(--vt-space-3) var(--vt-space-4); border: 1px dashed var(--vt-border); border-radius: var(--vt-radius); color: var(--vt-text-muted); }
.vt-kpis { display: grid; gap: var(--vt-space-3); grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); margin: 0; padding: 0; list-style: none; }
.vt-kpi { padding: var(--vt-space-4); background: var(--vt-surface); border: 1px solid var(--vt-border-subtle); border-radius: var(--vt-radius); display: grid; gap: var(--vt-space-1); }
.vt-kpi__label { font-size: var(--vt-text-sm); color: var(--vt-text-muted); margin: 0; }
.vt-kpi__value { font-size: var(--vt-text-xl); font-weight: 750; margin: 0; overflow-wrap: anywhere; }
.vt-kpi__sub { font-size: var(--vt-text-xs); color: var(--vt-text-muted); margin: 0; }
.vt-funnel { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--vt-space-2); }
.vt-funnel__step { display: grid; gap: var(--vt-space-1); }
.vt-funnel__bar { height: 0.625rem; border-radius: 999px; background: var(--vt-neutral-bg); overflow: hidden; }
.vt-funnel__fill { display: block; height: 100%; background: var(--vt-chart-1); }
.vt-funnel__fill--bottleneck { background: var(--vt-chart-2); }
.vt-chart { width: 100%; height: auto; background: var(--vt-surface); border: 1px solid var(--vt-border-subtle); border-radius: var(--vt-radius); }
.vt-chart text { fill: var(--vt-text-muted); font-size: 11px; }
.vt-legend { display: flex; flex-wrap: wrap; gap: var(--vt-space-3); list-style: none; margin: 0; padding: 0; font-size: var(--vt-text-xs); }
.vt-legend__swatch { display: inline-block; width: 0.75rem; height: 0.75rem; border-radius: 2px; margin-inline-end: var(--vt-space-1); }
.vt-details summary { cursor: pointer; font-weight: 600; color: var(--vt-accent); min-height: 1.5rem; }
.vt-dl { display: grid; grid-template-columns: max-content 1fr; gap: var(--vt-space-1) var(--vt-space-3); font-size: var(--vt-text-xs); margin: var(--vt-space-2) 0 0; }
.vt-dl dt { color: var(--vt-text-muted); }
.vt-dl dd { margin: 0; overflow-wrap: anywhere; }

.vt-md { overflow-wrap: anywhere; }
.vt-md :where(pre) { overflow-x: auto; background: var(--vt-surface-sunken); padding: var(--vt-space-3); border-radius: var(--vt-radius-sm); font-family: var(--vt-font-mono); font-size: var(--vt-text-sm); }
.vt-md :where(code) { font-family: var(--vt-font-mono); font-size: 0.92em; }
.vt-md :where(a) { color: var(--vt-accent); text-underline-offset: 0.15em; }
.vt-md :where(blockquote) { margin-inline: 0; padding-inline-start: var(--vt-space-4); border-inline-start: 3px solid var(--vt-border-subtle); color: var(--vt-text-muted); }
.vt-md :where(table) { border-collapse: collapse; }
.vt-md :where(th, td) { border: 1px solid var(--vt-border-subtle); padding: var(--vt-space-1) var(--vt-space-3); }

@media (forced-colors: active) {
  .vt-btn, .vt-chip, .vt-input, .vt-badge, .vt-toast { border: 1px solid CanvasText; }
}
/* ---- Giriş (v4): marka kolonu + sütunlu form ---- */
.vt-login__brand .vt-brand{border:0;padding:0;height:auto}
.vt-login__brand .vt-login__lead{font:600 2rem/1.15 var(--vt-font-head);color:#fff;max-width:18ch;margin:0}
.vt-login__logo{display:inline-flex;background:#fff;border-radius:var(--vt-r-md);padding:var(--vt-sp-2) var(--vt-sp-3)}
.vt-login__logo img{display:block;max-width:160px;max-height:64px;width:auto;height:auto;object-fit:contain}
.vt-login__col{width:min(360px,100%);display:flex;flex-direction:column;gap:var(--vt-sp-4);min-width:0}
.vt-login__form form{width:100%}
.vt-login__form form[hidden]{display:none}
.vt-login__h1{font-size:var(--vt-fs-xl,1.5rem)}
.vt-login__h2{font-size:var(--vt-fs-lg)}
.vt-login__col .vt-input{height:40px}
.vt-login__col .vt-input-wrap button{top:6px}
.vt-login__col .vt-btn{height:40px;justify-content:center}
.vt-login__col .vt-input-wrap .vt-btn{height:28px}
.vt-login__col pre.plain{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;margin:0;max-height:16rem;overflow:auto}
.vt-login__more{border-top:1px solid var(--vt-border-subtle);padding-top:var(--vt-sp-3)}
.vt-login__more>summary{cursor:pointer;min-height:32px;display:flex;align-items:center;color:var(--vt-text-muted);font-size:var(--vt-fs-sm)}
.vt-login__more>summary:hover,.vt-login__more[open]>summary{color:var(--vt-text)}
.vt-login__more>:not(summary){margin-top:var(--vt-sp-3)}
.vt-login__more form{display:flex;flex-direction:column;gap:var(--vt-sp-3)}
.vt-alert:empty{display:none}
.vt-alert--ok{border-color:var(--vt-ok);background:var(--vt-ok-soft)}
.vt-alert--info{border-color:var(--vt-info);background:var(--vt-info-soft)}
@media (max-width:900px){.vt-login__brand .vt-login__lead{font-size:1.25rem}}

/* ---- v4 musteri ekranlari: ortak ekler (baglanti cipi, kart govdesi, form kutusuz) ---- */
a.vt-chip { text-decoration: none; color: var(--vt-text); display: inline-flex; align-items: center; }
.vt-chip[aria-current="true"] { background: var(--vt-accent-soft); border-color: var(--vt-accent); color: var(--vt-accent); font-weight: 600; }
.vt-card__flush { padding: 0; min-width: 0; }
.vt-card__foot { padding: var(--vt-sp-3) var(--vt-sp-4); border-top: 1px solid var(--vt-border-subtle); font-size: var(--vt-fs-sm); }
.vt-toolbar__end { margin-left: auto; }
.vt-search { display: flex; gap: var(--vt-sp-2); align-items: center; }
.vt-search .vt-input { min-width: 12rem; }
.vt-kpi__label a { color: inherit; text-decoration: none; }
.vt-kpi__label a:hover { color: var(--vt-accent); text-decoration: underline; }
.vt-kpi__wait { font-size: var(--vt-fs-base); font-weight: 400; }
.vt-card > .vt-card__body > .vt-stack + .vt-stack { margin-top: var(--vt-sp-4); }
.vt-modal__body .vt-modal__foot { padding: 0; border: 0; margin-top: var(--vt-sp-2); }
.vt-modal__body form, .vt-card__body form:not(.vt-ed__form):not(.vt-search) { display: flex; flex-direction: column; gap: var(--vt-sp-3); }
.vt-modal__body .form, .vt-card__body .form, .vt-card__flush .form { max-width: none; border: 0; padding: 0; background: transparent; }
@media (max-width: 600px) { .vt-search { flex: 1 1 100%; } .vt-search .vt-input { min-width: 0; flex: 1; } .vt-toolbar__end { margin-left: 0; } }
.vt-search .vt-field__label, .vt-ed__form .vt-field__label { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* ---- v4 musteri detayi: tablo ayrintilari, kart ici ozetler, tehlikeli bolum, kaynak/sekme duzenleri ---- */
.vt-card .vt-table caption { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.vt-table tbody th[scope="row"] { text-transform: none; letter-spacing: 0; font-size: var(--vt-fs-base); font-weight: 500; color: var(--vt-text); padding: 9px var(--vt-sp-4); border-bottom: 1px solid var(--vt-border-subtle); white-space: normal; }
.vt-table tbody tr:last-child th[scope="row"] { border-bottom: 0; }
.vt-table td .vt-badge { white-space: nowrap; }
.vt-table td form { display: inline-flex; flex-direction: row; flex-wrap: wrap; gap: var(--vt-sp-2); align-items: center; margin: 0; }
.vt-rowacts, .row-actions { display: flex; flex-wrap: wrap; gap: var(--vt-sp-2); align-items: center; justify-content: flex-end; }
.vt-card__body > .vt-muted:first-child { margin-bottom: var(--vt-sp-3); }
.vt-card__body > * + h3, .vt-card__flush > * + h3 { margin-top: var(--vt-sp-4); }
.vt-card__intro { padding: var(--vt-sp-3) var(--vt-sp-4) 0; margin: 0; color: var(--vt-text-muted); }
.vt-card__body .vt-card__intro { padding: 0 0 var(--vt-sp-3); }
.vt-card--danger { border-color: var(--vt-danger); }
.vt-card--danger .vt-card__head h2 { color: var(--vt-danger); }
.vt-pre { margin: 0; padding: var(--vt-sp-3) var(--vt-sp-4); background: var(--vt-surface-sunken); border: 1px solid var(--vt-border-subtle); border-radius: var(--vt-r-md); font: var(--vt-fs-sm)/1.5 var(--vt-font-mono); white-space: pre-wrap; overflow-wrap: anywhere; max-height: 28rem; overflow: auto; }
.vt-head--detail { align-items: flex-start; }
.vt-head--detail h1 { overflow-wrap: anywhere; }
.vt-head__act { flex-wrap: wrap; }
.vt-tabs--nav { margin-bottom: var(--vt-sp-4); }
.vt-teach { list-style: none; margin: 0; padding: 0; }
.vt-teach > li { padding: var(--vt-sp-3) var(--vt-sp-4); border-bottom: 1px solid var(--vt-border-subtle); }
.vt-teach > li:last-child { border-bottom: 0; }
.vt-teach > li.is-missing { border-left: 3px solid var(--vt-warn); }
.vt-teach h3 { display: flex; flex-wrap: wrap; align-items: center; gap: var(--vt-sp-2); margin: 0 0 var(--vt-sp-1); }
.vt-teach form { margin-top: var(--vt-sp-2); }
.vt-jump { display: flex; flex-wrap: wrap; gap: var(--vt-sp-2); list-style: none; margin: 0 0 var(--vt-sp-4); padding: 0; }
.vt-jump a { display: inline-flex; align-items: center; padding: 4px var(--vt-sp-3); border: 1px solid var(--vt-border); border-radius: var(--vt-r-pill); text-decoration: none; color: var(--vt-text); font-size: var(--vt-fs-sm); }
.vt-jump a:hover { background: var(--vt-surface-sunken); }
.vt-sections > .vt-card + .vt-card { margin-top: 0; }
.vt-mini { overflow-x: auto; }
.vt-mini .vt-table th, .vt-mini .vt-table td { padding-left: 0; }
.vt-trend { display: block; width: 100%; height: 6rem; }
.vt-trend__area { fill: var(--vt-accent); opacity: .15; }
.vt-trend__line { stroke: var(--vt-accent); stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; fill: none; }
.vt-axis { display: flex; justify-content: space-between; margin: var(--vt-sp-1) 0 0; font-size: var(--vt-fs-xs); color: var(--vt-text-muted); }
.vt-big { font: 600 var(--vt-fs-lg) var(--vt-font-head); font-variant-numeric: tabular-nums; }
.vt-steps-list { list-style: none; margin: 0; padding: 0; }
.vt-steps-list li { display: grid; grid-template-columns: 1.25rem 1fr auto; gap: 2px var(--vt-sp-2); align-items: center; padding: var(--vt-sp-2) 0; border-bottom: 1px solid var(--vt-border-subtle); font-size: var(--vt-fs-base); }
.vt-steps-list li:last-child { border-bottom: 0; }
.vt-steps-list .vt-muted { grid-column: 2; font-size: var(--vt-fs-xs); }
.vt-steps-list time, .vt-steps-list .t { grid-column: 3; grid-row: 1; font-size: var(--vt-fs-xs); color: var(--vt-text-muted); }
@media (max-width: 600px) { .vt-head--detail { flex-direction: column; } .vt-card__head { flex-wrap: wrap; } }

/* Musteri detayi: kart ici alt baslik, kisa anahtar/parmak izi hucresi, sekme ici dikey ritim */
.vt-subhead { margin: var(--vt-sp-4) 0 var(--vt-sp-2); font-size: var(--vt-fs-md, 1rem); font-weight: 600; display: flex; flex-wrap: wrap; align-items: center; gap: var(--vt-sp-2); }
.vt-subhead:first-child { margin-top: 0; }
.vt-fp { display: inline-flex; gap: var(--vt-sp-2); align-items: center; }
.vt-card__body > .vt-muted:first-child, .vt-card__body > p.vt-muted + .vt-table-wrap { margin-top: 0; }
.vt-sep { height: 1px; background: var(--vt-border-subtle); margin: var(--vt-sp-4) 0; }

/* CSP: satir ici stil yok. Widget boyutu/rengi sinif ile (yuzde 0-100 tam sayiya yuvarlanir; seri rengi 1-6). */
figure.vt-widget { margin: 0; display: grid; }
.vt-kpi dl, .vt-kpi dd { margin: 0; }
.vt-w-0{width:0%}.vt-w-1{width:1%}.vt-w-2{width:2%}.vt-w-3{width:3%}.vt-w-4{width:4%}.vt-w-5{width:5%}.vt-w-6{width:6%}.vt-w-7{width:7%}.vt-w-8{width:8%}.vt-w-9{width:9%}
.vt-w-10{width:10%}.vt-w-11{width:11%}.vt-w-12{width:12%}.vt-w-13{width:13%}.vt-w-14{width:14%}.vt-w-15{width:15%}.vt-w-16{width:16%}.vt-w-17{width:17%}.vt-w-18{width:18%}.vt-w-19{width:19%}
.vt-w-20{width:20%}.vt-w-21{width:21%}.vt-w-22{width:22%}.vt-w-23{width:23%}.vt-w-24{width:24%}.vt-w-25{width:25%}.vt-w-26{width:26%}.vt-w-27{width:27%}.vt-w-28{width:28%}.vt-w-29{width:29%}
.vt-w-30{width:30%}.vt-w-31{width:31%}.vt-w-32{width:32%}.vt-w-33{width:33%}.vt-w-34{width:34%}.vt-w-35{width:35%}.vt-w-36{width:36%}.vt-w-37{width:37%}.vt-w-38{width:38%}.vt-w-39{width:39%}
.vt-w-40{width:40%}.vt-w-41{width:41%}.vt-w-42{width:42%}.vt-w-43{width:43%}.vt-w-44{width:44%}.vt-w-45{width:45%}.vt-w-46{width:46%}.vt-w-47{width:47%}.vt-w-48{width:48%}.vt-w-49{width:49%}
.vt-w-50{width:50%}.vt-w-51{width:51%}.vt-w-52{width:52%}.vt-w-53{width:53%}.vt-w-54{width:54%}.vt-w-55{width:55%}.vt-w-56{width:56%}.vt-w-57{width:57%}.vt-w-58{width:58%}.vt-w-59{width:59%}
.vt-w-60{width:60%}.vt-w-61{width:61%}.vt-w-62{width:62%}.vt-w-63{width:63%}.vt-w-64{width:64%}.vt-w-65{width:65%}.vt-w-66{width:66%}.vt-w-67{width:67%}.vt-w-68{width:68%}.vt-w-69{width:69%}
.vt-w-70{width:70%}.vt-w-71{width:71%}.vt-w-72{width:72%}.vt-w-73{width:73%}.vt-w-74{width:74%}.vt-w-75{width:75%}.vt-w-76{width:76%}.vt-w-77{width:77%}.vt-w-78{width:78%}.vt-w-79{width:79%}
.vt-w-80{width:80%}.vt-w-81{width:81%}.vt-w-82{width:82%}.vt-w-83{width:83%}.vt-w-84{width:84%}.vt-w-85{width:85%}.vt-w-86{width:86%}.vt-w-87{width:87%}.vt-w-88{width:88%}.vt-w-89{width:89%}
.vt-w-90{width:90%}.vt-w-91{width:91%}.vt-w-92{width:92%}.vt-w-93{width:93%}.vt-w-94{width:94%}.vt-w-95{width:95%}.vt-w-96{width:96%}.vt-w-97{width:97%}.vt-w-98{width:98%}.vt-w-99{width:99%}
.vt-w-100{width:100%}
.vt-legend__swatch--1{background:var(--vt-chart-1)}.vt-legend__swatch--2{background:var(--vt-chart-2)}.vt-legend__swatch--3{background:var(--vt-chart-3)}.vt-legend__swatch--4{background:var(--vt-chart-4)}.vt-legend__swatch--5{background:var(--vt-chart-5)}.vt-legend__swatch--6{background:var(--vt-chart-6)}

@media (max-width:560px){
  .vt-stack>*{min-width:0}
  .vt-table th[scope=row]{min-width:7rem;white-space:normal}
  .vt-crumb>:not(:last-child){display:none}
  .vt-crumb>:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
}
/* Kabuk menusu (v4.1): katlanir gruplar + uzun marka adi kirpilmaz (ellipsis, title ile tam ad). */
.vt-brand{min-width:0}
.vt-brand__mark{flex:none}
.vt-brand__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vt-navgrp{display:block}
.vt-navgrp > summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--vt-sp-2);cursor:pointer;min-height:32px;border-radius:var(--vt-r-md);padding-bottom:0}
.vt-navgrp > summary::-webkit-details-marker{display:none}
.vt-navgrp > summary::after{content:"";flex:none;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s;margin-right:var(--vt-sp-1)}
.vt-navgrp[open] > summary::after{transform:rotate(45deg)}
.vt-navgrp > summary:hover{color:var(--vt-nav-text)}
.vt-navgrp > ul{margin-top:var(--vt-sp-1)}
@media (max-width:900px){.vt-nav a,.vt-navgrp > summary{min-height:44px}}
.vt-nav{gap:var(--vt-sp-1)}
@media (max-width:600px){.vt-crumb > span{display:none}.vt-crumb b{overflow:hidden;text-overflow:ellipsis}}
