@import url("tokens.css");

/* ===== RESET ===== */
*,::before,::after{box-sizing:border-box;margin:0;padding:0}
html{line-height:1.4;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--font-body);
  -webkit-tap-highlight-color:transparent;overflow-x:clip}
body{margin:0;overflow-x:clip}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}
b,strong{font-weight:700}
code,kbd,pre,samp{font-family:var(--font-mono);font-size:1em}
table{text-indent:0;border-color:inherit;border-collapse:collapse}
button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;
  line-height:inherit;color:inherit;margin:0;padding:0}
summary{display:list-item}
menu,ol,ul{list-style:none;margin:0;padding:0}
img,svg,video,canvas{display:block;vertical-align:middle}
img,video{max-width:100%;height:auto}
[hidden]:where(:not([hidden=until-found])){display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ===== BODY ===== */
body{
  font-family:var(--font-body);
  background:var(--color-paper);
  color:var(--color-ink);
  font-size:var(--text-base);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

/* ===== NAV — terminal bar ===== */
.nav-bar{position:sticky;top:0;z-index:100;background:var(--color-paper);border-bottom:var(--rule-strong)}
.nav-container{display:flex;min-height:2.75rem;align-items:center;justify-content:space-between;padding:0 var(--space-md);max-width:1280px;margin:0 auto}
.nav-title{min-height:44px;min-width:44px;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;letter-spacing:0.06em;color:var(--color-accent);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs)}
.nav-spider-icon{width:1rem;height:1rem;color:var(--color-accent);flex-shrink:0}
.nav-links{display:flex;align-items:center;gap:0}
.nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.04em;color:var(--color-ink-3);text-decoration:none;padding:var(--space-xs) var(--space-md);border-left:var(--rule-hairline);transition:color var(--dur-sm) var(--ease-out),background var(--dur-sm) var(--ease-out)}
.nav-link:first-child{border-left:none}
.nav-link:hover{color:var(--color-ink);background:var(--color-paper-2)}
.nav-link.active{color:var(--color-accent);background:var(--color-paper-2);font-weight:700}

/* ===== CONTAINER ===== */
.container{max-width:1280px;margin-inline:auto;padding:var(--space-sm) var(--space-md) var(--space-xl)}

/* ===== PAGE HEADER ===== */
.page-header{padding:var(--space-xs) 0 var(--space-sm);margin-bottom:var(--space-sm);border-bottom:var(--rule-strong)}
.page-header-row{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:var(--space-xs)}
.page-title{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700;letter-spacing:0.04em;color:var(--color-ink)}
.page-meta{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);overflow-wrap:anywhere}

/* ===== SECTION TITLES ===== */
.section-title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;letter-spacing:0.04em;text-transform:uppercase;margin:var(--space-lg) 0 var(--space-xs);padding:var(--space-2xs) var(--space-sm);background:var(--color-paper-2);border-left:2px solid var(--color-accent);color:var(--color-ink)}
.section-subtitle{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:0.06em;margin:var(--space-sm) 0 var(--space-xs);color:var(--color-ink-2)}
.section-title-inline{display:inline;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;margin:0;letter-spacing:0.04em;text-transform:uppercase}
.subsection-title{display:flex;align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;color:var(--color-ink-2);margin-bottom:var(--space-xs);padding-bottom:var(--space-2xs);border-bottom:var(--rule-hairline)}
.subsection-title-split{display:flex;align-items:center;gap:var(--space-xs)}
.subsection-actions{margin-left:auto;display:flex;gap:var(--space-2xs)}
.empty-zone{color:var(--color-ink-3);font-family:var(--font-mono);font-size:var(--text-xs);text-align:center;padding:var(--space-xl) 0}

/* ===== METRIC STRIP ===== */
.metric-strip{display:flex;gap:0;border:var(--rule-hairline);margin-bottom:var(--space-sm);overflow-x:auto}
.metric-strip-cell{flex:1;min-width:80px;padding:var(--space-xs) var(--space-sm);text-align:center;border-right:var(--rule-hairline)}
.metric-strip-cell:last-child{border-right:none}
.metric-strip-label{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);text-transform:uppercase;letter-spacing:0.06em}
.metric-strip-value{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700}
.metric-strip-value.up{color:var(--color-up)}
.metric-strip-value.down{color:var(--color-down)}
.metric-strip-value.warn{color:var(--color-warn)}

/* ===== ACTION SUMMARY ===== */
.action-summary{display:flex;align-items:center;gap:var(--space-md);border:var(--rule-hairline);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-sm);background:var(--color-paper-2)}
.action-summary-stat{font-family:var(--font-mono);font-size:var(--text-display);font-weight:700;line-height:1;color:var(--color-accent)}
.action-summary-stat.zero{color:var(--color-ink-3)}
.action-summary-stat.has{color:var(--color-warn)}
.action-summary-detail{min-width:0}
.action-summary-label{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:0.08em;color:var(--color-ink-3)}
.action-summary-desc{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-2)}

/* ===== STATS GRID ===== */
.stats-grid{display:flex;gap:0;border:var(--rule-hairline);margin-bottom:var(--space-sm);flex-wrap:wrap}
.stat-card{flex:1;min-width:80px;padding:var(--space-xs) var(--space-sm);text-align:center;border-right:var(--rule-hairline);background:var(--color-paper)}
.stat-card:last-child{border-right:none}
.stat-label{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);text-transform:uppercase;letter-spacing:0.04em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.stat-value{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700;font-variant-numeric:tabular-nums}
.up{color:var(--color-up)}.down{color:var(--color-down)}

/* ===== ENV / REGIME ===== */
.env-card{border:var(--rule-hairline);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-sm);background:var(--color-paper-2)}
.env-mode{display:inline-block;border:1px solid;padding:var(--space-2xs) var(--space-sm);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:0.05em}
.env-mode.active,.env-mode.积极{color:var(--color-up);border-color:var(--color-up);background:var(--color-up-bg)}
.env-mode.cautious,.env-mode.谨慎{color:var(--color-warn);border-color:var(--color-warn);background:var(--color-warn-bg)}
.env-mode.forbidden,.env-mode.禁止{color:var(--color-down);border-color:var(--color-down);background:var(--color-down-bg)}
.env-position{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;margin-left:var(--space-sm)}
.reason-list{margin-top:var(--space-xs);padding-left:var(--space-md)}
.reason-list li{font-size:var(--text-2xs);color:var(--color-ink-3)}
.regime-reasons{font-size:var(--text-xs);color:var(--color-ink-3);margin-top:var(--space-xs);line-height:1.4}
.regime-hero{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:var(--rule-hairline);margin-bottom:var(--space-sm);background:var(--color-paper-2);flex-wrap:wrap}
.regime-hero-badge{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:700;text-transform:uppercase;padding:var(--space-2xs) var(--space-md);border:1px solid currentColor;white-space:nowrap;flex-shrink:0}
.regime-hero-badge.active,.regime-hero-badge.积极{color:var(--color-up);border-color:var(--color-up);background:var(--color-up-bg)}
.regime-hero-badge.cautious,.regime-hero-badge.谨慎{color:var(--color-warn);border-color:var(--color-warn);background:var(--color-warn-bg)}
.regime-hero-badge.forbidden,.regime-hero-badge.禁止{color:var(--color-down);border-color:var(--color-down);background:var(--color-down-bg)}
.regime-hero-body{min-width:0;flex:1}

