/* ŞAN GLOBAL — yönetim paneli · koyu cam + neon cyan */
:root{
  --accent:#00d4ff;
  --bg:#070710;
  --text:#dceaf2;
  --text-dim:rgba(220,234,242,0.56);
  --text-faint:rgba(220,234,242,0.34);
  --glass:rgba(13,17,33,0.6);
  --glass-2:rgba(18,23,44,0.5);
  --stroke:color-mix(in srgb, var(--accent) 15%, transparent);
  --stroke-strong:color-mix(in srgb, var(--accent) 42%, transparent);
  --wash:color-mix(in srgb, var(--accent) 10%, transparent);
  --line:rgba(255,255,255,0.07);
  --line-2:rgba(255,255,255,0.05);
  --glow-sm:0 0 14px color-mix(in srgb, var(--accent) 22%, transparent);
  --glow-md:0 0 26px color-mix(in srgb, var(--accent) 30%, transparent);
  --ok:#33e0a0; --warn:#f4c04e; --bad:#ff6b81; --info:#6aa8ff;
  --r:16px; --r-sm:11px;
}
[data-accent="violet"]{ --accent:#9b8cff; }
[data-accent="lime"]{ --accent:#7bff9b; }
body.no-glow{ --glow-sm:none; --glow-md:none; }

*{ margin:0; padding:0; box-sizing:border-box; }
html{ color-scheme:dark; scrollbar-gutter:stable; }
body{
  min-height:100vh; background:var(--bg); color:var(--text);
  font-family:"Space Grotesk", system-ui, sans-serif; font-size:14px;
  overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
canvas#bg{ position:fixed; inset:0; width:100%; height:100%; z-index:0; }
.mono{ font-family:"JetBrains Mono", monospace; font-variant-numeric:tabular-nums; }
.ta-r{ text-align:right; }
[data-icon] svg{ display:block; width:18px; height:18px; }
button{ font-family:inherit; color:inherit; }

/* ---------- layout ---------- */
.app{
  position:relative; z-index:1;
  display:grid; grid-template-columns:248px 1fr;
  min-height:100vh; max-width:1500px; margin:0 auto;
  transition:filter 400ms ease;
}
body.locked .app{ filter:blur(11px) brightness(0.55); pointer-events:none; user-select:none; }

/* ---------- sidebar ---------- */
.sidebar{
  display:flex; flex-direction:column; gap:3px;
  padding:22px 14px; border-right:1px solid var(--line);
  background:rgba(8,10,22,0.5);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  position:sticky; top:0; height:100vh; overflow-y:auto;
}
.side-brand{ display:flex; align-items:center; gap:11px; padding:6px 8px 18px; }
.logo-mark{ color:var(--accent); display:grid; place-items:center; filter:drop-shadow(0 0 9px color-mix(in srgb, var(--accent) 55%, transparent)); }
.brand-wrap{ display:flex; flex-direction:column; gap:2px; line-height:1; }
.brand-name{ font-weight:700; font-size:15.5px; letter-spacing:0.04em; }
.brand-tag{ font-family:"JetBrains Mono", monospace; font-size:9.5px; letter-spacing:0.1em; color:var(--accent); text-transform:uppercase; }
.side-nav{ display:flex; flex-direction:column; gap:2px; }
.nav-group{
  font-family:"JetBrains Mono", monospace; font-size:9.5px; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--text-faint); padding:14px 12px 6px;
}
.nav-item{
  position:relative; display:flex; align-items:center; gap:11px;
  padding:9px 12px; border-radius:10px; border:1px solid transparent;
  background:transparent; cursor:pointer; text-align:left;
  font-size:13.5px; font-weight:500; color:var(--text-dim); text-decoration:none;
  transition:color 160ms ease, background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}
.nav-item:hover{ color:var(--text); background:rgba(255,255,255,0.04); }
.nav-item.active{
  color:var(--text); background:var(--wash); border-color:var(--stroke);
  box-shadow:var(--glow-sm), inset 0 0 16px color-mix(in srgb, var(--accent) 6%, transparent);
}
.nav-item.active [data-icon]{ color:var(--accent); }
.nav-dot{ margin-left:auto; width:7px; height:7px; border-radius:50%; background:var(--warn); box-shadow:0 0 8px var(--warn); }
.side-foot{ margin-top:auto; border-top:1px solid var(--line); padding-top:10px; }
.side-foot .nav-item{ font-size:12.5px; color:var(--text-faint); }

/* ---------- topbar ---------- */
.main{ display:flex; flex-direction:column; min-width:0; }
.topbar{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; gap:14px;
  padding:14px 26px; border-bottom:1px solid var(--line);
  background:rgba(7,8,18,0.6); backdrop-filter:blur(20px) saturate(150%); -webkit-backdrop-filter:blur(20px) saturate(150%);
}
.view-title{ font-size:18px; font-weight:600; letter-spacing:0.01em; text-transform:capitalize; }
.topbar-right{ margin-left:auto; display:flex; align-items:center; gap:11px; }
.sync-chip{
  display:flex; align-items:center; gap:7px;
  font-family:"JetBrains Mono", monospace; font-size:11px; color:var(--text-dim);
  background:rgba(255,255,255,0.03); border:1px solid var(--line); padding:7px 12px;
  border-radius:999px; cursor:pointer; transition:border-color 160ms ease, color 160ms ease;
}
.sync-chip:hover{ border-color:var(--stroke-strong); color:var(--text); }
.sync-chip b{ color:var(--accent); font-weight:500; }
.sync-chip [data-icon] svg{ width:14px; height:14px; }
.sync-chip.spin [data-icon] svg{ animation:spin 700ms ease; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.user-chip{ display:flex; align-items:center; gap:9px; font-weight:500; font-size:13.5px; }
.avatar{
  width:30px; height:30px; border-radius:50%; display:grid; place-items:center;
  background:var(--wash); border:1px solid var(--stroke-strong); color:var(--accent);
  font-weight:600; font-size:13px; text-transform:uppercase; box-shadow:var(--glow-sm); flex:none;
}
.avatar.sm{ width:26px; height:26px; font-size:11px; box-shadow:none; }
.icon-btn{
  display:none; place-items:center; width:38px; height:38px;
  background:rgba(255,255,255,0.04); border:1px solid var(--line); border-radius:10px; cursor:pointer;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:9px 16px; border-radius:10px; font-size:13.5px; font-weight:600; cursor:pointer;
  transition:transform 140ms ease, box-shadow 200ms ease, background 160ms ease, border-color 160ms ease;
}
.btn:active{ transform:translateY(1px) scale(0.99); }
.btn [data-icon] svg{ width:16px; height:16px; }
.btn-primary{
  border:1px solid var(--stroke-strong);
  background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 24%, transparent), color-mix(in srgb, var(--accent) 11%, transparent));
  color:#eafdff; box-shadow:var(--glow-md);
}
.btn-primary:hover{ box-shadow:0 0 32px color-mix(in srgb, var(--accent) 42%, transparent); background:color-mix(in srgb, var(--accent) 26%, transparent); }
.btn-primary.inline, .btn-ghost.inline{ width:auto; }
.btn-ghost{ background:transparent; border:1px solid var(--line); color:var(--text-dim); padding:8px 14px; }
.btn-ghost:hover{ color:var(--text); border-color:var(--stroke-strong); box-shadow:var(--glow-sm); }
.btn-ghost.danger:hover{ color:var(--bad); border-color:color-mix(in srgb, var(--bad) 45%, transparent); box-shadow:0 0 14px color-mix(in srgb, var(--bad) 22%, transparent); }
.btn.sm{ padding:6px 11px; font-size:12px; }
form .btn-primary{ width:100%; margin-top:6px; }

/* ---------- view host ---------- */
.view-host{ padding:24px 26px 56px; }
.view-host.in{ animation:viewIn 380ms cubic-bezier(0.22,1,0.36,1); }
@keyframes viewIn{ from{ opacity:0; transform:translateY(10px); } }

/* ---------- cards ---------- */
.card{
  background:var(--glass); border:1px solid var(--stroke); border-radius:var(--r);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  box-shadow:0 14px 44px rgba(0,0,0,0.4); padding:18px 20px;
}
.card-head{ display:flex; align-items:baseline; gap:12px; margin-bottom:15px; }
.card-head.row{ justify-content:space-between; align-items:center; }
.card-head h2{ font-size:15.5px; font-weight:600; }
.card-sub{ font-family:"JetBrains Mono", monospace; font-size:10.5px; color:var(--text-faint); }
.span2{ grid-column:span 2; }

/* ---------- KPI ---------- */
.kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:15px; margin-bottom:18px; }
.kpi{
  position:relative; overflow:hidden;
  background:var(--glass); border:1px solid var(--stroke); border-radius:var(--r);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); padding:16px 18px;
  transition:transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}
