    :root {
      --gold:        #c6a664;
      --gold-dim:    rgba(198,166,100,0.1);
      --gold-border: rgba(198,166,100,0.22);
      --bg:          #090807;
      --surface:     #111009;
      --surface2:    #161412;
      --border:      rgba(255,255,255,0.07);
      --text:        #ddd5c5;
      --muted:       #5a5040;
      --dim:         #28221a;
      --red:         #8b4040;
      --red-dim:     rgba(139,64,64,0.12);
      --red-border:  rgba(139,64,64,0.24);
    }

    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
    html { scroll-behavior: smooth; }

    body {
      background: var(--bg);
      color: var(--text);
      font-family: 'Barlow', sans-serif;
      min-height: 100vh;
      overflow-x: hidden;
    }

    @media print { body { display: none !important; } }

    /* ── LOGIN OVERLAY ── */
    #login-overlay {
      position: fixed;
      inset: 0;
      background: var(--bg);
      z-index: 9000;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: opacity 0.5s ease;
    }

    .login-inner {
      width: 100%;
      max-width: 360px;
      padding: 0 28px;
    }

    .login-logo {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 52px;
    }

    .login-logo img { height: 28px; opacity: 0.8; }

    .login-logo span {
      font-family: 'Fira Code', monospace;
      font-size: 0.6rem;
      letter-spacing: 3px;
      color: var(--gold);
    }

    .login-title {
      font-family: 'Fira Code', monospace;
      font-size: 1rem;
      font-weight: 400;
      color: var(--text);
      letter-spacing: 0.5px;
      margin-bottom: 6px;
    }

    .login-sub {
      font-family: 'Fira Code', monospace;
      font-size: 0.58rem;
      letter-spacing: 2px;
      color: var(--muted);
      margin-bottom: 40px;
    }

    .inp {
      width: 100%;
      padding: 14px 16px;
      background: var(--surface);
      border: 1px solid var(--border);
      color: var(--text);
      font-family: 'Fira Code', monospace;
      font-size: 0.82rem;
      letter-spacing: 3px;
      outline: none;
      margin-bottom: 10px;
      transition: border-color 0.2s;
    }

    .inp::placeholder {
      color: var(--dim);
      letter-spacing: 2px;
      font-size: 0.62rem;
    }

    .inp:focus { border-color: var(--gold-border); }

    .auth-btn {
      width: 100%;
      padding: 13px;
      background: none;
      border: 1px solid var(--gold-border);
      color: var(--gold);
      font-family: 'Fira Code', monospace;
      font-size: 0.66rem;
      letter-spacing: 3px;
      cursor: pointer;
      transition: background 0.2s;
    }

    .auth-btn:hover:not(:disabled) { background: var(--gold-dim); }

    .auth-btn:disabled {
      border-color: var(--border);
      color: var(--muted);
      cursor: not-allowed;
    }

    #error-msg {
      display: none;
      font-family: 'Fira Code', monospace;
      font-size: 0.58rem;
      letter-spacing: 1.5px;
      color: var(--red);
      padding: 10px 14px;
      border: 1px solid var(--red-border);
      background: var(--red-dim);
      margin-top: 8px;
    }

    .login-note {
      font-family: 'Fira Code', monospace;
      font-size: 0.5rem;
      letter-spacing: 2px;
      color: var(--dim);
      margin-top: 32px;
      line-height: 1.9;
    }

    /* ── MAIN CONTENT (hidden until auth) ── */
    #main-content { display: none; }

    /* ── PORTAL NAV ── */
    .portal-nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 20px 64px;
      border-bottom: 1px solid var(--border);
      position: sticky;
      top: 0;
      background: rgba(9,8,7,0.96);
      backdrop-filter: blur(14px);
      z-index: 100;
    }

    .pnav-brand {
      display: flex;
      align-items: center;
      gap: 14px;
    }

    .pnav-brand img { height: 24px; opacity: 0.82; }

    .pnav-brand span {
      font-family: 'Fira Code', monospace;
      font-size: 0.62rem;
      letter-spacing: 3px;
      color: var(--gold);
    }

    .pnav-links {
      display: flex;
      gap: 30px;
    }

    .pnav-links a {
      font-family: 'Fira Code', monospace;
      font-size: 0.56rem;
      letter-spacing: 2px;
      color: var(--muted);
      text-decoration: none;
      transition: color 0.2s;
    }

    .pnav-links a:hover { color: var(--text); }

    .exit-link {
      font-family: 'Fira Code', monospace;
      font-size: 0.56rem;
      letter-spacing: 2px;
      color: var(--red);
      text-decoration: none;
      border: 1px solid var(--red-border);
      padding: 6px 14px;
      transition: background 0.2s;
    }

    .exit-link:hover { background: var(--red-dim); }

    /* ── DASHBOARD ── */
    .dash-wrap {
      max-width: 1200px;
      margin: 0 auto;
      padding: 60px 64px 80px;
    }

    .dash-hero {
      display: flex;
      justify-content: space-between;
      align-items: flex-end;
      padding-bottom: 40px;
      border-bottom: 1px solid var(--border);
      margin-bottom: 40px;
    }

    .dash-label {
      font-family: 'Fira Code', monospace;
      font-size: 0.58rem;
      letter-spacing: 3px;
      color: var(--gold);
      opacity: 0.7;
      margin-bottom: 12px;
    }

    .dash-title {
      font-family: 'Barlow', sans-serif;
      font-size: clamp(1.8rem, 3.5vw, 2.8rem);
      font-weight: 500;
      color: var(--text);
      line-height: 1.2;
    }

    .dash-title em {
      font-style: italic;
      color: var(--gold);
      font-weight: 300;
    }

    .dash-sub {
      font-size: 0.88rem;
      color: var(--muted);
      font-weight: 300;
      margin-top: 8px;
    }

    .clock-wrap { text-align: right; }

    .clock-time {
      font-family: 'Fira Code', monospace;
      font-size: 1.9rem;
      font-weight: 300;
      color: var(--text);
      letter-spacing: 2px;
    }

    .clock-lbl {
      font-family: 'Fira Code', monospace;
      font-size: 0.52rem;
      letter-spacing: 2.5px;
      color: var(--muted);
      margin-top: 6px;
    }

    /* ── GRID ── */
    .dash-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
    }

    .panel {
      border: 1px solid var(--border);
      padding: 28px;
      background: var(--surface);
    }

    .panel-hdr {
      font-family: 'Fira Code', monospace;
      font-size: 0.58rem;
      letter-spacing: 2px;
      color: var(--muted);
      margin-bottom: 22px;
      padding-bottom: 14px;
      border-bottom: 1px solid var(--border);
      display: flex;
      justify-content: space-between;
    }

    .panel-tag { color: var(--dim); font-size: 0.54rem; }

    /* Status */
    .st-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 10px 0;
      border-bottom: 1px solid var(--border);
      font-family: 'Fira Code', monospace;
      font-size: 0.65rem;
      letter-spacing: 1px;
      color: var(--muted);
    }

    .st-row:last-child { border-bottom: none; }

    .st-tag {
      font-size: 0.56rem;
      letter-spacing: 2px;
      padding: 3px 10px;
      border: 1px solid;
    }

    .st-tag.on  { color: #5aaa72; border-color: rgba(90,170,114,0.3); background: rgba(90,170,114,0.07); }
    .st-tag.off { color: var(--red); border-color: var(--red-border); background: var(--red-dim); }

    /* Personnel */
    .person-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 16px 0;
      border-bottom: 1px solid var(--border);
    }

    .person-row:last-child { border-bottom: none; }

    .person-name {
      font-weight: 500;
      font-size: 0.9rem;
      color: var(--text);
      margin-bottom: 3px;
    }

    .person-role {
      font-family: 'Fira Code', monospace;
      font-size: 0.52rem;
      letter-spacing: 1.5px;
      color: var(--muted);
    }

    .clearance {
      font-family: 'Fira Code', monospace;
      font-size: 0.58rem;
      letter-spacing: 2px;
      padding: 4px 12px;
      border: 1px solid var(--gold-border);
      color: var(--gold);
    }

    /* Logs */
    .log-entry {
      padding: 18px 0;
      border-bottom: 1px solid var(--border);
    }

    .log-entry:last-child { border-bottom: none; }

    .log-id {
      font-family: 'Fira Code', monospace;
      font-size: 0.56rem;
      letter-spacing: 2px;
      color: var(--gold);
      opacity: 0.65;
      margin-bottom: 7px;
    }

    .log-title {
      font-weight: 500;
      font-size: 0.9rem;
      color: var(--text);
      margin-bottom: 6px;
    }

    .log-body {
      font-size: 0.82rem;
      color: var(--muted);
      font-weight: 300;
      line-height: 1.65;
    }

    .log-tag {
      display: inline-block;
      font-family: 'Fira Code', monospace;
      font-size: 0.5rem;
      letter-spacing: 1.5px;
      padding: 2px 8px;
      border: 1px solid var(--border);
      color: var(--muted);
      margin-top: 8px;
    }

    /* Threats */
    .threat-row {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 12px 0;
      border-bottom: 1px solid var(--border);
    }

    .threat-row:last-child { border-bottom: none; }

    .t-level {
      font-family: 'Fira Code', monospace;
      font-size: 0.56rem;
      letter-spacing: 2px;
      padding: 3px 10px;
      border: 1px solid;
      flex-shrink: 0;
      min-width: 64px;
      text-align: center;
    }

    .t-level.low  { color: #5aaa72; border-color: rgba(90,170,114,0.3); }
    .t-level.med  { color: var(--gold); border-color: var(--gold-border); }
    .t-level.high { color: var(--red); border-color: var(--red-border); }

    .t-name   { flex: 1; font-size: 0.85rem; color: var(--text); }
    .t-sector {
      font-family: 'Fira Code', monospace;
      font-size: 0.52rem;
      letter-spacing: 1.5px;
      color: var(--muted);
    }

    /* Footer */
    .portal-footer {
      border-top: 1px solid var(--border);
      padding: 20px 64px;
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    .portal-footer p {
      font-family: 'Fira Code', monospace;
      font-size: 0.52rem;
      letter-spacing: 1.5px;
      color: var(--muted);
    }

    .session-pill {
      font-family: 'Fira Code', monospace;
      font-size: 0.52rem;
      letter-spacing: 2px;
      color: var(--gold);
      border: 1px solid var(--gold-border);
      padding: 4px 12px;
    }

    /* Reveal animation */
    .reveal {
      opacity: 0;
      transform: translateY(14px);
      transition: opacity 0.5s ease, transform 0.5s ease;
    }

    .reveal.visible { opacity: 1; transform: none; }

    @media (max-width: 768px) {
      .portal-nav  { padding: 16px 24px; }
      .pnav-links  { display: none; }
      .dash-wrap   { padding: 36px 24px 56px; }
      .dash-grid   { grid-template-columns: 1fr; }
      .dash-hero   { flex-direction: column; align-items: flex-start; gap: 24px; }
      .portal-footer { padding: 16px 24px; flex-direction: column; gap: 10px; }
    }
