/* ==========================================================================
   STD TASARIM SİSTEMİ — "ZİRVE" v2 · BİLEŞENLER
   Hedef yol: wwwroot/css/components.css (tokens.css'ten SONRA, bridge.css'ten ÖNCE)
   Ad kuralı: .blok  .blok__oge  .blok--degisken  durum: .is-* veya ARIA özniteliği
   Kırılım: 768 (tablet) · 1024 (küçük dizüstü) · 1280 (masaüstü) · 1440 (geniş)
   Sayfaya özel CSS yazmadan önce buradaki sınıfları kullanın. SPEC.md §11.
   Bölüm 0–27: tasarım başvuru uygulaması (SPEC §12).
   Bölüm 28+: bu kod tabanının uygulama katmanı (düzenler, açılır menüler, giriş
   düzeni, public sayfa başlığı, ızgaralar, doğrulama sınıfları). Sınıf kataloğu:
   scratchpad/design/final/IMPLEMENTATION-WEB.md.
   Ham hex renk YALNIZ tokens.css'te; burada yalnız jeton kullanılır (üretilmiş SVG hariç).
   ========================================================================== */

/* ------------------------------------------------------------------ 0. TEMEL */
*,*::before,*::after{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;background:var(--bg-surface);color:var(--text);font:var(--t-body);font-feature-settings:var(--font-features);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}
:where(ul[class],ol[class]){list-style:none;margin:0;padding:0}
.bi{line-height:1;vertical-align:-.125em}
.num,.table td.num,.money{font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--ctx-focus,var(--focus));outline-offset:2px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:16px;top:-120px;z-index:var(--z-tooltip);padding:12px 16px;border-radius:var(--r-md);background:var(--bg-surface);color:var(--text);font:var(--t-label)}
.skip-link:focus{top:12px;box-shadow:var(--e3)}   /* gölge yalnız odakta: gizliyken sayfa üstüne sızmasın */
[hidden]{display:none!important}
.validation-summary-valid{display:none!important}   /* boş ASP.NET doğrulama özeti görünmez */

/* ------------------------------------------------------------------ 1. TİPOGRAFİ */
.t-display-1{font:var(--t-display-1);letter-spacing:var(--ls-display)}
@media (min-width:1280px){.t-display-1{font-size:6rem}}
.t-display-2{font:var(--t-display-2);letter-spacing:var(--ls-display)}
.t-h1{font:var(--t-h1);letter-spacing:var(--ls-display)}
.t-h2{font:var(--t-h2)}
.t-h3{font:var(--t-h3)}
.t-h4{font:var(--t-h4);letter-spacing:-.01em}
.t-h5{font:var(--t-h5)}
.t-title{font:var(--t-title);letter-spacing:-.01em}
.t-lead{font:var(--t-lead)}
.t-body-lg{font:var(--t-body-lg)}
.t-body{font:var(--t-body)}
.t-meta{font:var(--t-meta)}
.t-sm{font:var(--t-sm)}
.t-caption{font:var(--t-caption)}
.t-micro{font:var(--t-micro)}
.t-label{font:var(--t-label)}
.t-stat-xl{font:var(--t-stat-xl)} .t-stat-lg{font:var(--t-stat-lg)} .t-stat-md{font:var(--t-stat-md)} .t-stat-sm{font:var(--t-stat-sm)}
.text-2{color:var(--ctx-text-2,var(--text-2))} .text-3{color:var(--ctx-text-3,var(--text-3))}
.unit{font-family:var(--font-display);font-weight:600;font-size:var(--unit-size);color:var(--ctx-text-2,var(--text-2));margin-left:.12em}
.pos{color:var(--income)} .neg{color:var(--expense)}
@media (max-width:767.98px){.t-display-1{font-size:3.25rem}.t-h1{font-size:2.25rem}.t-h2{font-size:1.875rem}}

/* ------------------------------------------------------------------ 2. TON BAĞLAMI
   Koyu yüzey listesi KAPALIDIR: site başlığı, hero, faaliyet detay başlığı, alt bilgi,
   yönetim yan menüsü, toplu işlem çubuğu, bildirim, araç ipucu, giriş foto paneli.
   Sıradan açık görünümün içine .tone-dark kart KONMAZ. */
:root,.tone-light{--ctx-focus:var(--focus);--ctx-surface:var(--bg-surface);--ctx-warn-text:var(--warning-text);--ctx-avatar-bg:var(--g150);--ctx-avatar-fg:var(--g700);--ctx-text:var(--text);--ctx-text-2:var(--text-2);--ctx-text-3:var(--text-3);--ctx-line:var(--border);--ctx-meter-on:var(--g900);--ctx-meter-off:var(--g200);--ctx-mon:var(--brand-text);--ctx-track:var(--g150);--ctx-fill:var(--g900);--ctx-warn:var(--warning-mark)}
.tone-dark{--ctx-focus:var(--focus-on-dark);--ctx-surface:var(--chrome);--ctx-warn-text:var(--amb300);--ctx-avatar-bg:var(--n700);--ctx-avatar-fg:#fff;--ctx-text:#fff;--ctx-text-2:var(--on-chrome-2);--ctx-text-3:var(--on-chrome-3);--ctx-line:var(--chrome-line);--ctx-meter-on:var(--signal);--ctx-meter-off:var(--n600);--ctx-mon:var(--brand-on-dark);--ctx-track:var(--n700);--ctx-fill:#fff;--ctx-warn:var(--signal);color:var(--on-chrome)}

/* ------------------------------------------------------------------ 3. YERLEŞİM */
.container{width:min(var(--container),100% - 2*var(--gutter));margin-inline:auto}
.stack{display:grid;gap:var(--stack-gap,16px);align-content:start}
.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cluster-gap,8px)}
.split{display:flex;align-items:center;justify-content:space-between;gap:16px}
.divider{height:1px;background:var(--border);border:0;margin:0}

/* ------------------------------------------------------------------ 4. DÜĞME */
.btn{--btn-bg:transparent;--btn-fg:var(--text);--btn-bd:transparent;--btn-bg-h:var(--btn-bg);--btn-bg-a:var(--btn-bg-h);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--btn-h);padding:0 18px;
  border:1px solid var(--btn-bd);border-radius:var(--r-md);background:var(--btn-bg);color:var(--btn-fg);
  font:var(--t-button);letter-spacing:-.005em;white-space:nowrap;text-decoration:none;cursor:pointer;user-select:none;
  transition:background-color var(--d-fast) var(--ease-standard),border-color var(--d-fast) var(--ease-standard),color var(--d-fast) var(--ease-standard)}
