/* Minimal workstation: one header, one status strip, two working columns. */
.shell { width:calc(100% - 48px); max-width:none; margin:0 24px; padding:0 0 20px; }
.topbar { min-height:96px; gap:20px; padding:20px 0; flex-wrap:wrap; }
.brand { white-space:normal; min-width:0; }
.brand h1 { font-size:clamp(28px,2.5vw,40px); line-height:1.2; letter-spacing:-1.2px; }
.nav-rail { position:static; inset:auto; display:block; width:auto; padding:0; border:0; background:transparent; }
.nav-rail nav { flex-direction:row; gap:8px; }
.nav-rail nav a { flex-direction:row; width:auto; padding:10px; gap:8px; font-size:16px; border-radius:4px; }
.nav-rail nav svg { width:23px; height:23px; }
.nav-rail nav a:hover { outline:none; text-decoration:none; background:transparent; color:var(--nav-ink,#151719); }
.actions { gap:10px; margin-left:auto; }
.pill { border:0; padding:6px 0; font-size:13px; }
.pill.error { border:1px dashed #111; padding:6px 8px; }
.icon-button,#scanButton { border-radius:5px; box-shadow:none; }
#scanButton { min-height:44px; gap:8px; font-size:14px; }
.stats { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:0 0 28px; padding:18px 0; border-bottom:1px solid var(--line); }
.stats article { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; border:0; border-right:1px solid var(--line); border-radius:0; padding:0 20px; background:transparent; box-shadow:none; }
.stats article:first-child { padding-left:0; }.stats article:last-child { border-right:0; }
.stats article>span { font-size:13px; text-transform:none; font-weight:400; min-height:0; margin:0; }
.stats strong,#timeStat { font-size:22px; letter-spacing:-.5px; }
.market-layout { grid-template-columns:minmax(0,1fr) minmax(380px,1fr); gap:32px; }
.market-main .workspace { padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; }
.section-heading { gap:10px; margin-bottom:20px; }
.section-heading h2,.hub-heading strong { font-size:26px; letter-spacing:-.6px; line-height:1.3; }
.subtle-label { font-size:12px; white-space:normal; }
.market-main .tabs { gap:2px; padding-bottom:8px; }
.market-main .tab { font-size:15px; padding:10px; border:0; border-radius:0; min-height:44px; }
.tab.active { box-shadow:inset 0 -2px 0 #111; }.tab:hover { background:#f6f6f6; }
.market-main .filter-tools { gap:10px; }
.search-field,#sortInput { border-radius:5px; }
.market-main .search-field { flex:1 1 200px; }.market-main #sortInput { flex:0 1 210px; }
#standardCriteria { border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; padding:4px 0 14px; margin:0 0 20px; font-size:14px; }
#standardCriteria summary { font-size:14px; font-weight:400; cursor:pointer; }
#standardCriteria[open]>strong { display:block; margin:12px 0; }
#standardCriteria>div { margin:8px 0; }
#readyHeading,#candidateCount,#radarTitle { font-size:19px; line-height:1.5; }
.market-main .signal-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
.card { padding:20px; border-radius:6px; box-shadow:none; transition:border-color .15s; }
.card:hover { transform:none; box-shadow:none; border-color:#999; }.card::before { display:none; }
.card.chart-selected { outline:2px solid #111; outline-offset:-2px; }
.asset { font-size:28px; }.badge { border-radius:3px; }
.open-token-chart { margin-top:10px; border-radius:4px; }
.score-row { margin:14px 0 10px; }.score-row .bar { display:none; }
.price { margin-bottom:14px; }
.levels { gap:8px; }.levels div { border-radius:4px; padding:10px; }
.card-facts { display:flex; flex-wrap:wrap; gap:8px 18px; font-size:13px; padding:12px 0; }
.warning { margin-top:8px; padding:10px 0; border:0; border-top:1px dashed #ccc; border-radius:0; font-size:13px; }
.card-verdict { margin:8px 0 12px; font-size:13px; font-weight:600; }
.analysis-details { border-top:1px solid var(--line); padding-top:12px; }
.analysis-details>summary { font-size:14px; cursor:pointer; }
.analysis-details[open]>summary { margin-bottom:14px; }
.analysis-details .meta { gap:6px 14px; }.analysis-details .meta span { background:transparent; border:0; padding:2px 0; }
.empty { min-height:0; padding:28px 20px; border:1px dashed #ddd; border-radius:6px; }
.empty strong { font-size:20px; }.empty>span { font-size:14px; max-width:52ch; }
.candidate-explanation { font-size:14px; }
#entryScoutSection { margin:24px 0; border-top:1px solid #ddd; padding-top:18px; }
#entryScoutGrid>.card { display:block; cursor:pointer; }
#entryScoutGrid>.card>.levels { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:12px 0; }
#entryScoutGrid .card-facts>span { display:inline; }
#entryScoutGrid>.card>.warning { display:block; }
#entryScoutGrid .card-verdict { margin:10px 0; }
#entryScoutGrid p,#entryScoutGrid summary { font-size:15px; line-height:1.6; overflow-wrap:anywhere; }
@media(max-width:600px) { #entryScoutGrid>.card>.levels { grid-template-columns:1fr; } }
.research-hub { border:0; border-top:1px solid var(--line); border-radius:0; box-shadow:none; margin-top:28px; }
.hub-heading { padding:22px 0; }.hub-description { font-size:13px; margin-top:6px; }
.hub-arrow { width:32px; height:32px; background:transparent; border:0; border-radius:0; }
.hub-content { padding:0 0 16px; }
.token-chart-panel { margin-top:0; top:20px; padding:22px; border-radius:6px; box-shadow:none; max-height:calc(100dvh - 40px); }
.chart-heading h2 { font-size:28px; }.chart-status { min-height:0; margin:14px 0; }
.chart-placeholder { min-height:320px; }.chart-placeholder span { font-size:28px; letter-spacing:4px; }
.chart-readout { min-height:0; }.chart-back-link { display:none; }
.chart-guide { margin-top:10px; font-size:13px; }.chart-guide summary { font-size:13px; cursor:pointer; }.chart-guide p { margin:10px 0 0; }
.market-backdrop { opacity:.055; }.backdrop-grid,.backdrop-mesh,.backdrop-orbit,.backdrop-aura { display:none; }
footer { margin-top:28px; border-top:1px solid var(--line); padding-top:18px; }
.skip-link { left:24px; }
@media(max-width:1199px) {
  .nav-rail { order:3; width:100%; }.nav-rail nav { justify-content:flex-start; }
  .market-layout { grid-template-columns:minmax(0,1fr); gap:24px; }
  .token-chart-panel { max-height:none; position:static; }.chart-back-link { display:inline-block; }
}
@media(max-width:720px) {
  .shell { width:calc(100% - 28px); margin:0 14px; }
  .topbar { padding:20px 0 12px; gap:16px; }.brand h1 { font-size:clamp(28px,7.5vw,36px); }
  .actions { width:100%; margin:0; gap:10px; }.icon-button { margin-left:auto; }
  .nav-rail nav { gap:0; justify-content:space-between; }.nav-rail nav a { flex-direction:column; flex:1; padding:8px 2px; font-size:14px; gap:6px; }
  .nav-rail nav svg { width:24px; height:24px; }
  .stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 0; margin-bottom:24px; }
  .stats article,.stats article:first-child { padding:0 12px; }.stats article:nth-child(odd) { padding-left:0; }.stats article:nth-child(even) { border-right:0; }
  .stats strong,#timeStat { font-size:21px; }.stats article>span { font-size:13px; }
  .section-heading h2,.hub-heading strong { font-size:24px; }.section-heading { align-items:baseline; }
  .market-main .tab { font-size:14px; padding:10px 8px; }
  .market-main .search-field,.market-main #sortInput { flex:auto; width:100%; }
  .card { padding:16px; }.levels { grid-template-columns:1fr; }
  .token-chart-panel { padding:16px; }.chart-placeholder { min-height:240px; }
  .market-backdrop { display:none; }.skip-link { left:14px; }
}

/* v6.1: readable at native zoom, with a persistent language control. */
body { font-size:18px; line-height:1.7; }
.topbar { display:grid; grid-template-columns:1fr auto; }
.nav-rail { grid-column:1/-1; grid-row:2; order:initial; width:100%; }
.nav-rail nav { justify-content:flex-start; gap:18px; }
.nav-rail nav a { font-size:18px; }
.nav-rail nav svg { width:26px; height:26px; }
.brand h1 { font-size:clamp(30px,2.8vw,42px); }
.actions { flex-wrap:wrap; justify-content:flex-end; }
.language-control { display:flex; align-items:center; gap:6px; padding:0 10px; min-height:46px; border:1px solid #ccc; border-radius:5px; background:#fff; }
.language-control select { font-size:16px; color:#111; background:#fff; border:0; min-height:44px; cursor:pointer; max-width:150px; }
.pill,#scanButton { font-size:16px; }.icon-button,#scanButton { min-height:46px; }
.stats article>span { font-size:16px; }.stats strong,#timeStat { font-size:26px; }
.section-heading h2,.hub-heading strong,.chart-heading h2 { font-size:30px; }
.market-main .tab { font-size:17px; padding:12px; }
.subtle-label,.exchanges,.score-row span,.price span,.card-facts,.card-verdict,.warning,
.meta span,.candidate-explanation,.hub-description,.empty>span,.reasons,.radar-checks,
.notice,#standardCriteria,#standardCriteria summary,.analysis-details>summary,summary,
.notification-item,.notification-item .notice,.dialog-description,.notification-item summary,
.intelligence-details summary,.candidate-status span { font-size:16px; }
.asset { font-size:32px; }.score-row strong,.price strong { font-size:21px; }
.badge,.levels span,.small-chip { font-size:14px; }.levels strong { font-size:17px; overflow-wrap:anywhere; }
.levels { grid-template-columns:1fr; }.levels div { display:flex; align-items:baseline; justify-content:space-between; gap:14px; }.levels strong { text-align:right; }
.open-token-chart,#searchInput,#sortInput { font-size:17px; min-height:46px; }
.market-main #sortInput { flex-basis:250px; }
#readyHeading,#candidateCount,#radarTitle { font-size:22px; }
#chartContract,.chart-status,.chart-readout,.chart-footnote,.chart-guide,.chart-guide summary,
.chart-back-link,.chart-controls label,.chart-controls button,.chart-controls select,.chart-navigation button,
.source-errors li,.source-errors strong,.dialog-footnote { font-size:15px; }
.chart-controls button,.chart-navigation button { min-height:44px; }
.chart-canvas .chart-axis { font-size:13px; }
.research-table { font-size:16px; }footer,.footer-brand { font-size:14px; }
.translation-note { display:none; font-size:14px; margin:10px 0; }
html[lang="en"] .translation-note { display:block; }
@media(max-width:720px) {
  body { font-size:17px; }.topbar { grid-template-columns:minmax(0,1fr); }
  .actions { grid-row:2; display:flex; width:100%; justify-content:flex-start; gap:12px; }
  .nav-rail { grid-row:3; }.nav-rail nav { gap:0; justify-content:space-between; }.nav-rail nav a { font-size:16px; }
  .language-control { margin-left:auto; }.language-control select { max-width:140px; }
  .pill { flex:1; }.icon-button { margin-left:0; }
  .stats article>span { font-size:15px; }.stats strong,#timeStat { font-size:24px; }
  .section-heading h2,.hub-heading strong,.chart-heading h2 { font-size:27px; }
  .market-main .tab { font-size:16px; padding:10px; }.market-main #sortInput { flex:auto; }
  .subtle-label { font-size:15px; }.chart-controls select { font-size:16px; }
}

/* v7: compact scanner + large inspector. Only identity/status/price stays in the list. */
.topbar { display:flex; gap:14px; min-height:80px; padding:16px 0; }
.brand h1 { font-size:clamp(26px,2.2vw,34px); }
.nav-rail { width:auto; margin-right:auto; }.nav-rail nav { gap:2px; }.nav-rail nav a { font-size:16px; padding:8px; }.nav-rail nav svg { width:22px; height:22px; }
.actions { gap:8px; }.pill,#scanButton { font-size:15px; }.language-control select { font-size:15px; }
.wallet-button { min-height:44px; max-width:210px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:8px 12px; border:1px solid #111; border-radius:5px; background:#111; color:#fff; font:600 14px "JetBrains Mono",monospace; cursor:pointer; }
.wallet-dialog { box-sizing:border-box; width:min(430px,calc(100vw - 32px)); max-height:min(700px,calc(100dvh - 32px)); overflow-x:hidden; overflow-y:auto; border:1px solid #b8b8b8; border-radius:18px; padding:28px; color:#111; background:#fff; box-shadow:0 28px 90px #0005; }
.wallet-dialog::backdrop { background:#000b; backdrop-filter:blur(5px); }.wallet-dialog h2 { margin:2px 0 0; font-size:clamp(24px,4vw,30px); line-height:1.08; letter-spacing:-.035em; }.wallet-dialog p { font-size:13px; line-height:1.55; }
.wallet-dialog-heading { display:flex; align-items:center; gap:13px; }.wallet-dialog-heading .eyebrow { margin:0 0 3px; }.wallet-dialog-description { margin:14px 0 18px; color:#555; }
.wallet-mark { display:grid; flex:0 0 auto; place-items:center; width:42px; height:42px; border:1px solid #111; border-radius:50%; font-size:28px; line-height:1; }.wallet-status,.wallet-identity,.wallet-safety { padding:10px 12px; border:1px solid #ddd; border-radius:8px; overflow-wrap:anywhere; }
.wallet-status,.wallet-identity { margin:12px 0; }.wallet-status:empty { display:none; }.wallet-safety { margin:14px 0 0; padding:0; border:0; text-align:center; font-size:11px!important; line-height:1.5!important; color:#666; }.wallet-actions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 0; }
.wallet-actions button,.wallet-actions a { box-sizing:border-box; min-width:0; min-height:44px; display:inline-flex; align-items:center; justify-content:center; padding:9px 14px; border:1px solid #111; border-radius:5px; background:#fff; color:#111; font:600 15px "JetBrains Mono",monospace; cursor:pointer; text-decoration:none; }
.wallet-actions #connectPasskey,.wallet-actions #registerWallet,.wallet-actions #addPasskey { background:#111; color:#fff; }.wallet-actions button:disabled { opacity:.5; cursor:wait; }
.wallet-access-panel { display:grid; gap:12px; margin:0; padding:17px; border:1px solid #d2d2d2; border-radius:12px; background:#fafafa; }
.wallet-access-panel label { font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.wallet-access-panel input { width:100%; min-height:46px; padding:9px 11px; border:1px solid #888; border-radius:6px; background:#fff; color:#111; font:600 15px "JetBrains Mono",monospace; box-sizing:border-box; }
.wallet-access-panel input:focus { outline:3px solid #1112; border-color:#111; }
.wallet-access-panel h3 { margin:2px 0 0; font-size:21px; }.wallet-access-panel p { margin:0; }
.passkey-symbol { display:grid; place-items:center; width:44px; height:44px; border:1px solid #111; border-radius:12px; background:#111; color:#fff; font-size:29px; line-height:1; }
.passkey-intro { display:flex; align-items:center; gap:12px; }.passkey-intro h3 { margin:0; }.passkey-intro p { color:#555; }
.wallet-actions .wallet-link-button { background:#fff; color:#111; border-color:#999; }
.wallet-primary-action { width:100%; min-height:46px; padding:10px 14px; border:1px solid #111; border-radius:5px; background:#111; color:#fff; font:700 14px "JetBrains Mono",monospace; cursor:pointer; }.wallet-primary-action:disabled { opacity:.48; cursor:wait; }
.wallet-device-hint { margin:0!important; color:#666; font-size:11px!important; line-height:1.45!important; }
.wallet-dialog-close { min-height:40px; margin-top:10px; padding:8px 14px; border:1px solid #aaa; border-radius:5px; background:#fff; color:#111; font:600 13px "JetBrains Mono",monospace; cursor:pointer; }
.wallet-dialog-footer { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-top:10px; }.wallet-dialog-footer .wallet-dialog-close { margin-top:0; }
.wallet-admin-sessions { margin:14px 0; padding:14px; border:1px solid #bbb; border-radius:6px; }
.wallet-admin-sessions>header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.wallet-admin-sessions>header button,.wallet-session-row button { min-height:34px; padding:6px 10px; border:1px solid #222; border-radius:4px; background:#fff; color:#111; font:600 13px "JetBrains Mono",monospace; cursor:pointer; }
.wallet-admin-sessions>p { margin:10px 0!important; font-size:12px!important; color:#444; }
.wallet-session-list { display:grid; gap:8px; max-height:260px; overflow:auto; }
.wallet-session-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; align-items:center; padding:10px; border:1px solid #ddd; border-radius:4px; }
.wallet-session-row strong,.wallet-session-row span { overflow-wrap:anywhere; }
.wallet-session-row small { color:#555; }
.wallet-session-row button { grid-column:2; grid-row:1 / span 2; }
.wallet-admin-sessions>h3 { margin:20px 0 8px; padding-top:12px; border-top:1px solid #ddd; font-size:15px; text-transform:uppercase; letter-spacing:.04em; }
.access-admin-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; padding:11px; border:1px solid #ddd; border-radius:4px; }
.access-admin-row>div { min-width:0; }.access-admin-row strong,.access-admin-row small { display:block; overflow-wrap:anywhere; }.access-admin-row small { margin-top:5px; color:#555; }
.access-admin-row>div:last-child { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.access-admin-row button,.issued-access-key button { min-height:34px; padding:6px 9px; border:1px solid #222; border-radius:4px; background:#fff; color:#111; font:700 12px "JetBrains Mono",monospace; cursor:pointer; }
.issued-access-key { display:grid; gap:10px; padding:14px; border:2px solid #111; border-radius:5px; background:#f4f4f4; }
.issued-access-key code { padding:10px; overflow-wrap:anywhere; border:1px dashed #888; background:#fff; font-size:14px; user-select:all; }
@media (max-width:560px) {
  .wallet-dialog { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); padding:18px; border-radius:14px; }
  .wallet-mark { width:34px; height:34px; font-size:23px; }
  .wallet-dialog-heading { gap:10px; }.wallet-dialog-heading .eyebrow { font-size:9px; }
  .wallet-dialog h2 { font-size:21px; }
  .wallet-dialog-description { margin:10px 0 13px!important; }
  .wallet-dialog p { margin-block:7px; font-size:12.5px; line-height:1.5; }
  .wallet-status,.wallet-identity { margin:9px 0; padding:8px 9px; }
  .wallet-access-panel { gap:8px; margin:9px 0; padding:11px; border-radius:8px; }
  .wallet-access-panel label { font-size:11px; }
  .wallet-access-panel input { min-height:44px; padding:8px 10px; font-size:14px; }
  .wallet-access-panel h3 { font-size:18px; }
  .wallet-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin:9px 0 0; }
  .wallet-actions button,.wallet-actions a { width:100%; min-height:42px; padding:7px 8px; font-size:12px; text-align:center; }
  #connectPasskey,#registerWallet,#addPasskey,#logoutWallet { grid-column:1/-1; }
  .wallet-dialog-close { width:100%; min-height:40px; margin-top:8px; font-size:12px; }
  .wallet-safety { margin-top:9px; padding:8px 9px; font-size:11px!important; line-height:1.4!important; }
  .wallet-session-row,.access-admin-row { grid-template-columns:1fr; }.wallet-session-row button { grid-column:1; grid-row:auto; width:100%; }.access-admin-row>div:last-child { justify-content:stretch; }.access-admin-row button { flex:1; }
}
@media (max-width:560px) and (max-height:700px) {
  .wallet-dialog { padding:13px; }
  .wallet-mark { display:none; }
  .wallet-dialog h2 { font-size:19px; }
  .wallet-dialog p { font-size:11.5px; }
  .wallet-status { padding:7px 8px; }
  .wallet-access-panel { margin:7px 0; padding:9px; }
  .wallet-safety { margin-top:7px; }
}
body.auth-required:not(.auth-granted) { overflow:hidden; }
.stats { margin-bottom:22px; padding:14px 0; }.stats article>span { font-size:15px; }.stats strong,#timeStat { font-size:22px; }
.market-layout { grid-template-columns:minmax(370px,2fr) minmax(0,3fr); gap:24px; }
.section-heading { display:block; margin-bottom:14px; }.section-heading h2 { margin-bottom:5px; }.subtle-label { font-size:15px; }
.tabs { justify-content:space-between; }.market-main .tab { font-size:16px; padding:10px 6px; text-transform:none; }
.secondary-filters { display:flex; width:100%; gap:12px; }.secondary-filters label { display:flex; align-items:center; gap:10px; font-size:16px; }
.secondary-filters select { font:inherit; min-height:44px; border:1px solid #ccc; border-radius:5px; background:white; color:#111; padding:7px 10px; }
.market-main .filter-tools { flex-direction:column; align-items:stretch; }.market-main .search-field,.market-main #sortInput { flex:auto; width:100%; }
.market-main .signal-grid { gap:10px; }
.signal-grid>.card { display:grid; grid-template-columns:minmax(0,1fr) auto; padding:16px; gap:8px 12px; }
.signal-grid>.card>.card-head { grid-column:1/-1; margin:0; }
.signal-grid .asset { font-size:26px; }.signal-grid .exchanges { font-size:15px; overflow-wrap:anywhere; }
.signal-grid .badge { max-width:55%; font-size:13px; }
.signal-grid>.card>.price { grid-column:1/-1; padding:0; margin:0; border:0; }
.signal-grid .price span { font-size:15px; }.signal-grid .price strong { font-size:18px; }
.signal-grid>.card>.score-row,.signal-grid>.card>.levels,.signal-grid>.card>.analysis-details,
.signal-grid>.card>.warning,.signal-grid>.card>.candidate-status { display:none; }
.signal-grid>.card>.card-facts { grid-column:1/-1; padding:0; font-size:15px; }
.signal-grid .card-facts>span:not(:first-child) { display:none; }
.signal-grid>.card>.card-verdict { grid-column:1; grid-row:auto; margin:0; font-size:15px; align-self:center; }
.signal-grid>.card>.open-token-chart { grid-column:2; grid-row:4/6; margin:0; align-self:end; padding:8px; font-size:15px; }
.signal-grid .radar-alert>.open-token-chart { grid-row:auto; }
.chart-heading { display:flex; justify-content:space-between; align-items:start; gap:12px; }
.chart-heading h2 { font-size:30px; }#chartContract { margin-bottom:12px; }
#expandChart,#closeChart { min-height:44px; padding:8px 12px; font:inherit; font-size:15px; border:1px solid #ccc; border-radius:5px; color:#111; background:white; cursor:pointer; }
.token-chart-panel { padding:20px; }
.chart-controls { align-items:center; }.chart-zoom { display:flex; gap:4px; }.chart-zoom button { min-width:42px; padding-inline:9px; }
.chart-data-strip { display:flex; flex-wrap:wrap; gap:6px 14px; margin:0 0 8px; padding:8px 0; border-top:1px solid #eee; font-size:11px; letter-spacing:.04em; color:#444; }
.chart-data-strip span:first-child { color:#111; font-weight:700; }.chart-canvas { min-height:280px; aspect-ratio:auto; }
.chart-canvas.is-dragging .chart-hit { cursor:grabbing; }.chart-canvas .last-price-line { stroke:#777; stroke-width:1; stroke-dasharray:2 4; }
.chart-canvas .live-price-line { stroke:#111; stroke-width:1.5; }.chart-canvas .stale-price-line { stroke:#777; stroke-width:1; stroke-dasharray:6 5; }.chart-canvas .price-tag { fill:#111; stroke:#fff; stroke-width:3px; paint-order:stroke fill; font:700 11px "JetBrains Mono",monospace; }
.chart-canvas .offscale-marker { stroke:#111; stroke-width:2; }.chart-canvas .offscale-label { fill:#111; stroke:#fff; stroke-width:4px; paint-order:stroke fill; font:700 11px "JetBrains Mono",monospace; }
.plan-legend { font-size:15px; line-height:1.6; margin-bottom:12px; }
.plan-values { display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:8px; }.plan-values span { white-space:nowrap; font-size:14px; }
.route-workspace { margin:16px 0; padding:14px; border:1px solid #cfcfcf; border-radius:6px; background:#fafafa; }
.route-workspace[hidden] { display:none; }
.route-workspace>header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.route-workspace>header>div { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.route-eyebrow { font-size:12px; letter-spacing:.08em; color:#555; }
.chart-state-chip,.route-badge { display:inline-flex; align-items:center; min-height:24px; padding:3px 7px; border:1px solid #111; border-radius:3px; background:#fff; font-size:12px; line-height:1; }
.chart-state-chip[data-state="live"],.chart-state-chip[data-state="ready"],.chart-state-chip[data-state="watch"] { background:#111; color:#fff; }
.chart-state-chip[data-state="new-route"],.chart-state-chip[data-state="new-plan"] { border-style:dashed; }
.route-follow { display:flex; align-items:center; gap:7px; font-size:13px; cursor:pointer; }
.route-follow input { width:17px; height:17px; accent-color:#111; }
.route-notice,.route-empty { margin:0; font-size:14px; line-height:1.55; color:#333; }
.switch-chart-route { width:100%; min-height:42px; margin:12px 0 0; border:1px solid #111; border-radius:4px; background:#111; color:#fff; font:600 14px "JetBrains Mono",monospace; cursor:pointer; }
.switch-chart-route[hidden] { display:none; }
.route-grid { display:grid; gap:7px; margin-top:12px; }
.route-compare { margin-top:12px; border-top:1px solid #ddd; padding-top:10px; }.route-compare>summary { display:flex; justify-content:space-between; gap:12px; cursor:pointer; font-size:13px; list-style:none; }
.route-compare>summary::-webkit-details-marker { display:none; }.route-compare>summary strong { font-size:11px; font-weight:500; }.route-compare[open]>summary { margin-bottom:8px; }
.route-card { display:grid; grid-template-columns:minmax(120px,1.5fr) repeat(3,minmax(60px,.75fr)) auto; align-items:center; gap:8px; padding:9px; border:1px solid #ddd; border-radius:4px; background:#fff; font-size:12px; }
.route-card.is-best { border-color:#111; }.route-card.is-selected { box-shadow:inset 3px 0 0 #111; }
.route-card>div { min-width:0; display:flex; flex-direction:column; gap:2px; }.route-card>div>span { color:#666; }
.route-card>div:first-child span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.route-card .route-badge { justify-self:end; font-size:10px; }
.scout-route-compare { grid-column:1/-1; margin:4px 0 2px; padding-top:10px; border-top:1px solid #ddd; }
.scout-route-compare>summary { display:flex; align-items:center; justify-content:space-between; gap:12px; list-style:none; }
.scout-route-compare>summary::-webkit-details-marker { display:none; }
.scout-route-compare>summary strong { font-size:11px; border:1px solid #111; border-radius:3px; padding:3px 6px; }
.scout-route-grid { display:grid; gap:8px; margin:10px 0; }
.scout-route-row { padding:9px 10px; border:1px solid #ddd; border-radius:5px; background:#fff; }
.scout-route-row.is-best { border-color:#777; }.scout-route-row.is-selected { box-shadow:inset 3px 0 0 #111; }
.scout-route-head { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.scout-route-head>div { min-width:0; display:flex; flex-direction:column; gap:2px; }
.scout-route-head>div>span { color:#666; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scout-route-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-top:8px; font-size:11px; }
.scout-route-metrics span { display:flex; flex-direction:column; min-width:0; color:#666; }
.scout-route-metrics strong { color:#111; overflow:hidden; text-overflow:ellipsis; }
.scout-route-row>p,.scout-route-compare>p { margin:7px 0 0; font-size:11px; line-height:1.6; overflow-wrap:anywhere; }
.chart-canvas .plan-line { stroke:#111; stroke-width:1; stroke-dasharray:5 5; }.chart-canvas .plan-stop { stroke-dasharray:2 3; stroke-width:1.5; }.chart-canvas .plan-target { stroke-dasharray:9 4; }
.chart-canvas .plan-label { font:11px "JetBrains Mono",monospace; fill:#111; stroke:#fff; stroke-width:3px; paint-order:stroke fill; }
.selected-analysis { margin-top:18px; padding-top:14px; border-top:1px solid #ddd; }.selected-analysis>summary { cursor:pointer; font-size:17px; font-weight:700; }.selected-analysis[open]>summary { margin-bottom:16px; }
#selectedTokenDetails>.card { padding:0; border:0; outline:0; box-shadow:none; cursor:auto; }#selectedTokenDetails .card-head,#selectedTokenDetails .open-token-chart { display:none; }
.chart-dialog { width:calc(100vw - 40px); max-width:1600px; height:calc(100dvh - 40px); max-height:none; border:1px solid #bbb; border-radius:8px; padding:18px; background:white; color:#111; }
.chart-dialog::backdrop { background:#0009; }.chart-dialog #closeChart { display:block; margin:0 0 16px auto; }
.chart-dialog .token-chart-panel { position:static; width:100%; max-height:none; margin:0; border:0; padding:0; overflow:visible; }
.chart-dialog #expandChart { display:none; }.chart-dialog .chart-canvas { max-width:1100px; margin:auto; }
.chart-dialog .selected-analysis { max-width:1100px; margin:24px auto; }
#readyHeading,#candidateCount,#radarTitle,h3,h4,.hub-heading strong,.stats article>span { text-transform:none; }
#readyHeading,#candidateCount,#radarTitle { font-size:22px; }.section-heading h2,.hub-heading strong { font-size:28px; }
@media(max-width:1350px) { .nav-rail { order:3; width:100%; }.nav-rail nav { justify-content:flex-start; } }
@media(max-width:1199px) { .market-layout { grid-template-columns:minmax(0,1fr); }.token-chart-panel { position:static; max-height:none; }.signal-grid>.card { min-width:0; } }
@media(max-width:720px) {
  .brand h1 { font-size:clamp(26px,7vw,32px); }.topbar { gap:12px; }
  .nav-rail nav a { font-size:16px; }.actions { width:100%; flex-wrap:wrap; }.stats strong,#timeStat { font-size:21px; }
  .market-main .tab { font-size:15px; padding:10px 4px; }.market-main .tabs { justify-content:flex-start; gap:6px; }
  .signal-grid>.card { padding:14px; display:block; }.signal-grid .card-head,.signal-grid .price,.signal-grid .card-facts { margin-bottom:10px; }
  .signal-grid>.card>.open-token-chart { float:none; margin:8px 0; }.signal-grid>.card>.card-verdict { margin-top:8px; }
  .token-chart-panel { padding:14px; }.chart-heading { flex-wrap:wrap; }.section-heading h2,.hub-heading strong,.chart-heading h2 { font-size:27px; }
  .chart-controls { gap:7px; }.chart-zoom { order:4; width:100%; }.chart-zoom button { flex:1; }.chart-data-strip { font-size:10px; }.chart-canvas { min-height:260px; }
  .chart-dialog { width:calc(100vw - 12px); height:calc(100dvh - 12px); padding:12px; }
  .route-workspace>header { align-items:flex-start; flex-direction:column; }.route-card { grid-template-columns:1fr 1fr; }.route-card .route-badge { justify-self:start; }
}

/* v8.3: bounded desktop chart, readable controls, separate plan inspector. */
.market-layout { grid-template-columns:380px minmax(0,1fr); align-items:start; }
.token-chart-panel { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; max-height:none; position:static; }
.chart-primary { width:100%; max-width:none; min-width:0; }
.chart-inspector { min-width:0; align-self:start; border-top:1px solid #ddd; padding-top:18px; overflow-wrap:anywhere; }
.chart-canvas { width:100%; min-height:320px; }
.chart-canvas .chart-axis { font-size:14px; }
.chart-canvas .price-tag,.chart-canvas .offscale-label { font-size:13px; }
.chart-canvas .chart-wick,.chart-canvas .chart-candle { stroke-width:1.25; }
.chart-canvas .candle-forming { stroke-dasharray:3 2; stroke-width:2; }
.chart-canvas .chart-gap { fill:#000; opacity:.065; }
.chart-data-strip { font-size:13px; letter-spacing:0; gap:8px 16px; }
.chart-readout { line-height:1.8; overflow-wrap:anywhere; }
.chart-inspector .route-workspace { margin-top:12px; padding:14px; }
.chart-inspector .route-workspace>header { flex-direction:column; align-items:flex-start; }
.chart-inspector .route-card { grid-template-columns:1fr 1fr; font-size:14px; }
.chart-inspector .route-card .route-badge { justify-self:start; }
.route-notice,.route-follow,.route-compare>summary { font-size:15px; }
.signal-grid .price { flex-wrap:wrap; gap:8px; }
.market-main .tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; }
.market-main .tab { min-width:0; font-size:15px; padding:12px 2px; white-space:normal; line-height:1.5; }
.market-main .tab .tab-count { display:block; font-size:13px; color:#666; }
.chart-heading-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#toggleChartInspector { min-height:44px; padding:8px 12px; border:1px solid #ccc; border-radius:5px; background:#fff; color:#111; font:inherit; font-size:15px; cursor:pointer; }
.chart-inspector[hidden] { display:none; }
.inspector-title { font-size:18px; margin:0 0 20px; }
.token-chart-panel>.selected-analysis { grid-column:1/-1; margin:0; padding-top:18px; }
.chart-inspector .route-workspace { border:0; border-radius:0; border-top:1px solid #ddd; background:transparent; padding:18px 0 0; }
.chart-inspector .plan-values { display:grid; grid-template-columns:1fr; gap:8px; }
.chart-guide { margin-top:12px; }.chart-guide>summary { font-size:14px; color:#555; }
.chart-data-strip { justify-content:space-between; padding:10px 0; margin-top:12px; border-bottom:1px solid #eee; }
.signal-grid>.card { gap:6px 10px; padding:14px; }
.signal-grid>.card>.card-verdict { font-size:14px; }
.signal-grid .price span { font-size:14px; }.signal-grid .price strong { font-size:18px; }
.chart-dialog { max-width:1720px; }
.chart-dialog .token-chart-panel { grid-template-columns:minmax(0,1fr); }
.chart-dialog .chart-canvas,.chart-dialog .selected-analysis { max-width:none; margin:0; }
@media(min-width:1800px) {
  .shell { width:calc(100% - 64px); max-width:2400px; margin-inline:32px; }
  .market-layout { grid-template-columns:400px minmax(0,1fr); gap:24px; }
  .token-chart-panel { grid-template-columns:minmax(0,1fr) 320px; padding:24px; gap:24px; }
  .chart-inspector { border-top:0; border-left:1px solid #ddd; padding:0 0 0 24px; }
  .chart-dialog .token-chart-panel { grid-template-columns:minmax(0,1fr) 300px; }
  .nav-rail nav a { font-size:19px; padding:12px; }.nav-rail nav svg { width:25px; height:25px; }
  .brand h1 { font-size:36px; }
  .stats article>span,.subtle-label,.signal-grid .exchanges,
  .signal-grid .price span,.signal-grid>.card>.card-facts,.signal-grid>.card>.card-verdict,
  .signal-grid>.card>.open-token-chart { font-size:16px; }
  .signal-grid .badge { font-size:14px; }
  .signal-grid .asset { font-size:30px; }.signal-grid .price strong { font-size:20px; }
  #chartContract,.chart-status,.chart-readout,.chart-footnote,.chart-guide summary,
  .chart-controls label,.chart-controls button,.chart-controls select { font-size:17px; }
  .chart-data-strip { font-size:14px; }.chart-heading h2 { font-size:34px; }
}
.token-chart-panel.inspector-collapsed { grid-template-columns:minmax(0,1fr); }
@media(min-width:1200px) {
  .token-chart-panel { position:sticky; top:20px; max-height:calc(100dvh - 40px); overflow:auto; scrollbar-gutter:stable; }
  .chart-dialog .token-chart-panel { position:static; max-height:none; overflow:visible; }
}
@media(max-width:1199px) {
  .market-layout { grid-template-columns:minmax(0,1fr); }
  .chart-primary { max-width:none; }
}
@media(max-width:720px) {
  .token-chart-panel { padding:12px; gap:18px; }
  .chart-controls { flex-wrap:wrap; }.chart-data-strip { font-size:12px; }
  .chart-canvas .chart-axis,.chart-canvas .price-tag { font-size:12px; }
  .chart-inspector { padding-top:12px; }
}

/* Full-width screener on the left, chart on the right. */
.shell { width:calc(100% - 48px); max-width:none; margin:0 24px; padding:0 0 20px; }
.market-layout { grid-template-columns:minmax(0,1fr); grid-template-areas:"signals" "chart"; gap:24px; }
.market-layout>.market-main { grid-area:signals; min-width:0; }
.market-layout>.token-chart-panel { grid-area:chart; grid-template-columns:minmax(0,1fr); padding:18px; gap:18px; }
.market-layout .chart-inspector { border-left:0; border-top:1px solid #ddd; padding:18px 0 0; }
.market-main .signal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.market-main .filter-tools { flex-direction:row; }
.market-main .search-field { flex:1 1 0; width:auto; min-width:0; }
.market-main #sortInput { flex:0 1 260px; width:auto; min-width:0; }
.market-main .tab { font-size:17px; }
.market-main .tab .tab-count { display:inline; margin-left:6px; font-size:14px; }
.chart-heading { flex-wrap:wrap; }.chart-heading-actions { margin-left:auto; }
@media(min-width:1200px) {
  .market-layout { grid-template-columns:minmax(0,65fr) minmax(0,35fr); grid-template-areas:"signals chart"; }
}
@media(min-width:1800px) {
  .market-main .signal-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:720px) {
  .shell { width:calc(100% - 28px); margin:0 14px; }
  .market-main .signal-grid { grid-template-columns:minmax(0,1fr); }
  .market-main .filter-tools { flex-direction:column; }
  .market-main .search-field,.market-main #sortInput { flex:auto; width:100%; }
  .market-main .tab { font-size:15px; }
  .market-main .tab .tab-count { display:block; margin-left:0; }
  .market-layout>.token-chart-panel { padding:12px; }
}

/* v8.6: adjustable workstation; mobile keeps normal document scrolling. */
.workspace-view-controls { display:flex; align-items:center; gap:12px; margin:0 0 16px; }
.workspace-view-controls>div { display:flex; gap:4px; }
.workspace-view-controls button { font:inherit; font-size:15px; min-height:42px; padding:8px 14px; border:1px solid #ddd; border-radius:5px; background:#fff; color:#111; cursor:pointer; }
.workspace-view-controls button[aria-pressed="true"] { background:#111; color:#fff; border-color:#111; }
#workspaceRatio { margin-left:auto; font-size:14px; color:#666; }
#workspaceDivider { display:none; }
.market-main { container-type:inline-size; }
.market-main .signal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.market-main .signal-grid>.card { padding:18px; gap:12px; align-content:start; }
.market-main .signal-grid>.card>.price { display:flex; flex-direction:column; align-items:flex-start; gap:4px; }
.market-main .signal-grid>.card>.card-verdict { font-size:14px; }
.market-main .signal-grid>.card>.open-token-chart { grid-row:auto; align-self:end; }
.market-main .signal-grid>.card.chart-selected { border-color:#111; box-shadow:inset 3px 0 0 #111; }
@media(min-width:1200px) {
  .market-layout { grid-template-columns:minmax(0,var(--signal-share,55fr)) 16px minmax(0,var(--chart-share,45fr)); grid-template-areas:"signals divider chart"; gap:8px; height:var(--workspace-height,calc(100dvh - 280px)); min-height:360px; }
  .market-layout>.market-main,.market-layout>.token-chart-panel { height:100%; max-height:none; min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
  .market-layout>.market-main { padding-right:8px; }
  .market-layout>.token-chart-panel { position:static; align-content:start; }
  .screener-header { position:sticky; top:0; z-index:5; background:#fff; padding:8px 0 12px; border-bottom:1px solid #e5e5e5; margin-bottom:14px; }
  .screener-header .toolbar { margin-bottom:0; }
  #workspaceDivider { grid-area:divider; display:flex; align-items:center; justify-content:center; align-self:stretch; border-radius:5px; cursor:col-resize; touch-action:none; color:#777; position:relative; }
  #workspaceDivider::before { content:""; width:1px; position:absolute; top:0; bottom:0; background:#ddd; }
  #workspaceDivider span { z-index:1; background:#fff; padding:12px 0; font-size:22px; }
  #workspaceDivider:hover,#workspaceDivider:focus-visible,.is-resizing #workspaceDivider { background:#eee; outline:2px solid #111; outline-offset:0; }
  .market-layout.is-resizing { user-select:none; cursor:col-resize; }
}
@container (max-width:680px) {
  .market-main .signal-grid { grid-template-columns:minmax(0,1fr); }
  .market-main .filter-tools { flex-direction:column; }
  .market-main .search-field,.market-main #sortInput { width:100%; flex:auto; }
  .market-main .tab { font-size:15px; }
  .market-main .tab .tab-count { display:block; margin-left:0; }
}
/* Fit cards to the actual Analysis pane, including when its divider is dragged.
   auto-fill keeps sparse/last rows aligned instead of stretching one token. */
.market-layout[data-mode="opportunities"] .market-main .signal-grid {
  grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr));
  gap:14px;
  align-items:stretch;
}
.market-layout[data-mode="opportunities"] .signal-grid>.card {
  min-width:0;
  container:token-card / inline-size;
}
@container token-card (max-width:420px) {
  .card>.card-head { flex-wrap:wrap; gap:10px; }
  .card>.card-head>div { min-width:0; overflow-wrap:anywhere; }
  .signal-grid .card-head>.badge { max-width:100%; white-space:normal; overflow-wrap:anywhere; }
  .signal-grid>.card>.card-verdict,
  .signal-grid>.card>.open-token-chart { grid-column:1/-1; }
  .signal-grid>.card>.open-token-chart { justify-self:start; }
  #entryScoutGrid>.card>.levels { grid-template-columns:minmax(0,1fr); }
  #entryScoutGrid .levels>div { display:block; }
  #entryScoutGrid .levels strong { text-align:left; }
}
@media(max-width:1199px) {
  .workspace-view-controls { display:none; }
  .market-layout { height:auto; }
}

/* v8.7: explain scan evidence; keep the selected scenario separate from live candles. */
.scan-order-tools { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px; font-size:13px; color:#555; }
.scan-order-tools button { flex-shrink:0; min-height:40px; padding:8px 12px; background:#fff; border:1px solid #ccc; border-radius:4px; color:#111; font:inherit; cursor:pointer; }
.signal-grid>.card>.scan-explanation { grid-column:1/-1; border-top:1px solid #eee; padding-top:10px; font-size:14px; }
.scan-explanation p { margin:4px 0; line-height:1.6; overflow-wrap:anywhere; }
.scan-explanation p>span { display:block; font-weight:600; color:#111; }
.scan-explanation small { display:block; margin-top:8px; font-size:12px; color:#555; overflow-wrap:anywhere; }
.signal-change { display:inline-block; padding:3px 8px; margin-bottom:6px; border:1px dashed #111; border-radius:4px; font-size:12px; }
.chart-view-mode { font-size:13px; color:#555; align-self:center; }
.performance-panel { container-type:inline-size; }
.performance-panel h4 { font-size:18px; margin:24px 0 12px; }
.performance-panel p,.performance-panel li,.performance-panel summary { font-size:15px; line-height:1.75; overflow-wrap:anywhere; }
.performance-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr)); gap:12px; margin:16px 0; }
.performance-stat { border:1px solid #ddd; padding:14px; border-radius:6px; min-width:0; }
.performance-stat dt { font-size:14px; color:#555; }.performance-stat dd { font-size:24px; font-weight:600; margin:8px 0 0; overflow-wrap:anywhere; }
.performance-outcomes { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:16px; }
.performance-outcome { border-top:2px solid #222; min-width:0; }
.performance-table-wrap { overflow:auto; max-width:100%; }
.performance-table { width:100%; border-collapse:collapse; font-size:14px; text-align:left; }
.performance-table th,.performance-table td { padding:10px; border-bottom:1px solid #ddd; vertical-align:top; }
.performance-panel .performance-footnote { border-top:1px solid #ddd; padding-top:14px; color:#555; }
.scenario-panel { display:none; min-width:0; border-top:1px solid #ddd; padding-top:16px; }
.market-layout[data-mode="opportunities"] .scenario-panel,.chart-dialog .scenario-panel { display:block; }
.scenario-panel h3 { margin:0 0 12px; font-size:20px; }
.scenario-panel p { font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
.scenario-verdict { border-left:3px solid #111; padding-left:12px; font-weight:600; }
.scenario-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; margin:16px 0; }
.scenario-metrics>div { padding:10px 0; border-bottom:1px solid #eee; }
.scenario-metrics dt { color:#666; font-size:13px; }.scenario-metrics dd { margin:4px 0 0; font-size:16px; font-weight:600; overflow-wrap:anywhere; }
.scenario-footnote { color:#666; }
.scenario-jump { display:none; min-height:40px; padding:8px 12px; border:1px solid #ccc; border-radius:4px; font-size:14px; color:#111; }
.market-layout[data-mode="opportunities"] .scenario-jump,.chart-dialog .scenario-jump { display:inline-flex; align-items:center; }
@media(max-width:1199px) {
  .scenario-panel { display:block; }
  .scenario-jump { display:inline-flex; align-items:center; }
}
@media(max-width:720px) {
  .scan-order-tools { flex-wrap:wrap; }
  .scenario-metrics { grid-template-columns:minmax(0,1fr); }
}
.selection-session {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #e6e6e6;margin-bottom:12px;font-size:14px;}
.selection-session button,.scan-order-tools button {flex-shrink:0;min-height:36px;}
#acceptSelectedUpdate[hidden] {display:inline-flex!important;visibility:hidden;pointer-events:none;}
.scan-order-tools {flex-wrap:wrap;}
.current-market {padding-bottom:16px;border-bottom:1px solid #ddd;margin-bottom:20px;}
.analysis-live-reference {padding:12px 0;border-bottom:1px solid #ddd;}
.analysis-live-reference p,.analysis-live-reference small {overflow-wrap:anywhere;}
.analysis-live-value {display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-variant-numeric:tabular-nums;}
.analysis-live-value strong {font-size:24px;}
.analysis-live-value span {font-size:12px;}
.analysis-update-preview {border:1px solid #aaa;padding:12px;margin-bottom:12px;}
.analysis-update-preview[hidden] {display:none;}
.analysis-version-diff table {width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;}
.analysis-version-diff th,.analysis-version-diff td {padding:8px;text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #ddd;}
.analysis-version-diff tr.changed {background:#f3f3f3;}
.analysis-version-diff p {font-size:13px;line-height:1.6;}
.analysis-update-actions {display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.snapshot-time {font-size:13px;color:#555;overflow-wrap:anywhere;}
.chart-primary>.plan-legend {padding:12px 0;border-top:1px solid #ddd;font-size:13px;line-height:1.5;}
#planLegend .plan-values {display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px;margin-top:10px;}
#planLegend .plan-values>span {display:flex;flex-direction:column;gap:3px;padding:8px 10px;border:1px solid #ddd;border-radius:4px;min-width:0;background:#fff;white-space:normal;}

/* v9: one product navigation, one Opportunity feed, standalone Research. */
#signalsWorkspace[hidden],#researchHub[hidden],#tokenChartPanel[hidden],#workspaceDivider[hidden],
#marketOutlook[hidden],#paperTrading[hidden],.workspace-view-controls[hidden],.market-layout[hidden] { display:none!important; }
.nav-rail nav { --nav-ink:#151719; --nav-active-bg:#e9edf1; --nav-active-line:#9da6b0; --nav-hover-bg:#f3f5f7; }
.nav-rail nav a { color:var(--nav-ink); text-decoration:none; }
.nav-rail nav a[aria-current="page"] { font-weight:700; text-decoration:none; color:var(--nav-ink); background:var(--nav-active-bg); box-shadow:inset 0 0 0 1px var(--nav-active-line); }
.nav-rail nav a:focus-visible { outline:2px solid var(--nav-ink); outline-offset:2px; }
@media(hover:hover) and (pointer:fine) {
  .nav-rail nav a:not([aria-current="page"]):hover { background:var(--nav-hover-bg); }
}
@media(prefers-color-scheme:dark) {
  .nav-rail nav { --nav-ink:#eff0f1; --nav-active-bg:#363c44; --nav-active-line:#7e8997; --nav-hover-bg:#252a30; background:#17191b; border-radius:8px; }
}
.workspace-view-controls { justify-content:flex-end; min-height:42px; }
.workspace-view-controls #workspaceRatio { margin-left:0; font-variant-numeric:tabular-nums; }
.market-layout[data-mode="research"] { display:block; height:auto; min-height:0; }
.market-layout[data-mode="research"]>.market-main { height:auto; max-height:none; min-height:0; overflow:visible; padding-right:0; }
.market-layout[data-mode="research"] .research-hub { margin-top:0; border-top:0; }
.market-layout[data-mode="research"] .hub-heading { padding:18px 0; border-bottom:1px solid #ddd; }
.market-layout[data-mode="research"] .hub-content { padding-top:16px; }
@media(min-width:1200px) {
  .market-layout[data-mode="research"] { grid-template-columns:minmax(0,1fr); grid-template-areas:"signals"; }
}
@media(max-width:720px) {
  .nav-rail nav { align-items:stretch; }
  .nav-rail nav a[data-workspace-target] { min-height:70px; padding-inline:4px; border-radius:8px; }
  .nav-rail nav a[data-workspace-target] span { max-width:100%; overflow-wrap:anywhere; hyphens:auto; }
  .market-layout>.token-chart-panel { display:none; }
  .chart-dialog .token-chart-panel { display:grid; }
}
#planLegend .plan-values b {font-size:12px;font-weight:500;}
#planLegend .plan-values strong {font-size:14px;overflow-wrap:anywhere;}
.chart-canvas .plan-tag {fill:#fff;stroke:#555;stroke-width:.8;}
.chart-canvas .plan-tag-text {fill:#111;font-size:11px;font-weight:600;}
.chart-canvas .plan-leader {fill:none;stroke:#555;stroke-width:.8;}
.chart-canvas .plan-reference {stroke-dasharray:4 3;}
.chart-canvas .plan-activation {stroke:#111;stroke-dasharray:2 3;}
#scenarioContent h4 {font-size:16px;margin:14px 0 8px;}
.compact-card .scan-explanation p {line-height:1.5;min-height:4.5em;max-height:4.5em;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;}
.compact-card .card-verdict {line-height:1.5;min-height:3em;max-height:3em;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;}
.compact-card .scan-explanation small {display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.signal-change-slot {min-height:26px;}
.scan-order-tools>span {flex-basis:100%;}
.scan-order-tools button {flex:1 1 200px;}
/* Reserve the action row so a pending update does not push cards under the pointer. */
.chart-size-tools {display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0;}
.scenario-ai {margin-top:24px;padding-top:20px;border-top:2px solid #111;min-width:0;}
.scenario-ai header {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.scenario-ai button {font:600 16px "JetBrains Mono",monospace;padding:12px 16px;min-height:44px;background:#111;color:#fff;border:1px solid #111;border-radius:5px;cursor:pointer;}
.scenario-ai button:disabled {opacity:.5;cursor:default;}
.scenario-ai p,.scenario-ai li {font-size:16px;line-height:1.75;overflow-wrap:anywhere;}
.scenario-ai ul {padding-left:24px;}.scenario-ai li+li {margin-top:8px;}
.scenario-ai h4 {font-size:18px;margin:20px 0 8px;}
.ai-brief section {padding:10px 0;border-bottom:1px solid #eee;}
.ai-brief h4 {margin:0 0 4px;font-size:16px;}
.ai-brief p,.ai-brief ul {margin:0;}
.ai-supporting {margin-top:12px;font-size:14px;}
.ai-supporting>summary {cursor:pointer;}
.ai-scenario-warning {border-left:3px solid #555;padding:8px 12px;background:#f5f5f5;}
#aiScenarioStatus {font-size:14px;}
.chart-size-tools button {font:600 14px "JetBrains Mono",monospace;min-height:40px;padding:8px;border:1px solid #ccc;border-radius:4px;background:#fff;color:#111;cursor:pointer;}
.chart-width-tools {display:flex;gap:8px;}
#chartHeightHandle {flex:1 1 190px;min-height:40px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px dashed #aaa;border-radius:4px;font-size:14px;cursor:ns-resize;touch-action:none;user-select:none;}
#chartHeightHandle:hover,#chartHeightHandle:focus-visible,#chartHeightHandle.is-resizing {background:#eee;outline:2px solid #111;outline-offset:1px;}
.chart-canvas[data-size-manual="true"] {min-height:320px;}
.chart-canvas[data-size-manual="true"]>svg {height:100%;}
.chart-dialog .chart-width-tools {display:none;}
@media(max-width:1199px) {.chart-width-tools {display:none;}}
#applyListUpdates[hidden] {display:block!important;visibility:hidden;pointer-events:none;}
/* A tall sticky filter can cover its own actions and every card on short screens. */
@media (min-width:1200px) and (max-height:900px) {
  .screener-header {position:static;}
}

/* v10.2: explicit chart actions open a true phone viewport instead of
   scrolling the signal list to the chart mounted at the bottom. */
@media(max-width:720px) {
  .chart-dialog {
    inset:0;
    width:100vw;
    height:100dvh;
    max-width:none;
    max-height:none;
    margin:0;
    border:0;
    border-radius:0;
    padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));
    overflow:auto;
    overscroll-behavior:contain;
  }
  .chart-dialog #closeChart {
    position:sticky;
    z-index:5;
    top:0;
    margin:0 0 10px auto;
  }
  .chart-dialog .token-chart-panel {padding:0;}
}

/* v11: decision-first cards. Keep the list readable; technical evidence opens on demand. */
.signal-grid>.opportunity-card {display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:18px;align-content:start;}
.signal-grid>.opportunity-card>.card-head {grid-column:1;margin:0;padding-bottom:12px;border-bottom:1px solid #e5e5e5;}
.opportunity-card .card-head .badge {max-width:52%;text-align:right;line-height:1.35;}
.card-decision {display:grid;gap:5px;min-width:0;}
.card-decision>span {font-size:11px;font-weight:700;letter-spacing:.08em;color:#666;}
.card-decision>strong {font-size:18px;line-height:1.35;color:#111;}
.signal-grid>.opportunity-card .card-decision>.card-verdict {display:block;min-height:0;max-height:none;margin:0;font-size:13px;line-height:1.55;font-weight:400;color:#444;overflow:visible;}
.card-metrics {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;border:1px solid #dedede;background:#dedede;}
.card-metrics>div {display:grid;gap:5px;min-width:0;padding:10px 11px;background:#fff;}
.card-metrics dt {font-size:11px;color:#666;line-height:1.35;}
.card-metrics dd {margin:0;font-size:14px;font-weight:700;line-height:1.35;overflow-wrap:anywhere;color:#111;}
.card-actions {display:flex;gap:8px;align-items:center;}
.card-actions .open-token-chart {width:100%;min-height:42px;margin:0;padding:9px 12px;border:1px solid #aaa;border-radius:4px;background:#fff;color:#111;font:inherit;font-size:13px;font-weight:600;cursor:pointer;}
.card-actions .open-token-chart:hover {border-color:#111;background:#f6f6f6;}
.signal-grid>.opportunity-card>.opportunity-details {display:block;min-width:0;border-top:1px solid #e5e5e5;padding-top:11px;}
.opportunity-details>summary {cursor:pointer;font-size:12px;font-weight:600;color:#333;list-style-position:inside;}
.opportunity-details[open]>summary {margin-bottom:12px;}
.opportunity-details .scan-explanation {border:0;padding:0;}
.opportunity-details .scan-explanation p {min-height:0;max-height:none;display:block;margin:8px 0;font-size:12px;}
.opportunity-details .paper-tracking {margin-top:12px;font-size:11px;}
.retained-note {margin:0 0 12px;padding:9px 10px;border-left:3px solid #777;background:#f5f5f5;font-size:12px;line-height:1.55;color:#333;}
.radar-card .warning {display:grid;gap:4px;margin:12px 0;padding:10px;border:1px solid #ddd;}
.radar-card .warning strong {font-size:12px;}.radar-card .warning span {font-size:12px;line-height:1.55;}
.radar-card .radar-levels {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 12px;}
.radar-card .radar-levels>div {display:grid;gap:4px;align-content:start;padding:9px;}
.radar-card .radar-levels span {font-size:10px;}.radar-card .radar-levels strong {font-size:13px;text-align:left;}
.radar-card .meta,.radar-card .radar-checks {margin-top:10px;}
.scout-card>.levels {display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;}
.scout-card>.levels>div {display:grid;gap:4px;align-content:start;padding:9px;}
.scout-card>.levels span {font-size:10px;}.scout-card>.levels strong {font-size:13px;text-align:left;}
.radar-guide-heading {display:flex;justify-content:space-between;align-items:start;gap:16px;}
.radar-guide-heading h2 {margin:0;}.radar-guide-heading p {margin:4px 0 0;}
.radar-guide-heading>strong {flex-shrink:0;padding:5px 8px;border:1px solid #aaa;font-size:11px;letter-spacing:.04em;}
.radar-guide {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:14px 0;background:#ddd;border:1px solid #ddd;}
.radar-guide>div {display:grid;gap:4px;padding:10px;background:#fff;}
.radar-guide b {font-size:12px;}.radar-guide span {font-size:11px;line-height:1.45;color:#555;}
.outlook-deep-dive {margin-top:16px;border:1px solid #d9d9d9;background:#fff;}
.outlook-deep-dive>summary {cursor:pointer;padding:13px 15px;font-size:12px;font-weight:700;letter-spacing:.02em;list-style-position:inside;}
.outlook-deep-dive[open]>summary {border-bottom:1px solid #e5e5e5;}
.outlook-deep-dive>.outlook-evidence,.outlook-deep-dive>.outlook-levels {margin:0;padding:16px;}
.outlook-deep-dive>.outlook-levels {padding-top:0;}
.market-layout[data-mode="research"] .hub-content {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,390px),1fr));gap:12px;align-items:start;}
.market-layout[data-mode="research"] .hub-content>.notice,
.market-layout[data-mode="research"] .hub-content>section {margin:0;padding:18px;border:1px solid #ddd;min-width:0;}
.market-layout[data-mode="research"] .research-overview {display:contents;}
.market-layout[data-mode="research"] .hub-content h3 {margin-top:0;font-size:17px;}
.market-layout[data-mode="research"] .hub-content>section>p {font-size:13px;line-height:1.6;color:#444;}
@media(max-width:720px) {
  .signal-grid>.opportunity-card {padding:14px;gap:12px;}
  .opportunity-card .card-head .badge {max-width:58%;font-size:10px;}
  .card-decision>strong {font-size:16px;}
  .card-metrics dt {font-size:10px;}.card-metrics dd {font-size:13px;}
  .radar-guide-heading {display:grid;}.radar-guide-heading>strong {justify-self:start;}
  .radar-guide {grid-template-columns:minmax(0,1fr);}
  .radar-card .radar-levels,.scout-card>.levels {grid-template-columns:minmax(0,1fr);}
}
