/* partner.css — Betco Partner · "Sakin Fintech" v1  (userpanel "partner" teması)
   1. BÖLÜM = _tasarim/handoff-partner-v1/affbet.css BİREBİR kopyası — değiştirme, yeniden adlandırma.
   2. BÖLÜM = dosya sonundaki "EK BİLEŞENLER" — handoff'ta olmayan, mevcut ekranların ihtiyaç duyduğu
   parçalar (modal alt parçaları, toast, sayfalama, gerçek input switch/check, tablo→kart, yardımcı sınıflar).
   Bu dosyayı YALNIZ layouts/partner.ejs + layouts/partner-auth.ejs yükler; public/css/affbet.css'e dokunulmaz.
   Tek dosya, 19 marka. Marka farkı: --accent (+ wordmark). --on-accent sunucuda
   luminance eşiği .3 ile seçilir (altın → #1B1A17, kırmızı/mor/mavi → #FFFFFF).
   Varsayılan tema AÇIK; koyu tema [data-theme="dark"]. */

:root{
  --accent:#E39A12; --on-accent:#1B1A17;

  --bg:#F7F6F3; --panel:#FFFFFF; --panel2:#F3F1EC; --sunk:#EFEDE7;
  --border:#E4E1DA; --line:#ECEAE4; --hair:#F1EFEA;
  --text:#1B1A17; --muted:#6F6B64; --faint:#A29E96;

  --pos:#1F8A4C; --pos-bg:#E6F3EB;
  --neg:#C9362E; --neg-bg:#FBE9E7;
  --warn:#B7791F; --warn-bg:#FBF1DE;
  --info:#2F6FBF; --info-bg:#E7EFFA;

  --chart-gray:#B9B5AD; --grid:#EEECE7;

  --shadow:0 1px 2px rgba(20,18,14,.04),0 4px 14px rgba(20,18,14,.04);
  --shadow-pop:0 8px 30px rgba(20,18,14,.14);
  --shadow-toast:0 10px 30px rgba(20,18,14,.22);

  --font:'Manrope',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;

  --sidebar-w:236px; --sidebar-w-collapsed:64px; --topbar-h:58px;
  --r-ctl:6px; --r-btn:8px; --r-card:12px; --r-modal:14px; --r-pill:999px;
}
[data-theme="dark"]{
  --bg:#141414; --panel:#1C1C1C; --panel2:#242424; --sunk:#181818;
  --border:#2C2C2C; --line:#262626; --hair:#222222;
  --text:#ECEAE6; --muted:#9C988F; --faint:#6B6862;
  --pos:#3FB06E; --pos-bg:rgba(63,176,110,.14);
  --neg:#E0574F; --neg-bg:rgba(224,87,79,.14);
  --warn:#D6A144; --warn-bg:rgba(214,161,68,.14);
  --info:#6C9FE0; --info-bg:rgba(108,159,224,.14);
  --chart-gray:#5C5A56; --grid:#262626;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 4px 14px rgba(0,0,0,.25);
  --shadow-pop:0 8px 30px rgba(0,0,0,.5);
  --shadow-toast:0 10px 30px rgba(0,0,0,.6);
}

/* ---------- base ---------- */
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--text);text-decoration:none}a:hover{color:var(--accent)}
button,input,select,textarea{font-family:inherit;color:inherit}
input::placeholder,textarea::placeholder{color:var(--faint)}
.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.neg{color:var(--neg)} /* yalnız NGR/GGR negatifi */
h1.ab-title{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0}
h2.ab-section{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:0}
h3.ab-cardtitle{font-size:15px;font-weight:800;margin:0}
.ab-label{font-size:12.5px;font-weight:700;color:var(--muted)}
.ab-kicker{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
@keyframes ab-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* utilities */
.ab-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.ab-stack{display:flex;flex-direction:column;gap:12px}
.ab-stack--lg{gap:16px}
.ab-muted{color:var(--muted);margin:0}
.ab-strong{font-weight:600}
.ab-metric{font-size:20px;font-weight:600;margin-top:2px}
.small{font-size:12.5px}
.ab-link{font-size:12.5px;font-weight:700;color:var(--muted)}
.ab-legend{display:flex;justify-content:space-between;font-size:13px}
.ab-legend span{display:flex;align-items:center;gap:8px}
.ab-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.ab-divider{height:1px;background:var(--line);margin:4px 0}
.ab-back{font-size:13px;font-weight:700;color:var(--muted);width:fit-content}
.ab-dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13px}
.ab-dl dt{color:var(--muted)}.ab-dl dd{margin:0;font-weight:600}
.ab-msg{max-width:78%;padding:10px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--border);font-size:13.5px;line-height:1.5}
.ab-msg--mine{background:var(--text);color:var(--bg);border-color:var(--text);align-self:flex-end}
.ab-placeholder{background:repeating-linear-gradient(135deg,var(--sunk) 0 8px,var(--panel2) 8px 16px);display:grid;place-items:center;color:var(--muted);font:11.5px var(--mono)}