.btn:hover{background:var(--btn-bg-h)}
.btn:active{background:var(--btn-bg-a)}
.btn .bi{font-size:1.125rem}
.btn--primary{--btn-bg:var(--primary);--btn-fg:var(--on-primary);--btn-bg-h:var(--primary-hover);--btn-bg-a:var(--primary-press)}
.btn--brand{--btn-bg:var(--brand);--btn-fg:#fff;--btn-bg-h:var(--brand-hover);--btn-bg-a:var(--brand-press)}
.btn--outline{--btn-bg:var(--bg-surface);--btn-bd:var(--border-strong);--btn-bg-h:var(--bg-subtle);box-shadow:var(--e1)}
.btn--outline:hover{border-color:var(--g300)}
.btn--ghost{--btn-bg-h:var(--bg-muted)}
.btn--danger{--btn-bg:var(--danger);--btn-fg:#fff;--btn-bg-h:var(--danger-hover);--btn-bg-a:var(--red800)}
.btn--danger-ghost{--btn-fg:var(--danger-text);--btn-bg-h:var(--danger-soft)}
.btn--inverse{--btn-bg:#fff;--btn-fg:var(--g900);--btn-bg-h:var(--g100);--btn-bg-a:var(--g150)}
.btn--outline-inverse{--btn-bg:rgba(255,255,255,.06);--btn-bd:rgba(255,255,255,.36);--btn-fg:#fff;--btn-bg-h:rgba(255,255,255,.12)}
.btn--ghost-inverse{--btn-fg:#fff;--btn-bg-h:rgba(255,255,255,.1)}
.btn--lg{min-height:var(--btn-h-lg);padding:0 24px;font-size:1.0625rem}
.btn--xl{min-height:var(--btn-h-xl);padding:0 28px;font-size:1.125rem}
.btn--block{display:flex;width:100%}
.btn--icon{width:var(--btn-h);padding:0}
.btn[disabled],.btn[aria-disabled="true"]{--btn-bg:var(--g100);--btn-bg-h:var(--g100);--btn-fg:var(--text-disabled);--btn-bd:transparent;box-shadow:none;cursor:not-allowed}
.btn.is-loading{pointer-events:none}
.btn.is-loading::before{content:"";width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* İkon düğmesi — her zaman 44×44 (mobil 48), aria-label ŞART */
.icon-btn{position:relative;display:inline-grid;place-items:center;flex:none;width:var(--touch);height:var(--touch);border:0;border-radius:var(--r-md);background:transparent;color:var(--text-2);font-size:1.25rem;cursor:pointer;transition:background-color var(--d-fast),color var(--d-fast)}
.icon-btn:hover{background:var(--bg-muted);color:var(--text)}
.icon-btn--outline{border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text)}
.icon-btn--inverse{color:#fff}
.icon-btn--inverse:hover{background:rgba(255,255,255,.1);color:#fff}
.icon-btn--glass{background:rgba(11,14,18,.42);color:#fff;backdrop-filter:blur(6px)}
.icon-btn--danger:hover{background:var(--danger-soft);color:var(--danger-text)}
.icon-btn__pip{position:absolute;top:9px;right:9px;width:9px;height:9px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 2px var(--ctx-surface)}

/* Bölünmüş düğme ("+ Yeni") */
.split-btn{display:inline-flex}
.split-btn>.btn:first-child{border-radius:var(--r-md) 0 0 var(--r-md)}
.split-btn>.btn:last-child{border-radius:0 var(--r-md) var(--r-md) 0;border-left:1px solid rgba(255,255,255,.2);width:44px;padding:0}

/* Bağlantı — mürekkep + alt çizgi (kırmızı değil) */
.link{color:var(--text-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--g300)}
.link:hover{text-decoration-color:currentColor;text-decoration-thickness:2px}
.link-arrow{display:inline-flex;align-items:center;gap:8px;min-height:var(--touch);font:var(--t-label);font-size:1rem;color:var(--ctx-text,var(--text));white-space:nowrap}
.link-arrow .bi{transition:transform var(--d-fast) var(--ease-standard)}
.link-arrow:hover{text-decoration:underline;text-underline-offset:4px}
.link-arrow:hover .bi{transform:translateX(3px)}

/* Klavye kısayolu */
.kbd{display:inline-flex;align-items:center;gap:2px;height:22px;padding:0 6px;border-radius:6px;border:1px solid var(--border-strong);border-bottom-width:2px;background:var(--bg-surface);font:var(--t-micro);color:var(--text-2);white-space:nowrap}
.kbd--inverse,.btn--primary .kbd,.btn--danger .kbd,.btn--brand .kbd{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.24);color:rgba(255,255,255,.9)}
.btn .kbd{margin-left:4px;height:20px}

/* ------------------------------------------------------------------ 5. ROZET, ÇİP */
.badge{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:var(--r-sm);font:600 .8125rem/1 var(--font-body);white-space:nowrap;background:var(--g100);color:var(--g700)}
.badge .bi{font-size:.875rem}
.badge__dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.badge--success{background:var(--success-soft);color:var(--success-text)}
.badge--warning{background:var(--warning-soft);color:var(--warning-text)}
.badge--danger{background:var(--danger-soft);color:var(--danger-text)}
.badge--info{background:var(--info-soft);color:var(--info-text)}
.badge--brand{background:var(--brand-soft);color:var(--brand-text)}
.badge--dark{background:var(--g900);color:#fff}
.badge--outline{background:transparent;box-shadow:inset 0 0 0 1px var(--border-strong);color:var(--text-2)}
/* yalnız .tone-dark içinde */
.badge--glass{background:rgba(255,255,255,.1);color:#fff}
.badge--live{background:rgba(61,203,134,.14);color:var(--success-on-dark)}
.badge--signal{background:rgba(255,184,28,.14);color:var(--amb300)}

.chip{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:var(--touch);padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--border-strong);background:var(--bg-surface);font:500 .9375rem/1 var(--font-body);color:var(--text);white-space:nowrap;cursor:pointer;transition:background-color var(--d-fast),border-color var(--d-fast)}
.chip:hover{border-color:var(--g300);background:var(--bg-subtle)}
.chip .bi{font-size:1rem;color:var(--text-2)}
.chip__count{font-weight:600;color:var(--text-3)}
.chip[aria-pressed="true"],.chip.is-on{background:var(--g900);border-color:var(--g900);color:#fff}
.chip[aria-pressed="true"] .chip__count,.chip.is-on .chip__count,.chip.is-on .bi{color:var(--n200)}
.chip--filter.is-set{background:var(--selected);border-color:var(--blu300);color:var(--selected-text)}
.chip--filter.is-set .bi{color:var(--selected-text)}
.chip__key{font:var(--t-micro);color:var(--text-3);margin-left:2px}
.chip.is-on .chip__key{color:var(--n300)}

/* ------------------------------------------------------------------ 6. FORM */
.field{display:grid;gap:6px;align-content:start;min-width:0}
.field>*{min-width:0}
.field__label{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;font:var(--t-label);color:var(--text)}
.field__req{color:var(--danger-text);font-weight:700}
.field__opt{font:500 .8125rem/1 var(--font-body);color:var(--text-3)}
.field__help{font:var(--t-sm);color:var(--text-2)}
.field__error{display:flex;align-items:flex-start;gap:6px;font:600 .875rem/1.45 var(--font-body);color:var(--danger-text)}
.field__error .bi{margin-top:2px}
.field__note{display:flex;align-items:center;gap:6px;font:500 .875rem/1.4 var(--font-body);color:var(--success-text)}

.input,.select,.textarea{width:100%;min-width:0;height:var(--input-h);padding:0 14px;border:1px solid var(--border-input);border-radius:var(--r-md);background:var(--bg-surface);font:400 1rem/1.25 var(--font-body);color:var(--text);transition:border-color var(--d-fast),box-shadow var(--d-fast)}
.input::placeholder,.textarea::placeholder{color:var(--text-3)}
.input:hover,.select:hover,.textarea:hover{border-color:var(--g500)}
.input:focus,.select:focus,.textarea:focus,.input.is-focus{outline:0;border-color:var(--focus);box-shadow:var(--focus-ring)}
.input[aria-invalid="true"],.select[aria-invalid="true"],.textarea[aria-invalid="true"],.input.is-error,.input-validation-error{border-color:var(--danger);box-shadow:var(--error-ring)}
.input:disabled,.select:disabled,.textarea:disabled{background:var(--bg-canvas);border-color:var(--g200);color:var(--text-disabled)}
.input.is-prefilled{background:var(--success-soft);border-color:var(--grn100)}
.select{appearance:none;padding-right:40px;background:var(--bg-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%234E5663' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E") no-repeat right 14px center}
.textarea{height:auto;min-height:112px;padding:12px 14px;line-height:1.6;resize:vertical}
/* ön/son ekli giriş: ikon, birim */
.affix{position:relative;display:flex;align-items:center}
.affix>.input{padding-left:44px}
.affix--unit>.input{padding-left:14px;padding-right:52px}
.affix--both>.input{padding-left:44px;padding-right:52px}
.affix__icon{position:absolute;left:14px;font-size:1.125rem;color:var(--text-2);pointer-events:none}
.affix__unit{position:absolute;right:14px;font:600 .9375rem/1 var(--font-body);color:var(--text-2);pointer-events:none}
.affix__btn{position:absolute;right:2px}
/* tarih + saat çifti */
.datetime{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:8px}
/* büyük tutar alanı (hızlı hareket) */
.amount{display:flex;align-items:baseline;gap:8px;height:68px;padding:0 16px;border:1px solid var(--border-input);border-radius:var(--r-md);background:var(--bg-surface)}
.amount:focus-within,.amount.is-focus{border-color:var(--focus);box-shadow:var(--focus-ring)}
.amount.is-prefilled{background:var(--success-soft);border-color:var(--grn100)}
.amount__input{flex:1;width:0;min-width:0;border:0;background:transparent;font:600 2.625rem/66px var(--font-display);font-variant-numeric:tabular-nums;color:var(--text);outline:0;padding:0}
.amount__cur{font:600 1.5rem/1 var(--font-display);color:var(--text-2)}
/* onay kutusu, radyo — gerçek girdi, appearance:none */
.check,.radio{appearance:none;flex:none;display:inline-grid;place-items:center;width:22px;height:22px;margin:0;border:1.5px solid var(--border-input);background:var(--bg-surface);cursor:pointer}
.check{border-radius:6px}
.radio{border-radius:50%}
.check:checked,.check.is-on{background:var(--g900) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M13.485 3.929a1 1 0 0 1 0 1.414l-6.364 6.364a1 1 0 0 1-1.414 0L2.515 8.515A1 1 0 1 1 3.93 7.1l2.485 2.486 5.657-5.657a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E") center/14px no-repeat;border-color:var(--g900)}
.check:indeterminate{background:var(--g900) linear-gradient(#fff,#fff) center/10px 2px no-repeat;border-color:var(--g900)}
.radio:checked{border:7px solid var(--g900)}
.check-row{display:flex;align-items:center;gap:12px;min-height:var(--touch);font:var(--t-body);cursor:pointer}
.check-row__sub{display:block;font:var(--t-sm);color:var(--text-2)}
/* anahtar: <input type=checkbox role=switch class=switch> */
.switch{appearance:none;flex:none;position:relative;width:46px;height:28px;margin:0;border-radius:99px;background:var(--g400);cursor:pointer;transition:background-color var(--d-fast)}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform var(--d-fast) var(--ease-standard)}
.switch:checked,.switch.is-on{background:var(--success)}
.switch:checked::after,.switch.is-on::after{transform:translateX(18px)}
/* segment: role=radiogroup; her öğe <label><input type=radio class=sr-only><span>…</span></label> */
.seg{display:inline-flex;padding:4px;gap:4px;border-radius:var(--r-md);background:var(--bg-muted)}
.seg--block{display:flex;width:100%}
.seg--block>.seg__item{flex:1}
.seg__item{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:9px;font:600 .9375rem/1 var(--font-body);color:var(--text-2);white-space:nowrap;cursor:pointer}
.seg__item:has(input:checked),.seg__item.is-on{background:var(--bg-surface);color:var(--text);box-shadow:var(--e1)}
.seg__item:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:1px}
.seg--direction .seg__item--income:has(input:checked),.seg--direction .seg__item--income.is-on{background:var(--grn700);color:#fff}
.seg--direction .seg__item--expense:has(input:checked),.seg--direction .seg__item--expense.is-on{background:var(--red600);color:#fff}
.seg--inverse{background:rgba(255,255,255,.08)}
.seg--inverse .seg__item{color:var(--on-chrome-2)}
.seg--inverse .seg__item.is-on,.seg--inverse .seg__item:has(input:checked){background:#fff;color:var(--g900)}
/* zorluk seçici */
.diff-pick{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.diff-pick__opt{display:grid;justify-items:center;gap:8px;padding:12px 4px;min-height:72px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg-surface);font:600 .875rem/1.2 var(--font-body);color:var(--text-2);cursor:pointer;text-align:center}
.diff-pick__opt.is-on,.diff-pick__opt:has(input:checked){border-color:var(--g900);box-shadow:inset 0 0 0 1px var(--g900);color:var(--text);background:var(--bg-subtle)}
/* hesap kartı seçici (canlı bakiye) */
.acct-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.acct-pick__opt{display:grid;gap:4px;padding:12px 14px;min-height:64px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg-surface);cursor:pointer}
.acct-pick__opt b{display:flex;align-items:center;gap:8px;font:600 .9375rem/1.2 var(--font-body)}
.acct-pick__opt span{font:500 .875rem/1.2 var(--font-body);color:var(--text-2);font-variant-numeric:tabular-nums}
.acct-pick__opt.is-on,.acct-pick__opt:has(input:checked){border-color:var(--g900);box-shadow:inset 0 0 0 1px var(--g900);background:var(--bg-subtle)}
/* hata özeti */
.error-summary{display:grid;gap:8px;padding:14px 16px;border-radius:var(--r-md);background:var(--danger-soft);border:1px solid var(--danger-line);color:var(--danger-text)}
.error-summary__title{display:flex;gap:10px;align-items:center;font:600 1rem/1.4 var(--font-body)}
.error-summary a{font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* ------------------------------------------------------------------ 7. SEKME */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}
.tabs__tab{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 14px;border:0;background:none;font:600 .9375rem/1 var(--font-body);color:var(--text-2);white-space:nowrap;cursor:pointer}
.tabs__tab:hover{color:var(--text)}
.tabs__tab[aria-selected="true"],.tabs__tab.is-on{color:var(--text)}
.tabs__tab[aria-selected="true"]::after,.tabs__tab.is-on::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--g900)}
.tabs__count{font:var(--t-micro);background:var(--g100);color:var(--g700);padding:4px 7px;border-radius:6px}
.tabs__tab.is-on .tabs__count,.tabs__tab[aria-selected="true"] .tabs__count{background:var(--g900);color:#fff}

/* ------------------------------------------------------------------ 8. KART, OLGU IZGARASI */
.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--e1);min-width:0}
.card--interactive{transition:box-shadow var(--d-fast),border-color var(--d-fast)}
.card--interactive:hover{box-shadow:var(--e2);border-color:var(--g200)}
.card__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 0}
.card__title{font:var(--t-h4);letter-spacing:-.01em}
.card__sub{font:var(--t-sm);color:var(--text-2)}
.card__body{padding:16px 20px 20px}
.card__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--border);background:var(--bg-subtle);border-radius:0 0 var(--r-lg) var(--r-lg)}
/* olgu ızgarası: kart-içinde-kart yerine ince çizgi + mürekkep üst çizgi */
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--facts-min,150px),1fr));border-top:2px solid var(--rule)}
.facts__item{display:grid;gap:8px;align-content:start;padding:16px 20px 16px 0;border-bottom:1px solid var(--border)}
.facts__label{display:flex;align-items:center;gap:8px;font:500 .875rem/1.3 var(--font-body);color:var(--text-2)}
.facts__label .bi{color:var(--text-3)}
.facts__value{font:var(--t-stat-md);white-space:nowrap}

/* ------------------------------------------------------------------ 9. FAALİYET ÖĞELERİ (sistemin imzası) */
/* Tarih bloğu — kapak fotoğrafının yerini tutar. Ay adı sunucuda tr-TR büyük harfle yazılır. */
.date-block{display:grid;justify-items:start;align-content:start;line-height:1;color:var(--ctx-text,var(--text))}
.date-block__day{font:700 2.75rem/.9 var(--font-display);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.date-block__mon{font:var(--t-date-mon);letter-spacing:var(--ls-mon);color:var(--ctx-mon);margin-top:6px}
.date-block__wd{font:500 .875rem/1.2 var(--font-body);color:var(--ctx-text-2,var(--text-2));margin-top:4px;white-space:nowrap}
.date-block--sm .date-block__day{font-size:2rem}
.date-block--sm .date-block__mon{font-size:.875rem;margin-top:4px}
.date-block--lg .date-block__day{font-size:4rem}
.date-block--lg .date-block__mon{font-size:1.125rem}
.date-block--xl .date-block__day{font-size:6rem}
.date-block--xl .date-block__mon{font-size:1.5rem;margin-top:10px}
.date-block--xl .date-block__wd{font-size:1rem;margin-top:8px}

/* Zorluk ölçeği — role="img" aria-label="Zorluk 2/5, Orta"; trafik ışığı rengi YOK */
.meter{display:inline-flex;align-items:center;gap:10px;color:var(--ctx-meter-on)}
.meter__bars{display:inline-flex;gap:3px}
.meter__bars i{width:9px;height:16px;border-radius:2px;background:var(--ctx-meter-off);transform:skewX(-14deg)}
.meter__bars i.is-on{background:currentColor}
.meter__label{font:600 .9375rem/1 var(--font-body);color:var(--ctx-text,var(--text));white-space:nowrap}
.meter--sm .meter__bars i{width:7px;height:12px}

/* Kontenjan — %80+ veya son kayda <3 gün: .is-warn (amb600 çubuk + amb700 metin) */
.capacity{display:grid;gap:8px}
.capacity__row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font:500 .875rem/1.2 var(--font-body);color:var(--ctx-text-2,var(--text-2))}
.capacity__row b{font:600 1.375rem/1 var(--font-display);color:var(--ctx-text,var(--text))}
.capacity__left{font-weight:600;color:var(--ctx-text-2)}
.capacity.is-warn .capacity__left{color:var(--ctx-warn-text)}
.capacity__bar{height:6px;border-radius:99px;background:var(--ctx-track);overflow:hidden}
.capacity__bar>i{display:block;height:100%;border-radius:99px;background:var(--ctx-fill)}
.capacity.is-warn .capacity__bar>i{background:var(--ctx-warn)}

/* İstatistik: etiket + değer + birim. Değer yoksa bütün .stat basılmaz (boş hücre yok). */
.stats{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0}
.stat{display:grid;gap:6px;align-content:start;min-width:0}
.stat__label{display:flex;align-items:center;gap:6px;font:500 .875rem/1.2 var(--font-body);color:var(--ctx-text-2,var(--text-2));white-space:nowrap}
.stat__label .bi{color:var(--ctx-text-3,var(--text-3));font-size:.9375rem}
.stat__value{margin:0;font:var(--t-stat-sm);color:var(--ctx-text,var(--text));white-space:nowrap}
.stat--md .stat__value{font:var(--t-stat-md)}
.stat--lg .stat__value{font:var(--t-stat-lg)}
.stats--divided{gap:0}
.stats--divided>.stat{padding:0 20px;border-left:1px solid var(--ctx-line,var(--border))}
.stats--divided>.stat:first-child{padding-left:0;border-left:0}

/* Fikstür listesi (public, "Sonraki pazarlar", faaliyet planı) */
.fixture{border-top:2px solid var(--rule)}
.fixture__row{border-bottom:1px solid var(--border)}
.fixture__link{display:grid;grid-template-columns:72px minmax(0,1fr) 176px 24px;grid-template-areas:"date main status go" "date facts status go";column-gap:24px;row-gap:12px;align-items:center;padding:18px 12px;transition:background-color var(--d-fast)}
.fixture__link:hover,.fixture__link.is-hover{background:var(--bg-subtle)}
.fixture__link:hover .fixture__title,.fixture__link.is-hover .fixture__title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--brand)}
.fixture__date{grid-area:date;align-self:start}
.fixture__main{grid-area:main;min-width:0;align-self:end}
.fixture__title{font:var(--t-title);letter-spacing:-.01em;text-wrap:balance}
.fixture__meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;font:var(--t-meta);color:var(--text-2)}
.fixture__meta span{display:inline-flex;gap:6px;align-items:center}
.fixture__meta .bi{color:var(--text-3)}
.fixture__facts{grid-area:facts;display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;align-self:start}
.fixture__status{grid-area:status;display:grid;gap:8px;justify-items:start}
.fixture__status small{font:500 .875rem/1.2 var(--font-body);color:var(--text-2)}
.fixture__go{grid-area:go;color:var(--text-3);font-size:1.125rem}
@media (min-width:1280px){
  .fixture__link{grid-template-columns:88px minmax(0,1fr) 296px 132px 168px 24px;grid-template-areas:"date main stats meter status go";row-gap:0}
  .fixture__main{align-self:center}
  .fixture__facts{display:contents}
  .fixture__facts>.stats{grid-area:stats}
  .fixture__facts>.meter{grid-area:meter}
}
@media (max-width:767.98px){
  .fixture{border-top-width:2px}
  .fixture__link{grid-template-columns:56px minmax(0,1fr);grid-template-areas:"date main" "date facts" "date status";row-gap:12px;column-gap:16px;padding:16px 0}
  .fixture__main{align-self:start}
  .fixture__title{font:var(--t-title-sm)}
  .fixture__go{display:none}
  .fixture__status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:12px;border-top:1px dashed var(--border-strong)}
  .fixture__facts{gap:12px 20px}
}

