/* OCTO SI Guardian situation room. Uses the site palette from /site.css. No inline styles (CSP style-src 'self'). */
/* The OCTO mark is the self-hosted Twemoji image, sized by .brand-mark in site.css. This page does not draw one. */
.product-name{text-transform:none;letter-spacing:0}
header .brand{white-space:normal}
header .brand .brand-name{white-space:normal}
.g-hero{padding-block:40px 20px;display:flex;flex-direction:column;gap:14px}
.g-hero h1{font-size:clamp(30px,5vw,52px);max-width:20ch}
.g-hero .lede{font-size:clamp(17px,2vw,20px);max-width:var(--measure);color:var(--ink-2)}
.g-built{font-size:14px;color:var(--ink-2)}
.g-age{display:block;margin-top:4px;color:var(--amber);font-weight:600}
.g-room{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding-bottom:48px}
@media (min-width:900px){.g-room{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.g-board,.g-feed{grid-column:1/-1}}
.g-panel{background:var(--surface);border:1px solid var(--rule);padding:20px;border-top:3px solid var(--accent)}
.g-panel.g-attack{border-top-color:var(--blue)}
.g-panel.g-topnow{border-top-color:var(--amber)}
section.g-panel{padding-block:20px}
.g-ph{font-size:13px!important;letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px!important;max-width:none!important;color:var(--ink)}
.g-pi{font-size:14px;color:var(--ink-2);margin-bottom:14px}
.g-tiles{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:700px){.g-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1000px){.g-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}}
.g-tile{background:var(--surface-2);padding:14px;display:flex;flex-direction:column;gap:4px;border-left:3px solid var(--accent)}
.g-tile.warn{border-left-color:var(--amber)}
.g-tile b{font-size:clamp(24px,3vw,32px);line-height:1.1;font-variant-numeric:tabular-nums}
.g-tile span{font-size:13px;color:var(--ink-2);line-height:1.35}
.g-tile-src{font-size:11.5px;line-height:1.35}
.g-src{font-size:13px;color:var(--ink-2);margin-top:14px;line-height:1.5}
.g-src a{text-decoration:underline;text-underline-offset:2px}
.g-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle;background:var(--accent)}
.g-dot.bad{background:var(--amber)}
.g-time{white-space:nowrap}
@media (max-width:560px){.g-time{white-space:normal}}
.g-unavail{border-left:3px solid var(--amber);padding:8px 12px;background:var(--surface-2);margin-top:16px;font-size:15px}
.g-rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;counter-reset:r}
.g-rank li{counter-increment:r;padding-left:34px;position:relative}
.g-rank li::before{content:counter(r);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--surface-2);border:1px solid var(--rule);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.g-rank-h{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.g-rank-h a{font-weight:700;font-variant-numeric:tabular-nums}
.g-rank p{font-size:14px}
.g-meter{width:100%;height:10px;display:block;margin:6px 0 4px}
.g-vp{color:var(--ink-2);font-size:14px}
.g-tag{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;border:1px solid var(--amber);color:var(--amber);padding:1px 6px;white-space:nowrap}
.g-tag-c{border-color:var(--blue);color:var(--blue)}
.g-sub{color:var(--ink-2);font-size:13px}
.g-na{color:var(--ink-2);font-style:italic}
.g-heat{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
@media (max-width:699px){.g-heat{grid-template-columns:minmax(0,1fr)}}
@media (min-width:700px) and (max-width:899px){.g-heat{grid-template-columns:repeat(2,minmax(0,1fr))}}
.g-heat li{padding:8px 10px;font-size:13px;line-height:1.3;color:#0A0E14;display:flex;flex-direction:column;gap:2px}
.g-heat a{color:inherit;text-decoration:none}
.g-heat a:hover,.g-heat a:focus-visible{text-decoration:underline}
.g-heat a:focus-visible{outline:2px solid #0A0E14;outline-offset:2px}
.g-def{display:flex;flex-wrap:wrap;gap:2px 4px;margin:6px 0 0;font-size:11px;font-weight:700}
/* Each D3FEND ID is a link: at least a 24px target (WCAG 2.2 target size). */
.g-def a{display:inline-flex;align-items:center;min-height:24px;padding:0 3px}
.g-def span{flex:0 0 100%;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.g-defnote{margin:6px 0 0;font-size:12px;font-weight:650}
.g-feature{background:var(--surface-2);border:1px solid var(--rule);border-left:3px solid var(--amber);padding:16px 18px;margin:8px 0 18px}
.g-feature h3{font-size:clamp(20px,3vw,26px);margin:4px 0 8px}
.g-feature ol{margin:8px 0 0;padding-left:1.4em}
.g-feature li{margin:4px 0}
.g-feature a:focus-visible,.g-breaking a:focus-visible,.g-table a:focus-visible,.g-named a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.g-breaking{background:var(--surface-2);border:1px solid var(--rule);border-left:3px solid var(--amber);padding:16px 18px;margin:8px 0 18px}
.g-breaking .eyebrow{color:var(--amber)}
.g-breaking h3{font-size:clamp(20px,3vw,26px);margin:4px 0 8px}
.g-breaking ol,.g-breaking ul{margin:8px 0 0;padding-left:1.4em}
.g-breaking li{margin:4px 0}
.g-named{margin-top:18px;padding-top:12px;border-top:1px solid var(--rule)}
.g-named h3{font-size:16px;margin:0 0 10px}
.g-named ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.g-scroll{max-width:100%}
.g-scroll-clip{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.g-scroll-clip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.g-scroll .g-table{width:100%}
.g-scroll td:nth-child(2) a{white-space:normal;overflow-wrap:break-word}
.g-swipe{display:none;margin:12px 0 0;font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--accent-ink);text-align:right}
@media (max-width:820px){
  header .wrap{flex-wrap:wrap;gap:0 12px;align-items:center}
  header nav{
    flex-wrap:nowrap;
    justify-content:flex-start;
    gap:0;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    width:100%;
    max-width:100%;
    padding-inline-end:28px;
  }
  header nav::-webkit-scrollbar{display:none}
  header nav a{
    flex:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    min-height:44px;
    min-width:44px;
    padding:0 12px;
  }
  header nav a.wide{display:inline-flex}
}
@media (max-width:700px){
  header .wrap{position:relative}
  header nav{
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 64px),transparent);
    mask-image:linear-gradient(to right,#000 calc(100% - 64px),transparent);
    padding-inline-end:52px;
  }
  /* Pinned hint. A pseudo-element inside the scrolling nav would scroll away with the links. */
  header .wrap::after{
    content:"→";
    content:"→" / "";
    position:absolute;
    right:0;
    bottom:12px;
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    font-size:20px;
    font-weight:800;
    line-height:1;
    color:var(--accent-ink);
    pointer-events:none;
    background:linear-gradient(90deg,transparent,var(--bg) 42%);
  }
  .g-swipe{display:block}
  .g-scroll-clip{
    -webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);
    mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);
  }
  .g-scroll .g-table{width:40rem;min-width:40rem;table-layout:fixed}
  .g-scroll th:nth-child(1),.g-scroll td:nth-child(1){width:8.2rem;white-space:normal}
  .g-scroll th:nth-child(2),.g-scroll td:nth-child(2){width:13.5rem}
  .g-scroll th:nth-child(3),.g-scroll td:nth-child(3){width:12.5rem}
  .g-scroll th:nth-child(4),.g-scroll td:nth-child(4){width:5.8rem}
  /* Titles are shown in full: a clipped advisory title hides what the row is. */
}
.g-heat b{font-variant-numeric:tabular-nums}
.g-heat em{font-style:normal;font-size:12px;font-weight:700}
.heat1{background:#CFE5FF}.heat2{background:#A6CEFF}.heat3{background:#7DB7FF}.heat4{background:#F2C76B}.heat5{background:#F29E4B}
.g-list{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:860px){.g-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.g-item{background:var(--surface);border:1px solid var(--rule);padding:18px;display:flex;flex-direction:column;gap:10px}
.g-item.g-ransom{border-left:3px solid var(--amber)}
.g-item h3{font-size:18px;display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}
.g-name{font-weight:600}
.g-desc{color:var(--ink-2);font-size:15px}
.g-facts{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin:0;font-size:14px}
.g-facts div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px}
.g-facts dt{color:var(--ink-2)}
.g-facts dd{margin:0}
.g-do{font-size:14px;border-top:1px solid var(--rule);padding-top:10px}
.g-meta{font-size:14px;color:var(--ink-2)}
.g-h3{font-size:20px;margin:24px 0 10px}
.g-table{border-collapse:collapse;margin-top:14px;font-size:15px;min-width:260px}
.g-table caption{text-align:left;color:var(--ink-2);font-size:13px;padding-bottom:6px}
.g-table th,.g-table td{border-bottom:1px solid var(--rule);padding:6px 16px 6px 0;text-align:left}
.g-table td{font-variant-numeric:tabular-nums}
.g-note{font-size:14px;color:var(--ink-2);margin-top:12px}
.g-spark{display:flex;align-items:flex-end;gap:4px;height:64px;margin-top:10px}
.g-spark span{width:18px;background:var(--blue)}
.g-spark .h1{height:6px}.g-spark .h2{height:12px}.g-spark .h3{height:18px}.g-spark .h4{height:24px}.g-spark .h5{height:30px}
.g-spark .h6{height:36px}.g-spark .h7{height:42px}.g-spark .h8{height:48px}.g-spark .h9{height:54px}.g-spark .h10{height:60px}
.g-steps{list-style:none;margin:28px 0 20px;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;counter-reset:s}
@media (min-width:860px){.g-steps{grid-template-columns:repeat(5,minmax(0,1fr))}}
.g-steps li{background:var(--surface);border:1px solid var(--rule);padding:16px;counter-increment:s}
.g-steps h3{font-size:17px;margin-bottom:6px}
.g-steps h3::before{content:counter(s) ". ";color:var(--accent-ink)}
.g-steps p{font-size:14px;color:var(--ink-2)}
.g-cta-row{margin-top:18px}
.g-chips{list-style:none;margin:18px 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.g-chips li{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--rule);padding:8px 10px;font-size:14px}
.g-chips b{font-variant-numeric:tabular-nums;margin-left:4px}
.g-swatch{width:14px;height:14px;border:2px solid #1a140c;flex:none}
.g-swatch.af,.g-land.af{background:#e07a2f;fill:#e07a2f}
.g-swatch.eu,.g-land.eu{background:#3c6eb0;fill:#3c6eb0}
.g-swatch.as,.g-land.as{background:#3f8f4e;fill:#3f8f4e}
.g-swatch.na,.g-land.na{background:#e0b23a;fill:#e0b23a}
.g-swatch.sa,.g-land.sa{background:#c4473a;fill:#c4473a}
.g-swatch.oc,.g-land.oc{background:#7b4d9a;fill:#7b4d9a}
.g-land.ot,.g-land.an{fill:#6d6458}
.g-map{position:relative;overflow:hidden;background:#1b4f66;border:6px solid #1a120c;border-radius:16px;padding:8px;box-shadow:inset 0 0 0 3px #c4a574}
.g-map svg{display:block;width:100%;max-width:100%;height:auto;min-width:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.g-ocean{fill:#1b4f66}
.g-land{stroke:#140e08;stroke-width:5.5;stroke-linejoin:round;stroke-linecap:round}
.g-land-link.is-selected .g-land{fill:#f4e27a;stroke:#1a120c;stroke-width:7}
.g-frame{stroke:#1a120c;stroke-width:8}
.g-cont-label{fill:#1a120c;font-size:20px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;stroke:#f7f1e4;stroke-width:6px;paint-order:stroke fill}
.g-token{cursor:pointer}
.g-token-ring{fill:#f6edd6;stroke:#1a120c;stroke-width:3.2}
.g-token-core{fill:#8d1d1d;stroke:#1a120c;stroke-width:2.4}
.g-token text{fill:#fff8ea;font-size:16px;font-weight:800}
.g-token.is-selected .g-token-core{fill:#5c1010;stroke:#f6edd6;stroke-width:2.4}
.g-token:focus{outline:none}
.g-token:focus-visible .g-token-ring{stroke:#fff8ea;stroke-width:3.2}
.g-map-empty{display:none;position:absolute;left:12px;right:12px;top:50%;transform:translateY(-50%);margin:0;text-align:center;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#e6edf3;text-shadow:0 1px 2px #0a0e14}
.g-map[data-empty~="c2"][data-layer="c2"] .g-map-empty,
.g-map[data-empty~="malware"][data-layer="malware"] .g-map-empty,
.g-map[data-empty~="feodo"][data-layer="feodo"] .g-map-empty{display:block}
.g-map[data-empty~="c2"][data-layer="c2"] svg,
.g-map[data-empty~="malware"][data-layer="malware"] svg,
.g-map[data-empty~="feodo"][data-layer="feodo"] svg{opacity:.5}
.g-map[data-empty~="c2"][data-layer="c2"],
.g-map[data-empty~="malware"][data-layer="malware"],
.g-map[data-empty~="feodo"][data-layer="feodo"]{
  background-color:#2a3140;
  background-image:repeating-linear-gradient(-45deg,rgba(169,182,198,.22) 0 7px,transparent 7px 14px);
}
.g-token{visibility:hidden;pointer-events:none}
.g-map[data-layer="c2"] .g-token[data-token-layer="c2"],
.g-map[data-layer="malware"] .g-token[data-token-layer="malware"],
.g-map[data-layer="feodo"] .g-token[data-token-layer="feodo"]{visibility:visible;pointer-events:auto}
.g-feed{border-top-color:var(--amber)}
.g-feed-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.g-feed-item{padding-bottom:10px;border-bottom:1px solid var(--rule)}
.g-feed-item a{font-weight:700}
.g-feed-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;margin-top:4px;font-size:13px;color:var(--ink-2)}
.g-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;border:1px solid var(--rule);color:var(--ink);padding:1px 6px}
.g-label.est{border-color:var(--blue);color:var(--blue)}
.g-label.rep{border-color:var(--amber);color:var(--amber)}
.g-pill{display:inline-flex;align-items:baseline;gap:4px;border:1px solid var(--rule);background:var(--surface);padding:6px 10px;font-weight:700;color:var(--ink)}
.g-pill b{font-variant-numeric:tabular-nums}
.g-health{margin:0}
.g-gaps{margin-top:12px;padding:12px 14px;border:1px solid var(--rule);background:repeating-linear-gradient(-45deg,rgba(169,182,198,.2) 0 6px,transparent 6px 12px),var(--surface-2)}
.g-gaps-clear{background:var(--surface-2)}
.g-refresh{margin:0;padding:8px 12px;border-left:3px solid var(--accent);background:var(--surface-2);font-weight:700}
.g-refresh[hidden]{display:none}
.g-tile.gap{background:repeating-linear-gradient(-45deg,rgba(169,182,198,.2) 0 6px,transparent 6px 12px),var(--surface-2);border-left-color:var(--ink-2)}
.g-tile.gap b{font-size:clamp(16px,2vw,20px);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.g-gap-note{border-left:3px solid var(--ink-2);padding:8px 12px;background:repeating-linear-gradient(-45deg,rgba(169,182,198,.18) 0 6px,transparent 6px 12px),var(--surface-2);margin:8px 0 14px}
.g-about{margin-top:14px;border-top:1px solid var(--rule);padding-top:8px}
.g-about summary{cursor:pointer;font-weight:700;font-size:14px}
.g-about-dl{margin:8px 0 0;display:flex;flex-direction:column;gap:8px}
.g-about-dl div{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:8px}
.g-about-dl dt{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.g-about-dl dd{margin:0;font-size:14px;color:var(--ink-2)}
.g-layers{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.g-layers a{border:1px solid var(--rule);padding:8px 12px;min-height:44px;display:inline-flex;align-items:center;color:var(--ink);background:var(--surface)}
.g-layers a.is-on{border-color:var(--amber);color:var(--amber);font-weight:700}
.g-caveat{margin-top:12px;border-left:3px solid var(--amber);padding:2px 0 2px 12px}
.g-map-layout{display:flex;flex-direction:column;gap:14px}
.g-map-rank{order:-1;min-width:0}
.g-tip{background:var(--surface-2);border:1px solid var(--rule);padding:10px 12px}
.g-tip p{font-weight:700;margin-bottom:8px}
.g-multiples{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.g-multiples li{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;text-align:center}
.g-multiples b{font-variant-numeric:tabular-nums;font-size:18px}
.g-multiples span{font-size:12px;color:var(--ink-2)}
.g-bar{display:block;width:18px;background:#8d2a2a;height:6px}
.g-bar.h1{height:6px}.g-bar.h2{height:10px}.g-bar.h3{height:14px}.g-bar.h4{height:18px}.g-bar.h5{height:22px}
.g-bar.h6{height:26px}.g-bar.h7{height:30px}.g-bar.h8{height:34px}.g-bar.h9{height:38px}.g-bar.h10{height:42px}
.g-country-head,.g-country-list li{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(3.2rem,.55fr));gap:6px;align-items:center}
.g-country-head{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px}
.g-country-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.g-country-list li{padding:6px 0;border-bottom:1px solid var(--rule)}
.g-country-list a{font-weight:700}
.g-country-list .is-selected a{color:var(--amber)}
.g-count{font-variant-numeric:tabular-nums;text-align:right}
.g-count.is-gap{color:var(--ink-2);font-size:11px;line-height:1.2;text-align:right;white-space:normal}
.g-map-note{font-size:13px;color:var(--ink-2);margin-top:8px}
#top-risk,#advisories,#map,#attack,#exploited,#critical,#malware,#guardian,#gaps,#odds{scroll-margin-top:128px}
@media (min-width:821px){
  #top-risk,#advisories,#map,#attack,#exploited,#critical,#malware,#guardian,#gaps,#odds{scroll-margin-top:84px}
}
@media (min-width:900px){
  .g-map-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.72fr);align-items:start}
  .g-map-rank{order:0}
  .g-country-list{max-height:540px;overflow:auto}
}
@media (max-width:420px){
  .g-about-dl div{grid-template-columns:minmax(0,1fr);gap:2px}
  .g-country-head,.g-country-list li{grid-template-columns:minmax(0,1.15fr) repeat(3,minmax(0,.7fr));gap:4px}
}

/* Phone safety net: long unbroken tokens (CVE and D3FEND IDs, URLs, version lists, feed titles) wrap inside their box
   instead of widening the page. The advisories table keeps its own horizontal scroll wrapper. */
main,footer{overflow-wrap:break-word}
.g-tile,.g-feed-item,.g-item,.g-feature,.g-breaking,.g-src,.g-gaps,.g-gap-note,.g-unavail,.g-about-dl dd,.g-heat li,.g-rank li,.g-named li,.g-cves li,.g-meta,.g-map-note,.g-country-list a{overflow-wrap:anywhere;min-width:0}
.g-scroll-clip .g-table td,.g-scroll-clip .g-table th{overflow-wrap:break-word}