/* ===== CARDS — sector / stock / generic ===== */
.sector-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1px;background:var(--color-rule);margin-bottom:var(--space-sm);border:var(--rule-hairline)}
.stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;background:var(--color-rule);margin-bottom:var(--space-sm);border:var(--rule-hairline)}
.sector-card,.stock-card{padding:var(--space-sm);background:var(--color-paper);overflow:hidden}
.sector-card:hover,.stock-card:hover{background:var(--color-paper-2)}
.sector-card.buy{border-left:2px solid var(--color-up)}
.sector-card.hold{border-left:2px solid var(--color-info)}
.sector-card.sell{border-left:2px solid var(--color-down)}
.sector-card.wait{border-left:2px solid var(--color-ink-3)}
.sector-name,.stock-name{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;color:var(--color-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stock-name-tight{margin-bottom:0}
.sector-meta,.stock-meta{font-size:var(--text-2xs);color:var(--color-ink-3);line-height:1.4;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.stock-meta-strong{color:var(--color-ink);font-weight:500}
.sector-change{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600}
.sector-change-float{float:right;font-size:var(--text-2xs);font-weight:400}
.sector-top-row{display:flex;align-items:baseline;gap:var(--space-xs);flex-wrap:wrap}
.sector-action-hint{font-size:var(--text-2xs);color:var(--color-ink-3);font-style:italic;line-height:1.3}
.sector-group-label{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;letter-spacing:0.08em;text-transform:uppercase;margin:var(--space-xs) 0 var(--space-2xs);color:var(--color-ink-3)}
.targets{margin-top:var(--space-2xs);padding-top:var(--space-2xs);border-top:var(--rule-hairline)}
.targets li{font-size:var(--text-2xs);line-height:1.4}
.lifecycle-strip{display:grid;grid-template-columns:repeat(15,1fr);gap:1px;margin:var(--space-2xs) 0}
.lc-cell{height:5px;background:var(--color-paper-3)}
.lc-buy{background:var(--color-up)}
.lc-hold{background:var(--color-info)}
.lc-wait{background:var(--color-ink-3)}
.lc-sell{background:var(--color-down)}
.buy-point-hero{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;color:var(--color-up);line-height:1.3}
.buy-point-hero.pending{color:var(--color-warn)}
.pullback-trio{display:flex;gap:var(--space-xs);align-items:baseline;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink);flex-wrap:wrap}
.pullback-trio .sep{color:var(--color-rule-strong)}
.pos-pill{display:inline-block;border:1px solid var(--color-up);color:var(--color-up);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;padding:0 var(--space-xs)}

/* ===== TAGS ===== */
.tag{display:inline-block;font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;border:1px solid var(--color-rule);padding:0 var(--space-xs);color:var(--color-ink-2);white-space:nowrap}
.tag.buy{border-color:var(--color-up);color:var(--color-up)}
.tag.hold{border-color:var(--color-info);color:var(--color-info)}
.tag.sell{border-color:var(--color-down);color:var(--color-down)}
.tag.wait{border-color:var(--color-rule);color:var(--color-ink-3)}
.tag.high{border-color:var(--color-down);color:var(--color-down)}
.tag.medium{border-color:var(--color-warn);color:var(--color-warn)}
.tag.low{border-color:var(--color-ink-3);color:var(--color-ink-3)}
.tag.trim{border-color:var(--color-warn);color:var(--color-warn)}
.tag.watch{border-color:var(--color-rule);color:var(--color-ink-3)}
.tag-xs,.tag-xs-wide,.tag-2xs,.tag-micro,.tag-mini,.tag-eod{font-size:var(--text-2xs);padding:0 var(--space-xs)}

/* ===== DATA TABLES ===== */
.tp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:var(--space-xs);position:relative}
.tp-table-wrap::after{display:none}
.tp-table-wrap::before{content:"";position:absolute;top:0;right:0;width:1.25rem;height:.2rem;background:var(--color-accent);opacity:.55;pointer-events:none;display:none}
@media(max-width:767px){.tp-table-wrap::before{display:block}}
.tp-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.4;font-variant-numeric:tabular-nums}
.tp-table th,.tp-table td{padding:var(--space-2xs) var(--space-sm);text-align:start;vertical-align:top;border-bottom:var(--rule-hairline)}
.tp-table th{font-weight:600;font-size:var(--text-2xs);letter-spacing:0.06em;text-transform:uppercase;white-space:nowrap;color:var(--color-ink-3);background:var(--color-paper-2)}
.tp-table tbody tr:hover{background:var(--color-paper-2)}
.tp-num{text-align:end;white-space:nowrap}
.tp-sym{min-width:9rem;white-space:normal;overflow:hidden;text-overflow:ellipsis;max-width:18rem}
.tp-stock{display:inline-flex;align-items:baseline;gap:var(--space-xs);flex-wrap:wrap;min-width:0;max-width:100%}
.tp-code{font-weight:600;color:var(--color-ink)}
.tp-name{color:var(--color-ink-2);overflow:hidden;text-overflow:ellipsis;max-width:10rem}
.tp-exchange{font-size:var(--text-2xs);color:var(--color-ink-3);text-transform:uppercase}
.tp-meta{font-size:var(--text-2xs);white-space:nowrap;color:var(--color-ink-3)}
.tp-sleeve{white-space:nowrap}
.tp-reason{white-space:normal;min-width:8rem;max-width:24rem;line-height:1.4;color:var(--color-ink-2);overflow-wrap:anywhere}
.tp-status{display:inline-block;padding:0 var(--space-xs);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;letter-spacing:0.05em;border:1px solid currentColor;white-space:nowrap}
.tp-buy{color:var(--color-up)}.tp-sell{color:var(--color-down)}.tp-hold{color:var(--color-info)}
.tp-status.up{color:var(--color-up)}.tp-status.warn{color:var(--color-warn)}.tp-status.down{color:var(--color-down)}
.tp-up{color:var(--color-up)}.tp-down{color:var(--color-down)}
.tp-actions-empty{padding:var(--space-md);font-family:var(--font-mono);font-size:var(--text-xs);border:var(--rule-hairline);color:var(--color-ink-3);text-align:center}
.tp-details-block{margin:var(--space-sm) 0}
.tp-details-block>summary{cursor:pointer;padding:var(--space-xs);font-family:var(--font-mono);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;border-bottom:var(--rule-hairline);display:flex;align-items:center;color:var(--color-ink-2);min-height:2.75rem}
.tp-details-block>summary:hover{background:var(--color-paper-2)}
.tp-details-body{padding:var(--space-sm) 0}
.tp-attr-list{font-size:var(--text-xs);line-height:1.6;padding-inline-start:var(--space-lg)}
.tp-attr-list li{margin-block:var(--space-2xs)}

/* ===== NEWS ===== */
.news-feed{border:var(--rule-hairline);background:var(--color-paper)}
.news-feed-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2xs) var(--space-sm);border-bottom:var(--rule-hairline);background:var(--color-paper-2);font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.news-item{display:grid;grid-template-columns:4.5rem 1fr;gap:var(--space-sm);padding:var(--space-2xs) var(--space-sm);border-bottom:var(--rule-hairline);font-size:var(--text-2xs);line-height:1.4}
.news-item:last-child{border-bottom:none}
.news-item:hover{background:var(--color-paper-2)}
.news-item-wrap{display:flex;align-items:stretch;border-bottom:var(--rule-hairline)}
.news-item-wrap:last-child{border-bottom:none}
.news-impact-bar{width:2px;flex-shrink:0;background:var(--color-rule)}
.news-impact-bar.high{background:var(--color-down)}
.news-impact-bar.medium{background:var(--color-warn)}
.news-inner{display:flex;gap:var(--space-xs);align-items:flex-start;padding:var(--space-2xs) var(--space-xs);flex:1;min-width:0}
.news-inner:hover{background:var(--color-paper-2)}
.news-time{flex-shrink:0;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);white-space:nowrap}
.news-headline{font-size:var(--text-2xs);flex:1;line-height:1.4;font-weight:500;min-width:0;overflow-wrap:anywhere}
.news-signal{font-family:var(--font-mono);font-size:var(--text-2xs);flex-shrink:0;font-weight:700}
.news-signal-bull{color:var(--color-up)}.news-signal-bear{color:var(--color-down)}
.news-title-text{font-weight:600;font-size:var(--text-2xs);color:var(--color-ink)}
.news-summary{font-size:var(--text-2xs);color:var(--color-ink-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-tags{display:inline-flex;gap:var(--space-xs);margin-left:var(--space-xs)}
.news-count{color:var(--color-ink-3);font-size:var(--text-2xs)}
.news-body{min-width:0}
.muted{color:var(--color-ink-3)}

/* ===== GENERIC CARD / REJECTED ===== */
.card{padding:var(--space-sm);font-size:var(--text-xs);border:var(--rule-hairline);background:var(--color-paper)}
details.rejected{border:var(--rule-hairline);margin-bottom:var(--space-sm)}
details.rejected summary{cursor:pointer;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;padding:var(--space-xs) var(--space-sm);color:var(--color-ink-2)}
details.rejected summary:hover{background:var(--color-paper-2)}
.rejected-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1px;background:var(--color-rule);padding:0;border-top:var(--rule-hairline)}
.rejected-item{background:var(--color-paper);padding:var(--space-2xs) var(--space-sm);font-size:var(--text-2xs)}
.card-alert{border-color:var(--color-down)}.card-error{text-align:center;padding:var(--space-lg);color:var(--color-down)}.card-loading{text-align:center;padding:var(--space-lg);color:var(--color-ink-3)}

/* ===== DESK — trading intelligence panels ===== */
.dashboard-flow,.dashboard-flow>*{min-width:0}
.desk-shell{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0}
.desk-section{border:var(--rule-hairline);background:var(--color-paper);padding:var(--space-sm) var(--space-md);min-width:0}
.desk-section-focus{border-color:var(--color-accent)}
.desk-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs);border-bottom:var(--rule-hairline);padding-bottom:var(--space-xs);margin-bottom:var(--space-sm);min-width:0}
.trade-level{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;padding:0 var(--space-xs);border:1px solid var(--color-rule);background:var(--color-paper-2);color:var(--color-ink-3);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase}
.trade-level.p0{border-color:var(--color-up);color:var(--color-up);background:var(--color-up-bg)}
.trade-level.p1{border-color:var(--color-info);color:var(--color-info);background:var(--color-info-bg)}
.trade-level.p2{border-color:var(--color-warn);color:var(--color-warn);background:var(--color-warn-bg)}
.trade-level.p3{border-color:var(--color-ink-3);color:var(--color-ink-3)}
.desk-title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;color:var(--color-ink);min-width:0;overflow:hidden;text-overflow:ellipsis}
.desk-meta{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);white-space:nowrap}
.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);min-width:0}
.decision-lead{font-size:var(--text-xs);line-height:1.5;font-weight:500;color:var(--color-ink);overflow-wrap:anywhere}
.decision-meta{display:inline-flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;font-size:var(--text-2xs);color:var(--color-ink-3)}
.decision-notes{margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:var(--rule-hairline);font-size:var(--text-2xs);color:var(--color-ink-3);line-height:1.4}
.intel-matrix,.trade-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);min-width:0}
.intel-trio{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-sm);min-width:0}
.trade-kpi-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2xs)}
.kpi-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-xs);font-size:var(--text-2xs);border-bottom:var(--rule-hairline);padding-bottom:var(--space-2xs)}
.kpi-row:last-child{border-bottom:none;padding-bottom:0}
.kpi-key{color:var(--color-ink-3)}
.kpi-val{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink);font-weight:600;text-align:right;overflow-wrap:anywhere}
.intel-panel{border:var(--rule-hairline);padding:var(--space-sm);min-width:0;background:var(--color-paper);overflow-x:auto}
.intel-subcard{border:var(--rule-hairline);padding:var(--space-xs) var(--space-sm);margin-bottom:var(--space-xs);background:var(--color-paper-2);min-width:0}
.intel-subcard:last-child{margin-bottom:0}
.intel-subhead{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-2xs)}
.intel-meta{font-size:var(--text-2xs);color:var(--color-ink-3);line-height:1.4;overflow-wrap:anywhere}
.intel-text{font-size:var(--text-xs);line-height:1.5;color:var(--color-ink);overflow-wrap:anywhere}
.timeline-row{display:grid;grid-template-columns:4.5rem 1fr;gap:var(--space-sm);padding:var(--space-2xs) 0;border-bottom:var(--rule-hairline);min-width:0}
.timeline-row:last-child{border-bottom:none}
.timeline-time{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);white-space:nowrap}
.timeline-body{min-width:0;font-size:var(--text-xs);line-height:1.4;overflow-wrap:anywhere}
.flash-row{border-bottom:var(--rule-hairline)}.flash-row:last-child{border-bottom:none}