/* Faaliyet kartı (dar web ve mobil karşılığı) */
.event-card{display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px 16px;padding:16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--e1)}
.event-card__title{font:var(--t-title-sm)}
.event-card__meta{font:var(--t-meta);color:var(--text-2);margin-top:2px}
.event-card__facts{grid-column:2;display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:10px}
.event-card__foot{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font:500 .875rem/1.3 var(--font-body);color:var(--text-2)}

/* Sıradaki faaliyet bileti — hero'nun altına taşar */
.ticket{display:grid;grid-template-columns:152px minmax(0,1fr) 256px;grid-template-areas:"date main cta" "date stats cta";background:var(--bg-surface);color:var(--text);border-radius:var(--r-xl);box-shadow:var(--e4);overflow:hidden}
.ticket__date{grid-area:date;display:grid;align-content:center;padding:24px 24px 24px 28px;border-right:1.5px dashed var(--g200)}
.ticket__main{grid-area:main;display:grid;gap:10px;align-content:end;padding:24px 28px 8px;min-width:0}
.ticket__tags{display:flex;flex-wrap:wrap;gap:8px}
.ticket__title{font:700 1.875rem/1.08 var(--font-display);text-wrap:balance}
.ticket__meta{display:flex;flex-wrap:wrap;gap:4px 14px;font:var(--t-meta);color:var(--text-2)}
.ticket__meta span{display:inline-flex;gap:6px;align-items:center}
.ticket__meta .bi{color:var(--text-3)}
.ticket__stats{grid-area:stats;padding:12px 28px 24px;align-self:start}
.ticket__stats .stats{flex-wrap:nowrap}
.ticket__deadline{display:flex;align-items:center;gap:8px;font:600 .875rem/1.3 var(--font-body);color:var(--warning-text)}
.date-block__time{display:block;margin-top:2px}
.ticket__cta{grid-area:cta;display:grid;gap:12px;align-content:center;padding:24px;background:var(--bg-subtle);border-left:1px solid var(--border)}
.ticket__live{width:8px;height:8px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px rgba(219,43,24,.16)}
@media (min-width:1280px){
  .ticket{grid-template-columns:152px minmax(0,1fr) auto 272px;grid-template-areas:"date main stats cta"}
  .ticket__main{align-content:center;padding:24px 28px}
  .ticket__stats{align-self:center;padding:24px 28px 24px 0}
}
@media (max-width:1023.98px){
  .ticket{grid-template-columns:128px minmax(0,1fr) 240px;grid-template-areas:"date main main" "stats stats cta"}
  .ticket__stats{padding:20px 24px;border-top:1px solid var(--border);align-self:stretch;display:flex;align-items:center}
  .ticket__cta{border-top:1px solid var(--border)}
}
@media (max-width:767.98px){
  .ticket{grid-template-columns:72px minmax(0,1fr);grid-template-areas:"date main" "stats stats" "cta cta";border-radius:var(--r-lg)}
  .ticket__date{padding:18px 0 18px 18px;border-right:0;align-content:start}
  .ticket__date .date-block__day{font-size:2.75rem}
  .ticket__date .date-block__mon{font-size:1rem}
  .ticket__main{padding:18px 18px 12px 12px;align-content:start}
  .ticket__title{font-size:1.5rem}
  .ticket__stats{padding:14px 18px;border-top:1px dashed var(--g200)}
  .ticket__stats .stats{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;gap:12px}
  .ticket__stats .stats--divided>.stat{padding:0;border-left:0}
  .ticket__stats .stat__label .bi{display:none}
  .ticket__stats .stat--md .stat__value{font-size:1.625rem}
  .ticket__cta{padding:16px 18px 18px;border-left:0;border-top:1px solid var(--border)}
}

/* Üretilmiş görseller (std-visuals.js): kontur deseni, sırt silueti, irtifa çizgisi */
.gen{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.gen svg{position:absolute;inset:0;width:100%;height:100%}
.cover{position:relative;overflow:hidden;background:var(--chrome);isolation:isolate}
.cover__chip{position:absolute;right:12px;top:12px;z-index:2}

/* İrtifa profili (açık zeminde, detay sayfası gövdesi) */
.profile{position:relative;height:220px}
.profile__head{display:flex;align-items:center;justify-content:space-between;gap:12px}

/* Program zaman çizelgesi (5 adım) — ≥768 yatay, altında dikey */
.timeline{display:grid;grid-template-columns:repeat(var(--steps,5),minmax(0,1fr));gap:0}
.timeline__step{position:relative;display:grid;gap:4px;align-content:start;padding:28px 16px 0 0}
.timeline__step::before{content:"";position:absolute;top:6px;left:0;width:12px;height:12px;border-radius:50%;border:2.5px solid var(--g900);background:var(--bg-surface);z-index:1}
.timeline__step::after{content:"";position:absolute;top:11px;left:12px;right:0;height:2px;background:var(--g200)}
.timeline__step:last-child::after{display:none}
.timeline__step.is-key::before{background:var(--g900)}
.timeline__time{font:600 1.5rem/1 var(--font-display)}
.timeline__title{font:600 .9375rem/1.35 var(--font-body)}
.timeline__sub{font:var(--t-sm);color:var(--text-2)}
@media (max-width:767.98px){
  .timeline{grid-template-columns:1fr}
  .timeline__step{grid-template-columns:64px 1fr;padding:0 0 18px 28px;column-gap:12px}
  .timeline__step::before{top:4px}
  .timeline__step::after{top:18px;left:5px;right:auto;bottom:0;width:2px;height:auto}
  .timeline__time{grid-row:span 2;font-size:1.375rem}
}

/* Yanınıza alın listesi */
.checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px}
.checklist li{display:flex;gap:10px;align-items:flex-start;font:var(--t-body)}
.checklist .bi{color:var(--success);font-size:1.125rem;margin-top:3px}

/* ------------------------------------------------------------------ 10. KPI */
.kpi{display:grid;gap:10px;align-content:start;padding:18px 20px}
.kpi__label{display:flex;align-items:center;gap:8px;font:500 .9375rem/1.3 var(--font-body);color:var(--text-2)}
.kpi__label .bi{color:var(--text-3)}
.kpi__value{font:var(--t-stat-lg);letter-spacing:-.005em;white-space:nowrap}
.kpi__sub{display:flex;flex-wrap:wrap;gap:6px 14px;font:var(--t-sm);color:var(--text-2)}
.kpi__sub b{font-weight:600;color:var(--text)}
.delta{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border-radius:6px;font:600 .8125rem/1 var(--font-body);background:var(--success-soft);color:var(--success-text)}
.delta--down{background:var(--danger-soft);color:var(--danger-text)}
.ratio{display:flex;height:8px;border-radius:99px;overflow:hidden;gap:2px;background:var(--g100)}
.ratio>i{display:block;height:100%}
.legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:0}

