/* OnionZero Panel — Design System v8 "UNIFIED" (primitive gövdesi)
   TOKEN'LAR BU DOSYADA DEĞİL: kanonik tek kaynak assets/oz-tokens.css
   (layout head'inde bu dosyadan ÖNCE yüklenir). Buradaki tüm kurallar
   var(--token) referansıyla çalışır; eski isimler (--deep/--violet/…)
   oz-tokens'taki köprü üzerinden site paletine (--ozv-*) bağlıdır.
   Mor kimlik kaldırıldı: vurgu rengi kobalt #2563EB + buz #38BDF8,
   doğrulama zümrüt #10B981. Dark = :root varsayılanı; light tema
   <html data-theme="light"> üzerinden token düzeyinde devreye girer.
   v2: refined cards, icon-chip stat cards, table-wrap, form sections,
   page-title/page-desc pattern, ghost buttons, chip-dot, login glow.
   v8: token delegasyonu + hiyerarşi düzeltmesi (h2 artık gerçek başlık),
   içerik genişliği 1360px (+ .oz-content-narrow 880px), tekil status
   dot (.oz-dot) ve tablo standardı (.oz-table) eklentileri, .oz-skip bu
   dosyaya taşındı, .oz-search kaldırıldı (tek giriş: spotlight). */


*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--deep);color:var(--text);font:14px/1.65 var(--ui);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  transition:background-color .25s ease,color .25s ease}
a{color:var(--blue);text-decoration:none;transition:color .15s ease}
a:hover{text-decoration:underline;color:var(--violet)}
::selection{background:rgba(37,99,235,.32);color:inherit}
:focus-visible{outline:2px solid var(--violet);outline-offset:2px;border-radius:var(--r1)}
a:focus-visible,button:focus-visible,[type=checkbox]:focus-visible,[type=radio]:focus-visible{
  outline:2px solid var(--violet);outline-offset:2px}

/* ======================= SCROLLBAR ======================= */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--line2);border-radius:8px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:var(--muted);border-radius:8px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-corner{background:transparent}
*{scrollbar-width:thin;scrollbar-color:var(--line2) transparent}

/* ======================= LAYOUT: sidebar ======================= */
.oz-side{position:fixed;inset:0 auto 0 0;width:var(--side-w);background:var(--ink);
  border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:40;
  transition:width .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1),background-color .25s ease,border-color .25s ease}
.oz-brand{display:flex;align-items:center;gap:var(--s3);padding:20px 20px 14px;text-decoration:none}
.oz-brand:hover{text-decoration:none}
.oz-brand img{display:block;height:30px;width:auto}
.oz-brand .oz-brand-mark{display:none;height:32px;width:32px;margin:0 auto}
.oz-side-sub{padding:0 20px 14px;font:600 10.5px/1 var(--ui);letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.oz-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:14px 12px 24px}
.oz-nav-title{font:600 10.5px/1 var(--ui);letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);padding:0 12px;margin:20px 0 6px;white-space:nowrap}
.oz-nav-group:first-child .oz-nav-title{margin-top:0}
.oz-nav-link{position:relative;display:flex;align-items:center;gap:12px;padding:9px 12px;
  margin-bottom:2px;border-radius:var(--r1);color:var(--muted);font-weight:500;
  font-size:13.5px;white-space:nowrap;
  transition:background-color .18s ease,color .18s ease,transform .18s ease}
.oz-nav-link:hover{background:var(--surface);color:var(--text);text-decoration:none;transform:translateX(2px)}
.oz-nav-link.on{background:var(--surface);color:var(--text);font-weight:600}
.oz-nav-link.on::before{content:'';position:absolute;left:-12px;top:50%;transform:translateY(-50%);
  width:3px;height:60%;border-radius:3px;background:var(--grad)}
.oz-nav-link svg{flex:0 0 auto;width:18px;height:18px;stroke:currentColor;fill:none;
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}
.oz-nav-link:hover svg{transform:scale(1.1)}
.oz-nav-badge{margin-left:auto}
.oz-side-foot{padding:12px 20px;border-top:1px solid var(--line);font-size:10.5px;
  color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* rail collapse toggle — sidebar altındaki küçük ikon butonu */
.oz-rail-toggle{display:inline-grid;place-items:center;width:36px;height:36px;
  margin:8px auto 4px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r1);color:var(--muted);cursor:pointer;
  transition:color .15s ease,border-color .15s ease}
.oz-rail-toggle:hover{color:var(--text);border-color:var(--line2)}
.oz-rail-toggle svg{width:16px;height:16px;stroke:currentColor;fill:none;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
  transition:transform .2s ease}
body.oz-rail .oz-rail-toggle svg{transform:rotate(180deg)}
.oz-scrim{display:none}

.oz-main{margin-left:var(--side-w);min-height:100vh;display:flex;flex-direction:column;
  transition:margin-left .2s cubic-bezier(.4,0,.2,1)}

/* ---- desktop icon rail: body.oz-rail (>=961px only; mobile keeps drawer) ---- */
@media(min-width:961px){
  body.oz-rail .oz-side{width:var(--rail-w)}
  body.oz-rail .oz-side .oz-nav-label,
  body.oz-rail .oz-side .oz-nav-title,
  body.oz-rail .oz-side .oz-nav-badge,
  body.oz-rail .oz-side .oz-side-sub,
  body.oz-rail .oz-side .oz-side-foot{display:none}
  body.oz-rail .oz-brand{padding:16px 0;justify-content:center}
  body.oz-rail .oz-brand .oz-brand-full{display:none}
  body.oz-rail .oz-brand .oz-brand-mark{display:block}
  body.oz-rail .oz-nav{padding:12px 10px 24px}
  body.oz-rail .oz-nav-link{justify-content:center;padding:10px}
  body.oz-rail .oz-nav-link:hover{transform:none}
  body.oz-rail .oz-nav-link.on::before{left:-10px}
  body.oz-rail .oz-main{margin-left:var(--rail-w)}
}

