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

    /* ============ THEME VARIABLES ============ */
    :root {
      --bg-primary: #0f1117;
      --bg-secondary: #1a1d27;
      --bg-tertiary: #12151f;
      --border-color: #2a2d3a;
      --text-primary: #ffffff;
      --text-secondary: #e0e0e0;
      --text-muted: #c0c0c0;
      --text-dim: #888;
      --text-dimmer: #444;
      --accent: #a78bfa;
      --accent-hover: #9061f9;
      --green: #22c55e;
      --yellow: #f59e0b;
      --medium-yellow: #facc15;
      --red: #ef4444;
      --blue: #3b82f6;
    }

    body.light-mode {
      --bg-primary: #f0f2f5;
      --bg-secondary: #ffffff;
      --bg-tertiary: #f8f9fb;
      --border-color: #e2e8f0;
      --text-primary: #0f1117;
      --text-secondary: #1a1d27;
      --text-muted: #374151;
      --text-dim: #6b7280;
      --text-dimmer: #9ca3af;
      --accent: #7c3aed;
      --accent-hover: #6d28d9;
      --green: #16a34a;
      --yellow: #d97706;
      --medium-yellow: #fbbf24;
      --red: #dc2626;
      --blue: #2563eb;
    }

    body {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
      background: var(--bg-primary);
      color: var(--text-secondary);
      min-height: 100vh;
      padding: 20px;
      transition: background 0.3s, color 0.3s;
    }

    /* ============ PASSWORD SCREEN ============ */
    #password-screen {
      position: fixed;
      top: 0; left: 0;
      width: 100%; height: 100%;
      background: var(--bg-primary);
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 9999;
    }

    #password-screen.hidden { display: none; }

    .password-card {
      background: var(--bg-secondary);
      border: 1px solid var(--border-color);
      border-radius: 16px;
      padding: 40px;
      width: 100%;
      max-width: 400px;
      text-align: center;
    }

    .password-card h2 { color: var(--text-primary); font-size: 1.4rem; margin-bottom: 8px; }
    .password-card p { color: var(--text-dim); font-size: 0.9rem; margin-bottom: 24px; }

    .password-input {
      width: 100%;
      padding: 12px 16px;
      background: var(--bg-primary);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      color: var(--text-primary);
      font-size: 1rem;
      margin-bottom: 12px;
      outline: none;
      transition: border-color 0.2s;
    }

    .password-input:focus { border-color: var(--accent); }

    .password-btn {
      width: 100%;
      padding: 12px;
      background: var(--accent);
      color: var(--bg-primary);
      border: none;
      border-radius: 8px;
      font-size: 1rem;
      font-weight: 700;
      cursor: pointer;
      transition: background 0.2s;
    }

    .password-btn:hover { background: var(--accent-hover); }

    .password-error {
      color: var(--red);
      font-size: 0.85rem;
      margin-top: 8px;
      display: none;
    }

    .password-error.visible { display: block; }

    /* ============ MAIN APP ============ */
    #app { display: none; }
    #app.visible { display: block; }

    header {
      display: flex;
      flex-direction: column;
      padding: 16px 24px;
      background: var(--bg-secondary);
      border-radius: 12px;
      margin-bottom: 24px;
      border: 1px solid var(--border-color);
      transition: background 0.3s, border-color 0.3s;
      position: sticky;
      top: 20px;
      z-index: 100;
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
    }

    .header-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    #section-nav {
      display: none;
      flex-wrap: wrap;
      gap: 6px;
      padding-top: 12px;
      margin-top: 12px;
      border-top: 1px solid var(--border-color);
    }

    #section-nav.visible { display: flex; }

    .section-nav-btn {
      background: none;
      border: 1px solid var(--border-color);
      color: var(--text-secondary);
      padding: 4px 10px;
      border-radius: 6px;
      cursor: pointer;
      font-size: 0.75rem;
      transition: all 0.2s;
    }

    .section-nav-btn:hover {
      border-color: var(--accent);
      color: var(--accent);
    }

    .section-nav-btn.collapsed {
      opacity: 0.55;
    }


    header h1 { font-size: 1.3rem !important; color: var(--text-primary); }

    .header-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .header-right {
      display: flex;
      align-items: center;
      gap: 16px;
    }

    #logout-btn {
      background: none;
      border: 1px solid var(--border-color);
      color: var(--text-muted);
      padding: 6px 12px;
      border-radius: 6px;
      cursor: pointer;
      font-size: 0.8rem;
      transition: all 0.2s;
    }

    #logout-btn:hover { border-color: var(--red); color: var(--red); }

    #clear-btn {
      background: rgba(239, 68, 68, 0.1);
      border: 1px solid var(--red);
      color: var(--red);
      padding: 3px 8px;
      border-radius: 6px;
      cursor: pointer;
      font-size: 0.65rem;
      font-weight: 700;
      transition: all 0.2s;
      animation: danger-pulse 2s infinite;
    }

    #clear-btn:hover {
      background: var(--red);
      color: #ffffff;
      box-shadow: 0 0 12px rgba(239, 68, 68, 0.6);
    }

    #clear-btn:disabled { animation: none; opacity: 0.5; cursor: not-allowed; }

    @keyframes danger-pulse {
      0%, 100% { box-shadow: 0 0 4px rgba(239, 68, 68, 0.3); }
      50% { box-shadow: 0 0 10px rgba(239, 68, 68, 0.7); }
    }

    #pdf-btn {
      background: var(--accent);
      border: none;
      color: var(--bg-primary);
      padding: 3px 8px;
      border-radius: 6px;
      cursor: pointer;
      font-size: 0.65rem;
      font-weight: 700;
      transition: all 0.2s;
    }

    #pdf-btn:hover { background: var(--accent-hover); }
    #pdf-btn:disabled { background: #555; cursor: not-allowed; }

    #json-btn {
      background: var(--accent);
      border: none;
      color: var(--bg-primary);
      padding: 3px 8px;
      border-radius: 6px;
      cursor: pointer;
      font-size: 0.65rem;
      font-weight: 700;
      transition: all 0.2s;
    }

    #json-btn:hover { background: var(--accent-hover); }
    #theme-btn {
      background: none;
      border: 1px solid var(--border-color);
      color: var(--text-muted);
      padding: 3px 6px;
      border-radius: 4px;
      cursor: pointer;
      font-size: 0.6rem;
      transition: all 0.2s;
    }

    #theme-btn:hover { border-color: var(--accent); color: var(--accent); }

    #status-indicator {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 0.6rem;
      color: var(--text-dim);
      margin-left: 10px;
      padding-left: 10px;
      border-left: 1px solid var(--border-color);
    }

    #status-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: #555;
      transition: background 0.3s;
    }

    #status-dot.connected { background: var(--green); }
    #status-dot.receiving { background: var(--yellow); animation: pulse 0.5s; }
    #status-dot.error { background: var(--red); }

    @keyframes pulse {
      0%, 100% { transform: scale(1); }
      50% { transform: scale(1.4); }
    }

    #timestamp { font-size: 0.6rem; color: var(--text-dim); display: flex; align-items: center; flex-wrap: wrap; padding: 4px 0 2px; }

    #ttl-badge {
      margin-left: 10px;
      padding: 2px 8px;
      border-radius: 10px;
      font-size: 0.6rem;
      font-weight: 600;
      background: var(--bg-secondary);
      border: 1px solid var(--border-color);
      color: var(--text-dim);
      display: inline-block;
    }

    #ttl-badge.expiring-soon {
      border-color: var(--yellow);
      color: var(--yellow);
    }

    #output-container {
      background: var(--bg-secondary);
      border: 1px solid var(--border-color);
      border-radius: 12px;
      padding: 28px;
      min-height: 300px;
      transition: border-color 0.3s, background 0.3s;
    }

    #output-container.updating { border-color: var(--yellow); }

    .section-card {
      background: var(--bg-tertiary);
      border: 1px solid var(--border-color);
      border-radius: 10px;
      padding: 0;
      margin-bottom: 20px;
      transition: background 0.3s, border-color 0.3s;
      overflow: hidden;
    }

    .section-body {
      overflow: hidden;
      transition: height 0.35s ease, opacity 0.35s ease;
      opacity: 1;
      padding: 0 20px 20px 20px;
    }

    .section-body.collapsed {
      opacity: 0;
      height: 0 !important;
    }

    .section-title {
      font-size: 1.1rem;
      font-weight: 700;
      color: var(--text-primary);
      margin-bottom: 16px;
      padding: 20px 20px 10px 20px;
      border-bottom: 1px solid var(--border-color);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      cursor: pointer;
      user-select: none;
    }

    .section-title:hover { color: var(--accent); }
    .section-title.collapsed { margin-bottom: 0; border-bottom-color: transparent; }

    .exec-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-bottom: 16px;
    }

    .exec-meta {
      background: var(--bg-secondary);
      border-radius: 8px;
      padding: 12px;
      transition: background 0.3s;
    }

    .exec-meta-label {
      font-size: 0.75rem;
      color: var(--text-dim);
      text-transform: uppercase;
      letter-spacing: 1px;
      margin-bottom: 4px;
    }

    .exec-meta-value { font-size: 0.9rem; color: var(--text-muted); }

    .overview-text {
      color: var(--text-muted);
      line-height: 1.7;
      font-size: 0.95rem;
      margin-bottom: 16px;
    }

    .priority-list { list-style: none; padding: 0; }

    .priority-item {
      padding: 8px 12px;
      border-radius: 6px;
      margin-bottom: 6px;
      font-size: 0.9rem;
      border-left: 3px solid var(--text-dim);
      background: var(--bg-secondary);
      color: var(--text-muted);
      transition: background 0.3s;
    }

    .priority-item.critical      { border-left-color: var(--red);    background: rgba(239,68,68,0.05); }
    .priority-item.high          { border-left-color: var(--yellow); background: rgba(245,158,11,0.05); }
    .priority-item.medium        { border-left-color: var(--medium-yellow); background: rgba(234,179,8,0.05); }
    .priority-item.low           { border-left-color: var(--green);  background: rgba(34,197,94,0.05); }
    .priority-item.informational { border-left-color: var(--blue);   background: rgba(59,130,246,0.05); }

    .risk-card {
      background: var(--bg-secondary);
      border: 1px solid var(--border-color);
      border-radius: 10px;
      padding: 0;
      margin-bottom: 16px;
      transition: background 0.3s, border-color 0.3s;
      overflow: hidden;
    }

    .risk-card:last-child { margin-bottom: 0; }

    .risk-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 16px;
      flex-wrap: wrap;
      gap: 8px;
    }

    .risk-title { font-size: 1rem; font-weight: 700; color: var(--text-primary); flex: 1; }

    .rating-badge {
      padding: 4px 12px;
      border-radius: 20px;
      font-size: 0.75rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 1px;
      white-space: nowrap;
    }

    .rating-critical     { background: rgba(239,68,68,0.2);   color: var(--red);    border: 1px solid var(--red); }
    .rating-high         { background: rgba(245,158,11,0.2);  color: var(--yellow); border: 1px solid var(--yellow); }
    .rating-medium       { background: rgba(234,179,8,0.2);   color: var(--medium-yellow); border: 1px solid var(--medium-yellow); }
    .rating-low          { background: rgba(34,197,94,0.2);   color: var(--green);  border: 1px solid var(--green); }
    .rating-informational{ background: rgba(59,130,246,0.2);  color: var(--blue);   border: 1px solid var(--blue); }

    .field-label {
      font-size: 0.75rem;
      color: var(--accent);
      text-transform: uppercase;
      letter-spacing: 1px;
      margin-bottom: 6px;
      margin-top: 14px;
      font-weight: 600;
    }

    .field-value { color: var(--text-muted); font-size: 0.9rem; line-height: 1.6; }

    .field-list { list-style: none; padding: 0; margin: 0; }

    .field-list li {
      padding: 6px 0 6px 16px;
      border-bottom: 1px solid var(--bg-tertiary);
      color: var(--text-muted);
      font-size: 0.9rem;
      position: relative;
      line-height: 1.5;
    }

    .field-list li:before { content: '›'; position: absolute; left: 0; color: var(--accent); }
    .field-list li:last-child { border-bottom: none; }

    .evidence-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

    .evidence-block {
      background: var(--bg-tertiary);
      border-radius: 8px;
      padding: 12px;
      transition: background 0.3s;
    }

    .evidence-block-title {
      font-size: 0.75rem;
      color: var(--accent);
      text-transform: uppercase;
      letter-spacing: 1px;
      margin-bottom: 8px;
      font-weight: 600;
    }

    .ioc-item {
      font-family: monospace;
      font-size: 0.8rem;
      color: var(--green);
      padding: 2px 0;
      word-break: break-all;
      line-height: 1.5;
      position: relative;
      padding-right: 54px;
    }

    .mitre-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }

    .mitre-tag {
      background: rgba(167,139,250,0.1);
      border: 1px solid rgba(167,139,250,0.3);
      border-radius: 6px;
      padding: 4px 10px;
      font-size: 0.8rem;
      color: var(--accent);
      font-family: monospace;
      position: relative;
    }

    .actor-tag {
      display: inline-block;
      background: rgba(245,158,11,0.1);
      border: 1px solid rgba(245,158,11,0.3);
      border-radius: 6px;
      padding: 4px 10px;
      font-size: 0.85rem;
      color: var(--yellow);
      margin: 4px;
      position: relative;
    }

    .source-tag {
      display: inline-block;
      background: rgba(34,197,94,0.1);
      border: 1px solid rgba(34,197,94,0.3);
      border-radius: 6px;
      padding: 3px 8px;
      font-size: 0.78rem;
      color: var(--green);
      margin: 2px;
      font-family: monospace;
    }

    .rec-list { list-style: none; padding: 0; counter-reset: rec-counter; }
    .rec-list ul { list-style: none; padding: 0; margin: 0; }

    .rec-list li {
      counter-increment: rec-counter;
      padding: 8px 8px 8px 36px;
      border-bottom: 1px solid var(--bg-tertiary);
      color: var(--text-muted);
      font-size: 0.9rem;
      line-height: 1.5;
      position: relative;
      transition: opacity 0.2s;
    }

    .rec-list li:before { display: none; }

    .rec-num {
      position: absolute;
      left: 8px;
      top: 8px;
      background: var(--accent);
      color: var(--bg-primary);
      width: 20px;
      height: 20px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.75rem;
      font-weight: 700;
      border: none;
      cursor: pointer;
      transition: background 0.2s, color 0.2s;
      padding: 0;
      line-height: 1;
      flex-shrink: 0;
    }
    .rec-num:hover { background: var(--green); color: #fff; }
    .rec-list li.rec-done .rec-num {
      background: var(--green);
      color: transparent;
      font-size: 0;
    }
    .rec-list li.rec-done .rec-num::after { content: '✓'; font-size: 0.8rem; color: #fff; }
    .rec-list li.rec-done { opacity: 0.45; text-decoration: line-through; }

    .hc-rec-mark-btn {
      position: absolute !important;
      left: 8px !important;
      top: 8px !important;
      width: 18px !important;
      height: 18px !important;
      border-radius: 3px !important;
      border: 2px solid var(--accent) !important;
      background: transparent !important;
      font-size: 0 !important;
      padding: 0 !important;
      float: none;
      margin-right: 0;
      transition: background 0.2s, border-color 0.2s;
    }
    .hc-rec-mark-btn::before { content: ''; }
    .hc-rec-mark-btn:hover { background: rgba(167,139,250,0.2) !important; }
    .rec-list li.rec-done .hc-rec-mark-btn { background: var(--green) !important; border-color: var(--green) !important; }
    .rec-list li.rec-done .hc-rec-mark-btn::before { content: ''; }
    .rec-list li.rec-done .hc-rec-mark-btn::after { content: '✓'; font-size: 0.75rem; color: #fff; line-height: 1; }

    .rec-list li:last-child { border-bottom: none; }
    .section-label-done { opacity: 0.45; text-decoration: line-through; }

    .rec-section { margin-bottom: 16px; }

    .rec-section-title {
      font-size: 0.85rem;
      font-weight: 700;
      color: var(--text-primary);
      margin-bottom: 8px;
      padding: 6px 10px;
      border-radius: 6px;
      cursor: pointer;
      user-select: none;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .rec-section-title:hover { opacity: 0.85; }

    .rec-section-title.critical-rec      { background: rgba(239,68,68,0.15);  color: var(--red); }
    .rec-section-title.high-rec          { background: rgba(245,158,11,0.15); color: var(--yellow); }
    .rec-section-title.medium-rec        { background: rgba(234,179,8,0.15); color: var(--medium-yellow); }
    .rec-section-title.ongoing-rec       { background: rgba(34,197,94,0.15);  color: var(--green); }
    .rec-section-title.informational-rec { background: rgba(59,130,246,0.15); color: var(--blue); }

    .risk-divider { border: none; border-top: 1px solid var(--border-color); margin: 8px 0 16px 0; }

    .history-section { margin-top: 24px; }

    .history-section h3 {
      color: #888;
      font-size: 0.85rem;
      text-transform: uppercase;
      letter-spacing: 1px;
      margin-bottom: 12px;
    }

    .history-item {
      background: var(--bg-secondary);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      padding: 12px 16px;
      margin-bottom: 8px;
      font-size: 0.85rem;
      color: var(--text-dim);
      cursor: pointer;
      transition: background 0.3s, border-color 0.3s;
    }

    .history-item:hover { border-color: #555; color: var(--text-muted); }

    .history-chevron {
      background: none;
      border: none;
      color: var(--text-muted);
      cursor: pointer;
      font-size: 10px;
      margin-left: 4px;
      padding: 0 2px;
      vertical-align: middle;
      line-height: 1;
    }
    .history-chevron:hover { color: var(--text-primary); }

    /* ============ SECTION TITLE LAYOUT ============ */
    .section-title-left  { display:flex; align-items:center; gap:8px; }
    .section-title-right { display:flex; align-items:center; gap:8px; }

    /* ============ RISK CARD LAYOUT ============ */
    .risk-header-right   { display:flex; align-items:center; gap:8px; }
    .mb-8                { margin-bottom:8px; }

    /* ============ SECTION CONTROL BUTTONS ============ */
    .section-ctrl-row { display:flex; gap:8px; }
    .section-ctrl-btn {
      background:none; border:1px solid var(--border-color);
      color:var(--text-dim); padding:4px 10px;
      border-radius:6px; cursor:pointer; font-size:0.75rem;
      transition:all 0.2s;
    }
    .section-ctrl-btn:hover { border-color:var(--text-muted); color:var(--text-primary); }
    .section-ctrl-btn.active { border-color:var(--accent); color:var(--accent); }

    /* ============ RISK STATS BAR ============ */
    .risk-stats-bar { display:flex; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
    .stat-badge {
      padding:3px 10px; border-radius:12px; font-size:0.72rem; font-weight:600;
      letter-spacing:0.02em;
    }
    .stat-badge.critical, .stat-badge.stat-critical           { background:rgba(239,68,68,0.15);  color:var(--red);    border:1px solid rgba(239,68,68,0.3); }
    .stat-badge.high,     .stat-badge.stat-high               { background:rgba(245,158,11,0.15); color:var(--yellow); border:1px solid rgba(245,158,11,0.3); }
    .stat-badge.medium,   .stat-badge.stat-medium             { background:rgba(234,179,8,0.15);  color:var(--medium-yellow); border:1px solid rgba(234,179,8,0.3); }
    .stat-badge.low,      .stat-badge.stat-low                { background:rgba(34,197,94,0.15);  color:var(--green);  border:1px solid rgba(34,197,94,0.3); }
    .stat-badge.informational, .stat-badge.stat-informational { background:rgba(59,130,246,0.15); color:var(--blue);   border:1px solid rgba(59,130,246,0.3); }

    /* ============ MITRE ATT&CK TACTIC CARDS ============ */
    .mitre-tactic-grid   { display:flex; flex-wrap:wrap; gap:12px; }
    .mitre-tactic-card   {
      background:var(--tactic-bg, rgba(167,139,250,0.1));
      border:1px solid var(--tactic-border, rgba(167,139,250,0.3));
      border-radius:8px; min-width:160px; flex:1; overflow:hidden;
    }
    .mitre-tactic-header {
      background:var(--tactic-header, #a78bfa);
      padding:6px 10px; font-size:0.75rem; font-weight:700;
      color:#ffffff; text-transform:uppercase; letter-spacing:0.5px;
    }
    .mitre-tactic-body   { padding:8px; }
    .mitre-technique     {
      padding:4px 6px; margin-bottom:3px;
      background:var(--bg-secondary); border-radius:4px;
      font-size:0.78rem; color:var(--text-muted); line-height:1.3;
    }
    .mitre-technique-id  {
      color:var(--tactic-header, #a78bfa);
      font-family:monospace; font-size:0.72rem; font-weight:600;
    }
    .mitre-technique-name { color:var(--text-muted); }

    /* Tactic color themes */
    .mitre-tactic--initial-access     { --tactic-bg:rgba(239,68,68,0.15);  --tactic-border:rgba(239,68,68,0.4);  --tactic-header:#ef4444; }
    .mitre-tactic--execution           { --tactic-bg:rgba(245,158,11,0.15); --tactic-border:rgba(245,158,11,0.4); --tactic-header:#f59e0b; }
    .mitre-tactic--persistence         { --tactic-bg:rgba(234,179,8,0.15);  --tactic-border:rgba(234,179,8,0.4);  --tactic-header:#eab308; }
    .mitre-tactic--privilege-escalation{ --tactic-bg:rgba(249,115,22,0.15); --tactic-border:rgba(249,115,22,0.4); --tactic-header:#f97316; }
    .mitre-tactic--defense-evasion     { --tactic-bg:rgba(168,85,247,0.15); --tactic-border:rgba(168,85,247,0.4); --tactic-header:#a855f7; }
    .mitre-tactic--credential-access   { --tactic-bg:rgba(236,72,153,0.15); --tactic-border:rgba(236,72,153,0.4); --tactic-header:#ec4899; }
    .mitre-tactic--discovery           { --tactic-bg:rgba(59,130,246,0.15); --tactic-border:rgba(59,130,246,0.4); --tactic-header:#3b82f6; }
    .mitre-tactic--lateral-movement    { --tactic-bg:rgba(20,184,166,0.15); --tactic-border:rgba(20,184,166,0.4); --tactic-header:#14b8a6; }
    .mitre-tactic--collection          { --tactic-bg:rgba(16,185,129,0.15); --tactic-border:rgba(16,185,129,0.4); --tactic-header:#10b981; }
    .mitre-tactic--command-and-control { --tactic-bg:rgba(99,102,241,0.15); --tactic-border:rgba(99,102,241,0.4); --tactic-header:#6366f1; }
    .mitre-tactic--exfiltration        { --tactic-bg:rgba(239,68,68,0.15);  --tactic-border:rgba(239,68,68,0.4);  --tactic-header:#ef4444; }
    .mitre-tactic--impact              { --tactic-bg:rgba(220,38,38,0.15);  --tactic-border:rgba(220,38,38,0.4);  --tactic-header:#dc2626; }

    /* ============ EXECUTIVE SUMMARY STATS ============ */
    .intel-reports-box    { background:var(--bg-secondary); border-radius:8px; padding:16px; margin-bottom:16px; border:1px solid var(--border-color); }
    .intel-reports-header { display:flex; align-items:center; gap:8px; margin-bottom:12px; }
    .intel-reports-label  { font-size:0.85rem; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:1px; }
    .intel-stat-grid      { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
    .intel-stat-cell      { text-align:center; background:var(--bg-tertiary); border-radius:8px; padding:12px; }
    .intel-stat-count     { font-size:2rem; font-weight:700; color:var(--accent); line-height:1; }
    .intel-stat-count--yellow { color:var(--yellow); }
    .intel-stat-label     { font-size:0.7rem; color:var(--text-muted); margin-top:4px; text-transform:uppercase; letter-spacing:1px; }
    .intel-date-range     { background:var(--bg-tertiary); border-radius:8px; padding:12px; }
    .intel-date-label     { font-size:0.75rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:1px; margin-bottom:8px; }
    .intel-date-value     { color:var(--text-secondary); }
    .intel-type-grid      { display:grid; grid-template-columns:1fr 1fr; gap:4px; }
    .intel-type-row       { display:flex; justify-content:space-between; font-size:0.78rem; padding:3px 6px; background:var(--bg-secondary); border-radius:4px; }
    .intel-type-key       { color:var(--text-muted); }
    .intel-type-val       { color:var(--accent); font-weight:700; }
    .intel-source-item    { font-family:monospace; font-size:0.82rem; color:#22c55e; }

    /* ============ SOURCES SECTION ============ */
    .src-group            { margin-bottom:16px; }
    .src-group-header     { display:flex; align-items:center; gap:8px; margin-bottom:8px; padding:6px 10px; border-radius:6px; }
    .src-group-list       { padding-left:8px; }
    .src-item             { display:flex; align-items:flex-start; gap:8px; padding:6px 8px; margin-bottom:4px; background:var(--bg-secondary); border-radius:6px; border-left:3px solid var(--src-color, #666); }
    .src-item-id          { font-family:monospace; font-size:0.78rem; font-weight:700; white-space:nowrap; min-width:100px; color:var(--src-color, #666); }
    .src-item-title       { font-size:0.82rem; color:var(--text-muted); line-height:1.4; }
    .src-count            { font-size:0.75rem; color:var(--text-muted); margin-left:auto; }
    /* Source type color themes */
    .src-type--security-alert      { --src-color:#ef4444; background:rgba(239,68,68,0.1);  border:1px solid rgba(239,68,68,0.3); }
    .src-type--intelligence-report { --src-color:#3b82f6; background:rgba(59,130,246,0.1); border:1px solid rgba(59,130,246,0.3); }
    .src-type--intelligence-tracking { --src-color:#a78bfa; background:rgba(167,139,250,0.1); border:1px solid rgba(167,139,250,0.3); }
    .src-type--weekly-report       { --src-color:#22c55e; background:rgba(34,197,94,0.1);  border:1px solid rgba(34,197,94,0.3); }
    .src-type--daily-report        { --src-color:#f59e0b; background:rgba(245,158,11,0.1); border:1px solid rgba(245,158,11,0.3); }
    .src-type--detection-report    { --src-color:#f97316; background:rgba(249,115,22,0.1); border:1px solid rgba(249,115,22,0.3); }
    .src-type--sector-report       { --src-color:#14b8a6; background:rgba(20,184,166,0.1); border:1px solid rgba(20,184,166,0.3); }
    .src-type--intelligence-advisory { --src-color:#ec4899; background:rgba(236,72,153,0.1); border:1px solid rgba(236,72,153,0.3); }
    .src-type--annual-report       { --src-color:#6366f1; background:rgba(99,102,241,0.1); border:1px solid rgba(99,102,241,0.3); }
    .src-type--other               { --src-color:#666;    background:rgba(100,100,100,0.1); border:1px solid rgba(100,100,100,0.3); }
    /* Source label color (matches --src-color but needs to inherit for the header span) */
    .src-group-header .src-label   { font-size:0.8rem; font-weight:700; text-transform:uppercase; letter-spacing:0.5px; color:var(--src-color, #666); }

    /* ============ FALLBACK MESSAGES ============ */
    .msg-waiting  { color:#888; text-align:center; padding:60px 0; }
    .msg-nuked    { color:#ef4444; text-align:center; padding:60px 0; font-size:1.1rem; }
    .msg-nuked-sub { color:#666; text-align:center; padding:0 0 60px 0; }
    .msg-pre      { color:#c0c0c0; overflow-x:auto; }

    /* ============ FADE ANIMATION ============ */
    #output-content { transition: opacity 0.5s; }
    #output-content.fading { opacity: 0; }

    /* ============ NOTIFICATION BUTTON ACTIVE ============ */
    #notif-btn.notif-active { opacity: 1; }

    /* ============ HISTORY ITEM LAYOUT ============ */
    .history-item-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
    }
    .history-chevron {
      font-size: 11px;
      margin-left: 8px;
      flex-shrink: 0;
      color: var(--text-muted);
    }

    /* ============ SECTION NAV DIVIDER ============ */
    .section-nav-divider {
      width: 1px;
      background: var(--border-color);
      margin: 0 2px;
      align-self: stretch;
      margin-left: auto;
    }

    /* ============ HIDDEN BUTTON STATE ============ */
    .btn-hidden { display:none !important; }

    /* ============ COPY BUTTONS ============ */
    .copy-btn {
      position:absolute; right:4px; top:50%; transform:translateY(-50%);
      background:var(--bg-secondary); border:1px solid var(--border-color);
      color:var(--text-dim); border-radius:4px; padding:1px 6px;
      font-size:0.65rem; cursor:pointer; opacity:0;
      transition:opacity 0.15s; line-height:1.6; white-space:nowrap;
    }
    .ioc-item:hover .copy-btn,
    .mitre-tag:hover .copy-btn,
    .actor-tag:hover .copy-btn { opacity:1; }
    .copy-btn.copied { color:var(--green); border-color:var(--green); opacity:1 !important; }

    /* ============ IOC PIVOT BUTTONS ============ */
    .pivot-btns {
      display: inline-flex;
      gap: 3px;
      margin-left: 6px;
      opacity: 0;
      transition: opacity 0.15s;
      vertical-align: middle;
    }
    .ioc-item:hover .pivot-btns { opacity: 1; }
    .pivot-btn {
      background: var(--bg-secondary);
      border: 1px solid var(--border-color);
      color: var(--accent);
      border-radius: 3px;
      padding: 1px 5px;
      font-size: 0.6rem;
      cursor: pointer;
      line-height: 1.4;
      white-space: nowrap;
      font-family: inherit;
    }
    .pivot-btn:hover {
      background: var(--accent);
      color: var(--bg-primary);
      border-color: var(--accent);
    }

    /* ============ ACTIONED FINDINGS ============ */
    .actioned-btn {
      background:none; border:1px solid var(--border-color);
      color:var(--text-dim); border-radius:4px; padding:2px 8px;
      font-size:0.7rem; cursor:pointer; transition:all 0.2s;
      white-space:nowrap;
    }
    .actioned-btn:hover { border-color:var(--green); color:var(--green); }
    .actioned-btn.is-actioned {
      background:rgba(34,197,94,0.1); border-color:var(--green); color:var(--green);
    }
    .risk-card.is-actioned .risk-card-body { opacity:0.4; }
    .risk-card.is-actioned .risk-title { text-decoration:line-through; color:var(--text-dim); }
    .risk-card.is-actioned .rating-badge { opacity:0.5; }
    .action-card.is-actioned .action-card-body { opacity:0.4; }
    .action-card.is-actioned .action-card-header > span:first-child { text-decoration:line-through; color:var(--text-dim); }

    /* ============ STALE REPORT WARNING ============ */
    #stale-banner {
      display:none; background:rgba(245,158,11,0.08);
      border:1px solid var(--yellow); border-radius:8px;
      padding:8px 16px; margin-top:10px; font-size:0.78rem;
      color:var(--yellow); text-align:center;
    }
    #stale-banner.visible { display:block; }
    #ttl-badge.expiring-critical { border-color:var(--red) !important; color:var(--red) !important; }

    /* ============ ABLY RECONNECTION STATES ============ */
    #status-dot.reconnecting { background:var(--yellow); animation:pulse 1.2s infinite; }
    #status-dot.suspended    { background:var(--red);    animation:pulse 1.5s infinite; }

    /* ============ HEALTH INDICATOR ============ */
    #health-dot {
      display:inline-block; width:8px; height:8px; border-radius:50%;
      background:var(--red); animation:pulse 2s infinite;
      margin-left:6px; vertical-align:middle; cursor:default;
    }
    #health-dot.btn-hidden { display:none !important; }

    /* ============ IN-PAGE SEARCH ============ */
    #search-wrap          { display:flex; align-items:center; gap:4px; }
    #search-wrap.btn-hidden { display:none !important; }
    #report-search        {
      background:var(--bg-secondary); border:1px solid var(--border-color);
      color:var(--text-primary); border-radius:6px; padding:4px 8px;
      font-size:0.8rem; width:160px; outline:none;
      transition:border-color 0.2s, width 0.2s;
    }
    #report-search:focus  { border-color:var(--accent); width:220px; }
    #search-count         { font-size:0.7rem; color:var(--text-dim); white-space:nowrap; text-align:center; }
    #search-prev, #search-next { background:none; border:1px solid var(--border-color); color:var(--text-muted); border-radius:4px; cursor:pointer; padding:2px 6px; font-size:0.8rem; line-height:1; }
    #search-prev:hover, #search-next:hover { color:var(--text-primary); border-color:var(--text-muted); }
    #search-clear         { background:none; border:none; color:var(--text-muted); cursor:pointer; font-size:0.9rem; padding:2px 4px; }
    #search-clear:hover   { color:var(--text-primary); }
    mark.search-hl        { background:rgba(245,158,11,0.35); color:inherit; border-radius:2px; padding:0 1px; }
    mark.search-hl.current { background:rgba(245,158,11,0.8); outline:1px solid var(--yellow); }

    /* ============ KEYBOARD SHORTCUTS MODAL ============ */
    .modal-overlay        { display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.55); z-index:2000; align-items:center; justify-content:center; }
    .modal-overlay.visible { display:flex; }
    .modal-card           { background:var(--bg-secondary); border:1px solid var(--border-color); border-radius:12px; padding:24px; min-width:320px; max-width:480px; width:90%; }
    .modal-header         { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
    .modal-header h2      { font-size:1rem; font-weight:700; color:var(--text-primary); margin:0; }
    .modal-close          { background:none; border:none; color:var(--text-dim); cursor:pointer; font-size:1.1rem; padding:2px 6px; border-radius:4px; }
    .modal-close:hover    { color:var(--text-primary); background:var(--bg-tertiary); }
    .shortcuts-table      { width:100%; border-collapse:collapse; }
    .shortcuts-table tr   { border-bottom:1px solid var(--border-color); }
    .shortcuts-table tr:last-child { border-bottom:none; }
    .shortcuts-table td   { padding:8px 4px; font-size:0.85rem; color:var(--text-muted); vertical-align:middle; }
    .shortcuts-table td:first-child { width:45%; white-space:nowrap; }
    kbd                   { background:var(--bg-tertiary); border:1px solid var(--border-color); border-bottom-width:2px; border-radius:4px; padding:1px 6px; font-family:monospace; font-size:0.78rem; color:var(--text-primary); }
    .risk-card--focused   { outline:2px solid var(--accent); outline-offset:2px; }

    @media (max-width: 600px) {
      .exec-grid { grid-template-columns: 1fr; }
      .evidence-grid { grid-template-columns: 1fr; }
      .risk-header { flex-direction: column; align-items: flex-start; }
    }
    .risk-card-header {
      cursor: pointer;
      user-select: none;
      padding: 20px 20px 0 20px;
    }

    .risk-card-header:hover {
      opacity: 0.9;
    }

    .risk-card-body {
      overflow: hidden;
      transition: height 0.3s ease, opacity 0.3s ease;
      opacity: 1;
      padding: 0 20px 20px 20px;
    }

    .risk-card-body.collapsed {
      opacity: 0;
      height: 0 !important;
    }

    .risk-chevron {
      transition: transform 0.3s ease;
      display: inline-block;
      margin-left: 8px;
      font-size: 0.8rem;
      color: var(--text-dim);
    }

    .risk-chevron.collapsed {
      transform: rotate(-90deg);
    }

    /* ============================================================
       HEALTH CHECK REPORT STYLES
    ============================================================ */

    /* --- Metadata bar --- */
    .hc-meta-bar {
      background: var(--bg-secondary);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      padding: 14px 18px;
      margin-bottom: 18px;
      display: flex;
      flex-wrap: wrap;
      align-items: baseline;
      gap: 8px 20px;
    }
    .hc-meta-title {
      font-size: 1.1rem;
      font-weight: 700;
      color: var(--text-primary);
      margin-right: 8px;
    }
    .hc-meta-details {
      display: flex;
      flex-wrap: wrap;
      gap: 6px 16px;
      align-items: center;
    }
    .hc-meta-item {
      font-size: 0.8rem;
      color: var(--text-dim);
    }
    .hc-meta-item strong {
      color: var(--text-muted);
    }
    .hc-meta-mono {
      font-family: 'Courier New', monospace;
      font-size: 0.75rem;
      color: var(--text-muted);
    }
    .hc-meta-source-tag {
      display: inline-block;
      background: rgba(167,139,250,0.15);
      color: var(--accent);
      border: 1px solid rgba(167,139,250,0.3);
      border-radius: 4px;
      padding: 1px 6px;
      font-size: 0.72rem;
    }

    /* --- Status badges --- */
    .hc-status-badge {
      display: inline-block;
      border-radius: 4px;
      padding: 2px 8px;
      font-size: 0.75rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }
    .hc-status-badge--lg {
      font-size: 0.85rem;
      padding: 4px 12px;
      border-radius: 6px;
    }
    .hc-status--critical {
      background: rgba(239,68,68,0.2);
      color: #f87171;
      border: 1px solid rgba(239,68,68,0.4);
    }
    .hc-status--warning {
      background: rgba(245,158,11,0.2);
      color: #fbbf24;
      border: 1px solid rgba(245,158,11,0.4);
    }
    .hc-status--healthy {
      background: rgba(34,197,94,0.2);
      color: #4ade80;
      border: 1px solid rgba(34,197,94,0.4);
    }
    .hc-status--unknown {
      background: rgba(100,116,139,0.2);
      color: #94a3b8;
      border: 1px solid rgba(100,116,139,0.4);
    }

    /* --- Executive summary layout --- */
    .hc-exec-layout {
      display: flex;
      gap: 24px;
      flex-wrap: wrap;
      align-items: flex-start;
    }
    .hc-exec-right {
      flex: 1;
      min-width: 220px;
    }
    .hc-score-rationale {
      font-size: 0.88rem;
      color: var(--text-muted);
      line-height: 1.6;
      margin-bottom: 16px;
    }

    /* --- Score gauge --- */
    .hc-score-gauge-wrap {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      background: var(--bg-tertiary);
      border: 1px solid var(--border-color);
      border-radius: 12px;
      padding: 20px 28px;
      min-width: 140px;
      flex-shrink: 0;
    }
    .hc-score-gauge {
      font-size: 3.2rem;
      font-weight: 900;
      line-height: 1;
    }
    .hc-score-gauge--green { color: #4ade80; }
    .hc-score-gauge--amber { color: #fbbf24; }
    .hc-score-gauge--red   { color: #f87171; }
    .hc-score-denom {
      font-size: 1rem;
      color: var(--text-dim);
      font-weight: 400;
    }
    .hc-score-label {
      margin-top: 6px;
      font-size: 0.75rem;
      color: var(--text-dim);
      text-transform: uppercase;
      letter-spacing: 0.07em;
    }

    /* --- Category scorecard grid --- */
    .hc-category-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
      gap: 12px;
      margin-top: 4px;
    }
    .hc-category-card {
      background: var(--bg-tertiary);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      padding: 12px 14px;
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .hc-category-card-icon {
      font-size: 1.3rem;
    }
    .hc-category-card-label {
      font-size: 0.75rem;
      color: var(--text-dim);
      text-transform: uppercase;
      letter-spacing: 0.05em;
    }
    .hc-category-card-score {
      font-size: 1.5rem;
      font-weight: 800;
      line-height: 1;
    }
    .hc-category-card-denom {
      font-size: 0.75rem;
      color: var(--text-dim);
    }
    .hc-category-card-count {
      font-size: 0.72rem;
      color: var(--text-dim);
      margin-top: 2px;
    }

    /* --- Category detail headers --- */
    .hc-cat-header {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
      margin-bottom: 10px;
    }
    .hc-cat-count {
      font-size: 0.8rem;
      color: var(--text-dim);
    }

    /* --- Stats bar --- */
    .hc-stats-bar {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 14px;
    }
    .hc-stat-pill {
      display: flex;
      flex-direction: column;
      align-items: center;
      background: var(--bg-tertiary);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      padding: 8px 14px;
      min-width: 70px;
    }
    .hc-stat-pill--critical { border-color: rgba(239,68,68,0.4); }
    .hc-stat-pill--high     { border-color: rgba(249,115,22,0.4); }
    .hc-stat-pill--medium   { border-color: rgba(245,158,11,0.4); }
    .hc-stat-pill--low      { border-color: rgba(34,197,94,0.4); }
    .hc-stat-num {
      font-size: 1.4rem;
      font-weight: 800;
      line-height: 1;
      color: var(--text-primary);
    }
    .hc-stat-pill--critical .hc-stat-num { color: #f87171; }
    .hc-stat-pill--high     .hc-stat-num { color: #fb923c; }
    .hc-stat-pill--medium   .hc-stat-num { color: #fbbf24; }
    .hc-stat-pill--low      .hc-stat-num { color: #4ade80; }
    .hc-stat-lbl {
      font-size: 0.68rem;
      color: var(--text-dim);
      text-transform: uppercase;
      letter-spacing: 0.06em;
      margin-top: 3px;
    }

    /* --- Generic HC table --- */
    .hc-table-wrap {
      overflow-x: auto;
      margin-bottom: 16px;
      border-radius: 8px;
      border: 1px solid var(--border-color);
    }
    .hc-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.82rem;
    }
    .hc-table thead th {
      background: var(--bg-tertiary);
      color: var(--text-dim);
      font-size: 0.72rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      padding: 8px 12px;
      text-align: left;
      border-bottom: 1px solid var(--border-color);
      white-space: nowrap;
    }
    .hc-table tbody tr:nth-child(even) {
      background: rgba(255,255,255,0.02);
    }
    .hc-table tbody tr:hover {
      background: rgba(167,139,250,0.06);
    }
    .hc-table tbody td {
      padding: 7px 12px;
      border-bottom: 1px solid rgba(42,45,58,0.5);
      color: var(--text-muted);
      vertical-align: top;
    }
    .hc-table tbody tr:last-child td {
      border-bottom: none;
    }
    .hc-mono {
      font-family: 'Courier New', monospace;
      font-size: 0.78rem;
    }
    .hc-note {
      font-size: 0.77rem;
      font-style: italic;
      color: var(--text-dim);
    }
    .hc-tbl-center {
      text-align: center;
    }
    .hc-tbl-basis {
      font-size: 0.75rem;
      color: var(--text-dim);
    }

    /* --- Entity type tags --- */
    .hc-entity-tag {
      display: inline-block;
      border-radius: 4px;
      padding: 1px 6px;
      font-size: 0.7rem;
      font-weight: 600;
      text-transform: uppercase;
    }
    .hc-entity-unmanaged {
      background: rgba(249,115,22,0.2);
      color: #fb923c;
      border: 1px solid rgba(249,115,22,0.35);
    }
    .hc-entity-unsupported {
      background: rgba(239,68,68,0.15);
      color: #f87171;
      border: 1px solid rgba(239,68,68,0.3);
    }

    /* --- Policy tags --- */
    .hc-policy-tag {
      display: inline-block;
      background: rgba(59,130,246,0.15);
      color: #60a5fa;
      border: 1px solid rgba(59,130,246,0.3);
      border-radius: 4px;
      padding: 1px 5px;
      font-size: 0.68rem;
      margin: 1px 2px;
    }
    .hc-no-prevent {
      color: #f87171;
      font-size: 0.75rem;
    }
    .hc-has-prevent {
      color: #4ade80;
      font-size: 0.75rem;
    }

    /* --- CVE table --- */
    .hc-cve-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.81rem;
    }
    .hc-cve-table thead th {
      background: var(--bg-tertiary);
      color: var(--text-dim);
      font-size: 0.7rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      padding: 8px 10px;
      text-align: left;
      border-bottom: 1px solid var(--border-color);
      white-space: nowrap;
    }
    .hc-cve-table tbody td {
      padding: 7px 10px;
      border-bottom: 1px solid rgba(42,45,58,0.5);
      color: var(--text-muted);
      vertical-align: top;
    }
    .hc-cve-table tbody tr:last-child td {
      border-bottom: none;
    }
    .hc-cve-critical {
      background: rgba(239,68,68,0.07);
    }
    .hc-cve-critical:hover {
      background: rgba(239,68,68,0.13);
    }
    .hc-cve-high {
      background: rgba(249,115,22,0.05);
    }
    .hc-cve-high:hover {
      background: rgba(249,115,22,0.1);
    }
    .hc-cve-id {
      font-family: 'Courier New', monospace;
      font-size: 0.78rem;
      color: var(--accent);
      white-space: nowrap;
    }
    .hc-cvss-cell {
      font-weight: 700;
      white-space: nowrap;
    }
    .hc-exploit-flag {
      display: inline-block;
      background: rgba(239,68,68,0.2);
      color: #f87171;
      border: 1px solid rgba(239,68,68,0.4);
      border-radius: 4px;
      padding: 1px 5px;
      font-size: 0.68rem;
      font-weight: 700;
      white-space: nowrap;
    }
    .hc-exploit-flag--potential {
      background: rgba(245,158,11,0.15);
      color: #fbbf24;
      border-color: rgba(245,158,11,0.35);
    }

    /* --- Primary affected host card --- */
    .hc-host-card {
      background: var(--bg-tertiary);
      border: 1px solid var(--border-color);
      border-radius: 8px;
      padding: 12px 16px;
      margin-bottom: 16px;
    }
    .hc-host-card-title {
      font-size: 0.75rem;
      text-transform: uppercase;
      letter-spacing: 0.07em;
      color: var(--text-dim);
      margin-bottom: 8px;
    }
    .hc-host-card-details {
      display: flex;
      flex-wrap: wrap;
      gap: 6px 20px;
    }
    .hc-host-detail {
      font-size: 0.82rem;
      color: var(--text-muted);
    }
    .hc-host-detail strong {
      color: var(--text-primary);
    }
    .hc-host-note {
      font-size: 0.8rem;
      color: var(--text-dim);
      font-style: italic;
      margin-top: 8px;
    }

    /* --- EOL software list --- */
    .hc-eol-list {
      list-style: none;
      padding: 0;
      margin-bottom: 16px;
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }
    .hc-eol-item {
      background: rgba(239,68,68,0.12);
      border: 1px solid rgba(239,68,68,0.3);
      color: #f87171;
      border-radius: 6px;
      padding: 4px 10px;
      font-size: 0.78rem;
    }

    /* --- KB context block --- */
    .hc-kb-context {
      background: rgba(59,130,246,0.06);
      border-left: 3px solid rgba(59,130,246,0.4);
      border-radius: 0 6px 6px 0;
      padding: 10px 14px;
      margin-bottom: 16px;
      font-size: 0.82rem;
      color: var(--text-muted);
      line-height: 1.6;
    }
    .hc-kb-icon {
      font-style: normal;
      margin-right: 4px;
    }

    /* --- Action plan items --- */
    .hc-action-text {
      font-weight: 600;
      color: var(--text-primary);
      font-size: 0.9rem;
      margin-bottom: 4px;
    }
    .hc-action-detail {
      font-size: 0.83rem;
      color: var(--text-muted);
      line-height: 1.55;
      margin-bottom: 6px;
    }
    .hc-action-hosts {
      font-size: 0.78rem;
      color: var(--text-dim);
      margin-bottom: 4px;
    }
    .hc-action-hosts strong {
      color: var(--text-muted);
    }
    .hc-action-kb {
      font-size: 0.75rem;
      color: var(--accent);
      font-family: 'Courier New', monospace;
    }

    /* --- Score breakdown table --- */
    .hc-score-breakdown-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.83rem;
      margin-bottom: 14px;
    }
    .hc-score-breakdown-table thead th {
      background: var(--bg-tertiary);
      color: var(--text-dim);
      font-size: 0.72rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      padding: 8px 12px;
      text-align: left;
      border-bottom: 1px solid var(--border-color);
    }
    .hc-score-breakdown-table tbody td {
      padding: 8px 12px;
      border-bottom: 1px solid rgba(42,45,58,0.5);
      color: var(--text-muted);
    }
    .hc-score-totals-row td {
      font-weight: 700;
      color: var(--text-primary);
      background: rgba(167,139,250,0.07);
      border-top: 1px solid var(--border-color);
    }
    .hc-score-notes {
      font-size: 0.8rem;
      color: var(--text-dim);
      font-style: italic;
      padding: 4px 2px;
    }

    /* --- KB criteria table --- */
    .hc-criteria-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.82rem;
    }
    .hc-criteria-table thead th {
      background: var(--bg-tertiary);
      color: var(--text-dim);
      font-size: 0.72rem;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      padding: 8px 12px;
      text-align: left;
      border-bottom: 1px solid var(--border-color);
    }
    .hc-criteria-table tbody td {
      padding: 7px 12px;
      border-bottom: 1px solid rgba(42,45,58,0.5);
      color: var(--text-muted);
    }
    .hc-criteria-table tbody tr:last-child td {
      border-bottom: none;
    }
    .hc-criteria-result {
      font-weight: 700;
      white-space: nowrap;
    }
    .hc-criteria-pass {
      color: #4ade80;
    }
    .hc-criteria-fail {
      color: #f87171;
    }

    /* --- Light mode overrides for HC elements --- */
    body.light-mode .hc-meta-bar {
      background: var(--bg-secondary);
    }
    body.light-mode .hc-score-gauge-wrap,
    body.light-mode .hc-category-card,
    body.light-mode .hc-stat-pill,
    body.light-mode .hc-host-card {
      background: var(--bg-tertiary);
    }
    body.light-mode .hc-table thead th,
    body.light-mode .hc-cve-table thead th,
    body.light-mode .hc-score-breakdown-table thead th,
    body.light-mode .hc-criteria-table thead th {
      background: #f0f2f5;
    }
    body.light-mode .hc-table tbody tr:nth-child(even) {
      background: rgba(0,0,0,0.025);
    }
    body.light-mode .hc-kb-context {
      background: rgba(37,99,235,0.06);
    }
    body.light-mode .hc-status--critical {
      background: rgba(220,38,38,0.12);
      color: #b91c1c;
      border-color: rgba(220,38,38,0.3);
    }
    body.light-mode .hc-status--warning {
      background: rgba(217,119,6,0.12);
      color: #b45309;
      border-color: rgba(217,119,6,0.3);
    }
    body.light-mode .hc-status--healthy {
      background: rgba(22,163,74,0.12);
      color: #166534;
      border-color: rgba(22,163,74,0.3);
    }
    body.light-mode .hc-score-gauge--green { color: #16a34a; }
    body.light-mode .hc-score-gauge--amber { color: #d97706; }
    body.light-mode .hc-score-gauge--red   { color: #dc2626; }
    body.light-mode .hc-category-card-score { color: inherit; }
    body.light-mode .hc-cve-id { color: var(--accent); }
    body.light-mode .hc-cve-critical { background: rgba(220,38,38,0.06); }
    body.light-mode .hc-cve-high     { background: rgba(234,88,12,0.05); }
    body.light-mode .hc-exploit-flag {
      background: rgba(220,38,38,0.12);
      color: #b91c1c;
    }
    body.light-mode .hc-exploit-flag--potential {
      background: rgba(217,119,6,0.12);
      color: #b45309;
    }
    body.light-mode .hc-eol-item {
      background: rgba(220,38,38,0.08);
      color: #b91c1c;
    }
    body.light-mode .hc-score-totals-row td {
      background: rgba(124,58,237,0.06);
    }
