:root{
  color-scheme: light;
  --bg:#f9f9f7; --surface:#fcfcfb; --ink:#0b0b0b; --ink2:#52514e; --muted:#898781;
  --grid:#e1e0d9; --line:#c3c2b7; --border:rgba(11,11,11,.10);
  --ai:#2a78d6; --d365:#008300; --api:#e87ba4; --hubc:#499d58;
  --ai-soft:rgba(42,120,214,.10); --d365-soft:rgba(0,131,0,.10); --api-soft:rgba(232,123,164,.14);
  --edge:#a9a8a0;
  --aktif:#d03b3b; --tamam:#499d58;
}
@media (prefers-color-scheme: dark){
  :root:where(:not([data-theme="light"])){
    color-scheme: dark;
    --bg:#0d0d0d; --surface:#1a1a19; --ink:#ffffff; --ink2:#c3c2b7; --muted:#898781;
    --grid:#2c2c2a; --line:#383835; --border:rgba(255,255,255,.10);
    --ai:#3987e5; --d365:#008300; --api:#d55181; --hubc:#499d58;
    --ai-soft:rgba(57,135,229,.16); --d365-soft:rgba(0,131,0,.18); --api-soft:rgba(213,81,129,.16);
    --edge:#4c4c48;
    --aktif:#e05252; --tamam:#5cb56b;
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --bg:#0d0d0d; --surface:#1a1a19; --ink:#ffffff; --ink2:#c3c2b7; --muted:#898781;
  --grid:#2c2c2a; --line:#383835; --border:rgba(255,255,255,.10);
  --ai:#3987e5; --d365:#008300; --api:#d55181; --hubc:#499d58;
  --ai-soft:rgba(57,135,229,.16); --d365-soft:rgba(0,131,0,.18); --api-soft:rgba(213,81,129,.16);
  --edge:#4c4c48;
  --aktif:#e05252; --tamam:#5cb56b;
}
*{box-sizing:border-box; margin:0; padding:0}
html,body{height:100%}
body{
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
  background:var(--bg); color:var(--ink); font-size:15px; line-height:1.5;
}
button{font-family:inherit; cursor:pointer}
[hidden]{display:none !important}

/* ---------- Giriş ---------- */
.login-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px}
.login-card{
  width:100%; max-width:400px; background:var(--surface); border:1px solid var(--grid);
  border-radius:18px; padding:34px 32px; display:flex; flex-direction:column; gap:14px;
  box-shadow:0 18px 50px rgba(0,0,0,.10);
}
.login-logo{height:44px; align-self:flex-start; background:#fff; border-radius:8px; padding:5px 10px}
.login-card h1{font-size:20px; letter-spacing:-.01em}
.login-sub{color:var(--ink2); font-size:13.5px; margin-top:-8px}
.login-card label{font-size:12.5px; color:var(--ink2); display:flex; flex-direction:column; gap:5px; font-weight:600}
.login-card input{
  border:1px solid var(--border); background:var(--bg); color:var(--ink);
  border-radius:10px; padding:10px 12px; font-size:14.5px; font-family:inherit;
}
.login-card input:focus{outline:2px solid var(--hubc); border-color:transparent}
.login-card button[type=submit]{
  background:var(--hubc); color:#fff; border:none; border-radius:10px;
  padding:11px; font-size:15px; font-weight:650; margin-top:4px;
}
.login-err{color:var(--aktif); font-size:13px}

/* ---------- Header / Nav ---------- */
header{
  padding:14px 26px 12px; border-bottom:1px solid var(--grid);
  display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between;
  background:var(--surface);
}
.h-brand{display:flex; align-items:center; gap:14px}
.h-logo{height:40px; background:#fff; border-radius:8px; padding:4px 9px}
.h-title h1{font-size:19px; font-weight:700; letter-spacing:-.01em}
.h-title .sub{color:var(--ink2); font-size:12.5px; margin-top:1px}
.h-stats{display:flex; gap:8px; flex-wrap:wrap; align-items:center}
.stat{
  border:1px solid var(--border); border-radius:20px; padding:4px 12px;
  font-size:12.5px; color:var(--ink2); background:var(--bg); white-space:nowrap;
}
.stat b{color:var(--ink); font-weight:650}
.hbtn{
  border:1px solid var(--border); background:var(--bg); color:var(--ink2);
  border-radius:20px; padding:4px 12px; font-size:12.5px;
}
.hbtn:hover{color:var(--ink); border-color:var(--ink2)}
.userchip{
  display:inline-flex; align-items:center; gap:8px; border:1px solid var(--border);
  border-radius:20px; padding:4px 5px 4px 12px; font-size:12.5px; background:var(--bg);
}
.userchip button{
  border:none; background:var(--ink); color:var(--bg); border-radius:14px;
  padding:3px 10px; font-size:11.5px;
}
nav{
  display:flex; gap:4px; padding:10px 26px 0; background:var(--surface);
  border-bottom:1px solid var(--grid); overflow-x:auto;
}
nav button{
  border:1px solid transparent; border-bottom:none; background:transparent; color:var(--ink2);
  padding:9px 18px 10px; font-size:14px; border-radius:10px 10px 0 0; white-space:nowrap;
}
nav button.on{
  background:var(--bg); color:var(--ink); font-weight:650;
  border-color:var(--grid); position:relative; top:1px;
}
main{max-width:1680px; margin:0 auto}
.view{display:none}
.view.on{display:block}

/* ---------- Filtreler ---------- */
.filters{
  display:flex; flex-wrap:wrap; gap:7px; align-items:center;
  padding:11px 26px; border-bottom:1px solid var(--grid);
}
.f-label{font-size:11.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; margin:0 2px}
.chip{
  border:1px solid var(--border); background:var(--surface); color:var(--ink2);
  border-radius:18px; padding:4px 11px; font-size:12.5px; display:inline-flex; align-items:center; gap:6px;
}
.chip.on{background:var(--ink); color:var(--bg); border-color:var(--ink)}
.chip .sw{width:10px; height:10px; display:inline-block; flex:none}
.sw.ai{background:var(--ai); border-radius:50%}
.sw.d365{background:var(--d365); border-radius:2.5px}
.sw.api{background:var(--api); transform:rotate(45deg); border-radius:1px}
.sw.dept{border-radius:50%}
.chip.on .sw{outline:1.5px solid var(--bg); outline-offset:1px}
.f-sep{width:1px; height:20px; background:var(--grid); margin:0 4px}
.chip.st-aktif .sw{background:var(--aktif); border-radius:50%}
.chip.st-tamam .sw{background:var(--tamam); border-radius:50%}
select.f-select{
  border:1px solid var(--border); background:var(--surface); color:var(--ink);
  border-radius:18px; padding:4px 10px; font-size:12.5px; font-family:inherit;
}

/* ---------- Harita ---------- */
.mapwrap{position:relative; min-height:640px}
.svgbox{position:relative; overflow:hidden; background:var(--bg)}
.svgbox svg{display:block; width:100%; height:calc(100vh - 226px); min-height:600px; touch-action:none; cursor:grab}
.svgbox svg.panning{cursor:grabbing}
.zoombar{position:absolute; left:14px; bottom:14px; display:flex; flex-direction:column; gap:6px}
.zoombar button{
  width:34px; height:34px; border-radius:9px; border:1px solid var(--border);
  background:var(--surface); color:var(--ink); font-size:16px; line-height:1;
}
.maplegend{
  position:absolute; left:14px; top:12px; background:color-mix(in srgb, var(--surface) 90%, transparent);
  backdrop-filter:blur(4px); border:1px solid var(--border); border-radius:12px;
  padding:9px 13px; font-size:12px; color:var(--ink2); max-width:240px;
}
.maplegend .row{display:flex; align-items:center; gap:8px; margin:3px 0}
.maplegend .ln{width:22px; height:0; border-top:2px solid var(--edge); display:inline-block; flex:none}
.maplegend .ln.dash{border-top-style:dashed}
.maplegend .glow-dot{width:10px; height:10px; border-radius:50%; flex:none}

.edge{fill:none; stroke:var(--edge); stroke-width:1.1; opacity:.4; transition:opacity .18s, stroke-width .18s}
.edge.need-d365{stroke:var(--d365); stroke-dasharray:5 4; opacity:.32}
.edge.need-api{stroke:var(--api); stroke-dasharray:5 4; opacity:.38}
.edge.need-ai{stroke:var(--ai); stroke-dasharray:5 4; opacity:.32}
.edge.hl{opacity:.95; stroke-width:2.4}
.edge.dim{opacity:.05}
.node{cursor:pointer}
.node .shape{stroke:var(--surface); stroke-width:2; transition:opacity .18s}
.node.t-ai .shape{fill:var(--ai)}
.node.t-d365 .shape{fill:var(--d365)}
.node.t-api .shape{fill:var(--api)}
.node.t-hub .shape{fill:var(--hubc)}
.node.st-aktif .shape{fill:var(--aktif); filter:url(#glowRed)}
.node.st-tamamlandi .shape{fill:var(--tamam); filter:url(#glowGreen)}
.node text{
  font-size:19px; fill:var(--ink); pointer-events:none;
  paint-order:stroke; stroke:var(--bg); stroke-width:3.5px; stroke-linejoin:round;
}
.node.dim{opacity:.10}
.node.sel .shape{stroke:var(--ink); stroke-width:2.6}
.node.sel text{font-weight:700}
.sector-label{
  font-size:27px; font-weight:750; fill:var(--muted); letter-spacing:.14em; text-transform:uppercase;
  pointer-events:none; opacity:.85; transition:fill .2s, opacity .2s;
}
.sector-label.lit{opacity:1; font-weight:800}
.sector-label.dim{opacity:.25}
.ring-guide{fill:none; stroke:var(--grid); stroke-width:1; opacity:.55}
.hub-label{font-size:17px; font-weight:750; fill:#fff; pointer-events:none}
.hub-label.small{font-size:11.5px; font-weight:500; opacity:.9}

#tip{
  position:fixed; z-index:70; pointer-events:none; display:none;
  background:var(--ink); color:var(--bg); border-radius:8px; padding:6px 10px;
  font-size:12.5px; max-width:280px; box-shadow:0 4px 14px rgba(0,0,0,.25);
}

/* Hover kartı (lightbox) */
#hoverCard{
  position:fixed; z-index:60; width:330px; max-height:60vh; overflow:hidden;
  background:var(--surface); border:1px solid var(--border); border-radius:14px;
  box-shadow:0 16px 44px rgba(0,0,0,.25); padding:14px 16px; font-size:13px; color:var(--ink2);
  pointer-events:none;
}
#hoverCard h3{font-size:14.5px; color:var(--ink); margin-bottom:6px; line-height:1.3}
#hoverCard .hs{margin-top:8px}
#hoverCard .hs h4{font-size:10.5px; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); margin-bottom:2px}
#hoverCard .not-box{
  border-left:3px solid var(--hubc); background:var(--bg); padding:6px 10px;
  border-radius:0 8px 8px 0; margin:8px 0;
}

/* ---------- Çekmece panel ---------- */
.panel{
  position:absolute; top:0; right:0; height:100%; width:432px; max-width:92vw;
  display:flex; align-items:stretch; z-index:20;
  transform:translateX(calc(100% - 30px));
  transition:transform .28s cubic-bezier(.2,.8,.25,1);
}
.panel.open{transform:translateX(0)}
.panel-tab{
  width:30px; flex:none; border:1px solid var(--grid); border-right:none; background:var(--surface);
  color:var(--muted); border-radius:12px 0 0 12px; display:flex; align-items:center; justify-content:center;
  margin:14px 0 auto; height:120px; padding:0;
}
.panel-tab span{writing-mode:vertical-rl; transform:rotate(180deg); font-size:11px; letter-spacing:.2em; font-weight:650}
.panel.open .panel-tab{color:var(--ink)}
.panel-body{
  flex:1; background:var(--surface); border-left:1px solid var(--grid);
  overflow-y:auto; padding:20px 22px 32px;
  box-shadow:-14px 0 34px rgba(0,0,0,.12);
}
.p-close{float:right; border:none; background:none; color:var(--muted); font-size:20px; padding:2px 6px}
.p-type{
  display:inline-flex; align-items:center; gap:7px; font-size:11.5px; font-weight:650;
  text-transform:uppercase; letter-spacing:.07em; padding:3px 10px; border-radius:14px; margin-bottom:10px;
}
.p-type.ai{background:var(--ai-soft); color:var(--ai)}
.p-type.d365{background:var(--d365-soft); color:var(--d365)}
.p-type.api{background:var(--api-soft); color:var(--api)}
.p-type.hub{background:var(--ai-soft); color:var(--hubc)}
.panel h2{font-size:18px; line-height:1.3; margin-bottom:8px; letter-spacing:-.01em}
.p-chips{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px}
.p-chip{border:1px solid var(--border); border-radius:14px; padding:2px 10px; font-size:12px; color:var(--ink2)}
.p-chip b{color:var(--ink)}
.p-chip.dept-chip{color:#fff; border:none}
.p-sec{margin-top:15px}
.p-sec h4{
  font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted);
  margin-bottom:6px; font-weight:650;
}
.p-sec p{font-size:13.5px; color:var(--ink2)}
.p-sec p.desc{color:var(--ink)}
.p-quote{
  margin-top:14px; border-left:3px solid var(--line); padding:6px 12px;
  font-size:13px; color:var(--ink2); font-style:italic; background:var(--bg); border-radius:0 8px 8px 0;
}
.p-quote .src{display:block; font-style:normal; font-size:11px; color:var(--muted); margin-top:4px}
.dep-list{list-style:none}
.dep-list li{margin:4px 0}
.dep-list button{
  display:flex; align-items:flex-start; gap:8px; width:100%; text-align:left;
  border:1px solid var(--border); background:var(--bg); border-radius:9px;
  padding:7px 10px; font-size:12.5px; color:var(--ink); line-height:1.35;
}
.dep-list button:hover{border-color:var(--ink2)}
.dep-list .sw{margin-top:4px}
.uc-tags{display:flex; flex-wrap:wrap; gap:5px}
.uc-tag{font-size:11px; color:var(--muted); border:1px dashed var(--border); border-radius:5px; padding:1px 7px}
.doc-list{list-style:none; font-size:12.5px}
.doc-list li{margin:6px 0; padding:7px 10px; background:var(--bg); border:1px solid var(--border); border-radius:9px}
.doc-list .dt{color:var(--ink); font-weight:600}
.doc-list .ev{color:var(--muted); font-size:11.5px; margin-top:2px}

/* Durum / tarih / atama kontrolleri */
.status-badge{
  display:inline-flex; align-items:center; gap:6px; border-radius:14px; padding:3px 11px;
  font-size:12px; font-weight:650; color:#fff;
}
.status-badge.beklemede{background:var(--muted)}
.status-badge.aktif{background:var(--aktif); box-shadow:0 0 12px color-mix(in srgb, var(--aktif) 65%, transparent)}
.status-badge.tamamlandi{background:var(--tamam); box-shadow:0 0 12px color-mix(in srgb, var(--tamam) 65%, transparent)}
.p-actions{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px}
.abtn{
  border:1px solid var(--border); background:var(--bg); color:var(--ink);
  border-radius:9px; padding:6px 11px; font-size:12.5px;
}
.abtn:hover{border-color:var(--ink2)}
.abtn.primary{background:var(--hubc); border-color:var(--hubc); color:#fff}
.abtn.danger{color:var(--aktif); border-color:var(--aktif)}
.date-row{display:flex; gap:8px; margin-top:6px; flex-wrap:wrap}
.date-row label{font-size:11.5px; color:var(--muted); display:flex; flex-direction:column; gap:3px}
.date-row input[type=date]{
  border:1px solid var(--border); background:var(--bg); color:var(--ink);
  border-radius:8px; padding:5px 8px; font-size:12.5px; font-family:inherit;
}
.deadline-info{font-size:12.5px; margin-top:6px}
.deadline-info.warn{color:var(--aktif); font-weight:650}
.assign-row{display:flex; gap:6px; margin-top:8px; align-items:center; flex-wrap:wrap}
.assign-row select{
  flex:1; min-width:140px; border:1px solid var(--border); background:var(--bg); color:var(--ink);
  border-radius:8px; padding:6px 8px; font-size:12.5px; font-family:inherit;
}
.assignee{
  display:inline-flex; align-items:center; gap:6px; border:1px solid var(--border);
  border-radius:14px; padding:3px 6px 3px 11px; font-size:12.5px; background:var(--bg); margin:2px 3px 2px 0;
}
.assignee button{border:none; background:none; color:var(--muted); font-size:14px; padding:0 3px}
.edit-form{display:flex; flex-direction:column; gap:8px; margin-top:8px}
.edit-form label{font-size:11.5px; color:var(--muted); font-weight:600}
.edit-form input, .edit-form textarea, .edit-form select{
  width:100%; border:1px solid var(--border); background:var(--bg); color:var(--ink);
  border-radius:8px; padding:6px 9px; font-size:13px; font-family:inherit;
}
.edit-form textarea{min-height:64px; resize:vertical}

/* ---------- Modal ---------- */
.modal-back{
  position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:80;
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.modal{
  background:var(--surface); border:1px solid var(--grid); border-radius:16px;
  max-width:640px; width:100%; max-height:82vh; overflow-y:auto; padding:26px 28px;
}
.modal h2{font-size:18px; margin-bottom:12px}
.modal-close{float:right; border:none; background:none; color:var(--muted); font-size:22px}
.modal p{font-size:14px; color:var(--ink2); margin:8px 0}
.modal ul{padding-left:20px; font-size:14px; color:var(--ink2)}
.modal li{margin:5px 0}
.modal h3{font-size:14.5px; margin:14px 0 4px; color:var(--ink)}
.kapsam-box{border-left:3px solid var(--hubc); background:var(--bg); padding:8px 12px; border-radius:0 8px 8px 0; font-size:13.5px; color:var(--ink2); margin-top:10px}

/* ---------- Yol Haritası ---------- */
.road{padding:26px}
.road h2{font-size:19px; margin-bottom:4px}
.road .lead{color:var(--ink2); font-size:14px; max-width:900px; margin-bottom:20px}
.ns-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; margin-bottom:30px}
.ns-card{border:1px solid var(--grid); border-radius:14px; padding:16px 18px; background:var(--surface)}
.ns-card h3{font-size:15px; margin-bottom:4px}
.ns-card .cnt{font-size:26px; font-weight:700; letter-spacing:-.02em}
.ns-card p{font-size:13px; color:var(--ink2); margin-top:6px}
.wave-cols{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:14px; margin-bottom:34px}
.wave-col{border:1px solid var(--grid); border-radius:14px; background:var(--surface); overflow:hidden}
.wave-col header{padding:12px 16px; border-bottom:1px solid var(--grid); background:var(--bg); display:block}
.wave-col header .w-t{font-size:14.5px; font-weight:700}
.wave-col header .w-s{font-size:12px; color:var(--muted); display:block}
.wave-col ul{list-style:none; padding:10px}
.wave-col li{margin:5px 0}
.wave-col li button{
  width:100%; text-align:left; border:1px solid var(--border); background:var(--bg);
  border-radius:9px; padding:7px 10px; font-size:12.5px; color:var(--ink);
  display:flex; gap:8px; align-items:flex-start; line-height:1.35;
}
.wave-col li button:hover{border-color:var(--ink2)}
.wave-col li .dept{margin-left:auto; font-size:10.5px; color:var(--muted); white-space:nowrap; padding-top:2px}
.wave-col .sw{margin-top:4px; flex:none}
.gov-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:14px}
.gov-card{border:1px solid var(--grid); border-radius:14px; padding:16px 18px; background:var(--surface)}
.gov-card h3{font-size:15px; margin-bottom:8px}
.gov-card ul{padding-left:18px}
.gov-card li{font-size:13.5px; color:var(--ink2); margin:6px 0}
.gov-card li b{color:var(--ink)}
.gov-card table{width:100%; border-collapse:collapse; font-size:13px}
.gov-card th{text-align:left; color:var(--muted); font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; padding:4px 6px; border-bottom:1px solid var(--grid)}
.gov-card td{padding:5px 6px; border-bottom:1px solid var(--grid); color:var(--ink2); vertical-align:top}
.gov-card td:first-child{color:var(--ink); font-weight:600; white-space:nowrap}

/* ---------- Departman Analizleri ---------- */
.deps{padding:26px}
.deps h2{font-size:19px; margin-bottom:4px}
.deps .lead{color:var(--ink2); font-size:14px; max-width:880px; margin-bottom:18px}
.dep-acc{
  border:1px solid var(--grid); border-left:5px solid var(--grid);
  border-radius:14px; background:var(--surface); margin-bottom:12px; overflow:hidden;
}
.dep-acc > button.acc-head{
  width:100%; display:flex; align-items:center; gap:12px; text-align:left;
  padding:14px 18px; background:none; border:none; color:var(--ink); font-size:16px; font-weight:650;
}
.dep-acc .acc-head .dot{width:12px; height:12px; border-radius:50%; flex:none}
.dep-acc .acc-head .cnt{font-size:12.5px; color:var(--muted); font-weight:400; margin-left:auto; white-space:nowrap}
.dep-acc .acc-head .arr{color:var(--muted); transition:transform .2s}
.dep-acc.open .acc-head .arr{transform:rotate(90deg)}
.acc-body{display:none; padding:0 18px 18px; border-top:1px solid var(--grid)}
.dep-acc.open .acc-body{display:block}
.acc-body h4{font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); margin:16px 0 8px}
.acc-body p.ozet{font-size:14px; color:var(--ink2); padding-top:14px}
.acc-body ul.agri{padding-left:18px}
.acc-body ul.agri li{font-size:13.5px; color:var(--ink2); margin:5px 0}
.q-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:10px}
.q-card{border-left:3px solid var(--line); background:var(--bg); border-radius:0 10px 10px 0; padding:8px 12px; font-size:13px; color:var(--ink2); font-style:italic}
.q-card .src{display:block; font-style:normal; font-size:11px; color:var(--muted); margin-top:4px}
.node-links{display:flex; flex-wrap:wrap; gap:6px}
.node-links button{
  border:1px solid var(--border); background:var(--bg); border-radius:16px;
  padding:4px 11px; font-size:12.5px; color:var(--ink); display:inline-flex; gap:6px; align-items:center;
}
.node-links button:hover{border-color:var(--ink2)}
.kapsam-line{font-size:12.5px; color:var(--muted); margin:4px 0 8px}
.uc-table-wrap{overflow-x:auto}
table.uc{width:100%; border-collapse:collapse; font-size:13px; min-width:640px}
table.uc th{
  text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--muted); padding:6px 8px; border-bottom:1px solid var(--grid); font-weight:650;
}
table.uc td{padding:7px 8px; border-bottom:1px solid var(--grid); vertical-align:top; color:var(--ink2)}
table.uc td.t{color:var(--ink); font-weight:600; min-width:150px}
table.uc td.c{white-space:nowrap; font-size:12px; color:var(--muted)}
.size-b{font-size:11px; border-radius:10px; padding:1px 8px; border:1px solid var(--border); color:var(--ink2); white-space:nowrap}

/* ---------- Kişiler ---------- */
.people{padding:26px}
.people h2{font-size:19px; margin-bottom:4px}
.people .lead{color:var(--ink2); font-size:14px; margin-bottom:18px; max-width:880px}
.user-form{
  border:1px solid var(--grid); border-radius:14px; background:var(--surface);
  padding:16px 18px; margin-bottom:20px; display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; align-items:end;
}
.user-form h3{grid-column:1/-1; font-size:15px}
.user-form label{font-size:11.5px; color:var(--muted); font-weight:600; display:flex; flex-direction:column; gap:4px}
.user-form input, .user-form select{
  border:1px solid var(--border); background:var(--bg); color:var(--ink);
  border-radius:8px; padding:7px 9px; font-size:13px; font-family:inherit;
}
.user-form button{grid-column:auto}
.people-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:14px}
.person-card{border:1px solid var(--grid); border-radius:14px; background:var(--surface); padding:16px 18px}
.person-card .ph{display:flex; align-items:center; gap:10px; margin-bottom:8px}
.person-card .avatar{
  width:38px; height:38px; border-radius:50%; background:var(--hubc); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; flex:none;
}
.person-card .pn{font-size:15px; font-weight:650}
.person-card .pe{font-size:12px; color:var(--muted)}
.role-chip{font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; border:1px solid var(--border); border-radius:10px; padding:1px 8px; color:var(--ink2); margin-left:auto}
.person-card ul{list-style:none; margin:8px 0}
.person-card li{margin:5px 0}
.person-card li button.task{
  width:100%; display:flex; align-items:center; gap:8px; text-align:left;
  border:1px solid var(--border); background:var(--bg); border-radius:9px;
  padding:7px 10px; font-size:12.5px; color:var(--ink);
}
.person-card li .dl{margin-left:auto; font-size:11px; color:var(--muted); white-space:nowrap}
.person-card li .dl.warn{color:var(--aktif); font-weight:650}
.st-dot{width:9px; height:9px; border-radius:50%; flex:none}
.st-dot.beklemede{background:var(--muted)}
.st-dot.aktif{background:var(--aktif); box-shadow:0 0 7px var(--aktif)}
.st-dot.tamamlandi{background:var(--tamam); box-shadow:0 0 7px var(--tamam)}
.pc-actions{display:flex; gap:6px; flex-wrap:wrap; margin-top:8px}
.empty-note{color:var(--muted); font-size:13px}