/* ======================= LAYOUT: top bar ======================= */
.oz-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:var(--s4);
  flex-wrap:nowrap;overflow:hidden; /* never wrap/overflow the bar, even at 360px */
  min-height:var(--top-h);padding:6px 24px;background:var(--top-bg);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);border-top:2px solid transparent;border-image:var(--grad) 1}
/* v8: başlık/breadcrumb asla kırpılmaz — gerektiğinde ikinci satıra sarar,
   dar ekranda (<=768px) tamamen gizlenir (ellipsis yok). */
.oz-top-title{font-size:15px;font-weight:600;letter-spacing:-.01em;min-width:0;
  line-height:1.3;overflow-wrap:anywhere}
.oz-top-spacer{flex:1}
.oz-burger{display:none;align-items:center;justify-content:center;width:36px;height:36px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r1);
  color:var(--text);cursor:pointer;padding:0;transition:all .15s ease}
.oz-burger:hover{border-color:var(--line2);background:var(--surface2)}
.oz-burger svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}
/* theme toggle button (markup/JS wired separately; contract: [data-oz-theme-toggle]) */
[data-oz-theme-toggle]{display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;flex:0 0 auto;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r1);color:var(--muted);cursor:pointer;padding:0;transition:all .15s ease}
[data-oz-theme-toggle]:hover{border-color:var(--line2);background:var(--surface2);color:var(--text)}
[data-oz-theme-toggle] svg{width:18px;height:18px;stroke:currentColor;fill:none;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* icon swap by state: dark theme shows sun (switch to light), light shows moon */
[data-oz-theme-toggle] .oz-icon-moon{display:none}
[data-oz-theme-toggle][aria-pressed="true"] .oz-icon-sun{display:none}
[data-oz-theme-toggle][aria-pressed="true"] .oz-icon-moon{display:block}
/* generic 36px icon button (same chrome as theme toggle / burger) */
.oz-iconbtn{display:inline-grid;place-items:center;width:36px;height:36px;flex:0 0 auto;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r1);
  color:var(--muted);cursor:pointer;padding:0;text-decoration:none;
  transition:color .15s ease,border-color .15s ease,background-color .15s ease}
.oz-iconbtn:hover{border-color:var(--line2);background:var(--surface2);color:var(--text);text-decoration:none}
.oz-iconbtn svg{width:18px;height:18px;stroke:currentColor;fill:none;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.oz-user{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;white-space:nowrap}
.oz-avatar{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;
  background:var(--surface);border:1px solid var(--line2);color:var(--teal);
  font-size:12px;font-weight:700;transition:border-color .15s ease}
.oz-avatar:hover{border-color:var(--teal)}
.oz-user-name{color:var(--text);font-weight:600}

/* ======================= LAYOUT: content ======================= */
/* v8 genişlik politikası: 1360px tavan, sol-sağ auto (ortalı) + simetrik
   padding — ultra-genişte sağda dev boşluk oluşmaz. Dar sayfalar (formlar)
   .oz-content-narrow ile 880px tavana düşer (aynı ortalama korunur). */
.oz-content{width:100%;max-width:1360px;margin:0 auto;padding:24px 32px 48px;flex:1}
.oz-content-narrow{max-width:880px}
.oz-foot{margin:32px 0 0;font-size:11px;color:var(--muted)}
/* v8 (oz-lab'dan göç, yapısal): kısa içerikte footer viewport dibinde durur.
   oz-main flex column + min-height:100vh; içerik de column olup oz-foot
   margin-top:auto ile aşağı itilir. Bare (login) düzeni grid kalır. */
body:not(.oz-bare) .oz-content{display:flex;flex-direction:column}
body:not(.oz-bare) .oz-content>.oz-foot{margin-top:auto;padding-top:28px}

/* login/register bare pages: no sidebar and top bar */
.oz-bare{border-top:2px solid transparent;border-image:var(--grad) 1}
.oz-bare .oz-main{margin-left:0}
.oz-bare .oz-content{max-width:none;display:grid;place-items:center;align-content:center;gap:0;min-height:100vh;padding:24px}
.oz-bare .flash,.oz-bare .oz-foot{width:100%;max-width:400px;margin-left:auto;margin-right:auto}

/* ======================= TYPOGRAPHY ======================= */
h1{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.25;margin:0 0 16px}
/* v8: h2 artık gerçek bölüm başlığı (eski 11px mono kicker kaldırıldı —
   başlık hiyerarşisi görünür). Kicker görünümü istenen yerde
   .section-kicker kullanılır. */
h2{font-size:17px;font-weight:600;letter-spacing:-.01em;line-height:1.35;color:var(--text);margin:26px 0 12px}
h3{font-size:15px}
p{max-width:74ch}
code,.mono{font-family:var(--mono);font-size:.9em;color:var(--mint)}
pre{background:var(--deep);border:1px solid var(--line);border-radius:var(--r1);padding:12px;
  overflow:auto;max-width:100%;font-family:var(--mono);font-size:11px;color:var(--mint)}
.muted{color:var(--muted)}
hr{border:0;border-top:1px solid var(--line);margin:24px 0}

/* v2 page title pattern: <h1 class="page-title"> + <p class="page-desc"> */
.page-title{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin:0}
.page-desc{font-size:14px;line-height:1.6;color:var(--muted);max-width:68ch;margin:6px 0 0}
/* v2 section kicker: hairline gradient dash + uppercase label */
.section-kicker{display:flex;align-items:center;gap:10px;margin:32px 0 12px;
  font:600 11px/1 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.section-kicker::before{content:'';flex:0 0 auto;width:16px;height:2px;border-radius:2px;background:var(--grad)}

/* ======================= PAGE HEADER ======================= */
.page-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.page-header h1{margin:0}
.page-header .btn{flex-shrink:0}
.page-header .ph-text{flex:1;min-width:200px}
.page-header .ph-text .page-title{margin:0}
.page-header .ph-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ======================= CARDS & STATS ======================= */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:24px;
  box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,border-color .2s ease,background-color .25s ease}
.card:hover{border-color:var(--line2);box-shadow:var(--shadow-md)}
/* card header pattern: title row with bottom border */
.card-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin:-24px -24px 20px;padding:16px 24px;border-bottom:1px solid var(--line)}
.card-head h2,.card-head h3{margin:0;flex:1}
.card-head .ch-actions{display:flex;gap:8px;align-items:center}
/* padding-less card for flush tables / list rows inside */
.card-pad0{padding:0;overflow:hidden}
.card-pad0 .card-head{margin:0;padding:16px 20px}
.card-pad0>table{border:0;border-radius:0;box-shadow:none;background:transparent}
.card-pad0>.table-wrap{border:0;border-radius:0;box-shadow:none}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:16px}
.stat{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);
  padding:16px;overflow:hidden;transition:all .2s cubic-bezier(.4,0,.2,1)}