.kpi:hover{ transform:translateY(-3px); border-color:var(--stroke-strong); box-shadow:var(--glow-md); }
.kpi-top{ display:flex; margin-bottom:12px; }
.kpi-ic{ display:grid; place-items:center; width:34px; height:34px; border-radius:9px; background:var(--wash); border:1px solid var(--stroke); color:var(--accent); }
.kpi.warn .kpi-ic{ background:color-mix(in srgb, var(--warn) 12%, transparent); border-color:color-mix(in srgb, var(--warn) 30%, transparent); color:var(--warn); }
.kpi-val{ font-size:30px; font-weight:700; line-height:1; font-variant-numeric:tabular-nums; text-shadow:0 0 22px color-mix(in srgb, var(--accent) 30%, transparent); }
.kpi-val.sm{ font-size:22px; }
.kpi-lbl{ margin-top:8px; font-size:12.5px; color:var(--text-dim); }
.kpi-sub{ margin-top:6px; font-size:11.5px; color:var(--text-faint); }
.kpi-sub.up{ color:var(--ok); }
.kpi-sub.warn{ color:var(--warn); }

/* ---------- overview grid ---------- */
.ov-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:15px; }
.ov-grid .card{ min-width:0; }

/* donut */
.donut-wrap{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.donut{ flex:none; }
.donut-num{ font-family:"JetBrains Mono", monospace; font-size:22px; font-weight:600; fill:var(--text); text-anchor:middle; }
.donut-lbl{ font-size:8px; fill:var(--text-faint); text-anchor:middle; letter-spacing:0.1em; text-transform:uppercase; }
@keyframes donutIn{ from{ stroke-dasharray:0 999; } }
.legend{ display:flex; flex-direction:column; gap:8px; flex:1; min-width:120px; }
.lg-row{ display:flex; align-items:center; gap:9px; font-size:12.5px; color:var(--text-dim); }
.lg-row b{ margin-left:auto; color:var(--text); font-family:"JetBrains Mono", monospace; }
.lg-dot{ width:9px; height:9px; border-radius:3px; }
.lg-dot.ok{ background:var(--ok); } .lg-dot.warn{ background:var(--warn); }
.lg-dot.info{ background:var(--info); } .lg-dot.bad{ background:var(--bad); } .lg-dot.muted{ background:rgba(220,234,242,0.3); }

/* bar chart */
.chart{ display:flex; align-items:flex-end; gap:10px; height:170px; padding-top:8px; }
.bar-wrap{ flex:1; display:flex; flex-direction:column; align-items:center; gap:7px; height:100%; }
.bar-val{ font-family:"JetBrains Mono", monospace; font-size:11px; color:var(--text-dim); }
.bar-track{ flex:1; width:100%; max-width:42px; display:flex; align-items:flex-end; }
.bar{
  width:100%; border-radius:6px 6px 2px 2px;
  background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 65%, transparent), color-mix(in srgb, var(--accent) 12%, transparent));
  border:1px solid var(--stroke-strong); box-shadow:var(--glow-sm);
  transform-origin:bottom; animation:barIn 600ms cubic-bezier(0.22,1,0.36,1) backwards;
  transition:filter 150ms ease;
}
.bar:hover{ filter:brightness(1.4); }
@keyframes barIn{ from{ transform:scaleY(0); } }
.bar-label{ font-family:"JetBrains Mono", monospace; font-size:10.5px; color:var(--text-faint); }

