/* ── Reset ───────────────────────────────────────────────── */
*{margin:0;padding:0;box-sizing:border-box}

/* ── Design tokens ───────────────────────────────────────── */
:root{
  /* Backgrounds — layered from darkest to lightest */
  --bg0:#030603;       /* page base */
  --bg1:#07100a;       /* sidebar, header tints */
  --bg2:#0c1a0e;       /* panel headers, box fills */
  --bg3:#111f13;       /* card fills, raised surfaces */
  --bg4:#172316;       /* hover, input fills */

  /* Primary accent — kept neon but used sparingly */
  --green:#00ff41;
  --green2:#5fff80;    /* softer bright green — better on dark */
  --green-dim:#1a4022; /* visible border tints */
  --green-glow:rgba(0,255,65,.12);

  /* Semantic colours */
  --cyan:#00d4ff;
  --red:#ff4444;
  --yellow:#ffd740;
  --orange:#ff9500;
  --purple:#c084fc;

  /* Text hierarchy — the key to good contrast */
  --t1:#d4ecd4;        /* primary body text — soft green-white */
  --t2:#8ec89a;        /* secondary / labels */
  --t3:#5a8a68;        /* dim / timestamps / metadata */
  --t4:#2e5038;        /* very dim separators (was --dim = #3a4a3a) */

  /* Borders */
  --border:rgba(0,255,65,.22);
  --border2:rgba(0,255,65,.10);

  --font:'Share Tech Mono',monospace;
  --head:'Orbitron',monospace;
  --glow:0 0 8px var(--green),0 0 24px rgba(0,255,65,.25);
  --shadow-card:0 2px 12px rgba(0,0,0,.6);
}

/* ── Base ────────────────────────────────────────────────── */
html,body{height:100%;overflow:hidden;background:var(--bg0);color:var(--t1);font-family:var(--font);font-size:13px;-webkit-font-smoothing:antialiased}

/* Subtle scanlines — much lighter than before */
body::before{content:'';position:fixed;inset:0;
  background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.07) 3px,rgba(0,0,0,.07) 4px);
  pointer-events:none;z-index:9998}

/* Soft vignette — reduced opacity */
body::after{content:'';position:fixed;inset:0;
  background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.45) 100%);
  pointer-events:none;z-index:9997}

/* ── Canvas ──────────────────────────────────────────────── */
#matrix-bg{position:fixed;top:0;left:0;width:100%;height:100%;opacity:.035;z-index:1;pointer-events:none}

/* ── App shell ───────────────────────────────────────────── */
#app{display:flex;flex-direction:column;height:100vh;position:relative;z-index:10}

/* ── Header ──────────────────────────────────────────────── */
#header{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 20px;height:52px;flex-shrink:0;
  background:linear-gradient(90deg,rgba(0,30,10,.9),rgba(5,15,8,.95),rgba(0,30,10,.9));
  border-bottom:1px solid var(--border);
}
.logo{font-family:var(--head);font-size:16px;font-weight:900;color:var(--green);text-shadow:var(--glow);letter-spacing:3px}
.logo span{color:var(--cyan)}

.hdr-center{display:flex;align-items:center;gap:16px}
.status-pill{
  display:flex;align-items:center;gap:6px;
  border:1px solid var(--border);padding:4px 12px;border-radius:2px;
  font-size:10px;letter-spacing:1.5px;color:var(--t2);
  background:rgba(0,20,8,.6);
}
.led{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);animation:blink 2s infinite;flex-shrink:0}
.led.off{background:var(--t4);box-shadow:none;animation:none}
.led.red{background:var(--red);box-shadow:0 0 6px var(--red)}
.led.yellow{background:var(--yellow);box-shadow:0 0 6px var(--yellow);animation:blink .5s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}

.hdr-stat{font-size:11px;color:var(--t3)}
.hdr-stat span{color:var(--green);font-weight:bold}

.hdr-right{display:flex;align-items:center;gap:14px}
#clock{color:var(--t2);font-size:12px;font-family:var(--head);letter-spacing:1px}
.classified-badge{
  color:var(--red);border:1px solid rgba(255,68,68,.5);
  padding:3px 10px;font-size:9px;letter-spacing:3px;
  background:rgba(255,68,68,.06);animation:blink 3s infinite
}

