/* ----------------------------------------------------------------
   Confluence Score — badge, timeframe pills, and detail layout
   ---------------------------------------------------------------- */
.conf-row { display: flex; align-items: center; gap: 8px; margin: 6px 0 4px; flex-wrap: wrap; }
.conf-badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 9px; border-radius: 99px; font-size: 11px; font-weight: 800;
  letter-spacing: .4px; white-space: nowrap;
}
.conf-strong    { background: rgba(65,217,139,.18); color: #41d98b; border: 1px solid rgba(65,217,139,.35); }
.conf-adequate  { background: rgba(98,166,255,.16); color: #62a6ff; border: 1px solid rgba(98,166,255,.32); }
.conf-mixed     { background: rgba(247,201,72,.14);  color: #f7c948; border: 1px solid rgba(247,201,72,.30); }
.conf-conflicted{ background: rgba(255,107,114,.15); color: #ff6b72; border: 1px solid rgba(255,107,114,.30); }
.conf-unscored  { background: rgba(143,164,188,.12); color: #8fa4bc; border: 1px solid rgba(143,164,188,.25); }

.tf-pills { display: flex; gap: 4px; align-items: center; }
.tf-pill {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 20px; border-radius: 6px; font-size: 10px; font-weight: 800;
  cursor: default; letter-spacing: .2px;
}
.tf-aligned    { background: rgba(65,217,139,.20); color: #41d98b; border: 1px solid rgba(65,217,139,.35); }
.tf-neutral    { background: rgba(143,164,188,.14); color: #8fa4bc; border: 1px solid rgba(143,164,188,.28); }
.tf-conflicting{ background: rgba(255,107,114,.18); color: #ff6b72; border: 1px solid rgba(255,107,114,.32); }

/* conf-summary in detail modal */
.conf-summary { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

:root {
  color-scheme: dark;
  --bg: #07111f;
  --panel: #0d1a2a;
  --panel-2: #122238;
  --line: #22354d;
  --text: #eef5ff;
  --muted: #8fa4bc;
  --good: #41d98b;
  --warn: #f7c948;
  --bad: #ff6b72;
  --accent: #62a6ff;
  --purple: #b990ff;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--bg); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body { padding-bottom: calc(78px + var(--safe-bottom)); }
button { font: inherit; }
.hidden { display: none !important; }
.offline-banner { position: sticky; top: 0; z-index: 30; padding: 9px 12px; background: #7b2f34; color: #fff; text-align: center; font-size: 12px; font-weight: 800; }
.app-header { position: sticky; top: 0; z-index: 20; display: flex; justify-content: space-between; align-items: center; padding: calc(12px + env(safe-area-inset-top, 0px)) 16px 12px; background: rgba(7,17,31,.94); backdrop-filter: blur(16px); border-bottom: 1px solid var(--line); }
.app-header h1 { margin: 1px 0 0; font-size: 23px; letter-spacing: -.4px; }
.eyebrow { color: var(--accent); font-size: 10px; font-weight: 900; letter-spacing: 1.2px; }
.header-actions { display: flex; gap: 8px; }
.icon-btn { width: 40px; height: 40px; border-radius: 12px; border: 1px solid var(--line); background: var(--panel); color: var(--text); font-size: 22px; }
.icon-btn:disabled { cursor: wait; opacity: .72; }
.icon-btn.refreshing { color: var(--accent); animation: refresh-spin .9s linear infinite; }
@keyframes refresh-spin { to { transform: rotate(360deg); } }
.refresh-notice { width: min(760px, calc(100% - 24px)); margin: 8px auto 0; padding: 8px 12px; border: 1px solid rgba(98,166,255,.35); border-radius: 10px; background: rgba(98,166,255,.08); color: var(--accent); font-size: 12px; text-align: center; }
.refresh-notice.error { border-color: rgba(255,107,114,.45); background: rgba(255,107,114,.08); color: var(--bad); }
.app-shell { width: min(760px, 100%); margin: 0 auto; padding: 12px; }
.summary { display: grid; gap: 10px; margin-bottom: 12px; }
.regime-card, .card, .source-card, .alert-card, .empty-card { background: linear-gradient(180deg,var(--panel),#0a1726); border: 1px solid var(--line); border-radius: 18px; padding: 14px; box-shadow: 0 8px 28px rgba(0,0,0,.15); }
.regime-top, .card-top, .row-between { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.regime-label { font-size: 19px; font-weight: 900; }
.confidence { color: var(--muted); font-size: 12px; white-space: nowrap; }
.strategy { margin-top: 8px; font-weight: 700; }
.reason, .muted, .meta { color: var(--muted); }
.reason { margin-top: 6px; font-size: 13px; line-height: 1.35; }
.indexes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; font-size: 12px; }
.chip { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: 999px; border: 1px solid var(--line); background: var(--panel-2); color: var(--muted); font-size: 11px; font-weight: 800; }
.chip.good { border-color: rgba(65,217,139,.4); color: var(--good); }
.chip.warn { border-color: rgba(247,201,72,.4); color: var(--warn); }
.chip.bad { border-color: rgba(255,107,114,.45); color: var(--bad); }
.chip.accent { border-color: rgba(98,166,255,.45); color: var(--accent); }
.section-title { display: flex; justify-content: space-between; align-items: baseline; margin: 16px 2px 8px; }
.section-title h2 { margin: 0; font-size: 16px; }
.section-title span { color: var(--muted); font-size: 11px; }
.card { margin-bottom: 10px; cursor: pointer; }
.card.extended { border-color: rgba(247,201,72,.48); }
.card.invalidated { border-color: rgba(255,107,114,.52); opacity: .86; }
.rank { color: var(--accent); font-weight: 900; font-size: 13px; }
.ticker { font-size: 22px; font-weight: 950; letter-spacing: -.3px; }
.company { font-size: 11px; color: var(--muted); max-width: 210px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.price { text-align: right; font-size: 17px; font-weight: 800; }
.change.pos { color: var(--good); }
.change.neg { color: var(--bad); }
.score-row { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 10px; }
.catalyst-block { margin-top: 11px; padding: 10px; background: rgba(98,166,255,.06); border: 1px solid rgba(98,166,255,.18); border-radius: 12px; }
.catalyst-head { display: flex; justify-content: space-between; gap: 8px; color: var(--accent); font-size: 10px; font-weight: 900; letter-spacing: .5px; text-transform: uppercase; }
.catalyst-head.risk { color: var(--bad); }
.catalyst-title { margin-top: 5px; font-size: 13px; font-weight: 750; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.catalyst-meta { margin-top: 5px; color: var(--muted); font-size: 10px; }
.setup-line { margin-top: 10px; font-size: 12px; line-height: 1.4; }
.setup-line strong { color: #fff; }
.setup-freshness { margin-top: 7px; color: var(--muted); font-size: 10px; }
.trigger-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin-top: 10px; }
.trigger-state.good { color: var(--good); }
.trigger-state.warn { color: var(--warn); }
.trigger-state.bad { color: var(--bad); }
.metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 10px; }
.metric { padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.015); }
.metric span { display: block; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .5px; }
.metric b { display: block; margin-top: 3px; font-size: 12px; }
.bottom-nav { position: fixed; z-index: 25; left: 0; right: 0; bottom: 0; height: calc(68px + var(--safe-bottom)); padding: 6px 10px var(--safe-bottom); display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); background: rgba(7,17,31,.96); backdrop-filter: blur(18px); }
.nav-btn { border: 0; background: transparent; color: var(--muted); display: grid; place-items: center; align-content: center; gap: 2px; border-radius: 12px; }
.nav-btn span { font-size: 18px; line-height: 1; }
.nav-btn small { font-size: 11px; font-weight: 800; }
.nav-btn.active { color: var(--accent); background: rgba(98,166,255,.08); }
.compact-context { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; padding:9px 11px; border:1px solid var(--line); border-radius:13px; background:rgba(13,26,42,.76); }
.compact-regime, .compact-safety { display:grid; gap:2px; min-width:0; }
.compact-safety { text-align:right; }
.compact-context b { font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.compact-context span:not(.eyebrow) { color:var(--muted); font-size:10px; }
.compact-context .good, .safety-strip .good { color:var(--good); }
.compact-context .warn, .safety-strip .warn { color:var(--warn); }
.compact-context .bad, .safety-strip .bad { color:var(--bad); }
.compact-context .accent, .safety-strip .accent { color:var(--accent); }
.safety-strip { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0 2px 12px; padding:9px 11px; border:1px solid var(--line); border-radius:12px; background:rgba(98,166,255,.06); }
.safety-strip b { font-size:12px; }
.safety-freshness { margin-left:auto; font-size:10px; font-weight:900; letter-spacing:.5px; }
.segmented-control { display:grid; gap:5px; margin:0 0 12px; }
.segmented-control:has(.segment-btn:nth-child(4)) { grid-template-columns:repeat(4,minmax(0,1fr)); }
.segmented-control:has(.segment-btn:nth-child(3):last-child) { grid-template-columns:repeat(3,minmax(0,1fr)); }
.segment-btn { min-height:42px; padding:7px 5px; border:1px solid var(--line); border-radius:11px; background:rgba(13,26,42,.72); color:var(--muted); font-size:11px; font-weight:800; line-height:1.15; }
.segment-btn.active { border-color:rgba(98,166,255,.65); background:rgba(98,166,255,.14); color:var(--text); box-shadow:inset 0 0 0 1px rgba(98,166,255,.12); }
.segment-btn:focus-visible, .nav-btn:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.detail-dialog, .install-dialog { width: min(720px, calc(100vw - 18px)); max-height: 88vh; overflow: auto; border: 1px solid var(--line); border-radius: 20px; background: var(--bg); color: var(--text); padding: 16px; }
dialog::backdrop { background: rgba(0,0,0,.72); backdrop-filter: blur(4px); }
.close-btn { position: sticky; bottom: 0; width: 100%; margin-top: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-2); color: var(--text); font-weight: 800; }
.detail-section { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.detail-section h3 { margin: 0 0 8px; font-size: 13px; color: var(--accent); text-transform: uppercase; letter-spacing: .7px; }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.kv { padding: 8px; border: 1px solid var(--line); border-radius: 10px; }
.kv span { display:block; color:var(--muted); font-size:10px; }
.kv b { display:block; margin-top:3px; font-size:12px; overflow-wrap:anywhere; }
.alert-card, .source-card { margin-bottom: 9px; }
.alert-center-summary {
  margin-bottom: 10px;
  padding: 13px;
  border: 1px solid rgba(98,166,255,.32);
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(98,166,255,.12), rgba(13,26,42,.94));
}
.alert-center-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.alert-center-heading h2 { margin: 2px 0 0; font-size: 19px; }
.alert-status-summary { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 7px; margin-top: 12px; }
.alert-status-summary div { min-width: 0; padding: 8px; border: 1px solid rgba(98,166,255,.16); border-radius: 10px; background: rgba(7,17,31,.36); }
.alert-status-summary span { display: block; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .35px; text-transform: uppercase; }
.alert-status-summary b { display: block; margin-top: 4px; overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.alert-status-summary .good { color: var(--good); }
.alert-status-summary .warn { color: var(--warn); }
.alert-status-summary .bad { color: var(--bad); }
.alert-delivery-card { margin-bottom: 14px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(180deg,var(--panel),#0a1726); overflow: clip; }
.alert-delivery-summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px; cursor: pointer; list-style: none; }
.alert-delivery-summary::-webkit-details-marker { display: none; }
.alert-delivery-summary .eyebrow { display: block; margin-bottom: 3px; }
.alert-delivery-summary b { display: block; font-size: 13px; }
.alert-delivery-summary::after { content: '⌄'; color: var(--muted); font-size: 17px; line-height: 1; }
.alert-delivery-card[open] .alert-delivery-summary { border-bottom: 1px solid var(--line); }
.alert-delivery-card[open] .alert-delivery-summary::after { transform: rotate(180deg); }
.alert-delivery-body { padding: 12px 13px 13px; }
.alert-delivery-health { margin-top: 10px; }
.alert-delivery-health .kv:last-child { grid-column: 1 / -1; }
.alert-auth-notice, .alert-delivery-guidance { display: grid; gap: 7px; padding: 9px 10px; border: 1px solid rgba(247,201,72,.32); border-radius: 10px; background: rgba(247,201,72,.08); color: var(--warn); font-size: 11px; line-height: 1.4; }
.alert-delivery-guidance.bad { border-color: rgba(255,107,114,.35); background: rgba(255,107,114,.08); color: var(--bad); }
.inline-action { justify-self: start; padding: 0; border: 0; background: transparent; color: var(--accent); font: inherit; font-weight: 800; text-decoration: underline; }
.alert-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.alert-action-btn { flex: 1 1 140px; min-height: 40px; padding: 9px 11px; border: 1px solid rgba(98,166,255,.42); border-radius: 10px; background: rgba(98,166,255,.10); color: var(--text); font-size: 12px; font-weight: 800; }
.alert-action-btn.danger { border-color: rgba(255,107,114,.42); background: rgba(255,107,114,.08); color: var(--bad); }
.alert-settings-title { margin-top: 14px; }
.alert-rules { display: grid; gap: 10px; }
.alert-rule-group { padding: 12px; border: 1px solid var(--line); border-radius: 15px; background: rgba(13,26,42,.72); }
.alert-rule-heading { margin-bottom: 9px; }
.alert-rule-heading h3 { margin: 0; color: var(--accent); font-size: 12px; letter-spacing: .45px; text-transform: uppercase; }
.alert-rule-heading p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.35; }
.alert-pref-row { padding: 10px 0; border-top: 1px solid rgba(143,164,188,.16); }
.alert-rule-heading + .alert-pref-row { border-top: 0; padding-top: 0; }
.alert-pref-row:last-child { padding-bottom: 0; }
.alert-pref-row.inactive { opacity: .78; }
.alert-pref-label { font-size: 13px; font-weight: 750; }
.alert-toggle { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.alert-toggle input { width: 16px; height: 16px; accent-color: var(--good); }
.alert-score-control { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; color: var(--muted); font-size: 11px; }
.alert-score-control input { width: 62px; padding: 6px 7px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg); color: var(--text); font: inherit; text-align: center; }
.alert-pref-helper { margin-top: 6px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.alert-pref-inactive { color: var(--warn); }
.recent-alerts { margin-top: 14px; }
.alert-feed-controls { display: grid; grid-template-columns: auto auto minmax(0,1fr); gap: 7px; margin-bottom: 10px; }
.alert-feed-filter, .alert-feed-controls input { min-height: 37px; border: 1px solid var(--line); border-radius: 9px; background: var(--panel); color: var(--muted); font: inherit; font-size: 11px; font-weight: 750; }
.alert-feed-filter { padding: 7px 9px; white-space: nowrap; }
.alert-feed-filter.active { border-color: rgba(98,166,255,.65); background: rgba(98,166,255,.14); color: var(--text); }
.alert-feed-controls input { width: 100%; min-width: 0; padding: 7px 9px; color: var(--text); font-weight: 500; }
.alert-feed-list .alert-card:last-child { margin-bottom: 0; }
.source-status { font-weight: 900; }
.system-health-card { background: linear-gradient(150deg, var(--panel), #0d1d31); border: 1px solid var(--line); border-radius: 16px; padding: 15px; margin-bottom: 12px; }
.system-health-card.good { border-color: rgba(55,214,122,.42); }
.system-health-card.warn { border-color: rgba(247,201,72,.45); }
.system-health-card.bad { border-color: rgba(255,107,114,.48); }
.system-health-card h3 { margin: 3px 0 0; font-size: 18px; }
.system-health-card .eyebrow { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .8px; }
.provider-health-card { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 13px; margin-bottom: 9px; }
.provider-health-card.live { border-color: rgba(55,214,122,.30); }
.provider-health-card.degraded, .provider-health-card.stale { border-color: rgba(247,201,72,.40); }
.provider-health-card.down { border-color: rgba(255,107,114,.42); }
.provider-health-card.webull-optional { border-color: rgba(247,201,72,.4); }
.provider-health-head { gap: 12px; }
.provider-required { display: block; color: var(--muted); font-size: 10px; margin-top: 3px; }
.provider-health-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.provider-health-grid div { background: rgba(98,166,255,.055); border: 1px solid rgba(98,166,255,.12); border-radius: 9px; padding: 7px 8px; min-width: 0; }
.provider-health-grid span { display: block; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .3px; }
.provider-health-grid b { display: block; color: var(--text); font-size: 11px; margin-top: 3px; overflow-wrap: anywhere; }
.provider-detail { margin-top: 10px; }
.provider-auth-guidance { margin-top: 8px; padding: 8px 9px; border-radius: 9px; background: rgba(247,201,72,.09); border: 1px solid rgba(247,201,72,.28); color: var(--warn); font-size: 11px; line-height: 1.4; }
.provider-error { margin-top: 8px; color: var(--bad); font-size: 11px; overflow-wrap: anywhere; }
.webull-optional-note { color: var(--warn); }
.uw-quota-bar-wrap { margin-top: 10px; height: 6px; background: rgba(98,166,255,.1); border-radius: 4px; overflow: hidden; }
.uw-quota-bar { height: 100%; border-radius: 4px; transition: width .4s ease; }
.uw-quota-bar.good { background: var(--good); }
.uw-quota-bar.warn { background: var(--warn); }
.uw-quota-bar.bad { background: var(--bad); }
.compact-health { opacity: .82; }
.admin-auth-card { border-color: rgba(98,166,255,.35); }
.admin-auth-form { display: grid; gap: 7px; margin-top: 12px; }
.admin-auth-form label { color: var(--muted); font-size: 11px; font-weight: 800; }
.admin-auth-form input { width: 100%; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--bg); color: var(--text); }
.admin-auth-form input:focus { outline: 2px solid rgba(98,166,255,.45); outline-offset: 1px; }
.auth-error { margin-top: 9px; color: var(--bad); font-size: 12px; line-height: 1.35; }
@media (min-width: 640px) { .provider-health-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.error-state { text-align: center; padding: 30px 12px; }
.error-state button { margin-top: 10px; padding: 10px 14px; border-radius: 10px; border: 1px solid var(--line); background: var(--panel-2); color: var(--text); }
.install-step { margin: 10px 0; padding: 10px; border: 1px solid var(--line); border-radius: 12px; line-height: 1.4; }
@media (min-width: 600px) { .metrics { grid-template-columns: repeat(6,1fr); } }
@media (max-width: 420px) { .trigger-metrics { grid-template-columns: repeat(2, 1fr); } }
.scanner-reasons { margin-top: 10px; display: flex; flex-direction: column; gap: 4px; }
.scanner-label { font-size: 11px; color: var(--accent); background: rgba(98,166,255,.07); border: 1px solid rgba(98,166,255,.18); border-radius: 8px; padding: 4px 8px; line-height: 1.3; }
.near-misses { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.near-misses-title { margin-top: 14px; }
.near-miss-card { background: linear-gradient(180deg,var(--panel),#0a1726); border: 1px solid var(--line); border-radius: 14px; padding: 11px 13px; }
.near-miss-card .company { margin-left: 8px; }
.near-miss-components { color: var(--muted); font-size: 11px; margin-top: 7px; line-height: 1.45; }
.demo-scanner-banner { background: rgba(247,201,72,.12); border: 1px solid rgba(247,201,72,.35); border-radius: 12px; padding: 10px 14px; margin-bottom: 10px; color: var(--warn); font-size: 12px; font-weight: 700; letter-spacing: .3px; }
.demo-scanner-banner strong { display: block; margin-bottom: 2px; font-size: 13px; }
.scanner-refresh-warning { display: grid; gap: 3px; margin: 0 0 10px; padding: 9px 11px; border: 1px solid rgba(247,201,72,.42); border-radius: 10px; background: rgba(247,201,72,.10); color: var(--warn); font-size: 11px; line-height: 1.4; }
.scanner-refresh-warning span { color: var(--text); }
.refresh-diagnostics { display: grid; gap: 9px; }
.refresh-diagnostic-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 8px; align-items: start; padding-top: 8px; border-top: 1px solid var(--line); }
.refresh-diagnostic-row .refresh-diagnostic-error { grid-column: 1 / -1; color: var(--warn); }
.scanner-detail-section { background: rgba(98,166,255,.07); border: 1px solid rgba(98,166,255,.25); border-radius: 14px; padding: 12px 14px; margin-bottom: 10px; }
.scanner-detail-section h3 { margin: 0 0 8px; font-size: 14px; color: var(--accent); }
.shadow-mode-note, .performance-local-warning { display: grid; gap: 4px; margin-bottom: 12px; padding: 11px 13px; border: 1px solid rgba(185,144,255,.38); border-radius: 13px; background: rgba(185,144,255,.08); color: var(--text); font-size: 12px; line-height: 1.4; }
.shadow-mode-note b { color: var(--purple); text-transform: uppercase; letter-spacing: .6px; font-size: 10px; }
.catalyst-boundary { border-color: rgba(98,166,255,.38); background: rgba(98,166,255,.08); }
.catalyst-boundary b { color: var(--accent); }
.catalyst-intake-status { display:flex; justify-content:space-between; align-items:end; gap:10px; margin:0 2px 9px; color:var(--muted); font-size:11px; }
.catalyst-intake-status b { display:block; color:var(--text); margin-top:2px; font-size:14px; }
.catalyst-intake-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-bottom:10px; }
.catalyst-watchlist-warning { display:grid; gap:4px; margin-bottom:10px; padding:11px 13px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.025); color:var(--text); font-size:12px; line-height:1.4; }
.catalyst-watchlist-warning b { font-size:10px; letter-spacing:.6px; }
.catalyst-watchlist-warning.warn { border-color:rgba(247,201,72,.42); background:rgba(247,201,72,.09); color:var(--warn); }
.catalyst-watchlist-warning.bad { border-color:rgba(255,107,114,.42); background:rgba(255,107,114,.08); color:var(--bad); }
.catalyst-watchlist-card { margin-bottom:10px; padding:13px; border:1px solid rgba(98,166,255,.26); border-radius:16px; background:linear-gradient(180deg,var(--panel),#0a1726); }
.catalyst-strength { font-size:17px; font-weight:900; text-align:right; }
.catalyst-strength.good { color:var(--good); }
.catalyst-strength.bad { color:var(--bad); }
.catalyst-strength.warn { color:var(--warn); }
.catalyst-strength.accent { color:var(--accent); }
.catalyst-watchlist-title { margin-top:9px; font-size:14px; font-weight:780; line-height:1.35; }
.catalyst-watchlist-meta { margin-top:8px; color:var(--muted); font-size:10px; }
.catalyst-evidence { display:flex; gap:5px; flex-wrap:wrap; margin-top:9px; }
.catalyst-evidence span { padding:3px 6px; border-radius:7px; border:1px solid rgba(98,166,255,.2); background:rgba(98,166,255,.06); color:var(--muted); font-size:10px; }
.catalyst-source-link { margin-top:10px; text-decoration:none; }
.sec8k-boundary { border-color: rgba(247,201,72,.38); background: rgba(247,201,72,.07); }
.sec8k-boundary b { color: var(--warn); }
.sec8k-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-bottom:10px; }
.sec8k-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-bottom:12px; }
.sec8k-filters label { display:grid; gap:4px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.4px; text-transform:uppercase; }
.sec8k-filters select, .sec8k-filters input { width:100%; min-width:0; padding:9px 8px; border:1px solid var(--line); border-radius:9px; background:var(--panel); color:var(--text); font:inherit; font-size:11px; text-transform:none; }
.sec8k-card { margin-bottom:10px; padding:13px; border:1px solid rgba(247,201,72,.26); border-radius:16px; background:linear-gradient(180deg,var(--panel),#0a1726); }
.sec8k-materiality { font-size:19px; font-weight:900; text-align:right; }
.sec8k-materiality small { font-size:10px; font-weight:700; color:var(--muted); }
.sec8k-materiality.good { color:var(--good); }
.sec8k-materiality.bad { color:var(--bad); }
.sec8k-materiality.accent { color:var(--accent); }
.sec8k-category { margin-top:9px; color:var(--warn); font-size:11px; font-weight:900; letter-spacing:.45px; text-transform:uppercase; }
.short-pressure-boundary { border-color:rgba(185,144,255,.42); background:rgba(185,144,255,.09); }
.short-pressure-boundary b { color:var(--purple); }
.short-pressure-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-bottom:9px; }
.short-pressure-source { margin:0 2px 10px; color:var(--muted); font-size:11px; line-height:1.35; }
.short-pressure-card { margin-bottom:10px; padding:13px; border:1px solid rgba(185,144,255,.28); border-radius:16px; background:linear-gradient(180deg,var(--panel),#0a1726); }
.short-pressure-card.stale { border-color:rgba(247,201,72,.35); }
.short-pressure-score { font-size:22px; font-weight:900; text-align:right; color:var(--purple); }
.short-pressure-score small { font-size:10px; color:var(--muted); }
.short-pressure-components { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.short-pressure-components span { padding:3px 6px; border:1px solid rgba(185,144,255,.22); border-radius:7px; background:rgba(185,144,255,.06); color:var(--muted); font-size:10px; }
.short-pressure-meta { margin-top:9px; color:var(--muted); font-size:10px; }
.short-pressure-badges { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.short-pressure-warning { margin-top:9px; color:var(--warn); font-size:10px; line-height:1.45; }
.verified-short-context { display:grid; gap:9px; margin-top:12px; padding:11px; border:1px solid rgba(98,166,255,.30); border-radius:12px; background:rgba(98,166,255,.055); }
.verified-short-context.incomplete { border-color:rgba(247,201,72,.34); background:rgba(247,201,72,.045); }
.short-pressure-verified-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.short-pressure-verified-grid .metric { min-width:0; }
.short-pressure-verified-grid .metric small { display:block; margin-top:3px; color:var(--muted); font-size:9px; line-height:1.3; }
.short-squeeze-score { display:grid; gap:1px; color:var(--accent); text-align:right; font-size:19px; font-weight:900; }
.short-squeeze-score.good { color:var(--good); }
.short-squeeze-score.warn { color:var(--warn); }
.short-squeeze-score small { color:var(--muted); font-size:9px; font-weight:700; }
.short-squeeze-explanation { display:grid; gap:3px; padding:8px 9px; border:1px solid rgba(65,217,139,.22); border-radius:9px; background:rgba(65,217,139,.06); color:var(--text); font-size:10px; line-height:1.4; }
.short-squeeze-explanation b { color:var(--good); font-size:10px; letter-spacing:.35px; }
.performance-local-warning { border-color: rgba(247,201,72,.42); background: rgba(247,201,72,.09); color: var(--warn); }
.performance-intro { margin: 0 2px 12px; }
.performance-counts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; margin-bottom: 12px; }
.performance-outcome-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-bottom: 12px; }
.performance-card { margin-bottom: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(180deg,var(--panel),#0a1726); }
.performance-card h3 { margin: 0 0 10px; color: var(--accent); font-size: 13px; text-transform: uppercase; letter-spacing: .6px; }
.performance-breakdown { display: grid; gap: 7px; padding: 10px 0; border-top: 1px solid var(--line); font-size: 12px; }
.performance-breakdown:first-of-type { border-top: 0; padding-top: 0; }
.performance-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.insufficient-sample { display: grid; gap: 4px; padding: 10px; border: 1px solid rgba(247,201,72,.35); border-radius: 10px; background: rgba(247,201,72,.08); color: var(--warn); font-size: 12px; }
.insufficient-sample span { color: var(--text); line-height: 1.4; }
.performance-signal { margin-bottom: 9px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
.performance-signal-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6px; margin-top: 10px; }
.performance-signal-grid span { color: var(--muted); font-size: 10px; }
.performance-signal-grid b { display: block; color: var(--text); font-size: 12px; margin-top: 2px; }
.tracker-health { display: flex; align-items: center; gap: 8px; padding: 9px 13px; margin-bottom: 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.03); font-size: 11px; color: var(--muted); flex-wrap: wrap; }
.tracker-health .th-label { color: var(--accent); font-weight: 600; letter-spacing: .4px; margin-right: 4px; }
.tracker-health .th-error { color: var(--warn); background: rgba(247,201,72,.08); border-radius: 6px; padding: 1px 7px; }
.tracker-health .th-ok { color: #4ade80; }
.outcome-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 7px; margin-top: 10px; }
.outcome-detail-grid .metric { padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.02); }
.outcome-timing-row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 7px; margin-top: 8px; }
.outcome-timing-row .metric { padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.02); }
@media (max-width: 420px) { .performance-counts { grid-template-columns: repeat(3, minmax(0,1fr)); } .performance-outcome-grid, .outcome-detail-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } .outcome-timing-row { grid-template-columns: 1fr; } .catalyst-intake-grid, .short-pressure-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } .short-pressure-verified-grid { grid-template-columns:1fr; } .catalyst-intake-status { align-items:flex-start; flex-direction:column; } .bottom-nav small { font-size: 8px; } }

/* ── Relative Strength pills ──────────────────────────────────────────────── */
.rs-pill {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .4px;
  padding: 2px 7px;
  border-radius: 6px;
  white-space: nowrap;
  text-transform: uppercase;
}
.rs-leading        { background: rgba(74,222,128,.15); color: #4ade80; border: 1px solid rgba(74,222,128,.35); }
.rs-outperforming  { background: rgba(56,189,248,.12); color: #38bdf8; border: 1px solid rgba(56,189,248,.30); }
.rs-neutral        { background: rgba(255,255,255,.06); color: var(--muted); border: 1px solid var(--line); }
.rs-lagging        { background: rgba(247,201,72,.10); color: var(--warn); border: 1px solid rgba(247,201,72,.30); }
.rs-underperforming{ background: rgba(255,69,69,.12); color: var(--bad); border: 1px solid rgba(255,69,69,.28); }

/* RS detail table in the modal */
.rs-table { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: 8px; }
.rs-table th { color: var(--muted); font-weight: 600; text-align: left; padding: 4px 8px; border-bottom: 1px solid var(--line); }
.rs-table td { padding: 5px 8px; border-bottom: 1px solid rgba(255,255,255,.05); }
.rs-table tr:last-child td { border-bottom: none; }
.rs-table .pos { color: #4ade80; }
.rs-table .neg { color: var(--bad); }

/* Dark pool levels table in the setup detail modal
   .dp-table-wrap provides horizontal scroll on narrow viewports so the
   six-column table never forces a horizontal page overflow on mobile. */
.dp-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.dp-table { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: 6px; min-width: 310px; }
.dp-table th { color: var(--muted); font-weight: 600; text-align: left; padding: 4px 6px; border-bottom: 1px solid var(--line); font-size: 10px; text-transform: uppercase; letter-spacing: .4px; white-space: nowrap; }
.dp-table td { padding: 5px 6px; border-bottom: 1px solid rgba(255,255,255,.05); white-space: nowrap; }
.dp-table tr:last-child td { border-bottom: none; }
.dp-table .pos { color: #4ade80; }
.dp-table .neg { color: var(--bad); }
.dp-label { display: inline-block; padding: 2px 7px; border-radius: 8px; font-size: 10px; font-weight: 700; letter-spacing: .3px; white-space: nowrap; }
.dp-label.dp-strongest { background: rgba(98,166,255,.22); color: #7ab8ff; border: 1px solid rgba(98,166,255,.38); }
.dp-label.dp-major { background: rgba(247,201,72,.13); color: var(--warn); border: 1px solid rgba(247,201,72,.28); }
.dp-label.dp-secondary { background: rgba(255,255,255,.05); color: var(--muted); border: 1px solid var(--line); }

@media (max-width: 420px) {
  .bottom-nav small { font-size: 11px; }
  .segment-btn { min-height: 40px; font-size: 10px; }
}
@media (max-width: 360px) {
  .bottom-nav { padding-left: 6px; padding-right: 6px; }
  .nav-btn small { font-size: 10px; }
  .compact-context { gap: 7px; padding: 8px 9px; }
}

/* ----------------------------------------------------------------
   A+ Engine telemetry panel
   ---------------------------------------------------------------- */
.aplus-engine-header {
  background: linear-gradient(150deg, var(--panel), #0d1d31);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 15px;
  margin-bottom: 10px;
}
.aplus-engine-header h3 { margin: 3px 0 0; font-size: 18px; }
.aplus-engine-header.good    { border-color: rgba(55,214,122,.42); }
.aplus-engine-header.warn    { border-color: rgba(247,201,72,.45); }
.aplus-engine-header.bad     { border-color: rgba(255,107,114,.48); }
.aplus-engine-header.waiting { border-color: rgba(98,166,255,.38); }
.aplus-version { color: var(--muted); font-size: 11px; margin-top: 3px; }
.aplus-broker-badge {
  display: inline-flex; align-items: center;
  padding: 7px 12px; border-radius: 10px;
  font-size: 12px; font-weight: 900; letter-spacing: .35px;
  white-space: nowrap; flex-shrink: 0;
}
.aplus-broker-badge.good {
  background: rgba(65,217,139,.14);
  border: 1.5px solid rgba(65,217,139,.45);
  color: var(--good);
}
.aplus-broker-badge.bad {
  background: rgba(255,107,114,.15);
  border: 1.5px solid rgba(255,107,114,.55);
  color: var(--bad);
}
.aplus-meta-row { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 11px; }
.aplus-last-updated {
  margin-top: 9px; color: var(--muted);
  font-size: 10px; font-weight: 700; letter-spacing: .4px;
}
.aplus-subsystem-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 7px;
  margin-bottom: 10px;
}
.aplus-sub {
  display: flex; justify-content: space-between; align-items: center;
  padding: 8px 10px; border: 1px solid var(--line); border-radius: 11px;
  background: rgba(98,166,255,.04); min-width: 0;
}
.aplus-sub span:first-child { color: var(--muted); font-size: 10px; }
.aplus-engine-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 7px;
  margin-bottom: 10px;
}
.aplus-kv {
  padding: 8px; border: 1px solid var(--line); border-radius: 10px;
  background: rgba(255,255,255,.015); min-width: 0;
}
.aplus-kv span { display: block; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .4px; }
.aplus-kv b { display: block; margin-top: 3px; font-size: 12px; overflow-wrap: anywhere; }
.aplus-last-error {
  margin-bottom: 10px; padding: 9px 11px;
  border: 1px solid rgba(255,107,114,.38); border-radius: 10px;
  background: rgba(255,107,114,.08); color: var(--bad);
  font-size: 11px; line-height: 1.4;
}
.aplus-last-error b {
  display: block; margin-bottom: 4px;
  font-size: 10px; letter-spacing: .4px; text-transform: uppercase;
}
@media (min-width: 480px) {
  .aplus-subsystem-grid { grid-template-columns: repeat(4, 1fr); }
  .aplus-engine-grid    { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

/* ── UW Verified Short Intelligence — source badges and tier groups ── */
.uw-source-badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 7px; border-radius: 6px;
  font-size: 9px; font-weight: 900; letter-spacing: .5px; text-transform: uppercase;
  white-space: nowrap; flex-shrink: 0;
}
.uw-source-badge.uw {
  background: rgba(98,166,255,.15); color: var(--accent);
  border: 1px solid rgba(98,166,255,.4);
}
.uw-source-badge.polygon {
  background: rgba(143,164,188,.12); color: var(--muted);
  border: 1px solid rgba(143,164,188,.28);
}
.uw-short-group {
  margin-top: 10px; padding: 10px 11px;
  border: 1px solid rgba(98,166,255,.18); border-radius: 10px;
  background: rgba(98,166,255,.03);
}
.uw-short-group-head {
  display: flex; align-items: center; gap: 7px; margin-bottom: 8px;
  font-size: 11px; font-weight: 700; color: var(--text);
}
.uw-short-group .short-pressure-meta { margin-top: 6px; margin-bottom: 0; }