/* ===== INTEL DESK (collapsible) ===== */
details.intel-desk{border:var(--rule-hairline);margin-bottom:var(--space-sm)}
details.intel-desk>summary{cursor:pointer;font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;padding:var(--space-xs) var(--space-sm);text-transform:uppercase;letter-spacing:0.06em;display:flex;align-items:center;gap:var(--space-xs);list-style:none;color:var(--color-ink-2)}
details.intel-desk>summary::-webkit-details-marker{display:none}
details.intel-desk>summary::before{content:"\25B6";font-size:var(--text-2xs);color:var(--color-ink-3);transition:transform var(--dur-sm) var(--ease-out)}
details.intel-desk[open]>summary::before{transform:rotate(90deg)}
details.intel-desk>summary:hover{background:var(--color-paper-2)}
.intel-desk-body{padding:var(--space-sm);border-top:var(--rule-hairline)}

/* ===== MARKET TICKER / PULSE / COMMAND BAR ===== */
.market-ticker{background:var(--color-paper-3);color:var(--color-ink-2);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:0.04em;overflow:hidden;white-space:nowrap;height:1.5rem;display:flex;align-items:center;margin-bottom:var(--space-xs);cursor:default}
.market-ticker-track{display:inline-flex;align-items:center;animation:marquee 40s linear infinite}
.market-ticker:hover .market-ticker-track{animation-play-state:paused}
.mts{color:var(--color-ink-3);margin:0 var(--space-sm)}
@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}
.ticker-segment{display:inline-flex;align-items:center}
.ticker-gap{margin:0 var(--space-xl)}
.ticker-val-up{color:var(--color-up)}.ticker-val-down{color:var(--color-down)}.ticker-val-main{color:var(--color-warn)}.ticker-val-neutral{color:var(--color-ink-3)}
.command-bar{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;border:var(--rule-hairline);padding:var(--space-2xs) var(--space-md);margin-bottom:var(--space-xs);background:var(--color-paper-2);font-family:var(--font-mono)}
.command-bar-item{display:flex;align-items:baseline;gap:var(--space-xs);font-size:var(--text-2xs)}
.command-bar-sep{color:var(--color-rule-strong);font-size:var(--text-2xs)}
.command-pos{font-size:var(--text-2xs);font-weight:600}.command-label{font-size:var(--text-2xs);color:var(--color-ink-3);text-transform:uppercase}.command-main{font-weight:700}.command-tag{font-size:var(--text-2xs)}.command-value{font-weight:700;font-size:var(--text-xs)}.command-spacer{flex:1}.command-reasons{font-size:var(--text-2xs);color:var(--color-ink-3)}
.market-pulse-bar{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;border:var(--rule-hairline);padding:var(--space-2xs) var(--space-md);margin-bottom:var(--space-sm);overflow-x:auto;background:var(--color-paper-2)}
.pulse-item{display:flex;flex-direction:column;align-items:center;gap:0;flex-shrink:0}
.pulse-label{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.pulse-value{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;line-height:1.2}
.pulse-value-sm,.pulse-value-xs{font-size:var(--text-2xs)}
.pulse-sep{width:1px;height:1.25rem;background:var(--color-rule);flex-shrink:0}
.pulse-reasons{font-size:var(--text-2xs);color:var(--color-ink-3);flex:1;min-width:0}
.market-trio{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--color-rule);margin-bottom:var(--space-sm);border:var(--rule-hairline)}
.market-trio>*{background:var(--color-paper);padding:var(--space-sm)}
.market-status{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;color:var(--color-ink-3);display:flex;align-items:center;gap:var(--space-xs)}
.market-status-dot{width:5px;height:5px;border-radius:50%;background:var(--color-rule);flex-shrink:0}
.market-status-dot.live{background:var(--color-up);animation:pulse-dot 2s infinite}
@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}

/* ===== TODAY CALL / ALERT BANNERS ===== */
.alert-banner{border:var(--rule-hairline);border-left:2px solid var(--color-down);padding:var(--space-xs) var(--space-md);margin-bottom:var(--space-xs);display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap}
.alert-banner.amber{border-left-color:var(--color-ink-3)}
.alert-banner-tag{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;color:var(--color-down);border:1px solid var(--color-down);padding:0 var(--space-xs)}
.alert-banner.amber .alert-banner-tag{color:var(--color-warn);border-color:var(--color-warn)}
.alert-banner-text{font-size:var(--text-2xs);color:var(--color-ink)}
.today-call{border:var(--rule-hairline);padding:var(--space-xs) var(--space-md);margin-bottom:var(--space-xs);display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-sm);background:var(--color-paper-2)}
.today-call-label{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:0.06em;color:var(--color-ink-3)}
.today-call-val{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:700;text-transform:uppercase}
.today-call-val.engage{color:var(--color-up)}.today-call-val.selective{color:var(--color-info)}.today-call-val.watch{color:var(--color-warn)}.today-call-val.clean-cash{color:var(--color-down)}.today-call-val.draft{color:var(--color-ink-3)}
.today-call-reason{font-size:var(--text-2xs);color:var(--color-ink-3);overflow-wrap:anywhere}
.eod-banner{border:var(--rule-hairline);background:var(--color-paper-3);color:var(--color-ink-2);padding:var(--space-2xs) var(--space-md);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:0.06em;text-transform:uppercase}
.mini-kline{display:block;width:100%;height:48px;margin:var(--space-2xs) 0}
.price-trio{display:flex;gap:var(--space-xs);align-items:baseline;font-family:var(--font-mono);font-size:var(--text-2xs);flex-wrap:wrap}
.price-trio .sep{color:var(--color-rule-strong)}
.price-label{color:var(--color-ink-3);font-size:var(--text-2xs);text-transform:uppercase}

/* ===== PLAN K-LINES ===== */
.kline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1px;background:var(--color-rule);border:var(--rule-hairline);margin-top:var(--space-xs);margin-bottom:var(--space-sm)}
.kline-card{background:var(--color-paper);padding:var(--space-xs) var(--space-sm);min-width:0}
.kline-card:hover{background:var(--color-paper-2)}
.kline-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-xs);flex-wrap:wrap;margin-bottom:var(--space-2xs)}
.kline-title{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;min-width:0}
.kline-card-meta{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);line-height:1.4;overflow-wrap:anywhere}
.kline-svg{width:100%;height:auto;display:block;margin:var(--space-xs) 0}
.kline-grid-line{stroke:var(--color-rule);stroke-width:1}
.kline-wick{stroke-width:1.1}
.kline-wick.up{stroke:var(--color-up)}.kline-wick.down{stroke:var(--color-down)}
.kline-candle.up{fill:var(--color-up)}.kline-candle.down{fill:var(--color-down)}
.kline-volume{opacity:.24}
.kline-volume.up{fill:var(--color-up)}.kline-volume.down{fill:var(--color-down)}
.kline-empty{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);padding:var(--space-sm) 0}