/* line chart */
.linechart{ width:100%; height:170px; }
.ln-path{ stroke-dasharray:1200; stroke-dashoffset:1200; animation:lnDraw 1100ms cubic-bezier(0.22,1,0.36,1) forwards; filter:drop-shadow(0 0 6px color-mix(in srgb, var(--accent) 45%, transparent)); }
@keyframes lnDraw{ to{ stroke-dashoffset:0; } }
.ln-area{ opacity:0; animation:lnFade 700ms ease 500ms forwards; }
@keyframes lnFade{ to{ opacity:1; } }
.ln-dot{ fill:var(--bg); stroke:var(--accent); stroke-width:2; opacity:0; animation:lnDot 300ms ease backwards forwards; }
@keyframes lnDot{ from{ opacity:0; transform:scale(0); } to{ opacity:1; } }
.ln-lbl{ font-family:"JetBrains Mono", monospace; font-size:9px; fill:var(--text-faint); text-anchor:middle; }

/* bot rows */
.bot-row{ display:flex; align-items:center; gap:12px; padding:13px 2px; border-bottom:1px solid var(--line-2); }
.bot-row:last-child{ border-bottom:none; }
.bot-ic{ display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:var(--wash); border:1px solid var(--stroke); color:var(--accent); flex:none; }
.bot-meta{ display:flex; flex-direction:column; gap:1px; }
.bot-meta b{ font-size:13.5px; font-weight:600; }
.bot-meta span{ font-family:"JetBrains Mono", monospace; font-size:11px; color:var(--text-faint); }
.bot-stat{ margin-left:auto; display:flex; align-items:center; gap:7px; font-size:12px; color:var(--ok); }
.bot-stat em{ font-style:normal; color:var(--text-faint); font-family:"JetBrains Mono", monospace; font-size:10.5px; margin-left:4px; }
.pulse{ width:8px; height:8px; border-radius:50%; background:var(--ok); box-shadow:0 0 0 0 color-mix(in srgb, var(--ok) 60%, transparent); animation:pulse 2s infinite; }
.pulse.bad{ background:var(--bad); animation:none; box-shadow:none; }
@keyframes pulse{ 0%{ box-shadow:0 0 0 0 color-mix(in srgb, var(--ok) 55%, transparent); } 70%{ box-shadow:0 0 0 7px transparent; } 100%{ box-shadow:0 0 0 0 transparent; } }

/* alerts */
.alerts{ list-style:none; display:flex; flex-direction:column; }
.alerts li{ display:flex; align-items:center; gap:11px; padding:11px 2px; border-bottom:1px solid var(--line-2); }
.alerts li:last-child{ border-bottom:none; }
.al-ic{ display:grid; place-items:center; width:30px; height:30px; border-radius:8px; flex:none; }
.al-ic.warn{ background:color-mix(in srgb, var(--warn) 12%, transparent); color:var(--warn); }
.al-ic.bad{ background:color-mix(in srgb, var(--bad) 12%, transparent); color:var(--bad); }
.al-ic svg{ width:15px; height:15px; }
.alerts li>div{ min-width:0; }
.alerts li b{ font-size:13px; font-weight:600; display:block; }
.alerts li span{ font-size:11.5px; color:var(--text-faint); display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.al-go{ margin-left:auto; background:none; border:none; color:var(--text-faint); cursor:pointer; display:grid; place-items:center; width:26px; height:26px; border-radius:7px; flex:none; transition:color 140ms, background 140ms; }
.al-go:hover{ color:var(--accent); background:var(--wash); }
.al-go svg{ width:16px; height:16px; }

/* ---------- tables ---------- */
.filterbar{ display:flex; gap:9px; margin-bottom:14px; flex-wrap:wrap; }
.search{
  flex:1; min-width:180px; display:flex; align-items:center; gap:9px;
  background:rgba(255,255,255,0.035); border:1px solid var(--line); border-radius:10px;
  padding:0 12px; color:var(--text-faint); transition:border-color 160ms, box-shadow 160ms;
}
.search:focus-within{ border-color:var(--stroke-strong); box-shadow:var(--glow-sm); color:var(--accent); }
.search input{ flex:1; background:none; border:none; outline:none; color:var(--text); font-family:inherit; font-size:13px; padding:10px 0; }
.search input::placeholder{ color:var(--text-faint); }
.ut-filter{
  background:rgba(255,255,255,0.035); border:1px solid var(--line); color:var(--text);
  border-radius:10px; padding:0 30px 0 12px; font-family:inherit; font-size:13px; outline:none; cursor:pointer;
  appearance:none; -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23dceaf2' stroke-opacity='0.5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9.5l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center;
}
.ut-filter:focus{ border-color:var(--stroke-strong); box-shadow:var(--glow-sm); }
.ut-filter option{ background:#0d1326; }

.table-wrap{ overflow-x:auto; margin:0 -4px; }
table{ width:100%; border-collapse:collapse; min-width:640px; }
thead th{
  text-align:left; font-family:"JetBrains Mono", monospace; font-weight:400;
  font-size:10px; letter-spacing:0.13em; text-transform:uppercase; color:var(--text-faint);
  padding:8px 12px; border-bottom:1px solid var(--line); white-space:nowrap;
}
tbody td{ padding:11px 12px; border-bottom:1px solid var(--line-2); white-space:nowrap; font-size:13.5px; }
tbody tr{ transition:background 140ms ease, box-shadow 140ms ease; }
tbody tr[data-open], tbody tr[data-cari]{ cursor:pointer; }
tbody tr:hover{ background:color-mix(in srgb, var(--accent) 5%, transparent); box-shadow:inset 2.5px 0 0 var(--accent); }
.cell-user{ display:flex; align-items:center; gap:10px; font-weight:600; }
.cell-dim{ color:var(--text-dim); }
.mono.pos{ color:var(--ok); } .mono.neg{ color:var(--bad); }
.row-go{ color:var(--text-faint); display:inline-grid; place-items:center; }
.row-go svg{ width:16px; height:16px; }
tbody tr:hover .row-go{ color:var(--accent); }

.badge{ display:inline-flex; align-items:center; gap:7px; font-size:11.5px; font-weight:600; padding:4px 10px; border-radius:999px; white-space:nowrap; }
.badge::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; box-shadow:0 0 7px currentColor; }
.badge.ok{ color:var(--ok); background:color-mix(in srgb, var(--ok) 9%, transparent); border:1px solid color-mix(in srgb, var(--ok) 28%, transparent); }
.badge.warn{ color:var(--warn); background:color-mix(in srgb, var(--warn) 9%, transparent); border:1px solid color-mix(in srgb, var(--warn) 28%, transparent); }
.badge.bad{ color:var(--bad); background:color-mix(in srgb, var(--bad) 9%, transparent); border:1px solid color-mix(in srgb, var(--bad) 28%, transparent); }
.badge.info{ color:var(--info); background:color-mix(in srgb, var(--info) 9%, transparent); border:1px solid color-mix(in srgb, var(--info) 28%, transparent); }
.badge.muted{ color:var(--text-faint); background:rgba(255,255,255,0.04); border:1px solid var(--line); }
.badge.muted::before{ box-shadow:none; }
.role{ font-family:"JetBrains Mono", monospace; font-size:11px; color:var(--text-dim); border:1px solid var(--line); padding:3px 9px; border-radius:7px; }
.role.admin{ color:var(--accent); border-color:var(--stroke-strong); }
.role.editor{ color:var(--info); border-color:color-mix(in srgb, var(--info) 32%, transparent); }
.bot-tags{ display:flex; gap:5px; }
.bot-tag{ font-family:"JetBrains Mono", monospace; font-size:10px; padding:2px 7px; border-radius:6px; text-transform:uppercase; letter-spacing:0.05em; }
.bot-tag.cari{ color:var(--accent); background:var(--wash); border:1px solid var(--stroke); }
.bot-tag.saha{ color:var(--info); background:color-mix(in srgb, var(--info) 10%, transparent); border:1px solid color-mix(in srgb, var(--info) 25%, transparent); }

/* pagination */
.ut-foot{ display:flex; align-items:center; gap:12px; margin-top:14px; flex-wrap:wrap; }
.ut-count{ font-family:"JetBrains Mono", monospace; font-size:11px; color:var(--text-faint); }
.ut-pages{ margin-left:auto; display:flex; gap:6px; }
.pg{ min-width:34px; height:34px; padding:0 8px; display:grid; place-items:center; background:rgba(255,255,255,0.03); border:1px solid var(--line); border-radius:9px; cursor:pointer; font-size:13px; font-weight:500; color:var(--text-dim); transition:border-color 140ms, color 140ms, box-shadow 140ms, background 140ms; }
.pg:hover:not(:disabled){ color:var(--text); border-color:var(--stroke-strong); }
.pg.active{ color:var(--accent); border-color:var(--stroke-strong); background:var(--wash); box-shadow:var(--glow-sm); }
.pg:disabled{ opacity:0.35; cursor:default; }
.pg [data-icon] svg{ width:15px; height:15px; }
.ut-empty{ padding:34px 12px; text-align:center; color:var(--text-faint); font-size:13px; }

/* saha mobil kartlar */
.saha-cards{ display:none; flex-direction:column; gap:10px; }
.scard{ background:rgba(255,255,255,0.025); border:1px solid var(--line); border-radius:12px; padding:13px 14px; cursor:pointer; transition:border-color 160ms, box-shadow 160ms; }
.scard:active{ border-color:var(--stroke-strong); box-shadow:var(--glow-sm); }
.scard-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:5px; }
.scard-mut{ font-weight:600; font-size:14px; }
.scard-adr{ font-size:12px; color:var(--text-faint); margin-top:2px; }
.scard-badges{ display:flex; gap:6px; margin-top:10px; flex-wrap:wrap; }

