:root {
  --bg: #f6f7fb;
  --panel: #ffffff;
  --text: #171923;
  --muted: #667085;
  --line: #e6e8ef;
  --brand: #111827;
  --brand-soft: #eef2ff;
  --blue: #2563eb;
  --red: #dc2626;
  --amber: #d97706;
  --green: #16a34a;
  --slate: #475569;
  --shadow: 0 18px 45px rgba(17, 24, 39, 0.08);
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  color: var(--text);
  background: radial-gradient(circle at top left, #eef2ff 0, transparent 32%), var(--bg);
}
.demo-banner { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 38px; padding: 8px 18px; background: #111827; color: #fff; font-size: 13px; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 220px; padding: 22px 14px; border-right: 1px solid #e2e8f0; background: rgba(255,255,255,.94); z-index: 2; }.sidebar-brand { padding: 0 10px 18px; font-weight: 900; color: #111827; }.store-nav { display: grid; gap: 6px; }.store-nav button { width: 100%; border: 0; border-radius: 10px; padding: 10px; background: transparent; text-align: left; color: #334155; cursor: pointer; }.store-nav button.active { background: #eef2ff; color: #1d4ed8; font-weight: 800; }.sidebar-foot { position: absolute; bottom: 22px; padding: 0 10px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.demo-banner > span:first-child { font-weight: 800; }
.demo-logout { margin-left: 10px; border: 1px solid #94a3b8; border-radius: 8px; padding: 4px 8px; background: transparent; color: #fff; font: inherit; cursor: pointer; }
.safe-card .demo-logout { margin: 8px 0 0; color: #065f46; border-color: #86efac; }
.demo-login-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.demo-login-shell { width: min(100%, 480px); }
.demo-login-card { padding: 34px; border: 1px solid var(--line); border-radius: 24px; background: rgba(255, 255, 255, .96); box-shadow: var(--shadow); }
.demo-login-card h1 { font-size: 30px; }
.demo-login-form { display: grid; gap: 9px; margin-top: 24px; }
.demo-login-form label { color: #334155; font-size: 13px; font-weight: 700; }
.demo-login-form input { width: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 11px 12px; color: var(--text); }
.demo-login-form .primary-btn { margin-top: 8px; }
.demo-login-error { margin: 3px 0 0; color: #991b1b; font-size: 13px; }
.demo-login-footnote { margin: 18px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
input:focus-visible, select:focus-visible, button:focus-visible { outline: 3px solid #93c5fd; outline-offset: 2px; }
.app-shell { max-width: 1440px; margin: 0 auto 0 220px; padding: 32px; }
.operator-board { padding: 18px; margin-bottom: 22px; }.store-overview { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }.store-card { padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }.store-card h3 { margin: 0 0 6px; }.store-card p, .store-card small { display: block; margin: 4px 0; color: var(--muted); font-size: 12px; line-height: 1.5; }.source-pill { display: inline-block; margin-top: 8px; border-radius: 999px; padding: 4px 7px; background: #f1f5f9; color: #475569; font-size: 11px; font-weight: 700; }.source-pill.verified { background: #ecfdf3; color: #166534; }.daily-tasks { display: grid; gap: 8px; margin-top: 14px; }.daily-task { display: grid; grid-template-columns: 88px 1fr 150px; gap: 12px; align-items: start; padding: 11px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }.daily-task p { margin: 4px 0; color: var(--muted); font-size: 12px; line-height: 1.5; }.task-meta { font-size: 11px; color: var(--muted); }.task-action { font-size: 12px; font-weight: 800; color: #334155; }
.workspace-settings { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }.workspace-settings summary { cursor: pointer; font-weight: 800; font-size: 13px; }.settings-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin: 12px 0; }.settings-grid label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; }.settings-grid input, .settings-grid select { border: 1px solid var(--line); border-radius: 8px; padding: 8px; }
.read-sync-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; margin: 14px 0; }.read-sync-controls label { display: grid; gap: 4px; font-size: 12px; color: var(--muted); }.read-sync-controls input { border: 1px solid var(--line); border-radius: 8px; padding: 8px; }
.hero { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; margin-bottom: 24px; }
.eyebrow { margin: 0 0 8px; color: var(--blue); font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
h1 { margin: 0; font-size: 34px; letter-spacing: -0.03em; }
h2 { margin: 0; font-size: 22px; }
h3 { margin: 16px 0 6px; font-size: 17px; letter-spacing: -.015em; }
.subtitle { margin: 10px 0 0; color: var(--muted); font-size: 15px; max-width: 820px; line-height: 1.7; }
.safe-card { display: flex; gap: 12px; min-width: 280px; padding: 16px; background: #ecfdf3; color: #065f46; border: 1px solid #bbf7d0; border-radius: 18px; }
.safe-card p { margin: 4px 0 0; font-size: 13px; }
.safe-dot { width: 10px; height: 10px; border-radius: 999px; background: var(--green); margin-top: 5px; box-shadow: 0 0 0 6px rgba(22, 163, 74, .12); }
.panel { background: rgba(255,255,255,.92); border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow); }
.toolbar { display: flex; align-items: end; gap: 14px; padding: 18px; margin-bottom: 28px; flex-wrap: wrap; }
.date-field { display: grid; gap: 6px; }
.date-field label { font-size: 13px; color: var(--muted); }
input, select, button { font: inherit; }
input[type="date"], .search, .select { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: #fff; color: var(--text); }
.primary-btn, .ghost-btn { border: 0; border-radius: 12px; padding: 11px 16px; cursor: pointer; transition: .16s ease; }
.primary-btn { background: var(--brand); color: #fff; font-weight: 700; }
.primary-btn:hover { transform: translateY(-1px); background: #000; }
.primary-btn:disabled, .ghost-btn:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.ghost-btn { background: #f1f5f9; color: #334155; border: 1px solid #e2e8f0; }
.hint { color: var(--muted); font-size: 13px; margin-left: auto; }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 18px; margin: 30px 0 14px; }
.platform-section-head { margin-top: 10px; }
.section-head.inline { margin: 0 0 14px; }
.section-head p { margin: 6px 0 0; color: var(--muted); font-size: 14px; }
.status-text { color: var(--muted); font-size: 13px; }
.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.platform-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.external-monitoring-head { margin-top: 30px; }
.external-monitoring-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.capability-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.capability-card { min-height: 248px; padding: 18px; border: 1px solid var(--line); border-radius: 22px; background: var(--panel); box-shadow: var(--shadow); }
.capability-card > p { min-height: 54px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.capability-list .ok { background: #ecfdf3; color: #166534; }.capability-list .low { background: #f1f5f9; color: #475569; }.capability-list .high { background: #fef2f2; color: #991b1b; }
.capability-note { min-height: 42px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.doc-link { display: inline-block; margin-top: 10px; color: var(--blue); font-size: 13px; font-weight: 700; text-decoration: none; }
.approval-panel { padding: 18px; margin-top: 18px; }.audit-list { display: grid; gap: 10px; }.audit-item { display: flex; justify-content: space-between; gap: 16px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }.audit-item p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }.audit-item > div:last-child { text-align: right; }.review-btn { display: block; width: 100%; margin-top: 9px; padding: 7px 8px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #334155; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.audit-action { margin: 7px 0 0 6px; padding: 6px 8px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #334155; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.external-card { min-height: 286px; padding: 18px; border: 1px solid var(--line); border-radius: 22px; background: var(--panel); box-shadow: var(--shadow); }
.external-card > p { min-height: 42px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.external-skeleton { height: 286px; }
.external-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 16px 0; }
.external-metrics > div { padding: 10px; border-radius: 12px; background: #f8fafc; }
.external-metrics span { display: block; color: var(--muted); font-size: 12px; }
.external-metrics strong { display: block; margin-top: 4px; font-size: 17px; }
.connector-empty { min-height: 72px; display: grid; place-items: center; padding: 12px; margin: 16px 0; border: 1px dashed #cbd5e1; border-radius: 12px; color: var(--muted); font-size: 13px; line-height: 1.5; text-align: center; }
.connector-suggestion { display: flex; gap: 10px; padding: 11px; border-radius: 12px; background: #f8fafc; color: #475569; font-size: 13px; line-height: 1.45; }
.connector-suggestion p { margin: 4px 0; }
.connector-suggestion small { color: var(--muted); }
.connector-suggestion.muted { min-height: 64px; align-items: center; }
.connector-footer { margin-top: 12px; color: var(--muted); font-size: 12px; }
.connector-load-error { grid-column: 1 / -1; padding: 16px; border: 1px solid #fecaca; background: #fef2f2; color: #991b1b; border-radius: 16px; }
.platform-card { min-height: 250px; padding: 18px; border: 1px solid var(--line); border-radius: 22px; background: var(--panel); box-shadow: var(--shadow); }
.platform-card.connected { border-color: #bbf7d0; }
.platform-card-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.platform-mark { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: var(--brand-soft); color: var(--blue); font-weight: 800; font-size: 13px; }
.platform-card p { min-height: 42px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.connection-pill, .mode-chip { border-radius: 999px; padding: 5px 9px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.connection-pill.connected { color: #166534; background: #ecfdf3; }
.connection-pill.needs-auth { color: #a16207; background: #fffbeb; }
.connection-pill.not-configured { color: #475569; background: #f1f5f9; }
.capability-list { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0; }
.capability-list span { padding: 5px 8px; border-radius: 8px; background: #f8fafc; color: #475569; font-size: 12px; }
.platform-action { width: 100%; padding: 9px 12px; border-radius: 10px; border: 1px solid #dbe3ee; background: #fff; color: #475569; font: inherit; font-weight: 700; cursor: pointer; }
.platform-action.active-platform-action { border-color: var(--brand); background: var(--brand); color: #fff; }
.platform-skeleton { height: 250px; }
.control-notice { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 18px; padding: 16px 18px; }
.control-notice strong { font-size: 14px; }
.control-notice p { margin: 5px 0 0; max-width: 900px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.mode-chip { color: #991b1b; background: #fef2f2; }
.summary-card { background: var(--panel); border: 1px solid var(--line); border-radius: 22px; padding: 18px; box-shadow: var(--shadow); cursor: pointer; transition: .16s ease; }
.summary-card:hover, .summary-card.active { transform: translateY(-2px); border-color: #c7d2fe; box-shadow: 0 20px 48px rgba(37, 99, 235, .12); }
.card-label { font-weight: 800; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.card-metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 16px; }
.metric-label { color: var(--muted); font-size: 12px; }
.metric-value { margin-top: 4px; font-size: 20px; font-weight: 800; }
.risk-pill { border-radius: 999px; padding: 5px 9px; font-size: 12px; background: #f8fafc; color: var(--slate); }
.risk-pill.high { background: #fef2f2; color: var(--red); }
.risk-pill.medium { background: #fffbeb; color: var(--amber); }
.risk-pill.ok { background: #ecfdf3; color: var(--green); }
.skeleton-card { height: 170px; border-radius: 22px; background: linear-gradient(90deg, #eef2f7, #fff, #eef2f7); background-size: 200% 100%; animation: shimmer 1.2s infinite; }
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.suggestions-panel { padding: 18px; margin-top: 18px; }
.suggestions-list { display: grid; gap: 10px; }
.suggestion { display: grid; grid-template-columns: 90px 1fr 130px; gap: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.suggestion-title { font-weight: 800; margin-bottom: 4px; }
.suggestion-meta, .suggestion-reason { color: var(--muted); font-size: 13px; line-height: 1.5; }
.tabs { display: flex; gap: 10px; padding: 16px 16px 0; flex-wrap: wrap; }
.tab { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 9px 14px; cursor: pointer; color: #334155; }
.tab.active { background: var(--brand); color: #fff; border-color: var(--brand); }
.table-toolbar { display: flex; gap: 10px; padding: 16px; flex-wrap: wrap; }
.search { min-width: 320px; flex: 1; }
.table-wrap { overflow: auto; border-top: 1px solid var(--line); }
table { width: 100%; border-collapse: collapse; min-width: 1180px; }
th, td { padding: 13px 14px; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; font-size: 13px; }
th { color: #475569; background: #f8fafc; font-weight: 800; position: sticky; top: 0; }
.name-col { width: 300px; }
.diagnosis-col { width: 130px; }
.reason-col { width: 310px; }
.plan-name { font-weight: 800; line-height: 1.45; }
.plan-sub { color: var(--muted); font-size: 12px; margin-top: 5px; line-height: 1.45; }
.money { font-variant-numeric: tabular-nums; font-weight: 700; }
.badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 9px; font-weight: 800; font-size: 12px; white-space: nowrap; }
.badge.high { background: #fef2f2; color: var(--red); }
.badge.medium { background: #fffbeb; color: var(--amber); }
.badge.low { background: #f1f5f9; color: var(--slate); }
.badge.ok { background: #ecfdf3; color: var(--green); }
.status { color: #334155; font-weight: 700; }
.status.good { color: var(--green); }
.status.bad { color: var(--red); }
.reason { color: #475569; line-height: 1.55; }
.action { margin-top: 6px; font-weight: 800; color: #111827; }
.pagination { display: flex; justify-content: flex-end; align-items: center; gap: 14px; padding: 14px 16px; }
.error-box { border: 1px solid #fecaca; background: #fef2f2; color: #991b1b; border-radius: 16px; padding: 14px 16px; margin-bottom: 18px; white-space: pre-wrap; }
.hidden { display: none; }
.empty, .empty-cell { color: var(--muted); text-align: center; padding: 24px; }
@media (max-width: 1100px) {
  .summary-grid, .platform-grid, .external-monitoring-grid, .capability-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero { flex-direction: column; }
  .safe-card { min-width: 0; width: 100%; }
}
@media (max-width: 640px) {
  .sidebar { position: static; width: auto; padding: 14px 18px; border-right: 0; border-bottom: 1px solid #e2e8f0; }.store-nav { grid-template-columns: repeat(3, 1fr); }.sidebar-foot { display: none; }.app-shell { margin-left: 0; padding: 18px; }
  h1 { font-size: 27px; }
  .summary-grid { grid-template-columns: 1fr; }
  .platform-grid, .external-monitoring-grid, .capability-grid { grid-template-columns: 1fr; }
  .audit-item { align-items: flex-start; flex-direction: column; }.audit-item > div:last-child { text-align: left; }
  .store-overview, .daily-task { grid-template-columns: 1fr; }
  .suggestion { grid-template-columns: 1fr; }
  .control-notice { align-items: flex-start; flex-direction: column; }
  .hint { margin-left: 0; }
}

/* PULSE / ADS — A direction, applied to the existing read-only console. */
:root { --bg:#091217; --panel:#142127; --text:#e9f7f2; --muted:#9bb2b8; --line:#2b4046; --brand:#79dec3; --brand-soft:#1a3432; --blue:#8be9d0; --red:#ff918e; --amber:#efbe84; --green:#83e6c5; --slate:#b7c5c9; --shadow:0 20px 45px #0004; }
html { scroll-behavior:smooth; }
body { min-width:0; background:radial-gradient(circle at 85% 0%,#12322e 0,transparent 25%),#091217; color:var(--text); }
[hidden],.hidden { display:none!important; }
.skip-link { position:fixed; top:-80px; left:12px; z-index:30; padding:10px 16px; color:#08221c; background:#9af8de; border-radius:9px; }
.skip-link:focus { top:12px; }
:is(a,button,input,select,summary):focus-visible { outline:3px solid #b9ffe9; outline-offset:3px; }
.sidebar { width:238px; padding:20px 12px; background:#101b20; border-color:#2b3e42; z-index:12; transition:width .25s ease,transform .25s ease; }
.sidebar-brand { display:flex; align-items:center; gap:9px; padding:2px 8px 22px; color:#f2fffa; font-size:16px; letter-spacing:.1em; white-space:nowrap; border-bottom:1px solid #2b3d42; }
.brand-mark { color:#89eed2; font-size:27px; line-height:1; text-shadow:0 0 18px #69e6c5; }
.sidebar-brand em { color:#668e89; font-style:normal; }
.sidebar-toggle { margin-left:auto; width:28px; height:28px; color:#a8cfc4; background:#1b2b30; border:1px solid #355451; border-radius:7px; cursor:pointer; }
.sidebar-label { margin:23px 11px 12px; color:#668e8c; font-size:10px; letter-spacing:.16em; }
.store-nav { gap:4px; }
.store-nav a { display:flex; align-items:center; gap:11px; min-height:45px; padding:10px 14px; border-radius:8px; color:#a9c0bf; text-decoration:none; font-size:13px; transition:background .2s,color .2s,transform .2s; }
.store-nav a::before { content:'◇'; color:#5fae9d; font-size:16px; }
.store-nav a:first-child::before { content:'▦'; }
.store-nav a:nth-child(2)::before { content:'◉'; }
.store-nav a:last-child::before { content:'◆'; }
.store-nav a::after { content:'↗'; margin-left:auto; opacity:.55; }
.store-nav a:hover,.store-nav a.active { color:#a2f2dc; background:#1a3331; }
.store-nav a:hover { transform:translateX(3px); }
.store-nav a.active { box-shadow:inset 3px 0 #79dec3; }
.sidebar-foot { display:flex; align-items:center; gap:11px; left:14px; right:14px; padding:15px 10px; border-top:1px solid #2b3d42; color:#99b9b3; font-size:11px; }
.side-orbit { width:24px; height:24px; border:1px solid #4b9989; border-radius:50%; box-shadow:0 0 0 5px #4b99891a,inset 0 0 9px #60ccb046; }
.app-shell { max-width:none; margin:0 0 0 238px; padding:0 34px 50px; transition:margin-left .25s ease; }
.topbar { position:sticky; top:0; z-index:4; display:flex; align-items:center; justify-content:space-between; height:64px; margin:0 -34px 26px; padding:0 34px; border-bottom:1px solid #283b42; background:#0a161bcf; backdrop-filter:blur(16px); color:#b8d1ca; font-size:12px; }
.topbar-right { display:flex; align-items:center; gap:8px; color:#7cae9f; font-size:11px; }
.topbar-indicator { width:6px; height:6px; border-radius:50%; background:#80ddbd; box-shadow:0 0 10px #80ddbd; }
.mobile-menu-btn { display:none; border:0; background:transparent; color:var(--text); font-size:20px; cursor:pointer; }
.nav-scrim { display:none; }
.sidebar-collapsed .sidebar { width:70px; }
.sidebar-collapsed .sidebar-brand-text,.sidebar-collapsed .sidebar-label,.sidebar-collapsed .sidebar-foot,.sidebar-collapsed .store-nav a::after { display:none; }
.sidebar-collapsed .sidebar-brand { padding-left:7px; gap:3px; }
.sidebar-collapsed .sidebar-toggle { margin-left:0; }
.sidebar-collapsed .store-nav a { justify-content:center; font-size:0; padding:12px 0; }
.sidebar-collapsed .store-nav a::before { font-size:18px; }
.sidebar-collapsed .app-shell { margin-left:70px; }
.hero { padding:24px; border:1px solid var(--line); border-radius:16px; background:#142329; }
.eyebrow { color:#78d9bf; }
.safe-card { background:#173029; border-color:#315b4e; color:#b9f4dd; }
.safe-card .demo-logout { color:#b9f4dd; border-color:#538b78; }
.panel,.platform-card,.external-card,.capability-card,.summary-card { background:#142127; border-color:#2a4046; box-shadow:var(--shadow); }
.store-card,.daily-task,.suggestion,.audit-item { background:#18282e; border-color:#2b4148; }
.store-card p,.store-card small,.daily-task p,.task-meta,.store-card .source-pill,.status-text,.section-head p,.subtitle,.external-card>p,.capability-card>p,.connector-footer,.plan-sub,.suggestion-meta,.suggestion-reason { color:#a2b9bd; }
.source-pill,.capability-list span,.capability-list .low,.external-metrics>div,.connector-suggestion,.risk-pill,.badge.low { background:#203239; color:#c3d4d6; }
.source-pill.verified,.capability-list .ok,.badge.ok,.risk-pill.ok { background:#173b34; color:#a0ebd1; }
.badge.high,.risk-pill.high { background:#432b30; color:#ffa8a6; }
.badge.medium,.risk-pill.medium { background:#413a2c; color:#eacb92; }
.control-notice .mode-chip { background:#3b2931; color:#ffc1bc; }
.primary-btn,.platform-action.active-platform-action,.tab.active { color:#082019; background:#8be9cf; border-color:#8be9cf; }
.primary-btn:hover { background:#abf6df; }
.ghost-btn,.platform-action,.tab,.review-btn,.audit-action { color:#c1d5d3; background:#1e3036; border:1px solid #375058; }
input[type="date"],.search,.select,.settings-grid input,.settings-grid select,.read-sync-controls input,.demo-login-form input { color:#e4f3ef; background:#16282d; border:1px solid #3a5459; color-scheme:dark; }
.doc-link { color:#91edcf; }
th { color:#aecac6; background:#20343b; }
.reason,.action,.status,.task-action { color:#c9dfd8; }
.connection-pill.connected { background:#1a4034; color:#a2efcd; }
.connection-pill.needs-auth { background:#40372b; color:#efcb91; }
.connection-pill.not-configured { background:#25363d; color:#b0c6c5; }
.skeleton-card { background:linear-gradient(90deg,#1d3036,#2b4547,#1d3036); background-size:200% 100%; }
.demo-banner { position:relative; z-index:14; background:#2b232b; color:#ffe9ca; }
.demo-logout { color:#ffe9ca; border-color:#a08972; }
.demo-login-card { background:#15262b; color:var(--text); }
.demo-login-form label,.demo-login-footnote { color:var(--muted); }
.dashboard-root { margin-bottom:28px; }
.dashboard-loading,.dashboard-empty { padding:35px; border:1px dashed #3b5d5b; border-radius:14px; color:#bbd5cc; background:#15262a; text-align:center; }
.pulse-dashboard { color:#e7f7f0; }
.pulse-demo-note { margin-bottom:12px; padding:9px 13px; border:1px solid #765e49; background:#403329; color:#f6d8a6; border-radius:7px; font-size:12px; }
.pulse-hero { position:relative; isolation:isolate; display:flex; align-items:center; justify-content:space-between; min-height:278px; overflow:hidden; padding:38px 44px; border:1px solid #35514d; border-radius:13px; background:linear-gradient(115deg,#18362f,#102529 52%,#0d1d22); animation:pulse-reveal .65s both; }
.pulse-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 75% 47%,#55e9ba22,transparent 29%); pointer-events:none; }
.pulse-hero-copy { position:relative; z-index:2; max-width:570px; }
.pulse-kicker { color:#86dfc2; font-size:10px; font-weight:700; letter-spacing:.14em; }
.pulse-hero h2 { margin:12px 0; font-size:clamp(27px,3vw,42px); line-height:1.25; letter-spacing:-.04em; }
.pulse-hero h2 em { color:#8fe8cf; font-style:normal; }
.pulse-hero p { max-width:460px; color:#aac5bf; font-size:13px; line-height:1.7; }
.pulse-telemetry { display:flex; align-items:center; gap:11px; margin-top:23px; color:#79bbab; font-size:9px; letter-spacing:.17em; }
.pulse-telemetry i { width:18px; height:1px; background:#5d9888; }
.pulse-radar { position:absolute; right:80px; top:50%; width:240px; height:240px; transform:translateY(-50%); display:grid; place-items:center; border:1px solid #35705e; border-radius:50%; background:repeating-radial-gradient(circle,#79e9cc18 0 1px,transparent 1px 32px); box-shadow:0 0 60px #4ed3a622,inset 0 0 40px #4ed3a620; }
.pulse-radar::before,.pulse-radar::after { content:''; position:absolute; background:#7ae1c040; }
.pulse-radar::before { width:1px; height:100%; }.pulse-radar::after { height:1px; width:100%; }
.pulse-radar-ring { position:absolute; border:1px solid #69c5a678; border-radius:50%; }
.pulse-radar-ring.outer { inset:18px; }.pulse-radar-ring.inner { inset:49px; }
.pulse-radar-sweep { position:absolute; inset:10px; border-radius:50%; background:conic-gradient(transparent 0 286deg,#8ef4d755 355deg,transparent); animation:pulse-sweep 11s linear infinite; opacity:.8; }
.pulse-radar-core { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; width:96px; height:96px; border:1px solid #9deed5; border-radius:50%; background:#193d38; color:#e4fff5; box-shadow:0 0 24px #73e9c88c; font-size:30px; font-weight:800; }
.pulse-radar-core span { color:#8cdbc3; font-size:7px; letter-spacing:.12em; }
.pulse-section { margin-top:31px; }
.pulse-section-title,.pulse-panel-head { display:flex; align-items:end; justify-content:space-between; gap:15px; margin-bottom:14px; }
.pulse-section-title h2,.pulse-panel h2 { margin:6px 0 0; font-size:20px; }
.pulse-section-title p,.pulse-section-title small { margin:5px 0 0; color:#91b5ad; font-size:11px; }
.pulse-period,.pulse-legend { display:flex; gap:3px; padding:3px; border:1px solid #35504f; border-radius:8px; background:#14262b; }
.pulse-period button,.pulse-legend button { border:0; border-radius:5px; background:transparent; color:#a7c7bf; padding:7px 13px; font-size:12px; cursor:pointer; }
.pulse-period button[aria-pressed="true"],.pulse-legend button[aria-pressed="true"] { background:#3f947d; color:#f1fff9; }
.pulse-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.pulse-metric { min-width:0; min-height:152px; padding:18px; border:1px solid #2e494b; border-radius:10px; background:#17282d; animation:pulse-card .6s both; transition:transform .2s,border-color .2s,box-shadow .2s; }
.pulse-metric:nth-child(2) { animation-delay:.08s; }.pulse-metric:nth-child(3) { animation-delay:.16s; }.pulse-metric:nth-child(4) { animation-delay:.24s; }
.pulse-metric:hover { transform:translateY(-4px); border-color:#70c9ad; box-shadow:0 12px 30px #4ee0b517; }
.pulse-metric-top { display:flex; justify-content:space-between; color:#9cbbb4; font-size:12px; }.pulse-metric-top span:last-child { color:#537d78; font-size:10px; }
.pulse-metric strong { display:block; margin:22px 0 13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:clamp(22px,2.25vw,31px); font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
.pulse-metric small { display:block; padding-top:9px; border-top:1px solid #2b4145; color:#7fad9f; font-size:10px; }
.pulse-content-grid { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(240px,1fr); gap:14px; margin-top:15px; }
.pulse-panel { min-width:0; padding:21px; border:1px solid #2d484a; border-radius:10px; background:#17282d; }
.pulse-trend { overflow:hidden; }
.pulse-legend button { padding:6px 9px; font-size:10px; }
.pulse-chart { position:relative; height:215px; margin:14px 0 2px; overflow:hidden; }
.pulse-chart-grid { position:absolute; inset:0; background:repeating-linear-gradient(to bottom,transparent 0,transparent 49px,#33505670 50px,#33505670 51px); }
.pulse-chart svg { position:relative; width:100%; height:100%; overflow:visible; }
.chart-spend polyline { stroke:#8de7cd; filter:drop-shadow(0 0 4px #71dcc380); }
.chart-gmv polyline { stroke:#a99cf1; filter:drop-shadow(0 0 4px #a99cf170); }
.pulse-chart[data-chart-series="spend"] .chart-gmv,.pulse-chart[data-chart-series="gmv"] .chart-spend { opacity:.12; }
.chart-axis { display:flex; justify-content:space-between; color:#72958f; font-size:10px; }
.pulse-note,.pulse-source-note { color:#8eaba8; font-size:11px; line-height:1.6; }
.pulse-signal { display:flex; gap:12px; padding:20px 0; border-bottom:1px solid #2d4347; }
.pulse-signal>span { display:grid; place-items:center; flex:none; width:34px; height:34px; border:1px solid #417e72; border-radius:7px; color:#8ee2c5; background:#244139; }
.pulse-signal strong { font-size:13px; }.pulse-signal p { margin:5px 0 0; color:#9db6b4; font-size:11px; line-height:1.6; }
.pulse-insight-foot { padding-top:17px; color:#79aa9c; font-size:11px; }
.pulse-platforms { margin-top:29px; }
.pulse-table-head,.pulse-platform-row { display:grid; grid-template-columns:minmax(155px,1.5fr) repeat(3,minmax(75px,1fr)) 25px; align-items:center; gap:8px; }
.pulse-table-head { padding:10px 15px; color:#7d9e99; font-size:10px; }
.pulse-platform-row { min-height:62px; padding:11px 15px; border:1px solid #2b4447; border-bottom:0; background:#17282d; color:#d8eee6; text-decoration:none; font-size:12px; font-variant-numeric:tabular-nums; transition:background .2s,box-shadow .2s; }
.pulse-platform-row:first-of-type { border-radius:9px 9px 0 0; }.pulse-platform-row:last-of-type { border-bottom:1px solid #2b4447; border-radius:0 0 9px 9px; }
.pulse-platform-row:hover { background:#1e3938; box-shadow:inset 3px 0 #8fe8ca; }
.pulse-platform-name { display:flex; align-items:center; gap:8px; min-width:0; }.pulse-platform-name i { width:8px; height:8px; border-radius:50%; flex:none; }.pulse-platform-name i.tone-mint { background:#8de7cd; }.pulse-platform-name i.tone-violet { background:#a99cf1; }.pulse-platform-name i.tone-amber { background:#edba85; }
.pulse-platform-name small { margin-left:3px; padding:3px 5px; border-radius:4px; color:#e5ca9f; background:#433a2b; font-size:10px; white-space:nowrap; }
.pulse-row-arrow { color:#96ebd1; font-size:17px; }
@keyframes pulse-reveal { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
@keyframes pulse-card { from { opacity:0; transform:translateY(18px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes pulse-sweep { to { transform:rotate(360deg); } }
@media(max-width:1100px) { .pulse-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.pulse-content-grid { grid-template-columns:1fr; }.pulse-radar { right:30px; opacity:.68; } }
@media(max-width:700px) {
  .sidebar { position:fixed; width:240px!important; transform:translateX(-101%); }.mobile-nav-open .sidebar { transform:translateX(0); }.sidebar-toggle { display:none; }.store-nav { grid-template-columns:1fr; }.sidebar-collapsed .sidebar-brand-text,.sidebar-collapsed .sidebar-label,.sidebar-collapsed .sidebar-foot,.sidebar-collapsed .store-nav a::after { display:initial; }.sidebar-collapsed .store-nav a { justify-content:initial; font-size:13px; padding:10px 14px; }
  .nav-scrim:not(.hidden) { display:block; position:fixed; inset:0 0 0 240px; z-index:11; border:0; background:#000a; }
  .app-shell,.sidebar-collapsed .app-shell { margin-left:0; padding:0 15px 35px; }.topbar { height:58px; margin:0 -15px 16px; padding:0 15px; }.mobile-menu-btn { display:block; margin-right:12px; }.topbar-right { margin-left:auto; font-size:10px; }
  .pulse-hero { min-height:224px; padding:24px 19px; }.pulse-hero h2 { font-size:27px; }.pulse-hero p { max-width:260px; }.pulse-radar { right:-128px; opacity:.38; }.pulse-radar-sweep { display:none; }
  .pulse-section-title { align-items:start; }.pulse-section-title h2 { font-size:17px; }.pulse-section-title p { max-width:200px; line-height:1.5; }
  .pulse-metrics { gap:8px; }.pulse-metric { min-height:135px; padding:13px; }.pulse-metric strong { font-size:21px; margin:17px 0 11px; }.pulse-panel { padding:16px 12px; }
  .pulse-panel-head { display:block; }.pulse-legend { margin-top:13px; width:max-content; }.pulse-chart { height:180px; }
  .pulse-table-head,.pulse-platform-row { grid-template-columns:minmax(106px,1.5fr) minmax(63px,1fr) minmax(63px,1fr) 18px; gap:4px; padding-left:9px; padding-right:9px; font-size:10px; }.pulse-table-head span:nth-child(4),.pulse-platform-row>span:nth-child(4) { display:none; }.pulse-platform-name { flex-wrap:wrap; gap:4px; }.pulse-platform-name small { margin-left:12px; }
  .hero { padding:18px; }.app-shell .operator-board { padding:12px; }.search { min-width:0; }
}
@media(max-width:390px) { .pulse-metric strong { font-size:18px; }.pulse-period button { padding:7px 9px; }.pulse-hero h2 { font-size:24px; }.pulse-hero p { font-size:12px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }.pulse-radar-sweep { display:none; } }
.platform-performance { margin:0 0 22px; }
.platform-performance-head { display:flex; justify-content:space-between; align-items:end; gap:16px; padding:22px 24px; margin-bottom:13px; border:1px solid #31514e; border-radius:11px; background:linear-gradient(110deg,#1b3a32,#14262b); }
.platform-performance-head h2 { margin:8px 0 5px; font-size:25px; }
.platform-performance-head p { margin:0; color:#a6c4ba; font-size:12px; line-height:1.6; }
.platform-action { display:block; text-align:center; text-decoration:none; }
.platform-performance .pulse-metric { min-height:135px; }
.platform-performance .pulse-source-note { margin:9px 0 0; }
@media(max-width:700px) { .platform-performance-head { display:block; padding:18px; }.platform-performance-head .pulse-period { width:max-content; margin-top:13px; } }
