:root{
    --void:#0B0F14;
    --panel:#121922;
    --panel-2:#1A2330;
    --grid:#1E2A38;
    --hairline:#26313f;
    --text:#E7EDF3;
    --muted:#8496A8;
    --muted-2:#5C6E80;
    --amber:#E8A33D;
    --cyan:#4FC1E8;
    --red:#E8573F;
    --sev-low:#4FA97A;
    --sev-medium:#E8A33D;
    --sev-high:#E8813D;
    --sev-critical:#E8573F;
    --b-goal:#E8A33D;
    --b-mission:#4FC1E8;
    --b-trust:#E8573F;
    --b-identity:#A672E8;
    --b-context:#7AD6A4;
    --b-supply:#D084F5;
    --b-egress:#6AA9FF;
    --font-display:'Space Grotesk', system-ui, sans-serif;
    --font-mono:'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
    --font-body: system-ui, -apple-system, 'Segoe UI', sans-serif;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--void);
    color:var(--text);
    font-family:var(--font-body);
    min-height:100vh;
    overflow-x:hidden;
  }
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  /* ---------- layout shell ---------- */
  .app{
    display:flex;
    flex-direction:column;
    min-height:100vh;
  }

  /* ---------- header ---------- */
  header.topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 24px;
    border-bottom:1px solid var(--hairline);
    background:linear-gradient(180deg, rgba(18,25,34,0.9), rgba(18,25,34,0.6));
    backdrop-filter:blur(6px);
    position:sticky;
    top:0;
    z-index:30;
    flex-wrap:wrap;
  }
  .brand{
    display:flex;
    flex-direction:column;
    gap:2px;
  }
  .brand .eyebrow{
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--amber);
  }
  .brand h1{
    font-family:var(--font-display);
    font-size:20px;
    margin:0;
    font-weight:600;
    letter-spacing:-0.01em;
  }
  .mode-toggle{
    display:flex;
    border:1px solid var(--hairline);
    border-radius:7px;
    overflow:hidden;
  }
  .mode-btn{
    background:transparent;
    border:none;
    color:var(--muted);
    font-family:var(--font-mono);
    font-size:10.5px;
    text-transform:uppercase;
    letter-spacing:0.05em;
    padding:8px 12px;
    cursor:pointer;
  }
  .mode-btn.active{ background:var(--amber); color:#1a1005; }
  .mode-btn:not(.active):hover{ color:var(--text); }

  .stats{
    display:flex;
    align-items:center;
    gap:20px;
    flex-wrap:wrap;
  }
  .stat{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    line-height:1.1;
  }
  .stat .num{
    font-family:var(--font-mono);
    font-size:18px;
    color:var(--cyan);
  }
  .stat .lbl{
    font-family:var(--font-mono);
    font-size:10px;
    color:var(--muted-2);
    text-transform:uppercase;
    letter-spacing:0.08em;
  }
  button.ghost{
    background:transparent;
    border:1px solid var(--hairline);
    color:var(--muted);
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.05em;
    text-transform:uppercase;
    padding:8px 14px;
    border-radius:6px;
    cursor:pointer;
    transition:border-color .15s ease, color .15s ease;
  }
  button.ghost:hover{ border-color:var(--amber); color:var(--amber); }
  button.ghost:focus-visible, .risk-chip:focus-visible, .node-hit:focus-visible, .basket-chip:focus-visible {
    outline:2px solid var(--cyan); outline-offset:2px;
  }

  /* ---------- tab nav ---------- */
  .tabnav{
    display:flex;
    gap:4px;
    padding:0 24px;
    background:var(--panel);
    border-bottom:1px solid var(--hairline);
  }
  .tab-btn{
    background:none;
    border:none;
    border-bottom:2px solid transparent;
    color:var(--muted);
    font-family:var(--font-mono);
    font-size:11px;
    letter-spacing:0.04em;
    text-transform:uppercase;
    padding:12px 6px;
    margin-right:22px;
    cursor:pointer;
  }
  .tab-btn.active{ color:var(--text); border-bottom-color:var(--amber); }
  .tab-btn:hover{ color:var(--text); }
  .tab-btn .count{ color:var(--muted-2); }
  .tab-btn.active .count{ color:var(--amber); }

  /* ---------- basket tray ---------- */
  .tray{
    display:flex;
    align-items:center;
    gap:10px;
    padding:10px 24px;
    border-bottom:1px solid var(--hairline);
    background:var(--panel);
    flex-wrap:wrap;
    min-height:52px;
  }
  .tray .tray-label{
    font-family:var(--font-mono);
    font-size:11px;
    color:var(--muted-2);
    text-transform:uppercase;
    letter-spacing:0.08em;
    white-space:nowrap;
  }
  .tray .tray-empty{
    font-family:var(--font-mono);
    font-size:12px;
    color:var(--muted-2);
    font-style:italic;
  }
  .basket-chip{
    display:flex;
    align-items:center;
    gap:6px;
    background:var(--panel-2);
    border:1px solid var(--hairline);
    border-radius:999px;
    padding:5px 10px 5px 12px;
    font-family:var(--font-mono);
    font-size:11.5px;
    cursor:pointer;
    color:var(--text);
  }
  .basket-chip .dot{width:7px;height:7px;border-radius:50%;flex:none;}
  .basket-chip .x{color:var(--muted-2); font-size:13px; line-height:1;}
  .basket-chip:hover{border-color:var(--red);}
  .tray .clear-basket{margin-left:auto;}

  /* ---------- stage ---------- */
  .stage{
    flex:1;
    display:flex;
    position:relative;
    min-height:0;
  }
  .diagram-wrap{
    flex:1;
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:10px;
    overflow:hidden;
  }
  .diagram-wrap svg{width:100%; height:100%; max-height:82vh;}
  .svg-scroll{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
  .scroll-hint{ display:none; }

  .hint-banner{
    position:absolute;
    top:14px;
    left:50%;
    transform:translateX(-50%);
    background:var(--panel-2);
    border:1px solid var(--amber);
    color:var(--amber);
    font-family:var(--font-mono);
    font-size:11.5px;
    padding:8px 14px;
    border-radius:8px;
    z-index:20;
    opacity:0;
    pointer-events:none;
    transition:opacity .25s ease;
    max-width:88%;
    text-align:center;
  }
  .hint-banner.show{opacity:1;}

  /* ---------- SVG node styling ---------- */
  .conn-line{ stroke:var(--hairline); stroke-width:1.5; fill:none; }
  .node-shape{
    fill:var(--panel-2);
    stroke:var(--hairline);
    stroke-width:1.5;
    transition:stroke .15s ease, fill .15s ease;
  }
  .node-hit{ cursor:pointer; }
  .node-hit:hover .node-shape{ stroke:var(--cyan); }
  .node-hit.active .node-shape{ stroke:var(--amber); stroke-width:2.5; fill:#1c2634; }
  .node-hit.pulse .node-shape{ animation:pulseGlow 1.1s ease-in-out infinite; }
  .node-label{
    font-family:var(--font-mono);
    font-size:12px;
    fill:var(--text);
    text-anchor:middle;
    pointer-events:none;
  }
  .node-sub{
    font-family:var(--font-mono);
    font-size:8.5px;
    fill:var(--muted-2);
    text-anchor:middle;
    pointer-events:none;
    text-transform:uppercase;
    letter-spacing:0.06em;
  }
  .node-icon{ stroke:var(--amber); stroke-width:1.6; fill:none; stroke-linecap:round; stroke-linejoin:round; }
  .node-hit.active .node-icon{ stroke:var(--cyan); }
  .badge-count{
    font-family:var(--font-mono);
    font-size:9px;
    fill:var(--void);
  }
  .badge-circle{ fill:var(--amber); }

  @keyframes pulseGlow{
    0%,100%{ filter:drop-shadow(0 0 0px var(--amber)); }
    50%{ filter:drop-shadow(0 0 8px var(--amber)); }
  }

  .chain-arc{
    fill:none;
    stroke-width:2.5;
    stroke-dasharray:6 5;
    opacity:0;
    transition:opacity .4s ease;
  }
  .chain-arc.show{
    opacity:0.95;
    animation:dashMove 1.4s linear infinite;
  }
  @keyframes dashMove{ to{ stroke-dashoffset:-22; } }

  .guide-arc{
    fill:none;
    stroke-width:1.6;
    stroke-dasharray:3 6;
    opacity:0;
    animation:guideBreathe 2.4s ease-in-out infinite;
  }
  @keyframes guideBreathe{ 0%,100%{ opacity:0.18; } 50%{ opacity:0.55; } }

  .node-hit.guide-pulse .node-shape{
    animation:guideGlow 1.6s ease-in-out infinite;
  }
  @keyframes guideGlow{
    0%,100%{ stroke:var(--hairline); filter:none; }
    50%{ stroke:var(--guide-color, var(--cyan)); filter:drop-shadow(0 0 6px var(--guide-color, var(--cyan))); }
  }

  /* ---------- drawer ---------- */
  .drawer{
    width:380px;
    max-width:92vw;
    background:var(--panel);
    border-left:1px solid var(--hairline);
    display:flex;
    flex-direction:column;
    transform:translateX(100%);
    transition:transform .28s ease;
    position:relative;
    z-index:15;
  }
  .drawer.open{ transform:translateX(0); }
  .drawer-head{
    padding:20px 20px 14px;
    border-bottom:1px solid var(--hairline);
  }
  .drawer-head .tag{
    font-family:var(--font-mono);
    font-size:10.5px;
    color:var(--amber);
    text-transform:uppercase;
    letter-spacing:0.1em;
  }
  .drawer-head h2{
    font-family:var(--font-display);
    font-size:22px;
    margin:6px 0 8px;
    font-weight:600;
  }
  .drawer-head p{
    margin:0;
    font-size:13px;
    color:var(--muted);
    line-height:1.5;
  }
  .drawer-close{
    position:absolute;
    top:16px; right:16px;
    background:none;
    border:none;
    color:var(--muted);
    font-size:20px;
    cursor:pointer;
    line-height:1;
  }
  .drawer-close:hover{ color:var(--text); }
  .core-list{
    padding:14px 20px;
    border-bottom:1px solid var(--hairline);
  }
  .core-list ul{ margin:8px 0 0; padding-left:18px; }
  .core-list li{ font-size:13px; color:var(--muted); margin-bottom:6px; line-height:1.45; }
  .core-list .section-label{
    font-family:var(--font-mono);
    font-size:10.5px;
    color:var(--muted-2);
    text-transform:uppercase;
    letter-spacing:0.1em;
  }
  .risk-section{
    padding:14px 20px 24px;
    overflow-y:auto;
    flex:1;
    min-height:0;
  }
  .risk-section .section-label{
    font-family:var(--font-mono);
    font-size:10.5px;
    color:var(--muted-2);
    text-transform:uppercase;
    letter-spacing:0.1em;
    margin-bottom:10px;
    display:block;
  }
  .risk-chip{
    border:1px solid var(--hairline);
    border-radius:10px;
    margin-bottom:10px;
    background:var(--panel-2);
    overflow:hidden;
    cursor:pointer;
    transition:border-color .15s ease;
  }
  .risk-chip.in-basket{ border-color:var(--amber); }
  .risk-chip-head{
    display:flex;
    align-items:center;
    gap:10px;
    padding:11px 12px;
  }
  .risk-chip .dot{ width:9px; height:9px; border-radius:50%; flex:none; }
  .risk-chip .rname{ font-size:13.5px; font-weight:600; flex:1; }
  .risk-chip .sev-label{
    font-family:var(--font-mono);
    font-size:9.5px;
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:var(--muted-2);
  }
  .quick-add{
    flex:none;
    width:22px;
    height:22px;
    border-radius:50%;
    border:1px solid var(--hairline);
    background:transparent;
    color:var(--cyan);
    font-family:var(--font-mono);
    font-size:13px;
    line-height:1;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .quick-add:hover{ border-color:var(--cyan); }
  .quick-add.added{ background:var(--amber); border-color:var(--amber); color:#1a1005; }
  .risk-chip .caret{ color:var(--muted-2); font-size:11px; transition:transform .15s ease; }
  .risk-chip.expanded .caret{ transform:rotate(180deg); }
  .risk-body{
    max-height:0;
    overflow:hidden;
    transition:max-height .25s ease;
    padding:0 12px;
  }
  .risk-chip.expanded .risk-body{
    max-height:400px;
    padding:0 12px 14px;
  }
  .risk-body .field{ margin-bottom:8px; }
  .risk-body .field-label{
    font-family:var(--font-mono);
    font-size:9.5px;
    color:var(--muted-2);
    text-transform:uppercase;
    letter-spacing:0.06em;
    display:block;
    margin-bottom:3px;
  }
  .risk-body .field-value{ font-size:12.5px; color:var(--text); line-height:1.5; }
  .add-btn{
    margin-top:4px;
    width:100%;
    padding:8px;
    border-radius:7px;
    border:1px solid var(--hairline);
    background:transparent;
    color:var(--cyan);
    font-family:var(--font-mono);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.05em;
    cursor:pointer;
  }
  .add-btn.added{ color:var(--amber); border-color:var(--amber); }
  .add-btn:hover{ border-color:var(--cyan); }

  .drawer-empty{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:30px;
    text-align:center;
    color:var(--muted-2);
    font-family:var(--font-mono);
    font-size:12px;
  }

  /* ---------- incident library ---------- */
  .library-view{
    flex:1;
    overflow-y:auto;
    padding:26px 24px 60px;
    display:none;
  }
  .library-view.active{ display:block; }
  .library-intro{
    max-width:680px;
    margin:0 0 22px;
  }
  .library-intro h2{
    font-family:var(--font-display);
    font-size:22px;
    margin:0 0 8px;
  }
  .library-intro p{
    color:var(--muted);
    font-size:13.5px;
    line-height:1.6;
    margin:0;
  }
  .library-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
    gap:16px;
    max-width:1180px;
  }
  .case-card{
    background:var(--panel-2);
    border:1px solid var(--hairline);
    border-radius:12px;
    padding:18px;
    min-height:200px;
    display:flex;
    flex-direction:column;
  }
  .case-card.locked{
    align-items:center;
    justify-content:center;
    text-align:center;
    color:var(--muted-2);
  }
  .case-card.locked .lock-icon{ font-size:22px; margin-bottom:10px; opacity:0.6; }
  .case-card.locked .lock-title{
    font-family:var(--font-mono);
    font-size:12.5px;
    color:var(--muted);
    margin-bottom:6px;
    letter-spacing:0.03em;
  }
  .case-card.locked .lock-hint{
    font-size:11.5px;
    line-height:1.5;
    max-width:220px;
  }
  .boundary-tag{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-family:var(--font-mono);
    font-size:9.5px;
    text-transform:uppercase;
    letter-spacing:0.07em;
    padding:3px 9px;
    border-radius:999px;
    border:1px solid var(--hairline);
    width:fit-content;
    margin-bottom:10px;
  }
  .boundary-tag .dot{ width:6px; height:6px; border-radius:50%; }
  .case-eyebrow{
    font-family:var(--font-mono);
    font-size:10px;
    color:var(--muted-2);
    text-transform:uppercase;
    letter-spacing:0.06em;
    margin-bottom:4px;
  }
  .case-card h3{
    font-family:var(--font-display);
    font-size:16.5px;
    margin:0 0 8px;
    line-height:1.3;
  }
  .case-what{ font-size:12.5px; color:var(--text); line-height:1.55; margin:0 0 14px; }
  .case-card .case-what{ flex:1; margin-bottom:10px; }
  .case-echo{
    font-size:11.5px;
    color:var(--cyan);
    line-height:1.5;
    border-top:1px solid var(--hairline);
    padding-top:10px;
    margin:0 0 14px;
  }
  .case-card .case-echo{ margin-bottom:10px; }
  .case-echo b{ color:var(--cyan); }
  .case-source{
    font-family:var(--font-mono);
    font-size:9.5px;
    color:var(--muted-2);
    margin-bottom:12px;
  }
  .view-map-btn{
    align-self:flex-start;
    background:transparent;
    border:1px solid var(--hairline);
    color:var(--amber);
    font-family:var(--font-mono);
    font-size:10.5px;
    text-transform:uppercase;
    letter-spacing:0.05em;
    padding:7px 12px;
    border-radius:6px;
    cursor:pointer;
  }
  .view-map-btn:hover{ border-color:var(--amber); }

  /* ---------- guide panel ---------- */
  .guide-panel{
    position:absolute;
    bottom:14px;
    right:14px;
    width:300px;
    max-width:70vw;
    background:linear-gradient(180deg, rgba(17,27,38,.96), rgba(11,18,26,.94));
    border:1px solid rgba(166,114,232,.38);
    border-left:2px solid rgba(166,114,232,.78);
    border-radius:12px;
    box-shadow:0 14px 36px rgba(0,0,0,.30), 0 0 24px rgba(166,114,232,.08);
    backdrop-filter:blur(10px);
    z-index:6;
    font-family:var(--font-mono);
  }
  .guide-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:10px 12px;
    cursor:pointer;
    font-size:11px;
    color:var(--text);
    letter-spacing:0.05em;
    text-transform:uppercase;
  }
  .guide-head .guide-caret{ color:var(--muted-2); transition:transform .15s ease; }
  .guide-panel.collapsed .guide-caret{ transform:rotate(-90deg); }
  .guide-panel.collapsed .guide-body{ display:none; }
  .guide-body{
    padding:0 12px 12px;
    border-top:1px solid var(--hairline);
    padding-top:10px;
    max-height:220px;
    overflow-y:auto;
  }
  .guide-tip{
    font-size:11.5px;
    color:var(--muted);
    line-height:1.55;
    margin:0;
    font-family:var(--font-body);
  }
  .guide-chain{ margin-bottom:12px; }
  .guide-chain:last-child{ margin-bottom:0; }
  .guide-chain-head{
    display:flex;
    align-items:center;
    gap:6px;
    font-size:11px;
    color:var(--text);
    margin-bottom:6px;
    text-transform:uppercase;
    letter-spacing:0.03em;
  }
  .guide-chain-head .dot{ width:7px; height:7px; border-radius:50%; flex:none; }
  .guide-missing{ margin:0; padding-left:16px; }
  .guide-missing li{
    font-size:11.5px;
    color:var(--muted);
    font-family:var(--font-body);
    margin-bottom:3px;
    line-height:1.4;
  }
  .guide-missing .guide-comp{ color:var(--muted-2); font-family:var(--font-mono); font-size:10px; }

  /* ---------- legend ---------- */
  .legend{
    position:absolute;
    bottom:14px;
    left:14px;
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    background:rgba(18,25,34,0.85);
    border:1px solid var(--hairline);
    border-radius:8px;
    padding:8px 12px;
    font-family:var(--font-mono);
    font-size:10.5px;
    color:var(--muted);
    z-index:5;
  }
  .legend .item{ display:flex; align-items:center; gap:5px; }
  .legend .dot{ width:8px; height:8px; border-radius:50%; }

  /* ---------- modal ---------- */
  .modal-overlay{
    position:fixed; inset:0;
    background:rgba(6,9,13,0.78);
    display:flex; align-items:center; justify-content:center;
    z-index:100;
    opacity:0; pointer-events:none;
    transition:opacity .2s ease;
    padding:20px;
  }
  .modal-overlay.show{ opacity:1; pointer-events:auto; }
  .modal-card{
    background:var(--panel);
    border:1px solid var(--red);
    border-radius:14px;
    max-width:520px;
    width:100%;
    padding:26px;
    box-shadow:0 0 60px rgba(232,87,63,0.15);
    transform:scale(0.96);
    transition:transform .2s ease;
  }
  .modal-overlay.show .modal-card{ transform:scale(1); }
  .modal-card .eyebrow{
    font-family:var(--font-mono);
    font-size:11px;
    color:var(--red);
    text-transform:uppercase;
    letter-spacing:0.12em;
  }
  .modal-card h3{
    font-family:var(--font-display);
    font-size:24px;
    margin:8px 0 12px;
  }
  .modal-card .sev-pill{
    display:inline-block;
    font-family:var(--font-mono);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:0.06em;
    padding:3px 9px;
    border-radius:999px;
    margin-bottom:14px;
  }
  .modal-card .field-label{
    font-family:var(--font-mono);
    font-size:10px;
    color:var(--muted-2);
    text-transform:uppercase;
    letter-spacing:0.08em;
    margin-bottom:4px;
    display:block;
  }
  .modal-card .field-value{ font-size:13.5px; line-height:1.55; color:var(--text); margin-bottom:14px; }
  .modal-card .chain-path{
    font-family:var(--font-mono);
    font-size:11.5px;
    color:var(--cyan);
    margin-bottom:14px;
    line-height:1.6;
  }
  .echo-box{
    background:var(--panel-2);
    border:1px solid var(--hairline);
    border-left:3px solid var(--cyan);
    border-radius:8px;
    padding:12px 14px;
    margin-bottom:16px;
  }
  .echo-box .echo-eyebrow{
    font-family:var(--font-mono);
    font-size:10px;
    color:var(--cyan);
    text-transform:uppercase;
    letter-spacing:0.08em;
    margin-bottom:6px;
    display:block;
  }
  .echo-box .echo-title{ font-weight:600; font-size:13.5px; margin-bottom:5px; }
  .echo-box .echo-what{ font-size:12.5px; color:var(--muted); line-height:1.5; margin-bottom:6px; }
  .echo-box .echo-source{ font-family:var(--font-mono); font-size:9.5px; color:var(--muted-2); }
  .modal-close-btn{
    width:100%;
    padding:10px;
    border-radius:8px;
    border:1px solid var(--hairline);
    background:var(--panel-2);
    color:var(--text);
    font-family:var(--font-mono);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:0.05em;
    cursor:pointer;
    margin-top:4px;
  }
  .modal-close-btn:hover{ border-color:var(--amber); }



  .ring-circle{ fill:none; stroke:rgba(132,150,168,0.22); stroke-width:1.2; stroke-dasharray:5 8; }
  .ring-label{ font-family:var(--font-mono); font-size:11px; fill:var(--muted-2); text-transform:uppercase; letter-spacing:0.12em; pointer-events:none; }
  .node-layer-runtime .node-shape{ stroke:rgba(79,193,232,0.55); }
  .node-layer-trustops .node-shape{ stroke:rgba(166,114,232,0.55); }
  .node-layer-interaction .node-shape{ stroke:rgba(232,163,61,0.55); }
  .node-hit.active .node-shape{ stroke:var(--amber) !important; }


  .ring-band{ fill:none; stroke-linecap:round; pointer-events:none; }
  .ring-band.runtime{ stroke:rgba(79,193,232,0.13); stroke-width:94; }
  .ring-band.trustops{ stroke:rgba(166,114,232,0.13); stroke-width:112; }
  .ring-band.interaction{ stroke:rgba(232,163,61,0.12); stroke-width:124; }
  .ring-circle{ fill:none; stroke-width:2.6; stroke-dasharray:none; pointer-events:none; }
  .ring-circle.runtime{ stroke:rgba(79,193,232,0.68); }
  .ring-circle.trustops{ stroke:rgba(166,114,232,0.62); }
  .ring-circle.interaction{ stroke:rgba(232,163,61,0.58); }
  .ring-label{ font-family:var(--font-mono); font-size:13px; font-weight:700; fill:var(--text); text-transform:uppercase; letter-spacing:0.12em; pointer-events:none; paint-order:stroke; stroke:rgba(11,15,20,0.9); stroke-width:4px; }
  .conn-line.runtime{ stroke:rgba(79,193,232,0.74); stroke-width:2.8; }
  .conn-line.trustops{ stroke:rgba(166,114,232,0.66); stroke-width:2.25; }
  .conn-line.interaction{ stroke:rgba(232,163,61,0.58); stroke-width:1.9; }

  /* ---------- threat catalog ---------- */
  .catalog-toolbar{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:0 0 18px;
  }
  .catalog-summary{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:0 0 18px;
    max-width:1180px;
  }
  .catalog-summary .pill{
    border:1px solid var(--hairline);
    background:var(--panel-2);
    border-radius:999px;
    padding:6px 11px;
    font-family:var(--font-mono);
    font-size:10.5px;
    color:var(--muted);
  }
  .catalog-group{max-width:1180px;margin-bottom:26px;}
  .catalog-group h3{font-family:var(--font-display);font-size:18px;margin:0 0 12px;color:var(--text);}
  .catalog-table{width:100%;border-collapse:collapse;background:var(--panel-2);border:1px solid var(--hairline);border-radius:12px;overflow:hidden;font-size:12.5px;}
  .catalog-table th,.catalog-table td{border-bottom:1px solid var(--hairline);padding:10px 12px;text-align:left;vertical-align:top;}
  .catalog-table th{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:0.07em;color:var(--muted-2);background:rgba(11,15,20,0.35);}
  .catalog-table td{color:var(--muted);line-height:1.45;}
  .catalog-table td strong{color:var(--text);}
  .sev-badge{display:inline-block;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:0.06em;padding:3px 8px;border-radius:999px;color:#1a1005;}
  .source-link{color:var(--cyan);text-decoration:none;}
  .source-link:hover{text-decoration:underline;}

  /* ---------- intro overlay ---------- */
  .intro-overlay{
    position:fixed; inset:0;
    background:var(--void);
    display:flex; align-items:center; justify-content:center;
    z-index:200;
    padding:24px;
    transition:opacity .3s ease;
  }
  .intro-overlay.hide{ opacity:0; pointer-events:none; }
  .intro-card{
    max-width:560px;
    text-align:center;
  }
  .intro-card .eyebrow{
    font-family:var(--font-mono);
    font-size:11.5px;
    color:var(--amber);
    text-transform:uppercase;
    letter-spacing:0.14em;
  }
  .intro-card h1{
    font-family:var(--font-display);
    font-size:36px;
    margin:14px 0 16px;
    line-height:1.15;
  }
  .intro-card p{
    color:var(--muted);
    font-size:14.5px;
    line-height:1.65;
    margin-bottom:26px;
  }
  .intro-card .steps{
    text-align:left;
    display:grid;
    gap:10px;
    margin-bottom:28px;
    font-family:var(--font-mono);
    font-size:12.5px;
    color:var(--muted);
  }
  .intro-card .steps .s{ color:var(--cyan); }
  .start-btn{
    background:var(--amber);
    color:#1a1005;
    border:none;
    padding:13px 30px;
    border-radius:8px;
    font-family:var(--font-display);
    font-weight:600;
    font-size:15px;
    cursor:pointer;
  }
  .start-btn:hover{ background:#f0b256; }


  /* ---------- mobile map pan/zoom controls ---------- */
  .map-controls{ display:none; }
  .diagram-wrap svg{ transform-origin:0 0; }
  .chain-arc{
    stroke:var(--sev-critical) !important;
    stroke-width:3.25;
    stroke-dasharray:7 6;
    stroke-linecap:round;
    filter:drop-shadow(0 0 6px rgba(255,91,91,0.72));
  }
  .chain-arc.show{
    opacity:0.98;
    animation:dashMove 1.15s linear infinite, chainPulse 1.55s ease-in-out infinite;
  }
  @keyframes chainPulse{
    0%,100%{ filter:drop-shadow(0 0 4px rgba(255,91,91,0.55)); }
    50%{ filter:drop-shadow(0 0 12px rgba(255,91,91,0.95)); }
  }

  /* ---------- mobile ---------- */
  @media (max-width: 860px){
    .stage{ flex-direction:column; }
    .drawer{
      width:100%;
      max-width:100%;
      height:58vh;
      max-height:58vh;
      overflow:hidden;
      border-left:none;
      border-top:1px solid var(--hairline);
      transform:translateY(100%);
      position:fixed;
      bottom:0; left:0; right:0;
      border-radius:16px 16px 0 0;
    }
    .drawer.open{ transform:translateY(0); }
    .stats{ gap:12px; }
    header.topbar{ padding:12px 16px; }
    .tray{ padding:8px 16px; }

    /* Diagram: let it scroll/pinch-zoom at real size instead of shrinking text unreadably */
    .diagram-wrap{
      flex-direction:column;
      align-items:stretch;
      padding:10px 10px 0;
      overflow:visible;
    }
    .svg-scroll{
      width:100%;
      height:52vh;
      overflow:auto;
      -webkit-overflow-scrolling:touch;
      justify-content:flex-start;
      touch-action:pan-x pan-y pinch-zoom;
    }
    .diagram-wrap svg{
      width:980px;
      min-width:980px;
      height:720px;
      max-height:none;
      flex:none;
    }
    .legend, .guide-panel{
      position:static;
      width:100%;
      max-width:100%;
      margin:8px 0 0;
    }
    .legend{ justify-content:center; }
    .guide-panel{ margin-bottom:8px; }
    .scroll-hint{
      display:block;
      text-align:center;
      font-family:var(--font-mono);
      font-size:10.5px;
      color:var(--muted-2);
      padding:6px 0 2px;
    }

    /* Bigger touch targets */
    .quick-add{ width:30px; height:30px; font-size:16px; }
    .risk-chip-head{ padding:13px 12px; }
    .view-map-btn, .add-btn{ padding:10px 12px; }

    .intro-card h1{ font-size:clamp(24px, 7vw, 32px); }

    .catalog-table,.catalog-table thead,.catalog-table tbody,.catalog-table th,.catalog-table td,.catalog-table tr{display:block;}
    .catalog-table thead{display:none;}
    .catalog-table tr{border-bottom:1px solid var(--hairline);padding:10px 0;}
    .catalog-table td{border-bottom:none;padding:6px 12px;}
    .catalog-table td::before{content:attr(data-label);display:block;font-family:var(--font-mono);font-size:9px;color:var(--muted-2);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:2px;}

  }

  /* v2.1d: mobile controls as visible bar below map */
  .map-controls{
    display:none;
  }
  @media (max-width: 860px){
    .map-controls{
      display:flex !important;
      position:static !important;
      z-index:2;
      justify-content:center;
      align-items:center;
      gap:8px;
      margin:8px 10px 0;
      padding:8px;
      background:rgba(18,25,34,0.94);
      border:1px solid var(--hairline);
      border-radius:10px;
      box-shadow:0 8px 20px rgba(0,0,0,0.18);
    }
    .map-controls button{
      border:1px solid var(--hairline);
      background:rgba(255,255,255,0.04);
      color:var(--text);
      font-family:var(--font-mono);
      font-size:11px;
      border-radius:6px;
      padding:8px 10px;
      cursor:pointer;
      min-width:42px;
    }
    .map-controls button:first-child{ min-width:72px; }
    .map-controls button:hover{ border-color:var(--amber); color:var(--amber); }
    .diagram-wrap{ padding-top:14px !important; }
    .svg-scroll{ margin-top:8px; }
  }

/* =====================================================================
   PREMIUM V3 — Dark-tech architecture visualization
   Visual target: layered enterprise AI security wheel / control-plane map.
   Responsive behavior is driven by explorer-v2.js; this block is intentionally
   appended so it can override earlier v2 styling without changing functionality.
   ===================================================================== */

/* ---- canvas / map surface ---- */
.diagram-wrap{
  background:
    radial-gradient(circle at 50% 46%, rgba(41,93,118,.12), transparent 34%),
    radial-gradient(circle at 50% 50%, rgba(112,72,170,.07), transparent 55%),
    #080D12;
  border:1px solid rgba(74,98,120,.18);
  border-radius:14px;
}
.svg-scroll{
  overflow:auto;
  min-width:0;
  min-height:0;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(119,145,168,.35) transparent;
  touch-action:pan-x pan-y pinch-zoom;
}
.diagram-wrap svg{
  width:1200px;
  height:900px;
  min-width:1200px;
  min-height:900px;
  max-width:none;
  max-height:none;
  flex:none;
  overflow:visible;
}

/* ---- premium rings ---- */
.ring-band.runtime{ stroke:rgba(79,193,232,.12); stroke-width:102; }
.ring-band.trustops{ stroke:rgba(166,114,232,.115); stroke-width:116; }
.ring-band.interaction{ stroke:rgba(232,163,61,.105); stroke-width:132; }
.ring-circle.runtime{ stroke:rgba(79,193,232,.78); stroke-width:2.8; filter:drop-shadow(0 0 7px rgba(79,193,232,.24)); }
.ring-circle.trustops{ stroke:rgba(166,114,232,.72); stroke-width:2.8; filter:drop-shadow(0 0 8px rgba(166,114,232,.20)); }
.ring-circle.interaction{ stroke:rgba(232,163,61,.68); stroke-width:2.8; filter:drop-shadow(0 0 8px rgba(232,163,61,.18)); }
.ring-label{
  font-size:14px;
  font-weight:700;
  letter-spacing:.16em;
  fill:#EAF1F7;
  stroke:rgba(7,11,16,.96);
  stroke-width:5px;
  paint-order:stroke fill;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.55));
}

/* ---- semantic connectors ---- */
.conn-line.runtime{ stroke:rgba(79,193,232,.72); stroke-width:2.6; filter:drop-shadow(0 0 4px rgba(79,193,232,.14)); }
.conn-line.trustops{ stroke:rgba(166,114,232,.64); stroke-width:2.35; filter:drop-shadow(0 0 4px rgba(166,114,232,.12)); }
.conn-line.interaction{ stroke:rgba(232,163,61,.58); stroke-width:2.0; filter:drop-shadow(0 0 4px rgba(232,163,61,.10)); }

/* ---- glass-like nodes ---- */
.node-shape{
  stroke-width:1.6;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,.25));
  transition:stroke .18s ease, fill .18s ease, filter .18s ease;
}
.node-layer-runtime .node-shape{ fill:url(#nodeRuntime); stroke:rgba(79,193,232,.72); }
.node-layer-trustops .node-shape{ fill:url(#nodeTrust); stroke:rgba(166,114,232,.70); }
.node-layer-interaction .node-shape{ fill:url(#nodeInteraction); stroke:rgba(232,163,61,.68); }
.node-hit:hover .node-shape{
  filter:drop-shadow(0 0 11px rgba(79,193,232,.20));
}
.node-hit.active .node-shape{
  fill:url(#hubGrad);
  stroke:var(--amber) !important;
  stroke-width:2.8;
  filter:drop-shadow(0 0 14px rgba(232,163,61,.28));
}
.node-icon{ stroke:#F2B24B; stroke-width:1.8; }
.node-hit.active .node-icon{ stroke:#63D2F5; filter:drop-shadow(0 0 5px rgba(99,210,245,.35)); }
.node-label{ font-size:12.5px; font-weight:500; fill:#ECF3F8; }
.node-sub{ font-size:8.5px; fill:#8297AA; letter-spacing:.07em; }
.badge-circle{ fill:#F0A83C; filter:drop-shadow(0 0 4px rgba(240,168,60,.24)); }
.badge-count{ font-weight:700; }

/* The hub is the visual anchor without changing the existing component model. */
#node-orchestrator .node-shape{
  fill:url(#hubGrad);
  stroke:rgba(79,193,232,.82);
  stroke-width:2.4;
  filter:drop-shadow(0 0 18px rgba(79,193,232,.18)) drop-shadow(0 8px 18px rgba(0,0,0,.32));
}
#node-orchestrator .node-icon{ stroke:#F0B24B; stroke-width:2; }
#node-orchestrator .node-label{ font-size:13.5px; font-weight:700; }
#node-orchestrator .node-sub{ fill:#6F8EA4; }

/* ---- touch target: invisible area around each node ---- */
.node-hit{ cursor:pointer; }
.node-hit:focus-visible .node-shape{ stroke:#FFFFFF !important; stroke-width:2.6; }

/* ---- severity legend: always a compact horizontal row ---- */
.legend{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  gap:12px;
  white-space:nowrap;
  overflow-x:auto;
  max-width:calc(100% - 24px);
  padding:8px 12px;
  border-radius:999px;
  background:rgba(12,18,25,.88);
  border:1px solid rgba(92,113,132,.38);
  box-shadow:0 8px 24px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(10px);
}
.legend .item{ flex:0 0 auto; gap:6px; }
.legend .dot{ width:8px; height:8px; box-shadow:0 0 6px currentColor; }

/* ---- Guide is intentionally removed from the visual UI in Premium V3 ---- */
.guide-panel{ display:none !important; }

/* ---- mobile controls ---- */
.map-controls{ display:none; }
.scroll-hint{ display:none; }

@media (max-width:860px){
  .diagram-wrap{
    padding:8px 8px 10px;
    border-radius:12px;
  }
  .svg-scroll{
    height:clamp(360px, 56vh, 620px);
    width:100%;
    border-radius:10px;
    touch-action:pan-x pan-y pinch-zoom;
  }
  .diagram-wrap svg{
    flex:none;
  }
  .scroll-hint{
    display:block;
    text-align:center;
    padding:6px 4px 0;
    font-family:var(--font-mono);
    font-size:9.5px;
    color:var(--muted-2);
    letter-spacing:.01em;
  }
  .map-controls{
    display:flex !important;
    position:static !important;
    justify-content:center;
    align-items:center;
    gap:6px;
    margin:7px 0 0;
    padding:6px;
    background:rgba(10,15,21,.90);
    border:1px solid rgba(92,113,132,.34);
    border-radius:999px;
    box-shadow:0 8px 20px rgba(0,0,0,.24);
    backdrop-filter:blur(8px);
  }
  .map-controls button{
    min-width:42px;
    min-height:34px;
    padding:7px 11px;
    border:1px solid rgba(92,113,132,.38);
    background:rgba(255,255,255,.045);
    color:var(--text);
    border-radius:999px;
    font-family:var(--font-mono);
    font-size:10.5px;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .map-controls button:first-child{ min-width:64px; }
  .map-controls button:hover,
  .map-controls button:focus-visible{ border-color:var(--cyan); color:var(--cyan); }
  .legend{
    position:static;
    width:max-content;
    max-width:100%;
    margin:7px auto 0;
    justify-content:flex-start;
    gap:10px;
    font-size:9.5px;
    padding:7px 10px;
  }
  .legend .dot{ width:7px; height:7px; }
  .node-label{ font-size:12px; }
  .node-sub{ font-size:8px; }
}

@media (max-width:420px){
  .svg-scroll{ height:52vh; min-height:330px; }
  .map-controls{ gap:4px; }
  .map-controls button{ min-width:38px; padding:7px 9px; }
  .map-controls button:first-child{ min-width:58px; }
  .legend{ gap:8px; font-size:9px; }
}


/* Premium v3.1 — accessible keyboard toggle for Guided Path */
.guide-head:focus-visible{ outline:2px solid var(--cyan); outline-offset:-2px; border-radius:10px; }
@media (max-width:860px){
  .guide-panel{
    position:static;
    width:100%;
    max-width:100%;
    margin:7px 0 0;
    order:5;
  }
  .guide-body{ max-height:180px; }
}

/* ================================================================
   ASE Premium v3.2 — Hero visual parity + Guided learning layer
   ================================================================ */
.node-halo{
  fill:none;
  stroke:rgba(255,255,255,.035);
  stroke-width:5;
  pointer-events:none;
}
.node-icon-wrap{ pointer-events:none; }
.node-icon-bg{
  fill:rgba(7,12,18,.72);
  stroke:rgba(255,255,255,.10);
  stroke-width:1;
}
.node-icon{
  stroke:#F2B24B;
  stroke-width:1.9;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.node-layer-runtime .node-icon-bg{ fill:rgba(79,193,232,.13); stroke:rgba(79,193,232,.34); }
.node-layer-trustops .node-icon-bg{ fill:rgba(166,114,232,.14); stroke:rgba(166,114,232,.36); }
.node-layer-interaction .node-icon-bg{ fill:rgba(232,163,61,.14); stroke:rgba(232,163,61,.36); }
.node-layer-runtime .node-icon{ stroke:#63D2F5; }
.node-layer-trustops .node-icon{ stroke:#C49AFF; }
.node-layer-interaction .node-icon{ stroke:#F2B24B; }
#node-orchestrator .node-icon-bg{ fill:rgba(79,193,232,.16); stroke:rgba(79,193,232,.42); }
#node-orchestrator .node-icon{ stroke:#F6C15A; stroke-width:2; }
.node-label{ font-size:12.25px; font-weight:650; letter-spacing:.005em; }
.node-sub{ font-size:8px; font-weight:650; letter-spacing:.075em; }

/* Guided Path is a functional learning surface, not decorative chrome. */
.guide-panel{
  display:block !important;
  position:absolute;
  right:16px;
  bottom:72px;
  width:340px;
  max-width:min(38vw, 360px);
  min-height:54px;
  background:linear-gradient(145deg,rgba(18,27,38,.94),rgba(11,17,24,.94));
  border:1px solid rgba(99,210,245,.28);
  border-radius:14px;
  z-index:8;
  overflow:hidden;
  box-shadow:0 18px 44px rgba(0,0,0,.36), 0 0 26px rgba(79,193,232,.08), inset 0 1px 0 rgba(255,255,255,.045);
  backdrop-filter:blur(14px);
}
.guide-head{
  position:relative;
  z-index:2;
  padding:10px 13px;
  background:linear-gradient(90deg,rgba(79,193,232,.09),rgba(166,114,232,.06));
  border-bottom:1px solid rgba(255,255,255,.08);
  font-weight:700;
}
.guide-body{ max-height:300px; padding:12px 14px 14px; overflow-y:auto; }
.guide-tip{ font-size:11.5px; line-height:1.55; }
.guide-chain-head{ font-size:10.5px; line-height:1.35; }
.guide-missing li{ font-size:11px; line-height:1.5; margin-bottom:4px; }

@media (max-width:860px){
  .guide-panel{
    position:static;
    width:100%;
    max-width:100%;
    margin:8px 0 0;
    border-radius:12px;
    min-height:0;
  }
  .guide-body{ max-height:280px; }
  .node-label{ font-size:11.5px; }
  .node-sub{ font-size:7.6px; }
}

/* =====================================================================
   ASE vNext Header Consolidation
   - Global header keeps ASE site navigation.
   - Explorer controls and view tabs are combined into one compact row.
   - Intro overlay gets mobile spacing so it does not sit under the site header.
   ===================================================================== */
.explorer-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 20px;
  background:var(--panel);
  border-bottom:1px solid var(--hairline);
  position:sticky;
  top:74px;
  z-index:28;
  flex-wrap:wrap;
}
.explorer-tabs{
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
  min-width:0;
}
.explorer-tabs .tab-btn{
  margin-right:10px;
  padding:8px 4px;
}
.explorer-stats{
  margin-left:auto;
  justify-content:flex-end;
}
.app > header.topbar .brand h1,
.app > header.topbar .brand .eyebrow{
  display:none;
}
@media (max-width: 860px){
  .intro-overlay{
    align-items:flex-start;
    padding-top:118px;
    overflow-y:auto;
  }
  .intro-card{
    max-width:100%;
    padding-bottom:28px;
  }
  .intro-card h1{
    font-size:clamp(22px, 6vw, 28px);
    line-height:1.15;
    margin:10px 0 12px;
  }
  .intro-card p{
    font-size:13px;
    line-height:1.5;
    margin-bottom:18px;
  }
  .intro-card .steps{
    font-size:11.5px;
    gap:7px;
    margin-bottom:20px;
  }
  .explorer-bar{
    top:96px;
    padding:8px 10px;
    gap:8px;
  }
  .explorer-tabs{
    width:100%;
    overflow-x:auto;
    flex-wrap:nowrap;
    padding-bottom:2px;
  }
  .explorer-tabs .tab-btn{
    white-space:nowrap;
    margin-right:12px;
    font-size:10px;
    padding:8px 2px;
  }
  .explorer-stats{
    width:100%;
    justify-content:space-between;
    gap:8px;
  }
  .explorer-stats .stat{
    align-items:flex-start;
  }
  .explorer-stats .stat .num{
    font-size:14px;
  }
  .explorer-stats .stat .lbl{
    font-size:8.5px;
  }
  .explorer-stats .ghost,
  .explorer-stats .mode-btn{
    font-size:9.5px;
    padding:7px 9px;
  }
}
@media (max-width: 420px){
  .intro-overlay{
    padding-top:132px;
  }
  .explorer-bar{
    top:108px;
  }
}


/* =====================================================================
   ASE vNext Compact Header Patch
   Purpose: prevent the stats/actions area from wrapping unexpectedly on
   GitHub Pages and keep Hint/Reset on the same row on mobile.
   ===================================================================== */
.explorer-bar{
  gap:10px;
  padding:8px 14px;
  flex-wrap:nowrap;
}
.explorer-tabs{
  flex:0 1 auto;
  min-width:0;
  overflow-x:auto;
  white-space:nowrap;
  scrollbar-width:thin;
}
.explorer-tabs .tab-btn{
  flex:0 0 auto;
  margin-right:10px;
  padding:7px 3px;
  font-size:10.5px;
}
.explorer-stats{
  flex:0 0 auto;
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:nowrap;
  white-space:nowrap;
}
.explorer-stats .stat{
  min-width:auto;
  align-items:flex-end;
}
.explorer-stats .stat .num{
  font-size:15px;
}
.explorer-stats .stat .lbl{
  font-size:8.5px;
  letter-spacing:.055em;
}
.explorer-stats .mode-btn{
  padding:6px 9px;
  font-size:9.5px;
}
.explorer-stats button.ghost{
  padding:6px 10px;
  font-size:10px;
  border-radius:6px;
}

@media (max-width: 1024px){
  .explorer-bar{
    flex-wrap:wrap;
    gap:6px;
    padding:7px 10px;
  }
  .explorer-tabs{
    order:1;
    width:100%;
  }
  .explorer-stats{
    order:2;
    width:100%;
    margin-left:0;
    justify-content:space-between;
    gap:6px;
  }
}

@media (max-width: 860px){
  .explorer-bar{
    top:96px;
    padding:6px 8px;
    gap:5px;
  }
  .explorer-tabs{
    width:100%;
    overflow-x:auto;
    flex-wrap:nowrap;
    padding-bottom:0;
  }
  .explorer-tabs .tab-btn{
    margin-right:10px;
    padding:7px 2px;
    font-size:9.5px;
  }
  .explorer-stats{
    width:100%;
    justify-content:space-between;
    gap:4px;
    flex-wrap:nowrap;
  }
  .explorer-stats .stat{
    flex:0 1 auto;
    align-items:flex-start;
    line-height:1;
  }
  .explorer-stats .stat .num{
    font-size:12.5px;
  }
  .explorer-stats .stat .lbl{
    font-size:7.3px;
    letter-spacing:.035em;
  }
  .explorer-stats .mode-toggle{
    flex:0 0 auto;
  }
  .explorer-stats .mode-btn{
    font-size:8.3px;
    padding:5px 6px;
  }
  .explorer-stats button.ghost{
    font-size:8.5px;
    padding:5px 7px;
    min-width:auto;
  }
}

@media (max-width: 420px){
  .explorer-bar{
    top:108px;
    padding:5px 6px;
  }
  .explorer-stats{
    gap:3px;
  }
  .explorer-stats .stat .num{
    font-size:11.5px;
  }
  .explorer-stats .stat .lbl{
    font-size:6.8px;
  }
  .explorer-stats .mode-btn{
    font-size:7.8px;
    padding:5px 5px;
  }
  .explorer-stats button.ghost{
    font-size:8px;
    padding:5px 6px;
  }
}