/* ---------- kanban ---------- */
.kb-head{ margin-bottom:16px; }
.kb-title{ font-size:17px; font-weight:600; }
.kanban{ display:grid; grid-template-columns:repeat(4,1fr); gap:13px; align-items:start; }
.kb-col{ background:var(--glass-2); border:1px solid var(--line); border-radius:14px; padding:12px; min-height:160px; }
.kb-col-head{ display:flex; align-items:center; gap:8px; margin-bottom:11px; padding:0 2px; }
.kb-col-name{ font-size:13px; font-weight:600; letter-spacing:0.01em; }
.kb-count{ margin-left:auto; font-family:"JetBrains Mono", monospace; font-size:11px; color:var(--text-faint); background:rgba(255,255,255,0.05); padding:1px 8px; border-radius:999px; }
.kb-list{ display:flex; flex-direction:column; gap:9px; min-height:60px; border-radius:10px; transition:background 160ms, box-shadow 160ms; padding:2px; }
.kb-list.over{ background:var(--wash); box-shadow:inset 0 0 0 1.5px var(--stroke-strong); }
.kb-card{ background:rgba(13,18,36,0.85); border:1px solid var(--stroke); border-radius:11px; padding:11px 12px; cursor:grab; transition:transform 140ms, box-shadow 160ms, border-color 160ms; }
.kb-card:hover{ border-color:var(--stroke-strong); box-shadow:var(--glow-sm); }
.kb-card.dragging{ opacity:0.5; cursor:grabbing; }
.kb-card-top{ display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:7px; }
.kb-card-mut{ font-size:13.5px; font-weight:600; }
.kb-card-adr{ font-size:11.5px; color:var(--text-faint); margin-top:2px; }