.stat::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--grad);opacity:0;transition:opacity .2s ease}
a:hover .stat{border-color:var(--line2);box-shadow:var(--shadow-md);transform:translateY(-2px)}
a:hover .stat::before{opacity:1}
.stat .n{font-size:24px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.stat .l{color:var(--muted);font-size:11px;margin-top:2px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* ======================= TABLES =======================
   Softer: no heavy fill; zebra + hover through theme-aware tints. */
table{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-sm)}
th,td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{padding:10px 16px;font:600 10.5px/1.4 var(--ui);letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);background:var(--th-bg)}
tbody tr{transition:background .12s ease}
tbody tr:hover td,tr:hover td{background:var(--row-hover)}
tbody tr:nth-child(even) td{background:var(--row-zebra)}
tbody tr:nth-child(even):hover td{background:var(--row-hover)}
tr:last-child td{border-bottom:0}
/* card-wrapped table: radius + border + clipped corners; scrolls horizontally when narrow */
.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);
  box-shadow:var(--shadow-sm);overflow:auto}
.table-wrap table{border:0;border-radius:0;box-shadow:none;background:transparent;margin:0}

/* v8 tablo standardı (.oz-table): table-wrap yayılımı için safe defaults.
   Mevcut table/table-wrap kuralları geçerli kalır — bu katman kırılmaz,
   opt-in sınıf yalnız hizalama/sıkışma varsayılanları ekler. */
.oz-table th{white-space:nowrap}
.oz-table td{vertical-align:middle}
.oz-table .col-num,.oz-table td.num,.oz-table th.num{text-align:right;font-variant-numeric:tabular-nums}
.oz-table .col-act,.oz-table td.act,.oz-table th.act{width:1%;white-space:nowrap}
.oz-table .col-trunc,.oz-table td.trunc{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ======================= BADGES (chip) ======================= */
.chip{display:inline-block;padding:4px 12px;border-radius:var(--r1);font-size:11px;font-weight:600;
  line-height:1.5;white-space:nowrap}
.chip-green{background:rgba(16,185,129,.14);color:var(--green)}
.chip-amber{background:rgba(245,158,11,.14);color:var(--amber)}
.chip-red{background:rgba(255,92,108,.14);color:var(--red)}
.chip-gray{background:var(--surface2);color:var(--muted)}
.chip-blue{background:rgba(37,99,235,.14);color:var(--blue)}
/* v2: status dot + text inline — combine with chip-green/-red/-amber/-gray/-blue */
.chip-dot{display:inline-flex;align-items:center;gap:7px;padding:3px 12px 3px 9px}
.chip-dot :is(.status-dot,.oz-dot){margin-right:0;flex:0 0 auto}

/* ======================= BUTTONS ======================= */
.btn{display:inline-block;background:var(--grad);color:var(--on-grad);border:0;border-radius:var(--r1);
  padding:8px 16px;font-weight:700;cursor:pointer;font-size:14px;font-family:var(--ui);
  text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;
  box-shadow:var(--hl-btn)}
.btn:hover{filter:brightness(1.1);text-decoration:none;transform:translateY(-1px);
  box-shadow:var(--hl-btn),var(--shadow-md)}
.btn:active{transform:translateY(0);box-shadow:var(--hl-btn-soft),var(--shadow-sm)}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:none;transform:none;box-shadow:none}
.btn-sm{padding:4px 12px;font-size:11px}
.btn-danger{background:var(--red);color:#fff}
.btn-warn{background:var(--amber);color:#fff}
:root[data-theme="light"] .btn-warn{color:#fff}
.btn-mut{background:var(--surface);color:var(--text);border:1px solid var(--line2)}
.btn-mut:hover{border-color:var(--violet);filter:none;box-shadow:var(--hl-btn-soft),0 0 0 3px var(--ring)}
/* v2: quiet tertiary action — no bg, muted text, surface on hover */
.btn-ghost{background:transparent;color:var(--muted);border:1px solid transparent;box-shadow:none;font-weight:600}
.btn-ghost:hover{background:var(--surface);color:var(--text);border-color:var(--line);
  filter:none;transform:none;box-shadow:none}
.btn-ghost:active{box-shadow:none}
.linkbtn{background:none;border:0;padding:0;color:var(--blue);cursor:pointer;font:inherit;transition:color .15s ease}
.linkbtn:hover{text-decoration:underline;color:var(--violet)}
form.inline{display:inline}

/* ======================= FORMS ======================= */
label{display:block;color:var(--teal);font-size:11px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;margin:12px 0 4px}
input,select,textarea{background:var(--ink);border:1px solid var(--line);color:var(--text);
  border-radius:var(--r1);padding:10px 14px;width:100%;max-width:420px;font:inherit;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
input:hover,select:hover,textarea:hover{border-color:var(--line2)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--violet);
  box-shadow:0 0 0 3px var(--ring);background-color:var(--focus-bg)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.6}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--violet)}
input[type=file]{padding:8px 14px}
input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}
select{appearance:none;padding-right:32px;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="%2394A3B8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>');
  background-repeat:no-repeat;background-position:right 10px center}
