/* ── Splash screen ─────────────────────── */
@keyframes splashDismiss {
  0%, 82%  { opacity:1; visibility:visible; }
  100%     { opacity:0; visibility:hidden; }
}
#splash {
  position:fixed; inset:0; z-index:9999;
  background:#0a0e1a;
  display:flex; align-items:center; justify-content:center;
  animation:splashDismiss 3.65s ease forwards;
  pointer-events:none;
}
#splash img { width:min(560px, 85vw); height:min(560px, 85vh); object-fit:contain; }
/* ─────────────────────────────────────── */

:root {
  --bg-dark:  #0a0e1a;
  --bg-card:  #111827;
  --bg-card2: #1a2236;
  --accent:   #00d4ff;
  --accent2:  #0066cc;
  --red:      #ff3b3b;
  --orange:   #ff8c00;
  --yellow:   #ffd700;
  --green:    #00e676;
  --cyan:     #00bcd4;
  --purple:   #b94fff;
  --text:     #e2e8f0;
  --muted:    #8892a4;
  --border:   #1e2d4a;

  /* Industry palette */
  --ind-energy:     #ff8c00;
  --ind-auto:       #00d4ff;
  --ind-health:     #e040fb;
  --ind-corp:       #ffd700;
  --ind-gov:        #00e676;
}
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html, body { min-height:100%; }
body {
  background: var(--bg-dark);
  color: var(--text);
  font-family: "Segoe UI", system-ui, sans-serif;
  min-height: 100vh;
}
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ── HEADER ── */
header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 24px; height: 60px;
  background: #060b14; border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 1000;
}
.brand { display:flex; align-items:center; gap:12px; }
.brand-icon {
  width:72px; height:72px; border-radius:8px;
  object-fit:contain; flex-shrink:0; display:block;
}
.modal-hero-icon {
  width:90px; height:90px; object-fit:contain;
  display:block; margin: 0 auto 10px; border-radius:8px;
}
.brand-name { font-size:18px; font-weight:700; letter-spacing:1px; }
.brand-name span { color: var(--accent); }
.brand-sub { font-size:10px; color:var(--muted); letter-spacing:2px; text-transform:uppercase; margin-top:-2px; }
.status-bar { display:flex; align-items:center; gap:16px; }
.live-badge {
  display:flex; align-items:center; gap:6px;
  background:rgba(0,230,118,.1); border:1px solid rgba(0,230,118,.3);
  border-radius:20px; padding:4px 12px;
  font-size:11px; font-weight:600; color:var(--green);
  text-transform:uppercase; letter-spacing:1px;
}
.live-dot { width:7px; height:7px; background:var(--green); border-radius:50%; animation:blink 1.2s infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.2} }
.threat-badge {
  padding:4px 14px; border-radius:20px; font-size:11px;
  font-weight:700; letter-spacing:1px; text-transform:uppercase; border:1px solid;
  color:var(--red); background:rgba(255,59,59,.1); border-color:rgba(255,59,59,.4);
}
.hdr-clock { font-size:12px; color:var(--muted); font-family:monospace; }
.refresh-countdown {
  font-size:11px; color:var(--accent); border-left:1px solid var(--border);
  padding-left:14px; font-variant-numeric:tabular-nums; min-width:60px; font-family:monospace;
}
.about-btn {
  background:rgba(0,212,255,.08); border:1px solid rgba(0,212,255,.25);
  color:var(--accent); border-radius:6px; padding:4px 12px;
  font-size:12px; cursor:pointer; transition:background .15s;
}
.about-btn:hover { background:rgba(0,212,255,.15); }

/* ── LAYOUT ── */
.layout {
  display: grid;
  grid-template-columns: 260px 1fr 260px;
  grid-template-rows: 1fr;
  height: calc(100vh - 60px);
  overflow: hidden;
}

