/* ===========================================================================
   BZT // SERVICE CONSOLE  —  terminal-themed admin
   =========================================================================== */
:root{
  --bg:#05080f; --bg2:#0b1018; --panel:#0c121c; --line:#18222f; --line2:#22303f;
  --txt:#c4d2e0; --dim:#5a6b82; --sec:#8fb6e0;
  --grn:#35d07f; --grn2:#5be3b3; --cyan:#4be0d5; --blue:#2b95d6; --zen:#008bd2;
  --red:#e8505b; --org:#e0a85b; --yel:#ffe000; --mag:#b07be8;
  --mono:'Cascadia Mono','JetBrains Mono','Fira Code',Consolas,'Courier New',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:var(--bg); color:var(--txt); font-family:var(--mono); font-size:13.5px;
  line-height:1.5; -webkit-font-smoothing:antialiased; overflow:hidden;
}
/* arka plan ızgara + tarama çizgisi */
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(53,208,127,.025) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(53,208,127,.025) 1px,transparent 1px);
  background-size:38px 38px;
}
body::after{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,0) 0,rgba(0,0,0,0) 2px,rgba(0,0,0,.12) 3px);
}
a{color:var(--cyan);text-decoration:none}
::selection{background:var(--grn);color:#05080f}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#1b2735;border-radius:6px}
::-webkit-scrollbar-track{background:transparent}

/* ---- App shell ---- */
.app{position:relative;z-index:1;display:grid;grid-template-columns:248px 1fr;height:100vh}
.side{
  background:linear-gradient(180deg,#080c14,#0a0f18);border-right:1px solid var(--line);
  display:flex;flex-direction:column;padding:18px 0;
}
.brand{padding:0 20px 16px;border-bottom:1px solid var(--line);margin-bottom:12px}
.brand .logo{display:flex;align-items:center;gap:8px}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--grn);box-shadow:0 0 10px var(--grn)}
.brand b{color:var(--grn);font-size:16px;letter-spacing:1px}
.brand .sub{color:var(--dim);font-size:11px;margin-top:2px;letter-spacing:.5px}
.nav{display:flex;flex-direction:column;gap:2px;padding:0 12px;flex:1}
.nav a{
  display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:7px;color:var(--sec);
  font-size:13px;border:1px solid transparent;transition:all .15s
}
.nav a .ic{width:18px;text-align:center;opacity:.85}
.nav a:hover{background:#0f1a26;color:var(--txt)}
.nav a.active{background:#0f1f18;color:var(--grn2);border-color:#1d4d33}
.side .foot{padding:12px 20px;border-top:1px solid var(--line);color:var(--dim);font-size:11px}
.side .foot a{color:var(--red)}

.main{display:flex;flex-direction:column;height:100vh;overflow:hidden}
.top{
  display:flex;align-items:center;justify-content:space-between;padding:14px 24px;
  border-bottom:1px solid var(--line);background:rgba(8,12,20,.6)
}
.top .title{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--grn2);font-weight:600;letter-spacing:1px}
.top .title .bar{color:var(--dim)}
.top .right{display:flex;align-items:center;gap:14px;font-size:12px}
.badge{padding:4px 10px;border-radius:5px;font-size:11px;font-weight:700;letter-spacing:.5px}
.badge.live{background:#10261a;color:#8ae0a8;border:1px solid #1d4d33}
.badge.warn{background:#2a1c10;color:var(--org);border:1px solid #4d3a1d}
.clock{color:var(--sec);font-weight:700}
.usr{color:var(--dim)}.usr b{color:var(--txt)}

.content{padding:24px;overflow:auto;flex:1}

/* ---- cards ---- */
.grid{display:grid;gap:14px}
.grid.k4{grid-template-columns:repeat(4,1fr)}
.grid.k2{grid-template-columns:repeat(2,1fr)}
.card{
  background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px 18px;position:relative;overflow:hidden
}
.card .kpi-l{color:var(--dim);font-size:11px;letter-spacing:1px;text-transform:uppercase}
.card .kpi-v{font-size:34px;font-weight:700;margin-top:6px}
.card.g .kpi-v{color:var(--grn2)} .card.b .kpi-v{color:var(--sec)}
.card.r .kpi-v{color:var(--red)} .card.o .kpi-v{color:var(--org)}
.card .spark{position:absolute;right:-6px;bottom:-6px;font-size:46px;opacity:.06}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;margin-top:16px}
.panel .h{padding:12px 16px;border-bottom:1px solid var(--line);color:var(--grn2);font-weight:700;font-size:12px;letter-spacing:1px;display:flex;align-items:center;justify-content:space-between}
.panel .h .accent{color:var(--grn)}
.panel .b{padding:14px 16px}

/* ---- health rows ---- */
.health{display:flex;flex-direction:column;gap:8px}
.hrow{display:flex;align-items:center;gap:10px;font-size:13px}
.hrow .led{width:9px;height:9px;border-radius:50%}
.hrow.ok .led{background:var(--grn);box-shadow:0 0 8px var(--grn)}
.hrow.no .led{background:var(--red);box-shadow:0 0 8px var(--red)}
.hrow .lab{width:120px;color:var(--sec)}
.hrow .det{color:var(--dim)}

/* ---- tables ---- */
table.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
table.tbl th{
  text-align:left;color:var(--dim);font-weight:600;font-size:11px;letter-spacing:.5px;
  text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--line2);position:sticky;top:0;background:var(--panel)
}
table.tbl td{padding:9px 12px;border-bottom:1px solid var(--line)}
table.tbl tr:hover td{background:#0f1a26}
.pill{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700}
.pill.ok{background:#10261a;color:#8ae0a8}.pill.no{background:#2a1216;color:var(--red)}
.pill.warn{background:#2a1c10;color:var(--org)}
.mut{color:var(--dim)}
button.pill.tgl{border:0;font-family:var(--mono);cursor:pointer;font-weight:700;transition:filter .15s}
button.pill.tgl:hover{filter:brightness(1.25)}
.captcha svg{display:block;border-radius:7px}
.cap-refresh{color:var(--dim);text-decoration:none;font-size:18px;padding:4px}
.cap-refresh:hover{color:var(--grn2)}

/* ---- buttons / forms ---- */
.btn{
  display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:7px;cursor:pointer;
  font-family:var(--mono);font-size:12.5px;font-weight:600;border:1px solid var(--line2);
  background:#101a26;color:var(--txt);transition:all .15s
}
.btn:hover{border-color:var(--grn);color:var(--grn2)}
.btn.pri{background:var(--zen);border-color:var(--zen);color:#fff}
.btn.pri:hover{filter:brightness(1.1);color:#fff}
.btn.dng{background:#2a1216;border-color:#4d1d24;color:var(--red)}
input,select{
  font-family:var(--mono);font-size:13px;background:#0a121c;border:1px solid var(--line2);
  color:var(--txt);padding:9px 11px;border-radius:7px;outline:none;width:100%
}
input:focus{border-color:var(--grn);box-shadow:0 0 0 2px rgba(53,208,127,.15)}
label{display:block;color:var(--sec);font-size:12px;margin:0 0 5px 2px}
.row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.notice{padding:14px 16px;border-radius:8px;border:1px dashed var(--line2);color:var(--dim);background:#0a0f18}
.notice b{color:var(--org)}

/* ---- LOGIN (boot) ---- */
.login-wrap{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;height:100vh}
.term{
  width:560px;max-width:92vw;background:var(--bg2);border:1px solid var(--line2);border-radius:12px;
  box-shadow:0 24px 80px rgba(0,0,0,.6),0 0 0 1px rgba(53,208,127,.06);overflow:hidden
}
.term .tbar{display:flex;align-items:center;gap:7px;padding:11px 14px;background:#0a0f18;border-bottom:1px solid var(--line)}
.term .tbar i{width:11px;height:11px;border-radius:50%;display:inline-block}
.term .tbar .r{background:#e8505b}.term .tbar .y{background:#e0a85b}.term .tbar .g{background:#35d07f}
.term .tbar span{margin-left:8px;color:var(--dim);font-size:11px;letter-spacing:.5px}
.term .body{padding:22px 24px 26px}
.boot{min-height:96px;color:var(--grn2);font-size:13px;white-space:pre-wrap;margin-bottom:14px}
.boot .ln{opacity:0}
.boot .ok{color:var(--grn)} .boot .dim{color:var(--dim)}
.cursor{display:inline-block;width:9px;height:16px;background:var(--grn);vertical-align:-3px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.login-form{opacity:0}
.login-form .f{margin-bottom:12px}
.login-form .prompt{color:var(--grn);margin-right:6px}
.err{color:var(--red);font-size:12px;margin-bottom:10px}
.brandline{color:var(--zen);font-weight:700;letter-spacing:1px}
.fade{opacity:0}

/* ---- dashboard ek ---- */
.grid.k6{grid-template-columns:repeat(6,1fr)}
.card.c .kpi-v{color:var(--cyan)}
.card .kpi-v{font-size:30px}

/* aktivite çubukları */
.chart{display:flex;align-items:flex-end;gap:3px;height:120px;padding-top:6px}
.chart .actbar{flex:1;min-width:3px;background:linear-gradient(180deg,var(--grn2),var(--zen));
  border-radius:2px 2px 0 0;transform:scaleY(0);transform-origin:bottom;opacity:.85}
.chart .actbar:hover{filter:brightness(1.3)}

/* sürüm/üretici barları */
.vrow{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:12.5px}
.vlbl{width:110px;color:var(--sec);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vlbl.new{color:var(--grn2);font-weight:700}
.vbarwrap{flex:1;height:14px;background:#0a121c;border-radius:4px;overflow:hidden}
.vbar{display:block;height:100%;width:0;background:var(--zen);border-radius:4px}
.vbar.g{background:linear-gradient(90deg,var(--grn),var(--grn2))}
.vbar.b{background:linear-gradient(90deg,var(--zen),var(--sec))}
.vcnt{width:38px;text-align:right;color:var(--txt);font-weight:700}
.vlast{width:120px;text-align:right;font-size:11px}

/* toggle (izin) */
.tog{display:flex;align-items:center;gap:9px;padding:7px 0;cursor:pointer;font-size:13px;color:var(--txt)}
.tog input{width:auto;accent-color:var(--grn)}
.tog span{user-select:none}

/* securekey grid */
.skgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.skf label{font-size:11px}
.skstatus{display:flex;gap:6px;flex-wrap:wrap}
.skdot{width:30px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;
  font-size:11px;background:#0a121c;border:1px solid var(--line2);color:var(--dim)}
.skdot.on{background:#10261a;border-color:#1d4d33;color:var(--grn2);font-weight:700}
table.tbl td{vertical-align:top}
