:root{--bg:#071019;--panel:#0d1824;--panel2:#111f2d;--line:#213247;--text:#eef5fb;--muted:#92a4b8;--accent:#91f07a;--blue:#65aaff;--amber:#ffc85b;--red:#ff7184;--green:#74e7a5;--shadow:0 18px 50px rgba(0,0,0,.25);--radius:16px}
html[data-theme="light"]{--bg:#eef4f8;--panel:#ffffff;--panel2:#f7fafc;--line:#d6e0e9;--text:#14202b;--muted:#647588;--accent:#2b9b43;--blue:#2f6fd8;--amber:#a66d00;--red:#c73950;--green:#17824c;--shadow:0 14px 35px rgba(31,52,72,.10)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}.muted{color:var(--muted)}.eyebrow{margin:0 0 6px;font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--muted)}h1,h2,h3,p{margin-top:0}.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:20px 14px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--panel) 92%,transparent);display:flex;flex-direction:column}.brand{display:flex;gap:10px;align-items:center;padding:4px 8px 20px}.brand-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--accent);color:#071019;font-weight:900}.brand small{display:block;margin-top:2px;color:var(--accent);font-size:10px}.nav{display:grid;gap:7px}.nav button{border:0;background:transparent;text-align:left;padding:11px 12px;border-radius:10px;color:var(--muted);font-weight:700}.nav button:hover,.nav button.active{background:var(--panel2);color:var(--text)}.sidebar-foot{margin-top:auto;padding:12px 8px;font-size:12px}.status-dot:before{content:"";display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:var(--amber)}.status-dot.ok:before{background:var(--green)}.status-dot.bad:before{background:var(--red)}.health-strip{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:-10px 0 18px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:12px;color:var(--muted)}.main{padding:24px 28px 60px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:22px}.topbar h1{margin:0;font-size:27px}.top-actions{display:flex;gap:8px;flex-wrap:wrap}.btn,.control,.icon-btn{border:1px solid var(--line);background:var(--panel2);border-radius:10px;padding:9px 12px}.btn:hover,.control:hover,.icon-btn:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.btn.primary{background:var(--accent);color:#071019;border-color:transparent;font-weight:850}.icon-btn{width:38px;height:38px;padding:0;font-size:23px}.page{display:none}.page.active{display:block}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.summary-grid{display:grid;grid-template-columns:1.45fr 1fr 1fr 1fr;gap:14px}.quick-card{text-align:left;color:inherit}.quick-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}.card-head,.section-head,.metric-row,.symbol-line,.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.account-card h2,.quick-card h2{margin-bottom:7px}.big-number{font-size:34px;font-weight:900;margin:10px 0 2px}.truth-badge{display:inline-flex;align-items:center;border:1px solid var(--line);padding:4px 8px;border-radius:999px;color:var(--muted);font-size:11px;font-weight:800}.metric-row{border-top:1px solid var(--line);padding:9px 0;font-size:13px}.metric-row:last-child{padding-bottom:0}.section-head{margin:24px 0 12px}.section-head h2{margin:0}.positions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.position-card{width:100%;border:1px solid var(--line);background:var(--panel);color:inherit;border-radius:14px;padding:15px;text-align:left}.position-card:hover{border-color:var(--blue)}.position-top{display:flex;justify-content:space-between;gap:10px}.side-badge{font-size:11px;padding:4px 7px;border-radius:999px;background:rgba(116,231,165,.10);color:var(--green)}.side-badge.short{background:rgba(255,113,132,.10);color:var(--red)}.position-price{font-size:22px;font-weight:850;margin:12px 0}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.page-card{max-width:1180px}.search-row{display:flex;gap:9px;margin-top:14px}.search-row input{flex:1;border:1px solid var(--line);background:var(--panel2);padding:11px 12px;border-radius:10px}.feed-list,.rebalance-list{display:grid;gap:10px}.feed-item,.rebalance-item{display:block;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);text-decoration:none}.feed-item h3,.rebalance-item h3{margin:0 0 7px;font-size:15px}.feed-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.feed-item.high{border-color:color-mix(in srgb,var(--amber) 50%,var(--line))}.modal{position:fixed;inset:0;background:rgba(1,6,12,.78);display:none;z-index:50;padding:18px;overflow:auto}.modal.open{display:block}.dialog{width:min(1740px,100%);margin:0 auto;background:var(--bg);border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 90px rgba(0,0,0,.5)}.modal-head{position:sticky;top:-18px;z-index:10;background:color-mix(in srgb,var(--bg) 95%,transparent);backdrop-filter:blur(14px);padding:16px 18px;border-bottom:1px solid var(--line)}.modal-head p,.modal-head h2{margin:0}.modal-price{display:flex;align-items:center;gap:10px}.modal-price>b{font-size:20px}.chart-toolbar,.aux-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--line)}.aux-toolbar{font-size:12px;color:var(--muted)}.aux-toolbar small{margin-left:auto}.tf-buttons{display:flex;gap:5px;flex-wrap:wrap}.tf-buttons button{border:1px solid var(--line);background:var(--panel2);padding:8px 10px;border-radius:9px}.tf-buttons button.active{background:var(--accent);color:#071019;border-color:transparent;font-weight:850}.data-status{margin:10px 18px 0;padding:9px 11px;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:12px}.data-status.bad{border-color:color-mix(in srgb,var(--red) 55%,var(--line));color:var(--red)}.chart-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(330px,.8fr);gap:14px;padding:14px 18px}.chart-stack{min-width:0;display:grid;gap:10px}.canvas-card{position:relative;border:1px solid var(--line);background:var(--panel);border-radius:14px;overflow:hidden}.price-wrap{height:570px}.sub-wrap{height:140px}.canvas-card canvas{display:block;width:100%;height:100%;touch-action:none}.ohlc-label,.chart-key,.sub-label{position:absolute;z-index:2;font-size:11px;color:var(--muted);pointer-events:none}.ohlc-label{left:12px;top:9px}.chart-key{right:12px;top:9px}.sub-label{left:10px;top:7px}.analysis-column{display:grid;gap:10px;align-content:start}.analysis-card{box-shadow:none;padding:15px}.analysis-card h2,.analysis-card h3{margin:0 0 10px}.score-badge{min-width:48px;height:48px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);font-weight:900}.decision{padding:10px 12px;border-radius:10px;font-size:19px;font-weight:900;margin-bottom:8px}.decision.long{background:rgba(116,231,165,.10);color:var(--green)}.decision.short{background:rgba(255,113,132,.10);color:var(--red)}.decision.wait{background:rgba(255,200,91,.08);color:var(--amber)}.diagnostic-grid,.aux-list,.zone-list,.scenario-list,.source-list{display:grid;gap:8px}.diagnostic-item,.aux-item,.zone-item,.scenario-item,.source-item{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--panel2)}.diag-head,.aux-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.vote{font-size:11px;font-weight:900;padding:3px 7px;border-radius:999px}.vote.long{color:var(--green);background:rgba(116,231,165,.09)}.vote.short{color:var(--red);background:rgba(255,113,132,.09)}.vote.neutral{color:var(--muted);background:rgba(146,164,184,.08)}.diagnostic-item small,.aux-item small,.zone-item small,.scenario-item small,.source-item small{display:block;color:var(--muted);margin-top:5px;line-height:1.45}.zone-item.support{border-left:3px solid var(--green)}.zone-item.resistance{border-left:3px solid var(--red)}.scenario-item strong{display:block;margin-bottom:4px}.source-card{margin-bottom:0}.derivatives-section{padding:0 18px 22px}.derivative-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.derivative-context{margin-bottom:10px;box-shadow:none}.derivative-context p{margin:8px 0 0}.deriv-interpret{font-size:13px;line-height:1.5;margin:10px 0 6px;padding-top:10px;border-top:1px solid var(--line)}.deriv-card{box-shadow:none}.deriv-card h3{margin-bottom:12px}.deriv-value{display:block;font-size:23px;margin-bottom:10px}.edit-dialog{width:min(1100px,100%);padding-bottom:16px}.edit-dialog>p,.edit-rows,.add-row,.modal-actions{margin-left:18px;margin-right:18px}.edit-rows{display:grid;gap:8px;margin-top:12px}.edit-row,.add-row{display:grid;grid-template-columns:1.3fr .8fr .9fr 1fr .7fr auto;gap:7px}.edit-row input,.edit-row select,.add-row input,.add-row select{min-width:0;border:1px solid var(--line);background:var(--panel2);border-radius:9px;padding:9px}.edit-row button{border:1px solid var(--line);background:transparent;border-radius:9px;color:var(--red)}.add-row{margin-top:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.empty{padding:24px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center}
@media(max-width:1250px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.positions{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-layout{grid-template-columns:1fr}.analysis-column{grid-template-columns:repeat(2,minmax(0,1fr))}.derivative-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:sticky;z-index:30;top:0;width:100%;height:auto;padding:8px 10px;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:2px 4px 7px}.nav{grid-template-columns:repeat(5,1fr);gap:3px}.nav button{padding:8px 4px;text-align:center;font-size:11px}.sidebar-foot{display:none}.main{padding:16px 12px 50px}.topbar{align-items:flex-start}.topbar h1{font-size:21px}.top-actions{justify-content:flex-end}.top-actions .btn{padding:8px;font-size:11px}.summary-grid,.positions,.analysis-column,.derivative-grid{grid-template-columns:1fr}.big-number{font-size:30px}.modal{padding:0}.dialog{border-radius:0;min-height:100vh;border-left:0;border-right:0}.modal-head{top:0}.chart-toolbar,.aux-toolbar{padding:10px 11px}.aux-toolbar small{width:100%;margin-left:0}.chart-layout{padding:10px 10px}.price-wrap{height:430px}.sub-wrap{height:120px}.derivatives-section{padding:0 10px 18px}.edit-row,.add-row{grid-template-columns:1fr 1fr}.edit-row button,.add-row button{grid-column:1/-1}.chart-key{display:none}}

/* v47.1 optimized feature restoration */
.positions{grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px;align-items:stretch}
.position-card{min-height:164px;aspect-ratio:1.08/1;padding:13px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.position-identity{display:flex;align-items:center;gap:9px;min-width:0}.company-logo{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:var(--panel2);display:grid;place-items:center;overflow:hidden;flex:0 0 auto;font-size:11px;font-weight:900}.company-logo img{width:100%;height:100%;object-fit:contain;padding:4px}.company-logo.logo-loaded{background:#fff}.company-logo.logo-loaded .logo-fallback{display:none}.company-logo .logo-fallback{display:grid;place-items:center;width:100%;height:100%;font-weight:900}.position-symbol{min-width:0}.position-symbol b{font-size:14px}.position-symbol .muted{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;max-width:105px}.position-top{align-items:flex-start}.position-price{font-size:20px;margin:7px 0 5px}.position-card .metric-row{padding:6px 0;font-size:12px}.position-card>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px}.side-badge{flex:0 0 auto}
.zoom-controls{display:flex;gap:4px}.zoom-controls .btn{min-width:38px;padding:8px 10px;font-size:18px;line-height:1}.chart-pan-hint{color:var(--muted);font-size:11px}
.calendar-card{max-width:none}.calendar-head{align-items:flex-end}.calendar-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.calendar-actions>b{min-width:105px;text-align:center}.calendar-filter{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}.calendar-filter button{border:1px solid var(--line);background:var(--panel2);padding:7px 10px;border-radius:999px;color:var(--muted)}.calendar-filter button.active{background:var(--accent);color:#071019;border-color:transparent;font-weight:850}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;overflow:hidden}.calendar-weekdays span{padding:8px;text-align:center;color:var(--muted);font-size:11px;background:var(--panel2)}.calendar-grid{border-left:1px solid var(--line);border-top:1px solid var(--line)}.calendar-day{min-height:126px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;background:var(--panel);min-width:0}.calendar-day.outside{opacity:.38}.calendar-day.today{box-shadow:inset 0 0 0 1px var(--accent)}.calendar-date{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;font-size:11px;color:var(--muted)}.calendar-date b{font-size:12px;color:var(--text)}.calendar-event{display:block;width:100%;border:0;border-left:3px solid var(--blue);background:var(--panel2);padding:5px 6px;margin:4px 0;border-radius:6px;text-align:left;font-size:10px;line-height:1.28;overflow:hidden}.calendar-event.macro{border-left-color:var(--blue)}.calendar-event.fed{border-left-color:var(--amber)}.calendar-event.earnings{border-left-color:var(--green)}.calendar-event.high{font-weight:800}.calendar-event .event-time{display:block;color:var(--muted);font-size:9px;margin-bottom:2px}.calendar-more{font-size:10px;color:var(--muted);padding:3px}.calendar-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:11px}.calendar-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.dot.macro{background:var(--blue)}.dot.fed{background:var(--amber)}.dot.earnings{background:var(--green)}.calendar-legend small{margin-left:auto}.event-dialog{width:min(820px,100%)}.event-body{padding:18px}.event-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.event-meta span{padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:11px}.event-detail{display:grid;gap:10px}.detail-block{border:1px solid var(--line);background:var(--panel2);border-radius:12px;padding:13px}.detail-block h3{margin:0 0 7px;font-size:14px}.detail-block p{margin:0;color:var(--muted);line-height:1.55;font-size:13px}.detail-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.detail-metric{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--panel2)}.detail-metric span{display:block;color:var(--muted);font-size:10px;margin-bottom:5px}.detail-metric b{font-size:15px}.event-sources{margin-top:12px;color:var(--muted);font-size:11px}.event-sources a{text-decoration:underline}
.rotation-card,.candidate-card{max-width:none;margin-bottom:14px}.rotation-flow{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:stretch;margin:12px 0}.flow-side{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel2)}.flow-side h3{margin:0 0 8px;font-size:13px}.flow-tags{display:flex;gap:6px;flex-wrap:wrap}.flow-tag{padding:5px 8px;border-radius:999px;border:1px solid var(--line);font-size:11px}.flow-arrow{display:grid;place-items:center;color:var(--accent);font-size:26px;font-weight:900}.rotation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.rotation-item{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel2)}.rotation-item .rot-score{font-size:22px;font-weight:900}.rotation-item h3{font-size:13px;margin:4px 0}.rotation-item small{display:block;color:var(--muted);line-height:1.4}.rotation-state{font-size:10px;font-weight:900;padding:3px 6px;border-radius:999px;border:1px solid var(--line)}.rotation-state.leading,.rotation-state.emerging{color:var(--green)}.rotation-state.weakening,.rotation-state.lagging{color:var(--red)}.candidate-add{display:flex;gap:8px;margin-bottom:10px}.candidate-add input{flex:1;border:1px solid var(--line);background:var(--panel2);border-radius:10px;padding:10px 12px}.candidate-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.candidate-item{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel2)}.candidate-item h3{margin:0 0 5px}.candidate-actions{display:flex;gap:6px;margin-top:9px}.candidate-actions button{padding:6px 8px}.candidate-score{font-size:20px;font-weight:900}.rebalance-list{grid-template-columns:repeat(2,minmax(0,1fr))}.rebalance-item{background:var(--panel2)}
.analysis-mechanism{border-left:3px solid var(--accent)}
@media(max-width:1250px){.positions{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.rotation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.candidate-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.positions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.position-card{min-height:150px;aspect-ratio:auto;padding:11px}.company-logo{width:30px;height:30px}.position-symbol .muted{max-width:84px}.calendar-head{align-items:flex-start}.calendar-day{min-height:104px;padding:5px}.calendar-event{font-size:9px;padding:4px}.calendar-weekdays span{padding:6px 2px}.rotation-flow{grid-template-columns:1fr}.flow-arrow{transform:rotate(90deg);height:24px}.rotation-grid,.candidate-list,.rebalance-list{grid-template-columns:1fr}.detail-metrics{grid-template-columns:1fr}.calendar-legend small{margin-left:0;width:100%}}
/* Brand identity: vector/official logo first; initials only after all logo sources fail. */
.company-logo{position:relative;overflow:hidden}.company-logo .logo-fallback{position:absolute;inset:0;display:grid;place-items:center;font-weight:900;font-size:11px;letter-spacing:-.02em}.company-logo img[data-company-logo]{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:4px;image-rendering:auto}.company-logo.logo-loaded .logo-fallback{display:none}.company-logo.logo-loaded img[data-company-logo]{opacity:1}.company-logo img[data-company-logo]{opacity:0}.company-logo:not(.logo-loaded) .logo-fallback{display:grid}

/* v47.2 pre-deploy hardening: evidence hierarchy + state truth */
.analysis-context{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0 11px}.context-chip{display:inline-flex;gap:5px;align-items:center;padding:5px 7px;border:1px solid var(--line);border-radius:999px;background:var(--panel2);font-size:10px;color:var(--muted)}.context-chip b{color:var(--text)}.context-chip.live{border-color:color-mix(in srgb,var(--amber) 55%,var(--line));color:var(--amber)}.context-chip.long{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}.context-chip.short{border-color:color-mix(in srgb,var(--red) 45%,var(--line))}.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.plan-grid>div{border:1px solid var(--line);border-radius:9px;padding:9px;background:var(--panel2)}.plan-grid span{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.plan-grid b{display:block;font-size:12px;line-height:1.45}.truth-note{margin:9px 0 0;color:var(--muted);font-size:10px;line-height:1.45}.aux-group{border:1px solid var(--line);border-radius:10px;background:var(--panel2);overflow:hidden}.aux-group summary{list-style:none;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 10px;cursor:pointer;font-size:12px;font-weight:800}.aux-group summary::-webkit-details-marker{display:none}.aux-group summary:after{content:'＋';color:var(--muted)}.aux-group[open] summary:after{content:'−'}.aux-group summary small{color:var(--muted);font-weight:600}.aux-group-body{display:grid;gap:6px;padding:0 7px 7px}.aux-group-body .aux-item{background:color-mix(in srgb,var(--panel) 55%,var(--panel2));padding:8px}.position-foot{display:flex;justify-content:space-between;gap:6px;align-items:flex-end;min-width:0}.position-foot>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.price-state{flex:0 0 auto;padding:2px 5px;border-radius:999px;border:1px solid var(--line);font-size:8px;font-weight:900;color:var(--muted)}.price-state.live{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,var(--line))}.price-state.stale,.price-state.snapshot{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,var(--line))}.price-state.failed{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,var(--line))}.price-state.pending{color:var(--blue)}.candidate-evidence,.rebalance-context{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.candidate-evidence span,.rebalance-context span{padding:4px 6px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:10px;background:var(--panel)}
@media(max-width:760px){.plan-grid{grid-template-columns:1fr}.analysis-context{gap:4px}.context-chip{font-size:9px;padding:4px 6px}}

/* v47.2 functional polish: keep controls reachable without hiding chart content */
.chart-dialog>.chart-toolbar{position:sticky;top:70px;z-index:8;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(12px)}
.tf-buttons{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;max-width:min(720px,55vw);padding-bottom:2px}.tf-buttons button{flex:0 0 auto}
.position-card,.quick-card,.rotation-item,.candidate-item,.rebalance-item{transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.position-card:hover,.candidate-item:hover,.rebalance-item:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(0,0,0,.12)}
.plan-card{border-color:color-mix(in srgb,var(--accent) 25%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 96%,var(--accent) 4%),var(--panel))}
@media(max-width:760px){.chart-dialog>.chart-toolbar{top:69px;flex-wrap:nowrap;overflow-x:auto}.tf-buttons{max-width:none;overflow:visible}.chart-toolbar>.control,.chart-toolbar>.btn,.zoom-controls{flex:0 0 auto}}

/* v47.2.2 account-linked portfolio editor + Bybit-gated rebalance candidates */
.portfolio-editor-body{padding:16px 18px 0}.account-edit-card{display:grid;grid-template-columns:minmax(220px,1.25fr) minmax(220px,.8fr);gap:16px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--panel2);align-items:center}.account-edit-card h3{margin:0 0 5px}.account-cash-field{display:grid;gap:7px}.account-cash-field>span,.portfolio-edit-grid label>span{font-size:11px;font-weight:800;color:var(--muted)}.account-cash-field>div{display:flex;align-items:center;gap:8px}.account-cash-field input{width:100%;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:12px}.account-edit-preview{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.account-edit-preview>div{padding:11px;border:1px solid var(--line);border-radius:11px;background:var(--bg)}.account-edit-preview span,.account-edit-preview b{display:block}.account-edit-preview span{font-size:10px;color:var(--muted);margin-bottom:4px}.account-edit-preview b{font-size:16px}.editor-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0 8px}.editor-section-head h3{margin:0}.edit-rows{margin:0!important;display:grid;gap:10px}.portfolio-edit-card{padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.portfolio-edit-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.portfolio-edit-head small{display:block;margin-top:2px}.portfolio-delete{border:1px solid color-mix(in srgb,var(--red) 35%,var(--line));background:transparent;color:var(--red);border-radius:9px;padding:8px 10px}.portfolio-edit-grid{display:grid;grid-template-columns:1.35fr .75fr .8fr .9fr .7fr .9fr;gap:8px}.portfolio-edit-grid label{display:grid;gap:5px;min-width:0}.portfolio-edit-grid label em{font-size:9px;font-style:normal;font-weight:600;opacity:.7}.portfolio-edit-grid input,.portfolio-edit-grid select{width:100%;min-width:0;border:1px solid var(--line);background:var(--panel2);border-radius:9px;padding:9px}.candidate-item.tradable{cursor:pointer}.candidate-item.tradable:hover,.clickable-rebalance:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));transform:translateY(-1px)}.candidate-item.excluded{opacity:.72}.candidate-title{min-width:0}.candidate-rank{display:flex;align-items:center;gap:8px}.truth-badge.trade-ok{color:var(--green);border-color:rgba(116,231,165,.25);background:rgba(116,231,165,.07)}.truth-badge.trade-no{color:var(--red);border-color:rgba(255,113,132,.25);background:rgba(255,113,132,.07)}.candidate-desc,.rebalance-company-desc{font-size:12px;line-height:1.55;color:var(--muted);margin:9px 0}.candidate-why{padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);margin:9px 0}.candidate-why b{font-size:11px}.candidate-why p{margin:4px 0 0;font-size:11px;line-height:1.5;color:var(--muted)}.candidate-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}.clickable-rebalance{cursor:pointer}.rebalance-card-action{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
@media(max-width:900px){.portfolio-edit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.portfolio-editor-body{padding:12px 12px 0}.account-edit-card{grid-template-columns:1fr}.account-edit-preview{grid-template-columns:1fr 1fr 1fr}.portfolio-edit-grid{grid-template-columns:1fr 1fr}.portfolio-edit-card{padding:11px}.rebalance-card-action{align-items:flex-start;flex-direction:column}.rebalance-card-action .btn{width:100%}}
@media(max-width:480px){.account-edit-preview{grid-template-columns:1fr}.portfolio-edit-grid{grid-template-columns:1fr 1fr}.portfolio-edit-grid label:first-child{grid-column:1/-1}}
.recommendation-block,.watchlist-block{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel2)}.watchlist-block{margin-top:12px}.candidate-subhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.candidate-subhead h3{margin:0 0 4px}.candidate-subhead p{margin:0}.candidate-item.recommended{border-left:4px solid var(--accent)}