:root[data-theme="light"] select{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="%2348597E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>')}
/* Açılır liste öğeleri: koyu temada yerel arka planla okunabilir kalsın
   (v8: oz-lab'dan göç, yapısal). */
select option{background-color:var(--ink);color:var(--text)}
.filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:16px}
.filters label{margin-top:0}
.filters input,.filters select{max-width:220px}
/* v2: form card with titled sections */
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);
  padding:24px;box-shadow:var(--shadow-sm);max-width:720px;
  transition:box-shadow .2s ease,border-color .2s ease,background-color .25s ease}
.form-card:hover{border-color:var(--line2)}
.form-section{padding:20px 0;border-bottom:1px solid var(--line)}
.form-section:first-child{padding-top:0}
.form-section:last-child{padding-bottom:0;border-bottom:0}
.form-section .fs-title{font-size:14px;font-weight:600;letter-spacing:-.01em;margin:0 0 2px}
.form-section .fs-desc{font-size:12.5px;line-height:1.55;color:var(--muted);margin:0 0 8px;max-width:64ch}
/* v2: inline input addon — <div class="input-group"><input>…<span class="ig-addon"> */
.input-group{display:flex;align-items:stretch;max-width:420px}
.input-group>input,.input-group>select{flex:1;min-width:0;max-width:none}
.input-group>input:not(:first-child),.input-group>select:not(:first-child){
  border-top-left-radius:0;border-bottom-left-radius:0}
.input-group>input:not(:last-child),.input-group>select:not(:last-child){
  border-top-right-radius:0;border-bottom-right-radius:0}
.input-group .ig-addon{display:inline-flex;align-items:center;gap:6px;padding:0 12px;
  background:var(--surface2);border:1px solid var(--line);color:var(--muted);
  font-size:12.5px;white-space:nowrap}
.input-group>.ig-addon:not(:first-child){border-left:0;border-radius:0 var(--r1) var(--r1) 0}
.input-group>.ig-addon:first-child{border-right:0;border-radius:var(--r1) 0 0 var(--r1)}
.input-group:focus-within .ig-addon{border-color:var(--violet)}

/* ======================= FLASH ALERTS ======================= */
.flash{border-radius:var(--r1);padding:14px 18px;margin-bottom:16px;border:1px solid var(--line);
  border-left-width:4px;display:flex;align-items:flex-start;gap:10px;font-size:13.5px;
  box-shadow:var(--shadow-sm);animation:flashIn .25s ease-out}
.flash::before{flex-shrink:0;font-weight:700;font-size:14px}
.flash-ok{background:rgba(16,185,129,.09);color:var(--green);border-color:rgba(16,185,129,.45)}
.flash-ok::before{content:'\2713'}
.flash-error{background:rgba(255,92,108,.09);color:var(--red);border-color:rgba(255,92,108,.45)}
.flash-error::before{content:'\2715'}
.flash .mono{color:var(--text);font-size:16px}
@keyframes flashIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

/* ======================= EMPTY STATE ======================= */
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:48px 24px;text-align:center;color:var(--muted);border:1px dashed var(--line2);
  border-radius:var(--r-card);background:var(--empty-bg)}
.empty-state svg{width:48px;height:48px;stroke:var(--line2);fill:none;stroke-width:1.2;margin-bottom:16px}
.empty-state p{margin:0 0 8px;font-size:14px;color:var(--muted);max-width:52ch}
.empty-state .muted{font-size:12px}

/* ======================= SKELETON LOADING ======================= */
.skeleton{position:relative;overflow:hidden;background:var(--surface);border-radius:var(--r1);
  color:transparent !important}
.skeleton *{visibility:hidden}
.skeleton::after{content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent 0%,rgba(37,99,235,.07) 40%,rgba(37,99,235,.07) 60%,transparent 100%);
  animation:skeletonShimmer 1.5s ease-in-out infinite}
@keyframes skeletonShimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}

/* ======================= LOGIN / REGISTER CARD ======================= */
.login{width:100%;max-width:400px;margin:64px auto}
.login .card{padding:32px;box-shadow:var(--shadow-lg)}
.login-mark{display:block;width:64px;height:64px;margin:0 auto 24px}

