/* ============================================================
   NOVA — "Ops Deck" skin.  Layered ON TOP of style.css, loaded ONLY when
   brand=nova (base.html gates it). The brand token override already set the
   blue-violet palette; this file adds the futuristic CHARACTER: telemetry
   mono numerics, HUD corner-bracketed panels, grid+grain atmosphere, squared
   mono chips, cut-corner buttons, accent glows. HiveTube never loads this.
   ============================================================ */
:root{
  --nv-accent:#6d8cff;
  --nv-grad:linear-gradient(100deg,#8b46ff,#4f7cff 52%,#2f4bd6);
  --nv-br:rgba(109,140,255,.55);          /* corner brackets */
  --nv-line:rgba(140,160,220,.06);        /* grid */
  --nv-mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --nv-glow:0 0 0 1px rgba(109,140,255,.25),0 0 26px -8px rgba(109,140,255,.6);
}

/* ---------- type system (matches the prototype: Sora body, mono numerics) ---------- */
body{ font-family:'Sora',-apple-system,BlinkMacSystemFont,sans-serif !important; }
.page-title h1, .panel-head h2, .ph-title, h1, h2, h3{ font-family:'Sora',sans-serif; letter-spacing:-.01em; }

/* ---------- atmosphere (content area: grid + radial glow + grain) ---------- */
main{
  position:relative;
  background:
    radial-gradient(880px 520px at 82% -12%, rgba(109,140,255,.10), transparent 60%),
    radial-gradient(720px 560px at -5% 110%, rgba(139,70,255,.08), transparent 55%),
    linear-gradient(var(--nv-line) 1px, transparent 1px) 0 0 / 54px 54px,
    linear-gradient(90deg, var(--nv-line) 1px, transparent 1px) 0 0 / 54px 54px,
    var(--bg) !important;
}
main::before{   /* grain */
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
main > *{position:relative;z-index:1}

/* ---------- telemetry numerics (JetBrains Mono) ---------- */
.stat-card .value, .kpi-value, .ov-stat .value, .num .n, .donut-hole,
.hcard .value, .stat-value, .head-date, .clock{
  font-family:var(--nv-mono) !important;
  letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
}
/* uppercase mono eyebrows / labels */
.stat-card .label, .eyebrow, .kpi-label, .panel-head h2, .ph-sub,
.stat-card .head .label, .tool .id, .lv-head{
  font-family:var(--nv-mono) !important;
}
.stat-card .label, .eyebrow, .kpi-label{
  letter-spacing:.14em !important; text-transform:uppercase;
}

/* ---------- HUD panels: sharp corners + corner brackets + glow ---------- */
.stat-card, .panel, .card, .hcard, .lv-panel, .status-pill,
.board-col, .login-card, .ev-row, .exp-row{
  border-radius:4px !important;
  border-color:rgba(140,160,220,.14) !important;
  background-color:rgba(20,24,46,.55) !important;
  /* L-brackets at top-left + bottom-right, drawn as background layers
     (survives overflow:hidden, no pseudo-element conflicts) */
  background-image:
    linear-gradient(var(--nv-br),var(--nv-br)),
    linear-gradient(var(--nv-br),var(--nv-br)),
    linear-gradient(var(--nv-br),var(--nv-br)),
    linear-gradient(var(--nv-br),var(--nv-br));
  background-repeat:no-repeat;
  background-size:12px 1px,1px 12px,12px 1px,1px 12px;
  background-position:top left,top left,bottom right,bottom right;
  transition:border-color .18s, box-shadow .18s;
}
.stat-card:hover, .panel:hover, .card:hover, .hcard:hover{
  border-color:rgba(109,140,255,.4) !important;
  box-shadow:var(--nv-glow);
}

/* ---------- sidebar: bigger, more prominent brand (matches prototype) ---------- */
/* Logo + wordmark lockup, balanced like the brand reference: the star sits
   left, ~the wordmark's height, tight against it. No rectangle box. */
.brand{ gap:10px !important; padding:6px 6px 28px !important; align-items:center !important; }
.brand-logo{
  width:auto !important; height:34px !important;
  background:none !important; border:none !important; border-radius:0 !important;
  box-shadow:none !important; overflow:visible !important;
  display:flex !important; align-items:center !important;
}
.brand-logo svg{
  width:auto !important; height:34px !important;          /* tight viewBox → fills */
  filter:drop-shadow(0 0 8px rgba(109,140,255,.5));
}
/* the "nova" wordmark — Jost, gradient, sized to match the mark height */
.brand-name{
  font-family:'Jost',sans-serif !important;
  font-weight:600 !important;
  font-size:30px !important;
  letter-spacing:0 !important;
  line-height:1 !important;
  text-transform:none !important;
  background:var(--nv-grad) !important;
  -webkit-background-clip:text !important; background-clip:text !important;
  color:transparent !important;
  filter:drop-shadow(0 0 16px rgba(109,140,255,.3));
}
.nav a{border-radius:4px;font-size:13px}
.nav a.active{
  background:rgba(109,140,255,.10) !important;
  color:var(--nv-accent) !important;
  box-shadow:inset 2px 0 0 var(--nv-accent);
}
.status-pill .dot{box-shadow:0 0 10px var(--nv-accent) !important}

/* ---------- chips / pills / badges → squared mono ---------- */
.pill, .mode-chip, .ev-chip, .pill-link, .badge-health{
  border-radius:3px !important;
  font-family:var(--nv-mono) !important;
  text-transform:uppercase; letter-spacing:.08em; font-size:10px !important;
}

/* ---------- buttons → cut-corner mono ---------- */
.btn, .login-btn, .link-btn{
  border-radius:3px !important;
  font-family:var(--nv-mono) !important;
  text-transform:uppercase; letter-spacing:.08em; font-size:11px !important;
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);
}
.btn:hover, .link-btn:hover{
  color:var(--nv-accent) !important;
  border-color:rgba(109,140,255,.45) !important;
  box-shadow:var(--nv-glow);
}
.login-btn{
  background:var(--nv-grad) !important; color:#fff !important; border:none !important;
}

/* ---------- tables ---------- */
table th{
  font-family:var(--nv-mono) !important;
  text-transform:uppercase; letter-spacing:.12em; font-size:10px !important;
  color:var(--text-3) !important;
}

/* ---------- page title eyebrow tint ---------- */
.page-title p{ font-family:var(--nv-mono); letter-spacing:.04em; font-size:12.5px; }

/* ---------- scrollbars ---------- */
*::-webkit-scrollbar{width:8px;height:8px}
*::-webkit-scrollbar-thumb{background:rgba(140,160,220,.22);border-radius:3px}
*::-webkit-scrollbar-track{background:transparent}

/* ---------- login screen atmosphere ---------- */
.login-body{
  background:
    radial-gradient(900px 600px at 50% -10%, rgba(109,140,255,.14), transparent 60%),
    radial-gradient(700px 500px at 80% 110%, rgba(139,70,255,.10), transparent 55%),
    var(--bg) !important;
}
.login-card{ background-color:rgba(20,24,46,.7) !important; }