/* ---------- shell ---------- */
.ab-app{display:flex;min-height:100vh;align-items:flex-start}
.ab-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:100vh}
.ab-sidebar__text{display:flex;flex-direction:column;line-height:1.1;min-width:0}
.ab-sidebar.is-collapsed .ab-sidebar__text,.ab-sidebar.is-collapsed .ab-nav__item span,.ab-sidebar.is-collapsed .ab-nav__group,.ab-sidebar.is-collapsed .ab-usercard__text{display:none}
.ab-sidebar.is-collapsed .ab-nav__item{justify-content:center}
.ab-usercard__text{display:flex;flex-direction:column;line-height:1.2;min-width:0;font-size:13px}
.ab-usercard__text small{font-size:11.5px;color:var(--muted)}
.ab-iconbtn--bare{border:0;width:auto;height:auto;padding:4px;margin-left:auto;color:var(--muted)}
.ab-iconbtn--text{width:auto;padding:0 10px;font-weight:600;font-size:12px}
.ab-iconbtn--dot{position:relative}
.ab-iconbtn--dot::after{content:"";position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--accent);border:2px solid var(--panel)}
.ab-topbar__actions{display:flex;align-items:center;gap:8px}
.ab-topbar__menu{display:none}
.ab-sidebar{width:var(--sidebar-w);position:sticky;top:0;height:100vh;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}
.ab-sidebar.is-collapsed{width:var(--sidebar-w-collapsed)}
.ab-sidebar__brand{height:var(--topbar-h);display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid var(--border)}
.ab-sidebar__mark{width:28px;height:28px;border-radius:8px;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;font-weight:800;font-size:14px}
.ab-sidebar__name{font-weight:800;font-size:15px;letter-spacing:-.01em}
.ab-sidebar__sub{font-size:10.5px;color:var(--muted);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.ab-nav{flex:1;overflow-y:auto;padding:10px}
.ab-nav__group{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);padding:10px 10px 6px}
.ab-nav__item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-weight:600;font-size:13.5px;color:var(--muted)}
.ab-nav__item:hover{background:var(--panel2);color:var(--text)}
.ab-nav__item.is-active{background:var(--panel2);color:var(--text)}
.ab-nav__item.is-active svg{color:var(--accent)}
.ab-nav__item svg{width:20px;height:20px;color:var(--faint)}
svg use{fill:none;stroke:currentColor}
.ab-icon,.ab-app svg,.ab-auth svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ab-nav__badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--on-accent);font:700 11px var(--mono);display:grid;place-items:center;margin-left:auto}
.ab-usercard{border-top:1px solid var(--border);padding:12px;display:flex;align-items:center;gap:10px}
.ab-avatar{width:32px;height:32px;border-radius:50%;background:var(--panel2);border:1px solid var(--border);display:grid;place-items:center;font-weight:700;font-size:12px}
.ab-topbar{height:var(--topbar-h);position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:0 20px;background:var(--panel);border-bottom:1px solid var(--border)}
.ab-topbar h1{font-size:17px;font-weight:800;letter-spacing:-.01em;flex:1;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ab-iconbtn{width:36px;height:36px;border:1px solid var(--border);background:transparent;border-radius:var(--r-btn);display:grid;place-items:center;cursor:pointer}
.ab-iconbtn:hover{background:var(--panel2)}
.ab-live{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--r-pill);border:1px solid var(--border);font-size:12px;font-weight:700;color:var(--muted)}
.ab-live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pos)}
.ab-page{padding:24px 24px 56px;max-width:1400px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:20px;animation:ab-fade .4s ease-out}
@media (max-width:900px){.ab-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:40;transform:translateX(-100%);transition:transform .2s}.ab-sidebar.is-open{transform:none}.ab-scrim{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:30}.ab-scrim[hidden]{display:none}.ab-topbar__menu{display:grid}}
@media (max-width:720px){.ab-page{padding:16px 14px 48px}.ab-topbar__logout{display:none}.ab-live{font-size:0;padding:5px 8px}.ab-live::before{margin:0}}

/* ---------- filter bar (TEK yer) ---------- */
.ab-filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow)}
.ab-filterbar__sep{width:1px;height:22px;background:var(--border)}
.ab-monthnav{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--r-btn);height:34px;overflow:hidden}
.ab-monthnav button{border:0;background:transparent;width:32px;height:100%;cursor:pointer;color:var(--muted);font-size:16px}
.ab-monthnav button:hover{background:var(--panel2)}
.ab-monthnav span{padding:0 8px;font:700 13px var(--mono);min-width:82px;text-align:center}
.ab-daterange{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--r-btn);height:34px;padding:0 10px;font:12.5px var(--mono)}
.ab-filterpill{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--r-pill);border:1px solid var(--border);background:transparent;color:var(--muted);font:600 12px var(--mono);cursor:pointer}
.ab-filterpill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--faint)}
.ab-filterpill.is-on{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text)}
.ab-filterpill.is-on::before{background:var(--accent)}
.ab-filterpill.is-passive::before{background:var(--neg)}

/* ---------- cards ---------- */
.ab-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow);padding:20px 22px}
.ab-card--flush{padding:0;overflow:hidden}
.ab-card--soft{background:var(--panel2);box-shadow:none}
.ab-card__head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 22px;border-bottom:1px solid var(--line)}
.ab-grid-2,.ab-grid-3,.ab-grid-4{display:grid;gap:16px}
.ab-grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.ab-grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.ab-grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.ab-span-2{grid-column:span 2}
@media (max-width:720px){.ab-span-2{grid-column:span 1}}