/* ------------------------------------------------------------------ 11. LİSTE / TABLO */
.table-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--e1);overflow:hidden;min-width:0}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px}
.toolbar__search{width:min(340px,100%)}
.toolbar__spacer{margin-left:auto}
.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:52px;padding:4px 12px 12px;font:var(--t-sm);color:var(--text-2)}
.filter-bar__count{font:600 .9375rem/1 var(--font-body);color:var(--text);margin-right:4px}
.filter-token{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 4px 0 12px;border-radius:var(--r-pill);background:var(--selected);color:var(--selected-text);font:500 .875rem/1 var(--font-body)}
.filter-token button{position:relative;display:grid;place-items:center;width:26px;height:26px;border:0;border-radius:50%;background:transparent;color:inherit}
.filter-token button::after{content:"";position:absolute;inset:-9px}
.filter-token button:hover{background:rgba(26,69,173,.1)}
.table-scroll{position:relative;overflow-x:auto}
.table{width:100%;border-collapse:separate;border-spacing:0}
.table th{position:sticky;top:0;z-index:var(--z-sticky);height:44px;padding:0 12px;text-align:left;font:600 .8125rem/1.2 var(--font-body);color:var(--text-2);background:var(--bg-subtle);border-top:1px solid var(--border);border-bottom:1px solid var(--border);white-space:nowrap}
.table th[aria-sort] button,.table th[data-sort] button{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:0;font:inherit;color:var(--text);min-height:44px}
.table td{height:var(--row-h);padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle;font:var(--t-body)}
.table tr:last-child td{border-bottom:0}
.table tbody tr:hover td,.table tr.is-hover td{background:var(--bg-subtle)}
.table tr.is-selected td{background:var(--selected)}
.table tr.is-target td{background:var(--danger-soft)}
.table .col-check{width:52px;padding-right:0}
.table .col-actions{width:1%;white-space:nowrap}
.table td.num,.table th.num{text-align:right}
.table__primary{font-weight:600;line-height:1.35}
.table__sub{font:var(--t-meta);color:var(--text-2);margin-top:2px}
.row-actions{display:flex;justify-content:flex-end;gap:2px}
.table-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid var(--border);font:var(--t-sm);color:var(--text-2)}
.pager{display:flex;align-items:center;gap:4px}
.pager a,.pager button{display:grid;place-items:center;min-width:44px;height:44px;padding:0 6px;border:0;border-radius:var(--r-md);background:transparent;font:600 .9375rem/1 var(--font-body);color:var(--text)}
.pager a:hover{background:var(--bg-muted)}
.pager [aria-current="page"]{background:var(--g900);color:#fff}
.pager [aria-disabled="true"]{color:var(--text-disabled)}
/* hızlı ekleme satırı (Hareketler) */
.quick-add td{background:var(--bg-subtle);height:72px;border-bottom:1px solid var(--border-strong)}
.quick-add .input,.quick-add .select{height:44px}
/* 768 altında satırlar karta döner */
@media (max-width:767.98px){
  .table--stack thead{display:none}
  .table--stack,.table--stack tbody,.table--stack tr,.table--stack td{display:block;width:100%}
  .table--stack tr{position:relative;padding:14px 56px 14px 16px;border-bottom:1px solid var(--border)}
  .table--stack td{height:auto;padding:2px 0;border:0}
  .table--stack td[data-label]::before{content:attr(data-label) " · ";color:var(--text-2);font:var(--t-sm)}
  .table--stack td.col-actions{position:absolute;top:10px;right:6px;width:auto}
  .table--stack .row-actions .icon-btn:not(.row-actions__more){display:none}
}

/* ------------------------------------------------------------------ 12. AİDAT MATRİSİ */
.matrix{width:100%;border-collapse:separate;border-spacing:0}
.matrix th{height:auto;padding:10px 8px;font:600 .9375rem/1.2 var(--font-body);color:var(--text);background:var(--bg-subtle);border-top:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;vertical-align:bottom}
.matrix th:first-child,.matrix td:first-child{position:sticky;left:0;z-index:2;text-align:left;padding-left:16px;background:var(--bg-surface);box-shadow:1px 0 0 var(--border)}
.matrix thead th:first-child{background:var(--bg-subtle);vertical-align:bottom;font:600 .8125rem/1.2 var(--font-body);color:var(--text-2)}
.matrix tbody th{padding:6px 16px;background:var(--bg-surface);border-top:0;font:var(--t-body);color:var(--text);text-align:left;vertical-align:middle}
.matrix__member{display:flex;align-items:center;gap:12px;white-space:nowrap}
.matrix__member b{display:block;font-weight:600}
.matrix__member span span{font:var(--t-sm);color:var(--text-2)}
.matrix__year{display:grid;gap:4px;justify-items:center;min-width:96px}
.matrix__tariff{font:500 .8125rem/1 var(--font-body);color:var(--text-2)}
.matrix__rate{display:flex;align-items:center;gap:6px;font:600 .8125rem/1 var(--font-body);color:var(--text-2)}
.matrix__rate .capacity__bar{width:44px;height:4px}
.matrix td{height:60px;padding:6px;border-bottom:1px solid var(--border);text-align:center}
.matrix tr:last-child td{border-bottom:0}
.matrix tfoot td{height:48px;background:var(--bg-subtle);font:600 .875rem/1 var(--font-body);color:var(--text-2);border-top:1px solid var(--border)}
.matrix__debt{text-align:right!important;padding-right:18px!important;font:600 1rem/1 var(--font-body);font-variant-numeric:tabular-nums}
.cell{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:44px;min-width:88px;border:0;border-radius:var(--r-sm);background:transparent;font:600 .9375rem/1 var(--font-body);font-variant-numeric:tabular-nums;color:var(--text-2);cursor:pointer}
.cell--paid{background:var(--success-soft);color:var(--success-text)}
.cell--due{background:var(--bg-surface);box-shadow:inset 0 0 0 1.5px var(--g400);border:0;color:var(--text-2)}
.cell--due .bi{color:var(--danger-text)}
.cell--exempt{background:var(--g100);color:var(--g700)}
.cell--na{color:var(--text-3);font-weight:500;cursor:default}
.cell[aria-selected="true"],.cell.is-selected{background:var(--selected);box-shadow:inset 0 0 0 2px var(--selected-line);color:var(--selected-text)}
.cell[aria-selected="true"]::after,.cell.is-selected::after{content:"";position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;border:2px solid #fff;background:var(--selected-line) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M13.485 3.929a1 1 0 0 1 0 1.414l-6.364 6.364a1 1 0 0 1-1.414 0L2.515 8.515A1 1 0 1 1 3.93 7.1l2.485 2.486 5.657-5.657a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E") center/11px no-repeat}
.cell.is-focus,.cell:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.keys-legend{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;padding:12px 16px;border-top:1px solid var(--border);font:var(--t-sm);color:var(--text-2)}
.keys-legend span{display:inline-flex;gap:6px;align-items:center}

/* ------------------------------------------------------------------ 13. TOPLU İŞLEM ÇUBUĞU (yüzen koyu) */
.bulk-bar{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 18px;border-radius:var(--r-lg);background:var(--bg-inverse);color:#fff;box-shadow:var(--e4);white-space:nowrap;z-index:var(--z-bulk)}
.bulk-bar__count{font:600 .9375rem/1.2 var(--font-body)}
.bulk-bar__count b{font:600 1.5rem/1 var(--font-display);margin-right:4px}
.bulk-bar__meta{font:var(--t-sm);color:var(--on-chrome-2)}
.bulk-bar__sep{width:1px;height:28px;background:var(--n700);margin:0 4px}

/* ------------------------------------------------------------------ 14. UYARI, ŞERİT */
.alert{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-subtle);font:var(--t-body);color:var(--text)}
.alert>.bi{font-size:1.125rem;margin-top:2px;color:var(--text-2)}
.alert__title{font-weight:600}
.alert--info{background:var(--info-soft);border-color:var(--info-line);color:var(--info-text)} .alert--info>.bi{color:var(--info-text)}
.alert--success{background:var(--success-soft);border-color:var(--success-line);color:var(--success-text)} .alert--success>.bi{color:var(--success-text)}
.alert--warning{background:var(--warning-soft);border-color:var(--warning-line);color:var(--warning-text)} .alert--warning>.bi{color:var(--warning-text)}
.alert--danger{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger-text)} .alert--danger>.bi{color:var(--danger-text)}
.banner{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 16px;background:var(--warning-soft);border-bottom:1px solid var(--warning-line);font:500 .9375rem/1.4 var(--font-body);color:var(--warning-text)}

/* ------------------------------------------------------------------ 15. BİLDİRİM (toast) */
.toast-region{position:fixed;right:24px;bottom:24px;z-index:var(--z-toast);display:grid;gap:10px;width:min(420px,100% - 32px)}
.toast{display:flex;align-items:center;gap:12px;padding:12px 12px 12px 16px;border-radius:var(--r-lg);background:var(--bg-inverse);color:#fff;box-shadow:var(--e4)}
.toast__icon{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--grn600);color:#fff;font-size:1rem}
.toast--error .toast__icon{background:var(--red50);color:var(--danger-text)}
.toast__body{min-width:0;flex:1}
.toast__title{display:block;font:600 .9375rem/1.35 var(--font-body)}
.toast__text{display:block;font:var(--t-sm);color:var(--on-chrome-2)}
.toast .btn{min-height:44px;padding:0 14px;font-size:.9375rem}
@media (max-width:767.98px){.toast-region{left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:auto}}

/* ------------------------------------------------------------------ 16. KATMANLAR: diyalog, onay, çekmece, menü, palet */
dialog{padding:0;border:0;color:var(--text);background:transparent;max-width:none;max-height:none}
dialog::backdrop{background:var(--scrim)}
.dialog{width:min(520px,100% - 32px);border-radius:var(--r-xl);background:var(--bg-surface);box-shadow:var(--e4)}
.dialog[open]{animation:dlg-in var(--d-slow) var(--ease-enter)}
@keyframes dlg-in{from{opacity:0;transform:translateY(8px) scale(.98)}}
.dialog__inner{position:relative;padding:28px 28px 24px}
.dialog__close{position:absolute;top:12px;right:12px}
.dialog__icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:18px;border-radius:14px;background:var(--danger-soft);color:var(--danger-text);font-size:1.5rem}
.dialog__title{font:var(--t-h3)}
.dialog__text{margin-top:10px;color:var(--text-2)}
.dialog__text b{color:var(--text);font-weight:600}
.dialog__list{display:grid;margin-top:14px;border-top:1px solid var(--border)}
.dialog__list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font:var(--t-meta)}
.dialog__list li b{font-weight:600}
.dialog__alt{display:grid;gap:10px;margin-top:16px;padding:14px 16px;border-radius:var(--r-md);background:var(--bg-subtle);border:1px solid var(--border);font:var(--t-meta);color:var(--text-2)}
.dialog__alt b{color:var(--text)}
.dialog__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
.dialog__hint{margin-right:auto;display:flex;align-items:center;gap:6px;font:var(--t-sm);color:var(--text-3)}
/* satıra bağlı onay: dialog.showModal() + JS ile tetikleyicinin yanına konur */
.confirm{position:fixed;inset:auto;margin:0;overflow:visible;width:min(440px,100% - 32px);border-radius:var(--r-lg);background:var(--bg-surface);box-shadow:var(--e4);border:1px solid var(--border)}
.confirm::backdrop{background:var(--scrim-soft)}
.confirm__inner{padding:18px 18px 16px}
.confirm__title{display:flex;align-items:center;gap:10px;font:600 1.125rem/1.35 var(--font-body)}
.confirm__title .bi{color:var(--danger-text)}
.confirm__text{margin-top:8px;font:var(--t-meta);color:var(--text-2)}
.confirm__text b{color:var(--text)}
.confirm__foot{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.confirm__foot .btn--danger{margin-left:auto}
.confirm__arrow{position:absolute;top:-7px;right:var(--arrow-x,24px);width:12px;height:12px;background:var(--bg-surface);border-left:1px solid var(--border);border-top:1px solid var(--border);transform:rotate(45deg)}
.confirm__arrow--down{top:auto;bottom:-7px;transform:rotate(225deg)}   /* tetikleyicinin altında yer yoksa onay yukarı açılır */
/* çekmece (web, sağdan) */
.drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(440px,100%);height:100%;background:var(--bg-surface);box-shadow:var(--e4);display:flex;flex-direction:column}
.drawer:not([open]){display:none}
.drawer[open]{animation:drawer-in var(--d-slow) var(--ease-enter)}
@keyframes drawer-in{from{transform:translateX(24px);opacity:0}}
.drawer__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 14px 24px;border-bottom:1px solid var(--border)}
.drawer__title{font:var(--t-h3)}
.drawer__body{flex:1;overflow:auto;padding:20px 24px;display:grid;gap:16px;align-content:start}
.drawer__foot{display:grid;gap:10px;padding:14px 24px 18px;border-top:1px solid var(--border);background:var(--bg-surface)}
.drawer__actions{display:flex;gap:8px}
.drawer__actions .btn{flex:1}
.session{display:flex;align-items:center;justify-content:space-between;gap:8px;font:var(--t-sm);color:var(--text-2)}
.session b{color:var(--text);font-weight:600}
/* açılır menü */
.menu{min-width:240px;padding:8px;border-radius:var(--r-lg);background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--e3)}
.menu__item{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 10px;border:0;border-radius:9px;background:none;font:500 .9375rem/1.2 var(--font-body);color:var(--text);text-align:left}
.menu__item .bi{width:20px;text-align:center;font-size:1.0625rem;color:var(--text-2)}
.menu__item .kbd{margin-left:auto}
.menu__item:hover,.menu__item.is-active,.menu__item:focus-visible{background:var(--bg-muted)}
.menu__item--danger,.menu__item--danger .bi{color:var(--danger-text)}
.menu__sep{height:1px;margin:6px 0;background:var(--border);border:0}
.menu__head{display:flex;gap:12px;align-items:center;padding:10px 10px 14px;margin-bottom:6px;border-bottom:1px solid var(--border)}
/* popover */
.popover{width:min(400px,100% - 32px);padding:18px;display:grid;gap:14px;border-radius:var(--r-lg);background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--e4)}
.popover__head{display:flex;align-items:center;justify-content:space-between;font:600 1.0625rem/1.3 var(--font-body)}
/* komut paleti */
.cmdk{position:fixed;inset:12vh 0 auto;margin:0 auto;width:min(640px,100% - 32px);border-radius:var(--r-xl);background:var(--bg-surface);box-shadow:var(--e4);overflow:hidden}
.cmdk__search{display:flex;align-items:center;gap:12px;height:60px;padding:0 16px;border-bottom:1px solid var(--border)}
.cmdk__search .bi{font-size:1.25rem;color:var(--text-2)}
.cmdk__input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;font:400 1.0625rem/1 var(--font-body)}
.cmdk__list{max-height:min(480px,60vh);overflow:auto;padding:8px}
.cmdk__group{font:600 .8125rem/1 var(--font-body);color:var(--text-2);padding:12px 10px 8px}
.cmdk__item{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 10px;border-radius:10px;font:500 .9375rem/1.3 var(--font-body);cursor:pointer}
.cmdk__ico{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:8px;background:var(--g100);color:var(--text);font-size:1rem}
.cmdk__hint{font:var(--t-sm);color:var(--text-2)}
.cmdk__item .kbd,.cmdk__item .badge{margin-left:auto}
.cmdk__item[aria-selected="true"]{background:var(--g900);color:#fff}
.cmdk__item[aria-selected="true"] .cmdk__ico{background:rgba(255,255,255,.14);color:#fff}
.cmdk__item[aria-selected="true"] .cmdk__hint{color:var(--n200)}
.cmdk__item[aria-selected="true"] .kbd{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff}
.cmdk mark{background:none;color:inherit;font-weight:700;text-decoration:underline;text-decoration-color:var(--brand);text-decoration-thickness:2px;text-underline-offset:3px}
.cmdk__sub{margin:2px 0 6px 44px;padding-left:12px;border-left:2px solid var(--border)}
.cmdk__foot{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 16px;border-top:1px solid var(--border);background:var(--bg-subtle);font:var(--t-sm);color:var(--text-2)}
.cmdk__foot span{display:inline-flex;gap:6px;align-items:center}

/* ------------------------------------------------------------------ 17. BOŞ DURUM, İSKELET */
.empty{display:grid;justify-items:center;gap:10px;max-width:420px;margin:0 auto;padding:40px 24px;text-align:center}
.empty__icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:var(--g100);color:var(--text-2);font-size:1.5rem;margin-bottom:4px}
.empty__title{font:var(--t-h5)}
.empty__text{font:var(--t-body);color:var(--text-2)}
.empty__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px}
.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--g100) 0%,var(--g50) 50%,var(--g100) 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}

/* ------------------------------------------------------------------ 18. AVATAR (baş harf ≥13 px) */
.avatar{position:relative;display:inline-grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--ctx-avatar-bg);color:var(--ctx-avatar-fg);font:600 .875rem/1 var(--font-body);letter-spacing:.02em}
/* fotoğraf baş harflerin üstünü kaplar; yüklenemezse (onerror → kaldır) baş harf görünür kalır */
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.avatar--sm{width:32px;height:32px;font-size:.8125rem}
.avatar--lg{width:48px;height:48px;font-size:1rem}
.avatar--xl{width:72px;height:72px;font-size:1.375rem}

/* ------------------------------------------------------------------ 19. İZ, SAYFA BAŞLIĞI */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font:500 .9375rem/1.3 var(--font-body);color:var(--ctx-text-2,var(--text-2))}
.crumbs a:hover{text-decoration:underline;text-underline-offset:3px}
.crumbs .bi{font-size:.75rem;color:var(--ctx-text-3,var(--text-3))}
.crumbs [aria-current]{color:var(--ctx-text,var(--text));font-weight:600}
.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px;margin-bottom:20px}
.page-head__title{font:var(--t-h1-admin)}
.page-head__meta{margin-top:8px;font:var(--t-body);color:var(--text-2)}
.page-head__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px;margin-bottom:28px}
.section-head__title{font:var(--t-h1)}
.section-head__text{margin-top:10px;max-width:720px;font:var(--t-body);font-size:1.0625rem;color:var(--text-2)}
.btn__text{display:inline}
@media (max-width:767.98px){.btn--collapse{width:var(--btn-h);padding:0}.btn--collapse .btn__text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.crumbs--collapse>*{display:none}.crumbs--collapse>.crumbs__back{display:inline-flex;align-items:center;gap:8px;min-height:44px}.crumbs--collapse>.crumbs__back::before{content:"\F284";font-family:bootstrap-icons;font-size:.875rem}}
@media (max-width:767.98px){.section-head{margin-bottom:20px}.section-head__title{font-size:2rem}}