/* ---------- Yönetim ---------- */
.adminv{padding:26px; max-width:980px}
.adminv h2{font-size:19px; margin-bottom:14px}
.set-card{border:1px solid var(--grid); border-radius:14px; background:var(--surface); padding:16px 18px; margin-bottom:14px}
.set-card h3{font-size:15px; margin-bottom:6px}
.set-card p{font-size:13px; color:var(--ink2); margin-bottom:8px}
.toggle{
  display:inline-flex; align-items:center; gap:10px; font-size:13.5px; cursor:pointer; color:var(--ink);
}
.toggle input{width:40px; height:22px; accent-color:var(--hubc)}
table.logt{width:100%; border-collapse:collapse; font-size:12.5px}
table.logt th{text-align:left; color:var(--muted); font-size:10.5px; text-transform:uppercase; padding:5px 6px; border-bottom:1px solid var(--grid)}
table.logt td{padding:5px 6px; border-bottom:1px solid var(--grid); color:var(--ink2)}

footer{
  padding:20px 26px 32px; color:var(--muted); font-size:12.5px; border-top:1px solid var(--grid); line-height:1.7;
}

/* ---------- Neon elektrik akışı (merkez → uçlar) ---------- */
#pulseLayer{transition:opacity .25s}
.pulse{
  fill:none; stroke-width:2.4; stroke-linecap:round;
  stroke-dasharray:0.12 1.6; stroke-dashoffset:0.14; opacity:0; pointer-events:none;
}
.pulse-ai{stroke:var(--ai); filter:drop-shadow(0 0 5px var(--ai)); animation:pulseGo 6s linear infinite}
.pulse-d365{stroke:#499d58; filter:drop-shadow(0 0 5px #499d58); animation:pulseGo 6s linear infinite; animation-delay:2s}
.pulse-api{stroke:var(--api); filter:drop-shadow(0 0 5px var(--api)); animation:pulseGo 6s linear infinite; animation-delay:4s}
@keyframes pulseGo{
  0%{stroke-dashoffset:0.14; opacity:0}
  3%{opacity:.95}
  28%{stroke-dashoffset:-1.06; opacity:.95}
  30%{stroke-dashoffset:-1.06; opacity:0}
  100%{stroke-dashoffset:0.14; opacity:0}
}

/* ---------- Askıdaki gerçekleşme barı ---------- */
.hangwidget{
  position:absolute; left:50%; bottom:0; transform:translateX(-50%); z-index:15; pointer-events:none;
  display:flex; flex-direction:column-reverse; align-items:center; gap:8px; padding-bottom:10px;
}
.hang-handle{
  pointer-events:auto; border:1px solid var(--border); background:var(--surface); color:var(--ink2);
  border-radius:16px; padding:4px 16px; font-size:12px; font-weight:650; letter-spacing:.03em;
  box-shadow:0 4px 14px rgba(0,0,0,.14);
}
.hang-handle:hover{color:var(--ink); border-color:var(--ink2)}
.hangwidget .hang-sway{display:none}
.hangwidget.open .hang-sway{display:block}
.hang-sway{position:relative; transform-origin:50% -44px; animation:sway 7s ease-in-out infinite}
@keyframes sway{0%,100%{transform:rotate(.6deg)}50%{transform:rotate(-.6deg)}}
.hstr{
  position:absolute; top:-44px; width:1.5px; height:44px;
  background:linear-gradient(to top, var(--line), transparent);
}
.hstr.l{left:22%} .hstr.r{right:22%}
.progress-card{
  background:color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter:blur(6px);
  border:1px solid var(--border); border-radius:14px; padding:9px 20px 9px;
  box-shadow:0 10px 30px rgba(0,0,0,.18); width:min(600px, 64vw); text-align:center; pointer-events:auto;
}
.pr-row{display:flex; align-items:center; gap:12px}
.pr-bar{flex:1; height:5px; border-radius:5px; background:var(--grid); overflow:hidden}
.pr-fill{
  height:100%; width:0%; border-radius:5px;
  background:linear-gradient(90deg,#499d58,#5cb56b);
  box-shadow:0 0 9px rgba(73,157,88,.75); transition:width .6s;
}
.pr-pct{font-size:15px; color:var(--ink); flex:none; min-width:42px; text-align:right}
.pr-stats{display:flex; gap:14px; justify-content:center; font-size:11.5px; color:var(--muted); margin-top:5px}
.pr-stats b{color:var(--ink)}
.pr-a b{color:var(--aktif)} .pr-d b{color:var(--tamam)}
.pr-lbl{margin-left:auto; font-style:italic}

/* ---------- Not editörü ---------- */
.note-area{
  width:100%; min-height:88px; border:1px solid var(--border); background:var(--bg); color:var(--ink);
  border-radius:9px; padding:8px 10px; font-size:13px; font-family:inherit; resize:vertical;
}
.note-area:focus{outline:2px solid var(--hubc); border-color:transparent}
.note-state{color:var(--tamam); font-size:11px; text-transform:none; letter-spacing:0; margin-left:6px}

/* ---------- Departman süreç tablosu ---------- */
table.dtab{width:100%; border-collapse:collapse; font-size:13px; min-width:760px}
table.dtab th{
  text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.06em;
  color:var(--muted); padding:6px 8px; border-bottom:1px solid var(--grid); font-weight:650;
}
table.dtab td{padding:6px 8px; border-bottom:1px solid var(--grid); vertical-align:middle; color:var(--ink2)}
table.dtab tr.shared{background:color-mix(in srgb, var(--api) 7%, transparent)}
.linklike{
  border:none; background:none; color:var(--ink); cursor:pointer; font-size:13px; padding:0;
  display:inline-flex; gap:8px; align-items:center; font-weight:600; text-align:left; line-height:1.35;
}
.linklike:hover{color:var(--ai)}
.linklike .sw{flex:none}
.shared-badge{font-size:10px; border:1px solid var(--api); color:var(--api); border-radius:8px; padding:0 6px; margin-left:6px; font-weight:600}
.type-tag{font-size:10.5px; font-weight:650; letter-spacing:.04em; border-radius:9px; padding:2px 9px; white-space:nowrap}
.tt-ai{background:var(--ai-soft); color:var(--ai)}
.tt-d365{background:var(--d365-soft); color:var(--d365)}
.tt-api{background:var(--api-soft); color:var(--api)}
.mini-sel{
  border:1px solid var(--border); background:var(--bg); color:var(--ink);
  border-radius:8px; padding:3px 6px; font-size:12px; font-family:inherit; cursor:pointer;
}
.mini-sel:hover{border-color:var(--ink2)}
td.asg{font-size:12px; max-width:160px}

/* ---------- Profil / şifre ---------- */
.profile-btn{margin-left:6px}
.pw-form{display:flex; flex-direction:column; gap:10px; margin-top:8px}
.pw-form label{font-size:12px; color:var(--ink2); font-weight:600; display:flex; flex-direction:column; gap:4px}
.pw-form input{border:1px solid var(--border); background:var(--bg); color:var(--ink); border-radius:9px; padding:9px 11px; font-size:14px; font-family:inherit}
.pw-form input:focus{outline:2px solid var(--hubc); border-color:transparent}
.pw-msg{font-size:13px; padding:6px 0}
.pw-msg.err{color:var(--aktif)} .pw-msg.ok{color:var(--tamam)}
#profileInfo{font-size:13.5px; color:var(--ink2); margin-bottom:12px}
#profileInfo b{color:var(--ink)}

/* ---------- Deadline çekmecesi ---------- */
.drawer-backdrop{position:fixed; inset:0; background:rgba(0,0,0,.28); z-index:74}
.side-drawer{
  position:fixed; top:0; right:0; height:100vh; width:420px; max-width:94vw; z-index:75;
  background:var(--surface); border-left:1px solid var(--grid);
  box-shadow:-16px 0 44px rgba(0,0,0,.22); display:flex; flex-direction:column;
  animation:slideIn .28s cubic-bezier(.2,.8,.25,1);
}
@keyframes slideIn{from{transform:translateX(100%)}to{transform:translateX(0)}}
.sd-head{display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--grid)}
.sd-head h3{font-size:16px}
.sd-body{overflow-y:auto; padding:12px 16px 28px}
.dl-row{border:1px solid var(--border); border-radius:11px; padding:10px 12px; margin-bottom:9px; background:var(--bg); cursor:pointer}
.dl-row:hover{border-color:var(--ink2)}
.dl-top{display:flex; align-items:center; gap:8px}
.dl-top .nm{font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.3}
.dl-top .dt{margin-left:auto; font-size:12px; color:var(--muted); white-space:nowrap}
.dl-meta{display:flex; align-items:center; gap:8px; margin-top:3px; font-size:11.5px; color:var(--muted)}
.dl-bar{height:6px; border-radius:5px; background:var(--grid); overflow:hidden; margin-top:8px}
.dl-fill{height:100%; border-radius:5px; transition:width .3s}
.dl-daysleft{font-weight:650}
.dl-empty{color:var(--muted); font-size:13px; padding:12px 4px}
.dl-group-h{font-size:11px; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); margin:12px 2px 6px; font-weight:650}

