
:root{color-scheme:light dark;--bg:var(--tg-theme-bg-color,#101822);--txt:var(--tg-theme-text-color,#f4f7fb);--muted:var(--tg-theme-hint-color,#a6b1c0);--card:var(--tg-theme-secondary-bg-color,#202b3b);--accent:var(--tg-theme-button-color,#337dd9);--bt:var(--tg-theme-button-text-color,#fff)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);font:15px/1.5 system-ui,-apple-system,sans-serif}
main{max-width:650px;margin:auto;padding:22px 16px 45px}
h1{font-size:27px;margin:4px 0}h2{font-size:18px;margin:0 0 6px}h3{font-size:17px;margin:0}
p{color:var(--muted);margin:4px 0 14px}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;color:var(--muted)}
#notice{padding:10px 12px;margin:12px 0 14px;border-radius:10px;background:color-mix(in srgb, var(--card) 80%, transparent);font-weight:500;font-size:13px;color:var(--muted)}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}
.tiles button{height:73px;display:flex;align-items:center;gap:13px;font-size:16px;font-weight:650}.tiles span{font-size:15px}
button,input,select{font:inherit;border-radius:11px;min-height:43px}
button{border:1px solid #77889944;background:var(--card);color:var(--txt);padding:10px 14px;cursor:pointer}
button:disabled{opacity:.5;cursor:wait}.primary{background:var(--accent);color:var(--bt);border-color:transparent;width:100%;font-weight:700}
.panel{padding:19px 16px;margin-top:13px;border:1px solid #77889930;background:var(--card);border-radius:16px}.panel p{font-size:13px}
label{display:block;font-size:12px;font-weight:650;margin-bottom:11px}
input,select{display:block;width:100%;background:var(--bg);border:1px solid #77889955;color:var(--txt);padding:9px 10px;margin-top:5px}
.line{display:flex;align-items:end;gap:8px;margin:10px 0}.line>*{min-width:0;flex:1}.line button{flex:0 0 auto}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.three input{font-size:13px;padding:8px 5px}
footer{font-size:12px;color:var(--muted);text-align:center;margin-top:25px}
.panel[hidden],.signal-flow[hidden],.signal-actions[hidden]{display:none!important}
#result-text,.signal-detail pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.55 system-ui,-apple-system,sans-serif;margin:0;color:var(--txt)}
.signal-flow{margin-top:18px;padding:16px 14px;background:var(--bg);border:1px solid #77889955;border-radius:13px;scroll-margin-top:20px}
.signal-heading{display:flex;align-items:center;gap:7px;justify-content:space-between;flex-wrap:wrap}
.signal-state{font-size:11px;color:var(--muted);border:1px solid #77889955;padding:3px 8px;border-radius:99px}
.signal-market{display:flex;gap:8px;align-items:baseline;margin:13px 0 9px}.signal-market strong{font-size:17px}.signal-market span{font-size:12px;color:var(--muted)}
.signal-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:13px}
.signal-levels>div{min-width:0;padding:9px 6px;background:var(--card);border-radius:8px}
.signal-levels span{display:block;font-size:11px;color:var(--muted)}.signal-levels strong{display:block;font-size:clamp(12px,3.7vw,16px);overflow-wrap:anywhere}
.signal-actions,.prior-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}
.signal-actions button,.prior-actions button{min-width:0;width:100%;white-space:normal;overflow-wrap:anywhere}
.signal-caution{font-size:12px!important;color:var(--muted);margin-bottom:8px}
.signal-feedback{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px!important}
.signal-detail,.prior-signal{margin-top:12px}.signal-detail summary,.prior-signal summary{cursor:pointer;color:var(--muted);font-size:13px;padding:9px 0;user-select:none}
.signal-detail pre{max-height:220px;overflow-y:auto;margin-top:8px}.prior-signal{border-top:1px solid #77889933;padding-top:7px}
@media(max-width:370px){.line{flex-wrap:wrap}.line button{flex:1}.three{grid-template-columns:repeat(3,minmax(0,1fr))}}

.review-detail-button{grid-column:1/-1;font-weight:650}

/* RC31B: brief-first, readable mobile verdict; full evidence only on request. */
.ai-quick{scroll-margin-top:20px; padding:18px!important;}
.ai-top{display:flex;gap:14px;justify-content:space-between;align-items:center;margin-bottom:14px}
.ai-top h2{font-size:20px;margin:4px 0 0;letter-spacing:-.02em;line-height:1.25}
.ai-verdict{padding:7px 11px;border:1px solid currentColor;border-radius:9px;font-size:14px;letter-spacing:.03em;white-space:nowrap}
.ai-verdict[data-verdict="WAIT"]{color:#a16a00;background:#dca63a20}
.ai-verdict[data-verdict="AVOID"]{color:#d04747;background:#cc484817}
.ai-verdict[data-verdict="TAKE"]{color:#238750;background:#28875c18}
.ai-quick p.ai-summary{font-size:16px!important;line-height:1.48;font-weight:580;color:var(--txt);margin:10px 0 13px}
.ai-quick p.ai-brief-row{font-size:14px!important;line-height:1.45;color:var(--txt);margin:10px 0;padding-top:9px;border-top:1px solid #77889930}
.ai-quick p.ai-source{font-size:11px!important;line-height:1.45;color:var(--muted);margin:14px 0}
.ai-evidence{border-top:1px solid #77889930;padding-top:9px}
.ai-evidence summary{font-size:13px;color:var(--muted);cursor:pointer;padding:8px 0}
.ai-evidence pre{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--txt);font:12px/1.45 system-ui,-apple-system,sans-serif;max-height:55vh;overflow-y:auto;margin-top:8px}

.ai-bias{font-size:12px;color:var(--muted);font-weight:600}

/* RC31C saved open-review cards. No horizontal overflow on narrow phones. */
.open-review-results {margin: 18px 0;}
.open-review-results .panel {overflow-wrap:anywhere; margin:12px 0;}
.open-review-results pre {white-space:pre-wrap; overflow-wrap:anywhere; max-width:100%;}
.open-review-results .ai-verdict {display:inline-block; margin:6px 0;}

/* RC33: one Alerts section with mutually exclusive compact forms. */
#price-alert-form[hidden],#alert-form[hidden]{display:none!important}
#alerts-panel .line button{min-width:0;white-space:normal;flex:1}

/* RC36AK: separate personal alerts from the internal system-warning log. */
#alerts-list[hidden]{display:none!important}
.active-alerts{background:var(--bg);border:1px solid #77889935;border-radius:13px;
  padding:13px 14px;margin:14px 0;overflow-wrap:anywhere}
.active-alerts-heading,.active-alert-row-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.active-alerts-heading{font-size:13px;font-weight:700;padding-bottom:6px}
.active-alerts-heading span{font-size:11px;color:var(--muted);white-space:nowrap;font-weight:600}
.active-alert-row{padding:13px 0;border-bottom:1px solid #7788992d}
.active-alert-row:last-child{border-bottom:0;padding-bottom:2px}
.active-alert-row-top strong{min-width:0;font-size:14px}
.active-alert-id{font-size:11px;font-weight:700;white-space:nowrap;color:var(--muted);
  background:var(--card);border:1px solid #77889935;padding:3px 7px;border-radius:7px}
.active-alert-row p{color:var(--txt);font-size:13px!important;margin:5px 0 0}
.active-alert-row small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.active-alerts-empty{color:var(--muted);font-size:12px!important;margin:9px 0 2px}

/* RC33A: discreet configured-model credit, not a proof-of-participation indicator. */
.ai-quick p.ai-models{font-size:11px!important;color:var(--muted);line-height:1.45;margin:4px 0 12px;overflow-wrap:anywhere}
.ai-quick p.ai-models[hidden]{display:none!important}

/* RC33B: keep quick market picks prominent, with optional exact-IG discovery. */
.price-other-market{border-top:1px solid #77889930;margin-top:12px;padding-top:12px}
.price-other-market[hidden],#price-market-result-wrap[hidden]{display:none!important}
#price-market-search-status{font-size:12px;line-height:1.45;overflow-wrap:anywhere}

/* RC34: mobile-first P&L summary. Benchmarks and peak/pause figures are not rendered here. */
#scorecard-compact[hidden],#price-favourite-add-wrap[hidden],#price-favourites-group[hidden]{display:none!important}
.scorecard-compact{margin-top:16px;border-top:1px solid #77889936;padding-top:16px}
.scorecard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.scorecard-head .period{font-size:11px;color:var(--muted);letter-spacing:.07em;text-transform:uppercase}
.scorecard-total{font-size:clamp(29px,8.5vw,42px);font-weight:780;line-height:1.24;letter-spacing:-.03em;margin:7px 0 13px;font-variant-numeric:tabular-nums}
.money-positive{color:#53bd80}.money-negative{color:#ed7676}
.scorecard-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0 17px}
.scorecard-stats>div{background:var(--bg);border:1px solid #77889924;border-radius:11px;padding:11px 12px;min-width:0}
.scorecard-stats span{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
.scorecard-stats strong{font-size:18px;display:block;font-variant-numeric:tabular-nums}
.scorecard-systems-title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:12px 0 4px}
.scorecard-system{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid #77889930;font-size:14px}
.scorecard-system-name{min-width:0;overflow-wrap:anywhere}.scorecard-system-count{color:var(--muted);font-size:11px;margin-left:6px;white-space:nowrap}
.scorecard-system-value{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.scorecard-source{font-size:11px!important;color:var(--muted);margin:12px 0 0}
/* Optional user-managed favourites never make the primary market selector taller. */
.favourite-check{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:500;margin:10px 0}
.favourite-check input{width:18px;min-height:18px;height:18px;margin:0;accent-color:var(--accent)}
.favourites-manage{margin:12px 0 7px;padding:8px 0;border-top:1px solid #77889930}
.favourites-manage summary{font-size:12px;color:var(--muted);cursor:pointer;padding:4px 0}
.favourites-manage p{font-size:11px;color:var(--muted);margin:5px 0 0}
.favourites-manage select{font-size:12px}
/* RC34C: keep longer open-position verdicts legible on narrow Telegram screens. */
.open-review-results .ai-top > div{min-width:0}
.open-review-results .ai-verdict{max-width:45%;white-space:normal;text-align:center;overflow-wrap:anywhere;line-height:1.25}

/* RC35A: compact snapshot presentation; data remains unchanged. */
#snapshot-result[hidden],#snapshot-other-wrap[hidden]{display:none!important}
.snapshot-result{scroll-margin-top:20px;overflow-wrap:anywhere;padding:18px!important;border-radius:18px!important}
.snapshot-top{align-items:flex-start;margin-bottom:10px}
.snapshot-context{font-size:12px!important;color:var(--muted);margin:6px 0 0}
.snapshot-price-wrap{padding:14px 0 16px;border-top:1px solid #7788992b;border-bottom:1px solid #7788992b;margin-bottom:14px}
.snapshot-price{font-size:clamp(28px,9vw,42px);font-weight:780;line-height:1.1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--txt)}
.snapshot-meta{font-size:12px!important;color:var(--muted);margin:6px 0 0}
.snapshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0 0 14px}
.snapshot-card{background:var(--bg);border:1px solid #77889924;border-radius:13px;padding:12px 12px 13px;min-width:0}
.snapshot-card h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.snapshot-card-text{font-size:14px!important;line-height:1.48;color:var(--txt);margin:0}
.snapshot-watch-level{font-size:22px;font-weight:760;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:0 0 8px;color:var(--txt)}
.snapshot-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.snapshot-news{margin:0 0 12px;padding-top:12px;border-top:1px solid #77889930}
.snapshot-news h3{font-size:13px;margin:0}
.snapshot-chip{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border-radius:999px;border:1px solid #77889944;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.03em}
.snapshot-headline{padding:10px 0;border-bottom:1px solid #77889925;overflow-wrap:anywhere;font-size:13px}
.snapshot-headline:last-child{border-bottom:0;padding-bottom:3px}
.snapshot-headline a,.snapshot-headline strong,.snapshot-headline div{color:var(--txt);text-decoration:none;font-weight:600;display:block;line-height:1.4}
.snapshot-headline-primary a,.snapshot-headline-primary strong{font-size:15px;letter-spacing:-.01em}
.snapshot-headline small{display:block;color:var(--muted);font-size:11px;margin-top:5px;line-height:1.45}
.snapshot-empty{font-size:13px!important;color:var(--muted);margin:0}
.snapshot-evidence{border-top:1px solid #77889930;padding-top:9px}
.snapshot-note{font-size:11px!important;line-height:1.45;color:var(--muted);margin:8px 0 0}
#snapshot-trend[data-verdict="BULLISH"]{color:#238750;background:#28875c18}
#snapshot-trend[data-verdict="BEARISH"]{color:#d04747;background:#cc484817}
#snapshot-trend[data-verdict="MIXED"],#snapshot-trend[data-verdict="UNAVAILABLE"]{color:var(--muted);background:#77889917}
/* RC36AW: verdict badges must never split a single word (e.g. BEARIS/H).
   Multi-word NO CURRENT TREND may wrap only at spaces; reserve badge width
   from the heading's flex row instead of shrinking it character-by-character. */
#snapshot-trend{white-space:normal;text-align:center;overflow-wrap:normal;word-break:normal;
  hyphens:none;max-width:48%;flex-shrink:0}
#snapshot-trend[data-verdict="BULLISH"],#snapshot-trend[data-verdict="BEARISH"],
#snapshot-trend[data-verdict="MIXED"]{white-space:nowrap}
@media(max-width:420px){.snapshot-grid{grid-template-columns:1fr}.snapshot-price{font-size:34px}.snapshot-watch-level{font-size:20px}}

/* The optional third headline and full provenance never crowd the initial card. */
.snapshot-more{margin-top:4px;padding-top:4px}.snapshot-more[hidden]{display:none!important}
.snapshot-more summary{font-size:12px;color:var(--muted);cursor:pointer;padding:7px 0}
.snapshot-evidence p.ai-source{font-size:12px!important;line-height:1.45;color:var(--muted);margin:7px 0;overflow-wrap:anywhere}
#notice[hidden]{display:none!important}
@media(max-width:420px){.snapshot-top{gap:9px}.snapshot-top h2{font-size:20px}.snapshot-top .ai-verdict{max-width:48%;font-size:11px;line-height:1.25;padding:6px 8px}.snapshot-card{padding:12px}.snapshot-result{padding:16px!important}}

/* RC35B: ONE market research workspace, the same visual hierarchy as Performance.
   Snapshot is a nested result, not a second large panel and not a trade-proposal action. */
.snapshot-workspace{padding:19px 16px 17px;overflow:hidden;border-top:3px solid var(--accent);box-shadow:0 10px 32px #00000018}
.snapshot-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}
.snapshot-workspace-head h2{font-size:18px;letter-spacing:-.025em;margin:4px 0 4px}
.snapshot-workspace-head p{font-size:12px!important;line-height:1.5;margin:2px 0 0;max-width:40ch}
.snapshot-workspace-icon{width:37px;height:37px;flex-shrink:0;display:grid;place-items:center;color:var(--accent);font-size:21px;border-radius:11px;border:1px solid #77889930;background:var(--bg)}
.snapshot-workspace #snapshot-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:0}
.snapshot-workspace #snapshot-form label{margin:0;min-width:0}
.snapshot-workspace #snapshot-form #snapshot-other-wrap{grid-column:1/-1}
.snapshot-workspace #snapshot-form select{font-size:14px;margin-top:5px}
.snapshot-workspace #snapshot-form .primary{width:auto;min-height:43px;white-space:nowrap;padding:9px 14px}
.snapshot-workspace .snapshot-result{margin:17px -16px -17px;padding:18px 16px 17px!important;border-radius:0 0 13px 13px;border:0;border-top:1px solid #77889930;background:var(--card);scroll-margin-top:14px}
.snapshot-workspace .snapshot-top{margin-bottom:13px;align-items:center}
.snapshot-workspace .snapshot-top .eyebrow{font-size:10px;letter-spacing:.11em}
.snapshot-workspace .snapshot-price-wrap{border:1px solid #77889933;border-radius:14px;padding:14px 15px;margin-bottom:12px;background:var(--bg);box-shadow:inset 3px 0 0 var(--accent)}
.snapshot-workspace .snapshot-price{font-size:clamp(30px,8vw,40px);margin:0;color:var(--txt)}
.snapshot-workspace .snapshot-grid{gap:9px;margin-bottom:14px}
.snapshot-workspace .snapshot-card{border:1px solid #77889936;background:var(--bg);border-radius:12px;padding:12px 13px}
.snapshot-workspace .snapshot-card h3{font-size:11px;letter-spacing:.11em}
.snapshot-workspace .snapshot-news{padding-top:14px}
.snapshot-workspace .snapshot-evidence{margin-top:11px}
@media(max-width:420px){
 .snapshot-workspace #snapshot-form{grid-template-columns:minmax(0,1fr)}
 .snapshot-workspace #snapshot-form .primary{width:100%}
 .snapshot-workspace .snapshot-result{padding:16px!important}
 .snapshot-workspace .snapshot-card{padding:12px 13px}
 .snapshot-workspace .snapshot-top h2{font-size:19px}
 .snapshot-workspace .snapshot-grid{grid-template-columns:1fr}
}

/* RC36: small, persistent triggered-alert card, not another trade review. */
#recent-alerts[hidden],#recent-alert-history[hidden],#recent-alert-refresh[hidden]{display:none!important}
.recent-alerts{padding:15px 16px!important;border-left:3px solid var(--accent);
  box-shadow:0 5px 20px #00000012;overflow-wrap:anywhere;margin:12px 0 14px!important}
.recent-alert-head{display:flex;align-items:center;gap:10px;min-width:0}
.recent-alert-bell{display:grid;place-items:center;background:var(--bg);border:1px solid #77889935;
  border-radius:11px;height:36px;width:36px;flex-shrink:0;font-size:18px}
.recent-alert-heading{min-width:0;flex:1}
.recent-alert-heading .eyebrow{font-size:10px;margin:0;color:var(--muted);letter-spacing:.11em}
.recent-alert-time{font-size:11px;color:var(--muted);margin-top:3px}
.recent-alert-state{border:1px solid #c6a66665;background:#ad8c2120;color:#947324;
  border-radius:8px;padding:5px 8px;font-size:10px;font-weight:750;letter-spacing:.055em;flex-shrink:0}
.recent-alert-market{font-size:18px;font-weight:750;letter-spacing:-.02em;margin:9px 0 10px;color:var(--txt)}
.recent-alert-values{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.recent-alert-values>div{min-width:0;border-radius:10px;background:var(--bg);border:1px solid #7788992b;padding:9px 11px}
.recent-alert-values span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}
.recent-alert-values strong{display:block;font-size:16px;font-variant-numeric:tabular-nums;
  font-weight:730;overflow-wrap:anywhere;line-height:1.3}
.recent-alert-source,.recent-alert-refresh{font-size:11px!important;color:var(--muted);
  line-height:1.4;margin:9px 0 0}
.recent-alert-history{margin-top:11px;padding-top:9px;border-top:1px solid #77889930}
.recent-alert-history summary{font-size:12px;color:var(--muted);cursor:pointer}
.recent-alert-past{border-bottom:1px solid #7788992b;padding:10px 0}
.recent-alert-past:last-child{border-bottom:none;padding-bottom:2px}
.recent-alert-past-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.recent-alert-past-top strong{font-size:13px}.recent-alert-past-top span{font-size:11px;color:var(--muted)}
.recent-alert-past p{font-size:12px!important;line-height:1.45;margin:4px 0 0;color:var(--txt)}
@media(max-width:420px){.recent-alerts{padding:13px 14px!important}.recent-alert-values strong{font-size:14px}}

/* RC36AI: acknowledgement changes presentation only, not the trigger ledger. */
.recent-alert-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:12px}
.recent-alert-actions button{background:transparent;color:var(--txt);border:1px solid #77889966;
  border-radius:9px;padding:8px 12px;min-height:36px;font-size:12px;font-weight:650}
.recent-alert-actions button:disabled{opacity:.55}
#recent-alert-action-status{font-size:11px;color:var(--muted)}
.seen-alert-history{margin-top:14px;padding:11px 0;border-top:1px solid #77889942}
.seen-alert-history summary{font-size:13px;cursor:pointer;color:var(--txt);font-weight:650}
.seen-alert-history-item{display:grid;grid-template-columns:1fr auto;column-gap:9px;padding:10px 0;
  border-bottom:1px solid #7788992e;overflow-wrap:anywhere}
.seen-alert-history-item strong{font-size:12px}.seen-alert-history-item span{font-size:11px;color:var(--muted)}
.seen-alert-history-item p{grid-column:1/-1;margin:4px 0 0;font-size:11px!important;color:var(--muted)}

/* A new trigger noticed while OPEN raises a 10s non-modal banner; historical
   triggers found on first load remain in the card without an intrusive toast. */
#recent-alert-toast[hidden]{display:none!important}
.recent-alert-toast{position:fixed;z-index:40;bottom:calc(14px + env(safe-area-inset-bottom,0px));
  left:14px;right:14px;max-width:480px;margin:0 auto;display:flex;align-items:center;gap:9px;
  background:var(--card);border:1px solid #77889966;border-left:3px solid var(--accent);
  border-radius:14px;box-shadow:0 8px 28px #00000044;padding:9px 10px;color:var(--txt)}
.recent-alert-toast-icon{flex:0 0 auto;font-size:18px}
.recent-alert-toast button{font:inherit;color:inherit;background:transparent;border:0;
  min-height:34px;cursor:pointer;padding:4px 6px;box-shadow:none}
.recent-alert-toast #recent-alert-toast-show{flex:1;min-width:0;text-align:left;font-size:13px;font-weight:650;overflow-wrap:anywhere}
.recent-alert-toast #recent-alert-toast-close{flex:0 0 auto;font-size:23px;line-height:1}

/* Health strip: one glance answers "is Hero alive and are its inputs fresh?" */
#health-strip[hidden]{display:none!important}
.health-strip{--hs:#8a94a3;background:var(--card);border:1px solid #77889930;border-left:3px solid var(--hs);
  border-radius:12px;padding:9px 12px;margin:10px 0 12px}
.health-strip[data-level="GREEN"]{--hs:#2fae66}
.health-strip[data-level="AMBER"]{--hs:#d99a1b}
.health-strip[data-level="RED"]{--hs:#e5484d}
.health-main{display:flex;align-items:center;gap:8px;min-width:0}
.health-dot{width:9px;height:9px;border-radius:50%;background:var(--hs);flex-shrink:0;box-shadow:0 0 0 3px #77889918}
.health-strip[data-level="GREEN"] .health-dot{animation:health-pulse 2.4s ease-in-out infinite}
@keyframes health-pulse{0%,100%{opacity:1}50%{opacity:.45}}
@media(prefers-reduced-motion:reduce){.health-strip .health-dot{animation:none!important}}
.health-main strong{font-size:13px;font-weight:700;color:var(--txt);min-width:0;overflow-wrap:anywhere}
.health-age{margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.health-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.health-chips:empty{display:none}
.health-chip{font-size:10.5px;font-weight:650;letter-spacing:.02em;border-radius:7px;padding:3px 7px;
  border:1px solid #77889935;color:var(--muted);white-space:nowrap}
.health-chip[data-state="OK"]{color:#2fae66;border-color:#2fae6650}
.health-chip[data-state="WARN"]{color:#c98a0c;border-color:#d99a1b60}
.health-chip[data-state="BAD"]{color:#e5484d;border-color:#e5484d60}

/* RC36AM: one deliberate entry point, with per-alert cancellation inside the list. */
.active-alerts-toggle{width:100%;display:block;margin:14px 0 0;padding:11px 16px;
  font-weight:650;min-height:47px;text-align:center}
.active-alerts-toggle::after{content:' ▾';font-size:12px;color:var(--muted)}
.active-alerts-toggle[aria-expanded="true"]::after{content:' ▴'}
.active-alert-action-status{margin:9px 0 0!important;font-size:12px!important;color:var(--muted)}
.active-alert-action-status[hidden]{display:none!important}
.active-alert-row-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px}
.active-alert-row-bottom .active-alert-detail{flex:1;min-width:0;color:var(--txt);font-size:13px!important;margin:0}
.active-alert-cancel{background:transparent;border:1px solid #77889966;border-radius:9px;
  font-size:12px;font-weight:650;padding:6px 12px;min-height:36px;flex:0 0 auto}
.active-alert-cancel:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:350px){.active-alert-row-bottom{flex-wrap:wrap}.active-alert-cancel{margin-left:auto}}

/* RC36AO: Positions and DEFCON use the same polished card language as the rest
   of the Mini App, instead of dumping plain Telegram text into Latest result. */
#positions-view[hidden],#defcon-view[hidden]{display:none!important}
.positions-view,.defcon-view{padding:18px 16px!important;overflow:hidden;box-shadow:0 8px 26px #00000014}
.positions-view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.positions-view-head h2{font-size:20px;letter-spacing:-.02em;margin:4px 0 3px}
.positions-view-head p{font-size:12px!important;line-height:1.48;margin:2px 0 0;max-width:43ch}
.positions-total{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:110px}
.positions-total span{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.positions-total strong{font-size:22px;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.defcon-total strong{font-size:12px;color:var(--muted);max-width:160px;text-align:right;font-weight:650;line-height:1.4}
.positions-list{display:grid;gap:10px}
.position-card{border:1px solid #77889932;background:var(--bg);border-radius:14px;padding:14px 13px}
.position-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.position-card-title{min-width:0;flex:1}
.position-card-title h3{font-size:17px;line-height:1.25;margin:0;color:var(--txt);overflow-wrap:anywhere}
.position-card-sub{font-size:11px;color:var(--muted);margin-top:4px;font-weight:600;letter-spacing:.03em}
.position-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.position-pnl{font-size:22px;font-weight:780;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.mini-pill,.defcon-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:750;letter-spacing:.035em;border:1px solid #77889938;text-align:center}
.defcon-pill{font-size:12px;min-width:86px}
.defcon-1{background:#dc3e4720;color:#dc3e47}.defcon-2{background:#ea713f22;color:#ea713f}.defcon-3{background:#e2ac3620;color:#d6a128}.defcon-4{background:#92ae4720;color:#9fbd4c}.defcon-5{background:#20965e1f;color:#28a368}.defcon-standby{background:#77889920;color:var(--muted)}
.protect-danger{background:#dc3e4720;color:#dc3e47}.protect-warning{background:#ea713f22;color:#ea713f}.protect-caution{background:#e2ac3620;color:#d6a128}.protect-good{background:#20965e1f;color:#28a368}.protect-neutral{background:#77889920;color:var(--muted)}
.position-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.position-stats>div{min-width:0;border:1px solid #77889924;border-radius:11px;background:var(--card);padding:10px 11px}
.position-stats span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px;letter-spacing:.045em;text-transform:uppercase}
.position-stats strong{display:block;font-size:15px;line-height:1.3;color:var(--txt);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.position-note{font-size:12px!important;line-height:1.48;color:var(--txt);margin:11px 0 0}
.position-footer{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid #7788992b;margin-top:11px;padding-top:9px;font-size:11px;color:var(--muted)}
.positions-empty{font-size:13px!important;color:var(--muted);margin:4px 0 0}
@media(max-width:420px){.positions-total{align-items:flex-start}.positions-total strong{font-size:19px}.position-card-head{flex-wrap:wrap}.position-card-right{align-items:flex-start}.position-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.defcon-total strong{text-align:left;max-width:none}}

/* RC36AP: explicit snapshot provenance; never make a stale broker snapshot look live. */
.positions-snapshot-age{font-size:11px!important;font-weight:650;color:var(--muted);margin:7px 0 0!important;line-height:1.45}
.positions-snapshot-age.stale{color:#d99a1b}
.defcon-explainer{font-size:11px!important;line-height:1.4;color:var(--muted);margin:7px 0 1px!important;max-width:47ch}
.positions-error{border:1px solid #df9c3266;background:#b4882720;color:var(--txt);
  padding:11px 12px;border-radius:10px;font-size:12px!important;margin:8px 0!important}
.positions-error[hidden]{display:none!important}
/* Assessment timestamps are not IG snapshot times and must be labelled. */
.position-footer span:last-child{white-space:normal}

/* RC36AS: one conventional, always-present Positions section with three views.
   All content is below Market Snapshot; one panel is visible at a time. */
#positions-section{scroll-margin-top:12px;overflow:hidden}
.positions-workspace-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}
.positions-workspace-heading h2{font-size:18px;margin:0 0 5px}
.positions-workspace-heading p{font-size:12px!important;line-height:1.45;margin:0;max-width:43ch}
.positions-workspace-icon{width:35px;height:35px;flex:0 0 auto;display:grid;place-items:center;
  color:var(--accent);border:1px solid #77889935;background:var(--bg);border-radius:10px}
.position-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:5px;
  border:1px solid #77889932;background:var(--bg);border-radius:12px;margin-bottom:14px}
.position-tabs button{min-width:0;min-height:42px;padding:8px 5px;border:1px solid transparent;
  background:transparent;border-radius:9px;font-size:12px;font-weight:700;white-space:normal}
.position-tabs button[aria-selected="true"]{color:var(--txt);background:var(--card);border-color:#77889955;
  box-shadow:0 2px 7px #00000018}
.position-tabs button:focus-visible,.tiles button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#positions-placeholder{padding:14px 12px;border:1px dashed #77889955;border-radius:11px;
  background:var(--bg);font-size:12px!important;color:var(--muted);margin:0}
#positions-placeholder[hidden],#open-review-results[hidden]{display:none!important}
#positions-section .positions-view,#positions-section .defcon-view{padding:0!important;background:transparent;
  box-shadow:none;border:0;border-radius:0;margin:0}
#positions-section .positions-view-head h2{font-size:17px}
#positions-section .positions-view-head{margin-bottom:11px}
#positions-section .open-review-results{margin:0}
#positions-section .open-review-results>h2{font-size:16px;margin:0 0 8px}
#positions-section .open-review-results .panel{background:var(--bg)}
#positions-section .open-review-results>p{padding:12px;border:1px solid #77889932;
  border-radius:11px;background:var(--bg);margin:0;font-size:12px}
#proposal-section,#alerts-panel,#scorecard-panel{scroll-margin-top:12px}
@media(max-width:370px){.position-tabs button{font-size:11px}}

/* RC36AX — private open-position AI request and explicitly unvalidated commentary. */
.open-review-actions{display:grid;gap:9px;margin:12px 0 7px}
.review-current-button{width:100%;min-width:0;white-space:normal;text-align:center;overflow-wrap:normal;font-size:14px}
.ai-review-intro{font-size:12px!important;color:var(--muted);line-height:1.45;margin:8px 0}
.ai-review-unvalidated{border:1px solid #d49c53!important;background:#211d19!important;min-width:0;overflow-wrap:anywhere}
.ai-review-unvalidated strong{color:#f7c483;font-size:13px}
.ai-review-unvalidated p{color:var(--muted);font-size:12px}
.ai-review-unvalidated pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.5;max-width:100%}

.review-refresh-button{font-size:12px;padding:9px 12px;width:100%;margin:7px 0 10px}

/* RC36BB: signed P&L alerts are selectable without an iOS minus key. */
.alert-direction{border:0;padding:0;margin:3px 0 11px;min-width:0}
.alert-direction legend{font-size:12px;font-weight:650;padding:0 0 6px;color:var(--txt)}
.alert-direction-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.alert-direction-options label{margin:0;position:relative;cursor:pointer;min-width:0}
.alert-direction-options input{position:absolute;width:1px;height:1px;opacity:0;padding:0;margin:0}
.alert-direction-options span{display:block;border-radius:10px;border:1px solid #77889955;
  background:var(--bg);padding:10px 7px;text-align:center;font-size:13px;font-weight:700;line-height:21px}
.alert-direction-options input:checked+span{border-color:var(--accent);
  box-shadow:inset 0 0 0 1px var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg))}
.alert-direction-options input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}

/* RC37: short, thumb-friendly model selector, one paid action per review. */
.review-model-picker{display:block;grid-column:1/-1;font-size:12px;font-weight:650;color:var(--muted);margin:3px 0 6px}
.review-model-select{display:block;width:100%;min-height:42px;margin-top:5px;border-radius:10px;
 border:1px solid #77889955;background:var(--bg);color:var(--txt);padding:8px 10px;font-size:14px}
.open-review-choice{display:grid;gap:6px;padding:10px 0;border-bottom:1px solid #77889930}
.open-review-choice button{margin:0}

/* RC37E: isolated full HTML report; no global layout or command changes. */
#scorecard-full-wrap{margin-top:12px;min-width:0}
#scorecard-full-frame{display:block;width:100%;height:min(78vh,760px);min-height:450px;border:1px solid #77889955;border-radius:10px;background:white}
#scorecard-full-status{font-size:12px;color:var(--muted)}