/* ── Body ────────────────────────────────────────────────── */
#body{display:flex;flex:1;overflow:hidden}

/* ── Sidebar ─────────────────────────────────────────────── */
#sidebar{
  width:60px;flex-shrink:0;
  border-right:1px solid var(--border);
  background:var(--bg1);
  display:flex;flex-direction:column;align-items:center;
  padding:14px 0;gap:4px;
}
.nav-btn{
  width:44px;height:44px;
  border:1px solid var(--green-dim);
  background:transparent;
  color:var(--t3);
  cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  font-size:8px;font-family:var(--font);letter-spacing:1px;
  transition:all .15s;position:relative;border-radius:3px;
}
.nav-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.5}
.nav-btn:hover{border-color:rgba(0,255,65,.5);color:var(--t2);background:rgba(0,255,65,.06)}
.nav-btn.active{
  border-color:var(--green);color:var(--green);
  background:rgba(0,255,65,.10);
  box-shadow:inset 0 0 12px rgba(0,255,65,.08);
}
.nav-btn.active::after{
  content:'';position:absolute;right:-1px;top:20%;bottom:20%;
  width:2px;background:var(--green);box-shadow:var(--glow);
}
.nav-btn.enhanced{
  border-color:rgba(255,215,0,.4);color:#ffd700;
}
.nav-btn.enhanced:hover{
  border-color:rgba(255,215,0,.6);color:#ffd700;background:rgba(255,215,0,.08);
}
.nav-btn.enhanced.active{
  border-color:#ffd700;color:#ffd700;
  background:rgba(255,215,0,.12);
  box-shadow:inset 0 0 12px rgba(255,215,0,.08);
}
.nav-btn.enhanced.active::after{
  background:#ffd700;box-shadow:0 0 8px #ffd700;
}
.nav-sep{width:28px;height:1px;background:var(--border2);margin:6px 0}

/* ── Main ────────────────────────────────────────────────── */
#main{flex:1;display:flex;flex-direction:column;overflow:hidden}

/* ── Panels ──────────────────────────────────────────────── */
.panel{display:none;flex:1;overflow:hidden;flex-direction:column}
.panel.active{display:flex;animation:fadeIn .18s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}

.panel-header{
  padding:11px 20px;flex-shrink:0;
  border-bottom:1px solid var(--border);
  background:linear-gradient(90deg,rgba(0,25,10,.95),rgba(5,18,8,.95));
  display:flex;align-items:center;justify-content:space-between;
}
.panel-title{font-family:var(--head);font-size:12px;letter-spacing:3px;color:var(--green);text-shadow:0 0 12px rgba(0,255,65,.4)}
.panel-badge{font-size:9px;letter-spacing:2px;border:1px solid;padding:3px 9px}
.badge-ts{color:rgba(255,100,100,.9);border-color:rgba(255,68,68,.4);background:rgba(255,68,68,.06)}
.badge-s{color:var(--yellow);border-color:rgba(255,215,64,.4);background:rgba(255,215,64,.06)}
.badge-c{color:var(--cyan);border-color:rgba(0,212,255,.4);background:rgba(0,212,255,.06)}

.panel-body{flex:1;overflow:auto;padding:16px 20px}
.panel-body::-webkit-scrollbar{width:5px}
.panel-body::-webkit-scrollbar-track{background:var(--bg1)}
.panel-body::-webkit-scrollbar-thumb{background:var(--green-dim);border-radius:3px}
.panel-body::-webkit-scrollbar-thumb:hover{background:#2d6040}

/* ── Glitch logo ─────────────────────────────────────────── */
.glitch{position:relative;animation:glitch-skew 10s infinite}
.glitch::before,.glitch::after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}
.glitch::before{color:var(--cyan);animation:glitch-1 4s infinite;clip-path:polygon(0 15%,100% 15%,100% 40%,0 40%)}
.glitch::after{color:var(--red);animation:glitch-2 4s infinite;clip-path:polygon(0 62%,100% 62%,100% 84%,0 84%)}
@keyframes glitch-1{0%,88%,100%{transform:none;opacity:0}89%{transform:translate(-2px,0);opacity:.9}91%{transform:translate(2px,0);opacity:.7}93%{opacity:0}}
@keyframes glitch-2{0%,84%,100%{transform:none;opacity:0}85%{transform:translate(2px,0);opacity:.9}87%{transform:translate(-2px,1px);opacity:.6}89%{opacity:0}}
@keyframes glitch-skew{0%,92%,100%{transform:skew(0)}93%{transform:skew(.25deg)}94%{transform:skew(-.25deg)}95%{transform:skew(0)}}