/* ---------- Panel: ölçüm / etki-efor / teams / dosya ---------- */
.measure-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:6px}
.measure-grid label{font-size:11px; color:var(--muted); font-weight:600; display:flex; flex-direction:column; gap:3px}
.measure-grid.full{grid-template-columns:1fr}
.measure-grid input, .measure-grid select, .measure-grid textarea{
  border:1px solid var(--border); background:var(--bg); color:var(--ink);
  border-radius:8px; padding:6px 8px; font-size:12.5px; font-family:inherit;
}
.measure-grid textarea{min-height:52px; resize:vertical}
.ie-badges{display:flex; gap:8px; margin-top:10px}
.ie-badge{flex:1; text-align:center; border:1px solid var(--border); border-radius:10px; padding:7px 6px; background:var(--bg)}
.ie-badge .lb{font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted)}
.ie-badge .vl{font-size:17px; font-weight:700; color:var(--ink)}
.ie-badge .sub{font-size:10.5px; color:var(--muted)}
.ie-badge.na .vl{color:var(--muted); font-size:13px; font-weight:500}
.lock-row{display:flex; align-items:center; gap:8px; margin-top:10px; font-size:12.5px; color:var(--ink2)}
.lock-row .lk{font-size:14px}
.lock-toggle{border:1px solid var(--border); background:var(--bg); color:var(--ink2); border-radius:14px; padding:3px 11px; font-size:12px; display:inline-flex; gap:6px; align-items:center}
.lock-toggle.on{background:#3a3320; border-color:#b8901f; color:#e7b53a}
:root:not([data-theme="dark"]) .lock-toggle.on{background:#fdf6e3; border-color:#e0b84a; color:#8a6d12}
.files-list{list-style:none; margin-top:6px}
.files-list li{display:flex; align-items:center; gap:8px; border:1px solid var(--border); background:var(--bg); border-radius:9px; padding:6px 10px; margin:4px 0; font-size:12.5px}
.files-list a{color:var(--ai); text-decoration:none; font-weight:600; word-break:break-word}
.files-list .fsz{color:var(--muted); font-size:11px; margin-left:auto; white-space:nowrap}
.files-list .fdel{border:none; background:none; color:var(--muted); cursor:pointer; font-size:15px; padding:0 2px}
.file-up{display:inline-flex; align-items:center; gap:8px; margin-top:8px}
.file-up label{border:1px solid var(--border); background:var(--bg); color:var(--ink); border-radius:9px; padding:6px 12px; font-size:12.5px; cursor:pointer}
.file-up label:hover{border-color:var(--ink2)}
.teams-row{display:flex; gap:6px; margin-top:6px}
.teams-row input{flex:1; border:1px solid var(--border); background:var(--bg); color:var(--ink); border-radius:8px; padding:6px 9px; font-size:12.5px; font-family:inherit}
.teams-link-open{display:inline-flex; align-items:center; gap:6px; margin-top:6px; font-size:13px; color:#5059c9; text-decoration:none; font-weight:600}

/* ---------- Etki-Efor matrisi ---------- */
.matrix-wrap{border:1px solid var(--grid); border-radius:14px; background:var(--surface); padding:18px; margin-bottom:14px}
.matrix-head{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:10px}
.matrix-head h3{font-size:16px}
.matrix-head .sp{margin-left:auto}
.matrix-box{position:relative; width:100%; max-width:560px; margin:0 auto}
.matrix-svg{width:100%; height:auto; display:block; overflow:visible}
.mx-quad-label{font-size:11px; fill:var(--muted); font-weight:600}
.mx-axis{stroke:var(--line); stroke-width:1}
.mx-grid{stroke:var(--grid); stroke-width:1; stroke-dasharray:3 4}
.mx-dot{cursor:pointer; stroke:var(--surface); stroke-width:1.5}
.mx-dot:hover{stroke:var(--ink); stroke-width:2}
.mx-axtitle{font-size:12px; fill:var(--ink2); font-weight:600}
.mx-lock{font-size:11px}
.matrix-legend{display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:10px; font-size:12px; color:var(--ink2)}
.matrix-legend .w{display:inline-flex; align-items:center; gap:6px}
.matrix-legend .wd{width:11px; height:11px; border-radius:50%}
.mx-note{font-size:12px; color:var(--muted); margin-top:8px; text-align:center}

@media (max-width:960px){
  .svgbox svg{height:60vh; min-height:420px}
  .panel{width:94vw}
  .maplegend{display:none}
  .h-title .sub{display:none}
  .hangwidget{display:none}
  .profile-btn{display:none}
}