/* ======================= MOBILE (<=960px): icon rail + drawer ======================= */
@media(max-width:960px){
  .oz-side{width:var(--rail-w)}
  .oz-side .oz-nav-label,.oz-side .oz-nav-title,.oz-side .oz-nav-badge,
  .oz-side .oz-side-sub,.oz-side .oz-side-foot{display:none}
  .oz-brand{padding:14px 0;justify-content:center}
  .oz-brand .oz-brand-full{display:none}
  .oz-brand .oz-brand-mark{display:block}
  .oz-nav{padding:12px 10px 24px}
  .oz-nav-link{justify-content:center;padding:10px}
  .oz-nav-link:hover{transform:none}
  .oz-nav-link.on::before{left:-10px}
  .oz-main{margin-left:var(--rail-w)}
  /* open state: full drawer */
  .oz-side.open{width:var(--side-w);box-shadow:var(--shadow-lg)}
  .oz-side.open .oz-nav-label,.oz-side.open .oz-nav-title,.oz-side.open .oz-nav-badge,
  .oz-side.open .oz-side-sub,.oz-side.open .oz-side-foot{display:block}
  .oz-side.open .oz-brand{padding:20px 20px 14px;justify-content:flex-start}
  .oz-side.open .oz-brand .oz-brand-full{display:block}
  .oz-side.open .oz-brand .oz-brand-mark{display:none}
  .oz-side.open .oz-nav-link{justify-content:flex-start;padding:9px 12px}
  .oz-side.open .oz-nav-link.on::before{left:-12px}
  .oz-side.open .oz-nav-badge{margin-left:auto}
  .oz-scrim.show{display:block;position:fixed;inset:0;left:var(--side-w);z-index:35;
    background:var(--scrim-bg);backdrop-filter:blur(4px)}
  .oz-burger{display:inline-flex}
  .oz-top{padding:6px 16px;gap:12px}
  .oz-content{padding:16px 16px 40px}
  .oz-user-name{display:none}
  .cols{grid-template-columns:1fr}
  .page-header{flex-direction:column;align-items:flex-start;gap:12px}
  .page-header .ph-actions{width:100%;flex-wrap:wrap}
  .page-header .ph-actions .btn{width:auto;flex:0 0 auto}
}


/* ======================= ENHANCED COMPONENTS ======================= */

/* Action cards - dashboard quick actions */
.action-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; margin-bottom:24px }
.action-card { position:relative; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card); padding:20px; text-decoration:none!important; color:var(--text); display:flex; flex-direction:column; gap:8px; transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease, background-color .25s ease; overflow:hidden }
.action-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad); opacity:.7; transition:opacity .2s }
.action-card:hover { border-color:var(--line2); transform:translateY(-1px); box-shadow:var(--shadow-lg) }
.action-card:hover::before { opacity:1 }
.action-card .ac-icon { width:40px; height:40px; border-radius:10px; display:grid; place-items:center;
  background:rgba(37,99,235,.12); border:1px solid rgba(37,99,235,.22);
  transition:background-color .2s ease, border-color .2s ease }
.action-card:hover .ac-icon { background:rgba(37,99,235,.20); border-color:rgba(37,99,235,.34) }
.action-card .ac-icon svg { width:20px; height:20px; stroke:var(--violet); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round }
.action-card .ac-title { font-size:15px; font-weight:600 }
.action-card .ac-desc { font-size:13px; color:var(--muted); line-height:1.5 }

/* Status indicator dots — v8: .oz-dot kanonik hali; .status-dot geriye dönük
   uyumluluk için aynı görünüme köprülenir (kept class'lar kırılmaz). */
.oz-dot,.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--gray);flex:0 0 auto}
.status-dot{margin-right:6px;vertical-align:middle}
.oz-dot.green,.status-dot.green{background:var(--green);box-shadow:0 0 6px rgba(16,185,129,.5)}
.oz-dot.red,.status-dot.red{background:var(--red);box-shadow:0 0 6px rgba(255,92,108,.5)}
.oz-dot.amber,.status-dot.amber{background:var(--amber);box-shadow:0 0 6px rgba(245,158,11,.5)}
.oz-dot.blue{background:var(--blue);box-shadow:0 0 6px rgba(37,99,235,.5)}

/* Stat card variants (with optional tinted icon chip) */
.stat-row { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; margin-bottom:24px }
.stat-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card); padding:20px; transition:border-color .2s ease, box-shadow .2s ease, background-color .25s ease }
.stat-card:hover { border-color:var(--line2); box-shadow:var(--shadow-md) }
.stat-card .sc-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px }
/* LEGACY SAFETY: old "icon left, text right" pattern (.has-icon + .sc-body) is
   retired. The class is redefined as a plain block so a stale view using it
   renders the canonical layout instead of a broken flex row. */
.stat-card.has-icon { display:block }
.stat-card .sc-body { min-width:0 }
.stat-card .sc-icon { width:36px; height:36px; border-radius:10px; display:grid; place-items:center; flex:0 0 auto;
  background:rgba(37,99,235,.12); border:1px solid rgba(37,99,235,.22) }
.stat-card .sc-icon svg { width:18px; height:18px; stroke:var(--violet); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round }
/* v2 per-variant tinted chips (10-12% alpha bg + colored stroke) */
.stat-card .sc-icon.sc-violet, .stat-card.sc-violet .sc-icon { background:rgba(37,99,235,.12); border-color:rgba(37,99,235,.24) }
.stat-card .sc-icon.sc-violet svg, .stat-card.sc-violet .sc-icon svg { stroke:var(--violet) }
.stat-card .sc-icon.sc-green, .stat-card.sc-green .sc-icon { background:rgba(16,185,129,.12); border-color:rgba(16,185,129,.26) }
.stat-card .sc-icon.sc-green svg, .stat-card.sc-green .sc-icon svg { stroke:var(--green) }
.stat-card .sc-icon.sc-amber, .stat-card.sc-amber .sc-icon { background:rgba(245,158,11,.12); border-color:rgba(245,158,11,.26) }
.stat-card .sc-icon.sc-amber svg, .stat-card.sc-amber .sc-icon svg { stroke:var(--amber) }
.stat-card .sc-icon.sc-red, .stat-card.sc-red .sc-icon { background:rgba(255,92,108,.12); border-color:rgba(255,92,108,.26) }
.stat-card .sc-icon.sc-red svg, .stat-card.sc-red .sc-icon svg { stroke:var(--red) }
.stat-card .sc-icon.sc-blue, .stat-card.sc-blue .sc-icon { background:rgba(37,99,235,.12); border-color:rgba(37,99,235,.26) }
.stat-card .sc-icon.sc-blue svg, .stat-card.sc-blue .sc-icon svg { stroke:var(--blue) }
.stat-card .sc-icon.sc-gray, .stat-card.sc-gray .sc-icon { background:rgba(100,116,139,.14); border-color:rgba(100,116,139,.28) }
.stat-card .sc-icon.sc-gray svg, .stat-card.sc-gray .sc-icon svg { stroke:var(--gray) }
/* canonical contract: label/icon row in .sc-top, big number, optional hairline sub */
.stat-card .sc-value { font-size:26px; font-weight:700; line-height:1.2; letter-spacing:-.01em; font-variant-numeric:tabular-nums }
.stat-card .sc-label { font-size:12px; font-weight:500; color:var(--muted); letter-spacing:.02em }
.stat-card .sc-sub { font-size:11px; color:var(--muted); margin-top:10px; padding-top:10px; border-top:1px solid var(--line) }