/* ---------- KPI ---------- */
.ab-kpi{display:flex;flex-direction:column;gap:6px;min-width:0}
.ab-kpi__label{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ab-kpi__value{font:600 20px var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}
.ab-kpi__foot{font-size:11.5px;color:var(--muted);font-family:var(--mono)}
.ab-kpi__foot.is-pos{color:var(--pos)}
.ab-kpi--hero .ab-kpi__label{font-size:13px}
.ab-kpi--hero .ab-kpi__value{font-size:40px;letter-spacing:-.02em;line-height:1}
.ab-kpi--hero .ab-kpi__foot{font-size:13px;font-family:var(--font)}
.ab-kpistrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));padding:8px 0}
.ab-kpistrip>.ab-kpi{padding:14px 20px;border-right:1px solid var(--line)}
.ab-spark{height:28px;width:100%}
/* Kontrol Paneli · "Defter" (varsayılan): kahraman bant + defter listesi */
.ab-heroband{display:grid;grid-template-columns:minmax(340px,1.2fr) minmax(0,2fr);overflow:hidden}
.ab-heroband__hero{padding:28px 28px 24px;display:flex;flex-direction:column;gap:18px;min-width:0;border-right:1px solid var(--line)}
.ab-heroband__value{font:600 56px var(--mono);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums;min-width:0;overflow-wrap:anywhere}
@media (max-width:1100px){.ab-heroband__value{font-size:44px}}
.ab-heroband__chart{padding:22px 24px 18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.ab-heroband__foot{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding-top:16px;margin-top:auto}
.ab-ledger__row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px 22px;border-top:1px solid var(--line)}
.ab-ledger__row>span:first-child{display:flex;flex-direction:column;gap:5px;min-width:0}
.ab-ledger__label{font-size:13.5px;font-weight:600}
.ab-ledger__bar{display:block;height:3px;width:100%;max-width:140px;border-radius:2px;background:var(--sunk);overflow:hidden}
.ab-ledger__bar>span{display:block;height:100%;background:var(--accent);border-radius:2px} /* genişlik = bu ay / önceki ay aynı gün penceresi, %100 tavan */
.ab-ledger__value{display:flex;flex-direction:column;align-items:flex-end;font:600 16px var(--mono);font-variant-numeric:tabular-nums;text-align:right}
.ab-ledger__delta{display:block;font:11.5px var(--mono);color:var(--muted)}.ab-ledger__delta.is-pos{color:var(--pos)}
@media (max-width:820px){.ab-heroband{grid-template-columns:minmax(0,1fr)}.ab-heroband__hero{border-right:0;border-bottom:1px solid var(--line)}}
@media (max-width:720px){.ab-heroband__hero{padding:22px 20px 20px}.ab-heroband__value{font-size:40px}}

/* ---------- buttons ---------- */
.ab-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--r-btn);border:1px solid transparent;font-weight:700;font-size:13px;cursor:pointer;white-space:nowrap}
.ab-btn--primary{background:var(--accent);color:var(--on-accent)}
.ab-btn--primary:hover{filter:brightness(.96)}
.ab-btn--ghost{background:transparent;border-color:var(--border)}
.ab-btn--ghost:hover{background:var(--panel2)}
.ab-btn--soft{background:var(--panel2)}
.ab-btn--soft:hover{background:var(--sunk)}
.ab-btn--danger{background:transparent;border-color:var(--border);color:var(--neg)}
.ab-btn--danger:hover{background:var(--neg-bg)}
.ab-btn--sm{height:28px;padding:0 10px;font-size:12px;border-radius:7px}
.ab-btn--lg{height:44px;padding:0 18px;font-size:14px;font-weight:800}
.ab-btn:disabled{opacity:.45;cursor:not-allowed}
.ab-btn:focus-visible,.ab-input:focus,.ab-select:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px}

/* ---------- inputs ---------- */
.ab-field{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:700;color:var(--muted)}
.ab-input,.ab-select{height:38px;border:1px solid var(--border);border-radius:var(--r-btn);background:var(--panel);padding:0 12px;font-size:14px;font-weight:500;color:var(--text)}
.ab-input--sm,.ab-select--sm{height:34px;font-size:13px}
.ab-input--mono{font-family:var(--mono)}
.ab-input:focus{border-color:var(--accent)}
.ab-input[readonly]{background:var(--sunk);color:var(--muted)}
.ab-field.is-error{color:var(--neg)}.ab-field.is-error .ab-input{border-color:var(--neg)}
.ab-hint{font-weight:500;font-size:12px}
textarea.ab-input{height:auto;padding:10px 12px;resize:vertical}
.ab-switch{width:32px;height:18px;border-radius:9px;background:var(--faint);position:relative;display:inline-block;cursor:pointer;transition:background .15s}
.ab-switch::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .15s}
.ab-switch.is-on{background:var(--accent)}.ab-switch.is-on::after{left:16px}
.ab-check{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--faint);display:inline-grid;place-items:center;background:transparent}
.ab-check.is-on{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}
.ab-radiocard{display:flex;gap:12px;align-items:flex-start;text-align:left;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:transparent;cursor:pointer}
.ab-radiocard.is-on{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 8%,transparent)}
.ab-radio{width:16px;height:16px;border-radius:50%;border:2px solid var(--faint);display:inline-grid;place-items:center;margin-top:1px;flex:0 0 auto}
.ab-radio.is-on{border-color:var(--accent)}.ab-radio.is-on::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}
.ab-segmented{display:inline-flex;background:var(--sunk);border-radius:var(--r-btn);padding:3px;gap:2px}
.ab-segmented button{border:0;border-radius:var(--r-ctl);padding:6px 12px;font-size:12.5px;font-weight:700;cursor:pointer;background:transparent;color:var(--muted)}
.ab-segmented button.is-on{background:var(--panel);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.ab-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border)}
.ab-tabs button{border:0;background:transparent;padding:8px 12px;font-size:13px;font-weight:700;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.ab-tabs button.is-on{color:var(--text);border-bottom-color:var(--accent)}

/* ---------- badges ---------- */
.ab-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--r-pill);font-size:12px;font-weight:700;background:var(--panel2);color:var(--text)}
.ab-badge--pos{background:var(--pos-bg);color:var(--pos)}
.ab-badge--neg{background:var(--neg-bg);color:var(--neg)}
.ab-badge--warn{background:var(--warn-bg);color:var(--warn)}
.ab-badge--info{background:var(--info-bg);color:var(--info)}
.ab-badge--neutral{background:var(--panel2);color:var(--muted)}
.ab-badge--accent{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text)}
.ab-badge--accent::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent)}
.ab-code{font:12px var(--mono);padding:3px 8px;border-radius:var(--r-ctl);background:var(--panel2);border:1px solid var(--border)}
.ab-code--pos{background:var(--pos-bg);color:var(--pos);border:0}
.ab-code--muted{color:var(--muted);border:0}