/* v47.3 structural zones / compact rotation / dollar-volume board */
.conditional-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.conditional-plan{border:1px solid var(--line);border-radius:11px;background:var(--panel2);padding:11px}.conditional-plan span,.conditional-plan b,.conditional-plan small{display:block}.conditional-plan span{font-size:10px;color:var(--muted);font-weight:800;margin-bottom:6px}.conditional-plan b{font-size:13px;line-height:1.45}.conditional-plan small{margin-top:5px;color:var(--muted)}.conditional-plan.long{border-left:3px solid var(--green)}.conditional-plan.short{border-left:3px solid var(--red)}
.proxy-caption{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin:12px 0 8px}.proxy-caption span{font-size:11px;color:var(--muted);text-align:right}.rotation-grid.compact{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px}.rotation-item.proxy-card{aspect-ratio:1/1;min-height:128px;padding:11px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:none}.proxy-top{display:flex;justify-content:space-between;align-items:center;gap:5px}.proxy-id{font-size:17px;font-weight:900;letter-spacing:.02em;margin-top:6px}.rotation-item.proxy-card h3{font-size:12px;margin:2px 0 4px}.rotation-item.proxy-card small{font-size:10px;line-height:1.35}.rotation-item.proxy-card em{font-style:normal;color:var(--muted);font-size:9px;margin-top:5px}.rotation-item.proxy-card .rot-score{font-size:18px}
.dollar-volume-card{margin:16px 0 22px;max-width:none}.dollar-volume-card .section-head{margin:0 0 6px}.rank-head{align-items:flex-start}.rank-head p{margin:5px 0 0}.market-rank-list{display:grid;gap:0;margin-top:9px}.market-rank-row{display:grid;grid-template-columns:34px minmax(150px,1.5fr) minmax(80px,.55fr) minmax(110px,.7fr);gap:10px;align-items:center;padding:9px 7px;border-top:1px solid var(--line)}.market-rank-row:first-child{border-top:0}.market-rank-row .rank{font-weight:900;color:var(--muted);text-align:center}.rank-symbol,.rank-price,.rank-money{display:flex;flex-direction:column;min-width:0}.rank-symbol small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:10px}.rank-price,.rank-money{text-align:right;align-items:flex-end}.rank-price small,.rank-money small{font-size:10px;color:var(--muted)}.rank-money b{font-variant-numeric:tabular-nums}
@media(max-width:760px){.conditional-plan-grid{grid-template-columns:1fr}.proxy-caption{display:block}.proxy-caption span{display:block;text-align:left;margin-top:3px}.rotation-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.rotation-item.proxy-card{min-height:122px;aspect-ratio:1/1}.market-rank-row{grid-template-columns:28px minmax(95px,1.2fr) 72px 88px;gap:5px;padding:8px 2px}.rank-symbol b{font-size:12px}.rank-price b,.rank-money b{font-size:12px}.rank-money small{display:none}.dollar-volume-card{padding:14px}.rank-head{gap:8px}.rank-head .btn{padding:8px;font-size:11px}}

