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

/* === NV MODE (default - low-light, muted) === */
:root{
  --bg:#060809;
  --surface:#0a0e10;
  --panel:#0e1517;
  --panel-hi:#131e22;
  --border:#1a2d24;
  --border-hi:#284338;
  --txt:#6ba485;
  --txt-dim:#467d5b;
  --txt-mute:#2f5340;
  --amber:#a07d3c;
  --red:#a14538;
  --cyan:#5a8a99;
  --glow:0 0 0 transparent;
  --scan-op:0.012;
  --banner-bg:#0c1812;
}

/* === DAY MODE (high contrast, bright) === */
[data-theme="day"]{
  --bg:#e6e9e1;
  --surface:#eef1e8;
  --panel:#f5f7f0;
  --panel-hi:#eaeee3;
  --border:rgba(26,48,36,0.18);
  --border-hi:rgba(26,48,36,0.34);
  --txt:#27402f;
  --txt-dim:#4a6654;
  --txt-mute:#7a8d80;
  --amber:#8a5e12;
  --red:#b23528;
  --cyan:#0e6f86;
  --glow:0 0 0 transparent;
  --scan-op:0;
  --banner-bg:#d7e0d2;
}

html,body{
  font-family:'SF Mono','Cascadia Code','Roboto Mono','Source Code Pro','Consolas','Courier New',monospace;
  background:var(--bg);color:var(--txt-dim);min-height:100vh;line-height:1.5;
  font-size:14px;letter-spacing:0.02em;
  transition:background 0.2s,color 0.2s;
}
body::before{content:"";position:fixed;inset:0;background:linear-gradient(transparent 50%,rgba(107,164,133,var(--scan-op)) 50%);background-size:100% 3px;pointer-events:none;z-index:1000}
html:not(.p3-shell-dk) body::after{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at center,transparent 0%,rgba(0,0,0,0.4) 100%);pointer-events:none;z-index:999}

.banner{background:var(--banner-bg);color:var(--txt);text-align:center;padding:0.3rem;font-weight:700;font-size:0.78rem;letter-spacing:0.25em;border-top:1px solid var(--border-hi);border-bottom:1px solid var(--border-hi);text-shadow:var(--glow) currentColor}
[data-theme="day"] .banner{border-color:var(--txt);text-shadow:0 0 8px var(--txt)}

.theme-toggle{position:fixed;top:0.5rem;right:0.75rem;background:var(--panel);border:1px solid var(--border-hi);color:var(--txt-dim);padding:0.35rem 0.7rem;cursor:pointer;font-family:inherit;font-size:0.7rem;letter-spacing:0.1em;z-index:1001;font-weight:700;transition:all 0.15s}
.theme-toggle:hover{background:var(--panel-hi);color:var(--txt);border-color:var(--txt)}

.wrap{max-width:1300px;margin:0 auto;padding:1.5rem}
.logo-block{margin:1.5rem 0 1rem;text-align:center}
.ascii-logo{font-family:inherit;color:var(--txt);text-shadow:var(--glow) currentColor;font-size:0.55rem;line-height:1.05;white-space:pre;display:inline-block;font-weight:700;letter-spacing:0}
.subtitle{color:var(--txt-dim);font-size:0.85rem;margin-top:0.75rem;letter-spacing:0.35em;text-shadow:var(--glow) currentColor}
.status-line{margin:1.25rem 0 2rem;display:flex;flex-wrap:wrap;gap:0.75rem;justify-content:center;font-size:0.78rem}
.tag{color:var(--txt-mute);border:1px solid var(--border);padding:0.25rem 0.75rem;background:var(--surface)}
.tag b{color:var(--txt);font-weight:700;text-shadow:var(--glow) currentColor;font-weight:600}
.tag.warn b{color:var(--amber);text-shadow:var(--glow) currentColor}
.tag.cy b{color:var(--cyan);text-shadow:var(--glow) currentColor}