/* ===== V2 / RESEARCH ===== */
.v2-toolbar{border:var(--rule-hairline);background:var(--color-paper-2);padding:var(--space-xs) var(--space-md);margin-bottom:var(--space-xs);display:flex;gap:var(--space-xs);flex-wrap:wrap;align-items:center}
.v2-toolbar label{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);text-transform:uppercase}
.v2-toolbar select{padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);border:var(--rule-hairline);background:var(--color-paper);color:var(--color-ink);min-width:160px;max-width:100%}
.v2-day-meta{border:var(--rule-hairline);background:var(--color-paper-2);padding:var(--space-xs) var(--space-sm);margin-bottom:var(--space-xs);font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.v2-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--color-rule);margin-bottom:var(--space-sm);border:var(--rule-hairline)}
.v2-list{display:grid;grid-template-columns:1fr;gap:1px;background:var(--color-rule);border:var(--rule-hairline)}
.v2-item{padding:var(--space-xs) var(--space-sm);background:var(--color-paper)}
.v2-row{display:flex;gap:var(--space-xs);align-items:baseline;justify-content:space-between;flex-wrap:wrap}
.v2-id{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.v2-line{font-size:var(--text-xs);line-height:1.4}
.v2-link{color:inherit;display:block;text-decoration:none}
.v2-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--color-rule);border:var(--rule-hairline);margin-bottom:var(--space-sm)}
.v2-kpi{background:var(--color-paper);padding:var(--space-xs) var(--space-sm)}
.v2-kpi .k{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);text-transform:uppercase}
.v2-kpi .v{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700}
.v2-chat{border:var(--rule-hairline);background:var(--color-paper)}
.v2-chat-head{border-bottom:var(--rule-hairline);padding:var(--space-xs) var(--space-md);display:flex;gap:var(--space-xs);align-items:baseline;flex-wrap:wrap;background:var(--color-paper-2)}
.v2-chat-title{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700}
.v2-chat-sub{font-size:var(--text-2xs);color:var(--color-ink-3)}
.v2-stream{background:var(--color-paper);padding:var(--space-sm);max-height:74vh;overflow:auto}
.v2-divider{margin:var(--space-xs) 0;text-align:center;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.v2-message{display:grid;grid-template-columns:1.6rem minmax(0,1fr);gap:var(--space-sm);margin-bottom:var(--space-sm);align-items:start}
.v2-avatar{width:1.6rem;height:1.6rem;border-radius:50%;border:1px solid var(--color-rule);font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;display:inline-flex;align-items:center;justify-content:center;background:var(--color-paper-2);color:var(--color-ink)}
.v2-avatar.gatekeeper{color:var(--color-accent);border-color:var(--color-accent)}
.v2-avatar.captain{color:var(--color-info);border-color:var(--color-info)}
.v2-avatar.harper,.v2-avatar.macro_officer{color:var(--color-info);border-color:var(--color-info)}
.v2-avatar.benjamin,.v2-avatar.alpha_hunter{color:var(--color-up);border-color:var(--color-up)}
.v2-avatar.lucas{color:var(--color-warn);border-color:var(--color-warn)}
.v2-avatar.risk_interrogator{color:var(--color-warn);border-color:var(--color-warn)}
.v2-avatar.hedge_officer,.v2-avatar.liquidity_officer{color:var(--color-info);border-color:var(--color-info)}
.v2-avatar.chief_judge{color:var(--color-down);border-color:var(--color-down)}
.v2-avatar.system{color:var(--color-ink-3);border-color:var(--color-rule)}
.v2-body{min-width:0}
.v2-head{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;margin-bottom:var(--space-2xs)}
.v2-name{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700}
.v2-time{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.v2-bubble{border:var(--rule-hairline);background:var(--color-paper);padding:var(--space-xs) var(--space-sm)}
.v2-bubble.info{border-left:2px solid var(--color-info);background:var(--color-info-bg)}
.v2-bubble.agent{border-left:2px solid var(--color-up);background:var(--color-up-bg)}
.v2-bubble.judge{border-left:2px solid var(--color-down);background:var(--color-down-bg)}
.v2-bubble.system{border-left:2px solid var(--color-ink-3);background:var(--color-paper-2)}
.v2-text{font-size:var(--text-xs);line-height:1.4;overflow-wrap:anywhere}
.v2-title{font-size:var(--text-xs);font-weight:700;margin-bottom:var(--space-2xs);overflow-wrap:anywhere}
.v2-bullets{margin:var(--space-2xs) 0 0;padding-left:var(--space-md);font-size:var(--text-2xs);line-height:1.4}
.v2-bullets li{margin:1px 0}
.v2-metrics{margin-top:var(--space-2xs);display:flex;flex-wrap:wrap;gap:var(--space-2xs)}
.v2-metric{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);border:var(--rule-hairline);padding:0 var(--space-xs);background:var(--color-paper-2)}
.v2-headline{font-size:var(--text-xs);font-weight:700;margin-bottom:var(--space-2xs);overflow-wrap:anywhere}
.v2-subtext{font-size:var(--text-2xs);color:var(--color-ink-3);margin-top:var(--space-2xs);line-height:1.4;overflow-wrap:anywhere}
.v2-chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2xs);margin-top:var(--space-2xs)}
.v2-meta{margin-top:var(--space-2xs);border-top:var(--rule-hairline);padding-top:var(--space-2xs);font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);overflow-wrap:anywhere}
.v2-links{margin-top:var(--space-2xs);display:flex;flex-wrap:wrap;gap:var(--space-xs)}
.v2-link{font-size:var(--text-2xs);color:var(--color-accent);text-decoration:none;border-bottom:1px solid transparent}
.v2-link:focus-visible,.v2-link:hover{border-bottom-color:var(--color-accent)}
.v2-empty{color:var(--color-ink-3);font-size:var(--text-2xs)}
.v2-brief{border:var(--rule-hairline);background:var(--color-paper);margin-bottom:var(--space-xs);display:none}
.v2-brief.visible{display:block}
.v2-brief-head{border-bottom:var(--rule-hairline);padding:var(--space-xs) var(--space-sm);display:flex;gap:var(--space-xs);align-items:baseline;flex-wrap:wrap;justify-content:space-between;background:var(--color-paper-2)}
.v2-brief-title{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;text-transform:uppercase}
.v2-brief-verdict{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;padding:0 var(--space-xs);border:1px solid}
.v2-brief-verdict.trade{color:var(--color-up);border-color:var(--color-up)}.v2-brief-verdict.no-trade{color:var(--color-ink-3);border-color:var(--color-ink-3)}
.v2-brief-body{display:grid;grid-template-columns:1fr 1fr;gap:0}
.v2-brief-cell{padding:var(--space-xs) var(--space-sm);border-bottom:var(--rule-hairline);border-right:var(--rule-hairline);min-height:2rem}
.v2-brief-cell:nth-child(2n){border-right:none}
.v2-brief-cell-full{grid-column:1/-1}
.v2-brief-label{font-family:var(--font-mono);font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:0.06em;color:var(--color-ink-3)}
.v2-brief-val{font-size:var(--text-xs);line-height:1.4;overflow-wrap:anywhere}
.v2-brief-val.green{color:var(--color-up)}.v2-brief-val.red{color:var(--color-down)}
.v2-brief-watch{display:flex;flex-wrap:wrap;gap:var(--space-2xs);margin-top:var(--space-2xs)}
.v2-brief-watch span{font-family:var(--font-mono);font-size:var(--text-2xs);border:var(--rule-hairline);padding:0 var(--space-xs);background:var(--color-paper-2)}
.v2-brief-proposals{grid-column:1/-1;border-right:none}
.v2-brief-prop{display:grid;grid-template-columns:3rem 1fr 1fr;gap:var(--space-2xs) var(--space-xs);padding:var(--space-2xs) 0;border-bottom:var(--rule-hairline);font-size:var(--text-2xs);align-items:start}
.v2-brief-prop:last-child{border-bottom:none}
.v2-brief-pid{font-family:var(--font-mono);font-weight:700;color:var(--color-accent)}
.v2-brief-edge{grid-column:1/-1;border-right:none;border-bottom:none;display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}
.v2-brief-edge-bar{flex:1;min-width:60px;height:3px;background:var(--color-rule);overflow:hidden}
.v2-brief-edge-fill{height:100%;background:var(--color-up);transition:width var(--dur-lg) var(--ease-out)}
.v2-brief-edge-progress{flex:1;min-width:60px;width:100%;height:3px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:var(--color-rule)}
.v2-brief-edge-progress::-webkit-progress-bar{background:var(--color-rule)}
.v2-brief-edge-progress::-webkit-progress-value{background:var(--color-up)}
.v2-brief-edge-progress::-moz-progress-bar{background:var(--color-up)}
.v2-brief-note,.v2-brief-note-top,.v2-brief-meta,.v2-brief-score-label,.v2-brief-risk{color:var(--color-ink-3);font-size:var(--text-2xs);font-family:var(--font-mono)}
.v2-brief-score-val{font-family:var(--font-mono);font-size:var(--text-2xs)}
.v2-day-meta-line{margin-top:var(--space-2xs)}
.warn{color:var(--color-warn)}.prominent{font-weight:700;color:var(--color-ink)}
.mono{font-family:var(--font-mono)}

/* ===== SPIDER CANVAS ===== */
.spider-canvas-full,.spider-canvas-banner{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:50;opacity:0.08}

/* ===== WELCOME STRIP — terminal splash ===== */
.welcome-strip{
  border-bottom:var(--rule-strong);
  padding:var(--space-lg) var(--space-md);
  display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);
  background:var(--color-paper-2);
}
.welcome-strip.collapsed{padding:var(--space-xs) var(--space-md)}
.welcome-strip.collapsed .welcome-tagline,
.welcome-strip.collapsed .welcome-meta{display:none}
.welcome-strip.collapsed .welcome-title{font-size:var(--text-xs);margin-bottom:0}
.welcome-content{min-width:0;flex:1}
.welcome-title{
  font-family:var(--font-mono);
  font-size:var(--text-display);
  font-weight:700;
  letter-spacing:0.06em;
  line-height:1;
  color:var(--color-accent);
  margin-bottom:var(--space-xs);
}
.welcome-tagline{
  font-family:var(--font-body);
  font-size:var(--text-xs);
  color:var(--color-ink-2);
  line-height:1.4;
  max-width:52ch;
}
.welcome-meta{
  font-family:var(--font-mono);
  font-size:var(--text-2xs);
  color:var(--color-ink-3);
  margin-top:var(--space-xs);
}
.welcome-meta a{color:var(--color-accent);text-decoration:none}
.welcome-meta a:hover{text-decoration:underline}
.welcome-toggle{
  font-family:var(--font-mono);
  font-size:var(--text-2xs);
  color:var(--color-ink-3);
  background:none;border:var(--rule-hairline);cursor:pointer;
  padding:var(--space-2xs) var(--space-sm);
  white-space:nowrap;
  min-height:44px;min-width:44px;
  display:flex;align-items:center;
}
.welcome-toggle:hover{color:var(--color-accent);border-color:var(--color-accent)}
@media(max-width:768px){
  .welcome-strip{flex-direction:column;padding:var(--space-md) var(--space-sm)}
  .welcome-title{font-size:var(--text-xl)}
}