.earnings-coverage{margin:10px 0 14px}.earnings-coverage-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:7px}.earnings-coverage-head span{font-size:10px;color:var(--muted);text-align:right}.earnings-mini-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:6px}.earnings-mini{min-height:88px;border:1px solid var(--line);border-radius:12px;padding:9px;background:var(--panel2);color:inherit;text-align:left;display:flex;flex-direction:column;justify-content:space-between}.earnings-mini.known{cursor:pointer;border-color:color-mix(in srgb,var(--accent) 28%,var(--line))}.earnings-mini.known:hover{border-color:var(--accent);transform:translateY(-1px)}.earnings-mini b{font-size:12px}.earnings-mini span{font-size:14px;font-weight:850}.earnings-mini small{font-size:9px;color:var(--muted);line-height:1.25}.earnings-mini.missing{opacity:.72}.earnings-mini.missing span{font-size:11px;color:var(--amber)}@media(max-width:760px){.earnings-coverage-head{display:block}.earnings-coverage-head span{display:block;text-align:left;margin-top:3px}.earnings-mini-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.earnings-mini{min-height:82px;padding:7px}}


/* Earnings watchlist · RC11 */
.earnings-watch-panel{margin:12px 0;border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--panel2)}
.earnings-watch-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.earnings-watch-head>div{display:grid;gap:3px}.earnings-watch-head span:not(.truth-badge){font-size:11px;color:var(--muted)}
.earnings-watch-add{display:flex;gap:8px;margin-top:10px}.earnings-watch-add input{flex:1;min-width:0;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:10px 11px}.earnings-watch-panel>p{margin:8px 0 0;font-size:11px}
.earnings-group+.earnings-group{margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}.earnings-mini.watch{min-height:112px}.earnings-mini-top{display:flex;justify-content:space-between;gap:5px;align-items:center}.earn-remove{border:0;background:transparent;color:var(--muted);font-size:16px;padding:0 2px}.earn-mini-actions{display:flex;gap:5px;align-items:center;margin-top:4px}.earn-mini-actions button{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:7px;padding:4px 6px;font-size:9px}.earn-mini-actions span{font-size:9px;color:var(--muted);font-weight:500}.earnings-watch-empty{grid-column:1/-1;padding:14px}.earnings-mini.watch.known{border-color:color-mix(in srgb,var(--green) 35%,var(--line))}
@media(max-width:760px){.earnings-watch-head{display:grid}.earnings-watch-add{display:grid;grid-template-columns:1fr auto}.earnings-watch-add .btn{padding:9px}.earnings-mini.watch{min-height:108px}}