/* Section headers */
.section-head { display:flex; align-items:center; gap:12px; margin:32px 0 16px }
.section-head h2 { margin:0; flex:1 }
.section-head .sh-count { font:400 13px var(--mono); color:var(--muted) }

/* Better login card: centered, soft shadow, brand gradient hairline on top */
.login-card { width:100%; max-width:420px; margin:0 auto }
.login-card .card { position:relative; overflow:hidden; padding:40px 36px; border-radius:var(--r3); box-shadow:var(--shadow-lg) }
.login-card .card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad) }
.login-card .login-header { position:relative; text-align:center; margin-bottom:32px }
/* soft violet radial glow behind the brand mark (mark is an <img>, so the
   pseudo-element lives on the header, layered behind its children) */
.login-card .login-header::before { content:''; position:absolute; top:-16px; left:50%; transform:translateX(-50%);
  width:160px; height:96px; border-radius:50%; background:var(--mark-glow); filter:blur(24px); pointer-events:none }
.login-card .login-header > * { position:relative }
.login-card .login-mark { display:block; width:56px; height:56px; margin:0 auto 20px }
.login-card h1 { font-size:22px; margin-bottom:4px }
.login-card .login-sub { color:var(--muted); font-size:14px }
.login-card .login-footer { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); text-align:center; font-size:13px; color:var(--muted) }
.login-card input { max-width:none }
.login-card .btn { width:100%; padding:12px; font-size:15px }

/* Detail page header */
.detail-header { display:flex; align-items:flex-start; gap:16px; margin-bottom:24px; flex-wrap:wrap }
.detail-header .dh-info { flex:1; min-width:200px }
.detail-header h1 { margin-bottom:4px }
.detail-header .dh-meta { color:var(--muted); font-size:13px }
.detail-header .dh-actions { display:flex; gap:8px; flex-wrap:wrap }

/* Key-value detail grid */
.detail-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; margin-bottom:24px }
.detail-item { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card); padding:16px }
.detail-item .di-label { font-size:11px; color:var(--muted); letter-spacing:.08em; text-transform:uppercase; margin-bottom:6px }
.detail-item .di-value { font-size:15px; font-weight:500; word-break:break-all }
.detail-item .di-value.mono { font-family:var(--mono); font-size:13px; color:var(--mint) }

/* Filter bar improvements */
.filter-bar { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; margin-bottom:20px; padding:16px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card) }
.filter-bar label { margin:0 0 4px }
.filter-bar input, .filter-bar select { max-width:200px }
.filter-bar .fb-actions { display:flex; gap:8px; margin-left:auto }

/* Table action links */
td .td-actions { display:flex; gap:6px }
td .td-actions a { font-size:12px; padding:2px 8px; border:1px solid var(--line); border-radius:var(--r1); color:var(--muted); transition:all .15s }
td .td-actions a:hover { border-color:var(--violet); color:var(--violet); text-decoration:none; background:rgba(37,99,235,.07) }

/* Help page */
.help-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px }
.help-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card); padding:24px; transition:border-color .15s }
.help-card:hover { border-color:var(--line2) }
.help-card h3 { margin:0 0 8px; font-size:15px; font-weight:600 }
.help-card p { margin:0; color:var(--muted); font-size:13px; line-height:1.6 }
.help-card code { background:var(--ink); padding:2px 6px; border-radius:4px; font-size:12px }

/* Breadcrumb-like page nav */
.page-path { font-size:13px; color:var(--muted); margin-bottom:16px }
.page-path a { color:var(--muted) }
.page-path a:hover { color:var(--text) }
.page-path span { margin:0 6px; opacity:.5 }

/* ======================= RESPONSIVE LADDER =======================
   Content max-width is 1360px (v8); below, grids tighten step by step.
   Order matters: narrower queries come later so they win ties. */

/* <=1280px: tighten grid minimums (5-card rows still fit, but denser) */
@media(max-width:1280px){
  .stat-row { grid-template-columns:repeat(auto-fill,minmax(150px,1fr)) }
  .action-grid { grid-template-columns:repeat(auto-fill,minmax(200px,1fr)) }
}

/* <=1024px: cards wrap freely, two-col layout collapses */
@media(max-width:1024px){
  .stat-row { grid-template-columns:repeat(auto-fill,minmax(160px,1fr)) } /* wraps a 5-card row cleanly */
  .cols { grid-template-columns:1fr }
  .detail-grid { grid-template-columns:repeat(auto-fill,minmax(220px,1fr)) }
}

@media(max-width:960px){
  .action-grid { grid-template-columns:1fr }
  .stat-row { grid-template-columns:repeat(2,1fr) }
  .detail-grid { grid-template-columns:1fr }
  .help-grid { grid-template-columns:1fr }
  .filter-bar { flex-direction:column; align-items:stretch }
  .filter-bar input, .filter-bar select { max-width:none }
  .filter-bar .fb-actions { margin-left:0 }
  .form-card { padding:20px }
  /* tables scroll horizontally instead of crushing columns;
     display:block keeps the inner table layout intact */
  .oz-content table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100% }
  .oz-content th { white-space:nowrap }
  .oz-content td.nowrap { white-space:nowrap }
}