/* ===== FOOTER ===== */
.site-footer{text-align:center;color:var(--color-ink-3);font-family:var(--font-mono);font-size:var(--text-2xs);padding:var(--space-sm) var(--space-md);border-top:var(--rule-strong);margin-top:var(--space-xl)}
.site-footer a{color:var(--color-ink-3);text-decoration:none;border-bottom:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}
.site-footer a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}
.card a{display:inline-flex;align-items:center;min-height:44px}
.footer{text-align:center;color:var(--color-ink-3);font-size:var(--text-2xs);margin-top:var(--space-lg);padding:var(--space-sm) 0;border-top:var(--rule-hairline)}
.footer-links{display:inline-flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;justify-content:center}
.footer-link{color:inherit;text-decoration:none}.footer-link:hover{color:var(--color-accent)}
.footer-sep{opacity:.5}
.ad-unit{text-align:center;margin-bottom:var(--space-xs);border-top:var(--rule-hairline);border-bottom:var(--rule-hairline);padding:var(--space-2xs) 0;min-height:0}

/* ===== UTILITY ===== */
.is-hidden{display:none}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.text-right{text-align:right}.font-semibold{font-weight:600}.font-mono{font-family:var(--font-mono)}
.no-underline{text-decoration:none}.flex-row-baseline{display:flex;align-items:baseline;gap:var(--space-xs)}
.flex-grow{flex:1}.separator-line{border-top:var(--rule-hairline);margin:var(--space-2xs) 0}.list-pad{padding-left:var(--space-md)}
.mt-8,.mt-10,.mt-12{margin-top:var(--space-xs)}.mt-15,.mt-20{margin-top:var(--space-sm)}
.mt-30,.mt-35{margin-top:var(--space-md)}.mt-40,.mt-55{margin-top:var(--space-lg)}
.mb-12,.mb-15{margin-top:var(--space-xs)}.mb-20,.mb-30{margin-bottom:var(--space-sm)}
.mb-35,.mb-40{margin-bottom:var(--space-md)}.mb-60{margin-bottom:var(--space-lg)}
.v2-row-gap{margin:var(--space-2xs) 0}.v2-card-gap{margin-top:var(--space-sm)}.v2-sub-gap{margin-top:var(--space-2xs)}

/* ===== SPLIT / ASYM GRIDS ===== */
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--color-rule);border:var(--rule-hairline);margin-bottom:var(--space-sm)}
.split-grid>div{background:var(--color-paper);padding:0}

/* ===== SECTIONS / ZONES ===== */
.section{margin-bottom:var(--space-sm)}.section-actions{margin-bottom:var(--space-sm)}
.report-section{margin-bottom:var(--space-md)}
.zone-sub-title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;margin:var(--space-md) 0 var(--space-xs);padding:var(--space-2xs) var(--space-sm);background:var(--color-paper-2);border-left:2px solid var(--color-accent)}
.zone-meta{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.zone-sub-meta{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.data-as-of{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.light-intro{font-size:var(--text-2xs);color:var(--color-ink-3);margin-bottom:var(--space-sm);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.strategy-panel{border:var(--rule-hairline);padding:var(--space-sm);background:var(--color-paper)}
.resonance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;background:var(--color-rule);margin-bottom:var(--space-sm);border:var(--rule-hairline)}
.resonance-grid>*{background:var(--color-paper)}

/* ===== BY-STRATEGY ===== */
.by-strat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;background:var(--color-rule);margin-bottom:var(--space-sm);border:var(--rule-hairline)}
.by-strat-group{background:var(--color-paper);padding:var(--space-sm)}
.by-strat-head{display:flex;align-items:baseline;gap:var(--space-xs);margin-bottom:var(--space-2xs)}
.by-strat-name-h{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700}
.by-strat-desc{font-size:var(--text-2xs);color:var(--color-ink-3);margin-bottom:var(--space-xs);line-height:1.3}
.by-strat-list{font-size:var(--text-2xs)}
.by-strat-row{display:grid;grid-template-columns:minmax(4rem,auto) 1fr auto;gap:var(--space-xs);padding:var(--space-2xs) 0;border-bottom:var(--rule-hairline);font-size:var(--text-2xs);align-items:baseline}
.by-strat-row:last-child{border-bottom:none}
.by-strat-name{font-family:var(--font-mono);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:10rem}
.by-strat-label{font-size:var(--text-2xs);color:var(--color-ink-3)}
.by-strat-trigger{font-size:var(--text-2xs);color:var(--color-ink-2);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.by-strat-score{font-family:var(--font-mono);font-weight:700;white-space:nowrap;text-align:right;justify-self:end;min-width:3rem}
.by-strat-bt{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);margin-bottom:var(--space-xs);padding-bottom:var(--space-2xs);border-bottom:var(--rule-hairline);overflow-wrap:anywhere}
.by-strat-count{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.row-exec{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);grid-column:1/-1;overflow-wrap:anywhere}
.solo-more summary{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-accent);cursor:pointer;margin:var(--space-xs) 0}

/* ===== SECTOR LIGHTS ===== */
.light-grid{display:flex;flex-direction:column;gap:1px;background:var(--color-rule);margin-bottom:var(--space-sm);border:var(--rule-hairline)}
.light-group{background:var(--color-paper);padding:var(--space-sm)}
.light-group.light-green{border-left:2px solid var(--color-up)}
.light-group.light-red{border-left:2px solid var(--color-down)}
.light-group.light-yellow{border-left:2px solid var(--color-warn)}
.light-group-head{display:flex;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-xs);padding-bottom:var(--space-2xs);border-bottom:var(--rule-hairline)}
.light-group-label{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700}
.light-group-hint{font-size:var(--text-2xs);color:var(--color-ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.light-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-2xs)}
.light-row{display:flex;align-items:baseline;gap:var(--space-xs);font-size:var(--text-2xs);line-height:1.4;min-width:0;overflow:hidden}
.light-dot{flex-shrink:0}.light-dot.light-green{color:var(--color-up)}.light-dot.light-red{color:var(--color-down)}.light-dot.light-yellow{color:var(--color-warn)}
.light-board{font-family:var(--font-mono);font-weight:700;white-space:nowrap}
.light-meta{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);white-space:nowrap}
.light-driver{font-size:var(--text-2xs);color:var(--color-ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:18ch}
.light-pending{font-size:var(--text-2xs);color:var(--color-warn);white-space:nowrap}

/* ===== LIFECYCLE / STAGES ===== */
.lifecycle-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:var(--text-2xs);line-height:1.4}
.lifecycle-table th,.lifecycle-table td{padding:var(--space-2xs) var(--space-xs);text-align:start;border-bottom:var(--rule-hairline);white-space:nowrap}
.lifecycle-table th{font-weight:600;color:var(--color-ink-3);background:var(--color-paper-2);text-transform:uppercase}
.lifecycle-table tbody tr:hover{background:var(--color-paper-2)}
.lifecycle-reason{white-space:normal;min-width:8ch;overflow-wrap:anywhere;color:var(--color-ink-3)}
.lifecycle-summary{font-size:var(--text-2xs);color:var(--color-ink-3);margin:var(--space-xs) 0}
.lifecycle-more summary{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-accent);cursor:pointer;margin-top:var(--space-xs)}
.lifecycle-mobile-hide{display:table-cell}
.stage-chip{display:inline-block;font-family:var(--font-mono);font-size:var(--text-2xs);padding:0 var(--space-xs);margin-right:var(--space-xs);border:1px solid var(--color-rule)}
.stage-badge{display:inline-block;font-family:var(--font-mono);font-size:var(--text-2xs);padding:0 var(--space-xs);border:1px solid currentColor;white-space:nowrap}
.stage-emerging,.stage-chip.stage-emerging{color:var(--color-up);border-color:var(--color-up)}
.stage-rising,.stage-chip.stage-rising{color:var(--color-info);border-color:var(--color-info)}
.stage-consolidation,.stage-chip.stage-consolidation{color:var(--color-warn);border-color:var(--color-warn)}
.stage-topping,.stage-chip.stage-topping{color:var(--color-down);border-color:var(--color-down)}
.stage-unknown,.stage-chip.stage-unknown{color:var(--color-ink-3);border-color:var(--color-rule)}
.tier-tag{font-family:var(--font-mono);font-size:var(--text-2xs);padding:0 var(--space-xs);border:1px solid var(--color-rule);color:var(--color-ink-2);white-space:nowrap}

/* ===== ACTIVITY ===== */
.activity-grid{display:flex;flex-wrap:wrap;gap:var(--space-xs)}
.activity-cell{display:flex;align-items:baseline;gap:var(--space-xs);border:var(--rule-hairline);padding:var(--space-2xs) var(--space-sm);background:var(--color-paper-2)}
.activity-name{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:600}
.activity-count{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;color:var(--color-accent)}