.event-entry-actions{display:flex;justify-content:flex-end;margin-top:2px}.event-entry-actions .btn{min-width:150px}

.earnings-mini.auto{min-height:112px}.earn-auto-tag{font-size:9px;font-weight:900;letter-spacing:.05em;border:1px solid var(--line);border-radius:999px;padding:2px 5px;color:var(--accent)}.auto-radar-panel{background:linear-gradient(135deg,color-mix(in srgb,var(--panel2) 92%,transparent),color-mix(in srgb,var(--accent) 4%,var(--panel2)))}

/* RC16 account live-sync status */
.asset-sync-state{margin:.35rem 0 0;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}


/* RC18 actual liquidation + liquidity map */
.liquidation-workspace{margin-bottom:14px;overflow:hidden}
.liq-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}
.liq-tool-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:7px 9px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.liq-tool-group>span{font-size:11px;color:var(--muted);font-weight:800;margin-right:2px}
.liq-tool-group .btn{padding:6px 9px;font-size:11px;border-radius:9px}
.liq-tool-group .btn.active{border-color:var(--blue);color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,transparent)}
.liq-tool-group label{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);font-weight:700}
.liq-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:12px}
.liq-canvas-wrap{height:340px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel2)}
#liqMapCanvas{display:block;width:100%;height:100%;touch-action:pan-y}
.liq-quality{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.liq-quality span{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:5px 7px;background:var(--panel2)}
.liq-summary-side{display:grid;align-content:start;gap:9px;min-width:0}
.liq-summary-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--panel2)}
.liq-summary-head b{font-size:12px}.liq-summary-head span{font-size:10px;text-align:right}
.liq-ladder{display:grid;gap:8px}
.liq-ladder-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.liq-ladder-card{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--panel2);min-width:0}
.liq-ladder-card.up{border-color:color-mix(in srgb,var(--red) 28%,var(--line))}.liq-ladder-card.down{border-color:color-mix(in srgb,var(--green) 28%,var(--line))}
.liq-ladder-card>strong{display:block;font-size:11px;margin-bottom:8px}
.liq-section-label{display:block;font-size:9px;color:var(--muted);font-weight:800;margin:8px 0 4px}
.liq-rank-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:6px;align-items:center;padding:6px 0;border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent)}
.liq-rank-row:first-of-type{border-top:0}.liq-rank-row>span:first-child{font-size:10px;color:var(--muted)}.liq-rank-row b{font-size:11px}.liq-rank-row small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.liq-rank-row>div:last-child{text-align:right}
.liq-tag{display:inline-flex;margin:3px 3px 0 0;border:1px solid var(--line);border-radius:999px;padding:2px 5px;font-size:8px;color:var(--muted)}
.liq-interpret{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--panel2)}
.liq-interpret b{display:block;font-size:11px;margin-bottom:5px}.liq-interpret p{margin:0;color:var(--muted);font-size:10px;line-height:1.55}.liq-interpret p+p{margin-top:7px}
@media(max-width:880px){.liq-layout{grid-template-columns:1fr}.liq-canvas-wrap{height:310px}}
@media(max-width:560px){.liq-toolbar{gap:7px}.liq-tool-group{width:100%;overflow-x:auto;flex-wrap:nowrap}.liq-ladder-grid{grid-template-columns:1fr}.liq-canvas-wrap{height:290px}}