/* ── Boxes ───────────────────────────────────────────────── */
.box{
  border:1px solid var(--border);
  background:var(--bg2);
  border-radius:3px;padding:14px;
  box-shadow:var(--shadow-card);
}
.box + .box{margin-top:12px}
.box-title{
  font-size:10px;letter-spacing:2px;color:var(--t2);
  margin-bottom:12px;
  display:flex;align-items:center;gap:8px;
  text-transform:uppercase;
}
.box-title::after{content:'';flex:1;height:1px;background:var(--border2)}

/* ── Stat cards ──────────────────────────────────────────── */
.stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}
.stat-card{
  border:1px solid var(--border);
  background:var(--bg3);
  padding:14px 10px;text-align:center;
  position:relative;overflow:hidden;
  border-radius:3px;box-shadow:var(--shadow-card);
}
.stat-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--green),transparent);
  opacity:.6;
}
.stat-val{font-family:var(--head);font-size:28px;font-weight:700;color:var(--green);text-shadow:var(--glow);line-height:1.1}
.stat-val.c-valid{color:#5fff80;text-shadow:0 0 10px rgba(95,255,128,.5)}
.stat-val.c-red{color:var(--red);text-shadow:0 0 10px rgba(255,68,68,.4)}
.stat-val.c-yellow{color:var(--yellow);text-shadow:0 0 10px rgba(255,215,64,.4)}
.stat-val.c-cyan{color:var(--cyan);text-shadow:0 0 10px rgba(0,212,255,.4)}
.stat-label{font-size:8px;letter-spacing:2px;color:var(--t3);margin-top:5px;text-transform:uppercase}

/* ── Terminal / log ──────────────────────────────────────── */
.term-body{
  flex:1;overflow-y:auto;
  padding:10px 14px;
  font-size:11.5px;line-height:1.75;
  background:rgba(0,6,2,.5);
}
.term-body::-webkit-scrollbar{width:3px}
.term-body::-webkit-scrollbar-thumb{background:var(--green-dim);border-radius:2px}

.log-line{padding:2px 0;border-bottom:1px solid rgba(0,255,65,.025)}
.log-ts{color:var(--t4);margin-right:10px;font-size:10px;user-select:none}
.log-info{color:#7ecf8e}
.log-success{color:#5fff80;font-weight:bold}
.log-critical{color:var(--yellow);font-weight:bold;animation:pulse-text .9s infinite}
@keyframes pulse-text{0%,100%{opacity:1}50%{opacity:.65}}
.log-warning{color:var(--orange)}
.log-error{color:#ff7070}
.log-debug{color:var(--t3)}
.prompt{color:var(--green2);margin-right:6px;user-select:none}
.cursor{display:inline-block;width:8px;height:13px;background:var(--green);animation:blink .7s step-end infinite;vertical-align:middle;margin-left:2px}

/* ── Progress bar ────────────────────────────────────────── */
.progress-wrap{margin:10px 0}
.progress-label{display:flex;justify-content:space-between;font-size:10px;color:var(--t3);margin-bottom:5px}
.progress-bar{height:5px;background:var(--bg3);border:1px solid var(--border2);border-radius:2px;overflow:hidden}
.progress-fill{
  height:100%;
  background:linear-gradient(90deg,var(--green-dim) 0%,var(--green) 100%);
  transition:width .35s ease;
  border-radius:2px;position:relative;
}
.progress-fill::after{
  content:'';position:absolute;right:0;top:0;bottom:0;width:24px;
  background:linear-gradient(90deg,transparent,rgba(0,255,65,.7));
}

/* ── Buttons ─────────────────────────────────────────────── */
.btn{
  border:1px solid var(--green);
  background:rgba(0,255,65,.04);
  color:var(--green);
  padding:7px 16px;
  font-family:var(--font);font-size:11px;letter-spacing:1.5px;
  cursor:pointer;transition:all .15s;text-transform:uppercase;
  position:relative;overflow:hidden;border-radius:2px;
}
.btn:hover{
  background:rgba(0,255,65,.14);
  box-shadow:0 0 10px rgba(0,255,65,.2),inset 0 0 8px rgba(0,255,65,.06);
  text-shadow:0 0 6px rgba(0,255,65,.5);
}
.btn.red{border-color:rgba(255,68,68,.7);color:var(--red);background:rgba(255,68,68,.04)}
.btn.red:hover{background:rgba(255,68,68,.12);box-shadow:0 0 10px rgba(255,68,68,.2)}
.btn.cyan{border-color:rgba(0,212,255,.6);color:var(--cyan);background:rgba(0,212,255,.04)}
.btn.cyan:hover{background:rgba(0,212,255,.12);box-shadow:0 0 10px rgba(0,212,255,.2)}
.btn.yellow{border-color:rgba(255,215,64,.6);color:var(--yellow);background:rgba(255,215,64,.04)}
.btn.sm{padding:4px 11px;font-size:10px;letter-spacing:1px}
.btn:disabled{opacity:.28;cursor:not-allowed;box-shadow:none}
.btn-row{display:flex;gap:10px;flex-wrap:wrap}

/* ── Form fields ─────────────────────────────────────────── */
.field{margin-bottom:12px}
label{display:block;font-size:10px;letter-spacing:1.5px;color:var(--t2);margin-bottom:6px;text-transform:uppercase}
input[type=text],input[type=number],input[type=password],textarea,select{
  width:100%;
  background:var(--bg4);
  border:1px solid rgba(0,255,65,.2);
  color:var(--t1);
  font-family:var(--font);font-size:12px;
  padding:7px 10px;outline:none;transition:.15s;border-radius:2px;
}
input[type=text]::placeholder,textarea::placeholder{color:var(--t4)}
input:focus,textarea:focus,select:focus{
  border-color:rgba(0,255,65,.55);
  background:rgba(10,28,14,.9);
  box-shadow:0 0 0 2px rgba(0,255,65,.07);
}
input[type=range]{-webkit-appearance:none;width:100%;height:4px;background:var(--bg3);border:1px solid var(--border2);outline:none;border-radius:2px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;background:var(--green);cursor:pointer;box-shadow:var(--glow);border-radius:50%}
textarea{resize:vertical;min-height:80px;line-height:1.6}
select option{background:var(--bg2);color:var(--t1)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}

/* ── Toggles (checkboxes) ────────────────────────────────── */
.toggle-item{
  display:flex;align-items:center;gap:9px;
  border:1px solid var(--border2);
  background:rgba(0,20,8,.4);
  padding:7px 10px;cursor:pointer;transition:.12s;
  font-size:11px;letter-spacing:.5px;color:var(--t1);
  border-radius:2px;
}
.toggle-item:hover{border-color:rgba(0,255,65,.4);background:rgba(0,255,65,.06);color:var(--green)}
.toggle-item input{display:none}
.toggle-item .cb{
  width:15px;height:15px;flex-shrink:0;border-radius:2px;
  border:1px solid rgba(0,255,65,.45);
  background:rgba(0,20,8,.6);
  display:flex;align-items:center;justify-content:center;
  color:var(--green);font-size:10px;
}
.toggle-item input:checked ~ .cb::before{content:'✓'}
.toggle-item input:checked ~ .cb{background:rgba(0,255,65,.12);border-color:var(--green)}

/* ── Tables ──────────────────────────────────────────────── */
.data-table{width:100%;border-collapse:collapse;font-size:11.5px}
.data-table thead{background:var(--bg2);position:sticky;top:0;z-index:1}
.data-table th{
  text-align:left;padding:8px 12px;
  font-size:9px;letter-spacing:2px;
  color:var(--t2);
  border-bottom:1px solid var(--border);
  font-weight:normal;text-transform:uppercase;white-space:nowrap;
}
.data-table td{
  padding:7px 12px;
  border-bottom:1px solid rgba(0,255,65,.05);
  vertical-align:middle;color:var(--t1);
}
.data-table tbody tr:hover td{background:rgba(0,255,65,.04)}
.data-table .empty{text-align:center;color:var(--t3);padding:24px;font-size:11px}

/* ── Status badges ───────────────────────────────────────── */
.badge{display:inline-block;padding:2px 8px;font-size:9px;letter-spacing:.5px;border:1px solid;border-radius:2px;white-space:nowrap;font-family:var(--font)}
.badge-yes{color:#5fff80;border-color:rgba(95,255,128,.5);background:rgba(95,255,128,.08)}
.badge-invalid{color:#ff7070;border-color:rgba(255,112,112,.5);background:rgba(255,112,112,.08)}
.badge-rate{color:var(--yellow);border-color:rgba(255,215,64,.5);background:rgba(255,215,64,.08)}
.badge-quota{color:var(--orange);border-color:rgba(255,149,0,.5);background:rgba(255,149,0,.08)}
.badge-other{color:var(--t3);border-color:var(--t4);background:rgba(255,255,255,.03)}

.key-cell{cursor:pointer;user-select:none;letter-spacing:.5px;font-family:var(--font);white-space:nowrap;color:var(--t2)}
.key-cell:hover{color:var(--green2)}
.copy-key-btn{background:none;border:1px solid rgba(95,255,128,.35);color:var(--green2);font-size:9px;font-family:var(--font);letter-spacing:.5px;padding:1px 6px;cursor:pointer;border-radius:2px;margin-left:6px;vertical-align:middle;transition:background .15s}
.copy-key-btn:hover{background:rgba(95,255,128,.15);color:#fff}
.copy-key-btn:active{background:rgba(95,255,128,.3)}
.key-log-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.key-log-masked{font-family:var(--font);letter-spacing:.5px;cursor:pointer;color:var(--green2)}
.key-log-masked:hover{text-decoration:underline}
.copy-key-btn{background:none;border:1px solid rgba(95,255,128,.35);color:var(--green2);font-size:9px;font-family:var(--font);letter-spacing:.5px;padding:1px 6px;cursor:pointer;border-radius:2px;margin-left:6px;vertical-align:middle;transition:background .15s}
.copy-key-btn:hover{background:rgba(95,255,128,.15);color:#fff}
.copy-key-btn:active{background:rgba(95,255,128,.3)}
.key-log-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.key-log-masked{font-family:var(--font);letter-spacing:.5px;cursor:pointer;color:var(--green2)}
.key-log-masked:hover{text-decoration:underline}

/* ── Service badges ──────────────────────────────────────── */
.svc{display:inline-block;padding:2px 7px;font-size:9px;letter-spacing:.5px;border:1px solid;border-radius:2px;white-space:nowrap;font-family:var(--font)}
.svc-anthropic{color:#c4b5fd;border-color:rgba(196,181,253,.4);background:rgba(167,139,250,.1)}
.svc-openai{color:#93c5fd;border-color:rgba(147,197,253,.4);background:rgba(116,192,252,.1)}
.svc-openrouter{color:#fca5a5;border-color:rgba(252,165,165,.4);background:rgba(240,128,128,.1)}
.svc-gemini{color:#6ee7b7;border-color:rgba(110,231,183,.4);background:rgba(99,230,190,.1)}
.svc-groq{color:#fde68a;border-color:rgba(253,230,138,.4);background:rgba(255,212,59,.1)}
.svc-huggingface_token{color:#fdba74;border-color:rgba(253,186,116,.4);background:rgba(255,146,43,.1)}
.svc-replicate{color:#e879f9;border-color:rgba(232,121,249,.4);background:rgba(218,119,242,.1)}
.svc-perplexity{color:#7dd3fc;border-color:rgba(125,211,252,.4);background:rgba(77,171,247,.1)}
.svc-cohere{color:#86efac;border-color:rgba(134,239,172,.4);background:rgba(105,219,124,.1)}
.svc-mistral{color:#fda4af;border-color:rgba(253,164,175,.4);background:rgba(255,135,135,.1)}
.svc-together{color:#d8b4fe;border-color:rgba(216,180,254,.4);background:rgba(204,93,232,.1)}
.svc-elevenlabs{color:#5eead4;border-color:rgba(94,234,212,.4);background:rgba(32,201,151,.1)}
.svc-stability{color:#f9a8d4;border-color:rgba(249,168,212,.4);background:rgba(247,131,172,.1)}
.svc-pinecone{color:#bef264;border-color:rgba(190,242,100,.4);background:rgba(148,216,45,.1)}
.svc-aws_bedrock{color:#fb923c;border-color:rgba(251,146,60,.4);background:rgba(253,126,20,.1)}
.svc-unknown{color:var(--t3);border-color:var(--t4);background:rgba(255,255,255,.03)}

/* ── Provider cards ──────────────────────────────────────── */
.provider-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.provider-card{
  border:1px solid var(--border);
  background:var(--bg3);
  padding:14px;border-radius:3px;
  position:relative;overflow:hidden;
  box-shadow:var(--shadow-card);
}
.provider-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.provider-card.online::before{background:linear-gradient(90deg,transparent,var(--green),transparent)}
.provider-card.offline::before{background:linear-gradient(90deg,transparent,var(--red),transparent)}
.pcard-name{font-family:var(--head);font-size:11px;letter-spacing:2px;margin-bottom:8px;color:var(--t1)}
.pcard-status{font-size:10px;display:flex;align-items:center;gap:6px;color:var(--t2)}

/* ── Tier / filter buttons ───────────────────────────────── */
.dork-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.tier-btn{
  border:1px solid var(--border2);
  background:var(--bg3);
  color:var(--t3);
  padding:4px 11px;
  font-family:var(--font);font-size:10px;letter-spacing:.5px;
  cursor:pointer;transition:.12s;border-radius:2px;
}
.tier-btn:hover{border-color:rgba(0,255,65,.45);color:var(--t2);background:rgba(0,255,65,.07)}
.tier-btn.active{border-color:rgba(0,255,65,.6);color:var(--green);background:rgba(0,255,65,.1)}

/* ── Dork list ───────────────────────────────────────────── */
.dork-row{display:flex;align-items:center;padding:6px 10px;border-bottom:1px solid rgba(0,255,65,.04);gap:12px;font-size:11px}
.dork-row:hover{background:rgba(0,255,65,.04)}
.dork-tier{color:var(--t3);font-size:9px;letter-spacing:.5px;min-width:140px;flex-shrink:0}
.dork-q{color:var(--t1);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dork-copy{
  border:1px solid var(--border2);background:transparent;color:var(--t3);
  padding:2px 7px;font-size:9px;cursor:pointer;font-family:var(--font);
  transition:.1s;flex-shrink:0;border-radius:2px;
}
.dork-copy:hover{border-color:rgba(0,255,65,.5);color:var(--green)}

/* ── Scan panel layout ───────────────────────────────────── */
.scan-layout{display:grid;grid-template-columns:300px 1fr;gap:14px;height:100%}
.scan-config{display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding-right:4px}
.scan-config::-webkit-scrollbar{width:3px}
.scan-config::-webkit-scrollbar-thumb{background:var(--green-dim);border-radius:2px}

.terminal-panel{
  display:flex;flex-direction:column;
  border:1px solid var(--border);
  background:rgba(0,7,3,.85);
  border-radius:3px;overflow:hidden;
  box-shadow:var(--shadow-card);
}
.term-header{
  padding:7px 13px;flex-shrink:0;
  border-bottom:1px solid var(--border);
  background:var(--bg2);
  display:flex;align-items:center;justify-content:space-between;
  font-size:10px;letter-spacing:1.5px;
}
.term-header .th-title{color:var(--t2)}
.term-header .th-meta{color:var(--t3);display:flex;align-items:center;gap:8px}

.scan-status-bar{
  padding:7px 13px;flex-shrink:0;
  border-top:1px solid var(--border);
  background:var(--bg2);
  display:flex;align-items:center;gap:12px;font-size:10px;flex-wrap:wrap;
}

/* ── Verify panel layout ─────────────────────────────────── */
.verify-layout{display:grid;grid-template-columns:268px 1fr;gap:14px;height:100%}
.verify-results{
  border:1px solid var(--border);
  border-radius:3px;overflow:hidden;
  display:flex;flex-direction:column;
  box-shadow:var(--shadow-card);
}
.verify-results-header{
  padding:8px 13px;flex-shrink:0;
  border-bottom:1px solid var(--border);
  background:var(--bg2);
  font-size:10px;letter-spacing:1.5px;color:var(--t2);
  display:flex;align-items:center;justify-content:space-between;
}
.verify-results-body{overflow-y:auto;flex:1;background:var(--bg1)}
.verify-results-body::-webkit-scrollbar{width:3px}
.verify-results-body::-webkit-scrollbar-thumb{background:var(--green-dim);border-radius:2px}

/* ── DB toolbar ──────────────────────────────────────────── */
.db-toolbar{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.db-toolbar-row2{display:flex;align-items:center;gap:6px;margin-bottom:14px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--border2)}
.tb-label{font-size:9px;letter-spacing:2px;color:var(--t3);text-transform:uppercase}

/* ── Settings layout ─────────────────────────────────────── */
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}

/* ── Service breakdown chart ─────────────────────────────── */
.svc-breakdown{display:flex;flex-direction:column;gap:5px}
.svc-row{display:flex;align-items:center;gap:10px;padding:4px 0;border-bottom:1px solid rgba(0,255,65,.04);font-size:11px}
.svc-row-bar{flex:1;height:5px;background:var(--bg3);border:1px solid var(--border2);overflow:hidden;border-radius:2px}
.svc-row-fill{height:100%;background:linear-gradient(90deg,var(--green-dim),var(--green2));transition:width .4s ease;border-radius:2px}
.svc-row-count{min-width:28px;text-align:right;color:var(--t3);font-size:10px}

/* ── Misc effects ────────────────────────────────────────── */
.watermark{
  position:fixed;bottom:30px;right:60px;
  font-family:var(--head);font-size:46px;
  color:rgba(255,50,50,.03);
  letter-spacing:6px;transform:rotate(-25deg);
  pointer-events:none;z-index:3;user-select:none;
}
.code-rain{
  position:fixed;right:0;top:0;width:180px;height:100%;
  overflow:hidden;opacity:.025;pointer-events:none;z-index:2;
  font-size:10px;line-height:1.4;color:var(--green);
  padding:10px;word-break:break-all;filter:blur(.4px);
}
@keyframes scanline-move{from{transform:translateY(-100%)}to{transform:translateY(100vh)}}
.scan-sweep{
  position:fixed;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,rgba(0,255,65,.3),transparent);
  animation:scanline-move 10s linear infinite;
  pointer-events:none;z-index:9996;
}

/* ── Toast notifications ─────────────────────────────────── */
.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  background:rgba(10,25,13,.96);
  border:1px solid rgba(0,255,65,.4);
  color:var(--t1);
  padding:9px 22px;font-size:11px;letter-spacing:.5px;
  z-index:9999;border-radius:3px;
  animation:fadeIn .18s ease;pointer-events:none;
  box-shadow:0 4px 20px rgba(0,0,0,.6);
}
.toast.error{border-color:rgba(255,68,68,.5);color:#ff9090}
.toast.success{border-color:rgba(0,255,65,.5);color:var(--green2)}

/* ── Spinner ─────────────────────────────────────────────── */
.spinner{
  display:inline-block;width:11px;height:11px;
  border:1px solid var(--t4);border-top-color:var(--green);
  border-radius:50%;animation:spin .65s linear infinite;
  vertical-align:middle;margin-right:6px;
}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── Info text ───────────────────────────────────────────── */
.info-text{font-size:10px;color:var(--t3);line-height:1.7}
.info-text span{color:var(--green2)}

[title]{cursor:help}
@media(max-width:900px){
  .stats-grid{grid-template-columns:repeat(3,1fr)}
  .scan-layout,.verify-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .provider-grid{grid-template-columns:repeat(2,1fr)}
  .settings-grid{grid-template-columns:1fr}
}
