/*
 * SENTINEL GRID — ATLAS COLLECTION / v1.1
 * Visual changes only: public-feed provenance, endpoints and logic are unchanged.
 * Choose a palette in the DISPLAY selector. Preference is browser-local.
 */
:root,
:root[data-theme="atlas"] {
  --ui-bg:#f1eee5; --ui-side:#202723; --ui-side-line:#3c453d;
  --ui-side-text:#e4e9df; --ui-side-muted:#aebbb0;
  --ui-panel:#fffcf5; --ui-panel-2:#f7f4eb; --ui-line:#dcd7c9;
  --ui-ink:#212d29; --ui-muted:#69766f; --ui-subtle:#8a938b;
  --ui-accent:#d95435; --ui-accent-dark:#b83c23; --ui-accent-on:#fffdf4;
  --ui-soft-accent:#fff0e7; --ui-field:#fffdf8; --ui-hover:#fbefe5;
  --ui-map:#eae5d9; --ui-map-grid:rgba(105,89,66,.17);
  --ui-shadow:0 14px 36px rgba(41,49,42,.055);
  --ui-pin:#b94c32; --ui-pin-outline:#fff0d5;
  --ui-offline:#856852; --ui-offline-outline:#f9e0aa;
  --ui-positive:#1c7a59; --ui-negative:#bd453e; --ui-caution:#99611c;
  --sans:'DM Sans',system-ui,sans-serif; --mono:'DM Mono',monospace;
}
:root[data-theme="ember"] {
  --ui-bg:#16140f; --ui-side:#0d0d0c; --ui-side-line:#353129;
  --ui-side-text:#f2ebda; --ui-side-muted:#b9ac92;
  --ui-panel:#211e18; --ui-panel-2:#29241c; --ui-line:#403a2e;
  --ui-ink:#f6ead3; --ui-muted:#bbad96; --ui-subtle:#968874;
  --ui-accent:#f5ab4d; --ui-accent-dark:#d38a2d; --ui-accent-on:#271908;
  --ui-soft-accent:#47341f; --ui-field:#1a1813; --ui-hover:#352a1d;
  --ui-map:#251f18; --ui-map-grid:rgba(213,161,90,.13);
  --ui-shadow:0 16px 50px rgba(0,0,0,.14);
  --ui-pin:#f5aa4c; --ui-pin-outline:#fff1cb;
  --ui-offline:#9c866a; --ui-offline-outline:#dfb688;
  --ui-positive:#8ad6a1; --ui-negative:#ff847c; --ui-caution:#f3c278;
}
:root[data-theme="violet"] {
  --ui-bg:#121023; --ui-side:#171227; --ui-side-line:#413553;
  --ui-side-text:#ede8ff; --ui-side-muted:#b7a9d2;
  --ui-panel:#211b35; --ui-panel-2:#28213e; --ui-line:#45385d;
  --ui-ink:#f4edff; --ui-muted:#b5a8ce; --ui-subtle:#968ab3;
  --ui-accent:#bc92ff; --ui-accent-dark:#9d70ef; --ui-accent-on:#1b1231;
  --ui-soft-accent:#3f305c; --ui-field:#171229; --ui-hover:#372a52;
  --ui-map:#201a35; --ui-map-grid:rgba(174,138,233,.13);
  --ui-shadow:0 16px 50px rgba(0,0,0,.11);
  --ui-pin:#be92ff; --ui-pin-outline:#f4e8ff;
  --ui-offline:#ddaa75; --ui-offline-outline:#f8e2c5;
  --ui-positive:#9cdbb4; --ui-negative:#fa919b; --ui-caution:#e9c07b;
}
/* Global architecture */
body {background:var(--ui-bg);color:var(--ui-ink);font-family:var(--sans);font-size:13px;transition:background .22s,color .22s}
::selection {background:var(--ui-soft-accent);color:var(--ui-ink)}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible {outline-color:var(--ui-accent)}
.sidebar {background:var(--ui-side);border-right:1px solid var(--ui-side-line);padding:30px 17px 18px;width:242px;flex-basis:242px}
.sidebar:before {content:'';position:absolute;top:0;left:0;right:0;height:5px;background:var(--ui-accent)}
.brand {gap:12px;padding:0 6px;margin-bottom:54px}
.brand-icon {border:1px solid var(--ui-accent);border-radius:50%;width:41px;height:41px;color:var(--ui-accent);background:transparent}
.brand-icon svg {width:30px}
.brand-text {font-family:'Space Grotesk',sans-serif;letter-spacing:.065em;font-size:17px;color:var(--ui-side-text);line-height:1.16}
.brand-text span {color:var(--ui-accent)}
.brand-text small {font-size:8px;letter-spacing:.075em;color:var(--ui-side-muted);margin-top:8px}
.nav-label {color:var(--ui-side-muted);opacity:.72;letter-spacing:.16em}
.nav-item {color:var(--ui-side-muted);border-radius:2px;font-family:var(--sans);font-size:12px;font-weight:600;padding:12px 10px}
.nav-item:hover {background:var(--ui-side-line);color:var(--ui-side-text)}
.nav-item.active {background:var(--ui-accent);color:var(--ui-accent-on);border-color:var(--ui-accent);box-shadow:inset 3px 0 0 rgba(0,0,0,.15)}
.nav-icon {font-size:21px}
.shortcut,.active .shortcut {color:inherit;opacity:.7}
.feed-label {margin-top:39px}
.source-row {color:var(--ui-side-muted);font-size:11px}
.source-row small {color:var(--ui-side-muted);opacity:.65}
.status-dot {background:var(--ui-side-muted)}
.status-dot.ok {background:var(--ui-positive);box-shadow:none}
.status-dot.error {background:var(--ui-negative)}
.status-dot.stale {background:var(--ui-caution)}
.status-dot.demo {background:var(--ui-side-muted)}
.sidebar-bottom {border-top-color:var(--ui-side-line)}
.sidebar-bottom b {color:var(--ui-side-text)}
.sidebar-bottom small {color:var(--ui-side-muted)}
.identity-avatar {background:var(--ui-accent);color:var(--ui-accent-on);border-color:var(--ui-accent);border-radius:50%;width:36px;height:36px}
.green-dot {background:var(--ui-positive)}
.topbar {background:var(--ui-panel);border-bottom:1px solid var(--ui-line);height:70px;padding:0 33px}
.top-right {gap:16px}
.breadcrumb {color:var(--ui-muted);font-size:9px;letter-spacing:.13em}
.breadcrumb span {color:var(--ui-accent)}
.utc {color:var(--ui-muted)}
.mode-pill {background:var(--ui-soft-accent);color:var(--ui-ink);border:1px solid var(--ui-line);border-radius:3px;white-space:nowrap}
.mode-pill i {background:var(--ui-caution)}
.mode-pill.live {color:var(--ui-positive);border-color:var(--ui-positive)}
.mode-pill.live i {background:var(--ui-positive)}
.mode-pill.demo {color:var(--ui-caution);border-color:var(--ui-line)}
.mode-pill.demo i {background:var(--ui-caution)}
.mode-pill.error {color:var(--ui-negative);border-color:var(--ui-line)}
.mode-pill.error i {background:var(--ui-negative)}
.icon-btn {background:var(--ui-panel-2);border-color:var(--ui-line);color:var(--ui-ink);border-radius:3px}
.mobile-menu {color:var(--ui-ink)}
.theme-picker {display:flex;gap:9px;align-items:center;color:var(--ui-muted);font:9px var(--mono);letter-spacing:.08em;white-space:nowrap}
.theme-picker select {appearance:none;-webkit-appearance:none;min-width:160px;padding:9px 28px 9px 11px;border-radius:3px;border:1px solid var(--ui-line);font:10px var(--mono);letter-spacing:.04em;color:var(--ui-ink);background-color:var(--ui-panel-2);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%2381786b' stroke-width='2' d='m5 8 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:15px;background-position:right 8px center;cursor:pointer}
.theme-picker select:hover {border-color:var(--ui-accent)}
/* Editorial hero area */
.main-content {padding:39px 33px 26px;max-width:1710px}
.page-heading {padding:11px 0 18px;margin-bottom:17px;position:relative;align-items:end;border-bottom:1px solid var(--ui-line)}
.page-heading:before {content:'SG / 01';position:absolute;right:0;top:-13px;color:var(--ui-subtle);font:10px var(--mono);letter-spacing:.14em}
.eyebrow {font:10px var(--mono);letter-spacing:.16em;color:var(--ui-accent);font-weight:500}
.eyebrow .line {height:3px;width:22px;background:var(--ui-accent)}
.eyebrow-divider {opacity:.4}
h1 {font-family:'Space Grotesk',var(--sans);font-size:clamp(30px,3.2vw,52px);font-weight:600;letter-spacing:-.056em;line-height:1.06;margin:14px 0 12px}
.slash {color:var(--ui-accent)}
.subtitle {color:var(--ui-muted);font-size:12px;max-width:700px}
.header-actions {margin-bottom:4px}
.primary-btn,.ghost-btn {border-radius:3px;letter-spacing:.02em;font-family:var(--sans);font-size:11px;font-weight:700;box-shadow:none}
.primary-btn {background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-accent-on)}
.primary-btn:hover {background:var(--ui-accent-dark);border-color:var(--ui-accent-dark)}
.ghost-btn {color:var(--ui-ink);border-color:var(--ui-line);background:var(--ui-panel)}
.ghost-btn:hover {color:var(--ui-accent);border-color:var(--ui-accent)}
.notice {background:var(--ui-soft-accent);border:1px solid var(--ui-accent);color:var(--ui-ink);border-radius:2px}
.notice.info {background:var(--ui-soft-accent);border-color:var(--ui-line);color:var(--ui-ink)}
/* Metrics — printed atlas cards, not glowing SOC tiles */
.metrics-grid {gap:12px;margin-bottom:14px}
.metric-card {background:var(--ui-panel);border-color:var(--ui-line);border-radius:3px;min-height:152px;padding:22px 20px 16px;box-shadow:var(--ui-shadow)}
.metric-card:before {content:'';position:absolute;left:0;top:0;width:100%;height:3px;background:var(--ui-accent)}
.metric-card:after {background:none;width:auto;height:auto;border-radius:0;content:counter(metric,decimal-leading-zero);counter-increment:metric;right:17px;bottom:13px;top:auto;color:var(--ui-line);font:28px 'Space Grotesk',sans-serif}
.metrics-grid {counter-reset:metric}
.metric-top {color:var(--ui-muted);font-size:10px;letter-spacing:.055em;position:relative;z-index:1}
.metric-glyph {color:var(--ui-accent);font-size:19px}
.metric-value {font-family:'Space Grotesk',sans-serif;font-weight:600;color:var(--ui-ink);font-size:43px;line-height:1.13;margin:12px 0 8px}
.metric-bottom {color:var(--ui-muted);font-size:10px;position:relative;z-index:1}
.micro-dot {background:var(--ui-accent)}
.red-bg {background:var(--ui-negative)}
.amber-bg {background:var(--ui-caution)}
.green-bg {background:var(--ui-positive)}
/* Data panels */
.panel {background:var(--ui-panel);border:1px solid var(--ui-line);border-radius:3px;box-shadow:var(--ui-shadow)}
.panel-head {border-bottom:1px solid var(--ui-line);padding:17px 19px;min-height:76px}
.panel h2 {font:600 15px 'Space Grotesk',sans-serif;letter-spacing:-.026em;color:var(--ui-ink)}
.panel-head p {color:var(--ui-muted);font-size:10px}
.panel-symbol,.amber-text,.green-text {color:var(--ui-accent)}
.primary-grid,.secondary-grid,.bottom-grid {gap:14px}
.secondary-grid,.bottom-grid {margin-top:14px}
.age-tag {color:var(--ui-muted);background:var(--ui-panel-2);border:1px solid var(--ui-line);border-radius:3px}
.age-tag.warn {color:var(--ui-caution);background:var(--ui-soft-accent)}
.mini-btn {color:var(--ui-muted);background:var(--ui-panel-2);border-color:var(--ui-line);border-radius:2px}
.map-controls {padding:14px 19px 9px}
.filter-tabs button {background:var(--ui-panel-2);border-color:var(--ui-line);color:var(--ui-muted);border-radius:2px;font-weight:600}
.filter-tabs button.selected {background:var(--ui-ink);color:var(--ui-panel);border-color:var(--ui-ink)}
.map-stats {color:var(--ui-muted)}
.legend-dot {background:var(--ui-accent);box-shadow:0 0 0 3px var(--ui-soft-accent)}
.separator {color:var(--ui-line)}
/* Atlas map — very different from the previous dark hologram */
.map-stage {background:var(--ui-map);border:1px solid var(--ui-line);border-radius:1px;height:355px;margin:5px 13px 0}
.map-grid-overlay {background:linear-gradient(to right,transparent calc(100% - 1px),var(--ui-map-grid) 1px) 0 0/12.5% 100%,linear-gradient(to bottom,transparent calc(100% - 1px),var(--ui-map-grid) 1px) 0 0/100% 20%}
.map-hud {color:var(--ui-muted);font-size:10px;letter-spacing:.11em}
.map-hud small {color:var(--ui-subtle);font-size:8px}
.blink {color:var(--ui-accent)}
.map-pin .pulse {fill:var(--ui-pin);opacity:.19}
.map-pin circle.pin {fill:var(--ui-pin);stroke:var(--ui-pin-outline);stroke-width:1.25}
.map-pin.offline circle.pin {fill:var(--ui-offline);stroke:var(--ui-offline-outline)}
.map-pin .pin-number {fill:var(--ui-accent-on);font-weight:500}
.map-pin:hover circle.pin,.map-pin:focus circle.pin {stroke:var(--ui-ink);stroke-width:2}
.zoom-controls {border:1px solid var(--ui-line);border-radius:2px}
.zoom-controls button {background:var(--ui-panel);color:var(--ui-ink)}
.zoom-controls button+button {border-color:var(--ui-line)}
.map-corner {color:var(--ui-subtle)}
.cross {color:var(--ui-accent)}
.map-tooltip {background:var(--ui-panel);border-color:var(--ui-accent);color:var(--ui-ink);box-shadow:0 12px 22px #0003;border-radius:3px}
.map-tooltip b {color:var(--ui-ink)}
.map-tooltip span {color:var(--ui-muted)}
.map-footer {color:var(--ui-muted);font-size:9px}
.map-footer b {color:var(--ui-ink)}
.map-footer>span:last-child {color:var(--ui-subtle)}
/* Indicator lists */
.text-button {color:var(--ui-accent);font-weight:500}
.explorer-search {color:var(--ui-muted);background:var(--ui-field);border-color:var(--ui-line);border-radius:2px}
.explorer-search input {color:var(--ui-ink)}
.explorer-search input::placeholder {color:var(--ui-subtle)}
.explorer-search button {color:var(--ui-muted)}
.explorer-head {color:var(--ui-muted)}
.explorer-head select {background:var(--ui-panel-2);color:var(--ui-ink);border-color:var(--ui-line);border-radius:2px}
.infra-list {scrollbar-color:var(--ui-line) transparent}
.infra-item {border-top-color:var(--ui-line)}
.infra-item:hover,.kev-item:hover {background:var(--ui-hover)}
.infra-flag {background:var(--ui-panel-2);border-color:var(--ui-line);color:var(--ui-muted);border-radius:2px}
.infra-ip {color:var(--ui-ink);font-weight:500}
.infra-meta {color:var(--ui-muted)}
.threat-badge {background:var(--ui-soft-accent);color:var(--ui-negative);border-color:var(--ui-line);border-radius:2px}
.threat-badge.online {color:var(--ui-positive);background:var(--ui-panel-2);border-color:var(--ui-line)}
.infra-date {color:var(--ui-subtle)}
.list-footer {border-top-color:var(--ui-line);color:var(--ui-muted)}
.list-footer button {background:var(--ui-panel-2);color:var(--ui-ink);border-color:var(--ui-line);border-radius:2px}
.list-title {color:var(--ui-subtle)}
.kev-item {border-top-color:var(--ui-line)}
.kev-id {color:var(--ui-ink)}
.kev-name {color:var(--ui-muted)}
.kev-item time {color:var(--ui-muted)}
.star-btn {color:var(--ui-subtle)}
.star-btn:hover,.star-btn.on {color:var(--ui-accent)}
.card-bottom {border-top-color:var(--ui-line);color:var(--ui-muted)}
.card-bottom a {color:var(--ui-accent)}
.port-num {color:var(--ui-ink)}
.port-num small {color:var(--ui-muted)}
.port-bar {background:var(--ui-panel-2)}
.port-bar div {background:var(--ui-accent)}
.port-bar-text {color:var(--ui-muted)}
.watch-controls input {background:var(--ui-field);border-color:var(--ui-line);color:var(--ui-ink);border-radius:2px}
.watch-item {border-top-color:var(--ui-line)}
.watch-item span {color:var(--ui-ink)}
.watch-item button {color:var(--ui-negative)}
.empty-state {color:var(--ui-muted)}
.pill-count {background:var(--ui-soft-accent);color:var(--ui-accent);border-color:var(--ui-line)}
.intel-table th {color:var(--ui-muted);border-bottom-color:var(--ui-line)}
.intel-table td {color:var(--ui-ink);border-bottom-color:var(--ui-line)}
.intel-table td:nth-child(2) {color:var(--ui-positive)}
.intel-table td button {color:var(--ui-accent)}
.scan-row {color:var(--ui-ink);border-top-color:var(--ui-line)}
.scan-row small {color:var(--ui-muted)}
.footer {color:var(--ui-muted);border-top:1px solid var(--ui-line);margin-top:24px}
.footer b {color:var(--ui-accent)}
.footer span {color:var(--ui-accent)}
/* Details overlays */
.modal-scrim {background:#141510b8}
.modal {background:var(--ui-panel);border-color:var(--ui-line);color:var(--ui-ink);border-radius:3px;box-shadow:0 30px 100px #0004}
.modal-top button {background:var(--ui-panel-2);color:var(--ui-ink);border-color:var(--ui-line);border-radius:2px}
.modal h2 {color:var(--ui-ink);font-family:'Space Grotesk',sans-serif}
.detail-cell {border-color:var(--ui-line);border-radius:2px}
.detail-cell small {color:var(--ui-muted)}
.detail-cell b {color:var(--ui-ink)}
.detail-copy {color:var(--ui-muted)}
.detail-actions a,.detail-actions button {background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-accent-on);border-radius:2px}
.muted {color:var(--ui-muted)}
.warn-text {color:var(--ui-caution)}
@media(max-width:1280px){.sidebar{width:208px;flex-basis:208px}.main-content{padding:28px 22px}.topbar{padding:0 22px}.theme-picker span{display:none}.theme-picker select{min-width:144px}}
@media(max-width:1050px){.page-heading{align-items:start;flex-direction:column}.page-heading:before{right:4px;top:-11px}.header-actions{margin-top:4px}}
@media(max-width:750px){
  .sidebar{width:240px;box-shadow:10px 0 50px #0006}
  .main-content{padding:24px 14px}.topbar{padding:0 13px;height:64px}
  .top-right{gap:7px}.breadcrumb{font-size:8px}.theme-picker select{min-width:0;width:126px;font-size:8px;padding:8px 21px 8px 7px;background-size:12px;background-position:right 5px center}
  .mode-pill{font-size:8px;padding:7px 6px;gap:4px}.icon-btn{display:none}
  .page-heading{padding-top:13px;gap:16px}.page-heading:before{top:-10px}
  h1{font-size:35px}.subtitle{font-size:12px}
  .metric-card{min-height:135px;padding:17px 14px 12px}.metric-value{font-size:34px}
  .metric-card:after{font-size:24px;bottom:10px;right:9px}
  .map-stage{height:285px;margin:5px 8px 0}
}
@media(max-width:420px){.breadcrumb{display:none}.top-left{gap:5px}.header-actions{flex-wrap:wrap}.header-actions button{flex:1;white-space:nowrap}.top-right{gap:6px}.map-hud{font-size:8px}.filter-tabs button{padding:6px 7px;font-size:9px}}
@media(prefers-reduced-motion:reduce){body{transition:none}}