/* RC38.22.17 clustered liquidation route map + observed streams */
.liq-mode-group{border-color:color-mix(in srgb,var(--blue) 35%,var(--line))}
.liq-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:-3px 0 10px}
.liq-legend-chip{font-size:9px;font-weight:800;border-radius:999px;padding:4px 7px;border:1px solid var(--line)}
.liq-legend-chip.cool{background:rgba(85,37,126,.42)}
.liq-legend-chip.mid{background:rgba(39,183,184,.28)}
.liq-legend-chip.hot{background:rgba(248,236,69,.28)}
.liq-provider{display:inline-flex;align-items:center;gap:3px;font-size:9px!important}
.liq-provider.live{border-color:color-mix(in srgb,var(--green) 55%,var(--line))!important;color:var(--green)!important}
.liq-provider.ready{border-color:color-mix(in srgb,var(--blue) 45%,var(--line))!important;color:var(--blue)!important}
.liq-provider.off{opacity:.62}
.liq-rank-row.heat>div:last-child b{font-size:13px}
@media(max-width:560px){.liq-legend{align-items:flex-start}.liq-canvas-wrap{height:330px}}

/* RC22 market pulse ticker */
.market-pulse-strip{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;gap:0;margin:0 0 16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(90deg,color-mix(in srgb,var(--panel2) 92%,transparent),color-mix(in srgb,var(--panel) 96%,transparent));overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.08)}
.market-pulse-label{display:flex;align-items:center;gap:9px;padding:10px 12px;border-right:1px solid var(--line);white-space:nowrap;min-width:142px}
.market-pulse-label>div{display:grid;gap:1px}.market-pulse-label b{font-size:11px;letter-spacing:.11em}.market-pulse-label small{font-size:9px;color:var(--muted);max-width:168px;overflow:hidden;text-overflow:ellipsis}
.pulse-live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 15%,transparent);flex:0 0 auto}
.market-pulse-strip.warn .pulse-live-dot{background:var(--amber);box-shadow:0 0 0 4px color-mix(in srgb,var(--amber) 15%,transparent)}
.market-pulse-strip.bad .pulse-live-dot{background:var(--red);box-shadow:0 0 0 4px color-mix(in srgb,var(--red) 15%,transparent)}
.market-pulse-track{display:flex;align-items:stretch;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.market-pulse-track::-webkit-scrollbar{display:none}
.market-pulse-loading{display:flex;align-items:center;padding:0 14px;color:var(--muted);font-size:11px;white-space:nowrap}
.market-pulse-item{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:7px;align-content:center;min-width:max-content;padding:8px 12px;border-right:1px solid color-mix(in srgb,var(--line) 75%,transparent);white-space:nowrap;position:relative}
.market-pulse-item:last-child{border-right:0}.market-pulse-item.alert{background:color-mix(in srgb,var(--amber) 8%,transparent)}.market-pulse-item.energy .pulse-name{color:var(--amber)}
.pulse-name{grid-column:1;font-size:9px;letter-spacing:.08em;color:var(--muted);font-weight:800}.pulse-price{grid-column:2;font-size:12px;font-variant-numeric:tabular-nums;font-weight:800}.pulse-change{grid-column:1 / span 2;font-size:10px;font-variant-numeric:tabular-nums;font-weight:800;margin-top:1px}.pulse-change.up{color:var(--green)}.pulse-change.down{color:var(--red)}.pulse-change.flat{color:var(--muted)}
.pulse-alert-mark{position:absolute;right:4px;top:2px;font-size:8px;color:var(--amber);font-weight:900}.pulse-stale{opacity:.66}.pulse-missing{color:var(--muted)}
.market-pulse-refresh{border:0;border-left:1px solid var(--line);background:transparent;color:var(--muted);font-size:18px;min-width:44px;cursor:pointer}.market-pulse-refresh:active{background:var(--panel2)}.market-pulse-refresh[disabled]{opacity:.45;cursor:default}
@media(max-width:760px){.market-pulse-strip{grid-template-columns:auto minmax(0,1fr) auto;border-radius:14px;margin-bottom:13px}.market-pulse-label{min-width:104px;padding:9px 10px}.market-pulse-label b{font-size:10px}.market-pulse-label small{max-width:94px;font-size:8px}.market-pulse-item{padding:7px 10px}.pulse-price{font-size:11px}.market-pulse-refresh{min-width:40px}}
@media(max-width:430px){.market-pulse-label{min-width:88px}.market-pulse-label small{max-width:76px}.market-pulse-item{padding-inline:9px}}


/* RC23 calendar restore + realtime chart quote */
.calendar-month-summary{margin:5px 0 10px;color:var(--muted);font-size:11px;font-weight:750}.calendar-event{cursor:pointer}.calendar-event:hover{filter:brightness(1.08)}
.chart-status-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:10px 18px 0}.chart-status-row .data-status{margin:0}.chart-live-status{padding:8px 10px;border:1px solid var(--line);border-radius:10px;font-size:11px;font-weight:800;white-space:nowrap;color:var(--muted);background:var(--panel2)}.chart-live-status.ok{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,var(--line))}.chart-live-status.warn{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,var(--line))}.chart-live-status.bad{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,var(--line))}@media(max-width:760px){.chart-status-row{grid-template-columns:1fr;margin:10px 12px 0}.chart-live-status{white-space:normal}.calendar-day{min-height:112px}}

/* RC26 Technical Feature Core / discovery / swap engine */
.discovery-card,.swap-card{max-width:none;margin-bottom:14px}.engine-rule-strip{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.engine-rule-strip span{padding:6px 8px;border:1px solid var(--line);border-radius:999px;background:var(--panel2);font-size:10px;color:var(--muted)}.engine-rule-strip span:first-child{color:var(--text)}.discovery-result{border-left:4px solid color-mix(in srgb,var(--blue) 58%,var(--line))}.candidate-section-note{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px dashed var(--line);border-radius:11px;background:var(--panel2);color:var(--muted);font-size:10px}.candidate-section-note b{color:var(--text);font-size:11px}.discovery-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:9px 0}.discovery-metrics span{padding:7px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font-size:10px;color:var(--muted)}.discovery-metrics b{display:block;color:var(--text);font-size:9px;margin-bottom:3px}.truth-badge.long{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:rgba(116,231,165,.07)}.truth-badge.live{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,var(--line));background:rgba(255,200,91,.06)}.truth-badge.short{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,var(--line));background:rgba(255,113,132,.06)}.truth-badge.neutral{color:var(--muted)}
@media(max-width:760px){.discovery-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.engine-rule-strip{gap:5px}.engine-rule-strip span{font-size:9px;padding:5px 7px}}