/* ===== CALENDAR ===== */
.evt-cal-panel{min-width:200px}
.evt-row{display:flex;gap:var(--space-xs);align-items:baseline;padding:var(--space-2xs) 0;border-bottom:var(--rule-hairline);font-size:var(--text-2xs)}
.evt-row:last-child{border-bottom:none}
.evt-date{width:5rem;color:var(--color-ink-3);flex-shrink:0}
.evt-type{flex-shrink:0;width:2.4rem;font-weight:700}
.evt-type-policy{color:var(--color-down)}.evt-type-regulatory{color:var(--color-warn)}.evt-type-earnings{color:var(--color-up)}.evt-type-meeting{color:var(--color-info)}.evt-type-geopolitical{color:oklch(55% 0.12 300)}.evt-type-product{color:var(--color-info)}.evt-type-litigation{color:var(--color-warn)}
.evt-headline{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.evt-score{flex-shrink:0;width:1.8rem;text-align:right;color:var(--color-ink-3)}
.evt-changes{padding:1px 0 var(--space-2xs) 7.4rem;font-size:var(--text-2xs);color:var(--color-ink-3)}
.evt-tab-btn{font-family:var(--font-mono);font-size:var(--text-2xs);padding:0 var(--space-xs);cursor:pointer;border:1px solid var(--color-rule);background:transparent;color:var(--color-ink-3)}
.evt-tab-btn.active{background:var(--color-accent);color:var(--color-paper);border-color:var(--color-accent)}
.calendar-shell{border:var(--rule-hairline);padding:var(--space-sm);background:var(--color-paper)}
.calendar-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-sm)}
.calendar-chip{border:var(--rule-hairline);padding:0 var(--space-xs);font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.calendar-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-sm)}
.cal-tab-btn{border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink-3);font-family:var(--font-mono);font-size:var(--text-2xs);padding:var(--space-2xs) var(--space-sm);cursor:pointer}
.cal-tab-btn.active{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-paper-2)}
.cal-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--color-rule);border:var(--rule-hairline)}
.cal-month-card{background:var(--color-paper);padding:var(--space-xs);min-width:0}
.cal-month-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-xs)}
.cal-month-title{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-top:var(--rule-hairline);border-bottom:var(--rule-hairline)}
.cal-weekdays span{text-align:center;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);padding:var(--space-2xs) 0;text-transform:uppercase}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--color-rule)}
.cal-cell{min-height:4.5rem;background:var(--color-paper);padding:var(--space-2xs);overflow:hidden}
.cal-cell-empty{background:var(--color-paper-2)}
.cal-cell-out{opacity:.3}
.cal-cell-today{box-shadow:inset 0 0 0 1px var(--color-accent)}
.cal-cell-selectable{cursor:pointer}.cal-cell-selectable:hover{background:var(--color-paper-2)}
.cal-cell-selectable:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}
.cal-cell-active{background:var(--color-paper-3)}
.cal-cell-top{display:flex;align-items:center;gap:var(--space-2xs);min-height:1rem}
.cal-day-num{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.cal-today{font-family:var(--font-mono);font-size:var(--text-2xs);border:1px solid var(--color-accent);padding:0 var(--space-xs);color:var(--color-accent);text-transform:uppercase}
.cal-count{font-family:var(--font-mono);margin-left:auto;font-size:var(--text-2xs);color:var(--color-ink-3)}
.cal-cell-events{display:grid;gap:1px}
.cal-pill{font-size:var(--text-2xs);border:var(--rule-hairline);padding:0 var(--space-xs);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:var(--color-paper-2)}
.cal-pill-policy{border-left:2px solid var(--color-down)}.cal-pill-regulatory{border-left:2px solid var(--color-warn)}.cal-pill-earnings{border-left:2px solid var(--color-up)}.cal-pill-meeting{border-left:2px solid var(--color-info)}.cal-pill-geopolitical{border-left:2px solid oklch(55% 0.12 300)}.cal-pill-product{border-left:2px solid var(--color-info)}.cal-pill-litigation{border-left:2px solid var(--color-warn)}
.cal-pill-text{display:inline;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.cal-list-day{display:none;border-top:var(--rule-hairline);padding-top:var(--space-xs);margin-top:var(--space-xs)}
.cal-list-day.cal-list-day-active{display:block}
.cal-list-date{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.cal-list-row{display:grid;grid-template-columns:2.4rem 1fr 2rem;gap:var(--space-xs);align-items:baseline;font-size:var(--text-2xs)}
.cal-list-head{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-list-score{text-align:right;color:var(--color-ink-3);font-family:var(--font-mono)}
.cal-list-note{font-size:var(--text-2xs);color:var(--color-ink-3);padding-left:2.8rem}
.date-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1px;background:var(--color-rule);margin-bottom:var(--space-sm);border:var(--rule-hairline)}
.date-card{background:var(--color-paper);padding:var(--space-xs) var(--space-sm);cursor:pointer}
.date-card:hover{background:var(--color-paper-2)}.date-card.active{background:var(--color-paper-3)}
.date-card-label{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700}
.date-card-meta{font-size:var(--text-2xs);color:var(--color-ink-3)}
.snapshot-panel{border:var(--rule-hairline);padding:var(--space-sm);min-height:200px}
.snapshot-empty{color:var(--color-ink-3);font-family:var(--font-mono);font-size:var(--text-2xs);text-align:center;padding:var(--space-xl) 0;text-transform:uppercase}
.snapshot-section{margin-bottom:var(--space-sm)}
.snapshot-section-title{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;color:var(--color-ink-3);padding-bottom:var(--space-2xs);border-bottom:var(--rule-hairline)}
.snapshot-row{font-size:var(--text-2xs);padding:var(--space-2xs) 0;display:flex;justify-content:space-between}
.snapshot-themes{display:flex;flex-wrap:wrap;gap:var(--space-2xs);margin-top:var(--space-2xs)}

/* ===== PAPER PAGE ===== */
.paper-nav-nav{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-sm)}
.paper-nav-headline{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700}
.paper-nav-big{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:700}
.paper-nav-delta{font-family:var(--font-mono);font-size:var(--text-2xs)}
.paper-summary{font-size:var(--text-2xs);color:var(--color-ink-3);margin-bottom:var(--space-sm)}
.paper-config-line{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.paper-section-hint{font-size:var(--text-2xs);color:var(--color-ink-3);font-style:italic}
.paper-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-sm);flex-wrap:wrap}
.paper-tab{font-family:var(--font-mono);font-size:var(--text-2xs);padding:var(--space-2xs) var(--space-sm);border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink-3);cursor:pointer;text-decoration:none}
.paper-tab:hover,.paper-tab.active{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-paper-2)}
.paper-stat{border:var(--rule-hairline);padding:var(--space-xs) var(--space-sm);text-align:center;background:var(--color-paper)}
.paper-stat-label{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);text-transform:uppercase}
.paper-stat-val{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700}
.paper-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}
.paper-table th,.paper-table td{padding:var(--space-2xs) var(--space-sm);text-align:start;border-bottom:var(--rule-hairline)}
.paper-table th{font-weight:600;text-transform:uppercase;color:var(--color-ink-3);background:var(--color-paper-2)}
.paper-table tbody tr:hover{background:var(--color-paper-2)}
.paper-table{display:block;overflow-x:auto}
.paper-table thead,.paper-table tbody,.paper-table tr{width:max-content;min-width:100%}
.paper-table th,.paper-table td{white-space:nowrap}
.paper-name,.paper-etf-sub{white-space:nowrap}
.paper-spark-wrap{margin:var(--space-sm) 0}.paper-spark-frame{border:var(--rule-hairline);padding:var(--space-xs);background:var(--color-paper)}
.paper-spark{width:100%;height:auto;display:block}
.paper-spark-caption{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.paper-spark-tip{position:absolute;background:var(--color-ink);color:var(--color-paper);font-family:var(--font-mono);font-size:var(--text-2xs);padding:0 var(--space-xs);pointer-events:none;white-space:nowrap;z-index:10}
.spark-line{fill:none;stroke:var(--color-accent);stroke-width:1.5}
.spark-area{fill:var(--color-accent);opacity:0.1}
.spark-baseline{stroke:var(--color-rule);stroke-dasharray:4 2}
.spark-axis-y{font-family:var(--font-mono);font-size:var(--text-2xs);fill:var(--color-ink-3)}
.axis-hi{fill:var(--color-up)}.axis-lo{fill:var(--color-down)}
.spark-dot{fill:var(--color-accent);r:3}.spark-dot-halo{fill:var(--color-accent);opacity:0.15;r:8}
.spark-hover-dot{fill:var(--color-accent);r:4;opacity:0}
.spark-crosshair{stroke:var(--color-rule);stroke-dasharray:2 2}
.spark-btn{font-family:var(--font-mono);font-size:var(--text-2xs);padding:0 var(--space-xs);border:1px solid var(--color-rule);background:var(--color-paper);color:var(--color-ink-3);cursor:pointer}
.spark-btn-active,.spark-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-paper-2)}
.tip-date{font-weight:700}.tip-nav{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.diag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1px;background:var(--color-rule);margin-bottom:var(--space-sm);border:var(--rule-hairline)}
.diag-grid>*{background:var(--color-paper)}
.diag-panel-title{font-family:var(--font-mono);font-size:var(--text-2xs);font-weight:700;text-transform:uppercase;color:var(--color-ink-3);margin-bottom:var(--space-2xs)}

