/* ==========================================================================
   Servis CRM — açık, renkli tema
   Her modülün kendi rengi var (--m); sayfa başlığı, menü ve vurgular o renge döner.
   ========================================================================== */
:root{
  --brand:#5b4cf5;
  --bg:#f3f5fb; --surface:#fff; --border:#e6e9f4; --line:#eef0f7;
  --ink:#151935; --text:#2b3054; --muted:#6c7294; --faint:#9aa0bd;
  --m:var(--brand);
  --grad:linear-gradient(135deg,var(--brand) 0%,color-mix(in srgb,var(--brand) 45%,#ec4899) 100%);
  --r-lg:18px; --r:12px; --r-sm:9px;
  --sh-1:0 1px 2px rgba(21,25,53,.04),0 2px 8px rgba(21,25,53,.04);
  --sh-2:0 10px 30px -12px rgba(21,25,53,.18);
  --sb-w:268px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --bs-body-font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --bs-body-color:var(--text); --bs-body-bg:#fff; --bs-border-color:var(--border);
  --bs-border-radius:var(--r-sm);
}
html,body{font-size:14px}
body{font-family:var(--bs-body-font-family);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;letter-spacing:-.005em}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(600px 380px at 92% -8%,color-mix(in srgb,var(--brand) 14%,transparent),transparent 70%),
             radial-gradient(520px 360px at 18% 108%,rgba(14,165,164,.10),transparent 70%)}
a{color:var(--brand);text-decoration:none}
a:hover{color:color-mix(in srgb,var(--brand) 80%,#000)}
h1,h2,h3,h4,h5,h6{color:var(--ink);letter-spacing:-.02em}
::selection{background:color-mix(in srgb,var(--brand) 22%,#fff)}
.min-w-0{min-width:0}

/* ---------- buton & form ---------- */
.btn{border-radius:10px;font-weight:600;transition:transform .12s var(--ease),box-shadow .2s,background .2s,border-color .2s}
.btn:active{transform:scale(.97)}
.btn-primary,.btn-grad{--bs-btn-color:#fff;--bs-btn-hover-color:#fff;--bs-btn-active-color:#fff;border:0;background:var(--grad);color:#fff;box-shadow:0 6px 18px -8px color-mix(in srgb,var(--brand) 80%,transparent)}
.btn-primary:hover,.btn-grad:hover{color:#fff;filter:brightness(1.06);box-shadow:0 10px 24px -10px color-mix(in srgb,var(--brand) 90%,transparent)}
.btn-primary:disabled,.btn-grad:disabled{opacity:.6;color:#fff}
.btn-light{--bs-btn-bg:#fff;--bs-btn-border-color:var(--border);--bs-btn-hover-bg:#f6f7fc;--bs-btn-hover-border-color:#d8dcec;--bs-btn-color:var(--text)}
.btn-light.border{border-color:var(--border)!important}
.btn-outline-primary{--bs-btn-color:var(--brand);--bs-btn-border-color:color-mix(in srgb,var(--brand) 45%,#fff);--bs-btn-hover-bg:var(--brand);--bs-btn-hover-border-color:var(--brand);--bs-btn-active-bg:var(--brand)}
.btn-icon{border:0;background:transparent;font-size:1.4rem;padding:.2rem .5rem;color:var(--ink)}
.form-label{font-weight:600;font-size:.8rem;color:#454b70;margin-bottom:.35rem}
.form-control,.form-select{border-color:#dfe3f0;border-radius:10px;background-color:#fbfcff;transition:border-color .15s,box-shadow .15s,background .15s}
.form-control:hover,.form-select:hover{border-color:#cdd2e6}
.form-control:focus,.form-select:focus{background:#fff;border-color:color-mix(in srgb,var(--m) 60%,#fff);box-shadow:0 0 0 4px color-mix(in srgb,var(--m) 15%,transparent)}
.form-control-lg{border-radius:12px}
.form-check-input:checked{background-color:var(--m);border-color:var(--m)}
.form-check-input:focus{box-shadow:0 0 0 4px color-mix(in srgb,var(--m) 15%,transparent)}
.form-text{color:var(--faint)}
.req::after{content:" *";color:#f43f5e}
.page-link{color:var(--m);border-color:var(--border);border-radius:9px!important;margin:0 2px}
.active>.page-link,.page-link.active{background:var(--m);border-color:var(--m)}
.nav-pills .nav-link{border-radius:10px;color:var(--text);font-weight:600}
.nav-pills .nav-link.active{background:var(--m);box-shadow:0 6px 16px -8px var(--m)}
.text-primary{color:var(--brand)!important}
kbd{background:#eef0f8;color:var(--muted);border:1px solid var(--border);font-size:.7rem;padding:.05rem .35rem;border-radius:6px}
:focus-visible{outline:2px solid color-mix(in srgb,var(--m) 70%,#fff);outline-offset:2px}

/* ---------- iskelet ---------- */
.app{display:flex;min-height:100vh}
.sidebar{width:var(--sb-w);background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-right:1px solid var(--border);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:1040;transition:transform .28s var(--ease)}
.main{flex:1;margin-left:var(--sb-w);min-width:0;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:.65rem;padding:1.05rem 1.25rem;min-height:66px;color:var(--ink)}
.brand img{max-height:36px;max-width:160px}
.brand-name{font-weight:800;font-size:1.08rem;letter-spacing:-.03em}
.brand-mark{width:36px;height:36px;border-radius:11px;background:var(--grad);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;box-shadow:0 8px 18px -8px var(--brand)}
.brand-mark.lg{width:58px;height:58px;font-size:1.7rem;border-radius:17px}
.tenant{display:flex;gap:.65rem;align-items:center;margin:.2rem .9rem .6rem;padding:.65rem .75rem;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 9%,#fff),#fff);border:1px solid color-mix(in srgb,var(--brand) 14%,#fff)}
.tenant img,.tenant-av{width:36px;height:36px;object-fit:contain;border-radius:10px;background:#fff;flex-shrink:0}
.tenant-av{display:inline-flex;align-items:center;justify-content:center;background:var(--grad);color:#fff;font-weight:800}
.tenant-name{font-weight:700;font-size:.88rem;color:var(--ink)}
.tenant-sub{font-size:.72rem;color:var(--muted);display:flex;align-items:center;gap:.35rem}
.dot-live{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.18)}
.sidebar .nav{padding:.3rem .7rem 1rem;overflow-y:auto;flex:1;flex-wrap:nowrap;scrollbar-width:thin}
.sidebar .nav-link{display:flex;align-items:center;gap:.7rem;color:#3a4066;padding:.42rem .55rem;border-radius:12px;font-weight:600;width:100%;border:0;background:none;text-align:left;font-size:.88rem;position:relative;transition:background .15s,color .15s}
.sidebar .nav-link:hover{background:#f3f4fb;color:var(--ink)}
.ni{--m:var(--brand);width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:color-mix(in srgb,var(--m) 13%,#fff);color:var(--m);font-size:.98rem;transition:transform .2s var(--ease),background .2s,color .2s}
.ni.sm{width:26px;height:26px;border-radius:8px;font-size:.85rem}
.sidebar .nav-link:hover .ni{transform:scale(1.07)}
.nav-group.open>.nav-toggle .ni,.sidebar>.nav>.nav-link.active .ni{background:var(--m);color:#fff;box-shadow:0 6px 14px -6px var(--m)}
.sidebar>.nav>.nav-link.active{background:color-mix(in srgb,var(--m,var(--brand)) 9%,#fff);color:var(--ink)}
.nav-toggle .caret{margin-left:auto;font-size:.72rem;color:var(--faint);transition:transform .25s var(--ease)}
.nav-group.open .caret{transform:rotate(180deg)}
.nav-sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s var(--ease)}
.nav-group.open .nav-sub{grid-template-rows:1fr}
.nav-sub-in{min-height:0;overflow:hidden}
.nav-sub .nav-link{font-size:.84rem;padding:.38rem .55rem .38rem 2.6rem;font-weight:500;color:#555b80}
.nav-sub .nav-link .nd{position:absolute;left:1.55rem;width:6px;height:6px;border-radius:50%;background:#d6d9e8;transition:background .2s,transform .2s}
.nav-sub .nav-link.active{color:var(--m);background:color-mix(in srgb,var(--m) 8%,#fff);font-weight:700}
.nav-sub .nav-link.active .nd{background:var(--m);transform:scale(1.35)}
.nav-plus{margin-left:auto;font-size:.75rem;color:var(--faint);opacity:0;transition:opacity .15s}
.nav-link:hover .nav-plus{opacity:1;color:var(--m)}
.nav-title{font-size:.7rem;color:var(--faint);font-weight:700;padding:1rem .6rem .35rem}
.sidebar-foot{padding:.75rem 1.25rem;font-size:.72rem;color:var(--faint);border-top:1px solid var(--line)}
.topbar{height:64px;background:rgba(243,245,251,.78);backdrop-filter:blur(14px);display:flex;align-items:center;gap:.75rem;padding:0 1.6rem;position:sticky;top:0;z-index:1020;border-bottom:1px solid transparent;transition:border-color .2s,background .2s}
.topbar.scrolled{border-bottom-color:var(--border);background:rgba(255,255,255,.85)}
.crumb{display:flex;align-items:center;gap:.5rem;font-weight:700;color:var(--muted);font-size:.85rem}
.search-box{position:relative}.search-box>i{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--faint)}
.search-box kbd{position:absolute;right:.55rem;top:50%;transform:translateY(-50%)}
.search-box input{padding-left:2.1rem;padding-right:2rem;width:290px;background:#fff;border-radius:11px;height:38px;transition:width .3s var(--ease)}
.search-box input:focus{width:340px}
.btn-user{display:flex;align-items:center;gap:.5rem;border:0;background:none;color:var(--ink)}
.avatar{width:34px;height:34px;border-radius:11px;background:var(--grad);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800}
.dropdown-menu{border:1px solid var(--border);border-radius:14px;box-shadow:var(--sh-2);padding:.4rem;animation:pop .18s var(--ease)}
.dropdown-item{border-radius:9px;padding:.45rem .7rem;font-weight:500}
.qa-menu{min-width:220px}.qa-item{display:flex;align-items:center;gap:.6rem}
.content{padding:.4rem 1.6rem 2rem;flex:1}
.imp-bar{background:linear-gradient(90deg,#fef3c7,#fde68a);color:#92400e;padding:.45rem 1.6rem;font-size:.85rem}
.sidebar-backdrop{display:none}
#topProgress{position:fixed;top:0;left:0;height:3px;width:0;z-index:2000;background:var(--grad);box-shadow:0 0 10px var(--brand);transition:width .25s var(--ease),opacity .3s}
@media (max-width:991.98px){
  .sidebar{transform:translateX(-100%)} .main{margin-left:0}
  body.sb-open .sidebar{transform:none;box-shadow:0 20px 60px rgba(21,25,53,.25)}
  body.sb-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(21,25,53,.32);z-index:1030;backdrop-filter:blur(2px)}
  .content{padding:.25rem 1rem 1.5rem} .topbar{padding:0 1rem}
}

/* ---------- sayfa başlığı (modül rengi) ---------- */
.page-head{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:.6rem 0 1.35rem}
.ph-icon{--m:inherit;width:50px;height:50px;border-radius:15px;display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;color:#fff;flex-shrink:0;
  background:linear-gradient(135deg,var(--m),color-mix(in srgb,var(--m) 55%,#ec4899));box-shadow:0 12px 24px -12px var(--m)}
.ph-icon.sm{width:34px;height:34px;border-radius:10px;font-size:1rem;margin-right:.6rem}
.ph-mod{font-size:.78rem;font-weight:700;color:var(--m)}
.page-title{font-size:1.55rem;font-weight:800;margin:0;line-height:1.15;color:var(--ink)}
.page-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.page-actions form{display:inline}

/* ---------- kart & tablo ---------- */
.card{border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--sh-1);background:var(--surface);overflow:hidden}
.card-header{background:transparent;border-bottom:1px solid var(--line);padding:.9rem 1.15rem;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.card-header>.bi:first-child{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--m) 12%,#fff);color:var(--m);font-size:.9rem}
.card-header .ms-auto{font-weight:500}
.card-body{padding:1.15rem}
.card-footer{background:#fbfcff;border-top:1px solid var(--line);padding:.8rem 1.15rem}
.table{--bs-table-bg:transparent;margin:0;vertical-align:middle}
.table>thead th{font-size:.76rem;color:var(--muted);font-weight:700;background:#f8f9fd;border-bottom:1px solid var(--line);white-space:nowrap;padding:.7rem .8rem}
.table>tbody td{padding:.7rem .8rem;border-color:var(--line)}
.table-sm>tbody td,.table-sm>thead th{padding:.5rem .65rem}
.table-hover>tbody>tr{transition:background .15s}
.table-hover>tbody>tr:hover>*{--bs-table-bg-state:color-mix(in srgb,var(--m) 5%,#fff)}
.table tr.clickable{cursor:pointer}
.table tr.clickable>td:first-child{box-shadow:inset 3px 0 0 transparent;transition:box-shadow .2s}
.table tr.clickable:hover>td:first-child{box-shadow:inset 3px 0 0 var(--m)}
.table .num,.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.table tfoot td{font-weight:700;background:#f8f9fd;color:var(--ink)}
.filter-bar{display:flex;flex-wrap:wrap;gap:.55rem;align-items:end;padding:.9rem 1.15rem;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fbfcff)}
.filter-bar .form-control,.filter-bar .form-select{min-width:140px}
.badge-soft{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .65rem;border-radius:999px;font-size:.74rem;font-weight:700;color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);white-space:nowrap}
.badge-soft::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c)}
.muted{color:var(--muted)}
.text-borc{color:#e11d48}.text-alacak{color:#059669}
.empty-state{text-align:center;padding:3.2rem 1rem;color:var(--muted)}
.empty-state i{font-size:2.4rem;display:inline-flex;width:72px;height:72px;align-items:center;justify-content:center;border-radius:22px;margin-bottom:.8rem;background:color-mix(in srgb,var(--m) 10%,#fff);color:var(--m)}
.empty-state h5{margin-bottom:.35rem}
.mono{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:.92em}
.kv{display:grid;grid-template-columns:140px 1fr;gap:.45rem .8rem;font-size:.88rem}
.kv dt{color:var(--muted);font-weight:500}.kv dd{margin:0;color:var(--ink)}

/* ---------- istatistik kartları ---------- */
.stat{display:flex;gap:.9rem;align-items:center;padding:1.05rem 1.15rem}
.stat .ico{--c:var(--m);width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0;color:#fff;
  background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 55%,#ec4899));box-shadow:0 10px 20px -10px var(--c)}
.stat .v{font-size:1.4rem;font-weight:800;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}
.stat .l{font-size:.8rem;color:var(--muted);font-weight:500}
a.stat-link{color:inherit}
a.stat-link .card{transition:transform .2s var(--ease),box-shadow .2s}
a.stat-link:hover .card{transform:translateY(-3px);box-shadow:var(--sh-2)}
/* Ana sayfa: renkli kutucuklar */
.tile{position:relative;border-radius:20px;padding:1.15rem 1.2rem;color:#fff;overflow:hidden;min-height:118px;display:flex;flex-direction:column;justify-content:space-between;
  background:linear-gradient(140deg,var(--c),color-mix(in srgb,var(--c) 50%,#ec4899));box-shadow:0 18px 30px -18px var(--c);transition:transform .25s var(--ease),box-shadow .25s}
.tile::after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;right:-50px;top:-60px;background:rgba(255,255,255,.16)}
.tile .t-i{font-size:1.25rem;width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.22);display:inline-flex;align-items:center;justify-content:center}
.tile .t-v{font-size:1.75rem;font-weight:800;line-height:1;margin-top:.7rem;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.tile .t-l{font-size:.82rem;opacity:.92;font-weight:600}
a.tile{color:#fff}a.tile:hover{color:#fff;transform:translateY(-4px) rotate(-.3deg);box-shadow:0 24px 36px -18px var(--c)}

/* ---------- form yardımcıları ---------- */
.section-title{font-size:.8rem;color:var(--m);font-weight:700;margin:1.2rem 0 .65rem;display:flex;align-items:center;gap:.6rem}
.section-title::after{content:"";flex:1;height:1px;background:var(--line)}
.chk-pill{display:inline-flex;align-items:center;gap:.4rem;border:1.5px solid var(--border);border-radius:999px;padding:.32rem .85rem;cursor:pointer;background:#fff;font-size:.84rem;font-weight:600;user-select:none;transition:all .15s var(--ease);color:var(--text)}
.chk-pill:hover{border-color:color-mix(in srgb,var(--m) 40%,#fff)}
.chk-pill input{accent-color:var(--m)}
.chk-pill:has(input:checked){border-color:var(--m);background:color-mix(in srgb,var(--m) 10%,#fff);color:color-mix(in srgb,var(--m) 80%,#000)}
.notify-box{border:1.5px dashed color-mix(in srgb,#8b5cf6 35%,#fff);border-radius:14px;padding:.8rem .95rem;background:color-mix(in srgb,#8b5cf6 4%,#fff);--m:#8b5cf6}
.sticky-actions{position:sticky;bottom:0;padding:1rem 0 .3rem;display:flex;gap:.5rem;justify-content:flex-end;z-index:5;background:linear-gradient(transparent,var(--bg) 35%)}
.modal .sticky-actions{background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border-top:1px solid var(--line);margin:1rem -1rem -1rem;padding:.8rem 1rem}
.ts-control{border-radius:10px!important;border-color:#dfe3f0!important;min-height:38px;background:#fbfcff!important}
.ts-wrapper.focus .ts-control{border-color:color-mix(in srgb,var(--m) 60%,#fff)!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--m) 15%,transparent)!important;background:#fff!important}
.ts-dropdown{border-radius:12px;box-shadow:var(--sh-2);border-color:var(--border);overflow:hidden}
.ts-dropdown .active{background:color-mix(in srgb,var(--m) 10%,#fff);color:var(--ink)}
.ts-dropdown .create{color:var(--m);font-weight:600}

/* ---------- galeri, yükleme, zaman çizelgesi ---------- */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.7rem}
.gallery .g-item{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:#f6f7fc;aspect-ratio:1}
.gallery .g-item img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;transition:transform .35s var(--ease)}
.gallery .g-item:hover img{transform:scale(1.06)}
.gallery .g-item .g-tag{position:absolute;left:6px;top:6px;font-size:.68rem;background:rgba(255,255,255,.92);border-radius:7px;padding:1px 7px;font-weight:600}
.gallery .g-item .g-del{position:absolute;right:6px;top:6px;border:0;background:rgba(255,255,255,.94);border-radius:8px;color:#e11d48;width:28px;height:28px}
.upload-drop{border:2px dashed #d3d8ea;border-radius:16px;padding:1.2rem;text-align:center;color:var(--muted);cursor:pointer;background:#fbfcff;transition:all .2s var(--ease)}
.upload-drop:hover,.upload-drop.drag{border-color:var(--m);color:var(--m);background:color-mix(in srgb,var(--m) 5%,#fff)}
.thumb{width:42px;height:42px;object-fit:cover;border-radius:10px;border:1px solid var(--border)}
.timeline{list-style:none;padding:0;margin:0;position:relative}
.timeline li{position:relative;padding:0 0 1.05rem 1.7rem}
.timeline li::before{content:"";position:absolute;left:5px;top:8px;bottom:-4px;width:2px;background:var(--line)}
.timeline li:last-child::before{display:none}
.timeline .dot{position:absolute;left:0;top:4px;width:12px;height:12px;border-radius:50%;background:var(--c,var(--m));box-shadow:0 0 0 4px color-mix(in srgb,var(--c,var(--m)) 18%,#fff)}
.timeline li:first-child .dot{animation:pulse 2s infinite}
.timeline .t{font-size:.74rem;color:var(--faint)}
.tree{list-style:none;padding-left:0;margin:0}
.tree ul{list-style:none;padding-left:1.4rem;margin:0;border-left:2px dotted #dfe3f0;margin-left:.6rem}
.tree .node{display:flex;align-items:center;gap:.5rem;padding:.4rem .55rem;border-radius:10px;transition:background .15s}
.tree .node:hover{background:color-mix(in srgb,var(--m) 6%,#fff)}
.tree .code{font-family:ui-monospace,Menlo,Consolas,monospace;background:color-mix(in srgb,var(--m) 12%,#fff);color:color-mix(in srgb,var(--m) 75%,#000);border-radius:7px;padding:0 .45rem;font-size:.8rem;font-weight:600}
.nav-tabs{border-bottom:1px solid var(--line);gap:.2rem;padding:0 1rem}
.nav-tabs .nav-link{border:0;border-bottom:2.5px solid transparent;color:var(--muted);font-weight:600;padding:.85rem .9rem;transition:color .15s,border-color .2s}
.nav-tabs .nav-link:hover{color:var(--ink)}
.nav-tabs .nav-link.active{color:var(--m);border-bottom-color:var(--m);background:none}
.progress{background:#eef0f8;border-radius:99px}.progress-bar{border-radius:99px}

/* ---------- modal & toast ---------- */
.modal-content{border:0;border-radius:22px;box-shadow:0 30px 80px -20px rgba(21,25,53,.4)}
.modal-header{border-bottom:1px solid var(--line);padding:1rem 1.25rem}
.modal-title{font-weight:800;font-size:1.1rem}
.modal-footer{border-top:1px solid var(--line)}
.modal.fade .modal-dialog{transform:translateY(18px) scale(.97);transition:transform .3s var(--ease),opacity .2s}
.modal.show .modal-dialog{transform:none}
.modal-backdrop.show{opacity:.38;backdrop-filter:blur(3px)}
.modal-body .page-head{display:none}
#ajaxModalBody{min-height:180px;position:relative}
.modal-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.7rem;color:var(--muted)}
.spin{width:38px;height:38px;border-radius:50%;border:3px solid color-mix(in srgb,var(--m) 18%,#fff);border-top-color:var(--m);animation:spin .8s linear infinite}
.toast-container{z-index:2100}
.toast{border:0;border-radius:14px;box-shadow:var(--sh-2);animation:toastIn .35s var(--ease);overflow:hidden;background:#fff;min-width:300px}
.toast .toast-body{display:flex;gap:.7rem;align-items:flex-start;font-weight:500;color:var(--ink);padding:.85rem 1rem}
.toast .t-ic{width:28px;height:28px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;background:var(--tc)}
.toast::before{content:"";display:block;height:3px;background:var(--tc);animation:toastBar var(--td,4s) linear forwards;transform-origin:left}
.basari-panel{text-align:center;padding:1.5rem .5rem}
.basari-panel .ok-ic{width:78px;height:78px;border-radius:50%;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;font-size:2.4rem;color:#fff;background:linear-gradient(135deg,#10b981,#06b6d4);box-shadow:0 16px 30px -14px #10b981;animation:popIn .5s var(--ease)}

/* ---------- giriş ---------- */
.auth-body{background:#fff}
.auth-wrap{display:flex;min-height:100vh}
.auth-side{flex:1.1;position:relative;overflow:hidden;color:#fff;padding:3rem;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(150deg,var(--brand),color-mix(in srgb,var(--brand) 40%,#ec4899) 70%,#f59e0b 140%)}
.auth-side::before,.auth-side::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.12);animation:float 9s ease-in-out infinite}
.auth-side::before{width:420px;height:420px;right:-120px;top:-120px}
.auth-side::after{width:260px;height:260px;left:-80px;bottom:-60px;animation-delay:-4s}
.auth-side>*{position:relative;z-index:1}
.auth-side h2{font-weight:800;margin:1.3rem 0 .6rem;color:#fff;font-size:2.2rem;letter-spacing:-.03em}
.auth-side p{opacity:.9;font-size:1.02rem;max-width:440px}
.auth-brand img{max-height:60px;background:#fff;border-radius:14px;padding:6px}
.auth-brand .brand-mark{background:rgba(255,255,255,.2)}
.auth-feat{list-style:none;padding:0;margin:2rem 0 0}
.auth-feat li{display:flex;gap:.75rem;align-items:center;margin-bottom:.85rem;font-weight:600}
.auth-feat i{width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.2);display:inline-flex;align-items:center;justify-content:center}
.auth-form{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}
.auth-card{width:100%;max-width:400px;animation:rise .5s var(--ease)}
.auth-card h4{font-weight:800;font-size:1.6rem}
@media (max-width:860px){.auth-side{display:none}}

/* ---------- animasyonlar ---------- */
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pop{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
@keyframes popIn{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes toastIn{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:none}}
@keyframes toastBar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px color-mix(in srgb,var(--c,var(--m)) 18%,#fff)}50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--c,var(--m)) 8%,#fff)}}
@keyframes float{0%,100%{transform:translate(0,0)}50%{transform:translate(18px,22px)}}
@keyframes flash{from{background:color-mix(in srgb,var(--m) 18%,#fff)}to{background:transparent}}
.content.page-in{animation:rise .32s var(--ease)}
.row-flash>*{animation:flash 1.4s ease-out}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- yazdırma ---------- */
@media print{
  .sidebar,.topbar,.page-actions,.no-print,.imp-bar,.sticky-actions,.page-head .ph-icon,#topProgress{display:none!important}
  .main{margin:0}.content{padding:0}body{background:#fff}body::before{display:none}.card{box-shadow:none;border:0}
}
.nav-group:not(.open) .nav-sub-in{visibility:hidden;transition:visibility 0s .28s}