/* ======================= SWEETALERT2 (oz-swal.js theme) ======================= */
.oz-swal-popup{background:var(--surface);border:1px solid var(--line2);border-radius:var(--r2);
  color:var(--text);box-shadow:var(--shadow-lg),var(--shadow-glow);padding:28px 28px 24px}
:root[data-theme="light"] .oz-swal-popup{box-shadow:var(--shadow-lg)}
.oz-swal-title{color:var(--text);font:600 18px/1.35 var(--ui);padding:0 0 6px}
.oz-swal-text{color:var(--muted);font:400 14px/1.6 var(--ui);margin:0}
.oz-swal-footer{border-color:var(--line);color:var(--muted)}
.oz-swal-actions{gap:10px;margin:22px 0 0}
.oz-swal-confirm,.oz-swal-cancel{display:inline-block;font:600 13.5px/1 var(--ui);
  padding:11px 20px;border-radius:var(--r1);cursor:pointer;margin:0;
  border:1px solid transparent;transition:all .15s ease}
.oz-swal-confirm{background:var(--grad);color:var(--on-grad);box-shadow:var(--hl-btn),var(--shadow-sm)}
.oz-swal-confirm:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:var(--hl-btn),var(--shadow-md)}
.oz-swal-confirm:active{transform:translateY(0);box-shadow:var(--shadow-sm)}
.oz-swal-confirm:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
.oz-swal-confirm-danger{background:var(--red);color:#fff}
.oz-swal-confirm-danger:hover{box-shadow:var(--shadow-md),0 0 20px rgba(255,92,108,.25)}
.oz-swal-cancel{background:var(--surface2);color:var(--text);border-color:var(--line2)}
.oz-swal-cancel:hover{border-color:var(--muted);background:var(--surface)}
.oz-swal-cancel:focus-visible{outline:2px solid var(--violet);outline-offset:2px}
/* icons re-colored with status tokens */
.oz-swal-icon.swal2-warning,.oz-swal-icon-danger{border-color:var(--amber);color:var(--amber)}
.oz-swal-icon-danger{border-color:var(--red);color:var(--red)}
.oz-swal-icon.swal2-question{border-color:var(--violet);color:var(--violet)}
.oz-swal-icon.swal2-info{border-color:var(--blue);color:var(--blue)}
.oz-swal-icon.swal2-error{border-color:var(--red)}
.oz-swal-icon.swal2-error [class^=swal2-x-mark-line]{background-color:var(--red)}
.oz-swal-icon.swal2-success{border-color:var(--green);color:var(--green)}
.oz-swal-icon.swal2-success .swal2-success-ring{border-color:rgba(16,185,129,.3)}
.oz-swal-icon.swal2-success [class^=swal2-success-line]{background-color:var(--green)}
.oz-swal-icon.swal2-success .swal2-success-circular-line-left,
.oz-swal-icon.swal2-success .swal2-success-circular-line-right,
.oz-swal-icon.swal2-success .swal2-success-fix{background:transparent!important}
/* toast variant (top-right) */
.oz-swal-toast{padding:12px 16px;border-radius:var(--r1);background:var(--surface2);
  box-shadow:var(--shadow-md)}
.oz-swal-toast .oz-swal-title{font:500 13.5px/1.4 var(--ui);margin:0;padding:0}
.oz-swal-toast .swal2-timer-progress-bar{background:var(--violet)}
/* loading spinner on confirm buttons uses border color */
.oz-swal-confirm .swal2-loader{border-color:var(--deep) transparent var(--deep) transparent}
.oz-swal-confirm-danger .swal2-loader{border-color:#fff transparent #fff transparent}

/* ======================= FINAL POLISH ======================= */
/* native date/time pickers follow the active color scheme */
input[type=date],input[type=datetime-local],input[type=time],
input[type=month],input[type=week]{color-scheme:inherit}
input[type=date]::-webkit-calendar-picker-indicator,
input[type=datetime-local]::-webkit-calendar-picker-indicator,
input[type=time]::-webkit-calendar-picker-indicator,
input[type=month]::-webkit-calendar-picker-indicator,
input[type=week]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer;transition:opacity .15s ease}
input[type=date]:hover::-webkit-calendar-picker-indicator,
input[type=datetime-local]:hover::-webkit-calendar-picker-indicator,
input[type=time]:hover::-webkit-calendar-picker-indicator,
input[type=month]:hover::-webkit-calendar-picker-indicator,
input[type=week]:hover::-webkit-calendar-picker-indicator{opacity:1}
/* select: pointer + cobalt arrow while focused */
select{cursor:pointer}
select:focus{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="%232563EB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>')}
/* card containing a focused control gets a subtle cobalt ring */
.card:focus-within{border-color:var(--line2);
  box-shadow:var(--shadow-md),0 0 0 3px var(--ring)}
.form-card:focus-within{border-color:var(--line2);
  box-shadow:var(--shadow-md),0 0 0 3px var(--ring)}

/* ======================= TOP BAR: ARAMA =======================
   v8: .oz-search formu kaldırıldı — tek giriş noktası spotlight
   tetikleyicisi (#ozSpotTrigger, ozp- bileşeni; krom oz-iconbtn'den,
   görünüm oz-lab.css'ten gelir). */

/* topbar'da rozet taşıyan düz bağlantılar (chip wrap) — underline yok */
.oz-chip-link{text-decoration:none;display:inline-flex;align-items:center;flex:0 0 auto}
.oz-chip-link:hover{text-decoration:none}

/* Skip-to-content (a11y): klavye odağına kadar ekran dışı.
   (v8: layout inline <style> bloğundan buraya taşındı.) */
.oz-skip{position:fixed;top:8px;left:8px;z-index:100;background:var(--surface);color:var(--text);
  padding:8px 14px;border:1px solid var(--line2);border-radius:var(--r1);transform:translateY(-200%)}
.oz-skip:focus-visible{transform:none}
@media(max-width:768px){.oz-top-title{display:none}}

/* ======================= TOP BAR: LANGUAGE SWITCHER ======================= */
.oz-lang{display:flex;align-items:center;gap:6px;font:600 11px/1 var(--ui);
  letter-spacing:.08em;white-space:nowrap}
.oz-lang-link{padding:5px 9px;border-radius:var(--r1);color:var(--muted);
  border:1px solid transparent;transition:all .15s ease}
.oz-lang-link:hover{color:var(--text);border-color:var(--line);text-decoration:none}
.oz-lang-link.on{color:var(--teal);border-color:var(--line2);background:var(--surface)}
.oz-lang-sep{color:var(--line2)}

/* <=640px: small phones — tighter cards, compact top-bar controls */
@media(max-width:640px){
  .stat-row { grid-template-columns:repeat(2,1fr) }
  .stat-card { padding:14px }
  .stat-card .sc-value { font-size:22px }
  .page-title { font-size:22px }
  .login-card .card { padding:24px 20px }
  .oz-bare .oz-content { padding:16px }
  .oz-lang-link { padding:4px 6px }
  .oz-top { gap:8px }
}

/* <=420px: very narrow — keep 2-col stats (numbers are short), shrink chips */
@media(max-width:420px){
  .chip { padding:3px 9px; font-size:10.5px }
  .chip-dot { padding:2px 9px 2px 7px }
}

/* ======================= PRINT ======================= */
/* ============================================================
   Documentation pages (help/*) — unified doc-* component set.
   Replaces per-view inline .hlp-*/.ozg-*/.ozi-*/.guide-*/.api-*
   blocks (Faz 3 stil birleştirme).
   ============================================================ */
.doc-card{background:var(--ink);border:1px solid var(--line);border-radius:var(--r2);padding:24px;margin:0 0 20px}
.doc-card p:first-child{margin-top:0}
.doc-card p:last-child{margin-bottom:0}
.doc-card-tight{margin:0 0 16px}
.doc-card-tight p{margin:0 0 10px}
.doc-card-tight p:last-child{margin-bottom:0}
.doc-card-tight ul,.doc-card-tight ol{margin:8px 0;padding-left:20px;color:var(--muted);font-size:13px;line-height:1.6}
.doc-card-tight li{margin-bottom:4px}
.doc-note{border-left:3px solid var(--violet);background:var(--surface);border-radius:0 var(--r1) var(--r1) 0;padding:10px 14px;margin:12px 0;color:var(--muted);font-size:12px}
.doc-note-teal{border-left:3px solid var(--teal);background:var(--surface);border-radius:0 var(--r1) var(--r1) 0;padding:12px 16px;margin:12px 0;color:var(--muted);font-size:12px}
.doc-toc{columns:2;gap:24px;margin:0 0 24px;padding:0;list-style:none}
.doc-toc li{margin:0 0 6px;break-inside:avoid}
.doc-sec{margin-top:28px}
.doc-sig{font-family:var(--mono);font-size:12px;color:var(--mint);background:var(--deep);border:1px solid var(--line);border-radius:var(--r1);padding:10px 14px;overflow:auto;margin:12px 0}
.doc-fields td:first-child{font-family:var(--mono);font-size:.9em;color:var(--mint);white-space:nowrap}
.doc-sub{font:600 11px/1 var(--ui);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.doc-pre-wrap{position:relative;margin-top:12px}
.doc-pre-wrap pre{margin:0;padding-right:88px}
.doc-copy{position:absolute;top:8px;right:8px;background:var(--surface);color:var(--text);border:1px solid var(--line2);border-radius:var(--r1);padding:4px 12px;font-size:11px;cursor:pointer;font-family:var(--ui)}
.doc-copy:hover{border-color:var(--violet)}
.doc-grid{margin-bottom:16px}
.doc-grid .help-card p{margin:0 0 8px}
.doc-grid .help-card p:last-child{margin-bottom:0}
.doc-dl{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--ink);border:1px solid var(--line);border-radius:var(--r2);padding:20px 24px;margin:0 0 20px}
.doc-dl-meta{flex:1;min-width:260px}
.doc-dl-meta h3{margin:0 0 6px}
.doc-dl-meta p{margin:0;color:var(--muted);font-size:12px}
.doc-btn{display:inline-block;background:var(--violet);color:#fff;border-radius:var(--r1);padding:10px 20px;font:600 13px/1 var(--ui);text-decoration:none;white-space:nowrap}
.doc-btn:hover{filter:brightness(1.1)}
.doc-sha{font-family:var(--mono);font-size:11px;color:var(--muted);word-break:break-all;margin-top:8px}

/* Tıklanabilir stat kartları (dashboard) */
.stat-link{display:block;color:inherit;text-decoration:none}
.stat-link:hover{border-color:var(--violet);text-decoration:none;color:inherit}

@media print{
  .oz-side,.oz-top,.oz-scrim,[data-oz-theme-toggle],.ph-actions{display:none!important}
  .oz-main{margin-left:0!important}
  .oz-content{max-width:none;padding:0}
  body{background:#fff;color:#000}
  .card,table,.detail-item,.stat-card,.stat,.action-card,.form-card,.table-wrap{box-shadow:none!important;break-inside:avoid}
  a{color:inherit;text-decoration:none}
}
