/* Trading planner CI: consolidated layout and typography. */
:root { color-scheme: dark; --orange: #ff7400; --cream: #ffebdb; --positive: #31f08a; --negative: #ff5c6c; --blue-1: #02152e; --blue-2: #053770; --grid: rgba(255,255,255,.055); --muted: rgba(255,235,219,.66); --line: rgba(255,255,255,.13); --transition: 480ms cubic-bezier(.22,.72,.2,1); }
* { box-sizing: border-box; }
[hidden] { display: none!important; }
html { background: #d9d7d7; }
body { margin: 0; min-width: 0; background: #d9d7d7; color: var(--cream); font-family: Arimo; }
button { font: inherit; }
.rui-shell { padding: 10px 18px 16px; }
.rui-surface { position: relative; width: 100%; margin: 0 auto; overflow: hidden; border: 1px solid rgba(255,116,0,.32); border-radius: 28px; background: radial-gradient(circle at 12% 2%,rgba(255,116,0,.20),transparent 28%),radial-gradient(circle at 88% 0%,rgba(49,240,138,.09),transparent 27%),linear-gradient(135deg,#05346f,#06295a 58%,#031a3d); box-shadow: 0 28px 70px rgba(0,0,0,.22); }
.rui-layout { display: grid; grid-template-columns: clamp(320px,25vw,410px) minmax(0,1fr); gap: 9px; padding: 11px; }
.asset-panel { min-width: 0; min-height: 0; border: 1px solid var(--line); border-radius: 20px; box-shadow: inset 0 1px 0 rgba(255,255,255,.04),0 14px 34px rgba(0,0,0,.18); }
.chart-workspace { min-width: 0; border: 1px solid var(--line); border-radius: 20px; box-shadow: inset 0 1px 0 rgba(255,255,255,.04),0 14px 34px rgba(0,0,0,.18); }
.asset-panel { display: flex; flex-direction: column; overflow: hidden; background: linear-gradient(150deg,#040f1c 0%,#04101d 58%,#071120 100%); }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid rgba(255,255,255,.10); }
.workspace-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid rgba(255,255,255,.10); }
.panel-head { padding: 15px 16px; }
.panel-title-line { min-width: 0; display: flex; align-items: center; gap: 10px; }
.panel-title-line h1 { white-space: nowrap; }
.backtest-toggle { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border: 1px solid rgba(255,116,0,.38); border-radius: 999px; background: linear-gradient(135deg,rgba(255,116,0,.13),rgba(255,255,255,.035)); color: #ffc38f; font-size: var(--vasc-font-10); font-weight: 650; letter-spacing: .045em; cursor: pointer; transition: border-color .18s ease,background .18s ease,color .18s ease; }
.backtest-toggle span { color: var(--orange); font-size: var(--vasc-font-12); line-height: 0; }
.backtest-toggle:hover { outline: none; border-color: rgba(255,116,0,.78); background: rgba(255,116,0,.20); color: #fff; }
.backtest-toggle:focus-visible { outline: none; border-color: rgba(255,116,0,.78); background: rgba(255,116,0,.20); color: #fff; }
.backtest-toggle[aria-pressed="true"] { outline: none; border-color: rgba(255,116,0,.78); background: rgba(255,116,0,.20); color: #fff; }
.backtest-periods { display: flex; align-items: center; justify-content: center; gap: 5px; margin-left: auto; }
.backtest-periods button { min-width: 63px; padding: 5px 8px; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; background: rgba(0,0,0,.20); color: rgba(255,255,255,.72); font-size: var(--vasc-font-10); cursor: pointer; }
.backtest-periods button:hover:not(:disabled) { outline: none; border-color: rgba(255,116,0,.58); color: #fff; }
.backtest-periods button:focus-visible:not(:disabled) { outline: none; border-color: rgba(255,116,0,.58); color: #fff; }
.backtest-periods button.is-active { border-color: var(--orange); background: rgba(255,116,0,.18); color: #fff; }
.backtest-periods button:disabled { opacity: .28; cursor: not-allowed; }
.panel-head h1 { margin: 3px 0 0; color: #fff; letter-spacing: .02em; }
.panel-head .asset-unit { color: rgba(255,235,219,.52); font-size: var(--vasc-font-12); font-weight: 400; letter-spacing: .02em; }
.selected-asset h2 { margin: 0; color: #fff; letter-spacing: .02em; }
.cache-pill { padding: 4px 8px; border: 1px solid rgba(255,255,255,.13); border-radius: 999px; background: rgba(0,0,0,.22); color: var(--cream); font-size: var(--vasc-font-10); font-weight: 650; white-space: nowrap; }
.asset-list { min-height: 0; overflow: auto; padding: 8px 8px 12px; scrollbar-width: thin; scrollbar-color: rgba(255,116,0,.55) transparent; }
.asset-row { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) 92px 62px; align-items: center; gap: 8px; min-height: 27px; padding: 2px 7px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--cream); cursor: pointer; text-align: left; transition: background .16s ease,border-color .16s ease,transform .16s ease; }
.asset-row:hover { outline: none; border-color: rgba(255,116,0,.42); background: rgba(255,255,255,.07); transform: translateY(-1px); }
.asset-row:focus-visible { outline: none; border-color: rgba(255,116,0,.42); background: rgba(255,255,255,.07); transform: translateY(-1px); }
.asset-row.is-active { border-color: rgba(255,116,0,.72); background: linear-gradient(90deg,rgba(255,116,0,.18),rgba(255,255,255,.055)); }
.asset-row.has-no-signal { opacity: .38; filter: saturate(.28); transition: opacity .18s ease,filter .18s ease,background .16s ease,border-color .16s ease,transform .16s ease; }
.asset-row.has-no-signal:hover { opacity: .72; filter: saturate(.6); }
.asset-row.has-no-signal:focus-visible { opacity: .72; filter: saturate(.6); }
.asset-row.has-no-signal.is-active { opacity: .68; filter: saturate(.5); }
.asset-row.has-open-signal { opacity: 1; }
.asset-identity { min-width: 0; display: flex; align-items: center; gap: 7px; }
.asset-rank { flex: 0 0 22px; color: #ff9a3d; letter-spacing: .04em; text-align: right; font-variant-numeric: tabular-nums; }
.asset-logo { display: grid; place-items: center; flex: 0 0 auto; overflow: hidden; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; background: rgba(255,255,255,.92); color: #052c5e; font-weight: 700; }
.selected-logo { display: grid; place-items: center; flex: 0 0 auto; overflow: hidden; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; background: rgba(255,255,255,.92); color: #052c5e; font-weight: 700; }
.asset-logo { width: 15px; height: 15px; font-size: var(--vasc-font-10); }
.selected-logo { width: 24px; height: 24px; font-size: var(--vasc-font-10); }
.asset-logo img { width: 100%; height: 100%; object-fit: cover; }
.selected-logo img { width: 100%; height: 100%; object-fit: cover; }
.asset-name { min-width: 0; }
.asset-name strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #fff; }
.asset-price { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.asset-performance { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.asset-price { color: #fff; }
.is-positive { color: var(--positive)!important; }
.is-negative { color: var(--negative)!important; }
.is-neutral { color: var(--cream)!important; }
.asset-performance.is-neutral { color: #fff!important; }
#selectedPerformance.is-neutral { color: #fff!important; }
.asset-price.is-no-signal { color: rgba(190,202,216,.72)!important; }
.asset-performance.is-no-signal { color: rgba(190,202,216,.72)!important; }
.open-trades-divider { height: 17px; margin: 4px 5px 2px; border-top: 1px solid rgba(255,235,219,.16); }
.asset-row.is-premium-locked { cursor: default; }
.asset-premium-zone { position: relative; min-height: 472px; overflow: hidden; border-top: 1px solid rgba(255,116,0,.20); }
.asset-premium-preview { min-height: 472px; padding-top: 3px; opacity: .58; filter: blur(2.6px) saturate(.48); pointer-events: none; user-select: none; }
.asset-premium-overlay { position: absolute; z-index: 4; inset: 0; display: flex; align-items: flex-start; justify-content: center; padding: 46px 11px 18px; background: linear-gradient(180deg,rgba(2,15,28,.24),rgba(2,15,28,.66) 42%,rgba(2,15,28,.86)); backdrop-filter: blur(2px); }
.premium-gate-card { width: min(100%,310px); display: flex; align-items: center; flex-direction: column; padding: 17px 16px; border: 1px solid rgba(255,116,0,.52); border-radius: 15px; background: linear-gradient(145deg,rgba(9,35,59,.94),rgba(3,17,31,.97)); box-shadow: 0 18px 44px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.06); text-align: center; }
.premium-gate-badge { padding: 4px 8px; border: 1px solid rgba(255,116,0,.46); border-radius: 999px; background: rgba(255,116,0,.13); color: #ffb16f; font-size: var(--vasc-font-10); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.premium-gate-card strong { margin-top: 9px; color: #fff; font-size: var(--vasc-font-16); font-weight: 600; line-height: 1.2; }
.premium-gate-card p { margin: 7px 0 0; color: rgba(225,233,241,.76); font-size: var(--vasc-font-10); line-height: 1.45; }
.premium-gate-card a { margin-top: 12px; padding: 9px 14px; border: 1px solid #ff8c2a; border-radius: 999px; background: linear-gradient(135deg,#ff7400,#ff9a3d); box-shadow: 0 8px 22px rgba(255,116,0,.22); color: #07111b; font-size: var(--vasc-font-10); font-weight: 700; text-decoration: none; }
.premium-gate-card a:hover { outline: 2px solid rgba(255,255,255,.78); outline-offset: 2px; filter: brightness(1.08); }
.premium-gate-card a:focus-visible { outline: 2px solid rgba(255,255,255,.78); outline-offset: 2px; filter: brightness(1.08); }
.premium-gate-card small { margin-top: 8px; color: rgba(255,235,219,.50); font-size: var(--vasc-font-10); }
.rui-layout.is-backtest { grid-template-columns: minmax(0,1fr); }
.rui-layout.is-backtest .asset-panel { width: 100%; }
.rui-layout.is-backtest .chart-workspace { display: none; }
.rui-layout.is-backtest .panel-head { min-height: 55px; padding: 8px 16px; }
.rui-layout.is-backtest .panel-head .cache-pill { margin-left: 8px; }
.rui-layout.is-backtest .asset-list { display: none; }
.backtest-view { min-height: 0; display: flex; flex: 1; flex-direction: column; padding: 8px 10px 10px; overflow-x: auto; }
.backtest-table-head { display: grid; grid-template-columns: minmax(180px,1.65fr) minmax(58px,.48fr) minmax(48px,.42fr) minmax(48px,.42fr) minmax(72px,.60fr) minmax(92px,.78fr) minmax(92px,.78fr) minmax(112px,.90fr); align-items: center; gap: 10px; }
.backtest-row { display: grid; grid-template-columns: minmax(180px,1.65fr) minmax(58px,.48fr) minmax(48px,.42fr) minmax(48px,.42fr) minmax(72px,.60fr) minmax(92px,.78fr) minmax(92px,.78fr) minmax(112px,.90fr); align-items: center; gap: 10px; }
.backtest-total { display: grid; grid-template-columns: minmax(180px,1.65fr) minmax(58px,.48fr) minmax(48px,.42fr) minmax(48px,.42fr) minmax(72px,.60fr) minmax(92px,.78fr) minmax(92px,.78fr) minmax(112px,.90fr); align-items: center; gap: 10px; }
.backtest-table-head { min-height: 31px; padding: 0 10px; border-bottom: 1px solid rgba(255,255,255,.10); color: rgba(255,235,219,.48); font-size: var(--vasc-font-10); text-transform: uppercase; letter-spacing: .08em; }
.backtest-table-head span:not(:first-child) { text-align: right; }
.backtest-table-head span:last-child { text-align: center; }
.backtest-rows { min-height: 0; flex: 1; overflow: auto; padding: 5px 2px; scrollbar-width: thin; scrollbar-color: rgba(255,116,0,.55) transparent; }
.backtest-row { min-height: 28px; padding: 2px 8px; border: 1px solid transparent; border-radius: 8px; background: rgba(255,255,255,.012); font-size: var(--vasc-font-10); font-variant-numeric: tabular-nums; }
.backtest-row:nth-child(even) { background: linear-gradient(90deg,rgba(17,52,82,.46),rgba(11,40,68,.40)); }
.backtest-row:hover { border-color: rgba(255,116,0,.30); background: rgba(255,255,255,.07); }
.backtest-row .asset-identity { gap: 7px; }
.backtest-row .asset-rank { flex-basis: 22px; }
.backtest-row .asset-logo { width: 15px; height: 15px; }
.backtest-row .asset-name strong { font-size: var(--vasc-font-12); }
.backtest-cell { text-align: right; color: rgba(255,255,255,.84); }
.backtest-cell strong { font-weight: 500; }
.backtest-winrate { color: #fff; }
.backtest-history-divider { height: 19px; display: flex; align-items: center; gap: 10px; margin: 1px 8px; color: rgba(255,235,219,.38); font-size: var(--vasc-font-10); text-transform: uppercase; letter-spacing: .07em; }
.backtest-history-divider::before { height: 1px; content: ""; flex: 1; background: rgba(255,235,219,.13); }
.backtest-history-divider::after { height: 1px; content: ""; flex: 1; background: rgba(255,235,219,.13); }
.backtest-total { min-height: 45px; padding: 6px 10px; border-top: 1px solid rgba(255,116,0,.42); border-radius: 0 0 10px 10px; background: linear-gradient(90deg,rgba(255,116,0,.09),rgba(255,255,255,.025)); font-size: var(--vasc-font-12); font-variant-numeric: tabular-nums; }
.backtest-total .total-label strong { display: block; color: #fff; font-size: var(--vasc-font-12); font-weight: 550; }
.backtest-total .total-label small { display: block; margin-top: 2px; color: rgba(255,235,219,.50); font-size: var(--vasc-font-10); }
.backtest-total .backtest-cell { font-size: var(--vasc-font-12); }
.backtest-total .backtest-grand-result { justify-self: end; padding: 0 1px 2px; border-bottom: 3px double currentColor; font-weight: 650; }
.backtest-no-period { min-height: 240px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; color: rgba(255,235,219,.56); text-align: center; }
.backtest-no-period strong { color: #fff; font-size: var(--vasc-font-14); font-weight: 500; }
.backtest-no-period small { max-width: 460px; font-size: var(--vasc-font-10); line-height: 1.5; }
.backtest-premium-gate { position: relative; min-height: 210px; display: grid; place-items: center; margin: 6px 2px; padding: 22px; border: 1px solid rgba(255,116,0,.18); border-radius: 11px; background: repeating-linear-gradient(180deg,rgba(13,43,70,.44) 0 30px,rgba(5,25,44,.72) 30px 60px); overflow: hidden; }
.backtest-premium-gate::before { position: absolute; content: ""; inset: 0; background: rgba(2,15,28,.42); backdrop-filter: blur(5px); }
.backtest-premium-gate .premium-gate-card { position: relative; z-index: 1; }
.state-message { display: grid; place-items: center; min-height: 180px; padding: 22px; color: var(--muted); font-size: var(--vasc-font-12); line-height: 1.5; text-align: center; }
.chart-workspace { display: flex; flex-direction: column; overflow: hidden; }
.workspace-head { min-height: 54px; padding: 7px 16px; }
.selected-asset { display: flex; align-items: center; gap: 8px; min-width: 0; }
.selected-asset h2 { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.decision-toggle { --decision-tone: #8294a8; display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; min-height: 25px; padding: 4px 10px; border: 1px solid color-mix(in srgb,var(--decision-tone) 48%,transparent); border-radius: 999px; background: color-mix(in srgb,var(--decision-tone) 10%,rgba(3,17,31,.88)); color: color-mix(in srgb,var(--decision-tone) 82%,#fff); font-size: var(--vasc-font-10); font-weight: 650; letter-spacing: .055em; cursor: pointer; transition: border-color .18s ease,background .18s ease,transform .18s ease; }
.decision-toggle:hover { border-color: var(--decision-tone); background: color-mix(in srgb,var(--decision-tone) 17%,rgba(3,17,31,.9)); transform: translateY(-1px); }
.decision-toggle:focus-visible { outline: 2px solid rgba(255,116,0,.72); outline-offset: 2px; }
.decision-toggle.long { --decision-tone: #27e08a; }
.decision-toggle.short { --decision-tone: #ff5c6c; }
.decision-toggle.blocked { --decision-tone: #ff9b45; }
.decision-toggle.monitor { --decision-tone: #62b8ff; }
.decision-toggle-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--decision-tone); box-shadow: 0 0 9px color-mix(in srgb,var(--decision-tone) 72%,transparent); }
.selected-kpis { display: flex; gap: 6px; }
.selected-kpis>div { min-width: 88px; padding: 4px 8px; border: 1px solid rgba(255,255,255,.11); border-radius: 9px; background: rgba(0,0,0,.16); text-align: right; }
.selected-kpis span { display: block; }
.selected-kpis strong { display: block; }
.selected-kpis span { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.selected-kpis strong { margin-top: 1px; color: #fff; font-variant-numeric: tabular-nums; }
.workspace-dashboard { min-height: 0; grid-template-rows: minmax(0,3fr) minmax(140px,1fr); gap: 9px; padding: 9px; }
.workspace-upper { min-width: 0; min-height: 0; grid-template-columns: minmax(0,2.6fr) minmax(230px,1fr); }
.chart-zone { min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.workspace-panel { min-width: 0; min-height: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.13); border-radius: 14px; box-shadow: inset 0 1px 0 rgba(255,255,255,.04); }
.portfolio-planner-panel { position: relative; }
.portfolio-planner-panel.is-premium-locked::before { position: absolute; z-index: 2; content: ""; inset: 36px 0 0; background: repeating-linear-gradient(135deg,rgba(12,43,73,.34) 0 46px,rgba(3,22,42,.62) 46px 92px); filter: blur(.2px); }
.portfolio-premium-gate { position: absolute; z-index: 3; inset: 36px 0 0; display: grid; place-items: center; padding: 10px 12px; background: rgba(2,15,28,.36); backdrop-filter: blur(6px); }
.portfolio-premium-gate .premium-gate-card { width: min(94%,760px); max-width: none; display: grid; grid-template-columns: auto minmax(0,1fr) auto; grid-template-rows: auto auto; column-gap: 14px; padding: 11px 14px; text-align: left; }
.portfolio-premium-gate .premium-gate-badge { grid-column: 1; grid-row: 1/3; align-self: center; }
.portfolio-premium-gate .premium-gate-card strong { grid-column: 2; grid-row: 1; margin: 0; font-size: var(--vasc-font-14); }
.portfolio-premium-gate .premium-gate-card p { grid-column: 2; grid-row: 2; max-width: none; margin: 3px 0 0; }
.portfolio-premium-gate .premium-gate-card a { grid-column: 3; grid-row: 1/3; align-self: center; margin: 0; white-space: nowrap; }
.workspace-panel-head { min-height: 36px; display: flex; align-items: center; padding: 9px 12px; border-bottom: 1px solid rgba(255,255,255,.10); }
.workspace-panel-head h3 { margin: 0; color: #fff; font-size: var(--vasc-font-12); font-weight: 500; letter-spacing: .04em; }
.signal-info-panel { display: flex; flex-direction: column; }
.signal-info-content { min-height: 0; flex: 1; padding: 8px; overflow-y: auto; scrollbar-width: none; }
.signal-info-content::-webkit-scrollbar { display: none; }
.signal-empty-state { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 20px; color: rgba(190,202,216,.58); text-align: center; }
.signal-empty-state strong { color: rgba(255,255,255,.74); font-size: var(--vasc-font-12); font-weight: 500; }
.signal-empty-dot { width: 7px; height: 7px; border-radius: 50%; background: #8294a8; box-shadow: 0 0 13px rgba(130,148,168,.5); }
.signal-card { --signal-tone: #27e08a; flex-direction: column; overflow: hidden; border: 1px solid rgba(39,224,138,.24); border-radius: 11px; }
.signal-card.short { --signal-tone: #ff5c6c; border-color: rgba(255,92,108,.24); }
.signal-card-top { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 10px; border-bottom: 1px solid rgba(255,255,255,.09); }
.signal-card-top>div:first-child { min-width: 0; }
.signal-card-top strong { display: block; margin-top: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #fff; font-weight: 500; }
.signal-live { display: flex; align-items: center; gap: 6px; color: var(--signal-tone); font-weight: 700; letter-spacing: .09em; }
.signal-live i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 10px currentColor; }
.signal-pnl { flex: 0 0 auto; min-width: 92px; text-align: right; }
.signal-pnl small { display: block; }
.signal-pnl b { display: block; }
.signal-pnl span { display: block; }
.signal-pnl small { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.signal-pnl b { margin-top: 1px; color: currentColor; font-weight: 550; font-variant-numeric: tabular-nums; line-height: 1.05; }
.signal-pnl span { margin-top: 1px; color: currentColor; font-weight: 550; font-variant-numeric: tabular-nums; line-height: 1.05; }
.signal-quick-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-bottom: 1px solid rgba(255,255,255,.09); }
.signal-quick-grid>div { min-width: 0; padding: 6px 9px; }
.signal-quick-grid>div:nth-child(even) { border-left: 1px solid rgba(255,255,255,.07); }
.signal-quick-grid>div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.07); }
.signal-quick-grid small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.signal-quick-grid strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.signal-quick-grid small { color: var(--muted); text-transform: uppercase; letter-spacing: .055em; }
.signal-level-grid small { color: var(--muted); text-transform: uppercase; letter-spacing: .055em; }
.signal-meta-grid small { color: var(--muted); text-transform: uppercase; letter-spacing: .055em; }
.signal-quick-grid strong { margin-top: 2px; color: #fff; font-weight: 500; font-variant-numeric: tabular-nums; }
.signal-progress { padding: 7px 9px; border-bottom: 1px solid rgba(255,255,255,.09); }
.signal-progress-labels { display: grid; grid-template-columns: 1fr 1.25fr 1fr; align-items: center; gap: 4px; }
.signal-progress-values { display: grid; grid-template-columns: 1fr 1.25fr 1fr; align-items: center; gap: 4px; }
.signal-progress-labels { color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.signal-progress-labels span:nth-child(2) { text-align: center; }
.signal-progress-values b { text-align: center; }
.signal-progress-labels span:last-child { text-align: right; }
.signal-progress-values span:last-child { text-align: right; }
.signal-progress-rail { position: relative; height: 4px; margin: 5px 2px; border-radius: 999px; background: linear-gradient(90deg,#ff5c6c 0%,rgba(255,255,255,.26) 50%,#27e08a 100%); }
.signal-progress-rail i { position: absolute; top: 50%; left: var(--signal-progress); width: 10px; height: 10px; transform: translate(-50%,-50%); border: 2px solid #fff; border-radius: 50%; background: #ff7400; box-shadow: 0 0 12px rgba(255,116,0,.7); }
.signal-progress-values { color: rgba(255,255,255,.72); font-variant-numeric: tabular-nums; }
.signal-progress-values b { color: #fff; font-weight: 550; }
.signal-level-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-bottom: 1px solid rgba(255,255,255,.09); }
.signal-level-grid>div { min-width: 0; padding: 6px 7px; text-align: center; }
.signal-level-grid>div+div { border-left: 1px solid rgba(255,255,255,.07); }
.signal-level-grid small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.signal-level-grid strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.signal-level-grid strong { margin-top: 2px; color: #fff; font-weight: 500; font-variant-numeric: tabular-nums; }
.signal-level-grid .tp strong { color: #27e08a; }
.signal-level-grid .sl strong { color: #ff5c6c; }
.signal-meta-grid { display: block; flex: 0 0 auto; }
.signal-meta-grid>div { min-width: 0; padding: 5px 9px; }
.signal-meta-grid small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.signal-meta-grid strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.signal-meta-grid strong { margin-top: 1px; color: rgba(255,255,255,.82); font-weight: 450; font-variant-numeric: tabular-nums; }
.signal-setup-profile { border-top: 1px solid rgba(255,255,255,.10); background: linear-gradient(135deg,rgba(255,116,0,.09),rgba(255,255,255,.025)); }
.signal-setup-summary { display: grid; grid-template-columns: minmax(0,1fr); gap: 5px; padding: 7px 9px; }
.signal-setup-heading { min-width: 0; }
.signal-setup-heading strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #ffb36c; font-weight: 600; }
.signal-setup-brief { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: 8px; padding-top: 2px; }
.signal-setup-brief b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: rgba(255,255,255,.88); font-size: var(--vasc-font-12); font-weight: 500; font-variant-numeric: tabular-nums; }
.signal-setup-brief b:last-child { text-align: right; }
.signal-setup-body { padding: 0 9px 8px; border-top: 1px solid rgba(255,255,255,.06); }
.signal-setup-profile p { margin: 7px 0 0; color: rgba(255,255,255,.76); }
.roll-column { position: relative; min-height: 0; flex: 1; padding: 4px; perspective: 1200px; }
.chart-stream { position: relative; width: 100%; height: 100%; overflow: hidden; outline: none; }
.chart-slide { position: absolute; inset: 0; height: 100%; opacity: var(--roll-opacity,0); filter: blur(var(--roll-blur,1px)); pointer-events: none; transform: translateY(var(--roll-y,0%)) scale(var(--roll-scale,.84)) rotateX(var(--roll-tilt,0deg)); transform-origin: center; transition: transform var(--transition),opacity 320ms ease,filter 320ms ease; will-change: transform,opacity; }
.chart-slide.is-neighbor { z-index: 1; }
.chart-slide.is-focus { z-index: 3; opacity: 1; filter: none; pointer-events: auto; transform: none; will-change: auto; }
.trade-chart-stage { width: 100%; height: 100%; min-height: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.10); border-radius: 13px; }
.trade-direction-badge { --direction-tone: #8294a8; position: absolute; z-index: 6; top: 12px; left: 15px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border: 1px solid color-mix(in srgb,var(--direction-tone) 42%,transparent); border-radius: 999px; background: rgba(2,13,24,.82); box-shadow: 0 6px 18px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.04); backdrop-filter: blur(8px); color: var(--direction-tone); font-size: var(--vasc-font-10); font-weight: 700; letter-spacing: .09em; pointer-events: none; }
.trade-direction-badge.long { --direction-tone: #27e08a; }
.trade-direction-badge.short { --direction-tone: #ff5c6c; }
.trade-direction-badge i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; box-shadow: 0 0 9px currentColor; }
.chart-window-switch { position: absolute; z-index: 7; top: 10px; left: 116px; display: inline-flex; gap: 3px; padding: 3px; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; background: rgba(2,13,24,.84); box-shadow: 0 6px 18px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.035); backdrop-filter: blur(8px); }
.chart-window-switch button { min-width: 47px; padding: 4px 8px; border: 1px solid transparent; border-radius: 999px; background: transparent; color: rgba(205,218,231,.62); font: 650 var(--vasc-font-10)/1.1 Arimo; letter-spacing: .045em; cursor: pointer; }
.chart-window-switch button:hover { color: #fff; }
.chart-window-switch button.is-active { border-color: rgba(255,116,0,.72); background: rgba(255,116,0,.16); color: #ffb36c; }
.chart-window-switch button:focus-visible { outline: 2px solid #ff7400; outline-offset: 1px; }
.decision-overlay[hidden] { display: none; }
.decision-overlay { position: fixed; z-index: 1200; inset: 0; display: grid; place-items: center; padding: 28px; background: rgba(1,7,14,.72); backdrop-filter: blur(7px); }
.decision-dialog { width: min(1080px,94vw); max-height: min(820px,90vh); display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(255,116,0,.38); border-radius: 18px; background: linear-gradient(145deg,#071a2d 0%,#03101e 64%,#071522 100%); box-shadow: 0 30px 90px rgba(0,0,0,.56),inset 0 1px 0 rgba(255,255,255,.05); outline: none; }
.decision-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 19px; border-bottom: 1px solid rgba(255,255,255,.10); background: rgba(2,15,28,.72); }
.decision-dialog-head h2 { margin: 4px 0 0; color: #fff; font-size: var(--vasc-font-20); font-weight: 520; }
.decision-dialog-kicker { color: #ff9d55; font-size: var(--vasc-font-12); font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.decision-close { width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; background: rgba(255,255,255,.035); color: rgba(255,255,255,.82); font-size: var(--vasc-font-20); line-height: 1; cursor: pointer; }
.decision-close:hover { border-color: #ff7400; color: #fff; }
.decision-close:focus-visible { outline: 2px solid #ff7400; outline-offset: 2px; }
.decision-dialog-content { min-height: 0; overflow-y: auto; padding: 15px; scrollbar-width: thin; scrollbar-color: rgba(255,116,0,.65) rgba(255,255,255,.04); }
.decision-section { --explain-tone: #8294a8; padding: 15px; border: 1px solid rgba(255,255,255,.09); border-radius: 13px; }
.decision-section+.decision-section { margin-top: 13px; }
.decision-section.long { --explain-tone: #27e08a; }
.decision-section.short { --explain-tone: #ff5c6c; }
.decision-section.blocked { --explain-tone: #ff9b45; }
.decision-section.monitor { --explain-tone: #62b8ff; }
.decision-section.primary { background: linear-gradient(145deg,color-mix(in srgb,var(--explain-tone) 8%,rgba(3,18,32,.86)),rgba(3,18,32,.86)); }
.decision-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.decision-section-head span { color: rgba(190,202,216,.68); font-size: var(--vasc-font-10); font-weight: 650; letter-spacing: .09em; text-transform: uppercase; }
.decision-proof-head span { color: rgba(190,202,216,.68); font-size: var(--vasc-font-10); font-weight: 650; letter-spacing: .09em; text-transform: uppercase; }
.decision-section-head h3 { margin: 4px 0 0; color: #fff; font-size: var(--vasc-font-20); font-weight: 520; }
.decision-section-head b { padding: 6px 10px; border: 1px solid color-mix(in srgb,var(--explain-tone) 42%,transparent); border-radius: 999px; color: var(--explain-tone); font-size: var(--vasc-font-12); font-weight: 700; letter-spacing: .04em; }
.decision-summary { margin: 12px 0; color: rgba(242,247,252,.9); font-size: var(--vasc-font-14); line-height: 1.5; }
.decision-facts { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); overflow: hidden; border: 1px solid rgba(255,255,255,.08); border-radius: 9px; background: rgba(0,0,0,.12); }
.decision-facts>div { min-width: 0; padding: 10px; }
.decision-facts>div+div { border-left: 1px solid rgba(255,255,255,.07); }
.decision-facts small { display: block; }
.decision-facts strong { display: block; }
.decision-facts small { color: rgba(190,202,216,.62); font-size: var(--vasc-font-10); text-transform: uppercase; letter-spacing: .055em; }
.decision-facts strong { margin-top: 4px; overflow: hidden; text-overflow: ellipsis; color: #fff; font-size: var(--vasc-font-12); font-weight: 520; white-space: nowrap; }
.decision-proof-head { display: flex; align-items: center; justify-content: space-between; margin: 13px 1px 8px; }
.decision-proof-head time { color: rgba(255,255,255,.62); font-size: var(--vasc-font-10); }
.decision-setup-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.decision-setup { min-width: 0; padding: 10px; border: 1px solid rgba(255,255,255,.07); border-radius: 9px; background: rgba(255,255,255,.025); }
.decision-setup.passed { border-color: rgba(39,224,138,.28); background: rgba(39,224,138,.055); }
.decision-setup.failed { border-color: rgba(255,92,108,.14); }
.decision-setup header { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 8px; }
.decision-setup header span { color: #ff9d55; font-size: var(--vasc-font-10); font-weight: 700; }
.decision-setup header strong { overflow: hidden; text-overflow: ellipsis; color: #fff; font-size: var(--vasc-font-12); font-weight: 520; white-space: nowrap; }
.decision-setup header i { color: #ff5c6c; font-size: var(--vasc-font-16); font-style: normal; }
.decision-setup.passed header i { color: #27e08a; }
.decision-setup p { margin: 6px 0 0; color: rgba(210,220,231,.72); font-size: var(--vasc-font-12); line-height: 1.4; }
.decision-proof-note { margin: 10px 1px 0; color: rgba(190,202,216,.58); font-size: var(--vasc-font-10); line-height: 1.45; }
.decision-open { overflow: hidden; }
.roll-button { position: absolute; left: 50%; z-index: 8; width: 30px; height: 30px; padding: 0; transform: translateX(-50%); border: 1px solid rgba(255,255,255,.20); border-radius: 50%; background: rgba(255,255,255,.08); color: rgba(255,235,219,.72); cursor: pointer; }
.roll-button:hover { outline: none; border-color: rgba(255,116,0,.58); background: rgba(255,116,0,.18); }
.roll-button:focus-visible { outline: none; border-color: rgba(255,116,0,.58); background: rgba(255,116,0,.18); }
.roll-button:disabled { opacity: .16; cursor: default; }
.roll-previous { top: 1px; }
.roll-next { bottom: 1px; }
.roll-button span { position: absolute; left: 9px; width: 10px; height: 10px; border-top: 2px solid currentColor; border-left: 2px solid currentColor; }
.roll-previous span { top: 10px; transform: rotate(45deg); }
.roll-next span { top: 6px; transform: rotate(225deg); }
.visually-hidden { position: absolute!important; width: 1px!important; height: 1px!important; padding: 0!important; margin: -1px!important; overflow: hidden!important; clip: rect(0,0,0,0)!important; white-space: nowrap!important; border: 0!important; }
@media(max-width:1100px) and (min-width:901px) {
  .rui-layout { grid-template-columns: 320px minmax(0,1fr); gap: 6px; padding: 8px; }
  .workspace-upper { grid-template-columns: minmax(0,1fr) 220px; }
}
@media(max-width:900px) {
  .rui-shell { padding: 0; }
  .rui-surface { height: auto; min-height: 0; border: 0; border-radius: 0; }
  .rui-layout { grid-template-columns: 1fr; height: auto; padding: 6px; }
  .asset-panel { max-height: 330px; }
  .chart-workspace { height: 720px; }
  .workspace-upper { grid-template-columns: minmax(0,1fr) 220px; }
  .rui-layout.is-backtest .asset-panel { height: 720px; max-height: none; }
  .rui-layout.is-backtest .backtest-table-head { min-width: 740px; }
  .rui-layout.is-backtest .backtest-row { min-width: 740px; }
  .rui-layout.is-backtest .backtest-total { min-width: 740px; }
  .decision-dialog { width: 96vw; }
  .decision-facts { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .decision-facts>div:nth-child(4) { border-left: 0; }
  .decision-facts>div:nth-child(n+4) { border-top: 1px solid rgba(255,255,255,.07); }
}
@media(max-width:640px) {
  .rui-layout { gap: 6px; padding: 4px; }
  .asset-panel { border-radius: 14px; }
  .chart-workspace { border-radius: 14px; }
  .asset-panel { max-height: 320px; }
  .panel-head { min-height: 50px; padding: 9px 11px; }
  .panel-title-line { gap: 7px; }
  .panel-head h1 { font-size: var(--vasc-font-16); }
  .panel-head .asset-unit { font-size: var(--vasc-font-10); }
  .cache-pill { padding: 4px 7px; font-size: var(--vasc-font-10); }
  .chart-workspace { height: auto; min-height: 0; }
  .workspace-head { min-height: 52px; padding: 7px 10px; flex-wrap: wrap; }
  .selected-asset { max-width: calc(100% - 8px); }
  .selected-logo { width: 22px; height: 22px; }
  .selected-asset h2 { font-size: var(--vasc-font-14); }
  .selected-kpis { width: 100%; justify-content: flex-end; }
  .selected-kpis>div { min-width: 84px; }
  .decision-toggle { max-width: 100%; min-height: 29px; padding: 5px 9px; font-size: var(--vasc-font-10); }
  .decision-toggle #decisionToggleLabel { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .chart-window-switch { top: 9px; left: 108px; }
  .chart-window-switch button { min-width: 42px; padding: 4px 6px; font-size: var(--vasc-font-10); }
  .workspace-dashboard { display: block; padding: 6px; }
  .workspace-upper { display: flex; flex-direction: column; gap: 7px; }
  .chart-zone { height: 410px; flex: 0 0 410px; order: 1; }
  .signal-info-panel { min-height: 0; order: 2; }
  .signal-info-content { padding: 6px; }
  .signal-card { min-height: 0; }
  .signal-card-top strong { max-width: none; }
  .portfolio-planner-panel { min-height: 170px; margin-top: 7px; }
  .signal-card-top { padding: 9px 11px; }
  .signal-live { font-size: var(--vasc-font-12); }
  .signal-pnl b { font-size: var(--vasc-font-16); }
  .signal-pnl span { font-size: var(--vasc-font-16); }
  .signal-quick-grid>div { padding: 8px 10px; }
  .signal-quick-grid small { font-size: var(--vasc-font-10); }
  .signal-level-grid small { font-size: var(--vasc-font-10); }
  .signal-meta-grid small { font-size: var(--vasc-font-10); }
  .signal-quick-grid strong { font-size: var(--vasc-font-12); }
  .signal-level-grid strong { font-size: var(--vasc-font-12); }
  .signal-progress { padding: 9px 10px; }
  .signal-meta-grid>div { padding: 7px 10px; }
  .signal-setup-summary { padding: 9px 10px; }
  .signal-setup-body { padding: 0 10px 10px; }
  .signal-setup-profile p { font-size: var(--vasc-font-12); }
  .asset-premium-overlay { padding: 30px 8px 14px; }
  .premium-gate-card { padding: 14px 12px; }
  .premium-gate-card strong { font-size: var(--vasc-font-14); }
  .premium-gate-card p { font-size: var(--vasc-font-10); }
  .portfolio-premium-gate { padding: 8px; }
  .portfolio-premium-gate .premium-gate-card { width: min(100%,310px); display: flex; padding: 12px; text-align: center; }
  .portfolio-premium-gate .premium-gate-badge { margin-left: 0; margin-right: 0; }
  .portfolio-premium-gate .premium-gate-card strong { margin-left: 0; margin-right: 0; }
  .portfolio-premium-gate .premium-gate-card p { margin-left: 0; margin-right: 0; }
  .portfolio-premium-gate .premium-gate-card a { margin-left: 0; margin-right: 0; }
  .portfolio-premium-gate .premium-gate-card strong { margin-top: 8px; }
  .portfolio-premium-gate .premium-gate-card p { margin-top: 6px; }
  .portfolio-premium-gate .premium-gate-card a { margin-top: 10px; }
  .backtest-premium-gate { min-height: 225px; padding: 12px; }
  .rui-layout.is-backtest .asset-panel { height: auto; min-height: calc(100dvh - 8px); max-height: none; }
  .rui-layout.is-backtest .panel-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; min-height: 0; padding: 10px 11px; }
  .rui-layout.is-backtest .panel-title-line { grid-column: 1/-1; width: 100%; justify-content: space-between; }
  .rui-layout.is-backtest .backtest-periods { grid-column: 1/-1; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); width: 100%; gap: 5px; margin: 0; }
  .rui-layout.is-backtest .backtest-periods button { min-width: 0; padding: 7px 3px; font-size: var(--vasc-font-10); }
  .rui-layout.is-backtest .panel-head .cache-pill { grid-column: 1/-1; justify-self: end; margin: 0; }
  .rui-layout.is-backtest .backtest-toggle { flex: 0 0 auto; }
  .backtest-view { padding: 5px 6px 8px; overflow-x: hidden; }
  .rui-layout.is-backtest .backtest-table-head { display: none; }
  .rui-layout.is-backtest .backtest-row { min-width: 0; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px 5px; }
  .rui-layout.is-backtest .backtest-total { min-width: 0; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px 5px; }
  .backtest-row { min-height: 0; margin-bottom: 5px; padding: 9px 8px; border-color: rgba(255,255,255,.055); background: rgba(255,255,255,.025); }
  .backtest-row:nth-child(even) { background: linear-gradient(135deg,rgba(17,52,82,.58),rgba(11,40,68,.46)); }
  .backtest-row .asset-identity { grid-column: 1/-1; padding-bottom: 7px; border-bottom: 1px solid rgba(255,255,255,.08); }
  .backtest-row .asset-name strong { font-size: var(--vasc-font-12); }
  .backtest-cell { min-width: 0; text-align: left; font-size: var(--vasc-font-12); }
  .backtest-cell::before { display: block; margin-bottom: 3px; color: rgba(255,235,219,.46); font-size: var(--vasc-font-10); letter-spacing: .06em; text-transform: uppercase; }
  .backtest-row>.backtest-cell:nth-child(2)::before { content: "Trades"; }
  .backtest-total>.backtest-cell:nth-child(2)::before { content: "Trades"; }
  .backtest-row>.backtest-cell:nth-child(3)::before { content: "TP"; }
  .backtest-total>.backtest-cell:nth-child(3)::before { content: "TP"; }
  .backtest-row>.backtest-cell:nth-child(4)::before { content: "SL"; }
  .backtest-total>.backtest-cell:nth-child(4)::before { content: "SL"; }
  .backtest-row>.backtest-cell:nth-child(5)::before { content: "Winrate"; }
  .backtest-total>.backtest-cell:nth-child(5)::before { content: "Winrate"; }
  .backtest-row>.backtest-cell:nth-child(6)::before { content: "TP $"; }
  .backtest-total>.backtest-cell:nth-child(6)::before { content: "TP $"; }
  .backtest-row>.backtest-cell:nth-child(7)::before { content: "SL $"; }
  .backtest-total>.backtest-cell:nth-child(7)::before { content: "SL $"; }
  .backtest-row>.backtest-cell:nth-child(8)::before { content: "Gesamt $"; }
  .backtest-total>.backtest-cell:nth-child(8)::before { content: "Gesamt $"; }
  .backtest-history-divider { height: auto; min-height: 32px; margin: 4px 2px; font-size: var(--vasc-font-10); text-align: center; }
  .backtest-total { position: sticky; bottom: 0; z-index: 3; min-height: 0; padding: 9px 8px; border-radius: 9px; background: linear-gradient(135deg,rgba(28,29,31,.98),rgba(4,22,39,.98)); box-shadow: 0 -8px 20px rgba(0,0,0,.28); }
  .backtest-total .total-label { grid-column: 1/-1; padding-bottom: 6px; border-bottom: 1px solid rgba(255,116,0,.30); }
  .backtest-total .backtest-cell { font-size: var(--vasc-font-12); }
  .backtest-total .backtest-grand-result { justify-self: start; }
  .decision-overlay { place-items: end center; padding: 0; background: rgba(1,7,14,.80); }
  .decision-dialog { width: 100%; max-height: 94dvh; border-width: 1px 0 0; border-radius: 18px 18px 0 0; }
  .decision-dialog-head { position: sticky; top: 0; z-index: 2; gap: 10px; padding: 12px 13px; }
  .decision-dialog-head h2 { margin-top: 3px; font-size: var(--vasc-font-16); line-height: 1.2; }
  .decision-dialog-kicker { font-size: var(--vasc-font-10); }
  .decision-close { flex: 0 0 auto; width: 40px; height: 40px; font-size: var(--vasc-font-22); }
  .decision-dialog-content { padding: 9px; }
  .decision-section { padding: 11px; border-radius: 11px; }
  .decision-section-head { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; }
  .decision-section-head h3 { font-size: var(--vasc-font-16); line-height: 1.25; }
  .decision-section-head b { justify-self: start; padding: 5px 8px; font-size: var(--vasc-font-10); }
  .decision-summary { margin: 10px 0; font-size: var(--vasc-font-14); line-height: 1.45; }
  .decision-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .decision-facts>div { padding: 9px; }
  .decision-facts>div:nth-child(odd) { border-left: 0; }
  .decision-facts>div:nth-child(even) { border-left: 1px solid rgba(255,255,255,.07); }
  .decision-facts>div:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.07); }
  .decision-facts small { font-size: var(--vasc-font-10); }
  .decision-facts strong { font-size: var(--vasc-font-12); white-space: normal; }
  .decision-proof-head { align-items: flex-end; gap: 8px; }
  .decision-proof-head time { text-align: right; }
  .decision-setup-grid { grid-template-columns: 1fr; }
  .decision-setup { padding: 10px; }
  .decision-setup header strong { white-space: normal; }
  .decision-setup p { font-size: var(--vasc-font-12); }
  .decision-proof-note { font-size: var(--vasc-font-12); }
}
@media(prefers-reduced-motion:reduce) {
  .asset-row { transition: none; }
  .chart-slide { transition: none; }
  .asset-row:hover { transform: none; }
}
.portfolio-planner-head { justify-content: space-between; gap: 10px; }
.portfolio-planner-head h3 { flex: 0 0 auto; }
.portfolio-progress-host { min-width: 0; flex: 1; margin: 0 8px; }
.portfolio-progress-host .portfolio-progress { margin: 0; }
.portfolio-progress-host .portfolio-progress li::after { min-width: 12px; }
.portfolio-planner-content { min-height: 0; height: calc(100% - 36px); padding: 7px 9px; overflow: hidden; }
.portfolio-planner-loading { height: 100%; display: grid; place-items: center; color: rgba(255,235,219,.55); }
.portfolio-progress { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; margin: 0 0 6px; padding: 0; list-style: none; }
.portfolio-progress li { display: flex; align-items: center; gap: 5px; min-width: 0; white-space: nowrap; }
.portfolio-progress li::after { height: 1px; content: ""; flex: 1; background: rgba(255,255,255,.10); }
.portfolio-progress li:last-child::after { display: none; }
.portfolio-progress li span { display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; }
.portfolio-progress li.is-current { color: #fff; }
.portfolio-progress li.is-current span { border-color: #ff7400; background: rgba(255,116,0,.17); color: #ffb06c; }
.portfolio-progress li.is-complete { color: rgba(49,240,138,.72); }
.portfolio-progress li.is-complete span { border-color: rgba(49,240,138,.48); background: rgba(49,240,138,.10); color: #31f08a; }
.portfolio-step-card { min-height: 0; display: grid; grid-template-columns: minmax(180px,1.25fr) minmax(240px,1.8fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.08); border-radius: 10px; }
.portfolio-step-copy { min-width: 0; }
.portfolio-step-copy span { display: block; }
.portfolio-step-copy strong { display: block; }
.portfolio-step-copy span { color: #ff9f51; text-transform: uppercase; }
.portfolio-step-copy strong { margin-top: 3px; color: #fff; }
.portfolio-step-copy small { margin-top: 3px; }
.portfolio-money-field { min-width: 0; }
.portfolio-input-field { min-width: 0; }
.portfolio-money-field>span { display: block; margin-bottom: 4px; text-transform: uppercase; letter-spacing: .06em; }
.portfolio-input-field>span { display: block; margin-bottom: 4px; text-transform: uppercase; letter-spacing: .06em; }
.portfolio-money-field>div { display: grid; grid-template-columns: minmax(0,1fr) auto; overflow: hidden; border: 1px solid rgba(255,255,255,.16); border-radius: 8px; background: rgba(0,0,0,.22); }
.portfolio-money-field input { width: 100%; height: 31px; padding: 6px 9px; border: 0; background: transparent; color: #fff; font-variant-numeric: tabular-nums; outline: none; }
.portfolio-input-field input { width: 100%; height: 31px; padding: 6px 9px; color: #fff; font-variant-numeric: tabular-nums; outline: none; }
.portfolio-money-field b { display: grid; place-items: center; padding: 0 10px; border-left: 1px solid rgba(255,255,255,.10); color: #ffb16f; }
.portfolio-money-field>div:focus-within { border-color: #ff7400; box-shadow: 0 0 0 1px rgba(255,116,0,.20); }
.portfolio-input-field input:focus { border-color: #ff7400; box-shadow: 0 0 0 1px rgba(255,116,0,.20); }
.portfolio-mode-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
.portfolio-mode-grid button { min-width: 0; padding: 6px 7px; border: 1px solid rgba(255,255,255,.11); border-radius: 8px; background: rgba(0,0,0,.17); color: rgba(255,255,255,.72); cursor: pointer; text-align: left; }
.portfolio-mode-grid button:hover { outline: none; border-color: rgba(255,116,0,.48); }
.portfolio-mode-grid button:focus-visible { outline: none; border-color: rgba(255,116,0,.48); }
.portfolio-mode-grid button.is-selected { border-color: #ff7400; background: rgba(255,116,0,.14); color: #fff; }
.portfolio-mode-grid strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portfolio-mode-grid small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portfolio-mode-grid small { margin-top: 2px; }
.portfolio-step-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
.portfolio-action { border: 1px solid #ff861d; border-radius: 999px; background: linear-gradient(135deg,#ff7400,#ff9a3d); color: #06111b; white-space: nowrap; cursor: pointer; }
.portfolio-action.secondary { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.04); color: rgba(255,255,255,.72); }
.portfolio-action:disabled { opacity: .32; cursor: not-allowed; }
.portfolio-action:hover:not(:disabled) { outline: 2px solid rgba(255,255,255,.74); outline-offset: 1px; filter: brightness(1.06); }
.portfolio-action:focus-visible:not(:disabled) { outline: 2px solid rgba(255,255,255,.74); outline-offset: 1px; filter: brightness(1.06); }
.portfolio-selection-result { display: flex; align-items: center; gap: 7px; min-height: 38px; padding: 6px 9px; border: 1px solid rgba(255,255,255,.10); border-radius: 8px; background: rgba(0,0,0,.14); }
.portfolio-weight-total { align-items: center; min-height: 38px; padding: 6px 9px; border: 1px solid rgba(255,255,255,.10); border-radius: 8px; background: rgba(0,0,0,.14); }
.portfolio-selection-result b { color: #ffb16f; font-weight: 550; }
.portfolio-selection-result span { color: rgba(255,255,255,.68); }
.portfolio-weight-total { display: grid; grid-template-columns: auto auto; gap: 2px 8px; }
.portfolio-weight-total span { color: rgba(255,255,255,.58); text-transform: uppercase; }
.portfolio-weight-total strong { justify-self: end; color: #fff; font-weight: 550; }
.portfolio-weight-total small { grid-column: 1/-1; }
.portfolio-weight-total.valid { border-color: rgba(49,240,138,.32); }
.portfolio-weight-total.valid strong { color: #31f08a; }
.portfolio-weight-total.invalid strong { color: #ff9f51; }
.portfolio-final-step { grid-template-columns: minmax(180px,1fr) minmax(135px,.72fr) minmax(180px,1fr) auto; }
.portfolio-input-field input { border: 1px solid rgba(255,255,255,.15); border-radius: 8px; background: rgba(0,0,0,.20); color-scheme: dark; }
.portfolio-review { display: none; }
.portfolio-form-status { grid-column: 1/-1; margin-top: -4px; color: #ff7d88; }
.asset-row-shell { position: relative; }
.asset-row-shell .asset-row { position: relative; z-index: 1; }
.asset-row-shell.has-portfolio-control .asset-row { grid-template-columns: minmax(0,1fr) 70px 92px 62px; }
.portfolio-asset-control { position: absolute; z-index: 3; top: 50%; right: 162px; width: 66px; display: flex; align-items: center; justify-content: flex-end; gap: 3px; transform: translateY(-50%); }
.portfolio-asset-check { width: 19px; height: 19px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.26); border-radius: 5px; background: rgba(1,14,26,.90); color: #041420; font-size: var(--vasc-font-12); font-weight: 700; cursor: pointer; }
.portfolio-asset-check.is-selected { border-color: #31f08a; background: #31f08a; box-shadow: 0 0 10px rgba(49,240,138,.26); }
.portfolio-asset-check:focus-visible { outline: 2px solid #ff7400; outline-offset: 1px; }
.portfolio-asset-control input { width: 48px; padding: 2px 3px; border: 1px solid rgba(255,116,0,.52); border-radius: 5px; background: rgba(1,14,26,.94); color: #fff; text-align: right; outline: none; }
.portfolio-asset-control input:focus { border-color: #ff9a3d; box-shadow: 0 0 0 1px rgba(255,116,0,.20); }
.portfolio-asset-control>span { color: #ffb16f; }
.portfolio-saved-card { height: 100%; display: grid; align-items: center; gap: 11px; padding: 7px 10px; border: 1px solid rgba(49,240,138,.19); border-radius: 10px; }
.portfolio-saved-state { display: flex; align-items: center; gap: 5px; color: #31f08a; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.portfolio-saved-state i { width: 7px; height: 7px; border-radius: 50%; background: #31f08a; box-shadow: 0 0 9px rgba(49,240,138,.68); }
.portfolio-saved-main strong { display: block; }
.portfolio-saved-main small { display: block; }
.portfolio-saved-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #fff; font-weight: 550; }
.portfolio-saved-main small { margin-top: 3px; }
.portfolio-saved-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); overflow: hidden; border: 1px solid rgba(255,255,255,.08); border-radius: 8px; }
.portfolio-saved-facts span { min-width: 0; }
.portfolio-saved-facts span+span { border-left: 1px solid rgba(255,255,255,.07); }
.portfolio-saved-facts small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portfolio-saved-facts b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portfolio-saved-facts small { text-transform: uppercase; }
.portfolio-saved-facts b { margin-top: 2px; color: #fff; }
.portfolio-edit-select span { display: block; text-transform: uppercase; }
.portfolio-edit-select select { width: 100%; border: 1px solid rgba(255,255,255,.14); border-radius: 7px; background: #07192a; color: #fff; }
.portfolio-overview { min-width: 0; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.13); border-radius: 20px; overflow: hidden; }
.portfolio-overview-head { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.10); }
.portfolio-overview-head span { color: #ff9f51; text-transform: uppercase; letter-spacing: .08em; }
.portfolio-overview-head h2 { margin: 3px 0 0; color: #fff; font-size: var(--vasc-font-16); font-weight: 550; }
.portfolio-overview-content { flex: 1; place-items: center; }
.portfolio-planner-loading { font-size: var(--vasc-font-12); }
.portfolio-progress li { color: rgba(211,222,234,.56); }
.portfolio-progress li span { width: 18px; height: 18px; }
.portfolio-step-copy small { color: rgba(210,221,232,.70); }
.portfolio-money-field>span { color: rgba(255,235,219,.66); }
.portfolio-input-field>span { color: rgba(255,235,219,.66); }
.portfolio-mode-grid small { color: rgba(210,221,232,.64); }
.portfolio-action { min-height: 31px; padding: 6px 11px; }
.portfolio-weight-total small { color: rgba(255,255,255,.62); }
.portfolio-asset-control input { height: 23px; font-size: var(--vasc-font-12); }
.portfolio-asset-control>span { font-size: var(--vasc-font-10); }
.portfolio-saved-main small { color: rgba(210,221,232,.68); }
.portfolio-saved-facts span { padding: 6px 8px; }
.portfolio-saved-facts small { color: rgba(210,221,232,.62); }
.portfolio-edit-select span { margin-bottom: 4px; color: rgba(255,235,219,.66); }
.portfolio-edit-select select { height: 31px; padding: 4px 7px; }
.portfolio-edit-select select option { font-size: var(--vasc-font-12); }
.portfolio-saved-state { font-size: var(--vasc-font-12); }
.portfolio-edit-select span { font-size: var(--vasc-font-12); }
.portfolio-overview-head span { font-size: var(--vasc-font-12); }
@media(max-width:1100px) and (min-width:641px) {
  .portfolio-planner-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 10px; }
  .portfolio-progress-host { grid-column: 1/-1; width: 100%; margin: 0; }
  .portfolio-step-card { grid-template-columns: minmax(150px,1fr) minmax(230px,1.5fr) auto; }
  .portfolio-step-copy small { display: none; }
  .portfolio-saved-card { position: relative; grid-template-columns: minmax(120px,1fr) minmax(250px,1.7fr) minmax(118px,.8fr); gap: 8px; padding-left: 10px; }
  .portfolio-saved-state { position: absolute; left: 10px; top: 8px; }
  .portfolio-saved-main { padding-top: 21px; }
  .asset-row-shell.has-portfolio-control .asset-row { grid-template-columns: minmax(0,1fr) 58px 76px 52px; }
  .portfolio-asset-control { right: 128px; width: 54px; }
  .portfolio-asset-control input { width: 40px; }
}
@media(max-width:640px) {
  .portfolio-planner-panel { min-height: 330px!important; }
  .portfolio-planner-content { height: auto; min-height: 292px; padding: 7px; }
  .portfolio-progress { grid-template-columns: repeat(4,1fr); gap: 3px; }
  .portfolio-progress li { display: grid; justify-items: center; gap: 2px; font-size: var(--vasc-font-10); text-align: center; }
  .portfolio-progress li::after { display: none; }
  .portfolio-step-card { grid-template-columns: 1fr; align-content: start; gap: 9px; padding: 10px; }
  .portfolio-step-copy strong { font-size: var(--vasc-font-14); }
  .portfolio-step-copy small { font-size: var(--vasc-font-10); }
  .portfolio-mode-grid { grid-template-columns: 1fr; }
  .portfolio-mode-grid button { padding: 8px; }
  .portfolio-mode-grid strong { font-size: var(--vasc-font-12); }
  .portfolio-step-actions { justify-content: stretch; }
  .portfolio-action { flex: 1; min-height: 34px; }
  .portfolio-final-step { grid-template-columns: 1fr; }
  .portfolio-saved-card { height: auto; grid-template-columns: 1fr; gap: 9px; padding: 11px; }
  .portfolio-saved-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .portfolio-saved-facts span:nth-child(3) { border-left: 0; border-top: 1px solid rgba(255,255,255,.07); }
  .portfolio-saved-facts span:nth-child(4) { border-top: 1px solid rgba(255,255,255,.07); }
  .asset-row-shell.has-portfolio-control .asset-row { grid-template-columns: minmax(0,1fr) 56px 68px 48px; }
  .portfolio-asset-control { right: 116px; width: 52px; }
  .portfolio-asset-control input { width: 39px; }
  .portfolio-overview { min-height: calc(100dvh - 8px); border-radius: 14px; }
  .portfolio-overview-head { padding: 9px 11px; }
}
.portfolio-active-lock { display: grid; gap: 2px; }
.portfolio-active-lock span { color: #31f08a; font-size: var(--vasc-font-10); font-weight: 650; text-transform: uppercase; }
.portfolio-active-lock small { color: rgba(210,221,232,.52); font-size: var(--vasc-font-10); }
.portfolio-active-edit { height: 100%; display: grid; grid-template-columns: minmax(280px,1.2fr) minmax(320px,1.6fr) auto; align-items: center; gap: 10px; padding: 9px 11px; border: 1px solid rgba(49,240,138,.28); border-radius: 10px; }
.portfolio-active-edit-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; grid-column: 1/-1; }
.portfolio-active-edit-head span { display: block; }
.portfolio-active-edit-head strong { display: block; }
.portfolio-active-edit-head small { display: block; }
.portfolio-active-edit-head>div>span { color: #31f08a; font-size: var(--vasc-font-12); font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.portfolio-active-edit-head strong { margin-top: 2px; color: #fff; font-size: var(--vasc-font-12); }
.portfolio-active-edit-head small { margin-top: 2px; color: rgba(210,221,232,.68); font-size: var(--vasc-font-12); }
.portfolio-active-capital { display: flex; gap: 6px; }
.portfolio-active-capital span { min-width: 118px; padding: 5px 8px; border: 1px solid rgba(255,255,255,.1); border-radius: 7px; }
.portfolio-active-capital small { display: block; }
.portfolio-active-capital b { display: block; }
.portfolio-active-capital small { color: rgba(210,221,232,.58); font-size: var(--vasc-font-10); }
.portfolio-active-capital b { margin-top: 2px; color: #fff; font-size: var(--vasc-font-12); }
.portfolio-reserve-field>span { display: block; margin-bottom: 4px; color: rgba(255,235,219,.7); font-size: var(--vasc-font-12); }
.portfolio-reserve-field>div { display: grid; grid-template-columns: minmax(0,1fr) auto; overflow: hidden; border: 1px solid rgba(255,116,0,.45); border-radius: 8px; background: rgba(0,0,0,.2); }
.portfolio-reserve-field input { width: 100%; height: 32px; padding: 5px 8px; border: 0; background: transparent; color: #fff; font-size: var(--vasc-font-12); outline: none; }
.portfolio-reserve-field b { display: grid; place-items: center; padding: 0 9px; border-left: 1px solid rgba(255,255,255,.1); color: #ffb16f; font-size: var(--vasc-font-10); }
.portfolio-edit-lease { grid-column: 1/-1; color: rgba(210,221,232,.58); font-size: var(--vasc-font-10); }
.rui-surface.has-portfolio-edit { height: auto; min-height: clamp(780px,calc(100dvh - 40px),940px); overflow: visible; }
.rui-surface.has-portfolio-edit .rui-layout { height: auto; min-height: inherit; }
.rui-surface.has-portfolio-edit .workspace-dashboard { grid-template-rows: minmax(520px,3fr) auto; }
.rui-surface.has-portfolio-edit .portfolio-planner-panel { height: auto; overflow: visible; }
.rui-surface.has-portfolio-edit .portfolio-planner-content { height: auto; overflow: visible; }
.rui-surface.has-portfolio-edit .portfolio-active-edit { height: auto; align-items: start; }
.rui-surface.has-portfolio-edit .portfolio-active-edit .portfolio-step-actions { grid-column: 1/-1; justify-content: flex-end; }
.portfolio-active-edit-head .portfolio-edit-lease { margin-top: 5px; color: #31f08a; font-weight: 650; }
@media(max-width:1530px) and (min-width:1101px) {
  .portfolio-active-edit { grid-template-columns: minmax(220px,1.2fr) minmax(260px,1.6fr) auto; }
}
@media(max-width:640px) {
  .portfolio-planner-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; padding-bottom: 7px; }
  .portfolio-progress-host { grid-column: 1/-1; width: 100%; margin: 0; }
  .portfolio-planner-content { min-height: 280px; }
  .portfolio-progress-host .portfolio-progress li { font-size: var(--vasc-font-10); }
}
@media(max-width:1100px) {
  .portfolio-active-edit { height: auto; grid-template-columns: 1fr; }
  .portfolio-active-edit-head { grid-template-columns: 1fr; }
  .portfolio-active-capital { flex-wrap: wrap; }
  .portfolio-active-edit .portfolio-step-actions { justify-content: flex-start; }
}
.asset-row-shell.has-portfolio-selection .asset-row { grid-template-columns: minmax(0,1fr) 78px 56px; padding-right: 39px; }
.asset-row-shell.has-portfolio-selection .portfolio-asset-control { right: 8px; width: 21px; justify-content: center; }
.portfolio-overview-content { display: block; padding: 8px 10px 10px; }
.portfolio-overview-head { background: rgba(1,13,24,.68); }
.portfolio-overview-identity { display: flex; align-items: baseline; gap: 11px; min-width: 0; }
.portfolio-overview-head .portfolio-overview-identity h2 { margin: 0; overflow: hidden; color: #fff; text-overflow: ellipsis; white-space: nowrap; }
.portfolio-overview-head .portfolio-overview-identity h2 span { color: #fff; font-size: inherit; text-transform: none; letter-spacing: 0; }
.portfolio-overview-head .portfolio-overview-identity small { color: rgba(205,220,234,.58); white-space: nowrap; }
.pov-shell { height: 100%; display: grid; color: #edf7ff; font-variant-numeric: tabular-nums; }
.pov-notice { display: flex; align-items: center; border: 1px solid rgba(72,151,208,.18); border-radius: 9px; background: linear-gradient(90deg,rgba(15,55,82,.54),rgba(6,26,44,.68)); color: rgba(218,231,242,.72); }
.pov-notice b { flex: 0 0 auto; color: #71c9ff; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.pov-grid { min-height: 0; display: grid; }
.pov-left { min-width: 0; min-height: 0; display: grid; }
.pov-right { min-width: 0; min-height: 0; display: grid; }
.pov-card { min-width: 0; min-height: 0; border: 1px solid rgba(104,159,202,.20); border-radius: 12px; overflow: hidden; box-shadow: inset 0 1px 0 rgba(255,255,255,.025); }
.pov-pending { align-self: start; padding: 24px; }
.pov-pending h3 { margin: 6px 0 8px; color: #fff; font-size: var(--vasc-font-16); font-weight: 560; }
.pov-pending p { max-width: 760px; margin: 0; color: rgba(218,231,242,.76); font-size: var(--vasc-font-12); line-height: 1.55; }
.pov-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; border-bottom: 1px solid rgba(255,255,255,.08); }
.pov-card-head h3 { margin: 0; color: #fff; font-weight: 550; }
.pov-kicker { color: #ff9a42; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.pov-total-caption { color: rgba(210,224,236,.58); text-transform: uppercase; letter-spacing: .06em; }
.pov-total-value { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.pov-total-value strong { color: #fff; font-weight: 540; letter-spacing: -.02em; }
.pov-total-value span { color: #31f08a; font-weight: 650; }
.pov-capital-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); overflow: hidden; border: 1px solid rgba(255,255,255,.075); border-radius: 8px; }
.pov-capital-grid div { min-width: 0; background: rgba(0,0,0,.12); }
.pov-capital-grid div+div { border-left: 1px solid rgba(255,255,255,.07); }
.pov-capital-grid small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pov-capital-grid b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pov-capital-grid small { color: rgba(204,221,235,.50); text-transform: uppercase; }
.pov-capital-grid b { color: #fff; font-weight: 540; }
.pov-result-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; color: rgba(220,232,242,.72); }
.pov-result-row strong { color: #fff; font-weight: 550; }
.pov-positive { color: #31f08a!important; }
.pov-negative { color: #ff5268!important; }
.pov-neutral { color: #d5e3ef!important; }
.pov-result-row.is-total { margin-top: 3px; border-top: 1px solid rgba(255,116,0,.55); border-bottom: 3px double rgba(49,240,138,.72); color: #fff; font-weight: 650; }
.pov-return-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.pov-return-grid div { border: 1px solid rgba(49,240,138,.16); border-radius: 7px; background: rgba(49,240,138,.055); }
.pov-return-grid small { display: block; }
.pov-return-grid strong { display: block; }
.pov-return-grid small { color: rgba(204,221,235,.52); }
.pov-return-grid strong { color: #31f08a; font-weight: 600; }
.pov-decision-summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: rgba(218,230,240,.65); }
.pov-decision-summary strong { color: #31f08a; font-weight: 620; }
.pov-strategy-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.pov-strategy { position: relative; min-width: 0; border: 1px solid rgba(255,255,255,.10); border-radius: 9px; background: rgba(0,0,0,.14); color: #fff; text-align: left; cursor: pointer; }
.pov-strategy:hover { outline: none; border-color: rgba(255,116,0,.65); }
.pov-strategy:focus-visible { outline: none; border-color: rgba(255,116,0,.65); }
.pov-strategy.is-selected { border-color: #ff7a0b; }
.pov-strategy span { display: block; }
.pov-strategy strong { display: block; }
.pov-strategy small { display: block; }
.pov-strategy span { color: #ffad68; font-weight: 650; }
.pov-strategy strong { font-weight: 560; }
.pov-strategy small { color: rgba(212,226,238,.60); }
.pov-strategy-state { color: rgba(213,227,238,.62); }
.pov-strategy-state b { color: #ffad68; font-weight: 600; }
.pov-allocation { display: grid; grid-template-rows: auto minmax(0,1fr); }
.pov-allocation-body { min-height: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: center; }
.pov-donut-block { min-width: 0; text-align: center; }
.pov-donut { position: relative; aspect-ratio: 1; margin: 0 auto; border-radius: 50%; background: var(--donut); box-shadow: 0 0 18px rgba(0,0,0,.22); }
.pov-donut::after { position: absolute; content: ""; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; background: #061728; }
.pov-donut-block>strong { display: block; color: #fff; font-weight: 550; }
.pov-allocation-legend { grid-column: 1/-1; display: flex; flex-wrap: wrap; justify-content: center; }
.pov-allocation-legend span { display: flex; align-items: center; color: rgba(210,225,237,.63); }
.pov-allocation-legend i { border-radius: 50%; background: var(--asset-color); }
.pov-chart-card { display: grid; grid-template-rows: auto minmax(0,1fr); }
.pov-chart-tools { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; min-width: 0; }
.pov-chart-card .pov-card-head { flex-wrap: wrap; gap: 8px; }
.pov-periods { display: flex; align-items: center; gap: 3px; }
.pov-chart-scope { display: flex; align-items: center; gap: 3px; }
.pov-periods button { border: 1px solid rgba(255,255,255,.10); border-radius: 999px; background: rgba(0,0,0,.13); color: rgba(218,230,240,.58); cursor: pointer; }
.pov-chart-scope button { border: 1px solid rgba(255,255,255,.10); border-radius: 999px; background: rgba(0,0,0,.13); color: rgba(218,230,240,.58); cursor: pointer; }
.pov-periods button:disabled { opacity: .28; cursor: not-allowed; }
.pov-periods button.is-active { border-color: #ff7400; background: rgba(255,116,0,.15); color: #fff; }
.pov-chart-scope button.is-active { border-color: #ff7400; background: rgba(255,116,0,.15); color: #fff; }
.pov-chart-scope button { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pov-chart-wrap { position: relative; min-height: 0; }
.pov-chart { width: 100%; height: 100%; }
.pov-chart-legend { position: absolute; z-index: 2; display: flex; pointer-events: none; }
.pov-chart-legend span { display: flex; align-items: center; color: rgba(215,228,239,.67); }
.pov-chart-legend i { height: 2px; background: var(--line-color); }
.pov-chart-legend .is-dashed i { height: 0; border-top: 1px dashed var(--line-color); background: transparent; }
.pov-assets { display: grid; grid-template-rows: auto minmax(0,1fr) auto; }
.pov-assets-body { min-height: 0; display: grid; grid-template-rows: auto minmax(0,1fr); overflow: hidden; }
.pov-assets-head { display: grid; grid-template-columns: minmax(125px,1.25fr) .62fr .62fr .9fr .86fr .86fr .7fr; align-items: center; gap: 6px; }
.pov-asset-row { display: grid; grid-template-columns: minmax(125px,1.25fr) .62fr .62fr .9fr .86fr .86fr .7fr; align-items: center; gap: 6px; }
.pov-assets-total { display: grid; grid-template-columns: minmax(125px,1.25fr) .62fr .62fr .9fr .86fr .86fr .7fr; align-items: center; gap: 6px; }
.pov-assets-head { color: rgba(203,219,232,.45); text-transform: uppercase; }
.pov-asset-rows { min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: rgba(255,116,0,.72) rgba(2,17,30,.55); }
.pov-asset-rows::-webkit-scrollbar { width: 7px; }
.pov-asset-rows::-webkit-scrollbar-track { background: rgba(2,17,30,.55); }
.pov-asset-rows::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(255,116,0,.72); }
.pov-asset-rows:focus-visible { outline: 1px solid rgba(255,116,0,.65); outline-offset: -1px; }
.pov-asset-row { width: 100%; border: 0; border-radius: 7px; background: transparent; color: #fff; text-align: right; cursor: pointer; }
.pov-asset-row:nth-child(odd) { background: rgba(39,79,109,.13); }
.pov-asset-row:hover { outline: none; background: rgba(50,103,142,.24); }
.pov-asset-row:focus-visible { outline: none; background: rgba(50,103,142,.24); }
.pov-asset-row.is-active { box-shadow: inset 3px 0 0 #ff7400; background: rgba(255,116,0,.09); }
.pov-asset-name { display: flex; align-items: center; min-width: 0; text-align: left; }
.pov-asset-name i { margin: 0 7px 0 2px; flex: 0 0 auto; border-radius: 50%; background: var(--asset-color); box-shadow: 0 0 7px color-mix(in srgb,var(--asset-color),transparent 45%); }
.pov-asset-name span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pov-assets-total { border-top: 1px solid rgba(255,116,0,.58); border-bottom: 3px double rgba(49,240,138,.72); color: #fff; text-align: right; }
.pov-assets-total strong:first-child { text-align: left; }
.pov-assets-total strong { font-weight: 650; }
.pov-preview-chip { border: 1px solid rgba(113,201,255,.18); border-radius: 999px; color: rgba(154,211,246,.62); white-space: nowrap; }
@media(max-width:1100px) and (min-width:721px) {
  .pov-grid { grid-template-columns: minmax(278px,34%) minmax(0,1fr); }
  .pov-allocation-body { padding-top: 3px; padding-bottom: 3px; }
  .pov-donut { width: 54px; }
  .pov-donut::after { inset: 9px; }
  .pov-allocation-legend { display: none; }
  .pov-donut-block>strong { margin-top: 2px; }
  .pov-assets-head { grid-template-columns: minmax(108px,1.1fr) .58fr .58fr .82fr .78fr .78fr .62fr; gap: 4px; }
  .pov-asset-row { grid-template-columns: minmax(108px,1.1fr) .58fr .58fr .82fr .78fr .78fr .62fr; gap: 4px; }
  .pov-assets-total { grid-template-columns: minmax(108px,1.1fr) .58fr .58fr .82fr .78fr .78fr .62fr; gap: 4px; }
  .pov-chart-scope button { max-width: 110px; }
}
@media(max-height:760px) and (min-width:721px) {
  .pov-notice { min-height: 28px; padding-top: 4px; padding-bottom: 4px; }
  .pov-grid { gap: 6px; }
  .pov-left { gap: 6px; }
  .pov-right { gap: 6px; }
  .pov-balance { padding-top: 6px; padding-bottom: 5px; }
  .pov-total-value strong { font-size: var(--vasc-font-16); }
  .pov-result-row { padding: 2px 1px; }
  .pov-return-grid { margin-top: 4px; }
  .pov-decision { padding-top: 6px; padding-bottom: 6px; }
  .pov-strategy { padding-top: 5px; padding-bottom: 5px; }
  .pov-donut { width: 70px; }
  .pov-donut::after { inset: 12px; }
}
@media(max-width:720px) {
  .portfolio-overview-content { overflow: auto; }
  .portfolio-overview-identity { display: block; }
  .portfolio-overview-head .portfolio-overview-identity small { display: block; margin-top: 2px; }
  .pov-shell { height: auto; }
  .pov-notice { align-items: flex-start; }
  .pov-notice b { margin-top: 1px; }
  .pov-grid { grid-template-columns: 1fr; }
  .pov-left { display: grid; grid-template-rows: none; }
  .pov-right { display: grid; grid-template-rows: none; }
  .pov-chart-card { min-height: 360px; }
  .pov-assets { min-height: 260px; }
  .pov-assets-head { grid-template-columns: minmax(108px,1.2fr) .65fr .78fr .75fr; }
  .pov-asset-row { grid-template-columns: minmax(108px,1.2fr) .65fr .78fr .75fr; }
  .pov-assets-total { grid-template-columns: minmax(108px,1.2fr) .65fr .78fr .75fr; }
  .pov-assets-head span:nth-child(3) { display: none; }
  .pov-assets-head span:nth-child(4) { display: none; }
  .pov-assets-head span:nth-child(5) { display: none; }
  .pov-asset-row>span:nth-child(3) { display: none; }
  .pov-asset-row>span:nth-child(4) { display: none; }
  .pov-asset-row>span:nth-child(5) { display: none; }
  .pov-assets-total>*:nth-child(3) { display: none; }
  .pov-assets-total>*:nth-child(4) { display: none; }
  .pov-assets-total>*:nth-child(5) { display: none; }
}
.portfolio-overview-content { overflow: visible; }
.portfolio-overview-head { min-height: 58px; padding: 9px 18px; }
.pov-shell { min-height: 822px; grid-template-rows: auto minmax(0,1fr); gap: 10px; }
.pov-notice { min-height: 45px; gap: 12px; padding: 8px 13px; font-size: var(--vasc-font-12); line-height: 1.42; }
.pov-notice b { font-size: var(--vasc-font-12); }
.pov-grid { gap: 10px; }
.pov-left { gap: 10px; }
.pov-right { gap: 10px; }
.pov-grid { grid-template-columns: minmax(360px,31.5%) minmax(0,1fr); }
.pov-left { grid-template-rows: auto auto minmax(250px,1fr); }
.pov-right { grid-template-rows: minmax(440px,57%) minmax(285px,1fr); }
.pov-card-head { min-height: 43px; padding: 8px 12px; }
.pov-preview-chip { padding: 4px 8px; font-size: var(--vasc-font-12); }
.pov-balance { padding: 11px 12px 10px; }
.pov-total-value { margin-top: 4px; }
.pov-capital-grid { margin-top: 10px; }
.pov-capital-grid div { padding: 8px 9px; }
.pov-capital-grid b { margin-top: 3px; }
.pov-result-list { margin-top: 9px; }
.pov-result-row { padding: 4px 1px; font-size: var(--vasc-font-12); }
.pov-result-row strong { font-size: var(--vasc-font-12); }
.pov-result-row.is-total { padding-top: 7px; }
.pov-result-row.is-total strong { font-size: var(--vasc-font-16); }
.pov-return-grid { gap: 7px; margin-top: 9px; }
.pov-return-grid div { padding: 7px 9px; }
.pov-return-grid small { font-size: var(--vasc-font-12); }
.pov-return-grid strong { margin-top: 3px; font-size: var(--vasc-font-16); }
.pov-decision { padding: 10px 11px 11px; }
.pov-decision-summary { margin-bottom: 8px; font-size: var(--vasc-font-12); }
.pov-decision-summary strong { font-size: var(--vasc-font-16); }
.pov-strategy-grid { gap: 8px; }
.pov-strategy { padding: 9px 10px; }
.pov-strategy strong { margin-top: 4px; }
.pov-strategy small { margin-top: 4px; }
.pov-strategy-state { min-height: 20px; margin-top: 7px; }
.pov-allocation-body { gap: 10px; padding: 12px 10px 10px; }
.pov-donut { width: 108px; }
.pov-donut::after { inset: 18px; }
.pov-donut-block>strong { margin-top: 8px; font-size: var(--vasc-font-14); }
.pov-donut-detail { display: block; margin-top: 3px; color: rgba(210,225,237,.68); font-size: var(--vasc-font-12); }
.pov-allocation-legend { gap: 5px 11px; margin-top: 6px; }
.pov-allocation-legend span { gap: 5px; font-size: var(--vasc-font-12); }
.pov-allocation-legend i { width: 8px; height: 8px; }
.pov-periods button { height: 30px; padding: 4px 9px; }
.pov-chart-scope button { height: 30px; padding: 4px 9px; }
.pov-chart-scope button { max-width: 180px; }
.pov-chart-wrap { padding: 0 6px 4px; }
.pov-chart { min-height: 350px; }
.pov-chart-legend { top: 10px; left: 17px; gap: 16px; }
.pov-chart-legend span { gap: 6px; }
.pov-chart-legend i { width: 22px; }
.pov-assets-head { padding: 7px 11px; font-size: var(--vasc-font-12); }
.pov-asset-rows { padding: 0 7px; }
.pov-asset-row { min-height: 41px; padding: 6px; }
.pov-asset-name i { width: 10px; height: 10px; margin-right: 8px; }
.pov-asset-name span { font-size: var(--vasc-font-12); }
.pov-asset-row>span:not(.pov-asset-name) { font-size: var(--vasc-font-12); }
.pov-assets-total { margin: 3px 7px 7px; padding: 7px 6px 5px; font-size: var(--vasc-font-12); }
.pov-assets-total .pov-positive { font-size: var(--vasc-font-14); }
.pov-assets-total .pov-negative { font-size: var(--vasc-font-14); }
.pov-assets-total .pov-neutral { font-size: var(--vasc-font-14); }
@media(max-width:1100px) and (min-width:721px) {
  .portfolio-overview-content { min-height: 892px; }
  .pov-shell { min-height: 872px; }
  .pov-grid { grid-template-columns: minmax(330px,35%) minmax(0,1fr); }
  .pov-total-value strong { font-size: var(--vasc-font-20); }
  .pov-capital-grid small { font-size: var(--vasc-font-10); }
  .pov-capital-grid b { font-size: var(--vasc-font-12); }
  .pov-allocation-body { padding: 10px 8px; }
  .pov-donut { width: 86px; }
  .pov-donut::after { inset: 14px; }
  .pov-allocation-legend { display: flex; }
  .pov-donut-block>strong { margin-top: 6px; font-size: var(--vasc-font-12); }
  .pov-donut-detail { font-size: var(--vasc-font-12); }
  .pov-assets-head { font-size: var(--vasc-font-10); }
  .pov-asset-row>span:not(.pov-asset-name) { font-size: var(--vasc-font-12); }
  .pov-asset-name span { font-size: var(--vasc-font-12); }
  .pov-chart-scope button { max-width: 130px; }
}
:root { --planner-surface: linear-gradient(145deg,#021324,#041c31); --planner-card: linear-gradient(145deg,rgba(2,20,38,.96),rgba(4,34,56,.88)); }
.rui-surface { height: auto; min-height: 0; }
.rui-layout { height: auto; align-items: start; }
.rui-layout>.asset-panel { background: var(--planner-surface); align-self: stretch; max-height: none; }
.chart-workspace { height: auto; min-height: 0; background: var(--planner-surface); }
.workspace-dashboard { display: flex; flex-direction: column; flex: none; }
.workspace-upper { display: flex; flex-direction: column; gap: 9px; }
.chart-zone { height: 580px; flex: 0 0 580px; }
.workspace-panel { background: var(--planner-card); }
.pov-card { background: var(--planner-card); }
.signal-info-panel { flex: none; }
.signal-info-content { overflow: visible; }
.signal-card { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); min-height: 0; }
.signal-card-top { grid-column: 1/-1; }
.signal-card-top strong { max-width: none; }
.signal-quick-grid { min-width: 0; }
.signal-progress { min-width: 0; }
.signal-level-grid { min-width: 0; }
.signal-meta-grid { min-width: 0; }
.signal-setup-profile { min-width: 0; }
.signal-progress { align-self: center; }
.signal-meta-grid { grid-column: 1; }
.signal-setup-profile { grid-column: 2/-1; }
.portfolio-planner-panel { flex: none; min-height: 150px; }
.portfolio-saved-card { grid-template-columns: auto minmax(0,1fr); }
.portfolio-saved-facts { grid-column: 1/-1; min-width: 0; }
.portfolio-edit-select { grid-column: 1/-1; min-width: 0; }
.portfolio-planner-head { flex-wrap: wrap; }
.portfolio-overview { grid-column: 1/-1; width: 100%; min-height: 0; border-color: rgba(255,116,0,.4); scroll-margin-top: 12px; }
.portfolio-planner-panel { scroll-margin-top: 12px; }
.portfolio-overview-content { min-height: 0; }
.portfolio-overview .pov-shell { height: auto; min-height: 0; }
.portfolio-overview .pov-grid { min-height: 820px; }
.rui-layout.is-backtest>.asset-panel { max-height: none; }
@media(max-width:1100px) {
  .rui-layout { grid-template-columns: minmax(0,1fr); }
  .rui-layout>.asset-panel { max-height: 360px; }
  .rui-layout.is-backtest>.asset-panel { height: auto; max-height: none; }
}
@media(max-width:720px) {
  .signal-card { grid-template-columns: minmax(0,1fr); }
  .signal-card-top { grid-column: 1; }
  .signal-meta-grid { grid-column: 1; }
  .signal-setup-profile { grid-column: 1; }
  .chart-zone { height: 460px; flex-basis: 460px; }
  .portfolio-overview .pov-grid { min-height: 0; grid-template-columns: minmax(0,1fr); }
}
.panel-head h1 { font-size: var(--vasc-font-16); font-weight: 700; }
.selected-asset h2 { font-size: var(--vasc-font-14); font-weight: 700; }
.asset-name strong { font-size: var(--vasc-font-12); font-weight: 400; }
.asset-price { font-size: var(--vasc-font-12); font-weight: 400; }
.asset-performance { font-size: var(--vasc-font-12); font-weight: 400; }
.asset-rank { font-size: var(--vasc-font-10); font-weight: 600; }
.signal-info-panel .workspace-panel-head h3 { font-size: var(--vasc-font-16); font-weight: 600; letter-spacing: .025em; }
.portfolio-planner-head h3 { font-size: var(--vasc-font-14); font-weight: 600; }
.selected-kpis span { font-size: var(--vasc-font-10); }
.selected-kpis strong { font-size: var(--vasc-font-12); }
.chart-window-switch button { font-family: Arimo; }
.signal-live { font-size: var(--vasc-font-12); }
.signal-card-top strong { font-size: var(--vasc-font-12); }
.signal-pnl small { font-size: var(--vasc-font-10); }
.signal-quick-grid small { font-size: var(--vasc-font-10); }
.signal-level-grid small { font-size: var(--vasc-font-10); }
.signal-meta-grid small { font-size: var(--vasc-font-10); }
.signal-progress-labels { font-size: var(--vasc-font-10); }
.signal-quick-grid strong { font-size: var(--vasc-font-12); }
.signal-level-grid strong { font-size: var(--vasc-font-12); }
.signal-meta-grid strong { font-size: var(--vasc-font-12); }
.signal-progress-values { font-size: var(--vasc-font-12); }
.signal-pnl b { font-size: var(--vasc-font-16); }
.signal-pnl span { font-size: var(--vasc-font-16); }
.signal-setup-heading strong { font-size: var(--vasc-font-12); }
.signal-empty-state { font-size: var(--vasc-font-12); line-height: 1.4; }
.signal-setup-profile p { font-size: var(--vasc-font-12); line-height: 1.4; }
.signal-empty-state small { font-size: var(--vasc-font-12); }
.portfolio-progress li { font-size: var(--vasc-font-12); }
.portfolio-progress li span { font-size: var(--vasc-font-10); }
.portfolio-step-copy span { font-size: var(--vasc-font-12); font-weight: 700; letter-spacing: .075em; }
.portfolio-step-copy strong { font-size: var(--vasc-font-14); font-weight: 550; }
.portfolio-step-copy small { display: block; font-size: var(--vasc-font-12); line-height: 1.4; }
.portfolio-money-field>span { font-size: var(--vasc-font-12); }
.portfolio-input-field>span { font-size: var(--vasc-font-12); }
.portfolio-money-field input { font-family: Arimo; font-size: var(--vasc-font-12); }
.portfolio-input-field input { font-family: Arimo; font-size: var(--vasc-font-12); }
.portfolio-money-field b { font-size: var(--vasc-font-12); }
.portfolio-mode-grid strong { font-size: var(--vasc-font-12); font-weight: 550; }
.portfolio-mode-grid small { font-size: var(--vasc-font-10); }
.portfolio-action { font-size: var(--vasc-font-12); font-weight: 700; }
.portfolio-selection-result b { font-size: var(--vasc-font-20); }
.portfolio-selection-result span { font-size: var(--vasc-font-12); }
.portfolio-selection-result small { font-size: var(--vasc-font-10); }
.portfolio-weight-total span { font-size: var(--vasc-font-12); }
.portfolio-weight-total strong { font-size: var(--vasc-font-14); }
.portfolio-weight-total small { font-size: var(--vasc-font-10); }
.portfolio-form-status { font-size: var(--vasc-font-12); }
.portfolio-saved-main strong { font-size: var(--vasc-font-14); }
.portfolio-saved-main small { font-size: var(--vasc-font-10); }
.portfolio-saved-facts small { font-size: var(--vasc-font-10); }
.portfolio-edit-select>span { font-size: var(--vasc-font-10); }
.portfolio-saved-facts b { font-size: var(--vasc-font-12); font-weight: 500; }
.portfolio-edit-select select { font-size: var(--vasc-font-12); }
.portfolio-overview-head .portfolio-overview-identity h2 { font-size: var(--vasc-font-20); font-weight: 620; }
.portfolio-overview-head .portfolio-overview-identity small { font-size: var(--vasc-font-12); }
.pov-card-head h3 { font-size: var(--vasc-font-12); }
.pov-kicker { font-size: var(--vasc-font-10); }
.pov-total-caption { font-size: var(--vasc-font-10); }
.pov-total-value strong { font-size: var(--vasc-font-16); }
.pov-total-value span { font-size: var(--vasc-font-10); }
.pov-capital-grid small { font-size: var(--vasc-font-12); }
.pov-capital-grid b { font-size: var(--vasc-font-12); }
.pov-periods button { font-size: var(--vasc-font-10); }
.pov-chart-scope button { font-size: var(--vasc-font-10); }
.pov-chart-legend span { font-size: var(--vasc-font-12); }
.pov-strategy span { font-size: var(--vasc-font-12); line-height: 1.4; }
.pov-strategy small { font-size: var(--vasc-font-12); line-height: 1.4; }
.pov-strategy-state { font-size: var(--vasc-font-12); line-height: 1.4; }
.pov-strategy strong { font-size: var(--vasc-font-12); }
@media(max-width:560px) {
  .pov-notice { flex-direction: column; align-items: flex-start; gap: 6px; }
  .pov-chart-wrap { display: flex; flex-direction: column; }
  .pov-chart-legend { position: static; flex-wrap: wrap; gap: 6px 12px; padding: 10px 11px; }
  .pov-chart { height: auto; flex: 1; }
  .portfolio-progress li { font-size: var(--vasc-font-10); white-space: normal; }
  .portfolio-overview-head .portfolio-overview-identity h2 { font-size: var(--vasc-font-16); }
  .pov-total-value strong { font-size: var(--vasc-font-14); }
}
@media(max-width:380px) {
  .portfolio-progress li { font-size: var(--vasc-font-10); }
  .portfolio-saved-facts small { font-size: var(--vasc-font-10); }
}

html[data-narrow-asset-list="true"] .asset-row {
  grid-template-columns: minmax(0, 1fr) 72px;
}
html[data-narrow-asset-list="true"] .asset-row .asset-performance {
  display: none;
}

@media(max-width:480px){
  .asset-row .asset-name strong{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.3}
}

/* Preserve the text floor in existing scaled chart cards. */
.chart-slide{--vasc-font-10:clamp(13px,calc(.8rem + .0625vw),.875rem);--vasc-font-12:clamp(13px,calc(.775rem + .1875vw),1rem)}
.chart-slide small,.chart-slide sub,.chart-slide sup{font-size:max(13px,.833333em)}