.search-block{margin:1.5rem 0 2.5rem}
.prompt{color:var(--txt);font-weight:700;margin-bottom:0.5rem;font-size:0.8rem;letter-spacing:0.1em;text-shadow:var(--glow) currentColor}
.prompt::before{content:"> "}
.search-input{width:100%;background:var(--surface);border:1px solid var(--border-hi);color:var(--txt);padding:0.875rem 1rem;font-family:inherit;font-size:1rem;letter-spacing:0.02em;transition:all 0.2s}
.search-input::placeholder{color:var(--txt-mute)}
.search-input:focus{outline:none;background:var(--panel-hi);border-color:var(--txt);box-shadow:0 0 0 1px var(--txt)}
[data-theme="day"] .search-input:focus{box-shadow:0 0 0 1px var(--txt),0 0 25px rgba(0,255,102,0.3)}

.section{margin-bottom:2rem}
.s-hdr{display:flex;align-items:center;gap:0.5rem;margin-bottom:1rem;color:var(--txt);font-weight:700;letter-spacing:0.12em;font-size:0.85rem;text-shadow:var(--glow) currentColor}
.s-hdr::before{content:"▌▌▌";color:var(--txt)}
.s-hdr::after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--border-hi),transparent);margin-left:0.5rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:0.875rem}

a.card{background:var(--panel);border:1px solid var(--border);color:var(--txt-dim);text-decoration:none;display:flex;flex-direction:column;transition:all 0.18s ease;position:relative;overflow:hidden}
a.card:hover{background:var(--panel-hi);border-color:var(--txt);color:var(--txt)}
[data-theme="day"] a.card:hover{box-shadow:0 0 0 1px var(--txt),0 0 22px rgba(0,255,102,0.25);transform:translateY(-1px)}
a.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--txt);opacity:0;transition:opacity 0.2s}
a.card:hover::before{opacity:1}
.titlebar{background:var(--surface);padding:0.4rem 0.7rem;font-size:0.65rem;letter-spacing:0.1em;color:var(--txt-mute);border-bottom:1px solid var(--border);font-weight:700;display:flex;justify-content:space-between;align-items:center}
a.card:hover .titlebar{color:var(--txt);border-bottom-color:var(--txt)}
.titlebar .stt{font-size:0.6rem}
.cbody{padding:1.1rem 0.95rem;flex:1;display:flex;flex-direction:column;gap:0.35rem}
.cname{font-size:1.05rem;font-weight:700;color:var(--txt);text-shadow:var(--glow) currentColor;letter-spacing:0.02em}
.cdesc{color:var(--txt-mute);font-size:0.78rem;letter-spacing:0.02em}
a.card:hover .cdesc{color:var(--txt-dim)}
.cmeta{margin-top:0.4rem;display:flex;gap:0.5rem;font-size:0.65rem;color:var(--txt-mute);text-transform:uppercase;letter-spacing:0.08em}

footer{border-top:1px solid var(--border);margin-top:2.5rem;padding:1.5rem 0 0.5rem;text-align:center;color:var(--txt-mute);font-size:0.72rem;letter-spacing:0.15em}
footer .line{margin-bottom:0.5rem}
footer b{color:var(--txt-dim)}

.cursor{display:inline-block;width:0.55em;height:0.95em;background:var(--txt);margin-left:0.15em;vertical-align:text-bottom;animation:blink 1.06s infinite}
[data-theme="day"] .cursor{box-shadow:0 0 6px var(--txt)}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}

