/* MoveTrace VI v2 — dark trading notebook.
   A shared presentation layer, not a second trading implementation.
   Workflow: unslop by Damir Sokolovsky (@heydamir), CC BY 4.0.
   Existing product, Tabler and Lightweight Charts licences remain intact. */
:root{
 color-scheme:dark;--bg:#151a1d;--surface:#1b2328;--panel:#222d32;--raised:#27343a;
 --text:#e9ece7;--secondary:#bdc8c4;--muted:#a0aeaa;--line:#344249;--hairline:#e9ece714;
 --blue:#376e96;--accent-ink:#a2c8e4;--green:#8bc5ae;--red:#dda39f;--warning:#dcc093;--danger:#e6aaa5;
 --entry-buy:#a2c8e4;--entry-stop:#dda39f;--entry-target:#e9ece7;
 --sidebar:212px;--header-height:76px;--radius:6px;--curve:cubic-bezier(.22,1,.36,1);
 font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Microsoft JhengHei","Segoe UI",Arial,sans-serif;
}
html[lang=zh-CN]{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",Arial,sans-serif}
html[lang=en]{font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Segoe UI",Arial,sans-serif}
body{background:var(--bg);color:var(--text);font-size:15px;line-height:1.65}
h1,h2,h3,h4,strong,b{font-weight:500}h1{font-size:32px;line-height:1.3;letter-spacing:0}h2{font-size:20px;line-height:1.45}h3{font-size:16px;line-height:1.5}
button,a,input,select,textarea{transition:color 150ms var(--curve),background-color 150ms var(--curve),border-color 150ms var(--curve)}
button,input,select,textarea{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent-ink);outline-offset:4px}
input,select,textarea{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:4px;min-height:44px;padding:12px}
input::placeholder{color:var(--muted)}button:disabled{opacity:.5}.icon{width:20px;height:20px;opacity:.8}
.vi-shell .app-shell{max-width:1680px;margin:auto;background:var(--bg);border-color:var(--line);min-height:100dvh}
body.vi-shell:not(.admin-mode) .app-shell{max-width:1680px}
.vi-shell .app-header{height:var(--header-height);padding:16px 32px;gap:24px;background:var(--surface);border-bottom:1px solid var(--line);position:relative;z-index:15;align-items:center}
.vi-shell .brand{align-items:center;gap:10px}.vi-shell .brand strong{font-size:22px;font-weight:600;letter-spacing:-.4px}
.vi-shell .brand>span{display:none}.vi-shell .brand-mark{width:28px;height:28px;filter:invert(83%) sepia(22%) saturate(645%) hue-rotate(167deg)}
.vi-shell .header-actions{gap:16px;flex-shrink:0}.vi-shell .account-nav{font-size:13px;color:var(--secondary);padding:8px;min-height:40px;display:flex;align-items:center}
.vi-shell .language-button{background:transparent;border:1px solid var(--line);border-radius:4px;min-height:40px;padding:8px 12px;color:var(--secondary);font-size:12px}
.language-menu{background:var(--panel);border-color:var(--line);border-radius:4px;box-shadow:0 8px 24px #0003;backdrop-filter:none}
.language-menu button:hover,.language-menu button[aria-checked=true]{background:var(--raised);color:var(--accent-ink)}
.vi-shell .market-switcher{padding:0;margin:0 auto;display:flex;align-items:center;gap:28px;max-width:none}
.vi-shell .market-switcher a{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;min-height:44px;padding:10px 4px;color:var(--muted);font-size:14px;font-weight:400;box-shadow:none}
.vi-shell .market-switcher a.active{color:var(--accent-ink);border-bottom-color:var(--accent-ink);background:transparent;box-shadow:none}
.vi-shell[data-ui-view=settings] .market-switcher,.vi-shell[data-ui-view=invite] .market-switcher,.vi-shell[data-ui-view=policies] .market-switcher,.vi-shell[data-ui-view=admin] .market-switcher{display:none}
.vi-shell[data-ui-view=settings] .header-actions,.vi-shell[data-ui-view=invite] .header-actions,.vi-shell[data-ui-view=policies] .header-actions{margin-left:auto}
.vi-sidebar{display:none}.vi-shell .feature-shortcuts{padding:12px 20px 0;gap:24px}.vi-shell .feature-shortcuts a{padding:8px 0;background:none;color:var(--muted);font-size:12px}
.vi-shell main{padding:32px 20px 104px;min-height:calc(100dvh - var(--header-height));max-width:none;margin:0}
.vi-shell .page-head{margin:0 0 24px;gap:20px;align-items:flex-start}.vi-shell .page-head p{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.7}
.vi-shell .eyebrow{display:none}.page-actions{gap:12px}.text-button{font-size:13px;color:var(--accent-ink);padding:8px 0;min-height:40px}
.icon-button{height:44px;width:44px;padding:12px;border-radius:4px}.icon-button:hover{background:var(--raised)}
.button{min-height:44px;padding:10px 16px;border-radius:4px;font-size:14px;font-weight:500;box-shadow:none}
.button.primary{background:#e2e8e3;color:#19252b}.button.primary:hover{background:#fff}.button.secondary{background:var(--panel);border:1px solid var(--line);color:var(--text)}
.button.secondary:hover{background:var(--raised)}.compact-action{white-space:nowrap}
/* Small, equal entrances on phones; desktop navigation already contains both. */
.vi-shell .pool-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 20px;padding:0 0 12px;border-bottom:1px solid var(--line)}
.vi-shell .pool-shortcut{min-height:44px;padding:8px 0;border:0;border-radius:0;box-shadow:none;background:none;grid-template-columns:minmax(0,1fr) 16px;gap:8px}
.vi-shell .pool-shortcut-icon,.vi-shell .pool-shortcut-copy small{display:none}.vi-shell .pool-shortcut-copy strong{font-size:13px;font-weight:400;color:var(--secondary)}.pool-shortcut>.icon{width:16px;height:16px}
.vi-shell .novice-steps{border:0;border-radius:0;background:none;padding:0;margin:0 0 24px;max-width:720px;gap:8px}
.vi-shell .novice-step{min-height:32px;background:none;color:var(--muted);font-size:12px;padding:0;gap:8px;box-shadow:none;border-radius:0}
.vi-shell .novice-step b{border:0;background:none;color:inherit;width:auto;min-width:16px;height:auto;font-size:12px;font-weight:400;border-radius:0}
.vi-shell .novice-step.active{background:none;color:var(--accent-ink);box-shadow:none}.vi-shell .novice-step.active b{border:0;background:none;color:inherit}
.coach-tip{background:none;border:0;border-left:2px solid #6c92ac;border-radius:0;padding:4px 0 4px 16px;margin:0 0 24px;gap:12px;color:var(--secondary);font-size:13px;line-height:1.8}
.coach-tip strong{font-weight:400}.coach-tip .icon{width:18px;height:18px}.entry-session-guide{background:none;border:0;border-block:1px solid var(--line);border-radius:0;padding:16px 0;margin:0 0 24px;color:var(--muted);font-size:12px}
.vi-shell .entry-session-guide summary{color:var(--secondary);font-weight:400;line-height:1.7}
/* Lists are a single quiet ledger, not fifteen large reports. */
.vi-shell .market-pool-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start;margin-top:0}
.vi-shell .market-pool-grid .web-primary{min-width:0}.vi-shell .market-pool-grid .web-primary #stock-list{display:block;grid-template-columns:1fr;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.vi-shell .results-label{padding:0 0 12px;border:0;gap:12px;color:var(--muted);font-size:12px;line-height:1.6}.results-label b{font-weight:400}
.vi-shell .market-pool-grid .stock-row{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;margin:0;padding:16px;display:grid;grid-template-columns:minmax(0,1fr) minmax(112px,144px) 32px;gap:8px 12px;min-width:0;min-height:0;align-items:center}
.vi-shell .market-pool-grid .stock-row:last-child{border-bottom:0}.vi-shell .stock-row:hover{background:#222e34}
.vi-shell .stock-main{min-width:0;grid-column:1;grid-row:1;text-align:left;align-self:start}.vi-shell .symbol-line{gap:8px;flex-wrap:wrap}.vi-shell .symbol{font-size:20px;font-weight:500;letter-spacing:0}
.vi-shell .pool-rank{background:none;border:0;border-radius:0;width:auto;min-width:12px;height:auto;line-height:1.4;color:var(--muted);font-size:11px;font-weight:400;padding:0;align-self:baseline}
.vi-shell .exchange{font-size:10px;color:var(--muted);background:none;padding:0}.vi-shell .company{color:var(--secondary);font-size:12px;line-height:1.6;margin-top:4px;overflow-wrap:anywhere;max-width:none}
.vi-shell .stock-quote{grid-column:1;grid-row:2;display:flex;flex-direction:row;justify-content:flex-start;align-items:baseline;flex-wrap:wrap;gap:4px 8px;text-align:left;max-width:none;padding:0;border:0;min-width:0}
.vi-shell .stock-quote>.icon{display:none}.vi-shell .stock-price-label{font-size:10px;color:var(--muted);line-height:1.5}.vi-shell .stock-price{font-size:20px;font-weight:400;line-height:1.4;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text)}
.vi-shell .has-reference .stock-price{font-size:14px;color:var(--secondary)}.vi-shell .stock-change{font-size:11px;line-height:1.5}
.vi-shell .stock-plan{grid-column:2;grid-row:1/3;align-self:center;text-align:right;min-width:0;color:var(--secondary);font-size:12px;line-height:1.6}
.vi-shell .stock-plan-label{display:block;color:var(--muted);font-size:11px}.vi-shell .stock-plan-open{display:block;color:var(--accent-ink);margin-top:4px;font-size:12px}
.vi-shell .stock-plan .hk-plan-brief{border:0;margin:0;padding:0;font-size:11px;color:var(--muted);display:block}
.vi-shell .stock-plan .hk-plan-brief>span{font-size:11px}.vi-shell .stock-plan .hk-plan-brief>b{display:block;font-size:23px;font-weight:400;color:var(--text);line-height:1.45;margin:4px 0;white-space:nowrap;letter-spacing:0;font-variant-numeric:tabular-nums}
.vi-shell .stock-plan .hk-plan-brief small{display:block;font-size:10px;color:var(--warning);line-height:1.65}.vi-shell .stock-plan .hk-plan-brief small:last-child{color:var(--muted)}
.vi-shell .stock-row>.star-button{grid-column:3;grid-row:1/3;align-self:center;width:32px;height:44px;padding:8px 4px;border-radius:4px;background:none}.star-button .icon{width:20px;height:20px}.star-button.active .icon{filter:invert(83%) sepia(21%) saturate(480%) hue-rotate(335deg)}
.vi-shell .stock-facts{grid-column:1/-1;grid-row:3;border:0;padding-top:4px;font-size:12px;color:var(--muted)}
.vi-shell .stock-facts summary{min-height:32px;padding:4px 0;color:var(--muted);font-size:11px;cursor:pointer}.vi-shell .stock-facts[open]{padding-top:12px;border-top:1px solid var(--line);margin-top:8px}.vi-shell .stock-facts p{font-size:12px;line-height:1.8;color:var(--secondary)}
.stock-facts .row-tier,.stock-facts .price-band,.stock-facts .pool-source-date{display:block;margin:4px 0;color:var(--muted);font-size:12px}.vi-shell .pool-entry{border:0;padding:8px 0;color:var(--secondary);font-size:12px;display:grid;gap:8px}.vi-shell .stock-meta{font-size:12px;color:var(--muted);gap:12px;flex-wrap:wrap}
.positive{color:var(--green)}.negative{color:var(--red)}
.vi-shell .list-tools{background:none;border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;margin:0 0 24px}.list-tools summary{font-size:13px;min-height:36px;color:var(--secondary)}
.vi-shell .search-box{background:var(--surface);border-radius:4px;padding:0 12px;margin-top:12px;border:1px solid var(--line)}.search-box input{background:none;border:0;font-size:16px}.toolbar{gap:12px;flex-wrap:wrap}.toolbar select{color:var(--secondary);font-size:13px;max-width:100%}
.condition-button,.tabs button{background:var(--panel);border-color:var(--line);color:var(--secondary);border-radius:4px;min-height:40px;font-size:13px}.tabs .active{background:var(--raised);color:var(--accent-ink)}
.vi-shell .coverage-note,.vi-shell .form-hint,.fine-print{color:var(--muted);font-size:12px;line-height:1.8}
/* Panels share a material; ordinary information is never a blue hero. */
.vi-shell :is(.settings-card,.status-card,.pool-card,.observation-card,.invite-hero,.entry-plan,.hk-premarket-card,.monitor-card,.admin-service-grid article){background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:none}
.vi-shell .settings-card{margin:0 0 24px}.vi-shell .settings-card h2{font-size:18px;margin-bottom:16px}.settings-card h2 .icon{width:18px;height:18px}.vi-shell .settings-card p{font-size:13px;color:var(--secondary);line-height:1.85}
.vi-shell .setting-row{padding:16px 0;font-size:13px;border-color:var(--line);gap:24px}.vi-shell .setting-row>span{color:var(--secondary)}.vi-shell .settings-actions{gap:12px;margin-top:20px}.vi-shell .settings-actions .button{flex:0 1 auto;font-size:13px}
.vi-shell :is(.feature-notice,.entry-input-health,.entry-waiting,.observation-notice){border:0;border-left:2px solid #6c8798;background:var(--panel);color:var(--secondary);padding:12px 16px;border-radius:0;font-size:13px;line-height:1.8;margin:16px 0}
.vi-shell :is(.performance-warning,.detail-chart-fallback,.hk-plan-warning,.entry-delay-warning){background:#2a2823;color:var(--warning);border:0;border-left:2px solid #a98d61;border-radius:0;padding:12px 16px;font-size:12px;line-height:1.8}
.vi-shell .status-card.demo{background:#2a2823;border-color:#6c6048}.status-card p,.pool-card p{color:var(--muted)}
.vi-shell :is(.tag,.chip,.row-tier,.mode-pill,.observation-badge){background:var(--panel);border:0;border-radius:3px;color:var(--secondary);font-size:11px;font-weight:400;padding:4px 8px;letter-spacing:0}
.vi-shell .form-error,.vi-shell .entry-rejected{color:var(--danger)}.vi-shell .entry-rejected{background:#35282a;border:1px solid #856164;font-weight:500!important;font-size:15px!important}
/* A price plan reads like one order worksheet. Calculated/source times stay visible. */
.vi-shell .market-detail-grid{gap:24px;align-items:start}.vi-shell .market-detail-grid>.web-chart-column{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 16px;min-width:0}
.vi-shell .market-detail-grid>.web-entry-column{position:static;min-width:0;padding-bottom:0}.vi-shell .market-detail-grid .chart-wrap{margin:0}.vi-shell .chart-loading{background:var(--surface);color:var(--muted)}
.vi-shell .details-top{margin:0 0 24px;gap:12px}.vi-shell .details-top h1{font-size:28px;font-weight:500}.vi-shell .details-top .tag{background:none;padding:0;font-size:11px;color:var(--muted)}
.vi-shell .detail-entry-jump{background:var(--panel);border:1px solid var(--line);color:var(--text);margin:0 0 24px;border-radius:4px;min-height:44px}
.vi-shell .quote-price{font-size:36px;font-weight:400;letter-spacing:0;line-height:1.3;font-variant-numeric:tabular-nums}.vi-shell .quote-change{font-size:13px;font-weight:400}.vi-shell .quote-line{gap:12px}
.vi-shell .quote-more{border-color:var(--line);color:var(--secondary);font-size:12px}.vi-shell .quote-more summary{color:var(--muted);min-height:36px}.vi-shell .quote-stats{font-size:12px;gap:8px}.quote-stats dd{color:var(--secondary)}
.vi-shell .session-line{padding:12px 0;margin:12px 0 20px;border-color:var(--line);color:var(--muted);font-size:11px;line-height:1.7;flex-wrap:wrap}
.vi-shell .detail-tab{font-size:16px;font-weight:500;border-bottom:0;color:var(--text);margin-bottom:12px;padding-bottom:0}
.vi-shell .timeframes{gap:4px;margin-bottom:16px;flex-wrap:wrap}.vi-shell .timeframes button{font-size:12px;min-height:40px;padding:8px 12px;color:var(--muted);border-radius:4px}.vi-shell .timeframes button.active{background:var(--raised);color:var(--accent-ink)}
.vi-shell :is(.mtt-chart-status,.mtt-chart-readout,.mtt-chart-source,.detail-chart-source){font-size:11px;color:var(--muted);line-height:1.8}.vi-shell .mtt-chart-indicators button{background:transparent;border-color:var(--line);border-radius:3px;font-size:11px;padding:6px 8px;min-height:36px}
.vi-shell .detail-reference{border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:12px}.detail-reference summary{min-height:36px;cursor:pointer}.vi-shell .detail-reference p,.vi-shell .detail-extra{color:var(--muted);font-size:12px;line-height:1.8}.detail-extra h3{font-size:14px;color:var(--secondary)}
.vi-shell .entry-heading{display:block;margin:0 0 16px;padding-bottom:16px;border-bottom:1px solid var(--line)}.vi-shell .entry-heading h2,.vi-shell .entry-heading h3{font-size:19px;font-weight:500;line-height:1.5}
.vi-shell .entry-heading>span,.vi-shell .historical-plan-card [data-history-phase]{display:block;max-width:none;background:none;border:0;border-radius:0;padding:0;text-align:left;font-size:12px;color:var(--warning);line-height:1.8;margin-top:4px}
.vi-shell .history-intro{font-size:12px;margin:0 0 16px}.vi-shell .history-source-trace{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:11px;color:var(--muted);line-height:1.8;padding:12px 0 4px;border-top:1px solid var(--line)}
.history-source-trace time{color:var(--secondary);font-variant-numeric:tabular-nums}.history-source-trace [aria-hidden]{color:var(--accent-ink)}
.vi-shell .history-calculated{font-size:11px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 8px;padding-bottom:12px;border-bottom:1px solid var(--line)}.history-calculated time{color:var(--secondary);font-variant-numeric:tabular-nums}
.vi-shell .history-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:16px 0 8px;border:0}.vi-shell .history-trigger>div{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.vi-shell .history-trigger span{font-size:12px;color:var(--muted)}.vi-shell .history-trigger strong{font-size:15px;font-weight:400;margin:0;font-variant-numeric:tabular-nums}
.vi-shell .hk-plan-price{background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 0;margin:0;gap:12px;display:flex;align-items:center;justify-content:space-between;min-width:0}
.vi-shell .hk-plan-price>div{min-width:0}.vi-shell .hk-plan-price span{font-size:12px;color:var(--muted)}.vi-shell .hk-plan-price strong{display:block;font-size:28px;line-height:1.4;font-weight:400;color:var(--text);letter-spacing:0;margin-top:4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.vi-shell .history-entry strong{font-size:36px;color:var(--accent-ink)}.vi-shell .history-stop strong{color:var(--red)}
.vi-shell .entry-copy{font-size:12px;min-height:40px;padding:8px 12px;border:1px solid #53656e;border-radius:4px;background:transparent;color:var(--text);flex-shrink:0;font-weight:400}.entry-copy:hover:not(:disabled){background:var(--raised);border-color:var(--accent-ink)}.vi-shell .entry-copy:disabled{background:none;color:var(--muted);border-color:var(--line);opacity:.6}
.vi-shell .history-order-note{margin:20px 0}.vi-shell .history-order-note .hk-plan-warning{background:none;border:0;padding:0;margin:0;font-size:12px}.vi-shell .history-order-note .form-hint{font-size:12px;margin-top:8px}
.vi-shell .hk-plan-dates{border-block:1px solid var(--line);padding:12px 0;margin:20px 0;font-size:11px;color:var(--muted)}.vi-shell .hk-plan-dates p{font-size:11px;color:var(--muted);margin:4px 0;line-height:1.8}.hk-plan-dates time{font-variant-numeric:tabular-nums;color:var(--secondary)}
.vi-shell .position-hint{border:0;border-block:1px solid var(--line);border-radius:0;background:none;padding:16px 0;margin:16px 0;color:var(--secondary);font-size:12px}.vi-shell .position-hint>strong{font-size:13px;font-weight:500}.vi-shell .position-hint p{font-size:12px;margin-top:8px}.vi-shell .position-hint .detail-capital{font-size:24px;line-height:1.5;color:var(--text);font-weight:400}
.vi-shell .history-plan-method,.vi-shell .history-order-details{border-top:1px solid var(--line);padding-top:12px;margin-top:16px;color:var(--secondary);font-size:12px}.history-plan-method summary,.history-order-details summary{font-size:12px;min-height:36px;color:var(--muted);cursor:pointer}
.vi-shell .historical-plan-card [data-history-status]:empty{display:none}.vi-shell .formal-price-details{margin-top:16px}.formal-price-details summary{font-size:12px;color:var(--muted);min-height:36px;cursor:pointer}
.vi-shell .entry-price-row{border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;padding:16px 0;margin:0}.vi-shell .entry-price-row.entry{background:none;border-color:var(--line)}
.vi-shell .entry-price-label{font-size:12px;color:var(--muted);gap:12px;font-weight:400}.entry-price-label strong{font-weight:400}.vi-shell .entry-price-value{font-size:28px;line-height:1.4;letter-spacing:0;font-weight:400;margin:8px 0;color:var(--text);font-variant-numeric:tabular-nums}.vi-shell .entry-price-row.entry .entry-price-value{font-size:36px;color:var(--accent-ink)}.vi-shell .entry-price-row.stop .entry-price-value{color:var(--red)}
.vi-shell .entry-price-note{font-size:11px;color:var(--muted);line-height:1.8}.vi-shell :is(.entry-time,.entry-calculated,.entry-calculated-time,.entry-buffer,.entry-vwap,.entry-meta,.entry-market-proof,.entry-expiry){font-size:12px;color:var(--muted);line-height:1.8}
.vi-shell .entry-expiry strong{font-size:24px;color:var(--text);font-weight:400}.vi-shell .entry-verification{font-size:13px;font-weight:400;color:var(--secondary);line-height:1.8}.vi-shell .entry-verification.confirmed{color:var(--green)}
.vi-shell .entry-order{background:var(--panel);border-color:#718d9d;color:var(--text);font-size:13px;font-weight:400}.vi-shell .entry-delay-warning strong{font-size:13px;font-weight:500}
.vi-shell .detail-score{margin-top:24px;background:none;border:0;border-block:1px solid var(--line);padding:20px 0;border-radius:0}.vi-shell .detail-score h3{font-size:14px}.vi-shell .detail-score-value{font-size:24px;color:var(--text);font-weight:400;margin:8px 0;display:block}.vi-shell .detail-checks{gap:8px}.vi-shell .detail-checks>span{border:0;border-radius:0;background:var(--panel);font-size:11px;padding:8px}
/* Reports use editorial rows and rules; unavailable metrics remain unavailable. */
.vi-shell .recap-market-tabs{gap:24px;border-bottom:1px solid var(--line);margin-bottom:24px;padding:0}.vi-shell .recap-market-tabs a{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--muted);font-size:14px;font-weight:400;min-height:44px;padding:12px 4px}.vi-shell .recap-market-tabs [aria-current=page]{color:var(--accent-ink);border-bottom-color:var(--accent-ink);background:none}
.vi-shell .feature-controls{gap:12px;align-items:center;margin:0 0 24px;padding:0;border:0}.feature-controls label{font-size:12px;color:var(--secondary)}.feature-controls select{font-size:13px;min-height:40px;max-width:100%}.report-private-choice{display:flex;align-items:center;gap:8px;flex-basis:100%}.report-private-choice input{width:18px;min-height:18px}.report-export-hint{width:100%;font-size:11px;line-height:1.8;color:var(--muted)}
.vi-shell .feature-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px;border-block:1px solid var(--line);padding:24px 0;margin:24px 0 32px}
.vi-shell .feature-metric{background:none;border:0;border-radius:0;box-shadow:none;padding:0;min-width:0}.vi-shell .feature-metric:nth-child(even){border-left:1px solid var(--line);padding-left:16px}
.vi-shell .feature-metric>span{font-size:12px;color:var(--muted)}.vi-shell .feature-metric strong{display:block;font-size:32px;font-weight:400;line-height:1.4;margin:8px 0;color:var(--text);white-space:nowrap;overflow-wrap:normal;letter-spacing:0;font-variant-numeric:tabular-nums}.vi-shell .feature-metric small{font-size:11px;color:var(--muted);line-height:1.8}
.vi-shell #performance-body>.settings-card{border:0;border-bottom:1px solid var(--line);background:none;border-radius:0;padding:0 0 28px;margin-bottom:28px}.vi-shell .bilingual-recap{gap:24px}.vi-shell .bilingual-recap article{background:none;border:0;border-left:1px solid var(--line);padding:0 0 0 20px;border-radius:0}.vi-shell .bilingual-recap h3{font-size:12px;color:var(--muted);font-weight:400}.vi-shell .bilingual-recap p{font-size:14px;line-height:1.9;color:var(--secondary)}
.vi-shell .pool-return-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}.vi-shell .pool-return-grid article{background:none;border-radius:0;border:0;border-bottom:1px solid var(--line);padding:16px 8px;gap:8px}.vi-shell .pool-return-grid article strong{font-size:14px}.vi-shell .pool-return-grid article b{font-size:20px;font-weight:400;white-space:nowrap;font-variant-numeric:tabular-nums}.vi-shell .pool-return-grid article small{font-size:11px;color:var(--muted)}
.vi-shell .report-table-wrap,.vi-shell .admin-table-wrap{border-color:var(--line);border-radius:4px}.vi-shell .report-table{font-size:13px;min-width:640px}.vi-shell .report-table th,.vi-shell .report-table td{padding:16px;border-color:var(--line)}.vi-shell .report-table th{color:var(--muted);font-size:12px;font-weight:400}.report-table tbody tr:hover{background:var(--panel)}
/* Settings retain all controls and data; a local section index replaces card walls. */
.vi-settings-grid{display:grid;grid-template-columns:1fr;gap:24px}.vi-settings-nav{display:flex;gap:20px;overflow-x:auto;padding-bottom:12px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.vi-settings-nav a{white-space:nowrap;min-height:36px;padding:4px 0}.vi-settings-nav a:hover{color:var(--accent-ink)}.vi-settings-content{min-width:0;max-width:880px}
.vi-shell .vi-settings-content>.settings-card{border:0;border-bottom:1px solid var(--line);background:none;border-radius:0;padding:0 0 28px;margin:0 0 28px;scroll-margin-top:100px}
.vi-settings-content .settings-card h2>.icon{display:none}.vi-shell .vi-settings-content .setting-row{padding:16px 0}.vi-shell .vi-settings-content .settings-actions{margin-top:16px}.vi-shell .vi-settings-content .settings-actions .button{min-width:100px}
.vi-shell .vi-settings-content .watchlist-shortcut .button{width:auto;min-width:160px}.vi-shell .app-version{color:var(--muted);font-size:11px;text-align:left;margin-top:24px;line-height:1.8}
.vi-shell .invite-hero{background:none;border:0;border-bottom:1px solid var(--line);padding:0 0 24px;border-radius:0}.invite-hero h2{font-size:24px;font-weight:500}.invite-hero p{color:var(--secondary)}.invite-copy input{font-size:13px}.invite-shares a{min-height:44px}
.vi-shell .monitor-card{margin-bottom:16px}.vi-shell .monitor-card p{color:var(--secondary);font-size:13px}.monitor-actions button{color:var(--accent-ink);font-size:12px;min-height:36px}.monitor-actions .danger{color:var(--danger)}
.vi-shell .risk-disclosure{border-color:var(--line);color:var(--muted);font-size:11px;line-height:1.9;padding:20px;margin-top:32px}.risk-disclosure a{color:var(--accent-ink)}
.vi-shell .bottom-nav{background:var(--surface);border-color:var(--line);backdrop-filter:none;padding:8px 0 calc(8px + env(safe-area-inset-bottom));grid-template-columns:repeat(3,minmax(0,1fr));max-width:100%}.vi-shell .bottom-nav a{font-size:11px;min-height:48px;gap:4px;color:var(--muted)}.vi-shell .bottom-nav a.active{color:var(--accent-ink)}.bottom-nav a.active .icon{filter:invert(86%) sepia(10%) saturate(920%) hue-rotate(165deg)}
.vi-shell .detail-actions{background:var(--surface);border-color:var(--line);border-radius:0;max-width:100%;box-shadow:none}.vi-shell .detail-actions>.button{min-height:44px}.vi-shell .conditions-foot{background:var(--surface);border-color:var(--line);backdrop-filter:none}
.vi-shell .condition-tile{background:var(--surface);border-radius:6px;min-height:88px;padding:16px 8px}.vi-shell .condition-tile.selected{background:var(--raised);border:1px solid #6f94ad;color:var(--text)}.condition-tile .sub{font-size:12px;color:var(--muted)}
.vi-shell .sheet{background:var(--surface);border-radius:12px 12px 0 0;color:var(--text)}.sheet::backdrop{background:#050b10a8}.vi-shell .sheet-head{padding:0 24px 16px}.sheet-head h2{font-size:24px;font-weight:500}.vi-shell .sheet-body{padding:0 24px 24px}.vi-shell .sheet-footer{background:var(--surface);border-color:var(--line)}.vi-shell .sheet-body label{color:var(--secondary)}.vi-shell .choice-row{padding:20px 0;border-color:var(--line);font-size:16px;min-height:64px}.choice-row small{color:var(--muted)}.choice-radio{border-color:#92a3a7}.vi-shell .choice-row.selected .choice-radio{border-color:var(--accent-ink);box-shadow:none}
.vi-shell :is(.alert-stock-card,.alert-direction,.alert-copy,.price-input){background:var(--surface);border-color:var(--line);border-radius:4px}.vi-shell .alert-direction.selected{background:var(--raised);border-color:var(--accent-ink)}.vi-shell .notification-state{background:var(--panel);border-color:var(--line);border-radius:4px}.vi-shell .notification-state.warning{background:#2a2823;border-color:#74654a}.vi-shell .notification-state.ready{background:#21352f;border-color:#4a7966}
.vi-shell .toast{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:4px;box-shadow:0 8px 24px #0003;font-size:13px;transition:opacity 150ms var(--curve),transform 150ms var(--curve)}
/* Existing administrator access and 16:9 workspace remain independent. */
.vi-shell.admin-mode .vi-sidebar{display:none}.vi-shell.admin-mode .app-header,.vi-shell.admin-mode .admin-sidebar{background:var(--surface);border-color:var(--line)}
.vi-shell.admin-mode .admin-sections a{background:none;color:var(--secondary);border-color:transparent;border-radius:4px;min-height:40px;padding:8px 12px;font-weight:400}.vi-shell.admin-mode .admin-sections a.active{background:var(--raised);border-color:var(--line);color:var(--accent-ink)}
.vi-shell .admin-users-table th{background:var(--panel);color:var(--muted)}.admin-users-table th,.admin-users-table td{border-color:var(--line)}.admin-users-table tr:hover{background:var(--panel)}.admin-user-state{color:var(--green)}.admin-user-state.disabled{color:var(--muted)}
/* Both hosts use this same shell. The old backup adapter remains access-scoped. */
body.vi-shell[data-web-layout]{padding-left:0;background:var(--bg)}body.vi-shell .web-panel{display:none!important}
.vi-shell .web-preview-banner{background:var(--panel);border-color:var(--line);color:var(--secondary);padding:12px 20px;font-size:12px;line-height:1.7}.vi-shell .web-preview-banner strong{font-size:12px;font-weight:500}.vi-shell .web-preview-banner a{color:var(--accent-ink);float:none}
@media(min-width:680px){
 .vi-shell .sheet{max-width:620px;margin:auto;border-radius:8px;inset:0;max-height:90dvh}.vi-shell .sheet-body{max-height:calc(90dvh - 200px)}
 .vi-shell .market-pool-grid .stock-row{grid-template-columns:minmax(140px,1fr) minmax(100px,144px) minmax(128px,176px) 36px;gap:8px 16px;padding:16px 20px}
 .vi-shell .stock-main{grid-column:1;grid-row:1}.vi-shell .stock-quote{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}
 .vi-shell .stock-plan{grid-column:3;grid-row:1}.vi-shell .stock-row>.star-button{grid-column:4;grid-row:1}.vi-shell .stock-facts{grid-row:2}.vi-shell .stock-price{font-size:22px}.vi-shell .has-reference .stock-price{font-size:18px}.vi-shell .stock-price-label{font-size:11px}.vi-shell .stock-change{font-size:12px}.vi-shell .stock-plan .hk-plan-brief>b{font-size:24px}
 .vi-shell .feature-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.vi-shell .feature-metric+.feature-metric{border-left:1px solid var(--line);padding-left:24px}.vi-shell .feature-metric strong{font-size:34px}
 .vi-shell .pool-return-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.vi-shell .bilingual-recap{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.vi-shell[data-web-layout][data-web-view=settings] #main{display:block}.vi-shell main:has(.policy-document){max-width:1200px}
}
@media(min-width:1100px){
 .vi-shell:not(.admin-mode) .app-header{position:sticky;top:0;height:var(--header-height);padding:16px 32px;background:var(--surface);backdrop-filter:none}
 .vi-shell:not(.admin-mode) .vi-sidebar{position:fixed;top:var(--header-height);bottom:0;left:var(--shell-left,0px);width:var(--sidebar);display:flex;flex-direction:column;padding:32px 16px 24px;z-index:10;border-right:1px solid var(--line);background:var(--surface)}
 .vi-nav-label{padding:0 12px 12px;color:var(--muted);font-size:12px}.vi-nav{display:flex;flex-direction:column;gap:4px}.vi-nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 12px;border-radius:4px;color:var(--secondary);font-size:14px}.vi-nav a.active{background:var(--raised);color:var(--accent-ink)}.vi-nav a:hover{background:var(--panel)}.vi-nav .icon{width:18px;height:18px}.vi-sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding:20px 12px 0;color:var(--muted);font-size:12px;line-height:1.8}.vi-sidebar-foot strong{color:var(--secondary);font-weight:400;display:block;margin-bottom:8px}
 .vi-shell:not(.admin-mode) main{margin:0 0 0 var(--sidebar);padding:40px 32px 32px;min-height:calc(100dvh - var(--header-height));width:auto;max-width:none}
 .vi-shell:not(.admin-mode) .feature-shortcuts,.vi-shell:not(.admin-mode) .pool-shortcuts,.vi-shell:not(.admin-mode) .bottom-nav{display:none}
 .vi-shell:not(.admin-mode) .risk-disclosure,.vi-shell:not(.admin-mode) .web-preview-banner{margin-left:var(--sidebar);padding-inline:32px}
 .vi-shell .market-pool-grid{grid-template-columns:minmax(0,1fr) 256px;gap:28px}.vi-shell .market-pool-grid .web-secondary{position:sticky;top:100px;min-width:0}
 .vi-shell .market-detail-grid{grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:24px}.vi-shell .market-detail-grid>.web-entry-column{position:static;top:auto;padding:0}.vi-shell .market-detail-grid>.web-chart-column{padding:20px 16px}
 .vi-shell .detail-entry-jump{display:none}.vi-shell .market-detail-grid .mtt-chart-canvas{height:clamp(360px,48vh,520px)!important}
 .vi-shell .vi-settings-grid{grid-template-columns:160px minmax(0,1fr);gap:32px}.vi-settings-nav{display:flex;flex-direction:column;gap:8px;align-self:start;border:0;position:sticky;top:100px;overflow:visible}.vi-settings-nav a{padding:8px 0;white-space:normal}
 .vi-shell .pool-return-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.vi-shell .detail-actions{position:fixed;left:auto;right:max(32px,calc((100vw - 1680px)/2 + 32px));transform:none;bottom:20px;width:300px;padding:8px;border:1px solid var(--line);border-radius:6px;max-width:calc(100vw - 300px)}
 .vi-shell .conditions-foot{left:var(--sidebar);right:0;transform:none;width:auto;max-width:none}
}
@media(min-width:1500px){.vi-shell:not(.admin-mode) main{padding:48px 40px 32px}.vi-shell .market-pool-grid{grid-template-columns:minmax(0,1fr) 280px;gap:32px}}
@media(max-width:679px){
 :root{--header-height:116px}.vi-shell .app-header{height:auto;min-height:116px;padding:12px 16px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center}
 .vi-shell .brand{grid-column:1;grid-row:1;gap:8px}.vi-shell .brand strong{font-size:20px}.vi-shell .brand-mark{width:24px;height:24px}.vi-shell .header-actions{grid-column:2;grid-row:1;gap:4px}.vi-shell .account-nav{font-size:11px;padding:8px 4px}.vi-shell .language-button{font-size:11px;min-height:36px;padding:8px}.vi-shell .language-button svg{width:14px;height:14px}
 .vi-shell .market-switcher{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(3,1fr);width:100%;gap:12px;margin:0;padding-top:4px}.vi-shell .market-switcher a{padding:10px 4px;min-height:44px;text-align:center;font-size:13px}
 .vi-shell[data-ui-view=settings] .app-header,.vi-shell[data-ui-view=invite] .app-header,.vi-shell[data-ui-view=policies] .app-header,.vi-shell[data-ui-view=admin] .app-header{min-height:64px;padding-block:12px}
 .vi-shell main{padding:24px 16px 96px}.vi-shell .page-head{gap:12px;flex-wrap:wrap;margin-bottom:20px}.vi-shell .page-head h1{font-size:26px}.vi-shell .page-head p{font-size:12px}.vi-shell .page-actions{gap:4px;margin-left:auto}.vi-shell .page-actions .text-button{font-size:12px}.vi-shell .novice-step{font-size:11px;gap:6px}.vi-shell .novice-step b{font-size:11px}.vi-shell .novice-steps{gap:6px;margin-bottom:20px}
 .vi-shell .market-pool-grid .stock-row{padding:16px 12px;grid-template-columns:minmax(0,1fr) minmax(104px,136px) 28px;gap:8px}.vi-shell .symbol{font-size:18px}.vi-shell .company{font-size:11px}.vi-shell .exchange{font-size:10px}.vi-shell .stock-plan .hk-plan-brief>b{font-size:21px}.vi-shell .stock-plan .hk-plan-brief>span{font-size:10px}.vi-shell .stock-plan .hk-plan-brief small{font-size:10px}.vi-shell .stock-row>.star-button{width:28px;height:44px;padding:8px 4px}.vi-shell .stock-row .star-button .icon{width:18px;height:18px}.vi-shell .stock-quote{gap:2px 6px}.vi-shell .stock-price-label{font-size:10px}.vi-shell .has-reference .stock-price{font-size:13px}.vi-shell .stock-change{font-size:10px}.vi-shell .stock-facts summary{font-size:10px;min-height:32px}
 .vi-shell .market-pool-grid .web-secondary{margin-top:4px}.vi-shell .list-tools{margin-bottom:20px}.vi-shell .settings-card,.vi-shell .entry-plan,.vi-shell .hk-premarket-card{padding:20px 16px}.vi-shell .entry-heading h3{font-size:18px}.vi-shell .entry-heading>span{font-size:11px}.vi-shell .history-entry strong{font-size:32px}.vi-shell .history-price-row strong{font-size:27px}.vi-shell .history-entry strong{font-size:32px}.vi-shell .entry-price-row.entry .entry-price-value{font-size:32px}.vi-shell .entry-copy{padding:8px 10px;min-height:40px;font-size:12px}
 .vi-shell .feature-metric strong{font-size:28px}.vi-shell .feature-metric small{font-size:11px}.vi-shell .feature-metric>span{font-size:12px}.vi-shell .quote-price{font-size:34px}.vi-shell .detail-tab{font-size:15px}.vi-shell .timeframes button{font-size:11px;padding:8px 10px}.vi-shell .history-calculated{font-size:11px}.vi-shell .hk-plan-dates{font-size:11px}.vi-shell .hk-plan-dates p{font-size:11px}
}
@media(max-width:359px){.vi-shell .brand strong{font-size:18px}.vi-shell .brand-mark{width:22px;height:22px}.vi-shell .header-actions{gap:2px}.vi-shell .language-button{padding:6px}.vi-shell .language-button svg{display:none}.vi-shell .stock-plan .hk-plan-brief>b{font-size:19px}.vi-shell .market-pool-grid .stock-row{grid-template-columns:minmax(0,1fr) 116px 24px;gap:6px}.vi-shell .symbol-line{gap:6px}.vi-shell .symbol{font-size:17px}.vi-shell .exchange{font-size:9px}.vi-shell .history-entry strong{font-size:29px}.vi-shell .hk-plan-price strong{font-size:25px}.vi-shell .history-entry strong{font-size:29px}.vi-shell .entry-price-row.entry .entry-price-value{font-size:29px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Evidence dates belong to the list, not repeated decorative badges. */
.vi-shell .pool-source-trace{display:flex;flex-wrap:wrap;gap:4px 8px;padding:12px 16px;border:1px solid var(--line);border-bottom:0;background:var(--panel);border-radius:6px 6px 0 0;color:var(--muted);font-size:11px;line-height:1.8}.pool-source-trace time{color:var(--secondary);font-variant-numeric:tabular-nums}.pool-source-trace [aria-hidden]{color:var(--accent-ink)}.vi-shell .pool-source-trace+#stock-list{border-top-left-radius:0;border-top-right-radius:0}

/* Large displays retain the same shell width; details never inherit the old narrow cap. */
@media(min-width:1100px){
 body.vi-shell.market-detail-active:not([data-web-layout]) .app-shell{max-width:1680px}
 body.vi-shell.market-detail-active:not([data-web-layout]) main{padding:40px 32px 32px;margin-left:var(--sidebar)}
 body.vi-shell.market-detail-active:not([data-web-layout]) .market-switcher{max-width:none;margin:0 auto}
 .vi-shell .market-pool-grid .stock-row .stock-quote,.vi-shell .market-pool-grid .stock-row .stock-plan,.vi-shell .market-pool-grid .stock-row>.star-button{grid-row:1/3}
 .vi-shell .market-pool-grid .stock-row .stock-facts{grid-column:1;grid-row:2;padding:0}
 .vi-shell .market-pool-grid .stock-row .stock-facts[open]{grid-column:1/-1;grid-row:3;padding-top:12px}
 .vi-shell .market-pool-grid .stock-facts summary{min-height:28px;padding:0}
 .vi-shell .stock-row:has(.stock-facts[open]) .stock-quote,.vi-shell .stock-row:has(.stock-facts[open]) .stock-plan,.vi-shell .stock-row:has(.stock-facts[open])>.star-button{grid-row:1/3}
}
/* Flex detail columns must shrink after a desktop-to-phone resize. */
.vi-shell .market-detail-grid{align-items:stretch}
.vi-shell .market-detail-grid>.web-chart-column,.vi-shell .market-detail-grid>.web-entry-column{width:100%;max-width:100%}
@media(min-width:1100px){.vi-shell .market-detail-grid{align-items:start}}
/* Readable metadata and descriptive (non-numeric) report results. */
.vi-shell .feature-metric strong.metric-text{font-size:20px;white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.vi-shell #performance-body>.feature-notice:not(.performance-warning){background:none;border:0;border-radius:0;padding:0;color:var(--muted);font-size:12px}
.vi-shell :is(.mtt-chart-status,.mtt-chart-readout,.mtt-chart-source,.mtt-chart-help,.mtt-chart-pane-labels,.mtt-chart-warmup){font-size:12px;line-height:1.8;color:var(--muted);padding:8px 0}
.vi-shell .stock-plan .hk-plan-brief small,.vi-shell .stock-price-label,.vi-shell .stock-plan .hk-plan-brief>span,.vi-shell .exchange,.vi-shell .stock-facts summary{font-size:11px}
@media(max-width:679px){.vi-shell .stock-facts summary{min-height:36px;padding-block:6px}.vi-shell .stock-plan .hk-plan-brief small{font-size:11px}.vi-shell .exchange{font-size:10px}}

@media(max-width:679px){.vi-shell .pool-shortcuts{margin-bottom:16px;padding-bottom:8px;gap:24px}.vi-shell .pool-shortcut{min-height:36px;padding-block:4px}.vi-shell .novice-steps{margin-bottom:16px}.vi-shell .page-head{margin-bottom:16px}}
/* Titles use size and spacing instead of inherited heavy weights. */
.vi-shell .page-head h1,.vi-shell.admin-mode .page-head h1{font-weight:500;letter-spacing:0}
.vi-shell .admin-brand small{letter-spacing:0;font-size:11px;color:var(--muted);font-weight:400}
.vi-shell .entry-session-guide summary,.vi-shell .list-tools summary,.vi-shell .regional-pool-metadata summary{font-weight:400}