/* ---------- table ---------- */
.ab-table-wrap{overflow-x:auto}
.ab-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}
.ab-table th{text-align:left;padding:10px 12px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.ab-table td{padding:10px 12px;border-top:1px solid var(--line)}
.ab-table th:first-child,.ab-table td:first-child{padding-left:22px}
.ab-table th:last-child,.ab-table td:last-child{padding-right:22px}
.ab-table .num,.ab-table th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}
.ab-table tbody tr:hover{background:var(--hair)}
.ab-table tr.total td{font-weight:700;background:var(--panel2)}
.ab-table--dense td{padding:9px 12px}
.ab-pager{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);flex-wrap:wrap;gap:8px}
.ab-pager__count{font:12.5px var(--mono);padding:0 6px}
/* mobil: tablo → kart (Müşteriler) */
.ab-rowcard{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-top:1px solid var(--line)}
.ab-rowcard__meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}

/* ---------- feedback ---------- */
.ab-alert{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--border);border-radius:10px;font-size:13px;line-height:1.5;background:var(--panel2)}
.ab-alert::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--muted);margin-top:6px;flex:0 0 auto}
.ab-alert--pos{background:var(--pos-bg)}.ab-alert--pos::before{background:var(--pos)}
.ab-alert--neg{background:var(--neg-bg)}.ab-alert--neg::before{background:var(--neg)}
.ab-alert--warn{background:var(--warn-bg)}.ab-alert--warn::before{background:var(--warn)}
.ab-alert--accent,.ab-alert--info{background:var(--info-bg)}.ab-alert--accent::before,.ab-alert--info::before{background:var(--info)}
.ab-empty{padding:48px 24px;text-align:center;color:var(--muted);display:flex;flex-direction:column;gap:8px;align-items:center}
.ab-empty::before{content:"";width:40px;height:40px;border-radius:50%;border:1px dashed var(--faint)}
.ab-empty b{color:var(--text)}
.ab-skeleton{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-card)}
.ab-modal-scrim{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:60;display:grid;place-items:center;padding:20px}
.ab-modal{width:100%;max-width:440px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-modal);box-shadow:var(--shadow-pop);padding:24px;display:flex;flex-direction:column;gap:16px}
.ab-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:10px;font-size:13px;font-weight:700;box-shadow:var(--shadow-toast);z-index:70}
/* destek listesi · bildirim listesi */
.ab-unread{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:0 0 auto;display:inline-block}
.ab-ticket{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:14px 22px;border-top:1px solid var(--line);color:var(--text)}
.ab-ticket:first-child{border-top:0}.ab-ticket:hover{background:var(--hair);color:var(--text)}
.ab-ticket__main{min-width:0;display:flex;flex-direction:column;gap:3px}
.ab-ticket__main b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ab-notif{display:grid;grid-template-columns:36px 1fr auto;gap:14px;align-items:flex-start;padding:14px 22px;border-top:1px solid var(--line);cursor:pointer}
.ab-notif:first-child{border-top:0}.ab-notif:hover{background:var(--hair)}
.ab-notif.is-unread{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.ab-notif__icon{width:36px;height:36px;border-radius:10px;background:var(--panel2);border:1px solid var(--border);display:grid;place-items:center;color:var(--muted)}
.ab-notif.is-unread .ab-notif__icon{color:var(--accent)}
.ab-notif__main{min-width:0;display:flex;flex-direction:column;gap:2px}
.ab-notif__main b{font-size:13.5px}

/* ---------- domain ---------- */
.ab-tier-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;/* ::before nokta 1. sütun (handoff kusuru: 4 hücre/3 sütun oran alt satıra düşüyordu) */gap:12px;align-items:center;padding:9px 12px;border-radius:var(--r-btn);border:1px solid transparent;color:var(--muted);font-weight:700;font-size:13.5px}
.ab-tier-row::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--border)}
.ab-tier-row.is-reached{color:var(--text)}.ab-tier-row.is-reached::before{background:var(--text)}
.ab-tier-row.is-current{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--text)}
.ab-tier-row.is-current::before{background:var(--accent)}
.ab-track{height:6px;border-radius:3px;background:var(--sunk);overflow:hidden}
.ab-track>span{display:block;height:100%;background:var(--accent);border-radius:3px}
.ab-track--thin{height:4px}
.ab-funnel{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));padding:6px 0}
.ab-funnel__step{padding:16px 22px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.ab-hbars{display:flex;flex-direction:column;gap:8px}
.ab-hbars__row{display:grid;grid-template-columns:110px 1fr 56px;gap:10px;align-items:center;font-size:13px}
.ab-hbars__bar{height:8px;border-radius:4px;background:var(--sunk);overflow:hidden}
.ab-hbars__bar>span{display:block;height:100%;background:var(--accent);border-radius:4px}
.ab-hbars--gray .ab-hbars__bar>span{background:var(--chart-gray)}
.ab-copyfield{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--r-btn);padding:6px 6px 6px 12px;background:var(--sunk)}
.ab-copyfield>span{font:12.5px var(--mono);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ab-copyfield>button{border:1px solid var(--border);background:var(--panel);border-radius:var(--r-ctl);height:26px;padding:0 10px;font-weight:700;font-size:12px;cursor:pointer}
.ab-pre{margin:0;padding:12px 14px;border-radius:var(--r-btn);background:var(--sunk);border:1px solid var(--border);font:12px/1.55 var(--mono);overflow-x:auto}
.ab-chart{position:relative;height:200px}
.ab-chart canvas{position:absolute;inset:0}

/* ---------- auth (giriş öncesi) ---------- */
.ab-auth{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:28px;animation:ab-fade .4s ease-out}
.ab-auth__brand{display:flex;align-items:center;gap:10px}
.ab-auth__card{width:100%;max-width:400px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-modal);box-shadow:var(--shadow);padding:28px;display:flex;flex-direction:column;gap:16px}
.ab-auth__card--wide{max-width:440px}.ab-auth__card--wider{max-width:480px}
.ab-auth__card--center{text-align:center;align-items:center;gap:14px}
.ab-auth__title{margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em}
.ab-auth__card .ab-input{height:42px}
.ab-auth__or{display:flex;align-items:center;gap:10px;color:var(--faint);font-size:12px}
.ab-auth__or::before,.ab-auth__or::after{content:"";flex:1;height:1px;background:var(--line)}
.ab-auth__links{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;flex-wrap:wrap;gap:8px}
.ab-auth__links a,.ab-auth__links b{font-weight:700}
.ab-auth__foot{display:flex;justify-content:center;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.ab-auth__icon{width:48px;height:48px;border-radius:50%;background:var(--panel2);border:1px solid var(--border);display:grid;place-items:center}
.ab-auth__icon--warn{background:var(--warn-bg);color:var(--warn);border:0}
.ab-pwmeter{display:flex;gap:4px}.ab-pwmeter span{flex:1;height:4px;border-radius:2px;background:var(--sunk)}
.ab-pwmeter.is-weak span:nth-child(1){background:var(--neg)}
.ab-pwmeter.is-fair span:nth-child(-n+2){background:var(--warn)}
.ab-pwmeter.is-strong span{background:var(--pos)}
.ab-otp{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.ab-otp input{width:100%;min-width:0;height:52px;border:1px solid var(--border);border-radius:var(--r-btn);background:var(--panel);text-align:center;font:600 22px var(--mono);color:var(--text)}
.ab-otp input.is-filled{border-color:var(--accent)}.ab-otp.is-error input{border-color:var(--neg)}
.ab-errcode{font:600 64px var(--mono);letter-spacing:-.04em;line-height:1;color:var(--faint)}

/* ---------- Chart.js defaults (JS tarafında uygula) ----------
Chart.defaults.font.family = getComputedStyle(root).getPropertyValue('--font');
line: borderColor=--accent, borderWidth=2, backgroundColor=accent@12%, fill=true, tension=.35, pointRadius=0
bar:  backgroundColor=--accent (seri 2: --chart-gray), borderRadius=3, maxBarThickness=18
scales: x.grid.display=false; y.grid.color=--grid; ticks.color=--muted; y ticks mono 11px, "k" kısaltma
tooltip: backgroundColor=--text, titleColor/bodyColor=--panel, cornerRadius=8, displayColors=false
doughnut: cutout 72%, renkler [accent, chart-gray, chart-gray@45%], borderWidth 0
--------------------------------------------------------------- */

/* =============================================================================
   EK BİLEŞENLER — handoff affbet.css'te olmayan, mevcut ekranların ihtiyaç
   duyduğu parçalar. Handoff'un token/ölçü dili (var(--…), --r-*, 1.6 stroke)
   birebir kullanılır; yukarıdaki hiçbir sınıf yeniden adlandırılmaz/ezilmez.
   ============================================================================= */

/* ---------- 0) taşma emniyeti (Chart.js canvas grid'i şişirmesin) ---------- */
/* Eski temada bu iki satır yoktu → canlı bir kırılma yaşandı. SİLME. */
.ab-grid-2>*,.ab-grid-3>*,.ab-grid-4>*{min-width:0}
.ab-chart canvas,.ab-spark canvas{max-width:100%;display:block}
.ab-card,.ab-kpi,.ab-heroband__chart,.ab-heroband__hero{min-width:0}
.ab-table-wrap{-webkit-overflow-scrolling:touch}
[hidden]{display:none!important}

/* ---------- 1) shell ekleri ---------- */
.ab-scrim{display:none}
@media (max-width:900px){.ab-scrim{display:block}.ab-scrim[hidden]{display:none}}
.ab-sidebar__brandlink{display:flex;align-items:center;gap:10px;min-width:0;flex:1;color:var(--text)}
.ab-sidebar__brandlink:hover{color:var(--text)}
.ab-sidebar.is-collapsed .ab-sidebar__brand{padding:0;justify-content:center}
.ab-sidebar.is-collapsed .ab-sidebar__mark{display:none}
.ab-sidebar.is-collapsed .ab-sidebar__brandlink{flex:0 0 auto}
.ab-sidebar.is-collapsed .ab-iconbtn--bare{margin-left:0}
.ab-sidebar.is-collapsed .ab-nav{padding:10px 8px}
.ab-sidebar.is-collapsed .ab-nav__badge{display:none}
.ab-sidebar.is-collapsed .ab-usercard{justify-content:center}
.ab-usercard{color:var(--text)}
.ab-usercard:hover{background:var(--panel2);color:var(--text)}
.ab-usercard__text b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ab-topbar__actions form{display:contents;margin:0}
/* handoff kusuru: .ab-topbar__menu{display:none} kuralı .ab-iconbtn{display:grid} kuralından
   ÖNCE geliyor → aynı özgüllükte sonraki kazanıyor ve hamburger masaüstünde de görünüyordu. */
@media (min-width:901px){.ab-topbar__menu{display:none}}
.ab-banner{margin-bottom:2px}

/* ---------- 2) düğme ekleri ---------- */
.ab-btn--full{width:100%}
.ab-btn--icon{width:36px;padding:0}
.ab-btn--wrap{white-space:normal;height:auto;min-height:36px;padding:8px 14px;text-align:left}
.ab-btn--accent-soft{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text)}
.ab-btn--accent-soft:hover{background:color-mix(in srgb,var(--accent) 22%,transparent)}
a.ab-btn{text-decoration:none}
a.ab-btn:hover{color:inherit}
.ab-iconbtn--danger{color:var(--neg)}
.ab-iconbtn:disabled{opacity:.45;cursor:not-allowed}
/* odak halkası — düğme dışındaki tıklanabilirler de görsün */
.ab-iconbtn:focus-visible,.ab-nav__item:focus-visible,.ab-filterpill:focus-visible,
.ab-segmented button:focus-visible,.ab-segmented a:focus-visible,.ab-tabs button:focus-visible,
.ab-tabs a:focus-visible,.ab-pager__btn:focus-visible,.ab-monthnav button:focus-visible,
.ab-monthnav a:focus-visible,.ab-usercard:focus-visible,.ab-copyfield>button:focus-visible,
.ab-textarea:focus,.ab-otp input:focus,.ab-radiocard:focus-visible,input.ab-check:focus-visible,
input.ab-switch:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px}