/* ===== MULTI STRATEGY PLANS ===== */
.plan-tabs{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin:var(--space-sm) 0 var(--space-md)}
.plan-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;text-decoration:none;color:var(--color-ink-3);border:1px solid var(--color-rule);padding:0 var(--space-sm);background:var(--color-paper)}
.plan-tabs a:hover,.plan-tabs a:focus-visible{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-paper-2)}
.strategy-plan-card{scroll-margin-top:5rem}
@media(max-width:768px){.strategy-plan-card{scroll-margin-top:6.25rem}}
.strategy-plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}
.combo-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;background:var(--color-rule);border:var(--rule-hairline);margin-bottom:var(--space-sm)}
.combo-metric{background:var(--color-paper);padding:var(--space-xs) var(--space-sm);min-width:0}
.combo-factors{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);border-top:var(--rule-hairline);border-bottom:var(--rule-hairline);padding:var(--space-xs) 0;margin-bottom:var(--space-sm);overflow-wrap:anywhere}
.combo-overlap{border-color:var(--color-warn)}

/* ===== REPORT REDESIGN — welcome, bilingual controls, result-first flow ===== */
body{
  background:
    linear-gradient(180deg,var(--color-paper),var(--color-paper-2) 42%,var(--color-paper)),
    repeating-linear-gradient(90deg,transparent 0,transparent 47px,var(--color-rule) 48px);
}
.dashboard-content{
  min-height:100vh;
  opacity:0;
  transform:translateY(var(--space-lg));
  visibility:hidden;
  pointer-events:none;
  content-visibility:hidden;
  contain-intrinsic-size:1000px;
  transition:opacity var(--dur-lg) var(--ease-out),transform var(--dur-lg) var(--ease-out);
}
.dashboard-content.revealed{
  opacity:1;
  transform:translateY(0);
  visibility:visible;
  pointer-events:auto;
  content-visibility:visible;
}
.nav-actions{display:flex;align-items:center;gap:var(--space-sm);min-width:0}
.nav-button{background:transparent;border:0;cursor:pointer}
.lang-toggle{
  display:flex;
  align-items:center;
  gap:1px;
  border:var(--rule-hairline);
  background:var(--color-paper);
  min-height:44px;
}
.lang-toggle button{
  min-width:44px;
  min-height:44px;
  border:0;
  background:transparent;
  color:var(--color-ink-3);
  cursor:pointer;
  font-family:var(--font-mono);
  font-size:var(--text-2xs);
}
.lang-toggle button.active,
.lang-toggle button:hover{
  color:var(--color-paper);
  background:var(--color-accent);
}
.landing-screen{
  position:fixed;
  inset:0;
  z-index:70;
  min-height:100svh;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:center;
  padding:var(--space-3xl) max(var(--space-md),6vw);
  overflow:hidden;
  background:
    linear-gradient(115deg,color-mix(in oklab,var(--color-paper) 88%,var(--color-accent-bg)),transparent 62%),
    var(--color-paper);
  transition:opacity var(--dur-md) var(--ease-out),visibility var(--dur-md) var(--ease-out);
}
.landing-screen::before{
  content:"";
  position:absolute;
  inset:var(--space-lg);
  border:var(--rule-hairline);
  border-color:color-mix(in oklab,var(--color-accent) 52%,var(--color-rule));
  pointer-events:none;
}
.landing-screen.exiting{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.landing-copy{
  position:relative;
  z-index:1;
  max-width:46rem;
  display:grid;
  gap:var(--space-md);
}
.landing-lang{
  position:absolute;
  top:var(--space-lg);
  right:var(--space-lg);
  z-index:2;
}
.landing-spider{
  position:absolute;
  left:max(var(--space-xl),7vw);
  top:max(var(--space-xl),12vh);
  color:var(--color-accent);
  opacity:.52;
}
.landing-spider .nav-spider-icon{
  width:4.5rem;
  height:4.5rem;
  filter:drop-shadow(0 0 18px color-mix(in oklab,var(--color-accent) 32%,transparent));
  animation:spider-idle 3.6s var(--ease-in-out) infinite;
}
@keyframes spider-idle{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.landing-kicker{
  font-family:var(--font-mono);
  font-size:var(--text-xs);
  color:var(--color-accent);
  font-weight:700;
}
.landing-copy h1{
  font-family:var(--font-display);
  font-size:3rem;
  line-height:1.08;
  font-weight:700;
  color:var(--color-ink);
  max-width:18ch;
  overflow-wrap:anywhere;
}
.landing-lede{
  max-width:42rem;
  font-size:var(--text-lg);
  color:var(--color-ink-2);
  line-height:1.7;
}
.landing-chain{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-xs);
  max-width:48rem;
}
.landing-chain .landing-chip{
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  padding:0 var(--space-sm);
  border:var(--rule-hairline);
  background:color-mix(in oklab,var(--color-paper-2) 84%,transparent);
  color:var(--color-ink-2);
  font-family:var(--font-mono);
  font-size:var(--text-2xs);
}
.landing-chain .landing-chip::after{
  content:"";
  width:.25rem;
  height:.25rem;
  margin-left:var(--space-sm);
  background:var(--color-accent);
}
.landing-enter{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  min-height:3rem;
  border:1px solid var(--color-accent);
  background:var(--color-accent);
  color:var(--color-paper);
  padding:0 var(--space-lg);
  cursor:pointer;
  font-family:var(--font-mono);
  font-weight:700;
  font-size:var(--text-sm);
  text-decoration:none;
}
.landing-enter:hover,
.landing-enter:focus-visible{
  background:var(--color-paper);
  color:var(--color-accent);
}
.flow-rail{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:var(--color-rule);
  border:var(--rule-hairline);
  margin:var(--space-sm) 0 var(--space-md);
}
.flow-step{
  background:linear-gradient(180deg,var(--color-paper),var(--color-paper-2));
  min-width:0;
  padding:var(--space-md);
  position:relative;
}
.flow-index{
  font-family:var(--font-mono);
  font-size:var(--text-2xs);
  color:var(--color-accent);
  margin-bottom:var(--space-sm);
}
.flow-step h2{
  font-family:var(--font-mono);
  font-size:var(--text-sm);
  font-weight:700;
  color:var(--color-ink);
  margin-bottom:var(--space-xs);
}
.flow-value{
  font-family:var(--font-mono);
  font-size:var(--text-display-s);
  font-weight:700;
  color:var(--color-accent);
  line-height:1.1;
}
.flow-step p{
  margin-top:var(--space-xs);
  color:var(--color-ink-3);
  font-size:var(--text-2xs);
  line-height:1.5;
  overflow-wrap:anywhere;
}

/* ===== CLARITY PASS — decision first, detail second ===== */
.metric-strip{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));
  gap:var(--panel-gap);
  border:0;
  background:transparent;
  overflow:visible;
  margin-bottom:var(--section-gap);
}
.metric-strip-cell{
  display:grid;
  grid-template-rows:auto 1fr;
  align-content:start;
  gap:var(--space-xs);
  min-width:0;
  min-height:4.75rem;
  padding:var(--space-sm) var(--space-md);
  text-align:left;
  border:var(--rule-hairline);
  background:var(--surface-muted);
}
.metric-strip-cell:last-child{border-right:var(--rule-hairline)}
.metric-strip-value{font-size:var(--text-display-s);line-height:1.05;font-variant-numeric:tabular-nums}
.today-brief{
  display:grid;
  grid-template-columns:minmax(16rem,.82fr) minmax(0,1.8fr);
  gap:var(--panel-gap);
  margin:0 0 var(--section-gap);
}
.today-brief-lead,
.today-sleeve-card,
.signal-funnel,
.validation-brief{
  border:var(--rule-hairline);
  background:var(--surface-muted);
}
.today-brief-lead{padding:var(--space-lg)}
.today-brief-kicker{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--space-sm)}
.today-brief-lead h2{font-family:var(--font-body);font-size:var(--text-display-s);line-height:1.35;font-weight:700;overflow-wrap:anywhere}
.today-brief-lead p{margin-top:var(--space-sm);color:var(--color-ink-2);font-size:var(--text-sm);line-height:1.6}
.today-brief-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--panel-gap);min-width:0}
.today-sleeve-card{padding:var(--space-md);min-width:0}
.today-sleeve-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}
.today-sleeve-head h3{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700}
.today-sleeve-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--color-rule);margin-bottom:var(--space-sm)}
.today-sleeve-stats>div{background:var(--color-paper);padding:var(--space-xs)}
.today-sleeve-stats span,.target-chip-meta,.brief-empty{display:block;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3)}
.today-sleeve-stats strong{font-family:var(--font-mono);font-size:var(--text-lg);line-height:1.1;font-variant-numeric:tabular-nums}
.target-chip-list{display:grid;gap:var(--space-xs);min-width:0}
.target-chip{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:var(--space-sm);min-width:0;padding:var(--space-xs) 0;border-top:var(--rule-hairline)}
.target-chip .tp-stock{min-width:0}.target-chip .tp-name{max-width:8rem}
.sleeve-preview{
  display:grid;
  grid-template-columns:minmax(12rem,.48fr) minmax(0,1fr);
  gap:var(--panel-gap);
  align-items:start;
  margin:var(--space-sm) 0 var(--space-md);
  padding:var(--space-sm);
  background:var(--surface-muted);
  border:var(--rule-hairline);
}
.sleeve-preview-copy p{margin-top:var(--space-xs);font-size:var(--text-xs);line-height:1.5;color:var(--color-ink-2)}
.report-method{margin-top:calc(-1 * var(--space-sm));margin-bottom:var(--space-md)}
.report-method .flow-rail{margin:0;grid-template-columns:repeat(4,minmax(0,1fr))}
.strategy-plan-card{
  padding:var(--space-md);
  border:var(--rule-hairline);
  background:color-mix(in oklab,var(--surface-raised) 78%,var(--color-paper));
}
.strategy-plan-card+.strategy-plan-card{margin-top:var(--space-md)}
.strategy-plan-head{padding-bottom:var(--space-sm);border-bottom:var(--rule-hairline)}
.strategy-plan-card .section-title{margin:0;padding:0 0 0 var(--space-sm);background:transparent;border-left:2px solid var(--color-accent)}
.section-title{
  background:linear-gradient(90deg,var(--color-paper-2),transparent);
  border-left:2px solid var(--color-accent);
}
.combo-metric-grid{
  grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));
  gap:var(--panel-gap);
  background:transparent;
  border:0;
  box-shadow:none;
}
.combo-metric{border:var(--rule-hairline);background:var(--surface-muted);min-height:4.25rem}
.metric-strip,
.combo-metric-grid,
.kline-grid,
.tp-table-wrap,
details.tp-details-block{
  box-shadow:0 0 0 1px color-mix(in oklab,var(--color-accent) 8%,transparent);
}
details.tp-details-block.detail-muted{
  box-shadow:none;
  border:0;
  margin:var(--space-sm) 0;
}
details.tp-details-block.detail-muted>summary{
  border:var(--rule-hairline);
  background:var(--surface-muted);
  padding:var(--space-xs) var(--space-sm);
}
details.tp-details-block.detail-muted[open]>summary{border-bottom-color:var(--color-rule-strong)}
.combo-factors{
  color:var(--color-ink-2);
  background:linear-gradient(90deg,color-mix(in oklab,var(--color-accent-bg) 62%,transparent),transparent);
  padding:var(--space-xs) var(--space-sm);
}
.kline-grid{
  grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));
  gap:var(--panel-gap);
  background:transparent;
  border:0;
  box-shadow:none;
}
.kline-grid-priority{margin-top:var(--space-sm)}
.kline-card{
  background:
    linear-gradient(180deg,color-mix(in oklab,var(--color-paper-2) 70%,var(--color-paper)),var(--color-paper)),
    repeating-linear-gradient(90deg,transparent 0,transparent 23px,var(--color-rule) 24px);
  border:var(--rule-hairline);
  display:grid;
  grid-template-rows:auto auto auto auto;
}
.kline-card-head{align-items:flex-start}
.kline-card-head .tag{font-size:var(--text-2xs);margin-left:auto}
.kline-reference{stroke:var(--color-warn);stroke-width:1;stroke-dasharray:4 3;opacity:.9}
.kline-signal-marker{stroke:var(--color-info);stroke-width:1;stroke-dasharray:2 3;opacity:.9}
.kline-last-dot.up{fill:var(--color-up)}.kline-last-dot.down{fill:var(--color-down)}
.kline-ref-label,.kline-price-label{fill:var(--color-ink-2);font:7px var(--font-mono);text-anchor:end}
.kline-more .kline-grid{margin-top:0}
.signal-funnel,.validation-brief{padding:var(--space-md);margin-bottom:var(--section-gap)}
.signal-funnel h2,.validation-brief h2{font-family:var(--font-body);font-size:var(--text-display-s);font-weight:700;margin-bottom:var(--space-md)}
.signal-funnel-steps,.validation-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:var(--panel-gap)}
.signal-funnel-steps article,.validation-card{border:var(--rule-hairline);background:var(--color-paper);padding:var(--space-sm);min-width:0}
.signal-funnel-steps span,.validation-metrics span{display:block;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--color-ink-3);text-transform:uppercase;letter-spacing:.04em}
.signal-funnel-steps strong{display:block;font-family:var(--font-mono);font-size:var(--text-display-s);line-height:1.1;margin:var(--space-xs) 0}
.signal-funnel-steps p{color:var(--color-ink-2);font-size:var(--text-xs);line-height:1.5}
.validation-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-md)}
.validation-card-head h3{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700}
.validation-metrics{display:grid;gap:var(--space-sm)}
.validation-metrics div{display:grid;grid-template-columns:5rem 4rem 1fr;align-items:center;gap:var(--space-sm);min-width:0}
.validation-metrics strong{font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums}
.validation-metrics i{display:block;height:.35rem;background:var(--color-paper-3);position:relative;overflow:hidden}
.validation-metrics i::before{content:"";display:block;width:var(--bar);height:100%;background:var(--color-accent)}
.validation-metrics strong.down+i::before{background:var(--color-down)}
.validation-metrics strong.up+i::before{background:var(--color-up)}