/* RC31 desktop density + portfolio device consistency */
.positions{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));align-items:stretch}
.position-card{display:flex;flex-direction:column;min-height:176px}.position-foot{margin-top:auto}
.page-card{max-width:none}
.portfolio-sync-card{margin:14px 0 10px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--panel2);display:grid;grid-template-columns:minmax(260px,.9fr) minmax(360px,1.1fr);gap:12px;align-items:center}.portfolio-sync-card h3{margin-bottom:5px}.portfolio-sync-card p{margin-bottom:0;line-height:1.5}.portfolio-sync-actions{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px}.portfolio-sync-actions input{min-width:0;border:1px solid var(--line);background:var(--bg);border-radius:9px;padding:9px 10px}.portfolio-sync-card>small{grid-column:1/-1;line-height:1.45}
@media(min-width:1251px){.app-shell{grid-template-columns:196px minmax(0,1fr)}.sidebar{padding-left:10px;padding-right:10px}.main{padding:20px 20px 48px}.dialog{width:min(1920px,calc(100vw - 22px))}.chart-layout{grid-template-columns:minmax(0,1fr) minmax(360px,390px);gap:10px;padding:10px 12px 12px}.chart-stack{grid-template-rows:minmax(560px,66vh) 118px 118px;gap:8px}.price-wrap,.sub-wrap{height:auto;min-height:0}.analysis-column{gap:8px}.analysis-card{padding:13px}.chart-toolbar,.aux-toolbar{padding-left:12px;padding-right:12px}.chart-status-row{margin-left:12px;margin-right:12px}.derivatives-section{padding-left:12px;padding-right:12px}.summary-grid{grid-template-columns:minmax(360px,1.35fr) repeat(3,minmax(190px,.75fr));gap:10px}.card{padding:16px}.section-head{margin-top:18px}.positions{gap:9px}}
@media(min-width:1600px){.chart-layout{grid-template-columns:minmax(0,1fr) 382px}.chart-stack{grid-template-rows:minmax(620px,70vh) 120px 120px}.position-card{min-height:168px}}
@media(max-width:760px){.portfolio-sync-card{grid-template-columns:1fr;padding:11px}.portfolio-sync-actions{grid-template-columns:1fr 1fr}.portfolio-sync-actions input{grid-column:1/-1}.positions{grid-template-columns:1fr}.position-card{min-height:0}}

.zone-item.strength-strong{background:color-mix(in srgb,var(--panel2) 82%,var(--accent) 6%)}.zone-item.strength-medium{opacity:.96}.zone-item.strength-weak{opacity:.78;border-style:dashed}.zone-item.strength-weak b{color:var(--muted)}

/* RC34 three-way perspective */
.perspective-context{display:flex;flex-wrap:wrap;gap:6px;margin:7px 0 9px}.perspective-context>*{border:1px solid var(--line);border-radius:999px;padding:5px 8px;font-size:10px;color:var(--muted)}.perspective-context b{color:var(--text);background:color-mix(in srgb,var(--accent) 12%,var(--panel2))}.perspective-grid{display:grid;gap:8px}.perspective-card{border:1px solid var(--line);border-radius:11px;padding:10px;background:var(--panel2)}.perspective-card.long{border-left:3px solid var(--green)}.perspective-card.short{border-left:3px solid var(--red)}.perspective-card.flat{border-left:3px solid var(--amber)}.perspective-card.actual{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}.perspective-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.perspective-card p{margin:7px 0 8px;font-size:12px;line-height:1.5;color:var(--muted)}.perspective-block{padding-top:7px;margin-top:7px;border-top:1px solid var(--line)}.perspective-block strong{display:block;font-size:11px}.perspective-block small{display:block;margin-top:4px;color:var(--muted);line-height:1.45}
/* AUX-4.0 indicator evidence explainer */
.aux-explain{padding:10px!important}.aux-current{margin-top:8px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--panel) 70%,var(--panel2))}.aux-current strong,.aux-role strong,.aux-evidence strong{display:block;font-size:10px;letter-spacing:.04em;color:var(--text);margin-bottom:4px}.aux-current p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.aux-current.interpretation{border-left:3px solid var(--blue)}.aux-perspective-rows{display:grid;gap:6px;margin-top:8px}.aux-perspective-row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;align-items:start;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel) 64%,var(--panel2));font-size:10px;line-height:1.48}.aux-perspective-row strong{font-size:10px}.aux-perspective-row span{color:var(--muted)}.aux-perspective-row.long{border-left:3px solid var(--green)}.aux-perspective-row.short{border-left:3px solid var(--red)}.aux-perspective-row.flat{border-left:3px solid var(--amber)}.aux-role,.aux-evidence{margin-top:7px;padding:7px 8px;border-radius:8px;background:rgba(146,164,184,.045);font-size:10px;line-height:1.45;color:var(--muted)}.aux-role strong,.aux-evidence strong{display:inline;margin:0 5px 0 0}.aux-family-summary small{line-height:1.55!important}.aux-evidence{opacity:.86}
@media(max-width:520px){.aux-perspective-row{grid-template-columns:1fr;gap:3px}.aux-perspective-row strong{font-size:10px}.aux-current p,.aux-perspective-row{font-size:10px}}
.aux-definition,.aux-confirmation,.aux-invalidation,.aux-evidence-assessment{margin-top:7px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel) 68%,var(--panel2));font-size:10px;line-height:1.5;color:var(--muted)}
.aux-definition strong,.aux-confirmation strong,.aux-invalidation strong,.aux-evidence-assessment strong{display:block;color:var(--text);font-size:10px;margin-bottom:4px;letter-spacing:.02em}
.aux-evidence-assessment p{margin:0;color:var(--muted);line-height:1.55}.aux-evidence-assessment.supported{border-left:3px solid var(--green)}.aux-evidence-assessment.conditional{border-left:3px solid var(--amber)}.aux-evidence-assessment.insufficient{border-left:3px solid var(--line)}.aux-evidence-assessment.conflicted{border-left:3px solid var(--red)}
.aux-confirmation{border-left:3px solid var(--blue)}.aux-invalidation{border-left:3px solid var(--red)}
@media(max-width:520px){.aux-definition,.aux-confirmation,.aux-invalidation,.aux-evidence-assessment{font-size:10px;padding:7px 8px}}


/* RC38.3 portfolio square tiles + mainboard cleanup */
.account-summary-grid{grid-template-columns:minmax(320px,520px);justify-content:start}
.positions{grid-template-columns:repeat(auto-fill,minmax(172px,190px));gap:10px;align-items:start;justify-content:start}
.position-card{aspect-ratio:1/1;min-height:0!important;width:100%;display:flex;flex-direction:column;justify-content:space-between;padding:12px;border-radius:16px;overflow:hidden}
.position-card .position-top{align-items:flex-start}
.position-card .company-logo{width:46px;height:46px;border-radius:13px}
.position-card .position-symbol{margin-top:8px}
.position-card .position-symbol b{font-size:16px;line-height:1.1}
.position-card .position-symbol .muted{max-width:132px;font-size:10px;margin-top:3px}
.position-card .position-price{font-size:21px;margin:8px 0 4px;line-height:1.1}
.position-card .metric-row{padding:6px 0 0;border-top:1px solid var(--line);font-size:10px;gap:5px}
.position-card .position-foot{margin-top:6px;align-items:center}
.position-card .position-foot>small{font-size:9px;max-width:105px}
.position-card .price-state{font-size:8px}
@media(max-width:760px){.account-summary-grid{grid-template-columns:1fr}.positions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.position-card{aspect-ratio:1/1;min-height:0!important;padding:10px}.position-card .company-logo{width:42px;height:42px}.position-card .position-symbol .muted{max-width:110px}.position-card .position-price{font-size:19px}}
@media(max-width:360px){.positions{grid-template-columns:1fr 1fr}.position-card{padding:9px}.position-card .company-logo{width:38px;height:38px}.position-card .position-symbol b{font-size:14px}.position-card .position-price{font-size:18px}}