/* ---------- cari ---------- */
.cari-sum{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:16px; }
.csum{ background:var(--glass); border:1px solid var(--stroke); border-radius:var(--r); padding:16px 18px; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
.csum span{ font-size:12px; color:var(--text-dim); }
.csum b{ display:block; margin-top:7px; font-size:22px; font-weight:700; font-family:"JetBrains Mono", monospace; }
.csum.ok b{ color:var(--ok); } .csum.bad b{ color:var(--bad); }

/* ---------- users / audit / notifs / reports / settings ---------- */
.hint-box{ display:flex; align-items:center; gap:10px; padding:11px 14px; margin-bottom:14px; border-radius:11px; background:var(--wash); border:1px solid var(--stroke); font-size:12.5px; color:var(--text-dim); }
.hint-box [data-icon]{ color:var(--accent); }
.hint-box b{ color:var(--accent); }

.audit-list{ list-style:none; display:flex; flex-direction:column; }
.audit-list li{ display:flex; gap:13px; padding:13px 2px; border-bottom:1px solid var(--line-2); }
.audit-list li:last-child{ border-bottom:none; }
.au-ic{ display:grid; place-items:center; width:32px; height:32px; border-radius:9px; flex:none; }
.au-ic svg{ width:16px; height:16px; }
.au-ic.ekle{ background:color-mix(in srgb, var(--ok) 12%, transparent); color:var(--ok); }
.au-ic.duzenle{ background:color-mix(in srgb, var(--info) 12%, transparent); color:var(--info); }
.au-ic.sil{ background:color-mix(in srgb, var(--bad) 12%, transparent); color:var(--bad); }
.au-body{ min-width:0; }
.au-line{ font-size:13.5px; }
.au-line b{ font-weight:600; }
.au-meta{ display:flex; align-items:center; gap:9px; margin-top:5px; }
.au-t{ font-family:"JetBrains Mono", monospace; font-size:10.5px; color:var(--text-faint); }

.notif-list{ list-style:none; display:flex; flex-direction:column; }
.notif{ display:flex; align-items:center; gap:12px; padding:13px 2px; border-bottom:1px solid var(--line-2); }
.notif:last-child{ border-bottom:none; }
.nt-ic{ display:grid; place-items:center; width:34px; height:34px; border-radius:10px; flex:none; background:rgba(255,255,255,0.05); color:var(--text-dim); }
.notif.uyari .nt-ic{ background:color-mix(in srgb, var(--warn) 12%, transparent); color:var(--warn); }
.notif.esik .nt-ic{ background:color-mix(in srgb, var(--accent) 12%, transparent); color:var(--accent); }
.notif.bilgi .nt-ic{ background:color-mix(in srgb, var(--ok) 12%, transparent); color:var(--ok); }
.nt-body{ min-width:0; }
.nt-body b{ font-size:13.5px; font-weight:600; display:block; }
.nt-body span{ font-size:12px; color:var(--text-faint); }
.nt-t{ margin-left:auto; font-family:"JetBrains Mono", monospace; font-size:10.5px; color:var(--text-faint); white-space:nowrap; }

.rep-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.rep-card{ display:flex; align-items:center; gap:13px; background:var(--glass); border:1px solid var(--stroke); border-radius:14px; padding:16px 18px; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); transition:transform 200ms, border-color 200ms, box-shadow 200ms; }
.rep-card:hover{ transform:translateY(-2px); border-color:var(--stroke-strong); box-shadow:var(--glow-md); }
.rep-ic{ display:grid; place-items:center; width:42px; height:42px; border-radius:11px; background:var(--wash); border:1px solid var(--stroke); color:var(--accent); flex:none; }
.rep-meta{ flex:1; min-width:0; }
.rep-meta b{ font-size:14px; font-weight:600; display:block; }
.rep-meta span{ font-size:12px; color:var(--text-faint); }
.rep-btns{ display:flex; gap:6px; flex:none; }
.rep-dl{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600; color:var(--text-dim); background:rgba(255,255,255,0.04); border:1px solid var(--line); border-radius:8px; padding:6px 10px; cursor:pointer; transition:color 140ms, border-color 140ms, box-shadow 140ms; }
.rep-dl:hover{ color:var(--accent); border-color:var(--stroke-strong); box-shadow:var(--glow-sm); }
.rep-dl svg{ width:13px; height:13px; }

.set-cols{ display:grid; grid-template-columns:repeat(2,1fr); gap:15px; align-items:start; }
.settings-card{ width:100%; }
.setting-row{ display:flex; align-items:center; justify-content:space-between; gap:18px; padding:15px 2px; border-bottom:1px solid var(--line-2); }
.setting-row:last-child{ border-bottom:none; }
.setting-row b{ font-size:13.5px; font-weight:600; }
.setting-row p{ font-size:12px; color:var(--text-faint); margin-top:3px; }
.set-note{ font-size:12.5px; color:var(--text-dim); margin-bottom:14px; }
.toggle{ position:relative; width:46px; height:26px; flex:none; background:rgba(255,255,255,0.07); border:1px solid var(--line); border-radius:999px; cursor:pointer; transition:background 200ms, border-color 200ms, box-shadow 200ms; }
.toggle .knob{ position:absolute; top:2px; left:2px; width:20px; height:20px; border-radius:50%; background:#8aa0ae; transition:transform 220ms cubic-bezier(0.34,1.56,0.64,1), background 200ms; }
.toggle.on{ background:var(--wash); border-color:var(--stroke-strong); box-shadow:var(--glow-sm); }
.toggle.on .knob{ transform:translateX(20px); background:var(--accent); box-shadow:0 0 10px var(--accent); }
.swatches{ display:flex; gap:10px; }
.swatch{ width:30px; height:30px; border-radius:50%; cursor:pointer; background:var(--c); border:2px solid transparent; box-shadow:0 0 12px color-mix(in srgb, var(--c) 45%, transparent); transition:transform 160ms, border-color 160ms; }
.swatch:hover{ transform:scale(1.12); }
.swatch.active{ border-color:#fff; transform:scale(1.12); }
.chip-group{ margin-bottom:16px; }
.chip-lbl{ font-family:"JetBrains Mono", monospace; font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-faint); margin-bottom:9px; }
.chips{ display:flex; flex-wrap:wrap; gap:7px; }
.chip{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; padding:5px 6px 5px 11px; border-radius:999px; background:rgba(255,255,255,0.04); border:1px solid var(--line); }
.chip-x{ display:grid; place-items:center; width:18px; height:18px; border:none; border-radius:50%; background:rgba(255,255,255,0.06); color:var(--text-faint); cursor:pointer; transition:color 140ms, background 140ms; }
.chip-x:hover{ color:var(--bad); background:color-mix(in srgb, var(--bad) 14%, transparent); }
.chip-x svg{ width:11px; height:11px; }
.chip-add{ display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:600; color:var(--accent); background:var(--wash); border:1px dashed var(--stroke-strong); border-radius:999px; padding:5px 12px; cursor:pointer; }
.chip-add svg{ width:13px; height:13px; }
.link-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 2px; border-bottom:1px solid var(--line-2); }
.link-row:last-child{ border-bottom:none; }
.link-row b{ font-size:13px; font-weight:600; display:block; }
.link-url{ font-size:11px; color:var(--text-faint); display:block; margin-top:3px; }

/* ---------- drawer ---------- */
.drawer-scrim{ position:fixed; inset:0; z-index:39; background:rgba(4,5,12,0.55); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); opacity:0; pointer-events:none; transition:opacity 280ms ease; }
body.drawer-open .drawer-scrim{ opacity:1; pointer-events:auto; }
.drawer{
  position:fixed; top:0; right:0; z-index:40; height:100vh; width:min(460px, 92vw);
  background:rgba(10,13,28,0.92); border-left:1px solid var(--stroke);
  backdrop-filter:blur(26px); -webkit-backdrop-filter:blur(26px);
  box-shadow:-30px 0 70px rgba(0,0,0,0.6);
  transform:translateX(102%); visibility:hidden;
  transition:transform 340ms cubic-bezier(0.22,1,0.36,1), visibility 0s linear 340ms;
  display:flex; flex-direction:column;
}
/* açıkken anında görünür; kapanınca slide bitene (340ms) kadar görünür kalır, sonra gizlenir.
   Bu sayede sayfa açılışında drawer hiç görünmez (transition-on-load flash'ı engellenir). */