/* ===== ANIMATION ===== */
@keyframes revealY{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.card,.desk-section,.intel-panel,.v2-brief,.v2-chat,.v2-item{animation:revealY var(--dur-lg) var(--ease-out) both}

/* ===== A11Y ===== */
.skip-link{position:absolute;top:-100%;left:0;z-index:1000;padding:var(--space-sm) var(--space-md);min-height:44px;display:inline-flex;align-items:center;background:var(--color-accent);color:var(--color-paper);text-decoration:none;font-family:var(--font-mono);font-size:var(--text-2xs)}
.skip-link:focus-visible{top:0}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*,::before,::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ===== RESPONSIVE ===== */
@media(max-width:1024px){.decision-grid,.intel-matrix,.intel-trio,.trade-grid-2{grid-template-columns:1fr}.desk-meta{margin-left:0;white-space:normal}.timeline-row{grid-template-columns:1fr}}
@media(max-width:900px){.v2-grid{grid-template-columns:1fr}.v2-kpis{grid-template-columns:1fr 1fr}.v2-toolbar select{width:100%;min-width:0}.v2-stream{max-height:none}.split-grid{grid-template-columns:1fr}.split-grid>div{border-top:var(--rule-hairline)}.split-grid>div:first-child{border-top:none}}
@media(max-width:768px){.container{padding:var(--space-xs)}.nav-container{padding:0 var(--space-xs);align-items:flex-start;gap:var(--space-xs);flex-direction:column}.nav-actions{width:100%;justify-content:space-between}.nav-link{padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);min-height:44px}.stats-grid{flex-wrap:wrap}.stat-card{min-width:60px}.sector-grid{grid-template-columns:1fr 1fr}.stock-grid{grid-template-columns:1fr}.market-trio{grid-template-columns:1fr}.pulse-sep{display:none}.pulse-item{flex-direction:row;gap:var(--space-xs)}.v2-brief-body{grid-template-columns:1fr}.lifecycle-mobile-hide{display:none}.cal-cell{min-height:3.5rem}.cal-list-score{display:none}.by-strat-grid{grid-template-columns:1fr}.light-list{grid-template-columns:1fr}.resonance-grid{grid-template-columns:1fr}.flow-rail{grid-template-columns:1fr 1fr}.landing-copy h1{font-size:2.25rem}.landing-lede{font-size:var(--text-base)}.landing-spider .nav-spider-icon{width:3.8rem;height:3.8rem}}
@media(max-width:480px){.sector-grid{grid-template-columns:1fr}.metric-strip{flex-wrap:wrap}.metric-strip-cell{min-width:60px}.nav-actions{display:grid;grid-template-columns:1fr;gap:var(--space-xs)}.nav-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;width:100%;background:var(--color-rule)}.nav-links:has(.nav-link:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.nav-link{border-left:0;background:var(--color-paper);padding:var(--space-xs)}.lang-toggle{justify-self:end}.flow-rail{grid-template-columns:1fr}.landing-screen{padding:var(--space-xl) var(--space-lg)}.landing-screen::before{inset:var(--space-md)}.landing-copy h1{font-size:1.75rem}.landing-chain .landing-chip{width:100%;justify-content:space-between}.landing-enter{width:100%;justify-content:center}.lang-toggle button{min-width:44px}}

@media(max-width:768px){
  .today-brief{grid-template-columns:1fr}
  .today-brief-grid{grid-template-columns:1fr}
  .sleeve-preview{grid-template-columns:1fr}
  .report-method .flow-rail{grid-template-columns:1fr}
  .validation-metrics div{grid-template-columns:4.5rem 4rem 1fr}
}
@media(max-width:480px){
  .nav-container{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-xs);padding:0 var(--space-xs);flex-direction:initial}
  .nav-title{grid-column:1;min-height:44px;justify-content:flex-start}
  .nav-actions{display:contents;width:auto}
  .nav-links{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;width:100%;background:var(--color-rule)}
  .lang-toggle{grid-column:2;grid-row:1;justify-self:end}
  .metric-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs)}
  .metric-strip-cell{min-width:0;min-height:4.25rem;padding:var(--space-xs) var(--space-sm)}
  .today-brief-lead h2,.signal-funnel h2,.validation-brief h2{font-size:var(--text-lg)}
  .target-chip{grid-template-columns:1fr}
  .kline-grid{grid-template-columns:1fr}
  .validation-metrics div{grid-template-columns:1fr;gap:var(--space-xs)}
}
@media(max-width:320px){.nav-link{font-size:var(--text-xs);padding:var(--space-xs)}.stat-card{min-width:48px}.landing-copy h1{font-size:1.5rem}}

/* Scrollbar */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--color-paper)}
::-webkit-scrollbar-thumb{background:var(--color-rule-strong)}
::-webkit-scrollbar-thumb:hover{background:var(--color-ink-3)}