/* Info page additions */
.back{color:var(--txt);text-decoration:none;font-weight:700;letter-spacing:0.1em;display:inline-block;margin:1rem 0 1.5rem;padding:0.4rem 0.75rem;border:1px solid var(--txt);text-shadow:var(--glow) currentColor;font-size:0.8rem}
.back:hover{background:var(--txt);color:var(--bg);text-shadow:none}
h1{color:var(--txt);text-shadow:var(--glow) currentColor;font-size:1.3rem;letter-spacing:0.1em;margin-bottom:0.4rem;font-weight:700}
.row{background:var(--panel);border:1px solid var(--border);padding:0.65rem 0.875rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:all 0.15s}
.row:hover{border-color:var(--border-hi);background:var(--panel-hi)}
.lbl{color:var(--txt-mute);font-size:0.72rem;text-transform:uppercase;letter-spacing:0.1em}
.val{color:var(--txt);font-weight:700;text-shadow:var(--glow) currentColor;text-align:right;font-size:0.88rem}
.val.cy{color:var(--cyan)}.val.amber{color:var(--amber)}.val.red{color:var(--red)}
.bar{height:4px;background:var(--surface);border:1px solid var(--border);overflow:hidden;margin-top:0.3rem;width:100%}
.bar > div{height:100%;background:var(--txt);transition:width 0.3s}
[data-theme="day"] .bar > div{box-shadow:0 0 6px currentColor}
.bar.warn > div{background:var(--amber)}.bar.bad > div{background:var(--red)}
.svc-active{color:var(--txt)}.svc-failed{color:var(--red)}.svc-inactive{color:var(--amber)}

/* Fancyindex styling */
.fancy-back-wrap{margin:1rem 0 1.5rem}
.fancy-header{padding:0.5rem 0;color:var(--txt);font-weight:700;letter-spacing:0.12em;font-size:0.9rem;text-shadow:var(--glow) currentColor;margin:1rem 0}
table{width:100%;border-collapse:collapse;margin-top:0.5rem;background:var(--panel);border:1px solid var(--border)}
table th{background:var(--surface);color:var(--txt-mute);text-align:left;padding:0.55rem 0.75rem;font-size:0.7rem;text-transform:uppercase;letter-spacing:0.1em;border-bottom:1px solid var(--border-hi);font-weight:700}
table td{padding:0.5rem 0.75rem;border-bottom:1px solid var(--border);font-size:0.85rem}
table tr:hover td{background:var(--panel-hi)}
table a{color:var(--txt);text-decoration:none}
table a:hover{color:var(--cyan);text-shadow:var(--glow) currentColor}
hr{border:none;border-top:1px dashed var(--border);margin:1rem 0}

@media (max-width:768px){
  .wrap{padding:1rem}
  .ascii-logo{font-size:0.32rem}
  .subtitle{font-size:0.75rem;letter-spacing:0.25em}
  .grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:0.625rem}
  .titlebar{font-size:0.58rem;padding:0.3rem 0.5rem}
  .cbody{padding:0.85rem 0.7rem}
  .cname{font-size:0.92rem}
  .cdesc{font-size:0.7rem}
  .banner{font-size:0.65rem;letter-spacing:0.15em}
  .tag{font-size:0.7rem;padding:0.2rem 0.5rem}
  .theme-toggle{font-size:0.62rem;padding:0.3rem 0.5rem;top:0.4rem;right:0.5rem}
}
@media (max-width:480px){.ascii-logo{font-size:0.22rem}}


/* === DENSITY-SCALE (global compact) === */
html{zoom:.85}
@media (max-width:640px){html{zoom:.82}}

/* ===== NODE-STATUS-GLOW-V1 ===== */
html[data-theme="nv"] .node-status h1{text-shadow:0 0 5px currentColor,0 0 15px currentColor}
html[data-theme="nv"] .node-status .s-hdr{text-shadow:0 0 4px currentColor,0 0 12px currentColor}
html[data-theme="nv"] .node-status .val{text-shadow:0 0 4px currentColor,0 0 11px currentColor}
html[data-theme="nv"] .node-status .svc-active,
html[data-theme="nv"] .node-status .svc-failed,
html[data-theme="nv"] .node-status .svc-inactive{text-shadow:0 0 5px currentColor,0 0 13px currentColor}
html[data-theme="nv"] .node-status .bar>div{box-shadow:0 0 8px currentColor,0 0 16px currentColor}
html[data-theme="nv"] .node-status .banner{text-shadow:0 0 5px currentColor,0 0 12px currentColor}
html[data-theme="nv"] .node-status .row{border-bottom:1px solid rgba(94,231,154,0.10)}
html[data-theme="nv"] .node-status .s-hdr::after{content:"";flex:1;height:1px;margin-left:0.4rem;background:linear-gradient(90deg,currentColor,transparent);opacity:0.5;box-shadow:0 0 6px currentColor}