body.drawer-open .drawer{ transform:none; visibility:visible; transition:transform 340ms cubic-bezier(0.22,1,0.36,1), visibility 0s; }
.drawer-head{ display:flex; align-items:center; gap:12px; padding:18px 20px; border-bottom:1px solid var(--line); }
.drawer-head h2{ font-size:16px; font-weight:600; }
.drawer-close{ display:grid; margin-left:auto; }
.drawer-body{ padding:20px; overflow-y:auto; flex:1; }
.dr-badges{ display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.dr-warn{ display:flex; align-items:center; gap:9px; padding:11px 13px; border-radius:11px; background:color-mix(in srgb, var(--bad) 10%, transparent); border:1px solid color-mix(in srgb, var(--bad) 28%, transparent); color:var(--bad); font-size:12.5px; margin-bottom:16px; }
.dr-warn [data-icon] svg{ width:15px; height:15px; }
.dr-rows{ display:flex; flex-direction:column; }
.dr-row{ display:flex; justify-content:space-between; gap:16px; padding:11px 0; border-bottom:1px solid var(--line-2); font-size:13px; }
.dr-row span{ color:var(--text-faint); }
.dr-row b{ font-weight:600; text-align:right; }
.dr-sec{ font-family:"JetBrains Mono", monospace; font-size:10px; letter-spacing:0.13em; text-transform:uppercase; color:var(--text-faint); margin:20px 0 12px; }
.dr-timeline{ list-style:none; display:flex; flex-direction:column; gap:4px; }
.dr-timeline li{ display:flex; gap:12px; padding-bottom:14px; position:relative; }
.dr-timeline li:not(:last-child)::before{ content:""; position:absolute; left:4.5px; top:14px; bottom:0; width:1.5px; background:var(--line); }
.tl-dot{ width:10px; height:10px; border-radius:50%; background:var(--accent); box-shadow:0 0 8px var(--accent); flex:none; margin-top:3px; }
.dr-timeline b{ font-size:13px; font-weight:600; display:block; }
.dr-timeline span{ font-size:11.5px; color:var(--text-faint); }
.dr-bal{ display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-radius:13px; background:var(--glass-2); border:1px solid var(--stroke); }
.dr-bal span{ font-size:12.5px; color:var(--text-dim); }
.dr-bal b{ font-size:22px; font-weight:700; }
.dr-bal.pos b{ color:var(--ok); } .dr-bal.neg b{ color:var(--bad); }
.mini-table{ min-width:380px; }
.mini-table td, .mini-table th{ font-size:12px; padding:9px 8px; }
.dr-actions{ display:flex; gap:9px; margin-top:22px; flex-wrap:wrap; }

/* ---------- auth (login only) ---------- */
.auth{ position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:20px; background:radial-gradient(ellipse at 50% 28%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 60%), rgba(5,6,16,0.5); transition:opacity 350ms ease; }
body:not(.locked) .auth{ opacity:0; pointer-events:none; }
.auth-card{ width:100%; max-width:382px; background:rgba(11,15,32,0.8); border:1px solid var(--stroke); border-radius:20px; padding:30px 28px 26px; backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); box-shadow:0 30px 80px rgba(0,0,0,0.6), var(--glow-md); animation:authIn 450ms cubic-bezier(0.22,1,0.36,1); }
@keyframes authIn{ from{ opacity:0; transform:translateY(18px) scale(0.97); } }
.auth-card.shake{ animation:shake 360ms ease; }
@keyframes shake{ 20%{ transform:translateX(-7px); } 40%{ transform:translateX(6px); } 60%{ transform:translateX(-4px); } 80%{ transform:translateX(3px); } }
.auth-logo{ text-align:center; margin-bottom:22px; }
.logo-mark.lg{ display:inline-grid; margin-bottom:10px; }
.auth-title{ font-size:21px; font-weight:700; letter-spacing:0.04em; }
.auth-sub{ font-size:12.5px; color:var(--text-faint); margin-top:4px; }
.field{ margin-bottom:14px; min-width:0; }
.field label{ display:block; font-family:"JetBrains Mono", monospace; font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-dim); margin-bottom:7px; }
.input-wrap{ display:flex; align-items:center; gap:10px; padding:0 13px; background:rgba(255,255,255,0.04); border:1px solid var(--line); border-radius:10px; color:var(--text-faint); transition:border-color 160ms, box-shadow 160ms, color 160ms; }
.input-wrap:focus-within{ border-color:var(--stroke-strong); box-shadow:var(--glow-sm); color:var(--accent); }
.input-wrap input{ flex:1; min-width:0; padding:11px 0; background:none; border:none; outline:none; color:var(--text); font-family:inherit; font-size:14px; }
.input-wrap select{ flex:1; min-width:0; padding:11px 0; background:none; border:none; outline:none; color:var(--text); font-family:inherit; font-size:14px; cursor:pointer; }
.input-wrap select option{ background:#0b0f20; color:var(--text); }
.field.invalid .input-wrap{ border-color:color-mix(in srgb, var(--bad) 55%, transparent); box-shadow:0 0 14px color-mix(in srgb, var(--bad) 15%, transparent); }
.err{ display:block; min-height:15px; font-size:11.5px; color:var(--bad); margin-top:5px; }
.demo-hint{ margin-top:14px; text-align:center; font-family:"JetBrains Mono", monospace; font-size:10px; color:var(--text-faint); }

/* ---------- toast ---------- */
.toast{ position:fixed; bottom:26px; left:50%; z-index:60; transform:translate(-50%, 80px); background:rgba(13,17,36,0.92); border:1px solid var(--stroke-strong); color:var(--text); font-size:13px; font-weight:500; padding:11px 20px; border-radius:999px; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); box-shadow:var(--glow-md), 0 12px 30px rgba(0,0,0,0.5); opacity:0; transition:transform 320ms cubic-bezier(0.22,1,0.36,1), opacity 320ms ease; pointer-events:none; white-space:nowrap; }
.toast.show{ transform:translate(-50%, 0); opacity:1; }