/* ---------- 3) form ekleri ---------- */
.ab-textarea{border:1px solid var(--border);border-radius:var(--r-btn);background:var(--panel);
  padding:10px 12px;font-size:14px;font-weight:500;color:var(--text);font-family:inherit;line-height:1.5;resize:vertical;min-height:96px;width:100%}
.ab-textarea:focus{border-color:var(--accent)}
.ab-textarea[readonly]{background:var(--sunk);color:var(--muted)}
.ab-field.is-error .ab-textarea,.ab-field.is-error .ab-select{border-color:var(--neg)}
.ab-field__row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ab-hint--neg{color:var(--neg)}
.ab-hint--pos{color:var(--pos)}
.ab-select{appearance:none;-webkit-appearance:none;padding-right:30px;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 15px) calc(50% + 1px),calc(100% - 10px) calc(50% + 1px);
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
/* ikonlu tek satır alan (giriş ekranları) */
.ab-inputwrap{display:flex;align-items:center;gap:10px;height:38px;padding:0 12px;
  border:1px solid var(--border);border-radius:var(--r-btn);background:var(--panel)}
.ab-inputwrap:focus-within{border-color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:1px}
.ab-inputwrap>svg{color:var(--faint);flex:0 0 auto}
.ab-inputwrap>input{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:14px;font-weight:500;color:var(--text);height:100%;padding:0}
.ab-inputwrap>button{border:0;background:transparent;padding:0;cursor:pointer;color:var(--faint);display:flex;flex:0 0 auto}
.ab-inputwrap>button:hover{color:var(--muted)}
.ab-auth__card .ab-inputwrap{height:42px}
/* gerçek <input type="checkbox"> ile ab-check / ab-switch */
input.ab-check{appearance:none;-webkit-appearance:none;margin:0;cursor:pointer;flex:0 0 auto}
input.ab-check:checked{border-color:var(--accent);background:var(--accent)}
input.ab-check:checked::after{content:"";width:9px;height:5px;border:2px solid var(--on-accent);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
input.ab-check:disabled{opacity:.45;cursor:not-allowed}
input.ab-switch{appearance:none;-webkit-appearance:none;margin:0;border:0;padding:0;flex:0 0 auto}
input.ab-switch:checked{background:var(--accent)}
input.ab-switch:checked::after{left:16px}
input.ab-switch:disabled{opacity:.45;cursor:not-allowed}
.ab-switchrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--line)}
.ab-switchrow:first-child{border-top:0}
.ab-switchrow__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.ab-switchrow__text b{font-size:13.5px;font-weight:700}
.ab-switchrow__text small{font-size:12px;color:var(--muted)}
.ab-checkrow{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--muted);cursor:pointer}
.ab-checkrow a{font-weight:700}