/* ------------------------------------------------------------------ 20. PUBLIC KABUK */
.site-header{position:sticky;top:0;z-index:var(--z-header);background:var(--chrome);border-bottom:1px solid var(--n800)}
.site-header__inner{display:flex;align-items:center;gap:32px;height:var(--header-h)}
.brand{display:flex;align-items:center;gap:12px;flex:none;min-height:var(--touch);color:#fff;min-width:0}
.brand__logo{width:44px;height:44px;flex:none}
.brand__text{display:grid;gap:3px;min-width:0}
.brand__name{font:700 1.0625rem/1.15 var(--font-body);letter-spacing:-.01em;color:#fff;white-space:nowrap}
.brand__sub{font:500 .8125rem/1.1 var(--font-body);color:var(--on-chrome-3);white-space:nowrap}
.site-nav{display:none;align-self:stretch;flex-wrap:nowrap;gap:2px}
.site-nav__link{position:relative;display:flex;align-items:center;gap:6px;padding:0 12px;font:600 1rem/1 var(--font-body);color:var(--on-chrome-2);white-space:nowrap;border:0;background:none}
.site-nav__link .bi{font-size:.75rem;color:var(--on-chrome-3)}
.site-nav__link:hover,.site-nav__link[aria-current="page"],.site-nav__link.is-active{color:#fff}
.site-nav__link[aria-current="page"]::after,.site-nav__link.is-active::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--brand)}
.site-header__actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex:none}
.site-header__phone{display:none;align-items:center;gap:8px;min-height:44px;padding:0 10px;font:600 .9375rem/1 var(--font-body);color:var(--on-chrome-2);white-space:nowrap}
.site-header__phone .bi{color:var(--on-chrome-3)}
.site-header__sep{display:none;width:1px;height:28px;background:var(--n700);margin:0 4px}
.site-header__desk{display:none}
.site-header__mobile{display:flex}
.user-btn{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 8px 0 2px;border:0;border-radius:var(--r-md);background:transparent;color:#fff;font:600 .9375rem/1 var(--font-body)}
.user-btn:hover{background:rgba(255,255,255,.08)}
.user-btn__name{display:none}
.user-btn .bi{font-size:.75rem;color:var(--on-chrome-3)}
@media (min-width:1024px){
  .site-nav{display:flex}
  .site-header__desk{display:flex;align-items:center;gap:8px}
  .site-header__mobile{display:none}
}
@media (min-width:1280px){
  .site-header__inner{gap:40px}
  .site-nav__link{padding:0 14px}
  .site-nav__link[aria-current="page"]::after,.site-nav__link.is-active::after{left:14px;right:14px}
  .site-header__phone,.site-header__sep{display:flex}
  .user-btn__name{display:inline}
}
@media (max-width:1023.98px){.brand__logo{width:38px;height:38px}.brand__name{font-size:1rem}}
.site-header--auth .site-header__phone,.site-header--auth .site-header__sep{display:none!important}   /* oturum açıkken telefon başlıkta yok (yer açılır) */
/* mobil menü: <dialog class="mnav"> */
.mnav{position:fixed;inset:0;width:100%;height:100%;margin:0;background:var(--chrome);color:#fff;overflow:auto}
.mnav::backdrop{background:var(--chrome)}
.mnav__head{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 8px 0 16px;border-bottom:1px solid var(--n800)}
.mnav__list{padding:8px 0}
.mnav__item{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:56px;padding:0 20px;border:0;border-bottom:1px solid var(--n850);background:none;font:600 1.25rem/1.3 var(--font-body);color:#fff;text-align:left}
.mnav__item .bi{font-size:1rem;color:var(--on-chrome-3)}
.mnav__item[aria-current="page"]{box-shadow:inset 3px 0 0 var(--brand)}
.mnav__sub{padding:4px 20px 12px;border-bottom:1px solid var(--n850)}
.mnav__sub a{display:flex;align-items:center;min-height:48px;padding-left:16px;border-left:1px solid var(--n700);font:500 1.0625rem/1.3 var(--font-body);color:var(--on-chrome-2)}
.mnav__sub a[aria-current="page"]{padding-left:14px;border-left:3px solid var(--brand);color:#fff;font-weight:600}
.mnav__foot{display:grid;gap:12px;padding:16px 20px 24px;border-top:1px solid var(--n800)}
.mnav__contact{display:flex;justify-content:space-between;gap:12px}
.mnav__contact a{display:flex;align-items:center;gap:8px;min-height:48px;font:500 1rem/1 var(--font-body);color:var(--on-chrome-2)}
/* hero */
.hero{position:relative;display:flow-root;background:var(--chrome);color:#fff;isolation:isolate}
.hero__media{position:relative;height:280px;overflow:hidden}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:var(--focal,50% 50%)}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--chrome) 0%,rgba(11,14,18,.55) 22%,rgba(11,14,18,0) 48%)}
.hero__credit{position:absolute;right:12px;top:12px;z-index:1;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:99px;background:rgba(11,14,18,.62);font:500 .8125rem/1.2 var(--font-body);color:#fff}
.hero__body{position:relative;padding:8px 0 32px}
.hero__pill{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 14px 0 6px;border-radius:99px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);font:500 .9375rem/1.2 var(--font-body);color:var(--on-chrome-2)}
.hero__pill b{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:99px;background:#fff;color:var(--g900);font-weight:600;font-size:.8125rem}
.hero__title{margin-top:20px;max-width:12ch;text-wrap:balance}
.hero__lead{margin-top:18px;max-width:560px;font:var(--t-lead);color:var(--on-chrome-2)}
.hero__cta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.hero__cta .btn{padding:0 12px;font-size:1.0625rem}
@media (min-width:768px){.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.hero__cta .btn{padding:0 28px;font-size:1.125rem}}
.hero__ticket{position:relative;z-index:2;margin-bottom:-56px}
@media (min-width:768px){.hero__media{height:360px}.hero__ticket{margin-bottom:-80px}}
@media (min-width:1024px){
  .hero{min-height:560px}
  .hero__media{position:absolute;inset:0 0 0 auto;width:60%;height:auto}
  .hero__media::after{background:linear-gradient(90deg,var(--chrome) 0%,rgba(11,14,18,.8) 22%,rgba(11,14,18,.3) 42%,rgba(11,14,18,0) 60%),linear-gradient(0deg,rgba(11,14,18,.55) 0%,rgba(11,14,18,0) 22%)}
  .hero__credit{right:24px;top:24px}
  .hero__body{padding:72px 0 56px;max-width:520px}
}
@media (min-width:1280px){.hero__body{max-width:600px}}
/* alt bilgi */
.site-footer{background:var(--chrome);color:var(--on-chrome-2);padding:56px 0 24px}
.site-footer__grid{display:grid;grid-template-columns:1fr 1fr;gap:32px 16px}
.site-footer__grid>:first-child,.site-footer__grid>:last-child{grid-column:1/-1}
.site-footer__about{max-width:340px;margin-top:16px;font:var(--t-meta);color:var(--on-chrome-3)}
.site-footer__head{margin-bottom:12px;font:600 1rem/1.3 var(--font-body);color:#fff}
.site-footer a:not(.btn):not(.brand){display:flex;align-items:center;gap:10px;min-height:44px;font:var(--t-meta);color:var(--on-chrome-2)}
.site-footer a:not(.btn):not(.brand):hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.site-footer a .bi{color:var(--on-chrome-3);font-size:1.0625rem}
.social{display:flex;gap:8px;margin-top:20px}
.social a{justify-content:center;width:44px;height:44px;border-radius:var(--r-md);border:1px solid var(--n700)}
.social a .bi{color:#fff!important}
.site-footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:32px;padding-top:20px;border-top:1px solid var(--n800);font:var(--t-sm);color:var(--on-chrome-3)}
.site-footer__bottom nav{display:flex;gap:20px}
@media (min-width:1024px){.site-footer__grid>:first-child,.site-footer__grid>:last-child{grid-column:auto}}
@media (min-width:1024px){.site-footer__grid{grid-template-columns:1.5fr 1fr 1fr 1.35fr;gap:48px}}

/* ------------------------------------------------------------------ 21. YÖNETİM KABUĞU */
.admin{display:grid;grid-template-columns:minmax(0,1fr);min-height:100vh;background:var(--bg-canvas)}
.sidebar{position:fixed;inset:0 auto 0 0;z-index:var(--z-drawer);width:min(300px,100% - 48px);transform:translateX(-100%);visibility:hidden;display:flex;flex-direction:column;padding:12px;background:var(--chrome-2);color:var(--on-chrome-2);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--n700) transparent;transition:transform var(--d-slow) var(--ease-enter),visibility 0s linear var(--d-slow)}
.sidebar.is-open{transform:none;visibility:visible;box-shadow:var(--e4);transition:transform var(--d-slow) var(--ease-enter)}
.sidebar__brand{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 6px;margin-bottom:4px;color:#fff}
.sidebar__brand img{width:34px;height:34px}
.sidebar__brand b{display:block;font:700 1rem/1.15 var(--font-body)}
.sidebar__brand small{display:block;font:500 .8125rem/1.2 var(--font-body);color:var(--on-chrome-3)}
.sidebar__group{padding:16px 12px 6px;font:600 .8125rem/1 var(--font-body);color:var(--on-chrome-3)}
.sidebar__link{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:10px;font:500 .9375rem/1.2 var(--font-body);color:var(--on-chrome-2)}
.sidebar__link .bi{width:20px;text-align:center;font-size:1.125rem;color:var(--on-chrome-3)}
.sidebar__link:hover{background:var(--n850);color:#fff}
.sidebar__link[aria-current="page"],.sidebar__link.is-active{background:var(--chrome-3);color:#fff;font-weight:600}
.sidebar__link[aria-current="page"] .bi,.sidebar__link.is-active .bi{color:#fff}
.sidebar__link[aria-current="page"]::before,.sidebar__link.is-active::before{content:"";position:absolute;left:-12px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}
.sidebar__count{margin-left:auto;padding:5px 7px;border-radius:6px;background:var(--chrome-3);font:var(--t-micro);color:var(--on-chrome-2)}
.sidebar__count--attention{background:var(--signal);color:var(--on-signal)}
.sidebar__foot{margin-top:auto;display:grid;gap:2px;padding-top:10px;border-top:1px solid var(--n800)}
.sidebar__user{display:flex;align-items:center;gap:10px;min-height:56px;padding:6px}
.sidebar__user b{display:block;font:600 .9375rem/1.2 var(--font-body);color:#fff}
.sidebar__user span{font:var(--t-sm);color:var(--on-chrome-3)}
.main{display:flex;flex-direction:column;min-width:0}
.topbar{position:sticky;top:0;z-index:var(--z-header);display:flex;align-items:center;gap:12px;height:var(--topbar-h);padding:0 16px;background:var(--bg-surface);border-bottom:1px solid var(--border)}
.topbar__menu{display:inline-grid}
.search-trigger{display:flex;align-items:center;gap:10px;flex:1;max-width:420px;height:44px;margin-left:auto;padding:0 8px 0 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-canvas);font:400 .9375rem/1 var(--font-body);color:var(--text-3);text-align:left}
.search-trigger .bi{color:var(--text-2);font-size:1.0625rem}
.search-trigger .kbd{margin-left:auto}
.topbar__actions{display:flex;align-items:center;gap:4px}
.content{--content-px:16px;padding:24px var(--content-px) 96px;min-width:0}
@media (min-width:768px){.content{--content-px:28px;padding:28px var(--content-px) 96px}.topbar{padding:0 20px 0 28px}}
@media (min-width:1024px){
  .admin{grid-template-columns:var(--sidebar-w-md) minmax(0,1fr)}
  .sidebar{position:sticky;top:0;height:100vh;width:auto;transform:none;box-shadow:none;visibility:visible}
  .topbar__menu{display:none}
  .content{--content-px:32px;padding:28px var(--content-px) 96px}
  .admin.is-rail{grid-template-columns:var(--rail-w) minmax(0,1fr)}
  .admin.is-rail .sidebar__group,.admin.is-rail .sidebar__count,.admin.is-rail .sidebar__sub-list{display:none}
  /* rayda metin görsel olarak gizlenir ama erişilebilir ad olarak kalır */
  .admin.is-rail .sidebar__link span,.admin.is-rail .sidebar__brand .sidebar__brand-text,.admin.is-rail .sidebar__user-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .admin.is-rail .sidebar__link{justify-content:center;width:48px;min-height:48px;padding:0}
  .admin.is-rail .sidebar__link .bi-chevron-down{display:none}
}
@media (min-width:1280px){.admin{grid-template-columns:var(--sidebar-w) minmax(0,1fr)}}
.crumb-bar{display:flex;align-items:center;gap:8px;font:500 .9375rem/1 var(--font-body);color:var(--text-2);white-space:nowrap;min-width:0}
.crumb-bar b{color:var(--text);font-weight:600}
.crumb-bar .bi{font-size:.75rem;color:var(--text-3)}

/* ------------------------------------------------------------------ 22. YAPIŞKAN FORM ÇUBUĞU (opak) */
.action-bar{position:sticky;bottom:0;z-index:var(--z-sticky);display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-height:72px;padding:12px 32px;background:var(--bg-surface);border-top:1px solid var(--border);box-shadow:var(--e-up)}
.action-bar__state{display:flex;align-items:center;gap:10px;margin-right:auto;font:var(--t-meta);color:var(--text-2)}
.action-bar__state b{color:var(--text);font-weight:600}
.action-bar__dot{width:10px;height:10px;border-radius:50%;background:var(--warning-mark)}
.action-bar__dot--ok{background:var(--success)}
@media (max-width:767.98px){.action-bar{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.action-bar__state{width:100%}.action-bar .btn{flex:1}}

/* ------------------------------------------------------------------ 23. FORM YERLEŞİMİ */
.form-layout{display:grid;gap:24px;align-items:start}
.form-nav{display:grid;gap:2px}
.form-nav__progress{display:grid;gap:8px;padding:0 12px 14px;font:500 .875rem/1.3 var(--font-body);color:var(--text-2)}
.form-nav__progress b{color:var(--text)}
.form-nav__link{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:10px;font:500 .9375rem/1.2 var(--font-body);color:var(--text-2)}
.form-nav__step{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--g300);font:700 .8125rem/1 var(--font-body);color:var(--text-2)}
.form-nav__link.is-done .form-nav__step{background:var(--success);border-color:var(--success);color:#fff}
.form-nav__link.is-error{color:var(--danger-text);font-weight:600}
.form-nav__link.is-error .form-nav__step{background:var(--danger);border-color:var(--danger);color:#fff}
.form-nav__link[aria-current="step"],.form-nav__link.is-current{background:var(--bg-surface);color:var(--text);font-weight:600;box-shadow:var(--e1)}
.form-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--e1)}
.form-section__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:18px 22px 16px;border-bottom:1px solid var(--border)}
.form-section__title{font:var(--t-h4)}
.form-section__hint{font:var(--t-sm);color:var(--text-2)}
.form-section__body{display:grid;gap:18px;padding:20px 22px 22px;container-type:inline-size}
.form-row{display:grid;gap:16px}
.form-row--pair{grid-template-columns:repeat(2,minmax(0,1fr))}   /* kısa alan çifti: her genişlikte yan yana */
/* bölüm genişliğine göre (container query): dar formda alanlar alt alta, 60+ okur için daha rahat */
@container (min-width:600px){.form-row--2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (min-width:760px){.form-row--3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-row--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1024px){.form-layout{grid-template-columns:208px minmax(0,1fr)}.form-nav{position:sticky;top:calc(var(--topbar-h) + 24px)}}
@media (min-width:1280px){.form-layout--preview{grid-template-columns:208px minmax(0,1fr) 300px}}
.form-preview{display:none}
@media (min-width:1280px){.form-preview{display:grid;gap:12px;position:sticky;top:calc(var(--topbar-h) + 24px)}}
@media (max-width:1023.98px){.form-nav{display:flex;overflow-x:auto;gap:6px}.form-nav__progress{display:none}.form-nav__link{white-space:nowrap}}

/* ------------------------------------------------------------------ 24. PUBLIC İÇERİK KARTLARI */
.contact-card{display:grid;grid-template-rows:auto auto 1fr;gap:20px;padding:24px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface)}
.contact-card__lines{display:grid;gap:10px;font:var(--t-body)}
.contact-card__lines li{display:flex;gap:12px;align-items:flex-start}
.contact-card__lines .bi{color:var(--text-2);font-size:1.125rem;margin-top:3px}
.contact-card__actions{align-self:end;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.contact-card__actions .btn{min-height:48px;padding:0 10px}
.notice-feature{display:grid;overflow:hidden}
.notice-feature__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--chrome)}
.notice-feature__media img{width:100%;height:100%;object-fit:cover}
.notice-feature__body{display:grid;gap:12px;align-content:start;padding:24px}
.notice-feature__title{font:var(--t-h3)}
@media (min-width:1024px){.notice-feature{grid-template-columns:1fr 1fr}.notice-feature__media{aspect-ratio:auto;min-height:320px}.notice-feature__body{padding:28px 30px}}
.notice-list{display:grid}
.notice-list__item{display:grid;grid-template-columns:56px minmax(0,1fr) 20px;gap:16px;align-items:center;padding:16px 4px;border-bottom:1px solid var(--border)}
.notice-list__item:last-child{border-bottom:0}
.notice-list__title{font:var(--t-title-sm)}
.notice-list__text{margin-top:2px;font:var(--t-meta);color:var(--text-2)}
.notice-list__item .bi-chevron-right{color:var(--text-3)}
.notice-list__item:hover .notice-list__title{text-decoration:underline;text-underline-offset:3px}
.join{display:grid;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-xl);background:var(--bg-surface)}
.join__body{display:grid;gap:18px;align-content:center;padding:28px 24px}
.join__title{font:var(--t-h1)}
.join__steps{display:grid;gap:14px}
.join__steps li{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:baseline}
.join__steps b{font:700 1.75rem/1 var(--font-display)}
.join__steps strong{display:block;font:600 1rem/1.35 var(--font-body)}
.join__steps span{font:var(--t-meta);color:var(--text-2)}
.join__cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.join__fee{display:flex;align-items:baseline;gap:8px;font:var(--t-meta);color:var(--text-2)}
.join__fee b{font:600 1.75rem/1 var(--font-display);color:var(--text)}
.join__media{position:relative;min-height:260px}
.join__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--focal,50% 40%)}
@media (min-width:1024px){.join{grid-template-columns:1.25fr 1fr}.join__body{padding:44px 48px}}
.member-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface)}
.member-card__name{font:600 1rem/1.3 var(--font-body)}
.member-card__role{margin-top:4px}
.az{display:flex;flex-wrap:wrap;gap:2px}
.az a{display:grid;place-items:center;min-width:36px;height:44px;border-radius:8px;font:600 .9375rem/1 var(--font-body);color:var(--text-2)}
.az a:hover{background:var(--bg-muted);color:var(--text)}
.az a[aria-current="true"]{background:var(--g900);color:#fff}
.az a[aria-disabled="true"]{color:var(--g300);pointer-events:none}

/* ------------------------------------------------------------------ 25. ZENGİN METİN (Word HTML'ine dayanıklı) */
.rich{font:var(--t-body-lg);max-width:var(--measure);color:var(--text)}
.rich *{font-family:inherit!important;font-size:inherit!important;line-height:inherit!important;color:inherit!important;background:transparent!important}
.rich p,.rich ul,.rich ol{margin:0 0 1em}
.rich h1,.rich h2{font-size:1.5rem!important;font-weight:700;margin:1.4em 0 .5em;line-height:1.3!important}
.rich h3,.rich h4{font-size:1.25rem!important;font-weight:600;margin:1.2em 0 .4em;line-height:1.35!important}
.rich a{text-decoration:underline;text-underline-offset:3px}
.rich img{border-radius:var(--r-md);margin:1em 0}
.rich table{border-collapse:collapse;width:100%;font-size:1rem!important}
.rich td,.rich th{border:1px solid var(--border);padding:8px}
.rich .MsoNormal{margin:0 0 .8em}

/* ------------------------------------------------------------------ 26. PUBLIC SAYFA PARÇALARI */
/* Bölümler renkli bantla değil, boşluk + ince çizgiyle ayrılır. Public zemin beyazdır. */
.section{padding:56px 0}
.section+.section>.container{padding-top:0}
.section--rule{border-top:1px solid var(--border)}
.section--after-hero{padding-top:calc(56px + 48px)}
@media (min-width:768px){.section{padding:80px 0}.section--after-hero{padding-top:calc(80px + 80px)}}
.home-news{display:grid;gap:24px}
.home-news__side{display:grid;gap:16px;align-content:start}
@media (min-width:1024px){.home-news{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}}
.home-join{display:grid;gap:24px}
@media (min-width:1024px){.home-join{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}
.people-strip{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface)}
.people-strip__avatars{display:flex}
.people-strip__avatars .avatar{box-shadow:0 0 0 2px var(--bg-surface)}
.people-strip__avatars .avatar+.avatar{margin-left:-10px}
.people-strip b{display:block;font:600 1rem/1.35 var(--font-body)}
.people-strip span{font:var(--t-meta);color:var(--text-2)}
.no-event{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;padding:24px 28px;border-radius:var(--r-xl);background:var(--bg-surface);box-shadow:var(--e4)}
@media (max-width:767.98px){.no-event{grid-template-columns:1fr;padding:20px}}

/* Faaliyet detayı */
.event-head{position:relative;overflow:hidden;isolation:isolate;background:var(--chrome);color:#fff;padding:16px 0 168px}
.event-head__line{position:absolute;left:0;right:0;bottom:70px;height:96px;z-index:-1}
@media (min-width:768px){.event-head{padding:20px 0 212px}.event-head__line{bottom:92px;height:118px}}
.event-head__top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.event-head__main{display:grid;gap:20px;margin-top:28px}
.event-head__tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.event-head__title{font:700 2.25rem/1.08 var(--font-display);text-wrap:balance}
.event-head__sub{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:14px;font:var(--t-body);color:var(--on-chrome-2)}
.event-head__sub span{display:inline-flex;gap:8px;align-items:flex-start}
.event-head__sub .bi{color:var(--on-chrome-3);margin-top:4px}
@media (min-width:768px){.event-head__main{grid-template-columns:auto minmax(0,1fr);gap:40px;align-items:end}.event-head__date{padding-right:40px;border-right:1px solid var(--chrome-line)}.event-head__title{font-size:3.5rem}}
.event-facts{position:relative;z-index:2;margin-top:-72px;padding:4px 24px 0;border-radius:var(--r-xl);background:var(--bg-surface);box-shadow:var(--e3)}
.event-facts .facts{border-top:0;grid-template-columns:repeat(4,minmax(0,1fr))}
.event-facts .facts__item{padding:18px 16px 18px 0}
@media (min-width:1024px){.event-facts{padding:4px 8px 0}.event-facts .facts{grid-template-columns:1.5fr repeat(7,minmax(0,1fr))}.event-facts .facts__item{padding:20px 16px 20px 20px;border-bottom:0;border-left:1px solid var(--border)}.event-facts .facts__item:first-child{border-left:0}}
@media (max-width:767.98px){.event-facts{padding:0 16px}.event-facts .facts{grid-template-columns:repeat(2,minmax(0,1fr))}.event-facts .facts__value{font-size:1.625rem}}
.event-layout{display:grid;gap:20px;padding:24px 0 72px;align-items:start}
.event-layout__main{display:grid;gap:16px;min-width:0}
@media (min-width:768px){.event-facts{margin-top:-96px}}
@media (max-width:1023.98px){.event-layout__aside{order:-1}}
@media (min-width:1024px){.event-layout{grid-template-columns:minmax(0,1fr) 372px;gap:28px}.reg-card{position:sticky;top:calc(var(--header-h) + 16px)}}
.reg-card{display:grid;gap:16px;padding:22px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface);box-shadow:var(--e2)}
.reg-card__cap{display:flex;align-items:baseline;justify-content:space-between}
.reg-card__cap b{font:var(--t-stat-lg)}
.reg-card__row{display:flex;gap:12px;align-items:flex-start;font:var(--t-meta)}
.reg-card__row>.bi{font-size:1.125rem;color:var(--text-2);margin-top:2px}
.reg-card__row b{display:block;font-weight:600;color:var(--text)}
.reg-card__row span{color:var(--text-2)}
.reg-card__note{font:var(--t-sm);color:var(--text-2)}
.leader{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding-top:16px;border-top:1px solid var(--border)}
.leader b{display:block;font-weight:600}
.leader span{font:var(--t-sm);color:var(--text-2)}
.leader__actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.attach{display:grid;grid-template-columns:96px 1fr auto;gap:16px;align-items:center;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface)}
.attach__thumb{width:96px;height:72px;border-radius:var(--r-sm);object-fit:cover;background:var(--g100)}
.attach b{display:block;font-weight:600}
.attach span{font:var(--t-sm);color:var(--text-2)}
/* yapışkan mobil katılım çubuğu (web <1024) */
.join-bar{position:sticky;bottom:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--bg-surface);border-top:1px solid var(--border);box-shadow:var(--e-up)}
.join-bar .capacity{flex:1}
@media (min-width:1024px){.join-bar{display:none}}