/* ---------- scrim ---------- */
.scrim{ display:none; position:fixed; inset:0; z-index:29; background:rgba(4,4,14,0.6); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); }

/* ---------- responsive ---------- */
@media (max-width: 1080px){
  .ov-grid{ grid-template-columns:1fr; }
  .span2{ grid-column:auto; }
}
@media (max-width: 980px){
  .app{ grid-template-columns:1fr; }
  .sidebar{ position:fixed; inset:0 auto 0 0; z-index:30; width:264px; height:100vh; transform:translateX(-105%); transition:transform 300ms cubic-bezier(0.22,1,0.36,1); background:rgba(8,10,22,0.96); }
  .sidebar.open{ transform:none; box-shadow:24px 0 60px rgba(0,0,0,0.5); }
  .sidebar.open + .scrim{ display:block; }
  .icon-btn.menu-btn{ display:grid; }
  .kpis{ grid-template-columns:repeat(2,1fr); }
  .kanban{ grid-template-columns:repeat(2,1fr); }
  .cari-sum{ grid-template-columns:1fr; }
  .rep-grid, .set-cols{ grid-template-columns:1fr; }
}
@media (max-width: 720px){
  .sync-chip{ display:none; }
  .user-chip span:last-child{ display:none; }
  .lo-txt{ display:none; }
  .view-host{ padding:18px 14px 48px; }
  .topbar{ padding:13px 14px; }
  .saha-table{ display:none; }
  .saha-cards{ display:flex; }
}
@media (max-width: 560px){
  .kpis{ grid-template-columns:1fr; }
  .kanban{ grid-template-columns:1fr; }
  .rep-card{ flex-wrap:wrap; }
  .rep-btns{ width:100%; }
}
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
}

/* ============================ TANIMLAR (CRUD) ============================ */
.crud-cards{ display:none; }
.row-acts{ white-space:nowrap; }
.row-act{
  width:30px; height:30px; display:inline-grid; place-items:center; margin-left:6px;
  border-radius:8px; border:1px solid var(--line); background:rgba(255,255,255,0.03);
  color:var(--text-dim); cursor:pointer; transition:color 150ms, border-color 150ms, box-shadow 150ms;
}
.row-act svg{ width:15px; height:15px; }
.row-act:hover{ color:var(--accent); border-color:var(--stroke-strong); box-shadow:var(--glow-sm); }
.row-act.danger:hover{ color:var(--bad); border-color:color-mix(in srgb, var(--bad) 45%, transparent); box-shadow:0 0 12px color-mix(in srgb, var(--bad) 20%, transparent); }
.req{ color:var(--bad); }

.ccard{ background:rgba(255,255,255,0.025); border:1px solid var(--line); border-radius:12px; padding:13px 14px; margin-bottom:10px; }
.ccard-top{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
.ccard-top > b{ font-size:14px; font-weight:600; word-break:break-word; }
.ccard-acts{ display:inline-flex; flex-shrink:0; }
.ccard-acts .row-act:first-child{ margin-left:0; }
.ccard-row{ display:flex; justify-content:space-between; gap:12px; margin-top:8px; font-size:13px; }
.ccard-row span{ color:var(--text-faint); }
.ccard-row b{ color:var(--text); font-weight:500; text-align:right; word-break:break-word; }

@media (max-width: 720px){
  .crud-table{ display:none; }
  .crud-cards{ display:block; }
}

/* ---- server-side render: aksiyonlar, form, kpi link, logout ---- */
.row-acts{ white-space:nowrap; }
.row-acts > .row-act:first-child{ margin-left:0; }
.row-acts form, .ccard-acts form{ display:inline-flex; margin:0; }
.logout-form{ display:inline-flex; margin:0; }

.form-card{ max-width:560px; }
/* geniş form: alanları sayfaya yay (3 sütun); .tam alanlar + başlıklar tam genişlik */
.form-card.genis{ max-width:1080px; }
.form-genis{ display:grid; grid-template-columns:repeat(3, 1fr); gap:0 18px; align-items:start; }
.form-genis > .set-note, .form-genis > .dr-actions, .form-genis > .tam{ grid-column:1 / -1; }
@media (max-width:900px){ .form-genis{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .form-genis{ grid-template-columns:1fr; } }
.form-error{
  margin-bottom:14px; padding:10px 13px; border-radius:10px; font-size:13px;
  color:var(--bad); background:color-mix(in srgb, var(--bad) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--bad) 35%, transparent);
}

.kpi{ text-decoration:none; color:inherit; cursor:pointer; transition:border-color 160ms, box-shadow 160ms; }
.kpi:hover{ border-color:var(--stroke-strong); box-shadow:var(--glow-sm); }

.ov-note{ margin-bottom:14px; padding:8px 13px; border-radius:9px; font-size:12px; color:var(--text-dim); background:var(--wash); border:1px solid var(--stroke); }

/* ---- evrak: butonlar + modal ---- */
.evrak-cards{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:14px; }
.evrak-card{ display:flex; align-items:center; gap:14px; text-align:left; padding:20px; border-radius:var(--r); border:1px solid var(--stroke); background:var(--glass); color:var(--text); cursor:pointer; transition:border-color 160ms, box-shadow 160ms, transform 160ms; }
.evrak-card:hover{ border-color:var(--stroke-strong); box-shadow:var(--glow-sm); transform:translateY(-2px); }
.evrak-ic{ display:grid; place-items:center; width:46px; height:46px; flex-shrink:0; border-radius:12px; background:var(--wash); color:var(--accent); }
.evrak-ic [data-icon] svg{ width:24px; height:24px; }
.evrak-meta{ display:flex; flex-direction:column; gap:3px; }
.evrak-meta b{ font-size:15px; font-weight:600; }
.evrak-meta span{ font-size:12.5px; color:var(--text-faint); }
.evrak-card.ana{ grid-column:1 / -1; border-color:color-mix(in srgb, var(--accent) 45%, var(--stroke)); background:color-mix(in srgb, var(--accent) 8%, var(--glass)); }
.evrak-card.ana .evrak-ic{ background:var(--accent); color:#04121a; }

/* takip listesi */
.takip-tabs{ display:flex; gap:4px; margin-bottom:16px; border-bottom:1px solid var(--line); }
.takip-tabs a{ padding:9px 16px; font-size:13.5px; color:var(--text-faint); text-decoration:none; border-bottom:2px solid transparent; margin-bottom:-1px; }
.takip-tabs a:hover{ color:var(--text); }
.takip-tabs a.aktif{ color:var(--accent); border-bottom-color:var(--accent); font-weight:600; }
.takip-filt{ display:flex; flex-wrap:wrap; gap:10px 14px; align-items:end; margin-bottom:18px; }
.takip-filt .field{ margin-bottom:0; min-width:150px; flex:1 1 150px; }
.takip-filt-acts{ display:flex; gap:8px; align-items:center; }
.takip-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:14px; }
.tcard{ border:1px solid var(--stroke); border-radius:14px; background:var(--glass); padding:15px 16px; }
.tcard-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.tcard-top b{ font-size:16px; font-weight:600; }
.tcard-acts{ display:flex; align-items:center; gap:6px; }
.tcard-row{ display:flex; justify-content:space-between; gap:12px; padding:5px 0; font-size:13px; border-top:1px solid var(--line); }
.tcard-row span{ color:var(--text-faint); white-space:nowrap; }
.tcard-row b{ font-weight:500; text-align:right; word-break:break-word; }
.badge{ display:inline-block; padding:2px 9px; border-radius:999px; font-size:10.5px; letter-spacing:0.04em; text-transform:uppercase; background:var(--wash); color:var(--text-dim); }
.badge-evrak{ background:color-mix(in srgb, var(--accent) 18%, transparent); color:var(--accent); }
.input-wrap textarea{ flex:1; min-width:0; padding:10px 0; background:none; border:none; outline:none; color:var(--text); font-family:inherit; font-size:14px; resize:vertical; }

/* takip dosyaları (yüklü fotoğraf/PDF) */
.dosya-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(165px, 1fr)); gap:14px; }
.dosya-item{ border:1px solid var(--stroke); border-radius:12px; overflow:hidden; background:var(--glass); display:flex; flex-direction:column; }
.dosya-onizleme{ display:block; height:120px; background:var(--wash); }
.dosya-onizleme img{ width:100%; height:120px; object-fit:cover; display:block; }
.dosya-pdf{ display:flex; align-items:center; justify-content:center; height:120px; font-weight:700; font-size:18px; letter-spacing:2px; color:var(--text-faint); }
.dosya-meta{ padding:8px 10px 2px; }
.dosya-tur{ display:block; font-size:10px; text-transform:uppercase; letter-spacing:0.05em; color:var(--accent); }
.dosya-ad{ display:block; font-size:11.5px; color:var(--text-faint); word-break:break-all; line-height:1.3; max-height:30px; overflow:hidden; }
.dosya-acts{ display:flex; align-items:center; gap:12px; padding:8px 10px 10px; margin-top:auto; }
.dosya-acts a{ font-size:11.5px; color:var(--accent); text-decoration:none; }
.dosya-acts a:hover{ text-decoration:underline; }
.dosya-acts form{ margin-left:auto; display:inline; }