.zone-evidence-ref{margin-top:9px;padding-top:8px;border-top:1px dashed var(--line)}.zone-evidence-ref summary{cursor:pointer;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.02em;list-style:none}.zone-evidence-ref summary::-webkit-details-marker{display:none}.zone-evidence-ref summary:after{content:' ▾';opacity:.75}.zone-evidence-ref[open] summary:after{content:' ▴'}.zone-evidence-ref small{margin-top:7px!important;font-size:11px;line-height:1.55;color:color-mix(in srgb,var(--muted) 88%,var(--text))}
.zone-interpretation{display:grid;gap:8px;margin-top:10px}.zone-interpretation-row{padding:9px 10px;border-radius:9px;background:color-mix(in srgb,var(--panel) 66%,transparent);border:1px solid color-mix(in srgb,var(--line) 82%,transparent)}.zone-interpretation-row>b{display:block;margin-bottom:4px;font-size:11px;letter-spacing:.03em;color:var(--text)}.zone-interpretation-row p{margin:0;color:var(--muted);font-size:13px;line-height:1.58}.zone-interpretation-row.change{background:color-mix(in srgb,var(--panel2) 88%,var(--amber) 3%)}.zone-evidence-ref{opacity:.9}
/* v47.16.13 interpretation-first narrative */
.analysis-story{display:grid;gap:12px;margin-top:12px}.story-block{padding:13px 14px;border:1px solid var(--line,#24384d);border-radius:14px;background:rgba(255,255,255,.018)}.story-block>b{display:block;margin-bottom:6px;color:var(--text,#eef6ff);font-size:.96rem}.story-block p{margin:0;line-height:1.65;color:var(--muted,#91a4b8)}.aux-evidence-data,.event-evidence{margin-top:12px;border-top:1px solid var(--line,#24384d);padding-top:10px}.aux-evidence-data summary,.event-evidence summary{cursor:pointer;color:var(--muted,#91a4b8);font-size:.88rem}.event-evidence .detail-metrics{margin-top:10px}

/* RC38.13 narrative completion */
.interpretation-card .family-story{display:grid;gap:10px;margin-top:10px}.interpretation-card .family-story p{margin:0;color:var(--muted,#91a4b8);line-height:1.66}.interpretation-card .family-story p b{color:var(--text,#eef6ff);margin-right:5px}.interpretation-card .interpretation-missing{padding:8px 10px;border-left:2px solid var(--line,#24384d);background:rgba(255,255,255,.018);border-radius:6px}.interpretation-card .interpretation-observations{padding:10px 12px;border:1px solid rgba(127,160,190,.16);background:rgba(127,160,190,.035);border-radius:8px}.interpretation-card .interpretation-observations>b{display:block;color:var(--text,#eef6ff);margin-bottom:6px}.interpretation-card .interpretation-observations ul{margin:0;padding-left:18px;display:grid;gap:5px}.interpretation-card .interpretation-observations li{color:var(--muted,#91a4b8);line-height:1.55}.interpretation-card .interpretation-observations p{margin:0;color:var(--muted,#91a4b8);line-height:1.55}.interpretation-card.event-card{border-style:dashed}.interpretation-guide{margin:10px 0 12px;line-height:1.58;font-size:.84rem}.family-evidence{margin-top:10px;border-top:1px solid var(--line,#24384d);padding-top:9px}.family-evidence summary{cursor:pointer;color:var(--muted,#91a4b8);font-size:.86rem}.family-evidence small{display:block;margin-top:8px;line-height:1.55}.calendar-more{width:100%;border:0;background:transparent;color:var(--accent,#8df26f);font:inherit;font-size:.74rem;text-align:left;padding:4px 2px;cursor:pointer}

.zone-item.zone-remote{opacity:.72;border-style:dashed}.zone-item.zone-remote b{opacity:.82}
/* v47.16.22.3 Semantic Bridge Hardening · Market Synthesis */
.regime-impact-list{display:grid;gap:9px;margin-top:10px}.regime-impact-item{padding:10px 11px;border:1px solid var(--line,#24384d);border-radius:12px;background:rgba(255,255,255,.015)}.regime-impact-item>b{display:block;margin-bottom:5px;color:var(--text,#eef6ff);font-size:.9rem}.regime-impact-item p{margin:0;color:var(--muted,#91a4b8);line-height:1.6;font-size:.88rem}.synergy-evidence{margin-top:10px;padding:10px 12px;border:1px solid var(--line,#24384d);border-radius:12px}.synergy-evidence summary{cursor:pointer;color:var(--muted,#91a4b8);font-size:.86rem}.synergy-evidence p{margin:9px 0 0;color:var(--muted,#91a4b8);line-height:1.55;font-size:.85rem}

/* v47.16.22.4 decision-compact interpretation */
.decision-compact{display:grid;gap:10px}.decision-compact .decision-line{padding:10px 12px;border:1px solid rgba(127,160,190,.14);border-radius:10px;background:rgba(127,160,190,.025)}.decision-compact .decision-line>b,.decision-compact .condition>b{display:block;color:var(--text,#eef6ff);font-size:.86rem;margin-bottom:4px}.decision-compact .decision-line p,.decision-compact .condition p{margin:0;color:var(--muted,#91a4b8);line-height:1.55}.decision-compact .decision-line strong{color:var(--text,#eef6ff)}.decision-compact .decision-conditions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.decision-compact .condition{padding:10px 12px;border-radius:10px;border:1px solid rgba(127,160,190,.14);background:rgba(127,160,190,.025)}.decision-compact .condition.up{border-color:rgba(95,220,155,.20)}.decision-compact .condition.down{border-color:rgba(255,104,128,.20)}.decision-compact .closer.long{border-color:rgba(95,220,155,.24)}.decision-compact .closer.short{border-color:rgba(255,104,128,.24)}.decision-compact .trade{background:rgba(255,255,255,.035)}.interpretation-details{margin-top:10px}.interpretation-details>summary{cursor:pointer;color:var(--muted,#91a4b8);font-size:.88rem;padding:8px 0}.interpretation-details[open]>summary{margin-bottom:8px}.interpretation-card.compact .compact-summary{margin:8px 0 0;color:var(--muted,#91a4b8);line-height:1.55}.interpretation-card .compact-detail{display:grid;gap:8px;margin-top:8px}.interpretation-card .compact-detail p{margin:0;color:var(--muted,#91a4b8);line-height:1.55}.interpretation-card .compact-detail p b{color:var(--text,#eef6ff)}.interpretation-card .compact-detail ul{margin:0;padding-left:18px;display:grid;gap:4px}.interpretation-card .compact-detail li{color:var(--muted,#91a4b8);line-height:1.5}@media(max-width:720px){.decision-compact .decision-conditions{grid-template-columns:1fr}.decision-compact .decision-line,.decision-compact .condition{padding:9px 10px}}

/* v47.16.22.9 LEGO hypothesis graph + liquidity route */
.lego-story .synthesis-main{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--panel2) 88%,var(--accent) 4%)}
.lego-story .invalidation{border-left:3px solid var(--red)}
.path-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:10px}.path{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--panel2) 92%,transparent)}.path>b{display:block;margin-bottom:5px;font-size:.86rem}.path p{margin:0;color:var(--muted);line-height:1.6}.path.primary{border-left:3px solid var(--blue)}.path.alternate{border-left:3px solid var(--amber)}
.lego-section{margin-top:4px;padding-top:10px;border-top:1px solid var(--line)}.lego-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:9px}.lego-section-head>b,.lego-section-head div>b{display:block;font-size:.92rem}.lego-section-head small{display:block;margin-top:3px;color:var(--muted);line-height:1.45}.truth-badge.live{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,var(--line))}.truth-badge.neutral{color:var(--muted)}
.lego-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.lego-card{border:1px solid var(--line);border-radius:11px;padding:10px 11px;background:color-mix(in srgb,var(--panel2) 92%,transparent);min-width:0}.lego-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.lego-head>div{min-width:0}.lego-head small{display:block;color:var(--muted);font-size:9px;line-height:1.35;overflow-wrap:anywhere}.lego-head b{display:block;margin-top:3px;font-size:.86rem}.lego-summary{margin:8px 0 0;color:var(--muted);line-height:1.55;font-size:.82rem}.lego-card details{margin-top:8px;padding-top:7px;border-top:1px dashed var(--line)}.lego-card summary{cursor:pointer;color:var(--muted);font-size:.76rem;font-weight:800}.lego-detail{display:grid;gap:7px;margin-top:8px}.lego-detail p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.55}.lego-detail p b{color:var(--text)}.lego-detail ul{margin:0;padding-left:17px;display:grid;gap:4px}.lego-detail li{color:var(--muted);font-size:.75rem;line-height:1.45}.lego-detail>small{color:var(--muted);font-size:.7rem;line-height:1.45}
@media(max-width:720px){.path-grid,.lego-grid{grid-template-columns:1fr}.lego-section-head{flex-direction:column}.lego-card{padding:9px 10px}}
/* v47.16.22.9 LEGO hypothesis graph */
.hypothesis-section{margin-top:2px;padding:10px 0 2px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.hypothesis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:10px}.hypothesis-card{border:1px solid var(--line);border-radius:11px;padding:10px 11px;background:color-mix(in srgb,var(--panel2) 92%,transparent);min-width:0}.hypothesis-card.primary{border-left:3px solid var(--blue);background:color-mix(in srgb,var(--panel2) 90%,var(--blue) 4%)}.hypothesis-card.alternate{border-left:3px solid var(--amber)}.hypothesis-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.hypothesis-head small{display:block;color:var(--muted);font-size:9px;line-height:1.35}.hypothesis-head b{display:block;margin-top:3px;font-size:.88rem}.hypothesis-card>p{margin:8px 0 0;color:var(--muted);line-height:1.55;font-size:.82rem}.hypothesis-path{display:grid;gap:3px;margin-top:8px;padding:7px 8px;border-radius:8px;background:rgba(255,255,255,.025)}.hypothesis-path b{font-size:.72rem;color:var(--text)}.hypothesis-path span{font-size:.76rem;line-height:1.45;color:var(--muted)}.hypothesis-card details{margin-top:8px;padding-top:7px;border-top:1px dashed var(--line)}.hypothesis-card summary{cursor:pointer;color:var(--muted);font-size:.76rem;font-weight:800}.hypothesis-detail{display:grid;gap:6px;margin-top:8px}.hypothesis-detail p{margin:0;color:var(--muted);font-size:.76rem;line-height:1.5}.hypothesis-detail p b{color:var(--text)}
@media(max-width:720px){.hypothesis-grid{grid-template-columns:1fr}}

