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

    :root {
      --bg:            #05080e;
      --bg-panel:      #090f1a;
      --bg-hover:      #0f1e30;
      --bg-active:     #0d2040;
      --border:        #1a3a5f;
      --border-bright: #2a5a8f;
      --accent:        #00b8d4;
      --accent-dim:    #00404d;
      --accent-glow:   rgba(0,184,212,0.12);
      --text:          #a8c4da;
      --text-muted:    #3d5f78;
      --text-bright:   #d8eeff;
      --amber:         #e8a840;
      --green:         #28c878;
      --red:           #e03840;
      --con-green:     #00ff41;
      --con-bg:        #020905;
      --font-ui:       'Rajdhani', 'Segoe UI', sans-serif;
      --font-mono:     'Share Tech Mono', 'Courier New', monospace;
      --font-brand:    'Orbitron', sans-serif;
    }

    html, body { width:100%; height:100%; overflow:hidden; color:var(--text); font-family:var(--font-ui); cursor:none; }

    body {
      background:
        linear-gradient(rgba(5,8,14,0.92), rgba(5,8,14,0.92)),
        url('/media/background_02.jpg') center/cover no-repeat fixed;
    }

    #app {
      display: grid;
      grid-template-rows: 64px 1fr 96px;
      grid-template-columns: 300px 1fr;
      height: 100vh;
      width: 100vw;
    }

    /* ── SCANLINES ── */
    #scanlines { position:fixed; inset:0; pointer-events:none; z-index:999;
      background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,0.04) 3px,rgba(0,0,0,0.04) 4px); }

    /* ══════════════════════════════════════════════════
       ROW 1: HEADER
    ══════════════════════════════════════════════════ */
    #hdr {
      grid-column: 1 / -1;
      grid-row: 1;
      display: grid;
      grid-template-columns: 1fr auto 1fr;
      align-items: center;
      padding: 0 20px;
      background: var(--bg-panel);
      border-bottom: 1px solid var(--border);
      position: relative; gap: 16px;
    }
    #hdr::after {
      content:''; position:absolute; bottom:0; left:0; right:0; height:1px;
      background:linear-gradient(90deg,transparent,var(--accent) 40%,transparent); opacity:.35;
    }
    .hdr-l { display:flex; align-items:center; gap:12px; }
    .logo-sm {
      display:flex; align-items:center; justify-content:center; flex-shrink:0;
    }
    .logo-sm img { width:50px; height:50px; object-fit:contain; transition:opacity .4s ease; }
    .logo-sm img.portrait { object-fit:cover; border-radius:3px; border:1px solid var(--border-bright); }
    .hdr-mission { display:flex; flex-direction:column; gap:2px; }
    .hdr-station { font-family:var(--font-brand); font-size:15px; font-weight:700; letter-spacing:.16em; color:var(--text-bright); }
    .hdr-mname   { font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-muted); }

    .hdr-c { display:flex; align-items:center; gap:20px; justify-content:center; }
    .hdr-day  { font-family:var(--font-mono); font-size:15px; color:var(--text-muted); letter-spacing:.1em; }
    .hdr-time { font-family:var(--font-mono); font-size:26px; color:var(--accent); letter-spacing:.06em; }
    .hdr-tz   { font-size:11px; letter-spacing:.18em; color:var(--text-muted); }

    .hdr-r { display:flex; justify-content:flex-end; align-items:center; gap:10px; }
    .status-badge {
      display:flex; align-items:center; gap:7px; padding:4px 11px;
      border:1px solid var(--border); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
    }
    .status-badge.nominal { border-color:var(--green); color:var(--green); }
    .status-badge.warn    { border-color:var(--amber); color:var(--amber); }
    .status-badge.alert   { border-color:var(--red);   color:var(--red);   }
    .status-dot { width:6px; height:6px; border-radius:50%; background:currentColor; animation:blink 2s ease-in-out infinite; }
    @keyframes blink { 0%,100%{opacity:1} 50%{opacity:.2} }

    .player-hdr {
      display:flex; flex-direction:column; align-items:flex-end;
      padding:6px 14px; border:1px solid var(--border-bright);
      position:relative; overflow:hidden; background:var(--bg-active);
    }
    .player-hdr .pname { font-size:14px; font-weight:600; color:var(--accent); letter-spacing:.04em; position:relative; z-index:1; }
    .player-hdr .prole { font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--text); position:relative; z-index:1; }

    #session-fill {
      position:absolute; top:0; left:0; bottom:0;
      width:100%; transform-origin:left center;
      background:linear-gradient(90deg, rgba(0,184,212,.22) 0%, rgba(0,184,212,.08) 100%);
      transition:background .8s ease;
      pointer-events:none;
    }

    /* ══════════════════════════════════════════════════
       ROW 2: INFOBAR
    ══════════════════════════════════════════════════ */
    #infobar {
      grid-column: 1;
      grid-row: 2;
      display: flex;
      flex-direction: column;
      border-right: 1px solid var(--border);
      overflow: hidden;
    }

    /* ORGA Logo Panel */
    #orga-panel {
      flex-shrink: 0;
      border-bottom: 1px solid var(--border);
      background: var(--bg-panel);
      display: flex; flex-direction:column;
      align-items:center; justify-content:center; gap:8px;
      padding: 12px;
    }
    .orga-logo-wrap {
      width:85%; aspect-ratio:1;
      display:flex; align-items:center; justify-content:center;
      overflow:hidden;
    }
    .orga-logo-wrap img {
      width:100%; height:100%; object-fit:contain; display:block;
      transition:opacity .4s ease;
    }
    .orga-logo-wrap img.portrait {
      object-fit:cover;
      -webkit-mask-image: radial-gradient(ellipse 78% 78% at center,
        black 38%, rgba(0,0,0,.75) 58%, transparent 100%);
      mask-image: radial-gradient(ellipse 78% 78% at center,
        black 38%, rgba(0,0,0,.75) 58%, transparent 100%);
    }
    .orga-logo-placeholder {
      display:flex; flex-direction:column; align-items:center; justify-content:center;
      width:120px; height:120px;
      border:1px solid var(--border-bright); background:var(--bg-active);
    }

    /* Station Visualization Panel */
    #station-panel {
      flex: 1;
      background: var(--bg-panel);
      display: flex; flex-direction:column; overflow:hidden;
    }
    .station-bar {
      padding: 5px 12px; font-size:10px; letter-spacing:.18em;
      text-transform:uppercase; color:var(--text);
      border-bottom:1px solid var(--border); flex-shrink:0;
      display:flex; flex-direction:column; gap:2px;
    }
    .station-bar-status { color:var(--green); }
    .station-img-wrap {
      flex:1; display:flex; align-items:center; justify-content:center;
      padding:8px; overflow:hidden;
    }
    .station-img-wrap img {
      max-width:100%; max-height:100%; object-fit:contain;
      filter:brightness(.85) saturate(.75);
    }
    .station-placeholder {
      display:flex; align-items:center; justify-content:center;
      width:100%; height:100%;
      color:var(--text-muted); font-size:11px; letter-spacing:.14em;
      text-transform:uppercase; flex-direction:column; gap:8px;
    }

    /* Code Input Panel */
    #input-panel {
      flex-shrink: 0;
      border-top: 1px solid var(--border);
      background: var(--bg-panel);
      display: flex; flex-direction:column;
      align-items:center; justify-content:center;
      padding: 8px 16px; gap:8px; position:relative;
    }
    #input-panel::before {
      content:''; position:absolute; top:0; left:0; width:2px; height:100%;
      background:linear-gradient(180deg, transparent, var(--accent), transparent); opacity:.4;
    }
    .input-panel-label {
      font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--text);
      align-self:flex-start;
    }
    .code-display {
      display:flex; gap:10px; padding:12px 18px;
      background:#020406; border:1px solid var(--border); align-self:stretch; justify-content:center;
    }
    .code-display .digit {
      width:34px; height:38px; display:flex; align-items:center; justify-content:center;
      border-bottom:2px solid var(--border);
      font-family:var(--font-mono); font-size:22px; color:var(--accent);
      transition:border-color .12s;
    }
    .code-display .digit.filled { border-color:var(--accent); }
    .code-error {
      font-size:12px; letter-spacing:.1em; color:var(--red); min-height:16px;
      text-align:center; align-self:stretch;
    }
    .input-hint {
      font-size:13px; color:var(--text); letter-spacing:.06em;
      text-align:center; line-height:1.7;
    }
    .input-hint .key { color:var(--text); background:var(--bg-hover); padding:2px 6px; font-family:var(--font-mono); font-size:11px; }

    /* ══════════════════════════════════════════════════
       ROW 3: CONTENT
    ══════════════════════════════════════════════════ */
    #content {
      grid-column: 2;
      grid-row: 2;
      display: grid;
      grid-template-rows: 1fr;
      overflow: hidden;
    }
    #content-views { position:relative; overflow:hidden; }

    .cv {
      position:absolute; inset:0; overflow-y:auto; overflow-x:hidden;
      opacity:0; pointer-events:none; transition:opacity .2s;
      padding: 18px 28px;
    }
    .cv.active { opacity:1; pointer-events:auto; }
    #c-action-progress { display:flex; flex-direction:column; }

    /* Nav-Bar */
    #nav-bar {
      display: flex; align-items: center; justify-content: space-between;
      padding: 4px 16px;
      background: #060b14;
      border-top: 1px solid var(--border);
      flex-shrink: 0;
    }
    .nav-btn {
      display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    }
    .nav-code {
      font-family: var(--font-mono); font-size: 14px; letter-spacing: .14em;
      padding: 3px 10px; border: 1px solid var(--accent-dim);
      background: var(--bg-active); color: rgba(0,184,212,.65);
    }
    .nav-label {
      font-size: 9px; letter-spacing: .2em; text-transform: uppercase;
      color: var(--text-bright);
    }
    .nav-sep { width: 1px; height: 24px; background: var(--border); }
    .nav-btn-logout .nav-code  { color: rgba(224,56,64,.7); border-color: rgba(224,56,64,.3); }
    .nav-btn-logout .nav-label { color: var(--text); }

    /* Idle content */
    #c-idle { display:flex; flex-direction:column; gap:14px; }
    .idle-welcome {
      display:flex; align-items:center; justify-content:center;
      padding:18px; background:var(--bg-panel); border:1px solid var(--border);
      position:relative;
    }
    .idle-welcome::before {
      content:''; position:absolute; top:-1px; left:50%; transform:translateX(-50%);
      width:48px; height:2px; background:var(--accent);
    }
    .idle-welcome-text {
      font-size:16px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted);
    }
    .public-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }

    /* Action grid (logged in) */
    #c-menu { display:flex; flex-direction:column; gap:0; }
    .cat-section { margin-bottom:16px; }
    .cat-hdr {
      display:flex; align-items:center; gap:10px; margin-bottom:10px;
    }
    .cat-hdr-title { font-size:14px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-muted); white-space:nowrap; }
    .cat-hdr-line  { flex:1; height:1px; background:var(--border); }
    .act-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }

    /* Tiles */
    .tile {
      padding:14px 16px; background:var(--bg-panel); border:1px solid var(--border);
      cursor:default; position:relative; overflow:hidden;
      transition:background .18s, border-color .18s;
    }
    .tile-code  { font-family:var(--font-mono); font-size:13px; color:var(--text-muted); letter-spacing:.12em; margin-bottom:5px; }
    .tile-label { font-size:16px; font-weight:600; color:var(--text-bright); letter-spacing:.03em; margin-bottom:4px; }
    .tile-desc  { font-size:13px; color:var(--text-muted); line-height:1.5; }

    /* Action tile */
    .tile-act .tile-code { font-family:var(--font-mono); font-size:32px; color:var(--accent); letter-spacing:.18em; margin-bottom:6px; }
    .tile-act .tile-label { font-size:18px; }

    /* Highlight when user types matching prefix */
    .tile-act.match-1 { border-color:var(--border-bright); }
    .tile-act.match-2 { border-color:var(--accent-dim); background:var(--bg-hover); }
    .tile-act.match-3 { border-color:var(--accent); background:var(--bg-hover); }
    .tile-act.match-full {
      border-color:var(--accent); background:var(--bg-active);
      box-shadow:0 0 12px var(--accent-glow);
    }
    .tile-act.match-full::before { content:''; position:absolute; top:0; left:0; width:2px; height:100%; background:var(--accent); }
    .tile-act.tile-disabled { opacity:.45; cursor:default; pointer-events:none; filter:grayscale(40%) blur(0.6px); }

    /* Result content */
    #c-result {
      display:flex; align-items:center; justify-content:center;
    }
    .result-card {
      max-width:520px; width:100%; padding:40px;
      background:var(--bg-panel); border:1px solid var(--border); text-align:center;
    }
    .result-icon   { font-size:48px; margin-bottom:16px; }
    .result-status { font-family:var(--font-mono); font-size:22px; letter-spacing:.26em; text-transform:uppercase; margin-bottom:10px; }
    .result-status.ok   { color:var(--green); }
    .result-status.warn { color:var(--amber); }
    .result-status.err  { color:var(--red); }
    .result-msg     { font-size:19px; font-weight:500; color:var(--text-bright); line-height:1.55; margin-bottom:8px; }
    .result-context { font-size:13px; color:var(--text-muted); margin-bottom:20px; }
    .result-hint    { font-size:12px; color:var(--text-muted); letter-spacing:.08em; }

    /* NEXUS Badge */
    .nexus-badge {
      display:flex; align-items:center; gap:9px; padding:5px 14px;
      border:1px solid var(--border); font-family:var(--font-mono);
      font-size:13px; letter-spacing:.14em;
    }
    .nexus-badge.connected    { border-color:var(--green); }
    .nexus-badge.disconnected { border-color:var(--border); }
    .nexus-dot { width:7px; height:7px; border-radius:50%; background:var(--text-muted); flex-shrink:0; }
    .nexus-badge.connected    .nexus-dot { background:var(--green); animation:blink 2s ease-in-out infinite; }
    .nexus-badge.disconnected .nexus-dot { background:var(--red); animation:blink .9s ease-in-out infinite; }
    .nexus-lbl  { color:var(--text-muted); }
    .nexus-stat { color:var(--text-muted); font-size:11px; }
    .nexus-badge.connected    .nexus-stat { color:var(--green); }
    .nexus-badge.disconnected .nexus-stat { color:var(--red); }

    /* ══════════════════════════════════════════════════
       ROW 4: FOOTER — CONSOLE LOG
    ══════════════════════════════════════════════════ */
    #footer {
      grid-column: 1 / -1;
      grid-row: 3;
      background:var(--con-bg); border-top:1px solid #0a2a0a;
      display:flex; overflow:hidden;
    }
    .con-label {
      padding:0 10px; font-family:var(--font-mono); font-size:10px;
      letter-spacing:.18em; color:#006620; text-transform:uppercase;
      border-right:1px solid #0a2a0a; display:flex; align-items:center;
      white-space:nowrap; writing-mode:vertical-rl; transform:rotate(180deg); flex-shrink:0;
    }
    .con-lines {
      flex:1; padding:5px 14px; overflow:hidden;
      display:flex; flex-direction:column; justify-content:flex-end; gap:1px;
    }
    .con-line {
      font-family:'Courier New', monospace; font-size:15px;
      line-height:1.55; white-space:nowrap; overflow:hidden; color:var(--con-green);
    }
    .con-line.old { opacity:.26; }
    .con-line.mid { opacity:.52; }
    .con-line.cur { opacity:1; text-shadow:0 0 7px rgba(0,255,65,.4); }
    .con-line .con-time     { color:#006620; margin-right:8px; }
    .con-line .con-tag-info { color:#006d24; margin-right:6px; }
    .con-line .con-tag-warn { color:#a06000; margin-right:6px; }
    .con-line .con-tag-err  { color:#a02000; margin-right:6px; }
    .con-line .con-tag-sys  { color:#006688; margin-right:6px; }
    .con-line .con-tag-prio { color:#ffcc00; margin-right:6px; }
    @keyframes prio-pulse {
      0%,100% { color:#906800; text-shadow:none; }
      50%     { color:#ffe566; text-shadow:0 0 20px rgba(255,210,0,1), 0 0 6px rgba(255,230,0,.8); }
    }
    .con-line.prio          { animation:prio-pulse 2.4s ease-in-out infinite; }
    .con-line.prio.old      { opacity:.5; }
    .con-line.prio.mid      { opacity:.78; }
    .con-line.cur .con-msg::after {
      content:'█'; animation:blink .55s step-end infinite; color:var(--con-green); margin-left:1px;
    }

    /* ══════════════════════════════════════════════════
       OVERLAYS
    ══════════════════════════════════════════════════ */
    .overlay {
      position:fixed; inset:0; background:rgba(5,8,14,.92);
      backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center;
      z-index:200; opacity:0; pointer-events:none; transition:opacity .22s;
    }
    .overlay.active { opacity:1; pointer-events:auto; }

    /* Confirm */
    .confirm-card {
      max-width:500px; width:100%; background:var(--bg-panel);
      border:1px solid var(--border-bright); padding:32px;
    }
    .confirm-card::before { content:''; display:block; height:2px; background:linear-gradient(90deg,var(--accent),transparent); margin-bottom:24px; }
    .confirm-cat   { font-family:var(--font-mono); font-size:12px; letter-spacing:.2em; color:var(--text-muted); text-transform:uppercase; margin-bottom:8px; }
    .confirm-title { font-size:24px; font-weight:700; color:var(--text-bright); margin-bottom:8px; }
    .confirm-desc  { font-size:15px; color:var(--text-muted); line-height:1.65; margin-bottom:26px; }
    .confirm-keys  { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .confirm-key-block {
      display:flex; align-items:center; justify-content:center;
      padding:16px; border:1px solid var(--border);
      font-family:var(--font-ui); font-size:15px; font-weight:600;
      letter-spacing:.16em; text-transform:uppercase;
      cursor:pointer; transition:all .18s;
    }
    .confirm-key-exec   { border-color:var(--accent); color:var(--accent); background:var(--accent-dim); }
    .confirm-key-exec:hover   { background:var(--accent); color:var(--bg); }
    .confirm-key-cancel { border-color:var(--border); color:var(--text-muted); }
    .confirm-key-cancel:hover { border-color:var(--red); color:var(--red); }

    /* Broadcast */
    .broadcast-card {
      max-width:640px; width:100%; padding:44px; text-align:center;
      border:1px solid var(--amber); background:var(--bg-panel); position:relative;
    }
    .broadcast-card::before { content:''; display:block; height:3px; background:var(--amber); margin-bottom:26px; }
    .broadcast-level { font-family:var(--font-mono); font-size:13px; letter-spacing:.22em; color:var(--amber); margin-bottom:14px; }
    .broadcast-title { font-size:28px; font-weight:700; color:var(--text-bright); letter-spacing:.06em; margin-bottom:18px; }
    .broadcast-msg   { font-size:17px; color:var(--text); line-height:1.65; margin-bottom:28px; }
    .broadcast-hint  { font-size:12px; color:var(--text-muted); letter-spacing:.1em; }

    /* ── NOISE CANVAS ── */
    #noise-canvas {
      position:fixed; inset:0; pointer-events:none; z-index:998;
      opacity:0.35; mix-blend-mode:screen;
    }

    /* ── GLITCH ── */
    @keyframes glitch-anim {
      0%   { transform:translate(0,0) skewX(0deg); }
      15%  { transform:translate(-5px,0) skewX(0.5deg); }
      30%  { transform:translate(4px,0) skewX(-0.4deg); }
      50%  { transform:translate(-3px,1px); }
      70%  { transform:translate(5px,-1px) skewX(0.3deg); }
      85%  { transform:translate(-4px,0); }
      100% { transform:translate(0,0) skewX(0deg); }
    }
    .glitching { animation:glitch-anim 0.1s steps(1) forwards; }

    /* ── NEXUS PING ── */
    .nexus-ping { font-size:10px; letter-spacing:.1em; opacity:.7; }
    .nexus-badge.connected    .nexus-ping { color:var(--green); }
    .nexus-badge.disconnected .nexus-ping { display:none; }

    /* ── NAV BUTTON DIMMED ── */
    .nav-btn.dimmed .nav-code  { opacity: .28; }
    .nav-btn.dimmed .nav-label { opacity: .28; }

    /* ── MENU TITLE ── */
    .menu-title {
      font-family: var(--font-brand); font-size: 13px; font-weight: 700;
      letter-spacing: .22em; text-transform: uppercase; color: var(--accent);
      padding: 8px 0 14px; border-bottom: 1px solid var(--border); margin-bottom: 18px;
    }

    /* ── MENU NAVIGATION TILE ── */
    .tile-menu { border-color: var(--border-bright); cursor: pointer; }
    .tile-menu:hover { background: var(--bg-hover); border-color: var(--accent); }
    .tile-menu .tile-code { color: var(--accent); }
    .tile-nav-arrow {
      position: absolute; top: 50%; right: 12px; transform: translateY(-50%);
      font-size: 12px; color: var(--accent-dim);
    }
    .tile-menu:hover .tile-nav-arrow { color: var(--accent); }

    /* ── ROOT MENU GRID ── */
    .root-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }
    .tile-menu-root {
      padding: 16px 18px;
      background: rgba(0,40,64,.55);
      border-color: var(--border-bright);
      min-height: 72px;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }
    .tile-menu-root .tile-label {
      font-size: 20px;
      font-weight: 700;
      color: var(--text-bright);
      margin-bottom: 0;
      flex: 1;
    }
    .tile-menu-root .tile-code {
      font-family: var(--font-mono);
      font-size: 22px;
      color: rgba(0,184,212,.65);
      letter-spacing: .14em;
      margin-bottom: 0;
      text-align: right;
      flex-shrink: 0;
    }
    .tile-menu-root .tile-nav-arrow {
      font-size: 14px;
      color: var(--border-bright);
      position: static;
      transform: none;
      flex-shrink: 0;
    }
    .tile-menu-root:hover {
      background: rgba(0,60,96,.7);
      border-color: var(--accent);
    }
    .tile-menu-root:hover .tile-nav-arrow { color: var(--accent); }

    /* ── DISABLED ACTION TILE ── */
    .tile-act.disabled {
      opacity: 0.38;
      cursor: not-allowed;
      border-color: var(--border);
    }
    .tile-act.disabled .tile-code { color: var(--text-muted); }
    .tile-act.disabled::after {
      content: 'GESPERRT';
      position: absolute; top: 8px; right: 10px;
      font-family: var(--font-mono); font-size: 9px;
      letter-spacing: .18em; color: var(--text-muted); opacity: .7;
    }
    .tile-act.disabled:hover { background: var(--bg-panel); border-color: var(--border); }

    /* ── ANCESTOR BREADCRUMB ── */
    .cat-ancestor { margin-bottom: 6px; }
    .cat-ancestor .cat-hdr-title { opacity: 0.4; }
    .cat-ancestor .cat-hdr-line  { opacity: 0.25; }
    .tile-back { border-color: var(--border); cursor: pointer; }
    .tile-back:hover { background: var(--bg-hover); border-color: var(--border-bright); }
    .tile-back .tile-code  { font-size: 32px; color: #c04040; }
    .tile-back .tile-label { font-size: 14px; color: var(--text-muted); }

    /* ── PUBLIC GRID PLACEHOLDER ── */
    .public-empty {
      grid-column: 1 / -1; color: var(--text-muted);
      font-size: 13px; letter-spacing: .1em; padding: 12px 0;
    }

    /* ── SENSOR VIEW ── */
    .sensor-header {
      display:flex; align-items:center; gap:12px;
      padding-bottom:14px; border-bottom:1px solid var(--border); margin-bottom:18px;
    }
    .sensor-header-title {
      font-family:var(--font-brand); font-size:22px; letter-spacing:.16em;
      color:var(--text-bright); text-transform:uppercase;
    }
    .sensor-header-sub {
      font-size:11px; letter-spacing:.2em; color:var(--text-muted); text-transform:uppercase;
    }
    .sensor-scan-dot {
      width:8px; height:8px; border-radius:50%; background:var(--accent);
      flex-shrink:0; animation:sensor-blink 1.4s ease-in-out infinite;
    }
    @keyframes sensor-blink { 0%,100%{opacity:1} 50%{opacity:.2} }
    .sensor-grid { display:flex; flex-direction:column; gap:8px; position:relative; }
    .sensor-row {
      background:var(--bg-panel); border:1px solid var(--border);
      padding:12px 16px; display:flex; flex-direction:column; gap:8px;
    }
    .sensor-row-top {
      display:flex; align-items:center; gap:10px;
    }
    .sensor-lbl {
      flex:1; font-size:17px; letter-spacing:.14em; text-transform:uppercase;
      color:var(--text);
    }
    .sensor-val-wrap { display:flex; align-items:baseline; gap:5px; }
    .sensor-val {
      font-family:var(--font-mono); font-size:32px; color:var(--accent);
      letter-spacing:.02em; transition:color .4s;
    }
    .sensor-val.warn { color:var(--amber); }
    .sensor-val.crit { color:var(--red); }
    .sensor-unit { font-size:13px; color:var(--text-muted); letter-spacing:.1em; }
    .sensor-badge {
      font-size:10px; letter-spacing:.22em; text-transform:uppercase;
      padding:4px 8px; border:1px solid; flex-shrink:0;
    }
    .sensor-badge.nom  { color:var(--green); border-color:rgba(40,200,120,.3); }
    .sensor-badge.warn { color:var(--amber); border-color:rgba(232,168,64,.5); background:rgba(232,168,64,.06); }
    .sensor-badge.crit { color:var(--red);   border-color:rgba(224,56,64,.6);  background:rgba(224,56,64,.1); animation:sensor-blink .8s ease-in-out infinite; }
    .sensor-bar-wrap { height:10px; background:var(--bg-hover); border-radius:3px; overflow:hidden; position:relative; }
    .sensor-bar-zones { position:absolute; inset:0; }
    .sensor-bar-cursor {
      position:absolute; top:0; bottom:0; width:3px;
      transform:translateX(-50%); border-radius:2px;
      transition:left .8s ease, box-shadow .4s;
    }
    .sensor-bar-cursor.nom  { background:var(--green); box-shadow:0 0 7px rgba(40,200,120,.9); }
    .sensor-bar-cursor.warn { background:var(--amber); box-shadow:0 0 7px rgba(232,168,64,.9); }
    .sensor-bar-cursor.crit { background:var(--red);   box-shadow:0 0 9px rgba(224,56,64,1);   animation:crit-pulse .8s ease-in-out infinite; }
    @keyframes crit-pulse { 0%,100%{opacity:1} 50%{opacity:.25} }

    /* ── ACTION PROGRESS VIEW ── */
    .aprog-header {
      padding-bottom:14px; border-bottom:1px solid var(--border); margin-bottom:18px;
    }
    .aprog-category {
      font-size:11px; letter-spacing:.22em; text-transform:uppercase;
      color:var(--text-muted); margin-bottom:4px;
    }
    .aprog-title {
      font-family:var(--font-brand); font-size:22px; letter-spacing:.1em;
      color:var(--text-bright);
    }
    .aprog-bar-section { margin-bottom:18px; }
    .aprog-bar-meta {
      display:flex; justify-content:space-between; align-items:baseline;
      margin-bottom:6px;
    }
    .aprog-bar-label { font-size:11px; letter-spacing:.18em; color:var(--text-muted); text-transform:uppercase; }
    .aprog-bar-time  { font-family:var(--font-mono); font-size:13px; color:var(--accent); }
    .aprog-bar-wrap  {
      height:22px; background:var(--bg-hover); border:1px solid var(--border);
      overflow:hidden; border-radius:2px;
    }
    .aprog-bar-fill  {
      height:100%; position:relative;
      background:linear-gradient(90deg, var(--accent-dim) 0%, var(--accent) 60%, #00e8ff 100%);
      transition:width .5s linear;
      box-shadow:0 0 12px rgba(0,184,212,.4);
    }
    .aprog-bar-fill::after {
      content:''; position:absolute; top:0; right:0; width:40px; height:100%;
      background:linear-gradient(90deg, transparent, rgba(255,255,255,.25));
      animation:bar-shine 1s ease-in-out infinite;
    }
    @keyframes bar-shine { 0%,100%{opacity:1} 50%{opacity:.1} }
    .aprog-log {
      font-family:var(--font-mono); font-size:18px; display:flex; flex-direction:column; gap:10px;
      flex:1; min-height:80px; overflow-y:auto;
    }
    .aprog-log-entry { display:flex; gap:14px; align-items:baseline; padding:4px 0; }
    .aprog-log-time  { color:var(--text-muted); flex-shrink:0; font-size:15px; }
    .aprog-log-icon  { flex-shrink:0; width:20px; text-align:center; }
    .aprog-log-msg   { color:var(--text); }
    .aprog-log-entry.pending .aprog-log-icon { color:var(--accent); animation:sensor-blink 1s infinite; }
    .aprog-log-entry.ok      .aprog-log-icon { color:var(--green); }
    .aprog-log-entry.err     .aprog-log-icon { color:var(--red); }
    .aprog-complete {
      display:none; align-items:center; gap:12px; padding:16px 18px;
      background:rgba(40,200,120,.06); border:1px solid rgba(40,200,120,.3);
      margin-top:16px;
    }
    .aprog-complete.visible { display:flex; }
    .aprog-complete-icon { font-size:24px; color:var(--green); }
    .aprog-complete-txt  { font-size:15px; letter-spacing:.06em; color:var(--green); }

    /* ── ALARM OVERLAY ── */
    #ov-alarm {
      position:fixed; inset:0; z-index:1100;
      background:rgba(36,0,0,.97);
      display:none; flex-direction:column; align-items:center; justify-content:center;
      animation:alarm-bg-pulse 1.6s ease-in-out infinite;
    }
    #ov-alarm.active { display:flex; }
    @keyframes alarm-bg-pulse {
      0%,100% { box-shadow:inset 0 0 100px rgba(224,56,64,.35); }
      50%     { box-shadow:inset 0 0 260px rgba(224,56,64,.85); }
    }
    .alarm-flash {
      position:fixed; inset:0; pointer-events:none; z-index:1;
      border:3px solid var(--red);
      animation:alarm-border-flash .9s ease-in-out infinite;
    }
    @keyframes alarm-border-flash { 0%,100%{opacity:1} 50%{opacity:.05} }
    .alarm-card {
      position:relative; z-index:2;
      max-width:860px; width:90%; text-align:center;
      padding:90px 64px 48px;
    }
    .alarm-signet {
      position:absolute; top:0; left:50%; transform:translateX(-50%);
      font-family:var(--font-mono); font-size:26px; letter-spacing:.45em;
      color:var(--red); text-transform:uppercase; white-space:nowrap;
      border:1px solid rgba(224,56,64,.5); padding:10px 32px 10px 38px;
      animation:alarm-border-flash .9s ease-in-out infinite;
    }
    .alarm-type {
      font-family:var(--font-brand); font-size:64px; letter-spacing:.1em;
      text-transform:uppercase; color:var(--red); line-height:1;
      margin-bottom:32px;
      text-shadow:0 0 40px rgba(224,56,64,.7), 0 0 100px rgba(224,56,64,.35);
      animation:alarm-type-glow 1.6s ease-in-out infinite;
    }
    @keyframes alarm-type-glow {
      0%,100% { text-shadow:0 0 40px rgba(224,56,64,.7),  0 0 100px rgba(224,56,64,.35); }
      50%     { text-shadow:0 0 80px rgba(224,56,64,1.0), 0 0 180px rgba(224,56,64,.65); }
    }
    .alarm-divider {
      width:80px; height:1px; background:rgba(224,56,64,.35);
      margin:0 auto 32px;
    }
    .alarm-title {
      font-family:var(--font-brand); font-size:32px; letter-spacing:.1em;
      color:var(--text-bright); margin-bottom:18px;
    }
    .alarm-msg {
      font-size:19px; color:var(--text); line-height:1.8;
      margin-bottom:56px; opacity:.85;
    }
    .alarm-hint { font-size:14px; color:var(--text-muted); letter-spacing:.15em; }

    /* ── PROCESS TOAST SHELF (fixed overlay) ── */
    #toast-shelf {
      position:fixed; right:0; top:50%; transform:translateY(-50%);
      z-index:500; display:flex; flex-direction:column; gap:6px;
      pointer-events:none;
    }
    .toast-item {
      width:210px; background:rgba(2,14,32,.97);
      border:1px solid var(--border-bright); border-right:none; border-left:5px solid var(--accent);
      border-radius:4px 0 0 4px; box-shadow:-4px 0 20px rgba(0,0,0,.6);
      padding:14px 18px; display:flex; flex-direction:column; gap:9px;
      pointer-events:auto;
      transform:translateX(calc(100% + 40px));
      transition:transform .35s cubic-bezier(.4,0,.2,1), opacity .35s;
      opacity:0;
    }
    .toast-item.visible { transform:translateX(0); opacity:1; }
    .toast-item.done    { border-left-color:var(--green); }
    .toast-item-header  { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
    .toast-item-cat     { font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-muted); }
    .toast-item-title   { font-size:15px; color:var(--text); letter-spacing:.03em; flex:1; }
    .toast-item-time    { font-family:var(--font-mono); font-size:14px; color:var(--accent); flex-shrink:0; }
    .toast-item-time.done { color:var(--green); }
    .toast-item-bar-wrap { height:5px; background:var(--bg-hover); overflow:hidden; }
    .toast-item-bar-fill {
      height:100%; background:linear-gradient(90deg, var(--accent-dim), var(--accent));
      transition:width .5s linear;
    }
    .toast-item-bar-fill.done { background:var(--green); }

    /* ── MEDIA OVERLAY ── */
    #ov-media {
      position:fixed; inset:0; z-index:1050;
      background:#000;
      display:flex; align-items:center; justify-content:center;
      opacity:0; pointer-events:none;
      transition:opacity .4s ease;
    }
    #ov-media.active { opacity:1; pointer-events:auto; }
    #media-vid {
      width:100%; height:100%; object-fit:contain;
      display:none;
    }
    #media-img {
      max-width:100%; max-height:100%; object-fit:contain;
      display:none;
    }

    /* ── BLACKOUT ── */
    #ov-blackout {
      position:fixed; inset:0; z-index:2000; background:#000;
      display:none; cursor:none;
    }
    #ov-blackout.active { display:block; }

    /* ── 3D STATION VIEWER ── */
    #station-3d-wrap { padding: 0 !important; position: relative; background: #020408; }
    #station-stars   { position:absolute; inset:0; z-index:0; pointer-events:none; }
    #station-mv {
      position:absolute; inset:0; width:100%; height:100%; z-index:1;
      background-color: transparent; --poster-color: transparent;
    }
    #station-loading {
      position:absolute; inset:0; z-index:2;
      display:flex; flex-direction:column; align-items:center; justify-content:center;
      background:rgba(2,4,10,.93); transition:opacity .7s;
    }
    #station-loading.hidden { opacity:0; pointer-events:none; }
    .s-load-ring {
      width:30px; height:30px; border:2px solid #1a3a5f;
      border-top-color:var(--accent); border-radius:50%;
      animation:spin 1s linear infinite; margin-bottom:9px;
    }
    @keyframes spin { to { transform:rotate(360deg); } }
    .s-load-text {
      font-family:var(--font-mono); font-size:9px;
      letter-spacing:.22em; text-transform:uppercase; color:var(--text-muted);
    }

    /* ── MAINTENANCE ── */
    #ov-maintenance {
      position:fixed; inset:0; z-index:2000;
      background:rgba(5,8,14,.97);
      display:none; align-items:center; justify-content:center;
    }
    #ov-maintenance.active { display:flex; }
    .maint-card { text-align:center; }
    .maint-icon  {
      font-size:56px; color:var(--amber); margin-bottom:24px; line-height:1;
      animation:sensor-blink 2s ease-in-out infinite;
    }
    .maint-title {
      font-family:var(--font-brand); font-size:28px; letter-spacing:.2em;
      color:var(--amber); text-transform:uppercase; margin-bottom:16px;
    }
    .maint-sub {
      font-size:15px; letter-spacing:.18em; text-transform:uppercase;
      color:var(--text-muted); margin-bottom:40px;
    }
    .maint-badge {
      font-family:var(--font-mono); font-size:11px; letter-spacing:.25em;
      color:var(--border-bright); text-transform:uppercase;
    }

    /* ── SELF-DESTRUCT OVERLAY ── */
    #ov-selfdestruct {
      position:fixed; inset:0; z-index:1900;
      background:#080200;
      display:none; align-items:center; justify-content:center; overflow:hidden;
    }
    #ov-selfdestruct.active { display:flex; }

    /* Edge fire glow */
    #ov-selfdestruct::before {
      content:''; position:absolute; inset:0; pointer-events:none;
      background:radial-gradient(ellipse 92% 92% at center, transparent 30%, rgba(200,40,0,.65) 100%);
      animation:sd-glow .7s ease-in-out infinite alternate;
    }

    /* Crack lines (fade in with damage) */
    #ov-selfdestruct::after {
      content:''; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity 1.2s;
      background:
        linear-gradient(52deg, transparent 47.8%, rgba(255,100,0,.55) 48.1%, transparent 48.4%),
        linear-gradient(-68deg, transparent 60.8%, rgba(255,80,0,.45) 61.1%, transparent 61.4%),
        linear-gradient(15deg, transparent 69.8%, rgba(255,120,0,.4) 70.1%, transparent 70.4%);
    }
    #ov-selfdestruct.sd-dmg-2::after { opacity:.3; }
    #ov-selfdestruct.sd-dmg-3::after { opacity:.75; }

    @keyframes sd-glow { from{opacity:.65} to{opacity:1} }

    .sd-card {
      position:relative; z-index:1; text-align:center;
      display:flex; flex-direction:column; align-items:center;
      pointer-events:none;
    }

    .sd-badge {
      font-family:var(--font-mono); font-size:13px; letter-spacing:.28em; text-transform:uppercase;
      color:#ff6a20; border:1px solid #ff6a20; padding:5px 20px; margin-bottom:32px;
      animation:sd-blink .5s step-end infinite;
    }
    @keyframes sd-blink { 0%,100%{opacity:1} 50%{opacity:.3} }

    .sd-title {
      font-family:var(--font-brand); font-size:36px; font-weight:700;
      letter-spacing:.12em; text-transform:uppercase;
      color:#ff4a00; line-height:1.3; margin-bottom:36px;
      text-shadow:0 0 40px rgba(255,80,0,.7), 0 0 100px rgba(255,20,0,.4);
    }

    .sd-countdown {
      font-family:var(--font-brand); font-size:160px; font-weight:700; line-height:1;
      color:#ff2200; margin-bottom:28px;
      text-shadow:0 0 60px rgba(255,60,0,.9), 0 0 140px rgba(255,0,0,.5);
      animation:sd-cnt-pulse 1s ease-in-out infinite;
      transition:color 1.2s ease, text-shadow 1.2s ease;
    }
    @keyframes sd-cnt-pulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.04)} }

    .sd-status {
      font-family:var(--font-mono); font-size:18px; letter-spacing:.28em; text-transform:uppercase;
      color:#ff6a20; margin-bottom:18px; transition:color 1.2s ease;
    }

    .sd-msg {
      font-family:var(--font-mono); font-size:14px; letter-spacing:.1em;
      color:rgba(255,120,60,.7); max-width:520px; line-height:1.7;
      transition:color 1.2s ease;
    }

    /* Progressive damage: RGB split */
    #ov-selfdestruct.sd-dmg-1 .sd-card {
      filter:drop-shadow(4px 0 0 rgba(255,0,0,.25)) drop-shadow(-4px 0 0 rgba(0,80,255,.2));
    }
    #ov-selfdestruct.sd-dmg-2 .sd-card {
      filter:drop-shadow(8px 0 0 rgba(255,0,0,.4)) drop-shadow(-8px 0 0 rgba(0,80,255,.35));
    }
    #ov-selfdestruct.sd-dmg-2 { animation:sd-flicker .2s step-end infinite; }
    #ov-selfdestruct.sd-dmg-3 .sd-card {
      filter:drop-shadow(14px 0 0 rgba(255,0,0,.65)) drop-shadow(-14px 0 0 rgba(0,80,255,.6));
    }
    #ov-selfdestruct.sd-dmg-3 { animation:sd-flicker-hard .12s step-end infinite; }
    @keyframes sd-flicker      { 0%,100%{opacity:1} 50%{opacity:.75} }
    @keyframes sd-flicker-hard { 0%,100%{opacity:1} 25%{opacity:.35} 75%{opacity:.85} }

    /* Aborted / resolution phase */
    #ov-selfdestruct.sd-aborted { animation:none; background:#000e04; }
    #ov-selfdestruct.sd-aborted::before {
      background:radial-gradient(ellipse 92% 92% at center, transparent 30%, rgba(0,120,20,.5) 100%);
      animation:none;
    }
    #ov-selfdestruct.sd-aborted::after { opacity:0 !important; }
    #ov-selfdestruct.sd-aborted .sd-card         { filter:none; }
    #ov-selfdestruct.sd-aborted .sd-badge        { color:#28c878; border-color:#28c878; animation:none; }
    #ov-selfdestruct.sd-aborted .sd-title        { color:#28c878; text-shadow:0 0 40px rgba(0,200,80,.6); }
    #ov-selfdestruct.sd-aborted .sd-countdown    { color:#28c878; animation:none; text-shadow:0 0 60px rgba(0,200,80,.8); }
    #ov-selfdestruct.sd-aborted .sd-status       { color:#28c878; }
    #ov-selfdestruct.sd-aborted .sd-msg          { color:rgba(40,200,100,.8); }


    /* ══ PERSONNEL VIEW ══ */
    #c-personnel { display:flex; flex-direction:column; padding:0; }

    .pers-hdr {
      display:flex; align-items:center; gap:12px;
      padding:14px 28px; border-bottom:1px solid var(--border); flex-shrink:0;
    }
    .pers-hdr-dot {
      width:8px; height:8px; border-radius:50%; background:var(--accent);
      flex-shrink:0; animation:sensor-blink 1.4s ease-in-out infinite;
    }
    .pers-hdr-title {
      font-family:var(--font-brand); font-size:21px; letter-spacing:.14em;
      color:var(--text-bright); text-transform:uppercase;
    }
    .pers-hdr-sub { font-size:12px; letter-spacing:.16em; color:var(--text); text-transform:uppercase; }
    .pers-hdr-badge {
      margin-left:auto; flex-shrink:0;
      font-family:var(--font-mono); font-size:13px; letter-spacing:.2em; text-transform:uppercase;
      color:var(--red); border:2px solid var(--red); padding:5px 13px;
      opacity:.85; transform:rotate(-1.5deg); display:inline-block;
    }

    .pers-body { flex:1; overflow-y:auto; padding:8px 20px 24px; }

    /* ── List ── */
    .pers-list-item {
      display:grid; grid-template-columns:56px 1fr auto auto;
      gap:14px; align-items:center;
      padding:9px 10px; border-bottom:1px solid rgba(26,58,95,.5);
    }
    .pers-list-item:last-child { border-bottom:none; }
    .pers-idx  { font-family:var(--font-mono); font-size:18px; color:var(--accent); letter-spacing:.06em; }
    .pers-iname { font-size:19px; color:var(--text-bright); letter-spacing:.04em; }
    .pers-ifunc { font-size:14px; color:var(--text); letter-spacing:.04em; text-align:right; }
    .pers-istatus {
      font-family:var(--font-mono); font-size:12px; letter-spacing:.1em;
      padding:3px 10px; border:1px solid; flex-shrink:0;
    }
    .pers-list-sep {
      display:flex; align-items:center; gap:14px; margin-top:14px; padding:10px 10px 6px;
      font-family:var(--font-brand); font-size:14px; letter-spacing:.18em; text-transform:uppercase;
      color:rgba(200,155,70,1);
    }
    .pers-list-sep::after { content:''; flex:1; height:1px; background:rgba(110,82,34,.45); }
    .pers-istatus.aktiv    { border-color:var(--green);  color:var(--green); }
    .pers-istatus.deceased { border-color:var(--red);    color:var(--red); }
    .pers-istatus.missing  { border-color:var(--amber);  color:var(--amber); }
    .pers-istatus.incap    { border-color:#d07828;        color:#d07828; }

    /* ── File card — Akten-Dokument ── */
    .pers-file-card {
      position:relative; overflow:hidden;
      max-width:1100px; margin:12px auto 24px;
      background:rgba(26, 19, 8, 0.99);
      border:1px solid rgba(130, 98, 40, 0.6);
      box-shadow:0 0 0 1px rgba(110,82,34,.15), 0 6px 36px rgba(0,0,0,.55);
    }
    /* Scanlines */
    .pers-file-card::before {
      content:''; position:absolute; inset:0; pointer-events:none; z-index:0;
      background:repeating-linear-gradient(
        0deg, transparent, transparent 3px,
        rgba(0,0,0,.1) 3px, rgba(0,0,0,.1) 4px
      );
    }
    /* VERTRAULICH watermark */
    .pers-file-watermark {
      position:absolute; top:50%; left:50%;
      transform:translate(-50%,-50%) rotate(-22deg);
      font-family:var(--font-brand); font-size:68px; font-weight:900;
      letter-spacing:.22em; color:rgba(155,105,28,.08);
      white-space:nowrap; pointer-events:none; z-index:0;
      text-transform:uppercase; user-select:none;
    }
    /* File number */
    .pers-file-no {
      position:absolute; top:14px; right:18px; z-index:1;
      font-family:var(--font-mono); font-size:11px; letter-spacing:.12em;
      color:rgba(175,130,55,.85); text-align:right; line-height:1.7;
    }
    /* Inner padding layer (above scanlines) */
    .pers-file-inner { position:relative; z-index:1; padding:18px 22px 24px; }

    /* Card header: photo + id block */
    .pers-card-hdr {
      display:flex; align-items:flex-start; gap:20px;
      border-bottom:1px solid rgba(110,82,34,.3);
      margin-bottom:16px; padding-bottom:16px;
    }

    /* Passport photo with corner markers */
    .pers-photo-wrap { position:relative; flex-shrink:0; width:110px; height:140px; }
    .pers-photo-wrap img {
      width:100%; height:100%; object-fit:cover; object-position:top center; display:block;
      filter:sepia(20%) contrast(1.1) brightness(.85);
    }
    .pers-photo-placeholder {
      width:100%; height:100%; background:rgba(30,22,8,.9);
      display:flex; align-items:center; justify-content:center;
      font-family:var(--font-mono); font-size:9px; letter-spacing:.1em;
      color:rgba(110,82,34,.5); text-align:center;
    }
    .pers-photo-corner {
      position:absolute; width:13px; height:13px;
      border-color:rgba(155,115,45,.6); border-style:solid; border-width:0;
    }
    .pers-photo-corner.tl { top:-1px; left:-1px;    border-top-width:2px;    border-left-width:2px; }
    .pers-photo-corner.tr { top:-1px; right:-1px;   border-top-width:2px;    border-right-width:2px; }
    .pers-photo-corner.bl { bottom:-1px; left:-1px;  border-bottom-width:2px; border-left-width:2px; }
    .pers-photo-corner.br { bottom:-1px; right:-1px; border-bottom-width:2px; border-right-width:2px; }

    /* ID block */
    .pers-id-block { flex:1; display:flex; flex-direction:column; gap:10px; padding-top:4px; }
    .pers-id-name {
      font-family:var(--font-brand); font-size:26px; letter-spacing:.12em;
      color:rgba(235,205,130,1); text-transform:uppercase; line-height:1.1;
    }
    .pers-id-func {
      font-size:15px; letter-spacing:.14em; color:rgba(0,200,225,.9);
      text-transform:uppercase; border-left:2px solid rgba(0,184,212,.45); padding-left:8px;
    }
    .pers-id-badges { display:flex; gap:7px; flex-wrap:wrap; }

    /* Badges */
    .pers-badge {
      font-family:var(--font-mono); font-size:11px; letter-spacing:.1em;
      padding:3px 10px; border:1px solid;
      display:inline-flex; align-items:center; gap:5px;
    }
    .pers-badge-dot { width:4px; height:4px; border-radius:50%; background:currentColor; }
    .pers-badge.aktiv    { border-color:var(--green);      color:var(--green); }
    .pers-badge.deceased { border-color:var(--red);        color:var(--red); }
    .pers-badge.missing  { border-color:var(--amber);      color:var(--amber); }
    .pers-badge.incap    { border-color:#d07828;            color:#d07828; }
    .pers-badge.cl-alpha { border-color:var(--amber);      color:var(--amber); }
    .pers-badge.cl-beta  { border-color:#4a9fd4;            color:#4a9fd4; }
    .pers-badge.cl-gamma { border-color:var(--text-muted); color:var(--text-muted); }

    /* Data fields grid */
    .pers-sections {
      display:grid; grid-template-columns:1fr 1fr; gap:0 24px; margin-bottom:14px;
    }
    .pers-field {
      display:flex; justify-content:space-between; align-items:baseline;
      padding:6px 0; border-bottom:1px solid rgba(110,82,34,.25);
      font-family:var(--font-mono); font-size:12px;
    }
    .pers-field-lbl { color:rgba(180,140,65,1); letter-spacing:.1em; }
    .pers-field-val {
      color:rgba(240,220,170,1); text-align:right; font-size:14px;
      font-family:'Courier New', Courier, monospace;
    }

    /* Section title (specs, log) */
    .pers-section-title {
      font-family:var(--font-mono); font-size:12px; letter-spacing:.2em; text-transform:uppercase;
      color:rgba(185,145,60,1); padding-bottom:7px;
      border-bottom:1px solid rgba(110,82,34,.45);
      margin-bottom:12px; margin-top:18px;
    }

    /* Specializations */
    .pers-specs { display:flex; flex-wrap:wrap; gap:6px; }
    .pers-spec {
      font-family:var(--font-mono); font-size:12px; letter-spacing:.08em;
      padding:4px 10px; background:rgba(22,16,6,.8);
      border:1px solid rgba(100,72,28,.45); color:rgba(220,190,130,1);
    }
    .pers-spec.hi { border-color:rgba(0,184,212,.4); color:var(--accent); }

    /* Two-column log layout */
    .pers-log-cols { display:grid; grid-template-columns:1fr 1fr; gap:0 22px; margin-top:16px; }
    .pers-log-col-hdr {
      font-family:var(--font-mono); font-size:12px; letter-spacing:.2em; text-transform:uppercase;
      color:rgba(185,145,60,1); padding-bottom:7px;
      border-bottom:2px solid rgba(130,98,40,.55); margin-bottom:10px;
    }
    .pers-log-empty { font-family:var(--font-mono); font-size:12px; color:rgba(140,108,52,.5); padding:8px 0; }

    /* Log entries */
    .pers-log { display:flex; flex-direction:column; }
    .pers-log-entry { padding:8px 0; border-bottom:1px solid rgba(110,82,34,.2); }
    .pers-log-entry:last-child { border-bottom:none; }
    .pers-log-meta { display:flex; gap:10px; align-items:center; margin-bottom:4px; flex-wrap:wrap; }
    .pers-log-date { font-family:var(--font-mono); font-size:11px; color:rgba(210,165,65,1); }
    .pers-log-by   { font-family:var(--font-mono); font-size:11px; color:rgba(0,200,225,.8); }
    .pers-log-type {
      font-family:var(--font-mono); font-size:10px;
      color:rgba(175,135,55,.9); border:1px solid rgba(120,88,35,.5); padding:1px 6px;
      margin-left:auto;
    }
    .pers-log-text {
      font-size:14px; color:rgba(235,215,175,1); line-height:1.6;
      font-family:'Courier New', Courier, monospace;
    }