/* ---------- 4) segment / sekme / filtre: <a> sürümleri ---------- */
.ab-segmented a{display:inline-flex;align-items:center;border-radius:var(--r-ctl);padding:6px 12px;
  font-size:12.5px;font-weight:700;background:transparent;color:var(--muted)}
.ab-segmented a.is-on{background:var(--panel);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.ab-tabs a{display:inline-flex;align-items:center;padding:8px 12px;font-size:13px;font-weight:700;
  color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.ab-tabs a.is-on{color:var(--text);border-bottom-color:var(--accent)}
.ab-tabs--pad{padding:0 22px}
.ab-tabpane[hidden]{display:none}
a.ab-filterpill{text-decoration:none}
a.ab-filterpill:hover,.ab-filterpill:hover{color:var(--text)}
.ab-filterpill--plain::before{display:none}
.ab-filterbar__grow{flex:1;min-width:0}
.ab-filterbar form{display:contents}
.ab-monthnav a{display:grid;place-items:center;width:32px;height:100%;color:var(--muted)}
.ab-monthnav a:hover{background:var(--panel2);color:var(--text)}
.ab-monthnav a.is-off,.ab-monthnav button:disabled{opacity:.35;pointer-events:none}
.ab-daterange input{border:0;background:transparent;outline:none;font:inherit;color:inherit;padding:0;width:106px}

/* ---------- 5) tablo ekleri + mobil kart hali ---------- */
.ab-table--fixed{table-layout:fixed}
.ab-table td.wrap,.ab-table th.wrap{white-space:normal}
.ab-table th.sortable{cursor:pointer;user-select:none}
.ab-table th.sortable:hover{color:var(--text)}
.ab-table tbody tr.is-on{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.ab-table-wrap--tall{max-height:520px;overflow-y:auto}
.ab-table-wrap--tall thead th{position:sticky;top:0;z-index:1;background:var(--panel)}
.ab-rowcards{display:flex;flex-direction:column}
.ab-rowcard:first-child{border-top:0}
.ab-rowcard__top{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.ab-rowcard__title{font-size:13.5px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ab-rowcard__meta b{color:var(--text);font-weight:600}
/* tabloyu mobilde karta çevirmenin standart yolu: iki yüzeyi de bas, birini gizle */
@media (max-width:720px){.ab-hide-m{display:none!important}}
@media (min-width:721px){.ab-only-m{display:none!important}}
/* sayfalama */
.ab-pager__nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ab-pager__btn{height:30px;min-width:30px;padding:0 10px;border:1px solid var(--border);background:transparent;
  border-radius:var(--r-ctl);font:600 12.5px var(--mono);color:var(--muted);cursor:pointer;display:inline-grid;place-items:center;text-decoration:none}
.ab-pager__btn:hover{background:var(--panel2);color:var(--text)}
.ab-pager__btn.is-on{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text)}
.ab-pager__btn:disabled,.ab-pager__btn.is-off{opacity:.4;pointer-events:none}
.ab-pager__gap{color:var(--faint);padding:0 2px}

/* ---------- 6) geri bildirim: modal · toast · alert · boş durum · iskelet ---------- */
.ab-modal-scrim[hidden]{display:none}
.ab-modal{max-height:calc(100vh - 40px);overflow-y:auto}
.ab-modal--wide{max-width:620px}
.ab-modal--lg{max-width:820px}
.ab-modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ab-modal__title{margin:0;font-size:16px;font-weight:800;letter-spacing:-.01em}
.ab-modal__body{font-size:13.5px;line-height:1.55;color:var(--muted)}
.ab-modal__body b,.ab-modal__body strong{color:var(--text)}
.ab-modal__foot{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.ab-modal__close{border:0;background:transparent;color:var(--faint);cursor:pointer;padding:2px;display:flex;flex:0 0 auto}
.ab-modal__close:hover{color:var(--text)}
.ab-toast[hidden]{display:none}
.ab-toast{animation:ab-toast-in .18s ease-out}
.ab-toast--pos{background:var(--pos);color:#fff}
.ab-toast--neg{background:var(--neg);color:#fff}
@keyframes ab-toast-in{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
.ab-alert__body{flex:1;min-width:0}
.ab-alert__title{display:block;font-weight:800;color:var(--text);margin-bottom:2px}
.ab-alert__actions{display:flex;gap:8px;flex:0 0 auto;align-items:center}
.ab-alert--plain::before{display:none}
.ab-alert--flat{background:transparent}
.ab-empty--sm{padding:28px 20px}
.ab-empty--flat::before{display:none}
.ab-empty__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:4px}
.ab-skeleton{position:relative;overflow:hidden}
.ab-skeleton::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--text) 6%,transparent),transparent);
  transform:translateX(-100%);animation:ab-shimmer 1.4s infinite}
@keyframes ab-shimmer{100%{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){
  .ab-skeleton::after{animation:none}.ab-page{animation:none}.ab-auth{animation:none}.ab-toast{animation:none}
}

/* ---------- 7) alan bileşenleri: defter · huni · KPI şeridi · kod · OTP · şifre ---------- */
.ab-ledger{display:flex;flex-direction:column}
.ab-ledger .ab-ledger__row:first-child{border-top:0}
.ab-funnel__step:last-child{border-right:0}
@media (max-width:720px){
  .ab-funnel__step{border-right:0;border-bottom:1px solid var(--line)}
  .ab-funnel__step:last-child{border-bottom:0}
  .ab-kpistrip>.ab-kpi{border-right:0;border-bottom:1px solid var(--line)}
  .ab-kpistrip>.ab-kpi:last-child{border-bottom:0}
}
.ab-kpistrip>.ab-kpi:last-child{border-right:0}
.ab-tier-row__rate{font:600 13px var(--mono);font-variant-numeric:tabular-nums}
.ab-track--tall{height:8px;border-radius:4px}
.ab-track>span.is-gray{background:var(--chart-gray)}
.ab-copyfield--wrap>span{white-space:pre-wrap;overflow-wrap:anywhere;text-overflow:clip}
.ab-copyfield>button:hover{background:var(--panel2)}
.ab-pre--sm{font:11.5px/1.5 var(--mono)}
.ab-pre--tall{max-height:340px;overflow:auto}
.ab-code--block{display:block;width:fit-content;max-width:100%;overflow-x:auto}
.ab-badge--flat::before{display:none}
.ab-badge--lg{padding:5px 12px;font-size:12.5px}
.ab-otp input:focus{border-color:var(--accent)}
@media (max-width:400px){.ab-otp{gap:6px}.ab-otp input{height:46px;font-size:19px}}
.ab-pwlabel{font-size:12px;font-weight:700;color:var(--muted)}
.ab-pwlabel.is-weak{color:var(--neg)}
.ab-pwlabel.is-fair{color:var(--warn)}
.ab-pwlabel.is-strong{color:var(--pos)}
.ab-pwmeter.is-weak span:nth-child(n+2),.ab-pwmeter.is-fair span:nth-child(n+3){background:var(--sunk)}

/* ---------- 8) yardımcı sınıflar (handoff diliyle; yalnız yerleşim/renk) ---------- */
.ab-flex{display:flex;align-items:center;gap:8px}
.ab-flex--start{align-items:flex-start}
.ab-col{display:flex;flex-direction:column}
.ab-wrap{flex-wrap:wrap}
.ab-grow{flex:1;min-width:0}
.ab-auto{margin-left:auto}
.ab-between{justify-content:space-between}
.ab-center{text-align:center}
.ab-right{text-align:right}
.ab-nowrap{white-space:nowrap}
.ab-ellipsis{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ab-gap-1{gap:4px}.ab-gap-2{gap:8px}.ab-gap-3{gap:12px}.ab-gap-4{gap:16px}
.ab-mt-1{margin-top:4px}.ab-mt-2{margin-top:8px}.ab-mt-3{margin-top:12px}.ab-mt-4{margin-top:16px}
.ab-mb-1{margin-bottom:4px}.ab-mb-2{margin-bottom:8px}.ab-mb-3{margin-bottom:12px}.ab-mb-4{margin-bottom:16px}
.ab-text-muted{color:var(--muted)}
.ab-text-faint{color:var(--faint)}
.ab-text-pos{color:var(--pos)}
.ab-text-neg{color:var(--neg)}
.ab-text-warn{color:var(--warn)}
.ab-text-info{color:var(--info)}
.ab-text-accent{color:var(--accent)}
.ab-fw-600{font-weight:600}.ab-fw-700{font-weight:700}.ab-fw-800{font-weight:800}
.ab-icon{flex:0 0 auto}
.ab-sronly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- 9) handoff kaskad düzeltmeleri (yukarıdaki blok DEĞİŞTİRİLMEDEN) ---------- */
/* handoff'ta @media(max-width:720px){.ab-topbar__logout{display:none}} var; ama .ab-btn{display:inline-flex}
   kuralı DAHA SONRA geldiği için hiç uygulanmıyordu. Bilerek GÖRÜNÜR bırakıyoruz: mobilde
   kenar çubuğunda çıkış yok, gizlersek üye çıkış yapamaz. */
@media (max-width:720px){.ab-topbar__logout{display:inline-flex}}

/* ---------- 10) KADEME (tier) RENKLERİ ----------
   Komisyon kademesi (Başlangıç / Bronze / Silver / Gold / Platinum / Diamond /
   Özel Oran) panelde nötr griydi; artık her kademe kendi metaline döner.
   YALNIZ kademe öğelerine uygulanır: gri tema tokenları (--text/--muted/--faint)
   ve durum renkleri (--pos/--neg/--warn/--info) DEĞİŞMEZ, grafik renkleriyle de
   karışmaz. Değerler WCAG AA (≥4.5:1) hedefiyle seçildi; ölçüm zemini açık
   temada kart (--panel #FFFFFF), koyu temada kart (#1C1C1C) ve her ikisinde
   kendi tonunun %14 haplı zemini. --tier-custom marka accent'inden türer:
   açık temada altın/sarı accent'ler tek başına AA'yı geçmediği için metin
   rengine doğru koyulaştırılır, koyu temada accent doğrudan kullanılır. */
:root{
  --tier-starter:#65615A;
  --tier-bronze:#94571F;
  --tier-silver:#5F6875;
  --tier-gold:#7F5C07;
  --tier-platinum:#4A6473;
  --tier-diamond:#1C6C9C;
  --tier-custom:color-mix(in srgb,var(--accent) 55%,#1B1A17);
}
[data-theme="dark"]{
  --tier-starter:#A8A49B;
  --tier-bronze:#D9995B;
  --tier-silver:#C0C7D0;
  --tier-gold:#E6B84A;
  --tier-platinum:#9FC3D9;
  --tier-diamond:#7CD1F5;
  --tier-custom:var(--accent);
}

/* Her sınıf yerel --tier-c'yi kurar; alttaki kurallar hep onu okur.
   tierKey() boş dönerse view sınıf basmaz → öğe eskisi gibi nötr kalır. */
.ab-tier--starter{--tier-c:var(--tier-starter);color:var(--tier-starter)}
.ab-tier--bronze{--tier-c:var(--tier-bronze);color:var(--tier-bronze)}
.ab-tier--silver{--tier-c:var(--tier-silver);color:var(--tier-silver)}
.ab-tier--gold{--tier-c:var(--tier-gold);color:var(--tier-gold)}
.ab-tier--platinum{--tier-c:var(--tier-platinum);color:var(--tier-platinum)}
.ab-tier--diamond{--tier-c:var(--tier-diamond);color:var(--tier-diamond)}
.ab-tier--custom{--tier-c:var(--tier-custom);color:var(--tier-custom)}

/* Kademe merdiveni: satır rengi + nokta. is-current'ın accent arka planı ve
   çerçevesi KORUNUR; ulaşılmamış kademe içi boş halka, ulaşılan/aktif dolu
   nokta olur (eski muted↔text ayrımının yerini alan hiyerarşi işareti). */
.ab-tier-row[class*="ab-tier--"]{color:var(--tier-c)}
.ab-tier-row[class*="ab-tier--"]::before{background:transparent;box-shadow:inset 0 0 0 2px var(--tier-c)}
.ab-tier-row.is-reached[class*="ab-tier--"]::before,
.ab-tier-row.is-current[class*="ab-tier--"]::before{background:var(--tier-c);box-shadow:none}

/* Rozet / kod hapı */
.ab-badge[class*="ab-tier--"]{background:color-mix(in srgb,var(--tier-c) 14%,transparent);color:var(--tier-c)}
.ab-badge[class*="ab-tier--"]::before{background:var(--tier-c)}
.ab-code[class*="ab-tier--"]{background:color-mix(in srgb,var(--tier-c) 14%,transparent);color:var(--tier-c);border:1px solid color-mix(in srgb,var(--tier-c) 30%,transparent)}

/* Daha spesifik nötr kuralları ezmesi gereken yerler */
.ab-rowcard__meta b[class*="ab-tier--"]{color:var(--tier-c)}