/* ── PANELS ── */
.panel {
  background: var(--bg-card);
  border-right: 1px solid var(--border);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.panel.right { border-right:none; border-left:1px solid var(--border); }
.panel-header {
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--border);
  display:flex; align-items:center; justify-content:space-between;
  flex-shrink:0;
}
.panel-title { font-size:12px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--accent); }
.panel-body { flex:1; overflow-y:auto; padding:10px; }
.panel-body::-webkit-scrollbar { width:4px; }
.panel-body::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }

/* ── STATS STRIP ── */
.stats-strip { display:flex; gap:6px; flex-wrap:wrap; padding:10px 10px 0; }
.ss-item {
  flex:1; min-width:80px;
  background:var(--bg-card2); border:1px solid var(--border);
  border-radius:6px; padding:8px; text-align:center;
}
.ss-num { font-size:20px; font-weight:900; font-family:monospace; }
.ss-num.c { color:var(--red); }
.ss-num.h { color:var(--orange); }
.ss-num.a { color:var(--accent); }
.ss-label { font-size:9px; color:var(--muted); text-transform:uppercase; letter-spacing:1px; margin-top:2px; }

/* ── INDUSTRY CARDS (left panel) ── */
.industry-card {
  background: var(--bg-card2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: border-color .2s, background .2s;
  position: relative;
  overflow: hidden;
}
.industry-card::before {
  content: '';
  position: absolute; left:0; top:0; bottom:0; width:4px;
  border-radius: 10px 0 0 10px;
}
.industry-card.ind-energy::before   { background: var(--ind-energy); }
.industry-card.ind-auto::before     { background: var(--ind-auto); }
.industry-card.ind-health::before   { background: var(--ind-health); }
.industry-card.ind-corp::before     { background: var(--ind-corp); }
.industry-card.ind-gov::before      { background: var(--ind-gov); }
.industry-card:hover { border-color: var(--accent); background:#1f2e48; }
.industry-card.active-filter { border-color: var(--accent); background:#1a2d4a; }

.ind-card-header { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:8px; }
.ind-icon-name { display:flex; align-items:center; gap:10px; }
.ind-icon { font-size:24px; flex-shrink:0; }
.ind-name { font-size:13px; font-weight:700; color:var(--text); line-height:1.2; }
.ind-sub  { font-size:10px; color:var(--muted); margin-top:2px; }
.ind-score-badge {
  font-size:22px; font-weight:900; font-family:monospace;
  line-height:1; flex-shrink:0; padding:4px 8px;
  border-radius:6px;
}
.ind-score-badge.risk-critical { color:var(--red);    background:rgba(255,59,59,.12); }
.ind-score-badge.risk-high     { color:var(--orange); background:rgba(255,140,0,.12); }
.ind-score-badge.risk-elevated { color:var(--yellow); background:rgba(255,215,0,.12); }
.ind-score-badge.risk-medium   { color:var(--cyan);   background:rgba(0,188,212,.12); }

.ind-top-threat { font-size:10px; color:var(--muted); margin-bottom:6px; }
.ind-top-threat strong { color:var(--red); }
.ind-bar-wrap { height:4px; background:rgba(255,255,255,.07); border-radius:2px; margin-bottom:6px; }
.ind-bar { height:100%; border-radius:2px; }
.ind-energy .ind-bar    { background:linear-gradient(90deg, rgba(255,140,0,.6), var(--ind-energy)); }
.ind-auto .ind-bar      { background:linear-gradient(90deg, rgba(0,180,220,.6), var(--ind-auto)); }
.ind-health .ind-bar    { background:linear-gradient(90deg, rgba(200,50,240,.6), var(--ind-health)); }
.ind-corp .ind-bar      { background:linear-gradient(90deg, rgba(200,170,0,.6), var(--ind-corp)); }
.ind-gov .ind-bar       { background:linear-gradient(90deg, rgba(0,180,100,.6), var(--ind-gov)); }

.ind-meta { display:flex; gap:8px; flex-wrap:wrap; }
.ind-meta-pill {
  font-size:9px; font-weight:600; padding:2px 8px; border-radius:10px;
  background:rgba(0,212,255,.07); border:1px solid rgba(0,212,255,.18);
  color:var(--cyan); text-transform:uppercase; letter-spacing:.5px;
}

/* ── INDUSTRY FILTER (right panel) ── */
.industry-filter {
  display:flex; gap:4px; flex-wrap:wrap;
  padding:8px 10px; border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.ind-filter-btn {
  font-size:11px; font-weight:600; padding:4px 10px;
  border-radius:16px; border:1px solid var(--border);
  background:transparent; color:var(--muted); cursor:pointer;
  transition:all .15s;
}
.ind-filter-btn:hover { border-color:var(--accent); color:var(--accent); }
.ind-filter-btn.active {
  background:rgba(0,212,255,.12); border-color:var(--accent);
  color:var(--accent);
}

/* ── CENTER HEATMAP ── */
.heatmap-container {
  position: relative;
  background: var(--bg-dark);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.heatmap-title-bar {
  padding: 14px 20px 10px;
  border-bottom: 1px solid var(--border);
  display:flex; align-items:center; justify-content:space-between;
  flex-shrink:0;
}
.heatmap-title { font-size:13px; font-weight:700; color:var(--text); }
.heatmap-sub { font-size:10px; color:var(--muted); margin-top:2px; }
.heatmap-wrap { flex:1; overflow-y:auto; padding:16px; }
.heatmap-wrap::-webkit-scrollbar { width:4px; }
.heatmap-wrap::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }

/* ── SECTION HEADERS ── */
.section-label {
  font-size:10px; font-weight:700; letter-spacing:2px;
  text-transform:uppercase; color:var(--muted);
  padding: 4px 0 10px; border-bottom:1px solid var(--border);
  margin-bottom:14px;
}
.section-label-mt { margin-top:24px; }

/* ── MATRIX HEATMAP ── */
.matrix-scroll-wrap {
  overflow-x: auto;
  margin-bottom: 24px;
  border: 1px solid var(--border);
  border-radius: 10px;
}
.matrix-scroll-wrap::-webkit-scrollbar { height:4px; }
.matrix-scroll-wrap::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }

.matrix-table { display:grid; min-width:fit-content; }

/* Header row */
.mx-header-row {
  display: contents;
}
.mx-corner-cell {
  background: #060b14;
  border-bottom: 1px solid var(--border);
  border-right: 1px solid var(--border);
  padding: 10px 12px;
  font-size:9px; font-weight:700; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--muted);
  position: sticky; left:0; z-index:10;
  display:flex; align-items:flex-end;
}
.mx-actor-header {
  background: #060b14;
  border-bottom: 1px solid var(--border);
  border-right: 1px solid rgba(30,45,74,.4);
  padding: 10px 8px 8px;
  text-align:center; cursor:pointer;
  transition: background .15s;
  min-width: 110px;
}
.mx-actor-header:hover { background: rgba(0,212,255,.05); }
.mx-actor-flag { font-size:16px; display:block; margin-bottom:3px; }
.mx-actor-name { font-size:10px; font-weight:700; color:var(--text); line-height:1.2; }
.mx-actor-type {
  font-size:8px; color:var(--muted); text-transform:uppercase; margin-top:2px;
  letter-spacing:.4px;
}

/* Industry rows */
.mx-industry-label {
  background: var(--bg-card);
  border-bottom: 1px solid rgba(30,45,74,.5);
  border-right: 1px solid var(--border);
  padding: 8px 12px;
  display:flex; align-items:center; gap:10px;
  position:sticky; left:0; z-index:5;
  cursor:pointer; min-width:155px;
  transition: background .15s;
}
.mx-industry-label:hover { background:#1f2e48; }
.mx-ind-icon { font-size:16px; flex-shrink:0; }
.mx-ind-text { flex:1; min-width:0; }
.mx-ind-name { font-size:11px; font-weight:700; color:var(--text); line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mx-ind-score {
  font-size:11px; font-weight:900; font-family:monospace;
  margin-top:3px;
}
.mx-ind-score.risk-critical { color:var(--red); }
.mx-ind-score.risk-high     { color:var(--orange); }
.mx-ind-score.risk-elevated { color:var(--yellow); }
.mx-ind-score.risk-medium   { color:var(--cyan); }

.mx-cell {
  border-bottom: 1px solid rgba(30,45,74,.4);
  border-right: 1px solid rgba(30,45,74,.3);
  padding: 8px;
  text-align:center; cursor:pointer;
  transition: transform .12s, box-shadow .12s, border-color .12s;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-width:110px; min-height:56px;
}
.mx-cell:hover {
  transform:scale(1.05); z-index:2; position:relative;
  box-shadow:0 0 14px rgba(0,212,255,.2);
  border-color:rgba(0,212,255,.4);
}
.mx-cell.risk-critical { background:rgba(255,59,59,.18); }
.mx-cell.risk-high     { background:rgba(255,140,0,.14); }
.mx-cell.risk-elevated { background:rgba(255,215,0,.10); }
.mx-cell.risk-medium   { background:rgba(0,188,212,.08); }

.mx-cell-score { font-size:16px; font-weight:900; font-family:monospace; line-height:1; }
.mx-cell.risk-critical .mx-cell-score { color:var(--red); }
.mx-cell.risk-high     .mx-cell-score { color:var(--orange); }
.mx-cell.risk-elevated .mx-cell-score { color:var(--yellow); }
.mx-cell.risk-medium   .mx-cell-score { color:var(--cyan); }
.mx-cell-label { font-size:8px; color:var(--muted); text-transform:uppercase; margin-top:2px; letter-spacing:.3px; }

/* ── TRENDS STRIP ── */
.trends-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:24px; }
.trend-card {
  background:var(--bg-card2); border:1px solid var(--border);
  border-radius:8px; padding:12px;
}
.trend-label { font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:1px; margin-bottom:4px; }
.trend-value { font-size:13px; font-weight:700; color:var(--text); }
.trend-delta { font-size:10px; margin-top:2px; }
.delta-up   { color:var(--red); }
.delta-down { color:var(--green); }

/* ── TACTICS TABLE ── */
.tactics-table { width:100%; border-collapse:collapse; font-size:12px; margin-bottom:24px; }
.tactics-table th {
  text-align:left; padding:8px 10px;
  background:var(--bg-card2); color:var(--muted);
  font-size:10px; text-transform:uppercase; letter-spacing:1px;
  border-bottom:1px solid var(--border);
}
.tactics-table td { padding:8px 10px; border-bottom:1px solid rgba(30,45,74,.6); vertical-align:top; }
.tactics-table tr:last-child td { border-bottom:none; }
.tactics-table tr:hover td { background:rgba(255,255,255,.02); }
.tactic-name { font-weight:700; color:var(--accent); }
.tactic-actors { color:var(--muted); font-size:11px; }
.tactic-pct { font-size:11px; font-weight:700; margin-bottom:3px; color:var(--text); }
.tactic-bar-wrap { margin-top:4px; height:4px; background:rgba(255,255,255,.07); border-radius:2px; }
.tactic-bar { height:100%; border-radius:2px; background:linear-gradient(90deg, var(--accent2), var(--accent)); }

/* ── ACTIVITY FEED (right panel) ── */
.feed-item {
  display:flex; gap:10px;
  padding:9px 0; border-bottom:1px solid rgba(30,45,74,.6);
  font-size:11px;
}
.feed-item:last-child { border-bottom:none; }
.feed-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; margin-top:3px; }
.feed-dot.c { background:var(--red); box-shadow:0 0 6px var(--red); }
.feed-dot.h { background:var(--orange); box-shadow:0 0 6px var(--orange); }
.feed-dot.m { background:var(--yellow); }
.feed-content {}
.feed-actor  { font-weight:700; color:var(--text); }
.feed-detail { color:var(--muted); margin-top:2px; line-height:1.4; }
.feed-meta   { display:flex; gap:8px; margin-top:3px; flex-wrap:wrap; }
.feed-time   { font-size:9px; color:var(--muted); font-family:monospace; }
.feed-industry-tag {
  font-size:9px; padding:1px 6px; border-radius:8px;
  font-weight:600; text-transform:uppercase; letter-spacing:.4px;
}
.tag-energy   { background:rgba(255,140,0,.15);  color:var(--ind-energy);  border:1px solid rgba(255,140,0,.3); }
.tag-auto     { background:rgba(0,212,255,.12);  color:var(--ind-auto);    border:1px solid rgba(0,212,255,.3); }
.tag-health   { background:rgba(224,64,251,.12); color:var(--ind-health);  border:1px solid rgba(224,64,251,.3); }
.tag-corp     { background:rgba(255,215,0,.12);  color:var(--ind-corp);    border:1px solid rgba(255,215,0,.3); }
.tag-gov      { background:rgba(0,230,118,.12);  color:var(--ind-gov);     border:1px solid rgba(0,230,118,.3); }

/* ── LEGEND ── */
.legend {
  display:flex; gap:14px; flex-wrap:wrap;
  padding:10px 16px;
  border-top:1px solid var(--border);
  background:#060b14; flex-shrink:0;
}
.legend-title { font-size:9px; color:var(--muted); text-transform:uppercase; letter-spacing:1px; align-self:center; }
.legend-item { display:flex; align-items:center; gap:5px; font-size:10px; color:var(--muted); }
.legend-dot { width:10px; height:10px; border-radius:3px; }
.dot-critical { background:rgba(255,59,59,.6);  border:1px solid var(--red); }
.dot-high     { background:rgba(255,140,0,.6);  border:1px solid var(--orange); }
.dot-elevated { background:rgba(255,215,0,.6);  border:1px solid var(--yellow); }
.dot-medium   { background:rgba(0,188,212,.5);  border:1px solid var(--cyan); }

/* ── MODAL ── */
.modal-overlay {
  display:none; position:fixed; inset:0; z-index:2000;
  background:rgba(0,0,0,.75); align-items:center; justify-content:center;
}
.modal-overlay.open { display:flex; }
.modal-box {
  background:var(--bg-card); border:1px solid var(--border);
  border-radius:12px; max-width:640px; width:90%;
  max-height:88vh; overflow-y:auto; padding:28px; position:relative;
}
.modal-box::-webkit-scrollbar { width:4px; }
.modal-box::-webkit-scrollbar-thumb { background:var(--border); border-radius:4px; }
.modal-close {
  position:absolute; top:14px; right:16px;
  background:none; border:none; color:var(--muted); font-size:22px; cursor:pointer;
}
.modal-close:hover { color:var(--text); }
.modal-actor-name { font-size:22px; font-weight:900; margin-bottom:4px; }
.modal-actor-alias { font-size:12px; color:var(--muted); margin-bottom:16px; }
.modal-section { margin-bottom:18px; }
.modal-section h4 { font-size:11px; text-transform:uppercase; letter-spacing:1.5px; color:var(--accent); margin-bottom:8px; }
.modal-section p, .modal-section li { font-size:13px; color:var(--muted); line-height:1.6; }
.modal-section p + p { margin-top:8px; }
.modal-section ul { padding-left:18px; }
.modal-section li { margin-bottom:4px; }
.modal-targets { display:flex; flex-wrap:wrap; gap:6px; }
.target-tag {
  font-size:11px; padding:3px 9px; border-radius:12px;
  background:rgba(255,140,0,.1); border:1px solid rgba(255,140,0,.3);
  color:var(--orange);
}
.tactic-tag {
  font-size:9px; font-weight:600; padding:2px 7px; border-radius:10px;
  background:rgba(0,212,255,.08); border:1px solid rgba(0,212,255,.2);
  color:var(--cyan); text-transform:uppercase; letter-spacing:.5px;
}
.actor-tactics { display:flex; flex-wrap:wrap; gap:4px; }

/* ── ROY WOODS CALLOUT ── */
.roy-callout {
  display:flex; gap:16px;
  background:linear-gradient(135deg, rgba(0,212,255,.05), rgba(0,102,204,.08));
  border:1px solid rgba(0,212,255,.2);
  border-radius:10px; padding:18px;
  margin-top:10px;
}
.roy-avatar {
  width:48px; height:48px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg, #0a66c2, #00a0dc);
  display:flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:900; color:#fff; letter-spacing:1px;
}
.roy-content { flex:1; min-width:0; }
.roy-name { font-size:15px; font-weight:700; color:var(--text); margin-bottom:2px; }
.roy-role { font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:1px; margin-bottom:10px; }
.linkedin-btn {
  display:inline-flex; align-items:center; gap:8px;
  background:#0a66c2; color:#fff;
  border:none; border-radius:6px; padding:7px 14px;
  font-size:12px; font-weight:600; cursor:pointer;
  text-decoration:none; margin-top:12px;
  transition:background .15s, transform .1s;
}
.linkedin-btn:hover { background:#004182; text-decoration:none; transform:translateY(-1px); }
.linkedin-icon {
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; border-radius:3px;
  background:#fff; color:#0a66c2; font-size:11px; font-weight:900;
  font-family:Georgia, serif; flex-shrink:0;
}

/* ── FOOTER ── */
.soc-footer {
  font-size:11px; color:var(--muted);
  padding:10px 16px; border-top:1px solid var(--border);
  background:#060b14; text-align:center; flex-shrink:0;
}
.soc-footer a { color:var(--muted); }
.soc-footer a:hover { color:var(--accent); }

/* ── DATA TIMESTAMP ── */
.data-updated {
  font-size:10px; color:#4a5568; font-family:monospace;
  border-left:1px solid var(--border); padding-left:12px;
  white-space:nowrap; display:none;
}
.data-updated:not(:empty) { display:block; }

/* ── MOBILE TAB BAR (hidden on desktop) ── */
.mobile-tab-bar { display:none; }

/* ── RESPONSIVE ── */
@media (max-width:1300px) {
  .layout { grid-template-columns: 240px 1fr 240px; }
}
@media (max-width:1100px) {
  .layout { grid-template-columns: 210px 1fr 210px; }
}
@media (max-width:960px) {
  .layout { grid-template-columns: 180px 1fr 180px; }
  .brand-sub { letter-spacing:1px; font-size:9px; }
}
@media (max-width:768px) {
  /* ── Mobile tab bar ── */
  .mobile-tab-bar {
    display: flex;
    position: sticky;
    top: 60px;
    z-index: 900;
    background: #060b14;
    border-bottom: 1px solid var(--border);
    height: 48px;
    flex-shrink: 0;
  }
  .mtab {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    color: var(--muted);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    cursor: pointer;
    transition: color .15s, border-color .15s;
    min-height: 44px;
    padding: 4px 8px;
  }
  .mtab-icon { font-size: 20px; line-height: 1; }
  .mtab-label { font-size: 9px; }
  .mtab:hover { color: var(--text); }
  .mtab.active { color: var(--accent); border-bottom-color: var(--accent); }
  /* ── Stacked layout ── */
  .layout { display: block; height: auto; overflow: visible; }
  .panel, .heatmap-container {
    display: none;
    height: calc(100vh - 108px);
    overflow: hidden;
    border-right: none;
    border-left: none;
  }
  .panel.mob-active, .heatmap-container.mob-active { display: flex; }
  body { overflow: hidden; }
  /* Compact header */
  .refresh-countdown, #dataUpdated { display: none !important; }
  .status-bar { gap: 8px; }
  header { padding: 0 12px; }
  .roy-callout { flex-direction: column; }
}
@media (max-width:480px) {
  header { height: 52px; padding: 0 10px; }
  .brand-icon { width: 42px; height: 42px; }
  .brand-name { font-size: 16px; }
  .status-bar .hdr-clock { display: none; }
  .mobile-tab-bar { top: 52px; }
  .panel.mob-active, .heatmap-container.mob-active { height: calc(100vh - 100px); }
  .threat-badge, .live-badge { padding: 3px 8px; font-size: 10px; }
}
@media (max-width:360px) {
  .mtab-label { display: none; }
  .mtab-icon { font-size: 24px; }
}