/* ------------------------------------------------------------------ 27. YÖNETİM PARÇALARI */
/* Hızlı işlem kutuları (panoda 5 tane; hepsi mürekkep, kırmızı DOLGU YOK) */
.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.quick-action{display:flex;align-items:center;gap:12px;min-height:60px;padding:0 12px 0 10px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);box-shadow:var(--e1);font:600 .9375rem/1.25 var(--font-body);color:var(--text);text-align:left;transition:border-color var(--d-fast),box-shadow var(--d-fast)}
.quick-action:hover{border-color:var(--g300);box-shadow:var(--e2)}
.quick-action__icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:10px;background:var(--g900);color:#fff;font-size:1.0625rem}
.quick-action .kbd{margin-left:auto}
/* yapılacaklar */
.todo{display:grid}
.todo__item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 20px;border-top:1px solid var(--border)}
.todo__item:first-child{border-top:0}
.todo__icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--g100);color:var(--text);font-size:1.0625rem}
.todo__icon--warn{background:var(--warning-soft);color:var(--warning-text)}
.todo__title{font:600 .9375rem/1.35 var(--font-body)}
.todo__sub{font:var(--t-sm);color:var(--text-2)}
/* hareket satırı (pano, mobil) */
.tx-list{display:grid}
.tx{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 20px;border-top:1px solid var(--border)}
.tx:first-child{border-top:0}
.tx__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font-size:1rem}
.tx__icon--in{background:var(--income-soft);color:var(--income)}
.tx__icon--out{background:var(--expense-soft);color:var(--expense)}
.tx__title{font:600 .9375rem/1.35 var(--font-body)}
.tx__sub{font:var(--t-sm);color:var(--text-2)}
.tx__amt{font:600 1rem/1 var(--font-body);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.amt{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.amt--in{color:var(--income)} .amt--out{color:var(--expense)}
/* grafik kabı + kategori çubukları */
.chart{position:relative;height:300px}
.chart__tip{position:absolute;width:196px;padding:12px 14px;border-radius:10px;background:var(--bg-inverse);color:#fff;box-shadow:var(--e3);font:var(--t-sm);pointer-events:none}
.chart__tip b{display:block;margin-bottom:6px;font-weight:600}
.chart__tip div{display:flex;justify-content:space-between;gap:8px;margin-top:4px;color:var(--on-chrome-2)}
.chart__tip .net{margin-top:8px;padding-top:8px;border-top:1px solid var(--n700);color:#fff;font-weight:600}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font:500 .875rem/1.2 var(--font-body);color:var(--text-2)}
.legend span{display:inline-flex;align-items:center}
.bars{display:grid;gap:12px}
.bars__row{display:grid;grid-template-columns:150px minmax(0,1fr) 110px;gap:12px;align-items:center;font:var(--t-sm)}
.bars__track{height:10px;border-radius:99px;background:var(--g100);overflow:hidden}
.bars__track>i{display:block;height:100%;border-radius:99px;background:var(--g900)}
.bars__val{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}
/* üye seçici (combobox tetikleyicisi) */
.picker{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:6px 12px 6px 8px;border:1px solid var(--border-input);border-radius:var(--r-md);background:var(--bg-surface);text-align:left}
.picker__main{flex:1;min-width:0}
.picker__name{display:block;font:600 .9375rem/1.3 var(--font-body)}
.picker__sub{display:block;font:var(--t-sm);color:var(--text-2)}
.picker>.bi{color:var(--text-2)}
/* kısayol listesi */
.shortcuts{display:grid;grid-template-columns:1fr auto;gap:10px 16px;align-items:center;font:var(--t-meta)}
.shortcuts dt{color:var(--text)} .shortcuts dd{display:flex;gap:4px;justify-content:flex-end}

/* ==========================================================================
   28. UYGULAMA KATMANI — TEMEL EKLER
   Bu bölümden sonrası maketlerde olmayan, bu kod tabanının ihtiyaç duyduğu
   parçalardır. Tümü jeton kullanır; kurallar SPEC ile çelişmez.
   ========================================================================== */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
main:focus{outline:0}
body.is-locked{overflow:hidden}
.admin-body{background:var(--bg-canvas)}
html:has(.admin-body){scroll-padding-top:calc(var(--topbar-h) + 16px)}
/* Yerel Bootstrap Icons kopyası 1.11 öncesi: eksik iki glif en yakın karşılığa yönlenir.
   wwwroot/template/css/bootstrap-icons.css 1.11.3'e yükseltilince bu iki satırı silin. */
.bi-copy::before{content:"\f3c2"}
.bi-bus-front::before{content:"\f821"}

/* ASP.NET doğrulama sınıfları — köprü (bridge.css) olmadan da doğru görünür.
   <span asp-validation-for="X" class="field__error"></span> hatasızken gizlenir. */
.field-validation-valid,.field__error:empty{display:none!important}
.field-validation-error{display:flex;align-items:flex-start;gap:6px;font:600 .875rem/1.45 var(--font-body);color:var(--danger-text)}
.field-validation-error::before{content:"\f333";font-family:bootstrap-icons;font-weight:400;line-height:1;margin-top:3px}
.select.input-validation-error,.textarea.input-validation-error{border-color:var(--danger);box-shadow:var(--error-ring)}
.error-summary ul{margin:0;padding-left:18px;display:grid;gap:4px;font:500 .9375rem/1.45 var(--font-body)}
.error-summary.validation-summary-errors ul{list-style:disc}
/* ARIA ile seçili bağlantılar (JS'siz süzgeç: <a class="seg__item" aria-current="true">) */
.seg__item[aria-current="true"],.seg__item[aria-current="page"]{background:var(--bg-surface);color:var(--text);box-shadow:var(--e1)}
.tabs__tab[aria-current="page"],.tabs__tab[aria-current="true"]{color:var(--text)}
.tabs__tab[aria-current="page"]::after,.tabs__tab[aria-current="true"]::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--g900)}
.tabs__tab[aria-current] .tabs__count{background:var(--g900);color:#fff}
.chip[aria-current="true"],.chip[aria-current="page"]{background:var(--g900);border-color:var(--g900);color:#fff}
a.chip,a.tabs__tab,a.seg__item,a.menu__item,a.sidebar__link,a.cmdk__item{text-decoration:none}
/* açılır katmanlar koyu yüzeyin içinde açılsa da açık bağlamı kullanır */
.menu,.dialog,.confirm,.cmdk,.popover,.drawer{--ctx-focus:var(--focus);color:var(--text)}

/* ------------------------------------------------------------------ 29. YERLEŞİM YARDIMCILARI */
.stack--xs{--stack-gap:8px} .stack--sm{--stack-gap:12px} .stack--lg{--stack-gap:24px} .stack--xl{--stack-gap:32px}
.cluster--sm{--cluster-gap:4px} .cluster--lg{--cluster-gap:12px}
.container--narrow{width:min(760px,100% - 2*var(--gutter))}
.flow>*+*{margin-top:var(--flow-gap,1em)}
/* kart ızgaraları: --grid-min ile otomatik; --2/3/4 kırılımlı (üye kartı: 1 → 2 → 3 → 4) */
.grid{display:grid;gap:var(--grid-gap,16px);grid-template-columns:repeat(auto-fill,minmax(min(var(--grid-min,260px),100%),1fr))}
.grid--2,.grid--3,.grid--4{grid-template-columns:minmax(0,1fr)}
@media (min-width:768px){.grid--2,.grid--3,.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.grid--3,.grid--4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1280px){.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.grid--gap-lg{--grid-gap:24px}
/* iki sütunlu içerik: --aside ≥1280 "1fr 392px" (pano), --2 ≥1024 "1fr 1fr" */
.cols{display:grid;gap:12px;align-items:start;grid-template-columns:minmax(0,1fr)}
@media (min-width:1024px){.cols--2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1280px){.cols--aside{grid-template-columns:minmax(0,1fr) 392px}}
.cols--gap-lg{gap:24px}
/* KPI satırı: telefonda 2×2 (dar telefonda tek sütun), ≥1024 dört sütun */
.kpi-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:479.98px){.kpi-grid{grid-template-columns:minmax(0,1fr)}}
@media (min-width:1024px){.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* ay grubu başlığı (faaliyet planı): BC 36 + sayım, yapışkan */
.month-head{position:sticky;top:var(--header-h);z-index:var(--z-sticky);display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:16px 0 12px;background:var(--bg-surface)}
.month-head__title{font:var(--t-h2)}
.month-head__count{font:var(--t-sm);color:var(--text-2)}
@media (max-width:767.98px){.month-head__title{font-size:1.5rem}}
.pager__gap{display:grid;place-items:center;min-width:32px;height:44px;color:var(--text-3)}

/* ------------------------------------------------------------------ 30. PUBLIC SAYFA BAŞLIĞI VE İÇERİK SAYFASI
   Gece bant yok: açık zeminde iz + h1 + açıklama (Ui/_PageHead). */
.page-intro{padding:28px 0 0}
.page-intro .crumbs{margin-bottom:16px}
.page-intro .section-head{margin-bottom:0;padding-bottom:28px;border-bottom:1px solid var(--border)}
.page-intro .section-head__title{text-wrap:balance}
.page-intro+.section{padding-top:40px}
@media (min-width:768px){.page-intro{padding-top:40px}.page-intro .section-head{padding-bottom:36px}.page-intro+.section{padding-top:48px}}
.section-head__meta{margin-top:8px;font:var(--t-meta);color:var(--text-2)}
.section-head__tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.section-head--sm .section-head__title{font:var(--t-h2)}
/* içerik sayfası: .rich (720) + ≥1280 sağda "Bu sayfada" */
.content-page{display:grid;gap:32px;align-items:start}
@media (min-width:1280px){.content-page{grid-template-columns:minmax(0,720px) 240px;justify-content:space-between}}
.toc{display:none}
@media (min-width:1280px){.toc{display:grid;gap:2px;position:sticky;top:calc(var(--header-h) + 24px);padding-left:16px;border-left:1px solid var(--border)}}
.toc__title{margin-bottom:6px;font:600 .9375rem/1.3 var(--font-body)}
.toc a{display:flex;align-items:center;min-height:44px;font:var(--t-meta);color:var(--text-2)}
.toc a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.toc a[aria-current="true"]{color:var(--text);font-weight:600}
.rich>:first-child{margin-top:0}
.rich ul,.rich ol{padding-left:1.4em}
.rich ul{list-style:disc} .rich ol{list-style:decimal}
.rich blockquote{margin:0 0 1em;padding-left:16px;border-left:3px solid var(--border-strong);color:var(--text-2)}
.rich iframe,.rich video{max-width:100%}

/* ------------------------------------------------------------------ 31. AÇILIR MENÜ (tetikleyici + .menu)
   <div class="has-menu"><button data-menu-trigger aria-controls="m1" aria-expanded="false">…</button>
   <div class="menu menu--pop" id="m1" role="menu" hidden>…</div></div>  — davranış std-ui.js */
.has-menu{position:relative}
.menu--pop{position:absolute;z-index:var(--z-dropdown);top:calc(100% + 6px);right:0;max-width:calc(100vw - 32px);max-height:min(560px,calc(100vh - 96px));overflow:auto}
.menu--start{right:auto;left:0}
.menu--pop:not([hidden]){animation:menu-in var(--d-base) var(--ease-enter)}
@keyframes menu-in{from{opacity:0;transform:translateY(-4px)}}
.menu__item[aria-current="page"]{background:var(--bg-muted);font-weight:600}
.menu__label{padding:10px 10px 6px;font:600 .8125rem/1.2 var(--font-body);color:var(--text-2)}
.menu__head b{display:block;font-weight:600}
.menu__head span{font:var(--t-sm);color:var(--text-2)}
/* public başlık açılır menüleri */
.site-nav__item{position:relative;display:flex}
.site-nav .menu--pop{top:calc(100% - 10px);left:0;right:auto;min-width:264px}
.site-nav__link{cursor:pointer}
.site-nav__link[aria-expanded="true"]{color:#fff}
.site-nav__link .bi{transition:transform var(--d-fast) var(--ease-standard)}
.site-nav__link[aria-expanded="true"] .bi{transform:rotate(180deg)}
.site-nav__link:focus-visible{outline-offset:-4px}
.user-btn[aria-expanded="true"] .bi-chevron-down{transform:rotate(180deg)}
.user-btn .bi-chevron-down{transition:transform var(--d-fast)}
@media (max-width:1023.98px){
  .site-header__inner{gap:12px}
  .brand{flex:0 1 auto}
  .brand__name,.brand__sub{overflow:hidden;text-overflow:ellipsis}
}
@media (max-width:359.98px){.brand__sub{display:none}}

/* ------------------------------------------------------------------ 32. MOBİL MENÜ EKLERİ (dialog.mnav) */
.mnav{height:100vh;height:100dvh;overscroll-behavior:contain}
.mnav[open]{display:flex;flex-direction:column}
.mnav__head{position:sticky;top:0;z-index:1;flex:none;background:var(--chrome)}
.mnav__list{flex:1 0 auto}
a.mnav__item{text-decoration:none}
.mnav__item .bi{transition:transform var(--d-fast)}
.mnav__item[aria-expanded="true"] .bi{transform:rotate(180deg)}
.mnav__item.is-active{box-shadow:inset 3px 0 0 var(--brand)}
.mnav__group{padding:20px 20px 8px;font:600 .8125rem/1.2 var(--font-body);color:var(--on-chrome-3)}
.mnav__foot{flex:none}
.mnav__cta{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mnav__cta .btn{min-height:52px}
.mnav__contact{flex-wrap:wrap}

/* ------------------------------------------------------------------ 33. ALT BİLGİ EKLERİ */
.site-footer .social ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.site-footer__android{margin-top:16px}
.site-footer__line{display:flex;align-items:center;gap:10px;min-height:44px;font:var(--t-meta);color:var(--on-chrome-2)}
.site-footer__line .bi{color:var(--on-chrome-3);font-size:1.0625rem}
.site-footer__bottom a{display:inline-flex;align-items:center;min-height:44px}

/* ------------------------------------------------------------------ 34. YÖNETİM KABUĞU EKLERİ */
.sidebar__top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.sidebar__close{display:inline-grid}
.sidebar nav{display:grid;gap:2px;align-content:start}
.sidebar__section{display:grid;gap:2px}
.sidebar__link .kbd{margin-left:auto}
.sidebar__sub>summary{list-style:none;cursor:pointer}
.sidebar__sub>summary::-webkit-details-marker{display:none}
.sidebar__sub>summary .bi-chevron-down{width:auto;margin-left:auto;font-size:.75rem;transition:transform var(--d-fast)}
.sidebar__sub[open]>summary .bi-chevron-down{transform:rotate(180deg)}
.sidebar__sub-list{display:grid;gap:2px;margin:2px 0 6px 21px;padding-left:10px;border-left:1px solid var(--chrome-line)}
.sidebar__sub-list .sidebar__link[aria-current="page"]::before{left:-11px}
.sidebar__link--danger,.sidebar__link--danger .bi{color:var(--brand-on-dark)}
.sidebar__user .avatar{flex:none}
.sidebar__user-text{min-width:0}
.sidebar__user-text b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar__legacy{display:none}
.sidebar-scrim{position:fixed;inset:0;z-index:calc(var(--z-drawer) - 1);background:var(--scrim);opacity:0;visibility:hidden;transition:opacity var(--d-slow),visibility 0s linear var(--d-slow)}
.sidebar-scrim.is-open{opacity:1;visibility:visible;transition:opacity var(--d-slow)}
@media (min-width:1024px){.sidebar__close,.sidebar-scrim{display:none}}
.crumb-bar{flex:0 1 auto;overflow:hidden}
.crumb-bar>*{flex:none}
.crumb-bar a{color:var(--text-2)}
.crumb-bar a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.crumb-bar b{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}
.search-trigger__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .user-btn{color:var(--text);padding:0 6px}
.topbar .user-btn:hover{background:var(--bg-muted)}
.topbar .user-btn .bi{color:var(--text-2)}
.topbar .split-btn .menu--pop{min-width:260px}
@media (max-width:767.98px){
  .topbar{gap:4px}
  .crumb-bar{flex:1;min-width:0}
  .crumb-bar>:not(b){display:none}
  .search-trigger{flex:none;width:44px;max-width:none;margin-left:0;padding:0;justify-content:center}
  .search-trigger__text,.search-trigger .kbd{display:none}
  .topbar__actions .topbar__site{display:none}
}
@media (min-width:768px) and (max-width:1279.98px){.search-trigger .kbd{display:none}}
/* formun yapışkan eylem çubuğu içerik kenarlarına taşar; çubuk varken alt boşluk gerekmez */
.content .action-bar{margin:24px calc(-1 * var(--content-px)) 0;padding-inline:var(--content-px)}
.content:has(.action-bar){padding-bottom:0}
/* yüzen toplu işlem çubuğu (içerik alanının altında, sol hizalı) */
.bulk-bar--float{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));overflow-x:auto}
@media (min-width:768px){.bulk-bar--float{left:28px;right:auto;bottom:24px;max-width:calc(100% - 56px)}}
@media (min-width:1024px){.bulk-bar--float{left:calc(var(--sidebar-w-md) + 32px);max-width:calc(100% - var(--sidebar-w-md) - 64px)}}
@media (min-width:1280px){.bulk-bar--float{left:calc(var(--sidebar-w) + 32px);max-width:calc(100% - var(--sidebar-w) - 64px)}}
body:has(.bulk-bar--float:not([hidden])) .toast-region{bottom:calc(24px + 64px + 16px)}
/* kısayol listesi diyaloğu */
.dialog--wide{width:min(600px,100% - 32px)}
.shortcuts{margin-top:16px}
.shortcuts dt{font-weight:500}

/* ------------------------------------------------------------------ 35. GİRİŞ DÜZENİ (_AuthLayout)
   ≥1024 iki sütun: solda gece fotoğraf paneli, sağda form; <1024 fotoğraf üstte 240 px. */
.auth-page{background:var(--bg-surface)}
.auth{display:grid;min-height:100vh;min-height:100dvh;grid-template-rows:auto 1fr}
.auth__media{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;gap:24px;min-height:240px;padding:20px var(--gutter) 24px;overflow:hidden;background:var(--chrome);color:#fff}
.auth__media>img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:var(--focal,50% 45%)}
.auth__media::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(11,14,18,.72) 0%,rgba(11,14,18,0) 34%),linear-gradient(0deg,var(--chrome) 0%,rgba(11,14,18,.8) 38%,rgba(11,14,18,.3) 72%,rgba(11,14,18,.1) 100%)}
.auth__brand{display:inline-flex;align-items:center;gap:12px;min-height:44px;align-self:flex-start;color:#fff}
.auth__brand img{width:44px;height:44px}
.auth__brand b{display:block;font:700 1rem/1.15 var(--font-body)}
.auth__brand small{display:block;font:500 .8125rem/1.2 var(--font-body);color:var(--on-chrome-2)}
.auth__display{font:var(--t-display-1);font-size:3.25rem;line-height:1;letter-spacing:var(--ls-display);max-width:10ch;text-wrap:balance}
.auth__credit{display:none;font:500 .8125rem/1.2 var(--font-body);color:var(--on-chrome-2)}
.auth__panel{display:grid;align-content:start;justify-items:center;padding:32px var(--gutter) 48px}
.auth__card{display:grid;gap:20px;width:min(440px,100%)}
.auth__head{display:grid;gap:8px}
.auth__title{font:var(--t-h2)}
.auth__text{color:var(--text-2)}
.auth__back{justify-self:start}
@media (max-width:767.98px){.auth__title{font-size:1.875rem}}
@media (min-width:1024px){
  .auth{grid-template-columns:minmax(0,1.15fr) minmax(460px,1fr);grid-template-rows:none}
  .auth__media{position:sticky;top:0;height:100vh;height:100dvh;padding:40px 56px 56px}
  .auth__media::after{background:linear-gradient(180deg,rgba(11,14,18,.6) 0%,rgba(11,14,18,0) 22%),linear-gradient(0deg,rgba(11,14,18,.94) 0%,rgba(11,14,18,.72) 30%,rgba(11,14,18,.2) 64%,rgba(11,14,18,.2) 100%)}
  .auth__display{font-size:5.5rem}
  .auth__credit{display:inline-flex;align-items:center;gap:8px}
  .auth__panel{align-content:center;padding:48px 56px}
}
@media (min-width:1280px){.auth__display{font-size:6rem}}

/* ------------------------------------------------------------------ 36. YAZDIRMA */
@media print{
  .site-header,.site-footer,.mnav,.sidebar,.sidebar-scrim,.topbar,.action-bar,.toast-region,.skip-link,.bulk-bar{display:none!important}
  .admin{display:block}
  .content{padding:0}
  .card,.table-card{box-shadow:none;break-inside:avoid}
}

/* ------------------------------------------------------------------ 37. PARÇA DÜZELTMELERİ (Ui/ partial'ları) */
@media (min-width:768px){.crumbs__back{display:none}}
.empty__icon--ok{background:var(--success-soft);color:var(--success-text)}
.action-bar__errors{color:var(--danger-text);font-weight:600}
/* bölünmüş düğmenin ikinci düğmesi (menü kabı son çocuk olduğunda da) */
.split-btn>.btn+.btn{border-radius:0 var(--r-md) var(--r-md) 0;border-left:1px solid rgba(255,255,255,.2);width:44px;padding:0}
.split-btn>.btn:first-child{border-radius:var(--r-md) 0 0 var(--r-md)}
.search-trigger{min-width:0}
.site-header__mobile .bi-list{font-size:1.625rem}
.sidebar__sub>summary[aria-current]{color:#fff}
.sidebar__sub>summary[aria-current] .bi{color:#fff}
/* 1024–1279: başlık tek satıra sığsın (marka + 4 öğe + misafir kümesi ≤ 960; ölçüldü) */
@media (min-width:1024px) and (max-width:1279.98px){
  .site-header__inner{gap:20px}
  .site-nav__link{padding:0 10px}
  .site-nav__link[aria-current="page"]::after,.site-nav__link.is-active::after{left:10px;right:10px}
  .site-header__desk .btn{padding:0 14px}
}

/* açık form eylem çubuğu varken bildirimler çubuğun üstünde yığılır */
body:has(.action-bar) .toast-region{bottom:calc(72px + 24px)}
@media (max-width:767.98px){body:has(.action-bar) .toast-region{bottom:calc(120px + env(safe-area-inset-bottom))}}
/* eylem çubuğu ≥768 tek satır: durum metni daralır, düğmeler kırılmaz */
@media (min-width:768px){
  .action-bar{flex-wrap:nowrap}
  .action-bar__state{flex:1 1 0;min-width:0}
  .action-bar__state>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .action-bar .btn{flex:none}
}

/* düğme gibi görünen POST formları (Çıkış yap): form kutu üretmez, düğme bağlantı gibi giyinir */
.inline-form{display:contents}
button.sidebar__link{width:100%;border:0;background:none;text-align:left}
button.mnav__item{cursor:pointer}
/* grafik (std-ui.js [data-chart]): ay grubu odaklanabilir; odak halkası şeridin kendisinde */
.chart svg{display:block;overflow:visible}
.chart__col{outline:none;cursor:default}
.chart__col:focus-visible>rect{stroke:var(--focus);stroke-width:2}
.chart__tip[hidden]{display:none}
/* <768 yığılmış tablo: satırda "⋯" (.row-actions__more) yoksa eylemler gizlenmez, kartın altında durur
   (aksi halde telefonda silme/düzenleme düğmesine ulaşılamaz) */
@media (max-width:767.98px){
  .table--stack td.col-actions:not(:has(.row-actions__more)){position:static;width:100%;padding-top:8px}
  .table--stack .row-actions:not(:has(.row-actions__more)) .icon-btn{display:inline-grid}
  .table--stack tr:not(:has(.row-actions__more)){padding-right:16px}
}
/* segment, zorluk/hesap seçici ve çip içindeki gerçek radyo/onay girdisi görünmez ama odaklanabilir kalır
   (<label class="seg__item"><input type="radio" name="Direction" value="0">Gelir</label>) */
.seg__item>input:is([type=radio],[type=checkbox]),.diff-pick__opt>input,.acct-pick__opt>input,.chip>input:is([type=radio],[type=checkbox]){position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.diff-pick__opt:has(input:focus-visible),.acct-pick__opt:has(input:focus-visible),.chip:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.chip:has(input:checked){background:var(--g900);border-color:var(--g900);color:#fff}
.diff-pick__opt,.acct-pick__opt{position:relative}
/* kullanıcı adı e-posta olabilir: başlıkta kısalır (tam ad menü başında), menüde sarar */
@media (min-width:1280px){.user-btn__name{display:inline-block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}}
.menu__head b,.menu__head span{overflow-wrap:anywhere}
.sidebar__user-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* bildirim bölgesi üst katmanda (std-ui.js popover="manual": açık diyalog/çekmece perdesinin üstünde görünür);
   tarayıcının [popover] biçemleri (inset:0, kenarlık, zemin, dolgu) sıfırlanır */
.toast-region[popover]{inset:auto 24px 24px auto;margin:0;padding:0;border:0;background:transparent;color:inherit;overflow:visible;height:auto}
.toast-region::backdrop{display:none}
@media (max-width:767.98px){.toast-region[popover]{inset:auto 16px calc(16px + env(safe-area-inset-bottom)) 16px}}
/* eski görünümlerde yüklenen admin-responsive.css (<768) yalın .btn{min-height:40px} kuralı kabuğa sızmasın:
   üst bar ("+ Yeni" bölünmüş düğme), yan menü, palet, onay, kısayollar ve bildirimler 44 px kalır */
.admin-body :where(.topbar,.sidebar,dialog) .btn:not(.btn--lg,.btn--xl){min-height:var(--btn-h)}
/* ray kipi (≥1024, "Menüyü daralt"): alt listesi olan öğe ("Kurumsal sayfalar") açılınca alt bağlantılar rayın
   yanında etiketli açılır pencere olur; std-admin.js konumlar (--flyout-top), dışarı tıklama / Esc / Tab ile kapatır */
@media (min-width:1024px){
  .admin.is-rail .sidebar__sub[open]>.sidebar__sub-list{display:grid;position:fixed;left:calc(var(--rail-w) + 6px);top:var(--flyout-top,72px);z-index:var(--z-dropdown);min-width:248px;max-height:calc(100vh - 16px);overflow-y:auto;margin:0;padding:6px;border:1px solid var(--chrome-line);border-radius:var(--r-lg);background:var(--chrome-2);box-shadow:var(--e3)}
  .admin.is-rail .sidebar__sub[open]>.sidebar__sub-list[data-label]::before{content:attr(data-label);padding:10px 12px 8px;font:600 .8125rem/1.2 var(--font-body);color:var(--on-chrome-3)}
  .admin.is-rail .sidebar__sub-list .sidebar__link{justify-content:flex-start;width:auto;min-height:44px;padding:0 12px}
  .admin.is-rail .sidebar__sub-list .sidebar__link span{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:nowrap}
  .admin.is-rail .sidebar__sub-list .sidebar__link[aria-current="page"]::before{left:0}
  .admin.is-rail .sidebar__sub[open]>summary{background:var(--n850);color:#fff}
}
