:root{--bg:#020503;--panel:#07120b;--panel2:#0a1b10;--line:#1bff77;--line2:#b6ff4a;--amber:#ffbc2e;--red:#ff3b3b;--muted:#6aa27c;--text:#d8ffe3;--shadow:0 0 18px rgba(27,255,119,.22)}
*{box-sizing:border-box}html,body{margin:0;background:radial-gradient(circle at top left,#0b2513,#020503 38%,#000);color:var(--text);font-family:Consolas,Menlo,Monaco,'Courier New',monospace;min-height:100%;}
body{padding:18px;letter-spacing:.02em}.scanlines{position:fixed;inset:0;pointer-events:none;opacity:.16;background:repeating-linear-gradient(0deg,rgba(255,255,255,.06) 0 1px,transparent 1px 4px);mix-blend-mode:screen;z-index:9}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:stretch;border:1px solid var(--line);background:linear-gradient(135deg,rgba(7,18,11,.96),rgba(3,8,5,.96));padding:18px;box-shadow:var(--shadow);position:relative}.topbar:before{content:"";position:absolute;left:0;top:0;right:0;height:2px;background:linear-gradient(90deg,var(--line),transparent,var(--amber))}.eyebrow{color:var(--amber);font-size:12px;text-transform:uppercase}.topbar h1{margin:4px 0 4px;font-size:34px;line-height:1;text-shadow:0 0 12px rgba(27,255,119,.5)}.sub{color:var(--muted);font-size:13px}.statusbox{min-width:230px;border-left:1px solid rgba(27,255,119,.35);padding-left:16px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}#clock{font-size:24px;color:var(--line2)}.badge{display:inline-block;border:1px solid currentColor;padding:4px 8px;text-transform:uppercase;font-size:12px}.badge.ok,.ok{color:var(--line)}.badge.warn,.warn{color:var(--amber)}.badge.bad,.bad{color:var(--red)}.badge.muted,.muted{color:var(--muted)}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.tab,button,select,input{font-family:inherit}.tab,button{background:#061009;color:var(--text);border:1px solid rgba(27,255,119,.55);padding:9px 12px;text-transform:uppercase;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(0,0,0,.5)}button:hover,.tab.active{background:#0c2414;color:#fff;border-color:var(--line);box-shadow:var(--shadow)}button.danger{border-color:var(--red);color:var(--red)}select,input{background:#020503;color:var(--text);border:1px solid rgba(27,255,119,.45);padding:9px;width:100%;outline:none}label{display:block;margin:10px 0;color:var(--muted);font-size:12px;text-transform:uppercase}main{position:relative;z-index:1}.panel{display:none}.panel.active{display:block}.grid,.module-grid,.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));}.card,.module,.vhost,.cert,.warning{background:linear-gradient(180deg,rgba(7,18,11,.96),rgba(3,8,5,.96));border:1px solid rgba(27,255,119,.45);padding:14px;box-shadow:inset 0 0 22px rgba(27,255,119,.06);position:relative}.card:before,.module:before,.vhost:before,.cert:before{content:"";position:absolute;left:0;top:0;right:0;height:1px;background:rgba(27,255,119,.8)}h2{margin:0 0 10px;color:var(--line2);font-size:15px;text-transform:uppercase}.big{font-size:38px;line-height:1.1}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}.module .title,.vhost .title,.cert .title{font-size:15px;color:#fff;margin-bottom:8px}.module .meta,.vhost .meta,.cert .meta{font-size:12px;color:var(--muted);white-space:pre-wrap}.module .state{float:right}.list{display:grid;gap:10px}.split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);gap:14px}.sticky{position:sticky;top:12px}.terminal{background:#010301;border:1px solid rgba(27,255,119,.45);color:var(--line2);padding:12px;min-height:180px;max-height:65vh;overflow:auto;white-space:pre-wrap;font-size:12px;line-height:1.45;box-shadow:inset 0 0 18px rgba(27,255,119,.08)}.terminal.small{min-height:90px;max-height:260px}.inline-form{display:grid;grid-template-columns:160px 1fr auto;gap:8px}.warning{border-color:var(--amber);color:#ffe2a1;margin-bottom:12px}.action-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.pill{display:inline-block;border:1px solid rgba(27,255,119,.4);padding:2px 6px;margin:2px;color:var(--muted)}@media(max-width:840px){body{padding:10px}.topbar{flex-direction:column}.statusbox{align-items:flex-start;border-left:none;border-top:1px solid rgba(27,255,119,.35);padding-left:0;padding-top:10px}.split{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.topbar h1{font-size:26px}}


/* RedPoint Auth Gate */
.auth-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: none;
  align-items: center;
  justify-content: center;
  background:
    repeating-linear-gradient(0deg, rgba(0,255,110,.035), rgba(0,255,110,.035) 1px, transparent 1px, transparent 4px),
    radial-gradient(circle at center, rgba(0,255,120,.14), rgba(0,0,0,.96) 48%, #020403 100%);
}
.auth-overlay.show { display: flex; }
.auth-card {
  width: min(520px, calc(100vw - 28px));
  border: 1px solid rgba(0,255,120,.55);
  background: rgba(0,10,5,.94);
  box-shadow: 0 0 28px rgba(0,255,120,.18), inset 0 0 18px rgba(0,255,120,.08);
  padding: 22px;
}
.auth-card h1 { margin: 6px 0 8px; }
.auth-card p { color: var(--muted); }
.auth-card input { width: 100%; margin-top: 5px; }
.auth-links { display: flex; gap: 12px; margin-top: 12px; }
.auth-links a { color: var(--green); text-decoration: none; border-bottom: 1px dotted rgba(0,255,120,.55); }
button.mini { padding: 6px 9px; font-size: 12px; }
