/* ============================================================
   BelgeTakip — app.css
   Tasarim: template/MYK Belge Takip.dc.html (teal #0d9488)
   ============================================================ */
:root{
  --teal:#0d9488; --teal-d:#0b8178; --teal-l:#effdf9;
  --bg:#f4f6f9; --ink:#0f172a; --muted:#64748b; --muted2:#94a3b8;
  --card:#ffffff; --line:#eaeef3; --line2:#e8ecf1;
  --ok-bg:#effdf9; --ok:#16a34a; --ok-d:#15803d;
  --warn-bg:#fffbeb; --warn:#b45309; --warn-b:#fde68a;
  --danger-bg:#fef2f2; --danger:#dc2626; --danger-b:#fecaca;
  --info-bg:#eef2ff; --info:#6366f1; --gri-bg:#f1f5f9; --gri:#64748b;
  --radius:16px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:#d3dae3;border-radius:8px;border:2px solid transparent;background-clip:padding-box;}

/* ---------- Layout shell ---------- */
.shell{display:flex;min-height:100vh;width:100%;}
.sidebar{width:248px;flex-shrink:0;background:#fff;border-right:1px solid var(--line2);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;}
.sb-brand{padding:22px 20px 18px;display:flex;align-items:center;gap:11px;border-bottom:1px solid #eef1f5;}
.sb-logo{width:38px;height:38px;border-radius:11px;background:var(--teal);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px rgba(13,148,136,.28);}
.sb-brand h1{font:800 15px 'Plus Jakarta Sans';letter-spacing:-.01em;line-height:1.1;margin:0;}
.sb-brand span{font-size:11px;color:var(--muted2);font-weight:600;}
.sb-nav{padding:14px 12px;display:flex;flex-direction:column;gap:3px;flex:1;overflow-y:auto;}
.sb-group{font-size:10.5px;font-weight:700;letter-spacing:.09em;color:#aab4c0;padding:14px 12px 6px;}
.sb-group:first-child{padding-top:8px;}
.sb-link{display:flex;align-items:center;gap:12px;width:100%;border:none;cursor:pointer;padding:10px 13px;border-radius:10px;font:600 13.5px 'Plus Jakarta Sans';text-align:left;background:transparent;color:#475569;}
.sb-link:hover{background:#f5f7fa;}
.sb-link.active{background:var(--teal-l);color:var(--teal-d);}
.sb-link.active svg{stroke:var(--teal);}
.sb-link svg{stroke:#8a97a7;flex-shrink:0;}
.sb-user{padding:14px;border-top:1px solid #eef1f5;}
.sb-user-box{display:flex;align-items:center;gap:11px;padding:8px;border-radius:11px;background:#f7f9fb;}
.sb-avatar{width:34px;height:34px;border-radius:9px;background:#1e293b;color:#fff;display:flex;align-items:center;justify-content:center;font:700 13px 'Plus Jakarta Sans';flex-shrink:0;}
.sb-user-box b{font:700 13px 'Plus Jakarta Sans';line-height:1.1;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;}
.sb-user-box small{font-size:11px;color:var(--muted2);font-weight:600;}

.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{position:sticky;top:0;z-index:20;background:rgba(244,246,249,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line2);padding:16px 26px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.topbar h2{margin:0;font:800 21px 'Plus Jakarta Sans';letter-spacing:-.02em;}
.topbar .sub{font-size:13px;color:#7b8794;font-weight:500;margin-top:2px;}
.topbar-actions{display:flex;align-items:center;gap:12px;}
.searchbox{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #e6eaef;border-radius:11px;padding:9px 13px;width:240px;max-width:42vw;}
.searchbox input{border:none;outline:none;background:transparent;font-size:13px;width:100%;color:var(--ink);}
.bell{position:relative;width:42px;height:42px;border-radius:11px;background:#fff;border:1px solid #e6eaef;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.bell .badge{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#dc2626;color:#fff;font:700 11px 'Plus Jakarta Sans';display:flex;align-items:center;justify-content:center;border:2px solid var(--bg);}
.content{flex:1;overflow-y:auto;padding:24px 26px 40px;}

/* ---------- Cards / grid ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 1px 2px rgba(16,24,40,.04);}
.card h3{margin:0 0 4px;font:700 16px 'Plus Jakarta Sans';}
.card .card-sub{font-size:12.5px;color:var(--muted);margin-bottom:14px;}
.grid{display:grid;gap:16px;}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;}
.stack{display:flex;flex-direction:column;gap:18px;}
.row{display:flex;gap:16px;flex-wrap:wrap;}

.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:0 1px 2px rgba(16,24,40,.04);}
.kpi-ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;}
.kpi .num{font:700 30px/1 'IBM Plex Mono';}
.kpi .lbl{font-size:13px;color:var(--muted);margin-top:6px;font-weight:600;}

/* ---------- Badges / pills ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;font:700 11.5px 'Plus Jakarta Sans';padding:4px 9px;border-radius:999px;white-space:nowrap;}
.badge.ok{background:var(--ok-bg);color:var(--ok-d);}
.badge.warn{background:var(--warn-bg);color:var(--warn);}
.badge.danger{background:var(--danger-bg);color:var(--danger);}
.badge.gri{background:var(--gri-bg);color:var(--gri);}
.badge.info{background:var(--info-bg);color:var(--info);}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;}
.dot.yesil{background:var(--ok);}.dot.sari{background:#eab308;}.dot.kirmizi{background:var(--danger);}.dot.gri{background:#94a3b8;}

/* ---------- Tables ---------- */
.table-wrap{overflow-x:auto;}
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px;}
table.tbl th{text-align:left;font:700 11.5px 'Plus Jakarta Sans';letter-spacing:.04em;color:var(--muted2);text-transform:uppercase;padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap;}
table.tbl td{padding:12px 14px;border-bottom:1px solid #f1f4f8;vertical-align:middle;}
table.tbl tbody tr:hover{background:#fafcfe;}
table.tbl tr:last-child td{border-bottom:none;}
.tbl .name{font-weight:600;}
.tbl .muted{color:var(--muted);font-size:12.5px;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:11px;padding:10px 16px;font:700 13px 'Plus Jakarta Sans';cursor:pointer;transition:.12s;}
.btn.primary{background:var(--teal);color:#fff;box-shadow:0 4px 12px rgba(13,148,136,.25);}
.btn.primary:hover{background:var(--teal-d);}
.btn.ghost{background:#fff;border:1px solid #e6eaef;color:#334155;}
.btn.ghost:hover{background:#f7f9fb;}
.btn.danger{background:var(--danger-bg);color:var(--danger);}
.btn.sm{padding:7px 11px;font-size:12px;border-radius:9px;}
.btn:disabled{opacity:.55;cursor:not-allowed;}

/* ---------- Forms ---------- */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font:600 12.5px 'Plus Jakarta Sans';color:#475569;}
.field input,.field select,.field textarea{border:1px solid #dfe5ec;border-radius:10px;padding:10px 12px;font-size:13.5px;background:#fff;color:var(--ink);outline:none;width:100%;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(13,148,136,.12);}
.field .hint{font-size:11.5px;color:var(--muted2);}
.field.err input{border-color:var(--danger);}
.autoc{position:relative;}
.autoc-list{position:absolute;z-index:40;top:100%;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;margin-top:4px;max-height:260px;overflow-y:auto;box-shadow:0 8px 24px rgba(16,24,40,.10);display:none;}
.autoc-list.open{display:block;}
.autoc-item{padding:9px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid #f4f6f9;}
.autoc-item:hover,.autoc-item.hl{background:var(--teal-l);}
.autoc-item .code{font-family:'IBM Plex Mono';color:var(--teal-d);font-weight:600;margin-right:8px;}

/* ---------- Select2 benzeri arama+liste seçici ---------- */
.ss2{position:relative;}
.ss2-box{border:1px solid #dfe5ec;border-radius:10px;padding:10px 34px 10px 12px;font-size:13.5px;background:#fff;color:var(--ink);cursor:pointer;min-height:41px;display:flex;align-items:center;position:relative;}
.ss2-box:focus,.ss2-box.open{border-color:var(--teal);box-shadow:0 0 0 3px rgba(13,148,136,.12);outline:none;}
.ss2-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;}
.ss2-ph{color:#94a3b8;}
.ss2-caret{position:absolute;right:11px;top:50%;transform:translateY(-50%);pointer-events:none;color:#94a3b8;transition:transform .15s;}
.ss2-box.open .ss2-caret{transform:translateY(-50%) rotate(180deg);}
.ss2-panel{display:none;position:absolute;z-index:60;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 10px 30px rgba(16,24,40,.14);overflow:hidden;}
.ss2-panel.open{display:block;}
.ss2-search{padding:8px;border-bottom:1px solid var(--line);}
.ss2-search input{width:100%;border:1px solid #dfe5ec;border-radius:8px;padding:8px 10px;font-size:13px;outline:none;}
.ss2-search input:focus{border-color:var(--teal);}
.ss2-list{max-height:264px;overflow-y:auto;}
.ss2-item{padding:9px 12px;cursor:pointer;font-size:13px;border-bottom:1px solid #f4f6f9;display:flex;gap:9px;align-items:baseline;}
.ss2-item:last-child{border-bottom:none;}
.ss2-item:hover,.ss2-item.hl{background:var(--teal-l);}
.ss2-item .code{font-family:'IBM Plex Mono';color:var(--teal-d);font-weight:600;white-space:nowrap;}
.ss2-empty{padding:14px;color:#94a3b8;font-size:13px;text-align:center;}

/* ---------- Misc ---------- */
.flash{padding:12px 16px;border-radius:12px;margin-bottom:16px;font-size:13.5px;font-weight:600;}
.flash.success{background:var(--ok-bg);color:var(--ok-d);border:1px solid #bbf7d0;}
.flash.error{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-b);}
.flash.warn{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-b);}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;}
.toolbar .spacer{flex:1;}
.chip{font:600 12px 'Plus Jakarta Sans';padding:6px 11px;border-radius:9px;background:#fff;border:1px solid #e6eaef;color:#475569;cursor:pointer;}
.chip.active{background:var(--teal-l);border-color:#99e6dd;color:var(--teal-d);}
.pagination{display:flex;gap:6px;margin-top:16px;justify-content:flex-end;}
.pagination a,.pagination span{padding:7px 12px;border-radius:9px;border:1px solid #e6eaef;background:#fff;font-size:13px;color:#475569;}
.pagination .cur{background:var(--teal);color:#fff;border-color:var(--teal);}
.empty{text-align:center;padding:40px 20px;color:var(--muted2);}
.empty svg{margin-bottom:10px;}
.countdown{display:flex;gap:10px;}
.countdown .box{background:rgba(255,255,255,.14);border-radius:12px;padding:10px 14px;text-align:center;min-width:64px;}
.countdown .box b{font:700 26px/1 'IBM Plex Mono';display:block;}
.countdown .box small{font-size:10.5px;opacity:.85;letter-spacing:.06em;}
.progress{height:8px;border-radius:999px;background:#eef2f6;overflow:hidden;}
.progress > i{display:block;height:100%;background:var(--teal);border-radius:999px;}
.section-title{font:800 15px 'Plus Jakarta Sans';margin:0 0 2px;}
.muted-text{color:var(--muted);font-size:13px;}
.tc-reveal{cursor:pointer;border-bottom:1px dotted #cbd5e1;}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .sidebar{position:fixed;left:-260px;transition:.2s;z-index:60;box-shadow:0 0 40px rgba(0,0,0,.15);}
  .sidebar.open{left:0;}
  .menu-toggle{display:inline-flex!important;}
  .backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.35);z-index:50;}
  .backdrop.open{display:block;}
}
.menu-toggle{display:none;width:42px;height:42px;border-radius:11px;background:#fff;border:1px solid #e6eaef;cursor:pointer;align-items:center;justify-content:center;}

/* ---- Belge kalan-sure satirlari -------------------------------------------
   Durum yalnizca kucuk bir noktayla degil, satirin kendisiyle okunsun:
   sol kenar seridi + kritik/dolmus satirlarda hafif zemin.
   Sinif kaynagi: belge_renk() -> yesil | sari | kirmizi | gri            */
.tbl tr.st-yesil   td:first-child{box-shadow:inset 3px 0 0 var(--ok);}
.tbl tr.st-sari    td:first-child{box-shadow:inset 3px 0 0 #eab308;}
.tbl tr.st-kirmizi td:first-child{box-shadow:inset 3px 0 0 var(--danger);}
.tbl tr.st-gri     td:first-child{box-shadow:inset 3px 0 0 #94a3b8;}
.tbl tr.st-sari    {background:var(--warn-bg);}
.tbl tr.st-kirmizi {background:var(--danger-bg);}
.tbl tr.st-gri     {background:var(--gri-bg);}
/* Suresi dolmus belge artik gecerli degil - bitis tarihi ustu cizili, satir soluk */
.tbl tr.st-gri td{color:var(--gri);}
.tbl tr.st-gri .bitis{text-decoration:line-through;}
.tbl tr.st-kirmizi .bitis{font-weight:700;color:var(--danger);}
