:root{
  --bg:#f4f6fa; --card:#fff; --ink:#0f1b2d; --ink2:#334155; --muted:#64748b; --line:#e2e8f0; --line2:#eef2f7;
  --acc:#1d64d8; --acc-h:#1550b3; --acc2:#eaf1fd; --side:#0b1a33; --side2:#13284d; --side-ink:#a9b8d3;
  --ok:#137a46; --okbg:#e3f5eb; --warn:#9a5b00; --warnbg:#fdf2dc; --err:#b42318; --errbg:#fdeceb;
  --info:#5b3cc4; --infobg:#efeafd;
  --r:10px; --sh:0 1px 2px rgba(15,27,45,.05),0 1px 3px rgba(15,27,45,.06);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Inter,"Segoe UI",system-ui,-apple-system,Arial,sans-serif;font-size:14px;line-height:1.5;
  background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:22px;font-weight:700;letter-spacing:-.01em;margin:0 0 18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
h2{font-size:15px;font-weight:600;margin:0 0 14px;color:var(--ink)}
h3{font-size:13px;font-weight:600;margin:20px 0 6px;padding-top:14px;border-top:1px solid var(--line);color:var(--ink2)}
code{background:var(--line2);padding:1px 5px;border-radius:4px;font-size:12px}
.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- uygulama düzeni ---------- */
.app{display:flex;min-height:100vh}
.side{width:248px;flex:none;background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;z-index:20}
.brand{display:flex;align-items:center;gap:11px;padding:20px 18px 18px}
.brand b{display:block;color:#fff;font-size:16px;letter-spacing:-.01em}
.brand span{display:block;font-size:12px;color:var(--side-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.logo-mark{width:34px;height:34px;flex:none}
.side nav{flex:1;overflow-y:auto;padding:4px 10px 12px}
.navsec{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6c7fa3;margin:16px 10px 6px;font-weight:600}
.side nav a{display:flex;align-items:center;gap:10px;color:var(--side-ink);padding:8px 10px;border-radius:7px;margin-bottom:2px;font-weight:500}
.side nav a:hover{background:var(--side2);color:#fff;text-decoration:none}
.side nav a.on{background:var(--acc);color:#fff}
.side-foot{display:flex;align-items:center;gap:10px;padding:14px 14px;border-top:1px solid #1d3359}
.avatar{width:32px;height:32px;border-radius:50%;background:#24406f;color:#fff;display:grid;place-items:center;font-weight:600;flex:none}
.side-foot .who{flex:1;min-width:0;font-size:12px;color:#dbe4f3}
.side-foot a.who{color:#dbe4f3}.side-foot a.who:hover small{color:#fff}
.side-foot .who span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-foot .who small{color:#6c7fa3}
.side-foot .out{color:var(--side-ink);padding:6px;border-radius:6px;display:flex}.side-foot .out:hover{background:var(--side2);color:#fff}
.shell{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:56px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 28px;
  position:sticky;top:0;z-index:10}
.crumb{font-weight:600;color:var(--ink2)}
.menu-btn{display:none;background:none;border:0;padding:6px;border-radius:6px;cursor:pointer;color:var(--ink)}
main{padding:26px 28px 40px;max-width:1440px;width:100%}
@media(max-width:900px){
  .side{position:fixed;left:-260px;transition:left .2s}.side.open{left:0;box-shadow:0 0 40px rgba(0,0,0,.3)}
  .menu-btn{display:flex}.topbar{padding:0 16px}main{padding:18px 16px 32px}
}

/* ---------- giriş ekranı ---------- */
.auth-wrap{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh}
.auth-brand{background:linear-gradient(150deg,#0b1a33 0%,#13305e 60%,#1d64d8 140%);color:#c9d6ee;padding:40px 56px;
  display:flex;flex-direction:column;justify-content:center;gap:10px}
.auth-brand .brand{padding:0;margin-bottom:auto}
.auth-brand h2{color:#fff;font-size:34px;line-height:1.2;letter-spacing:-.02em;margin:0;font-weight:700}
.auth-brand p{max-width:440px;font-size:15px;margin:0 0 auto}
.auth-main{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:32px 20px;max-width:none}
.auth-main .card,.login{width:100%;max-width:400px;margin:0 auto}
.auth-main .flash{width:100%;max-width:400px}
@media(max-width:900px){.auth-wrap{grid-template-columns:1fr}.auth-brand{padding:28px 20px}.auth-brand h2{font-size:24px}}

/* ---------- bileşenler ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;margin-bottom:18px;box-shadow:var(--sh)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.grid2>.card,.grid4>.card{margin-bottom:0}.grid2,.grid4{margin-bottom:18px}
@media(max-width:1000px){.grid2,.grid4{grid-template-columns:1fr}}
.stat{font-size:26px;font-weight:700;letter-spacing:-.02em;margin-top:2px}.statl{color:var(--muted);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.04em}
.muted{color:var(--muted)}.small{font-size:12px}
.hint{color:var(--muted);font-size:12px;font-weight:400}

label{display:block;font-weight:500;margin:12px 0 5px;font-size:13px;color:var(--ink2)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],select,textarea{
  width:100%;padding:8px 11px;border:1px solid #cfd8e3;border-radius:7px;font:inherit;background:#fff;color:var(--ink);
  transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--acc);box-shadow:0 0 0 3px rgba(29,100,216,.15)}
input[type=checkbox]{accent-color:var(--acc);width:15px;height:15px}
textarea{min-height:90px;resize:vertical}
textarea.code{font-family:Consolas,monospace;min-height:340px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1;min-width:140px}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--acc);color:#fff;border:1px solid var(--acc);border-radius:7px;
  padding:8px 16px;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}
.btn:hover{background:var(--acc-h);border-color:var(--acc-h);text-decoration:none}
.btn.sec{background:#fff;color:var(--ink2);border-color:#cfd8e3}.btn.sec:hover{background:var(--line2);color:var(--ink)}
.btn.red{background:var(--err);border-color:var(--err)}.btn.red:hover{background:#951b12}
.btn.sm{padding:5px 11px;font-size:12px}
.flash{background:var(--acc2);border:1px solid #c8daf8;color:#123a7a;padding:10px 14px;border-radius:8px;margin-bottom:10px}
.alert{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:0 0 12px;line-height:1.6}
.alert.ok{background:var(--okbg);border-color:#bfe3cd}.alert.bad{background:var(--errbg);border-color:#f3c3be;color:var(--err)}

/* tablolar */
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line2);vertical-align:top}
th{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600;background:#f8fafc;
  border-bottom:1px solid var(--line);white-space:nowrap}
tr:hover td{background:#f9fbff}
.card>table:first-child th:first-child{border-top-left-radius:var(--r)}
th.sortable{cursor:pointer;user-select:none}th.sortable:hover{color:var(--ink)}
th .arr{display:inline-block;margin-left:5px;font-size:10px;color:#b6c2d3;width:9px}
th.asc .arr,th.desc .arr{color:var(--acc)}th.asc,th.desc{color:var(--ink)}
.data-wrap{overflow-x:auto}
tr.colfilter th{background:#fff;padding:6px 8px;text-transform:none;letter-spacing:0;border-bottom:1px solid var(--line)}
tr.colfilter input,tr.colfilter select{padding:5px 8px;font-size:12px;height:30px;min-width:90px;border-radius:6px}
tr.colfilter:hover th{background:#fff}
.tbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.tsearch{position:relative;flex:0 1 280px}
.tsearch input{padding-left:32px;height:33px}
.tsearch .ic{position:absolute;left:9px;top:8px;width:16px;height:16px;color:var(--muted)}
.tcount{color:var(--muted);font-size:12px;margin-left:auto;white-space:nowrap}
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.filters>div{flex:1;min-width:150px}.filters label{margin-top:0}
.filters .actions{flex:none;min-width:0;display:flex;gap:8px;flex-wrap:wrap}

.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;white-space:nowrap}
.s-yeni{background:#eef1f6;color:#475569}.s-kuyruk{background:var(--warnbg);color:var(--warn)}
.s-gonderildi{background:var(--acc2);color:var(--acc)}.s-cevap{background:var(--okbg);color:var(--ok)}
.s-hata{background:var(--errbg);color:var(--err)}.s-iptal{background:#f1f3f6;color:#7b8494}
.s-red{background:#f1f3f6;color:#5c6270}.s-gecersiz{background:var(--errbg);color:var(--err)}
.s-cakisma{background:var(--warnbg);color:var(--warn)}.s-engelli{background:#f1f3f6;color:#5c6270}
.k-kisi{background:var(--okbg);color:var(--ok)}.k-genel{background:var(--infobg);color:var(--info)}
.k-tahmini{background:var(--warnbg);color:var(--warn)}
.fit-hi{background:var(--okbg);color:var(--ok)}.fit-mid{background:var(--warnbg);color:var(--warn)}
.fit-lo{background:var(--errbg);color:var(--err)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.tabs a{padding:6px 14px;border-radius:20px;background:#fff;border:1px solid var(--line);color:var(--ink2);font-weight:500;font-size:13px}
.tabs a:hover{border-color:#c3cfdf;text-decoration:none}
.tabs a.on{background:var(--side);border-color:var(--side);color:#fff}
pre.log{background:#0b1a33;color:#d6e2ff;padding:14px;border-radius:8px;max-height:340px;overflow:auto;font-size:12px;white-space:pre-wrap}
pre.mail{background:#f8fafc;border:1px solid var(--line);padding:14px;border-radius:8px;white-space:pre-wrap;font-family:inherit}
.check{display:flex;gap:8px;align-items:center;padding:6px 0;margin:0;font-weight:400}.check .dot{width:9px;height:9px;border-radius:50%}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips label{font-weight:400;margin:0;display:flex;gap:6px;align-items:center;
  background:#fff;border:1px solid var(--line);padding:6px 11px;border-radius:7px;cursor:pointer}
.chips label:hover{border-color:#c3cfdf}
details summary{cursor:pointer;color:var(--acc);margin:6px 0;font-weight:500}
.countrybox{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px;margin:6px 0 12px}
.countrybox label{font-weight:400;margin:0;display:flex;gap:6px}
@media print{
  .side,.topbar,.no-print,.flash,.tsearch{display:none!important}
  .app{display:block}main{padding:0;max-width:none}body{background:#fff}
  .card{box-shadow:none;break-inside:avoid}.grid4{grid-template-columns:repeat(4,1fr)}.grid2{grid-template-columns:1fr 1fr}
}
.back{display:inline-flex;align-items:center;gap:4px;font-size:13px;margin-bottom:6px;color:var(--muted)}

/* kredi kullanım çubuğu */
.bar{height:6px;background:#e9edf3;border-radius:4px;overflow:hidden;margin-top:4px;min-width:120px}.bar span{display:block;height:100%}
