:root { --bg:#0b0c0e; --panel:#15171a; --line:#262a30; --txt:#e8eaed; --mut:#8b929c; --acc:#ed1c24; --red:#fb923c; --amber:#fbbf24; }
@media (prefers-color-scheme: light) { :root { --bg:#f4f5f7; --panel:#fff; --line:#dfe2e7; --txt:#16181c; --mut:#667085; --acc:#d4141b; } }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--txt); font:14px/1.45 -apple-system, system-ui, "Segoe UI", sans-serif; }
[hidden] { display:none !important; }
.sub { color:var(--mut); font-size:12px; }
.late { color:var(--red); font-weight:600; }
h2, h3 { margin:16px 0 8px; }
input, select, textarea { background:var(--panel); color:var(--txt); border:1px solid var(--line); border-radius:8px; padding:8px 10px; font:inherit; max-width:100%; }
textarea { width:100%; }
.btn { background:var(--panel); color:var(--txt); border:1px solid var(--line); border-radius:8px; padding:8px 14px; cursor:pointer; font:inherit; }
.btn.primary { background:var(--acc); color:#fff; border-color:var(--acc); font-weight:600; }
.btn.danger { color:var(--red); }
.x { background:none; border:0; color:var(--mut); cursor:pointer; }

#login { min-height:100vh; display:grid; place-items:center; padding:16px; }
.login-box { background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:28px; width:min(360px,100%); display:grid; gap:12px; }
.login-box .logo-plate img { height:56px; }

#app { display:grid; grid-template-columns:220px 1fr; min-height:100vh; }
.side { background:var(--panel); border-right:1px solid var(--line); padding:16px; display:flex; flex-direction:column; gap:12px; }
.logo-plate { background:#fff; border-radius:10px; padding:8px 12px; display:flex; justify-content:center; }
.logo-plate img { display:block; height:44px; width:auto; max-width:100%; }
.nav { display:grid; gap:4px; }
.nav a { color:var(--txt); text-decoration:none; padding:8px 10px; border-radius:8px; }
.nav a.on, .nav a:hover { background:var(--bg); color:var(--acc); }
.side-foot { margin-top:auto; display:grid; gap:8px; }
body:not([data-role="admin"]) .admin-only { display:none; }
main { padding:16px; min-width:0; }
.top { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.top #f-q { flex:1; min-width:180px; }

.kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.kpi { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px; }
.kpi-v { font-size:22px; font-weight:700; } .kpi-l { color:var(--mut); font-size:12px; }
.kpi-v.b-green { color:#4ade80; border-color:#4ade80; }
.tbl tr[data-station] { cursor:pointer; } .tbl tr[data-station]:hover { background:var(--bg); }
.b-red { color:var(--red); } .kpi-v.b-amber { color:var(--amber); }
.list .row, .row { padding:8px 10px; border-bottom:1px solid var(--line); display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.list .row[data-job] { cursor:pointer; } .list .row[data-job]:hover { background:var(--panel); }
.empty { color:var(--mut); padding:12px; }
.badge { display:inline-block; white-space:nowrap; font-size:11px; padding:2px 8px; border-radius:999px; border:1px solid var(--line); background:var(--panel); }
.b-red { color:var(--red); border-color:var(--red); } .b-amber { color:var(--amber); border-color:var(--amber); } .b-gray { color:var(--mut); }

.tbl { width:100%; border-collapse:collapse; background:var(--panel); border-radius:12px; overflow:hidden; }
.tbl th, .tbl td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); }
.tbl th { color:var(--mut); font-weight:500; font-size:12px; }
.tbl tr[data-job] { cursor:pointer; } .tbl tr[data-job]:hover { background:var(--bg); }
.page { overflow-x:auto; }

.bar { margin-bottom:12px; }
.kanban { display:flex; gap:12px; align-items:flex-start; overflow-x:auto; padding-bottom:12px; }
.col { background:var(--panel); border:1px solid var(--line); border-radius:12px; min-width:230px; width:230px; padding:10px; display:grid; gap:8px; }
.col-h { font-weight:600; display:flex; justify-content:space-between; } .col-h span { color:var(--mut); }
.card { background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:10px; cursor:pointer; display:grid; gap:4px; }
.card:hover { border-color:var(--acc); }

dialog { border:1px solid var(--line); background:var(--bg); color:var(--txt); border-radius:14px; padding:0; width:min(720px,96vw); max-height:92vh; }
dialog::backdrop { background:#000a; }
.modal-in { padding:20px; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; }
.f { display:grid; gap:4px; } .f span { color:var(--mut); font-size:12px; } .f input, .f select { width:100%; }
.f.zorunlu > span { color:#ff4d4f; font-weight:600; }
.actions { display:flex; gap:8px; margin:16px 0; flex-wrap:wrap; }
.inline { display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; } .inline input[type=text], .inline input:not([type]) { flex:1; min-width:140px; }
.chk { display:flex; align-items:center; gap:4px; color:var(--mut); }
.note { background:var(--panel); border-radius:8px; padding:8px 10px; margin-bottom:6px; } .note.internal { border-left:3px solid var(--amber); }

.toast { position:fixed; bottom:20px; right:20px; padding:10px 16px; border-radius:10px; background:var(--panel); border:1px solid var(--acc); z-index:99; }
.toast.error { border-color:var(--red); color:var(--red); }


.ssh { border:1px solid var(--line); border-radius:10px; padding:4px 12px 12px; margin:12px 0; background:var(--panel); }
.card { position:relative; } .adv { position:absolute; top:6px; right:6px; background:var(--panel); border:1px solid var(--line); color:var(--txt); border-radius:6px; cursor:pointer; padding:0 6px; }
.adv:hover { border-color:var(--acc); color:var(--acc); } .card[draggable=true] .adv + .sub, .card[draggable=true] b { padding-right:26px; }
.col.over { border-color:var(--acc); background:var(--bg); }
.saving { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:8px 10px; margin-bottom:6px; } .saving b { color:#4ade80; } .saving.neg b { color:var(--red); }
.pill { background:var(--acc); color:#fff; border-radius:999px; padding:0 6px; font-size:11px; } .pill:empty { display:none; }
.bell-wrap { position:relative; } .notif-panel { position:absolute; right:0; top:42px; width:min(340px,90vw); max-height:60vh; overflow:auto; background:var(--panel); border:1px solid var(--line); border-radius:10px; z-index:50; box-shadow:0 8px 24px #0006; }
.notif-h { display:flex; justify-content:space-between; padding:10px; border-bottom:1px solid var(--line); }
.notif { padding:10px; border-bottom:1px solid var(--line); cursor:pointer; } .notif.new { background:var(--bg); border-left:3px solid var(--acc); } .notif:hover { background:var(--bg); }
.kv { margin:8px 0; } .kv span { color:var(--mut); font-size:12px; } .kv div { white-space:pre-wrap; }
body[data-role="partner"] .req-only { display:none; }
.ktabs { display:flex; gap:6px; overflow-x:auto; padding-bottom:8px; margin-bottom:8px; }
.ktab { white-space:nowrap; background:var(--panel); color:var(--txt); border:1px solid var(--line); border-radius:999px; padding:6px 12px; cursor:pointer; font:inherit; }
.ktab span { color:var(--mut); margin-left:4px; } .ktab.on { background:var(--acc); border-color:var(--acc); color:#fff; } .ktab.on span { color:#ffd9db; }
.kanban.single .col { width:100%; min-width:0; max-width:760px; }
.f.full { grid-column:1/-1; } .calc { background:var(--bg) !important; color:var(--mut); }
.btn.on { border-color:var(--acc); color:var(--acc); }
body[data-page="modul"] #f-q, body[data-page="modul"] #f-tip, body[data-page="modul"] #f-durum, body[data-page="modul"] #f-oncelik, body[data-page="modul"] #new-job { display:none; }
#m-body .tbl tr[data-rec] { cursor:pointer; } #m-body .tbl tr[data-rec]:hover { background:var(--bg); }
.new-user { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:10px 12px; margin-bottom:12px; }
.new-user summary { cursor:pointer; display:inline-block; list-style:none; } .new-user[open] summary { margin-bottom:12px; }
.new-user .grid { margin-bottom:8px; } .x[data-reset] { display:block; padding:0; margin-top:2px; font-size:12px; }
.faz { border:1px solid var(--line); border-radius:10px; padding:4px 12px 10px; margin:10px 0; background:var(--panel); } .faz > b { display:block; margin-top:8px; }
.mtbl input.num { width:110px; text-align:right; } .mtbl input.mod { border-color:var(--amber); } .mtbl .grp td { background:var(--bg); font-weight:600; color:var(--acc); }
.r { text-align:right; } tr.pasif { opacity:.55; }
.sumbar { position:sticky; bottom:0; background:var(--bg); padding:10px 0; border-top:1px solid var(--line); margin-top:8px; }
.sumgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; } .sumgrid div { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:8px 10px; display:grid; }
.sumgrid span { color:var(--mut); font-size:12px; } .sumgrid .big { border-color:var(--acc); } .sumgrid .big b { color:var(--acc); }
.chk-grp { display:grid; gap:4px; margin-bottom:8px; }
.cal-bar { display:flex; gap:8px; align-items:center; flex-wrap:wrap; } .cal-bar b { min-width:130px; text-align:center; }
.legend { margin-bottom:8px; }
.cal-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.cal-h { color:var(--mut); font-size:12px; text-align:center; padding:4px; }
.cal-c { background:var(--panel); border:1px solid var(--line); border-radius:8px; min-height:92px; padding:4px; display:grid; gap:2px; align-content:start; }
.cal-c.off { background:transparent; border-color:transparent; } .cal-c.today { border-color:var(--acc); }
.cal-d { font-size:12px; color:var(--mut); }
.cal-e { font-size:11px; border-radius:4px; padding:1px 4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; background:var(--bg); }
.cal-e[data-job] { cursor:pointer; } .cal-e.start { border-left:3px solid var(--mut); } .cal-e.due { border-left:3px solid var(--amber); }
.cal-e.late { border-left:3px solid var(--red); color:var(--red); } .cal-e.task { border-left:3px solid var(--acc); }
@media (max-width: 720px) {
  #app { grid-template-columns:1fr; }
  .side { flex-direction:row; flex-wrap:wrap; align-items:center; padding:10px; }
  .nav { grid-auto-flow:column; overflow-x:auto; } .side-foot { margin:0 0 0 auto; display:flex; align-items:center; }
  .cal-c { min-height:64px; } .cal-e { font-size:10px; }
  .tbl th:nth-child(n+5), .tbl td:nth-child(n+5) { display:none; }
}

/* SSH Saha planlama takvimi */
.tk-hafta { grid-template-columns:repeat(7,minmax(130px,1fr)); overflow-x:auto; } .tk-hafta .cal-c { min-height:160px; }
.tk-day.over, .tk-list.over { outline:2px dashed var(--acc); } .cal-c.off2 { opacity:.45; }
.tk-card { background:var(--bg); border:1px solid var(--line); border-left:3px solid var(--mut); border-radius:6px; padding:4px 6px; font-size:11px; cursor:pointer; margin-bottom:3px; }
.tk-card.acil { border-left-color:var(--red); } .tk-card.kapali { opacity:.55; } .tk-card b { font-size:11px; }
.tk-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:6px; margin-bottom:12px; } .tk-gun .cal-c { min-height:120px; }
.cal-e[data-tkrec] { cursor:pointer; } .btn.on { border-color:var(--acc); color:var(--acc); }
.uz-panel { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:12px; margin-bottom:14px; } .uz-tbl td:nth-child(-n+2), .uz-tbl th:nth-child(-n+2) { text-align:center; white-space:nowrap; } .uz-tbl input[type=checkbox] { width:18px; height:18px; } .uz-tbl a { color:var(--txt); }
/* site istekler: firma filtresi, taşeron paneli, dijital servis formu, mail şablonları */
.seg { display:inline-flex; gap:4px; flex-wrap:wrap; }
.badge.b-green { color:#16a34a; border-color:#16a34a; }
.tp-wrap { overflow-x:auto; } .tp { min-width:1100px; table-layout:fixed; } .tp th:first-child { width:170px; } .tp th:nth-child(2) { width:150px; }
.tp td, .tp th { vertical-align:top; padding:6px; border-right:1px solid var(--line); } .tp thead th.today, .tp td.today { background:color-mix(in srgb, var(--acc) 8%, transparent); }
.tp-c { min-height:60px; } .tp-c.over { outline:2px dashed var(--acc); outline-offset:-2px; } .tp tbody th { font-size:13px; color:var(--txt); }
.sf-bilgi { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:6px 14px; }
.sf-satir { display:grid; } .sf-satir span { color:var(--mut); font-size:12px; }
.sf-metin { white-space:pre-wrap; background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:8px 10px; margin:0; }
.sf-thumbs { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:6px; margin-bottom:8px; }
.sf-thumb { aspect-ratio:1; border:1px solid var(--line); border-radius:8px; overflow:hidden; display:grid; place-items:center; font-size:11px; padding:4px; text-align:center; word-break:break-all; color:var(--txt); text-decoration:none; background:var(--panel); }
.sf-thumb img { width:100%; height:100%; object-fit:cover; } .sf-thumb.video { aspect-ratio:auto; min-height:60px; }
.sb-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; align-items:start; }
.sb-grid textarea { width:100%; font:inherit; }
.sb-chips { display:flex; flex-wrap:wrap; gap:4px; margin:6px 0 10px; }
.chip { font:12px ui-monospace, monospace; background:var(--panel); color:var(--txt); border:1px solid var(--line); border-radius:999px; padding:3px 8px; cursor:pointer; } .chip:hover { border-color:var(--acc); color:var(--acc); }
.sb-alanlar { display:flex; flex-wrap:wrap; gap:2px 14px; }
.sb-onizleme { background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:12px; font-size:14px; position:sticky; top:8px; }
@media (max-width: 860px) { .sb-grid { grid-template-columns:1fr; } }
.tk-card .badge { white-space:normal; max-width:100%; }
/* güncelleme talebi: partner paneli, iş emirleri, mesajlar, ayak izi, zengin mail şablonu */
body[data-role="partner"] .nav a:not(.p-ok), body[data-role="partner"] .top > *:not(.bell-wrap) { display:none; }
body[data-role="partner"] .top { justify-content:flex-end; }
body[data-page="partner"] .top > #f-q, body[data-page="partner"] .top > select, body[data-page="mesajlar"] .top > #f-q, body[data-page="mesajlar"] .top > select,
body[data-page="ayakizi"] .top > #f-q, body[data-page="ayakizi"] .top > select { display:none; }
.row.uyari { border-left:3px solid var(--amber); background:var(--panel); border-radius:6px; margin-bottom:4px; }
.notif-alt { display:flex; justify-content:space-between; align-items:center; gap:8px; } .notif-alt .x { font-size:11px; }
.kesif-form h3 { font-size:14px; margin:14px 0 6px; } .kesif-form .seg .chk { margin-right:10px; }
.ed-bar { display:flex; gap:4px; flex-wrap:wrap; margin-bottom:4px; } .ed-b { padding:4px 9px; font-size:13px; }
.ed-alan { min-height:220px; max-height:55vh; overflow:auto; background:#fff; color:#111; border:1px solid var(--line); border-radius:8px; padding:10px 12px; font:11pt Calibri, Arial, sans-serif; outline:none; }
.ed-alan:focus { border-color:var(--acc); } .ed-alan table td { min-width:60px; }
.mail-onizleme { background:#fff; color:#111; border-radius:8px; padding:10px 12px; font:11pt Calibri, Arial, sans-serif; overflow:auto; }
.ai-gun { font-size:13px; color:var(--mut); margin:14px 0 4px; text-transform:capitalize; }
.ai-satir { align-items:flex-start; flex-wrap:nowrap; } .ai-saat { color:var(--mut); font-variant-numeric:tabular-nums; min-width:70px; }
.ai-kisi { min-width:150px; } .ai-ne { flex:1; min-width:0; }
.ai-deg { display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:4px; font-size:12px; color:var(--mut); } .ai-deg i { font-style:normal; color:var(--txt); } .ai-deg b { color:var(--txt); }
@media (max-width: 720px) { .ai-satir { flex-wrap:wrap; } .ai-kisi { min-width:0; } }

/* 015 — OPERASYON TALEP 2 */
.badge.asama { border-color:var(--c); color:var(--c); background:color-mix(in srgb, var(--c) 12%, var(--panel)); font-weight:600; }
.asama-list { max-height:520px; overflow:auto; border:1px solid var(--line); border-radius:10px; }
.asama-row { border-left:6px solid var(--c); background:color-mix(in srgb, var(--c) 9%, transparent); cursor:pointer; }
.asama-row:hover { background:color-mix(in srgb, var(--c) 18%, transparent); }
.asama-row .pno { min-width:96px; font-variant-numeric:tabular-nums; } .asama-row .pad { flex:1; min-width:160px; }
.pasta { display:flex; gap:24px; align-items:center; flex-wrap:wrap; margin:8px 0 16px; }
.pasta-leg { display:grid; gap:4px; min-width:260px; }
.pasta-leg div { display:grid; grid-template-columns:14px 1fr auto 56px; gap:8px; align-items:center; }
.pasta-leg i { width:12px; height:12px; border-radius:3px; display:inline-block; } .pasta-leg .sub { text-align:right; }
.faz.aktif { border-color:var(--amber); }
.btn.mini { padding:3px 8px; font-size:12px; }
.nowrap { flex-wrap:nowrap !important; white-space:nowrap; } .inline.nowrap { margin-top:0; align-items:center; }
.mtbl td.c, .mtbl th.c { text-align:center; } .mtbl tr.manuel td { background:color-mix(in srgb, var(--amber) 8%, transparent); }
.mtbl tr.manuel input:not(.num) { width:100%; min-width:160px; }