/* dosya lightbox (tam boy görüntüle + indir) */
.lb-scrim{ position:fixed; inset:0; z-index:80; display:none; align-items:center; justify-content:center; padding:24px; background:rgba(4,5,12,0.85); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
.lb-scrim.open{ display:flex; }
.lb-box{ display:flex; flex-direction:column; max-width:94vw; max-height:92vh; background:rgba(10,13,28,0.98); border:1px solid var(--stroke); border-radius:16px; overflow:hidden; box-shadow:0 40px 90px rgba(0,0,0,0.6); }
.lb-head{ display:flex; align-items:center; gap:14px; padding:12px 16px; border-bottom:1px solid var(--line); }
.lb-head .lb-ad{ flex:1; font-size:13px; color:var(--text-faint); word-break:break-all; }
.lb-head .lb-acts{ display:flex; gap:8px; flex-shrink:0; }
.lb-body{ flex:1; min-height:0; display:flex; align-items:center; justify-content:center; background:var(--wash); overflow:auto; }
.lb-body img{ max-width:90vw; max-height:76vh; display:block; }
.lb-body iframe{ width:82vw; height:78vh; border:none; background:#fff; }

/* form butonu: yükleniyor / kilitli */
.spinner{ display:inline-block; width:14px; height:14px; border:2px solid currentColor; border-top-color:transparent; border-radius:50%; animation:sg-spin 0.6s linear infinite; vertical-align:-2px; margin-right:3px; }
@keyframes sg-spin{ to{ transform:rotate(360deg); } }
.btn:disabled{ opacity:0.6; cursor:not-allowed; }
.btn.loading{ cursor:progress; }
.row-act:disabled{ opacity:0.5; cursor:progress; }

/* göreli yıkım tarihi rozeti (haftaya / 2 hafta sonra / dün …) */
.tarih-rel{ display:inline-block; margin-left:6px; padding:1px 8px; border-radius:999px; font-size:10px; font-weight:600; letter-spacing:0.02em; background:color-mix(in srgb, var(--accent) 16%, transparent); color:var(--accent); vertical-align:1px; }
.tarih-rel.bugun{ background:color-mix(in srgb, var(--accent) 34%, transparent); }
.tarih-rel.gecmis{ background:color-mix(in srgb, var(--bad) 18%, transparent); color:var(--bad); }

.modal-scrim{ position:fixed; inset:0; z-index:50; display:none; align-items:center; justify-content:center; padding:20px; background:rgba(4,5,12,0.62); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.modal-scrim.open{ display:flex; }
.modal{ width:min(640px, 100%); max-height:90vh; overflow-y:auto; overflow-x:hidden; scrollbar-gutter:stable; background:rgba(10,13,28,0.97); border:1px solid var(--stroke); border-radius:18px; box-shadow:0 40px 90px rgba(0,0,0,0.6); }
.modal-head{ display:flex; align-items:center; gap:12px; padding:17px 22px; border-bottom:1px solid var(--line); position:sticky; top:0; background:rgba(10,13,28,0.97); z-index:1; }
.modal-head h2{ font-size:16px; font-weight:600; }
.modal-close{ margin-left:auto; display:grid; }
.modal-body{ padding:20px 22px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.form-grid-3{ grid-template-columns:1fr 1fr 1fr; }
@media (max-width:560px){ .form-grid, .form-grid-3{ grid-template-columns:1fr; } }