.lego-timeline{margin:9px 0 2px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel) 84%,var(--accent) 16%)}.lego-timeline>b{display:block;font-size:11px;margin-bottom:6px}.lego-timeline p{margin:3px 0;font-size:10px;line-height:1.5;color:var(--muted)}
/* RC38.22.21 RSI interpretation-first story */
.rsi-story-lead{display:grid;gap:8px;margin-top:9px}.rsi-story-lead>div{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel) 90%,transparent)}.rsi-story-lead b{display:block;font-size:11px;margin-bottom:4px}.rsi-story-lead p{margin:0;color:var(--muted);font-size:.79rem;line-height:1.58}.rsi-story-invalidate{background:color-mix(in srgb,var(--panel) 88%,var(--danger) 12%)!important}.rsi-number-evidence{margin-top:10px!important}.rsi-number-list{display:grid;gap:6px;margin-top:8px}.rsi-number-list>p{margin:0;padding:7px 8px;border-radius:8px;background:color-mix(in srgb,var(--panel) 94%,transparent);color:var(--muted);font-size:.72rem;line-height:1.5}.rsi-number-list ul{margin:6px 0 0;padding-left:17px}.rsi-number-list li{color:var(--muted);font-size:.7rem;line-height:1.45}

/* v47.16.22.26 PC analysis layout */
.chart-layout{display:grid;grid-template-columns:1fr;gap:14px;padding:14px 18px}.analysis-summary-column,.analysis-detail-section{min-width:0}.analysis-summary-column{display:grid;gap:10px;align-content:start}.summary-card{box-shadow:none}.analysis-detail-section{display:grid;gap:12px}.analysis-detail-head{display:none}.analysis-detail-head h3{margin:0}.analysis-detail-head .muted{margin:0;max-width:860px;line-height:1.65}.analysis-detail-grid{display:grid;gap:10px}.analysis-detail-grid .analysis-card{box-shadow:none}.analysis-detail-grid .wide-card{grid-column:1/-1}.analysis-context{display:grid;gap:10px}.analysis-context>:where(div,section,article){min-width:0}.analysis-context p,.analysis-detail-grid p,.analysis-detail-grid li,.analysis-context li{line-height:1.68}.interpretation-details summary{cursor:pointer}.chart-dialog .analysis-card .muted{line-height:1.65}@media(min-width:1251px){.chart-layout{grid-template-columns:minmax(0,1fr) minmax(420px,30vw);grid-template-areas:"chart summary" "detail detail";gap:14px;padding:12px 14px 14px;align-items:start}.chart-stack{grid-area:chart;grid-template-rows:minmax(620px,68vh) 128px 128px;gap:10px}.analysis-summary-column{grid-area:summary;position:sticky;top:122px;align-self:start;gap:12px}.analysis-detail-section{grid-area:detail;display:grid;gap:12px}.analysis-detail-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;padding:2px 2px 0}.analysis-detail-grid{grid-template-columns:minmax(0,1fr);gap:12px}.analysis-card{padding:16px}.summary-card{padding:16px 16px 18px}.summary-card .analysis-context{max-height:calc(100vh - 340px);overflow:auto;padding-right:4px}.summary-card .analysis-context::-webkit-scrollbar{width:10px}.summary-card .analysis-context::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--line) 80%,transparent);border-radius:999px}.price-wrap{min-height:0}.sub-wrap{min-height:128px}.derivatives-section{padding-top:6px}}@media(min-width:1600px){.chart-layout{grid-template-columns:minmax(0,1fr) minmax(440px,28vw)}.chart-stack{grid-template-rows:minmax(680px,72vh) 132px 132px}.analysis-card{padding:18px}.summary-card{padding:18px}}@media(max-width:1250px){.analysis-detail-head{display:none}.analysis-summary-column,.analysis-detail-grid{display:grid;gap:10px}.analysis-detail-section{gap:10px}.analysis-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-detail-grid .wide-card{grid-column:1/-1}}@media(max-width:760px){.analysis-summary-column,.analysis-detail-section,.analysis-detail-grid{display:block}.analysis-summary-column>.analysis-card,.analysis-detail-grid>.analysis-card{margin-bottom:10px}.analysis-detail-grid>.analysis-card:last-child{margin-bottom:0}}
