@charset "UTF-8";
:root{--ink:#18211d;--muted:#69766f;--line:#e9eeeb;--green:#225e47;--positive:#277657;--negative:#b55b4c;--surface:#f4f6f4;font-family:"Avenir Next","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;color:var(--ink);background:#eef1ee;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:default}a{color:inherit;text-decoration:none}button,a,select,summary{touch-action:manipulation}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:4px}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}button{transition:background .15s,opacity .15s}button:active{opacity:.7}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.positive{color:var(--positive)!important}.negative{color:var(--negative)!important}.muted{color:var(--muted);font-size:13px;line-height:1.7}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:14px 22px;border-radius:18px;font-size:14px;font-weight:600}.button.primary{background:var(--ink);color:#fff}.button.primary:hover{background:#2d3e34}.button.secondary{background:var(--surface);color:var(--ink)}.button .icon{width:17px;height:17px}.text-button{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:13px;color:var(--green);padding:0}.text-button .icon{width:15px;height:15px}.icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;padding:0;color:#44594d}.icon-button:hover{background:var(--surface)}.category-dot{width:8px;height:8px;display:inline-block;border-radius:50%;flex-shrink:0}
.mobile-app{max-width:480px;margin:0 auto;min-height:100dvh;background:#fff}.app-header{height:88px;padding:0 28px;display:flex;align-items:center;justify-content:space-between}.header-title,.header-tools{display:flex;align-items:center;gap:12px}.header-tools{gap:2px}.header-tools .icon{width:19px;height:19px}.header-tools .icon-button:last-child{background:var(--surface);margin-left:5px}h1{font-size:24px;letter-spacing:-.7px;font-weight:600}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:var(--ink);color:#fff;border-radius:12px;font-family:Georgia,serif;font-size:25px;font-weight:700;letter-spacing:-2px;padding-right:3px}.wordmark{font-size:13px;letter-spacing:2px;font-weight:650}main{padding:6px 26px 130px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:40px}.section-heading h2{font-size:17px;font-weight:600;letter-spacing:-.4px}.section-heading>span,.section-heading h2>span{font-size:12px;color:var(--muted);font-weight:400}.section-heading h2>span{margin-left:6px}.content-section{padding:24px 0;border-top:1px solid var(--line);margin-top:24px}
.wealth-overview{padding:9px 2px 24px}.wealth-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px}.wealth-top select{border:0;background:var(--surface);border-radius:12px;padding:9px 10px;font-size:12px;min-height:34px;color:var(--ink)}.total-value{font-size:clamp(39px,11.8vw,56px);line-height:1.16;font-weight:500;letter-spacing:-2.7px;margin-top:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.wealth-meta{display:flex;align-items:center;gap:8px;margin-top:11px;font-size:14px;line-height:24px;font-variant-numeric:tabular-nums}.wealth-meta b{font-weight:500;margin-left:3px}.period-label{font-size:11px;color:var(--muted)}.info-button{width:23px;height:23px;border:1px solid #dae3dc;font-family:Georgia,serif;font-size:12px;color:var(--muted)}.chart-toolbar{display:flex;justify-content:space-between;align-items:center;margin:22px 0 4px}.chart-toolbar>.icon-button{color:#74847a}.chart-toolbar>.icon-button>.icon{width:17px;height:17px}.period-picker{display:flex;gap:4px;background:var(--surface);border-radius:14px;padding:4px}.period-picker button{min-width:57px;min-height:37px;border-radius:11px;font-size:12px;font-weight:550;color:var(--muted)}.period-picker button.selected{color:var(--ink);background:#fff;box-shadow:0 2px 7px #142b1610}.trend-container{position:relative;margin:5px -3px 0}.trend-canvas{display:block;width:100%;height:154px;overflow:visible;touch-action:pan-y}.trend-readout{height:20px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.trend-axis{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);padding-top:8px}.trend-empty{height:146px;display:flex;align-items:center;justify-content:center}.trend-empty .text-button{font-size:12px;color:var(--muted)}.overview-stats{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid var(--line);padding-top:22px;margin-top:24px}.pnl-total,.cash-stat{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:0;font-variant-numeric:tabular-nums}.pnl-total>span,.cash-stat>span{font-size:12px;color:var(--muted)}.pnl-total .icon{width:11px;height:11px}.pnl-total>strong,.cash-stat>strong{font-size:21px;font-weight:550;letter-spacing:-.5px}.risk-pill{display:flex;align-items:center;gap:7px;margin-top:18px;color:#9c6b38;background:#fbf5eb;border-radius:13px;padding:10px 12px;font-size:12px;width:100%}.risk-pill .icon{width:16px;height:16px}.risk-pill .icon:last-child{margin-left:auto;width:12px;height:12px}
.quiet-empty{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;min-height:310px;padding:30px 15px;gap:24px}.empty-emblem{width:82px;height:82px;background:#f3f6f2;border:1px solid #edf1eb;border-radius:28px;display:grid;place-items:center;color:#536c5b;box-shadow:0 8px 30px #192f1f04}.empty-emblem .icon{width:31px;height:31px;stroke-width:1.2}.quiet-empty h2{font-size:19px;letter-spacing:-.5px;font-weight:500}.quiet-empty .button{min-width:180px}.import-link{display:flex;justify-content:center;margin:0 auto;color:var(--muted);font-size:12px}.empty-state{display:flex;flex-direction:column;gap:16px;align-items:center;padding:32px 16px;color:var(--muted);font-size:14px}
.allocation-section{padding:20px 0 24px;border-top:1px solid var(--line)}.allocation-body{display:flex;align-items:center;gap:28px;padding:18px 0 14px}.donut-wrap{width:168px;height:168px;position:relative;flex-shrink:0}.donut{display:block;width:100%;height:100%}.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;pointer-events:none}.donut-center strong{font-size:36px;letter-spacing:-1.3px;font-weight:500;font-variant-numeric:tabular-nums}.donut-center strong.is-percentage{font-size:26px}.donut-center span{font-size:11px;color:var(--muted)}.allocation-legend{flex:1;min-width:0}.legend-row{display:flex;align-items:center;gap:9px;text-align:left;width:100%;padding:10px 0;min-height:40px;font-size:12px;color:var(--muted)}.legend-row strong{margin-left:auto;color:var(--ink);font-weight:550;font-variant-numeric:tabular-nums;font-size:13px}.legend-row.selected{color:var(--ink)}.chart-reset{font-size:12px;color:var(--green);padding:8px 0;min-height:44px}.market-details{font-size:12px;color:var(--muted)}.market-details summary{display:flex;align-items:center;justify-content:space-between;min-height:44px}.market-details .icon{width:12px;height:12px}.market-details p{font-size:12px;line-height:1.8;margin-top:12px}.exposure-chips{display:flex;flex-wrap:wrap;gap:12px 18px;margin-top:12px}.exposure-chips>span{display:flex;gap:8px;font-size:12px}.exposure-chips b{color:var(--ink);font-weight:500}.allocation-strip{display:flex;width:100%;height:7px;overflow:hidden;gap:2px;border-radius:8px;margin:18px 0 24px}.allocation-strip i{height:100%;display:block}
.holdings-section{border-top:1px solid var(--line);padding-top:22px}.table-tools{display:flex;gap:0}.table-tools .icon-button:last-child{background:var(--surface)}.table-tools .icon{width:18px;height:18px}.category-filters{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:12px 0}.category-filters::-webkit-scrollbar{display:none}.category-filters button{white-space:nowrap;padding:9px 12px;border-radius:12px;font-size:12px;color:var(--muted);min-height:38px}.category-filters button.active{background:var(--surface);color:var(--ink);font-weight:550}.search-row{display:flex;gap:10px;padding:12px 0}.search-row input{flex:1;min-width:0}.search-row select{width:78px}.position-row{display:flex;align-items:center;gap:12px;width:100%;padding:18px 0;border-bottom:1px solid var(--line);text-align:left;min-height:80px}.position-row:last-child{border-bottom:0}.asset-icon{width:43px;height:43px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);color:#547362;flex-shrink:0;font-weight:600;font-size:17px}.asset-icon svg{width:22px;height:22px}.brand-logo{width:23px;height:23px;display:block;background:currentColor;mask-size:contain;mask-position:center;mask-repeat:no-repeat;-webkit-mask-size:contain;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat}.brand-btc{background:#fff2db;color:#c78426}.brand-eth{background:#eff0fa;color:#67718f}.brand-nvda{background:#eff7df;color:#5a7b27}.brand-tencent{background:#edf2fc;color:#5777ad;font-size:17px}.asset-etf,.asset-fund{background:#eff4f0;color:#547c64}.asset-cash{background:#f1f2ed;color:#747c60}.asset-cn{background:#f3f2fa;color:#767594}.asset-hk{background:#f5eef3;color:#99718e}.asset-identity{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.asset-identity strong{font-size:15px;font-weight:600;letter-spacing:-.2px}.asset-identity>span{font-size:11px;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-warning{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#947449}.quote-warning i{width:4px;height:4px;border-radius:50%;background:currentColor}.position-value{display:flex;flex-direction:column;align-items:flex-end;gap:6px;font-variant-numeric:tabular-nums;flex-shrink:0;max-width:53%}.position-value strong{font-size:17px;font-weight:550;letter-spacing:-.5px}.position-value>span{font-size:10px;white-space:nowrap}
.bottom-nav{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;justify-content:space-around;align-items:center;width:calc(100% - 36px);max-width:412px;background:#fff;padding:8px 7px;border:1px solid #e8ede9;border-radius:25px;box-shadow:0 6px 28px #182b1c12;z-index:20}.bottom-nav button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:54px;flex:1;color:#65776c;font-size:10px;border-radius:17px;padding:5px 3px}.bottom-nav .icon{width:21px;height:21px;stroke-width:1.5}.bottom-nav button.active{background:var(--ink);color:#fff}.bottom-nav button.active span{font-weight:500}.nav-alert{position:absolute;width:5px;height:5px;border-radius:50%;background:#bd9666;top:9px;right:24px}
.analysis-pnl{background:#1e3027;padding:25px 24px;border:0;border-radius:28px;color:#fff;margin-top:0}.pnl-hero{display:flex;flex-direction:column;gap:12px;padding-bottom:22px}.pnl-hero>span{font-size:12px;color:var(--muted)}.pnl-hero>strong{font-size:clamp(30px,8.4vw,40px);font-weight:500;letter-spacing:-1.5px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.pnl-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:19px 0;border-top:1px solid var(--line)}.pnl-breakdown>div{display:flex;flex-direction:column;gap:9px;min-width:0}.pnl-breakdown span{font-size:11px;color:var(--muted)}.pnl-breakdown b{font-size:17px;font-weight:500;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.analysis-pnl .pnl-hero>span,.analysis-pnl .pnl-breakdown span{color:#b5c7b9}.analysis-pnl .pnl-breakdown{border-color:#ffffff18;padding-bottom:0}.analysis-pnl .positive{color:#b9e6cd!important}.analysis-pnl .negative{color:#ffbbad!important}.analysis-pnl .muted{color:#fff}.analysis-currency{display:block;margin-top:14px;font-size:10px;color:#b5c7b9}.analysis-stats{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:14px;padding:20px 0}.analysis-stats>div{display:flex;flex-direction:column;gap:10px;min-width:0}.analysis-stats span{font-size:11px;color:var(--muted)}.analysis-stats strong{font-size:25px;letter-spacing:-.8px;font-weight:500;font-variant-numeric:tabular-nums}.analysis-stats small{font-size:11px;color:var(--muted);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.analysis-distribution{font-size:12px;color:var(--muted)}.analysis-distribution summary{display:flex;align-items:center;justify-content:space-between;min-height:44px}.analysis-distribution .icon{width:12px;height:12px}.analysis-composition>div{display:grid;grid-template-columns:66px 1fr 45px;gap:12px;align-items:center;padding:11px 0;font-size:12px}.analysis-composition>div>span{display:flex;align-items:center;gap:7px}.analysis-composition b{font-size:11px;font-weight:500;text-align:right;font-variant-numeric:tabular-nums}.analysis-bar{height:5px;border-radius:6px;background:var(--surface);overflow:hidden}.analysis-bar i{display:block;height:100%;border-radius:6px}.analysis-risk{border-bottom:1px solid var(--line)}.analysis-risk:last-child{border:0}.analysis-risk summary{display:flex;gap:10px;align-items:center;min-height:58px;font-size:13px}.analysis-risk summary>span{flex:1}.analysis-risk summary>i{width:6px;height:6px;border-radius:50%;background:#93a69a}.analysis-risk.warn summary>i{background:#bd9963}.analysis-risk.ok summary>i{background:#418464}.analysis-risk summary .icon{width:13px;height:13px;color:var(--muted)}.analysis-risk p{padding:0 0 18px 16px;font-size:12px;color:var(--muted);line-height:1.9}.analysis-risk[open] .icon{transform:rotate(90deg)}.analysis-sales>details>summary{min-height:44px;padding:13px 0;font-size:12px;color:var(--muted)}.analysis-sales>details>summary>span{float:right}
.pnl-asset-row,.sale-record{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:18px 0;border-bottom:1px solid var(--line);min-height:74px}.pnl-asset-row>span:first-child{display:flex;align-items:center;gap:12px;min-width:0}.pnl-asset-row>span:first-child>span,.sale-record>span{display:flex;flex-direction:column;gap:7px;min-width:0}.pnl-asset-row>span:last-child,.sale-record>span:last-child{display:flex;flex-direction:column;gap:7px;align-items:flex-end;flex-shrink:0;max-width:52%;font-variant-numeric:tabular-nums}.pnl-asset-row b,.sale-record b{font-size:15px;font-weight:550}.pnl-asset-row small,.sale-record small{font-size:11px;color:var(--muted);line-height:1.5}.pnl-asset-row>span:first-child small{max-width:132px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pnl-empty{font-size:12px;color:var(--muted);padding:18px 0}.pnl-method,.pnl-voided{margin-top:20px;font-size:12px;color:var(--muted);line-height:1.9}.pnl-method summary,.pnl-voided summary{min-height:44px;display:flex;align-items:center}.pnl-method p{margin:10px 0}.pnl-section-title{margin:24px 0 6px}.pnl-section-title h3{font-size:15px;font-weight:550}.pnl-section-title>span{font-size:11px}.asset-detail-title{display:flex;align-items:center;gap:14px;padding:8px 0 26px}.asset-detail-title>span:last-child{display:flex;flex-direction:column;gap:8px;font-size:14px;min-width:0}.asset-detail-title small{color:var(--muted);font-size:11px;line-height:1.6}.pnl-facts{display:grid;grid-template-columns:1fr 1fr;gap:24px 16px;padding:24px 0}.pnl-facts>div{display:flex;flex-direction:column;gap:10px;min-width:0}.pnl-facts span{font-size:11px;line-height:1.6;color:var(--muted)}.pnl-facts b{font-size:16px;font-weight:500;overflow-wrap:anywhere}.pnl-detail-actions{display:flex;gap:10px}.pnl-detail-actions .button{flex:1;font-size:12px;padding:13px 9px}.sale-preview{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px;background:var(--surface);border-radius:18px;margin-top:22px;font-size:12px}.sale-preview b{font-size:18px;font-weight:500}
.sector-section{margin-top:27px;padding:0 0 24px;border:0}.sector-section .text-button{font-size:12px}.sector-caption{display:flex;align-items:center;justify-content:space-between;margin:8px 0 17px;color:var(--muted);font-size:11px}.sector-treemap{position:relative;aspect-ratio:100/80;width:calc(100% + 6px);margin:0 -3px}.sector-tile{position:absolute;min-width:0;padding:3px;overflow:hidden;text-align:left}.sector-tile>span{display:flex;width:100%;height:100%;flex-direction:column;gap:8px;align-items:flex-start;justify-content:center;padding:13px;border-radius:16px;background:var(--sector-color);color:var(--sector-text,#fff);overflow:hidden}.sector-tile b{font-size:12px;font-weight:500;line-height:1.3}.sector-tile strong{font-size:25px;font-weight:500;letter-spacing:-.8px;font-variant-numeric:tabular-nums}.sector-tile small{font-size:10px;opacity:.85}.sector-small>span{padding:6px;gap:4px;border-radius:9px}.sector-small b,.sector-flat b{font-size:10px;white-space:nowrap}.sector-small strong,.sector-flat strong{font-size:15px;white-space:nowrap}.sector-flat>span{padding:7px;gap:4px}.sector-flat small{display:none}.sector-unknown>span{color:#516459;background:#e0e7e0}.sector-tile:focus-visible>span{outline:2px solid #1c382a;outline-offset:-3px}.sector-insight{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--muted);padding:17px 0 12px}.sector-insight b{color:var(--ink);font-weight:550}.sector-insight>span{margin-left:auto}.sector-legend{font-size:12px;color:var(--muted);border-top:1px solid var(--line)}.sector-legend>summary{min-height:44px;display:flex;align-items:center;justify-content:space-between}.sector-legend .icon{width:12px;height:12px}.sector-legend button{display:grid;grid-template-columns:1fr 45px 90px;align-items:center;gap:8px;text-align:left;width:100%;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px}.sector-legend button>span:first-child{display:flex;gap:8px;align-items:center}.sector-legend button>b,.sector-legend button>span:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.sector-legend p,.sector-detail-note{font-size:12px;color:var(--muted);line-height:1.9;margin-top:16px}.sector-ai-trigger{display:flex;gap:6px;align-items:center;min-height:44px}.sector-ai-trigger .icon{width:15px;height:15px}.sector-ai-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:var(--muted)}.sector-ai-footer .text-button{font-size:12px}.sector-ai-error{background:#fcf1e8;color:#9a654a;padding:12px;border-radius:13px;font-size:12px;line-height:1.8}.sector-empty{padding:48px 0;text-align:center;color:var(--muted)}.sector-detail-total{display:flex;flex-direction:column;gap:10px;margin:6px 0 24px}.sector-detail-total strong{font-size:42px;letter-spacing:-1.7px;font-weight:500}.sector-detail-total>span{font-size:12px;color:var(--muted)}.sector-contributor{display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:left;width:100%;padding:18px 0 12px}.sector-contributor>span{display:flex;flex-direction:column;gap:8px;min-width:0}.sector-contributor>span:last-child{align-items:flex-end;flex-shrink:0}.sector-contributor b{font-size:15px;font-weight:550}.sector-contributor small{font-size:11px;color:var(--muted);line-height:1.5}.sector-source{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-bottom:18px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted);line-height:1.7}.sector-source>span{flex:1;min-width:140px}.sector-source a,.sector-source button{min-height:36px;display:inline-flex;align-items:center;color:var(--green)}.sector-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}.sector-edit-grid label{font-size:12px;color:var(--muted)}.sector-edit-grid label>span{display:flex;align-items:center;gap:6px;margin-top:8px}.sector-edit-grid input{min-width:0;width:100%}.sector-edit-grid small{font-size:11px}.sector-weight-total{padding:18px 0;color:var(--green);font-size:13px}.sector-stock-select{display:flex;flex-direction:column;gap:12px;color:var(--muted);font-size:13px;margin-top:22px}.sector-stock-select select{width:100%}.sector-ai-result{border-bottom:1px solid var(--line)}.sector-ai-result>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:82px}.sector-ai-result>summary>span{display:flex;flex-direction:column;gap:8px;min-width:0}.sector-ai-result>summary>span:last-child{text-align:right;flex-shrink:0}.sector-ai-result b{font-size:15px;font-weight:550}.sector-ai-result small{font-size:11px;color:var(--muted);line-height:1.6}.sector-ai-result .icon{width:12px;height:12px}.sector-ai-result p{font-size:13px;color:var(--muted);line-height:1.9;padding-bottom:16px}.sector-ai-result>div{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-bottom:18px}.sector-ai-result[open] .icon{transform:rotate(90deg)}
.daily-schedule{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;padding:0 2px 23px}.macro-section .section-heading{margin-bottom:10px}.macro-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.macro-card{display:flex;flex-direction:column;gap:10px;padding:18px 17px;background:var(--surface);border-radius:21px;min-width:0}.macro-card>span{font-size:12px;color:var(--muted)}.macro-card strong{font-size:27px;font-weight:500;letter-spacing:-1px;font-variant-numeric:tabular-nums}.macro-card small{font-size:10px;color:var(--muted)}.macro-notes{font-size:12px;color:var(--muted);margin:12px 0 24px}.macro-notes>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px}.macro-notes .icon{width:12px;height:12px}.macro-notes p{font-size:12px;line-height:1.9;margin-top:8px}.macro-loading,.report-loading{padding:35px 20px;background:var(--surface);border-radius:22px;font-size:13px;color:var(--muted);text-align:center}.daily-article{border:1px solid var(--line);border-radius:27px;padding:24px;margin-top:14px}.article-cover{display:block}.article-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;font-size:11px;color:var(--muted)}.article-cover>h2{font-size:24px;line-height:1.5;letter-spacing:-.7px;font-weight:550}.article-summary{font-size:13px;line-height:1.9;color:var(--muted);margin-top:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.read-report{display:flex;align-items:center;justify-content:space-between;padding-top:23px;font-size:13px;color:var(--green)}.read-report .icon{width:17px;height:17px}.daily-article[open] .article-summary{display:block;overflow:visible}.daily-article[open] .read-report{display:none}.report-notice{font-size:12px;line-height:1.8;padding:13px;margin-top:18px;border-radius:13px;background:#fcf7ee;color:#8c714c}.article-stats{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:20px 0;font-size:11px;color:var(--muted)}.article-stats b{color:var(--ink);font-weight:500}.article-body>section{padding:28px 0 20px;border-bottom:1px solid var(--line)}.article-chapter{font-size:11px;color:var(--muted);letter-spacing:1px;margin-bottom:10px}.article-body h3{font-size:18px;font-weight:550;line-height:1.6;letter-spacing:-.4px;margin-bottom:17px}.article-body p{font-size:15px;line-height:2;color:#46564b;margin-bottom:18px;overflow-wrap:anywhere}.article-citations{display:flex;flex-wrap:wrap;gap:6px}.article-citations a{font-size:10px;color:var(--green);padding:6px 8px;background:var(--surface);border-radius:8px;line-height:1.6}.article-sources{font-size:12px;color:var(--muted);margin-top:18px}.article-sources summary{padding:14px 0}.article-sources a{display:flex;flex-direction:column;gap:7px;padding:14px 0;border-bottom:1px solid var(--line);line-height:1.7}.article-sources small{font-size:10px}.article-actions{display:flex;gap:10px;margin-top:24px}.article-actions .button{flex:1;font-size:12px;padding:13px 7px}.daily-empty{display:flex;flex-direction:column;align-items:center;gap:18px;padding:35px 18px;text-align:center}.daily-empty .empty-emblem{width:64px;height:64px;border-radius:22px}.daily-empty .empty-emblem .icon{width:27px;height:27px}.daily-empty h2{font-size:17px;font-weight:500;color:var(--muted)}.generate-report{width:100%;margin-top:18px}.report-privacy{font-size:12px;color:var(--muted);line-height:1.9;margin-top:8px}.report-privacy summary{min-height:44px;display:flex;align-items:center}.report-privacy p{padding-bottom:12px}
.allocation-intro{padding:18px 0 24px}.eyebrow{font-size:12px;color:var(--muted)}.allocation-intro h2{font-size:29px;font-weight:500;letter-spacing:-1px;margin:8px 0 22px}.goal-metrics{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:14px}.goal-metrics>div{display:flex;flex-direction:column;gap:12px}.goal-metrics span{font-size:11px;color:var(--muted)}.goal-metrics strong{font-size:29px;font-weight:500;letter-spacing:-.9px;font-variant-numeric:tabular-nums}.goal-metrics strong small{font-size:12px;color:var(--muted);letter-spacing:0}.goal-metrics b{font-size:14px;font-weight:500;line-height:35px}.allocation-plan{margin-top:0}.plan-reason{font-size:13px;line-height:1.8;color:var(--muted);margin:14px 0 18px}.plan-table-head,.plan-row summary{display:grid;grid-template-columns:1fr 48px 46px 94px;gap:7px;align-items:center;font-variant-numeric:tabular-nums}.plan-table-head{font-size:11px;color:var(--muted);padding:12px 0;border-bottom:1px solid var(--line)}.plan-table-head>span:not(:first-child),.plan-row summary>span:not(:first-child),.plan-row summary>strong{text-align:right}.plan-row{border-bottom:1px solid var(--line)}.plan-row summary{font-size:12px;min-height:61px;padding:17px 0}.plan-row summary>span:first-child{display:flex;gap:7px;align-items:center;white-space:nowrap}.plan-row summary>span:nth-child(2){color:var(--muted)}.plan-row strong{font-size:16px;font-weight:550}.plan-row summary>span:last-child{font-size:11px;letter-spacing:-.3px}.plan-row p{font-size:12px;line-height:1.9;color:var(--muted);padding-bottom:18px}.method-note{font-size:12px;color:var(--muted);margin-top:15px}.method-note summary{display:flex;align-items:center;justify-content:space-between;min-height:44px}.method-note .icon{width:12px;height:12px}.method-note p{font-size:12px;line-height:1.9;margin:14px 0}.plan-comparison{display:flex;justify-content:space-between;align-items:center;padding:17px;background:var(--surface);border-radius:17px;font-size:12px;gap:10px}.plan-comparison strong{font-size:16px;font-weight:500;color:var(--ink)}.adopt-plan{width:100%;margin-top:18px}.existing-targets{font-size:13px;color:var(--muted)}.existing-targets>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px}.existing-targets .icon{width:13px;height:13px}.legacy-targets>div{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line)}.legacy-targets b{font-weight:500;color:var(--ink)}.existing-targets .text-button{margin-top:12px}
/* Sheet controls share the same type, shape and spacing as the portfolio. */
dialog{padding:27px 24px 24px;margin:auto auto 0;width:100%;max-width:480px;max-height:91dvh;border:1px solid #e7ede8;border-bottom:0;border-radius:32px 32px 0 0;background:#fff;color:var(--ink);box-shadow:0 -20px 80px #152b1720;overflow:auto}dialog::backdrop{background:#10241666}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.dialog-header h2{font-size:21px;font-weight:550;letter-spacing:-.5px}.close-button{width:44px;height:44px;border-radius:50%;background:var(--surface);font-size:25px;color:var(--muted);padding:0;flex-shrink:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 14px;margin-top:20px}.form-grid label{display:flex;flex-direction:column;gap:9px;font-size:12px;color:var(--muted)}.form-grid [hidden]{display:none}.form-grid .full{grid-column:1/-1}input,select,textarea{color:var(--ink);background:#fafbfa;border:1px solid #e5eae5;border-radius:13px;padding:13px 11px;min-height:46px;font-size:14px;max-width:100%}input::placeholder,textarea::placeholder{color:#8a968e}input[type=number]{font-variant-numeric:tabular-nums}.form-grid input,.form-grid select{width:100%;min-width:0}.form-grid small{font-size:11px;line-height:1.7;color:var(--muted)}.form-error{font-size:12px;line-height:1.8;color:var(--negative);margin-top:15px}.dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.dialog-footer>div{display:flex;gap:8px}.dialog-footer .button{font-size:13px;padding:13px 17px}.form-heading{font-size:15px;font-weight:550;margin:28px 0 18px}.form-heading>span{float:right;font-size:12px}.target-inputs{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}.target-inputs label{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;color:var(--muted)}.target-inputs label>span{display:flex;align-items:center;gap:7px}.target-inputs label>div{white-space:nowrap}.target-inputs input{width:57px;text-align:right;font-size:13px;padding:10px 6px;min-height:40px;margin-right:4px}.goal-styles{display:flex;gap:8px;margin:12px 0 26px}.goal-styles label{flex:1;display:flex;justify-content:center;align-items:center;gap:5px;background:var(--surface);border-radius:14px;min-height:46px;font-size:12px;color:var(--muted)}.goal-styles input{width:12px;min-height:0;padding:0;margin:0;accent-color:var(--green)}.goal-styles label:has(input:checked){color:var(--ink);background:#e8f0e8;box-shadow:inset 0 0 0 1px #c5d6c7}.goal-checkbox{display:flex;align-items:center;gap:8px;margin-top:23px;font-size:12px;line-height:1.7;color:var(--muted)}.goal-checkbox input{width:15px;min-height:0;accent-color:var(--green);padding:0}.table-note{font-size:11px;line-height:1.9;color:var(--muted);margin-top:14px}.form-notes{font-size:12px;color:var(--muted);margin-top:14px}.form-notes>summary{min-height:44px;display:flex;align-items:center}.form-notes p{margin-top:0}.connection-details{font-size:12px;color:var(--muted);margin-top:22px}.connection-details>summary{min-height:44px;display:flex;align-items:center}.connection-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.7}.connection-list b{font-weight:500;text-align:right}.auto-refresh{font-size:12px;color:var(--green);background:var(--surface);padding:13px;border-radius:13px;margin-top:15px}.auto-refresh.enabled{background:#e5f0e5}.history-settings{margin-top:14px}.backup-actions{display:flex;gap:13px}.entry-quote{display:flex;flex-direction:column;gap:10px;padding:20px;margin-top:23px;background:var(--surface);border-radius:22px;font-size:12px;color:var(--muted)}.entry-quote strong{font-size:30px;font-weight:500;letter-spacing:-1px;color:var(--ink);font-variant-numeric:tabular-nums}.entry-quote small{font-size:11px;line-height:1.8}.quote-detail{font-size:12px;color:var(--muted);line-height:1.8}.history-records{margin-top:26px}.history-records h3{font-size:15px;font-weight:550}.history-record{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;padding:18px 0;border-bottom:1px solid var(--line);font-size:12px}.history-record>span{display:flex;flex-direction:column;gap:8px}.history-record>span:last-child{text-align:right}.history-record small{font-size:11px;color:var(--muted)}.data-info p{font-size:13px;line-height:1.9;color:var(--muted);margin-bottom:18px}.agent-composer textarea{width:100%;line-height:1.8;resize:vertical}.ask-toolbar{display:flex;align-items:center;justify-content:space-between;padding-top:12px}.agent-privacy,.agent-privacy p{font-size:11px;color:var(--muted);line-height:1.8;margin-top:12px}.analysis-loading{padding:40px 0;text-align:center;font-size:13px;color:var(--muted)}.analysis-result{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.result-heading{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin-bottom:16px}.report-text{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.95}.banner.warning{font-size:12px;color:#906b3d;background:#fcf6e9;border-radius:15px;padding:15px;line-height:1.8;margin-bottom:18px}
#toast{position:fixed;left:50%;bottom:110px;transform:translate(-50%,12px);background:#1c3026;color:#fff;padding:13px 18px;border-radius:16px;font-size:12px;line-height:1.7;max-width:calc(100% - 40px);width:max-content;pointer-events:none;opacity:0;z-index:100;transition:opacity .18s,transform .18s}#toast.show{opacity:1;transform:translate(-50%,0)}.spinning{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}

@media(max-width:360px){main{padding-left:20px;padding-right:20px}.app-header{padding:0 22px}.total-value{font-size:42px;letter-spacing:-2px}.allocation-body{gap:20px}.donut-wrap{width:144px;height:144px}.legend-row{font-size:11px;gap:7px}.legend-row strong{font-size:12px}.position-row{gap:9px}.asset-icon{width:37px;height:37px}.position-value strong{font-size:15px}.position-value>span{font-size:9px}.analysis-pnl{padding:23px 20px}.analysis-stats{gap:10px}.analysis-stats strong{font-size:21px}.plan-table-head,.plan-row summary{grid-template-columns:1fr 41px 39px 79px;gap:4px}.plan-row summary>span:last-child{font-size:10px}.plan-row strong{font-size:14px}.sector-tile strong{font-size:22px}.sector-small strong,.sector-flat strong{font-size:12px}.sector-small b,.sector-flat b{font-size:9px}.macro-card{padding:17px 14px}.macro-card strong{font-size:25px}.pnl-breakdown b{font-size:15px}.pnl-asset-row>span:first-child small{max-width:100px}.pnl-asset-row b{font-size:13px}dialog{padding-left:20px;padding-right:20px}.goal-styles{gap:5px}.goal-styles label{font-size:11px}.goal-metrics{gap:10px}.goal-metrics b{font-size:12px}.goal-metrics strong{font-size:26px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.schedule-note{font-size:12px;color:var(--muted);padding:12px 0;line-height:1.7}

/* A stationary app shell with one content scroll pane. */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--app-height:100dvh;--app-top:0px;--keyboard-inset:0px;-webkit-text-size-adjust:100%;background:#fff}
html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{position:fixed;inset:0;padding:0;background:#fff}
#app{position:fixed;left:0;right:0;top:var(--app-top);height:var(--app-height);overflow:hidden}
.app-shell{display:grid;grid-template-rows:calc(76px + var(--safe-top)) minmax(0,1fr) auto;width:100%;height:100%;max-width:none;min-height:0;margin:0;border:0;border-radius:0;box-shadow:none;overflow:hidden;background:#fff}
.app-header{height:auto;min-height:0;padding:var(--safe-top) calc(26px + var(--safe-right)) 0 calc(26px + var(--safe-left));background:#fff;z-index:2}
.view-scroll{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;scroll-behavior:auto}
.view-page{padding:16px calc(26px + var(--safe-right)) 32px calc(26px + var(--safe-left));min-height:100%}
.bottom-nav{position:static;transform:none;width:100%;max-width:none;left:auto;bottom:auto;padding:8px calc(16px + var(--safe-right)) calc(8px + var(--safe-bottom)) calc(16px + var(--safe-left));border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:#fff;gap:5px}
.bottom-nav button{min-height:56px;border-radius:17px;min-width:0}.sidebar-brand{display:none}
.position-asset{display:flex;gap:12px;align-items:center;min-width:0;flex:1}.position-quantity,.position-price,.positions-head{display:none}
.modal-open .view-scroll{overflow:hidden}.keyboard-visible .app-shell{grid-template-rows:calc(76px + var(--safe-top)) minmax(0,1fr)}.keyboard-visible .bottom-nav{display:none}
input,select,textarea{font-size:16px}.wealth-top select{font-size:16px;min-height:40px}.target-inputs input{font-size:16px}
dialog{position:fixed;top:auto;bottom:var(--keyboard-inset);left:0;right:0;margin:0 auto;width:calc(100% - var(--safe-left) - var(--safe-right));max-height:calc(var(--app-height) - var(--safe-top) - 12px);padding-bottom:calc(24px + var(--safe-bottom));overscroll-behavior:none;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;scroll-padding:24px}
#toast{bottom:calc(86px + var(--safe-bottom) + var(--keyboard-inset))}.keyboard-visible #toast{bottom:calc(12px + var(--keyboard-inset))}
@media(max-width:360px){.view-page{padding-left:calc(20px + var(--safe-left));padding-right:calc(20px + var(--safe-right))}.app-header{padding-left:calc(22px + var(--safe-left));padding-right:calc(22px + var(--safe-right))}.position-asset{gap:9px}}
@media(min-width:600px) and (max-width:899px){.view-page{max-width:700px;width:100%;margin:0 auto;padding-left:40px;padding-right:40px}.app-header{padding-left:40px;padding-right:40px}.wealth-overview{padding-top:20px}.trend-canvas{height:220px}.allocation-body{gap:50px}.donut-wrap{width:200px;height:200px}.bottom-nav{padding-left:max(40px,calc((100% - 600px)/2));padding-right:max(40px,calc((100% - 600px)/2))}}
@media(max-height:500px) and (max-width:899px){.app-shell{grid-template-rows:calc(62px + var(--safe-top)) minmax(0,1fr) auto}.app-header{padding-left:calc(22px + var(--safe-left));padding-right:calc(22px + var(--safe-right))}.bottom-nav{padding-top:4px;padding-bottom:calc(4px + var(--safe-bottom))}.bottom-nav button{min-height:44px;flex-direction:row;gap:8px}.bottom-nav .icon{width:18px;height:18px}.keyboard-visible .app-shell{grid-template-rows:calc(62px + var(--safe-top)) minmax(0,1fr)}}
/* Desktop: persistent sidebar, broad charts and rows for comparison. */
@media(min-width:900px) and (hover:hover){
 :root{background:#f5f7f5}body{background:#f5f7f5}.app-shell{grid-template-columns:196px minmax(0,1fr);grid-template-rows:88px minmax(0,1fr);background:#f5f7f5}
 .app-header{grid-column:2;grid-row:1;padding:0 32px;background:#f5f7f5;border-bottom:1px solid #e8ede8}.header-title>.brand-mark,.header-title>.wordmark{display:none}.header-title>.sr-only{position:static;width:auto;height:auto;clip:auto;margin:0;overflow:visible;white-space:normal;padding:0}.app-header h1{font-size:24px}.header-tools{gap:8px}.header-tools .icon-button{background:#fff!important;border:1px solid #e7ece7;margin-left:0!important}
 .bottom-nav{grid-column:1;grid-row:1/-1;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:32px 18px;border:0;border-right:1px solid #e3e9e3;gap:8px;z-index:3}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 6px;margin-bottom:42px}.sidebar-brand .wordmark{font-size:11px;letter-spacing:1.5px}.sidebar-brand .brand-mark{width:32px;height:32px;font-size:23px}.bottom-nav button{flex:0;flex-direction:row;justify-content:flex-start;gap:14px;padding:16px 20px;font-size:14px;min-height:56px;border-radius:16px;text-align:left}.bottom-nav .icon{width:20px;height:20px}.bottom-nav button:hover:not(.active){background:#f1f5f0}.nav-alert{top:20px;right:15px}
 .view-scroll{grid-column:2;grid-row:2}.view-page{max-width:1480px;margin:0 auto;padding:28px 32px 40px;display:grid;gap:24px;align-content:start;align-items:start;min-height:100%}.view-page>*,.view-page .banner{min-width:0}.view-page>.banner{grid-column:1/-1;margin:0}
 .view-overview{grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr)}.wealth-overview,.allocation-section,.holdings-section,.view-analysis .content-section,.allocation-intro,.allocation-plan,.existing-targets,.macro-section,.daily-article,.daily-empty,.report-loading,.view-overview>.quiet-empty{background:#fff;border:1px solid #e6ece6;border-radius:28px;padding:28px;margin:0;min-width:0}
 .wealth-overview{padding:28px 30px;height:100%}.total-value{font-size:56px;letter-spacing:-2.5px}.wealth-meta{margin-top:14px}.chart-toolbar{margin-top:26px}.trend-canvas{height:240px}.trend-empty{height:240px}.overview-stats{margin-top:28px;padding-top:24px}.overview-stats strong{font-size:25px}.allocation-section{height:100%}.allocation-body{flex-direction:column;gap:15px;padding:28px 0 15px}.donut-wrap{width:190px;height:190px}.allocation-legend{width:100%}.legend-row{font-size:13px;padding:12px 0}.legend-row strong{font-size:14px}.market-details{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}
 .holdings-section{grid-column:1/-1;padding:24px 28px}.positions-head,.position-row{display:grid;grid-template-columns:minmax(150px,1fr) 82px 105px minmax(160px,.55fr);gap:20px}.positions-head{font-size:11px;color:var(--muted);padding:16px 0 13px;border-bottom:1px solid var(--line)}.positions-head>span:not(:first-child){text-align:right}.position-row{min-height:88px;padding:18px 0}.position-asset{gap:14px}.position-quantity,.position-price{display:flex;flex-direction:column;align-items:flex-end;font-size:14px;font-variant-numeric:tabular-nums;gap:6px;overflow-wrap:anywhere}.position-price small{font-size:10px;color:var(--muted)}.position-value strong{font-size:18px}.position-value>span{font-size:12px}.asset-identity>span{max-width:240px;font-size:12px}.category-filters{padding:15px 0 0}.search-row{max-width:520px}.search-row select{width:100px}.view-overview.is-empty>.wealth-overview{height:auto;min-height:260px}.view-overview.is-empty>.quiet-empty{min-height:360px}.view-overview.is-empty>.import-link{grid-column:2;justify-self:center;margin:0}
 .view-analysis{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);grid-template-areas:"pnl sector" "exposure sector" "assets risks" "sales sales"}.analysis-pnl{grid-area:pnl}.sector-section{grid-area:sector}.analysis-exposure{grid-area:exposure}.analysis-assets{grid-area:assets}.analysis-risks{grid-area:risks}.analysis-sales{grid-area:sales}.view-analysis .analysis-pnl{background:#1e3027;border-color:#1e3027}.pnl-hero>strong{font-size:42px}.sector-treemap{max-height:430px;margin-top:20px}.analysis-stats{padding:22px 0 15px}.analysis-stats strong{font-size:27px}.view-analysis.is-empty{display:block}.view-analysis.is-empty .quiet-empty{min-height:460px}
 .view-rebalance{grid-template-columns:minmax(220px,.75fr) minmax(0,1.6fr)}.allocation-intro{grid-column:1;grid-row:1}.allocation-intro h2{margin-top:26px}.goal-metrics{grid-template-columns:1fr;gap:22px;margin-top:32px}.goal-metrics>div{flex-direction:row;align-items:center;justify-content:space-between}.goal-metrics strong{font-size:30px}.allocation-plan{grid-column:2;grid-row:1/3}.existing-targets{grid-column:1;grid-row:2}.plan-table-head,.plan-row summary{grid-template-columns:1fr 65px 65px 112px;gap:12px}.plan-row summary{font-size:13px;min-height:68px}.plan-row summary>span:last-child{font-size:13px}.plan-row strong{font-size:18px}.allocation-strip{height:9px;margin-bottom:20px}.view-rebalance.is-empty>.quiet-empty{grid-column:2;background:#fff;border:1px solid #e6ece6;border-radius:28px;min-height:360px}
 .view-daily{grid-template-columns:minmax(0,1fr) 300px}.daily-schedule,.schedule-note,.macro-section{grid-column:1/-1}.daily-schedule{margin:0;min-height:26px;font-size:12px}.macro-section{padding:24px 28px}.macro-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.macro-card{padding:22px}.macro-card strong{font-size:30px}.macro-notes{margin-top:12px}.daily-article,.daily-empty,.report-loading{grid-column:1;grid-row:3/6;margin:0}.view-daily:has(.schedule-note) .daily-article,.view-daily:has(.schedule-note) .daily-empty,.view-daily:has(.schedule-note) .report-loading{grid-row:4/7}.generate-report{grid-column:2;margin:0;min-height:56px}.report-privacy{grid-column:2;margin:0;padding:4px 8px}.article-cover h2{font-size:25px}.article-body{max-width:760px;margin:0 auto}.article-body p{font-size:16px}.daily-empty{min-height:280px}.daily-article{padding:30px}.daily-article[open]{grid-column:1}.article-summary{font-size:14px}.read-report{margin-top:24px}
 dialog{inset:0;margin:auto;width:min(560px,calc(100% - 80px));max-width:560px;max-height:calc(var(--app-height) - 80px);border:1px solid #e5ece5;border-radius:30px;padding:30px}.dialog-header{margin-bottom:24px}.dialog-header h2{font-size:23px}#toast{left:calc(50% + 98px);bottom:28px}.keyboard-visible .app-shell{grid-template-rows:88px minmax(0,1fr)}.keyboard-visible .bottom-nav{display:flex}
}
@media(min-width:1200px) and (hover:hover){.app-shell{grid-template-columns:224px minmax(0,1fr)}.bottom-nav{padding:34px 22px}.sidebar-brand .wordmark{font-size:12px}.app-header{padding:0 40px}.view-page{padding:32px 40px 48px;gap:28px}.trend-canvas,.trend-empty{height:270px}.donut-wrap{width:210px;height:210px}.macro-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.macro-card{padding:20px 16px}.macro-card strong{font-size:27px}.view-daily{grid-template-columns:minmax(0,1fr) 320px}.positions-head,.position-row{grid-template-columns:minmax(200px,1fr) 110px 130px 220px;gap:24px}#toast{left:calc(50% + 112px)}}

/* Column stacks stay compact even when a neighboring panel is much taller. */
.trend-readout:empty{height:0}.article-meta{flex-wrap:wrap;gap:8px}
@media(min-width:900px) and (hover:hover){
 .wealth-overview{padding:24px 28px}.chart-toolbar{margin-top:18px}.trend-canvas,.trend-empty{height:200px}.overview-stats{margin-top:20px;padding-top:18px}.allocation-body{padding-top:20px;gap:10px}.donut-wrap{width:190px;height:190px}.legend-row{padding:9px 0}
 .view-analysis{grid-template-areas:"primary secondary" "sales sales"}.analysis-primary{grid-area:primary;display:flex;flex-direction:column;gap:24px;min-width:0}.analysis-secondary{grid-area:secondary;display:flex;flex-direction:column;gap:24px;min-width:0}.analysis-primary>.content-section,.analysis-secondary>.content-section{width:100%}
 .configuration-side{grid-column:1;display:flex;flex-direction:column;gap:24px;min-width:0}.allocation-plan{grid-row:1}.configuration-side>.content-section,.configuration-side>.allocation-intro{width:100%}
}
@media(min-width:1200px) and (hover:hover){.analysis-primary,.analysis-secondary,.configuration-side{gap:28px}}

@media(min-width:600px) and (hover:none){.view-page{max-width:700px;width:100%;margin:0 auto;padding-left:calc(40px + var(--safe-left));padding-right:calc(40px + var(--safe-right))}}

/* A compact research workspace: numbers align, evidence stays one click away. */
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Helvetica Neue","PingFang SC",sans-serif;--line:#e1e6e4;--surface:#f2f4f3}
.view-page{padding-top:12px;padding-left:18px;padding-right:18px}.section-heading h2{font-size:15px;letter-spacing:0}.content-section{margin-top:16px;padding-top:18px;padding-bottom:18px}.wealth-overview{padding-bottom:18px}.total-value{font-size:42px;letter-spacing:-1.6px}.wealth-meta{margin-top:6px;font-size:13px}.chart-toolbar{margin-top:14px}.trend-canvas{height:140px}.overview-stats{margin-top:14px;padding-top:14px;gap:16px}.risk-pill{padding:9px 10px;border-radius:8px;margin-top:12px}.allocation-section{padding-top:12px;padding-bottom:12px}.allocation-body{gap:20px;padding:8px 0}.donut-wrap{width:140px;height:140px}.donut-center strong{font-size:30px}.legend-row{padding:6px 0;min-height:34px}.holdings-section{padding-top:12px}.position-row{min-height:65px;padding:12px 0}.asset-icon{width:34px;height:34px;font-size:15px}.asset-icon .brand-logo{width:20px;height:20px}.asset-identity strong{font-size:14px}.asset-identity>span{font-size:11px}.position-value>strong{font-size:15px}.position-value>span{font-size:11px}.category-filters{padding:8px 0}.category-filters button{border-radius:6px}.button{border-radius:10px;min-height:44px;padding:11px 18px}.period-picker{border-radius:8px;padding:3px}.period-picker button{border-radius:6px;min-height:32px;min-width:46px}.section-heading{min-height:36px}.app-header h1{font-size:21px}.brand-mark{border-radius:8px}.quiet-empty{min-height:260px}.analysis-stats{gap:12px}.analysis-stats strong{font-size:23px}.pnl-hero>strong{font-size:32px}.sector-treemap{height:260px}.goal-metrics strong{font-size:25px}
.analysis-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);padding:0 0 8px;margin:0 0 14px;grid-column:1/-1;grid-area:auto}.analysis-tabs button{padding:10px 11px;border-radius:6px;font-size:12px;color:var(--muted);min-height:42px;white-space:nowrap}.analysis-tabs button.active{background:var(--ink);color:#fff}.analysis-tabs span{opacity:.65;font-variant-numeric:tabular-nums}.research-panel{min-width:0}.research-tools{display:flex;gap:12px}.research-tools .text-button{font-size:12px;min-height:36px}.research-error{font-size:12px;color:var(--negative);padding:8px 0}.research-table-head{display:none}.research-row{display:grid;grid-template-columns:minmax(0,1fr) 46px 54px;gap:4px 12px;align-items:center;width:100%;padding:13px 0;text-align:left;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.research-identity{min-width:0;grid-column:1;grid-row:1/3}.research-identity>b{display:flex;gap:7px;align-items:baseline;font-size:14px;line-height:1.4}.research-identity em{font-style:normal;font-size:11px;font-weight:400;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.research-identity>small{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.6;margin-top:5px}.research-weight{font-size:12px;text-align:right;grid-column:2;grid-row:1}.research-score{grid-column:3;grid-row:1/3;text-align:right;display:flex;flex-direction:column;gap:2px}.research-score>b{font-size:24px;font-weight:600;line-height:1.2}.research-score>small{font-size:9px;line-height:1.4;color:var(--muted)}.score-good>b{color:var(--green)}.score-weak>b{color:var(--negative)}.research-return{grid-column:2;grid-row:2;font-size:11px;text-align:right}.research-rsi,.research-date{display:none}.watch-row-tools{display:flex;gap:14px;padding:8px 0;border-bottom:1px solid var(--line);align-items:center;color:var(--muted);font-size:11px}.watch-row-tools>span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.watch-row-tools>button{font-size:11px;min-height:30px;padding:0 6px;color:var(--green)}.watch-row-tools+.research-row{border-top:0}.research-empty{padding:36px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}.research-empty h3{font-size:15px;font-weight:500}.research-method{border-top:1px solid var(--line);margin-top:18px;font-size:11px;color:var(--muted)}.research-method summary{padding:12px 0;min-height:40px}.research-method p{margin:6px 0;line-height:1.8}.research-subtitle{font-size:12px;color:var(--muted);margin-top:4px}.research-detail-toolbar{display:flex;align-items:center;gap:14px;font-size:12px;border-bottom:1px solid var(--line);padding-bottom:8px}.research-detail-toolbar>span{margin-right:auto}.research-detail-toolbar .text-button{font-size:11px;min-height:36px}.research-score-summary{display:flex;align-items:center;gap:24px;padding:20px 0}.research-score-summary>strong{font-size:38px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}.research-score-summary>strong>small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:5px}.research-score-summary>div{display:flex;flex-direction:column;gap:8px;font-size:13px}.research-score-summary>div>span{font-size:10px;color:var(--muted)}.research-gap{font-size:11px;line-height:1.8;color:var(--muted);margin:8px 0}.factor-breakdown>details{border-top:1px solid var(--line)}.factor-breakdown summary{display:grid;grid-template-columns:85px 1fr 57px;gap:14px;align-items:center;min-height:42px;font-size:12px}.factor-breakdown summary i{height:4px;background:var(--surface);overflow:hidden}.factor-breakdown summary i b{display:block;height:4px;background:var(--green)}.factor-breakdown summary strong{font-size:13px;text-align:right}.factor-breakdown summary strong small{font-size:10px;font-weight:400;color:var(--muted)}.factor-breakdown p{font-size:11px;color:var(--muted);line-height:1.8;margin-bottom:10px}.signal-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;font-size:11px;padding:14px 0}.signal-metrics span{display:flex;justify-content:space-between;color:var(--muted);gap:10px}.signal-metrics b{color:var(--ink);font-weight:500}.research-conditions{background:var(--surface);border-radius:8px;padding:13px 14px}.research-conditions h3{font-size:12px;margin-bottom:8px}.research-conditions p{font-size:11px;line-height:1.8;color:var(--muted)}.evidence-section{padding:16px 0 0;margin-top:16px;border-top:1px solid var(--line)}.evidence-section h3{font-size:14px}.evidence-section .section-heading>a{font-size:10px;color:var(--green)}.evidence-section>p{font-size:12px;line-height:1.8;margin-top:6px}.research-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.research-tags span{font-size:10px;color:var(--muted);padding:4px 7px;background:var(--surface);border-radius:4px}.financial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px 0}.financial-grid>div{display:flex;flex-direction:column;gap:5px}.financial-grid span,.financial-grid small{color:var(--muted);font-size:10px;line-height:1.5}.financial-grid strong{font-variant-numeric:tabular-nums;font-size:17px;font-weight:550}.evidence-news>a{display:flex;flex-direction:column;gap:6px;padding:12px 0;border-bottom:1px solid var(--line)}.evidence-news b{font-size:12px;font-weight:500;line-height:1.6}.evidence-news small{font-size:10px;color:var(--muted)}.filing-list{margin-top:14px;font-size:11px}.filing-list summary{min-height:40px;display:flex;justify-content:space-between;align-items:center}.filing-list a{display:flex;flex-direction:column;gap:4px;padding:10px 0;color:var(--muted)}.filing-list a>b{color:var(--ink);font-weight:500}.identity-candidates{display:flex;flex-direction:column;gap:8px;margin-top:12px}.identity-candidates button{background:var(--surface);padding:12px;text-align:left;border-radius:6px;font-size:12px}.identity-candidates small{display:block;color:var(--muted);margin-top:4px}.macro-card{padding:12px;border-radius:8px;border:1px solid var(--line);background:transparent}.macro-grid{gap:8px}.macro-card strong{font-size:23px}.macro-change{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.macro-card small{font-size:9px}.macro-section{padding:12px 0}.article-cover h2{font-size:22px;line-height:1.5}.article-summary{font-size:13px;line-height:1.8}.daily-article{padding:18px 0}.article-chapter{font-size:10px;letter-spacing:1px;color:var(--green);padding-top:16px}.article-body section{padding:16px 0;border-bottom:1px solid var(--line)}.article-body h3{font-size:17px;margin-top:8px}.article-body p{font-size:14px;line-height:1.95}.article-citations a{font-size:10px;line-height:1.6}.legacy-report{grid-column:1/-1;grid-row:auto}.report-notice{font-size:11px;padding:10px 12px;border-radius:6px}.article-meta{font-size:10px}.read-report{font-size:11px}.plan-row summary{min-height:52px}.content-section.analysis-pnl{border-radius:12px}
@media(min-width:900px) and (hover:hover){
 .app-shell{grid-template-columns:174px minmax(0,1fr);grid-template-rows:64px minmax(0,1fr)}.app-header{height:64px;padding:0 24px}.app-header h1{font-size:20px}.bottom-nav{padding:24px 14px}.sidebar-brand{margin-bottom:24px;gap:9px}.sidebar-brand .wordmark{font-size:10px;letter-spacing:1.5px}.bottom-nav>button{min-height:44px;border-radius:8px;padding:12px 14px;font-size:12px}.bottom-nav>button>.icon{width:18px;height:18px}.view-page{padding:20px 24px 32px;gap:18px;max-width:1600px}.wealth-overview,.allocation-section,.holdings-section,.content-section,.allocation-intro,.macro-section,.daily-article{border-radius:12px;padding:18px 20px}.total-value{font-size:43px}.view-overview{grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr)}.trend-canvas,.trend-empty{height:165px}.chart-toolbar{margin-top:12px}.overview-stats{margin-top:14px;padding-top:12px}.allocation-body{padding:10px 0;gap:12px}.donut-wrap{width:140px;height:140px}.positions-head,.position-row{grid-template-columns:minmax(180px,1fr) 90px 110px 200px;gap:18px}.position-row{min-height:62px;padding:10px 0}.positions-head{font-size:11px;padding-top:8px}.position-quantity,.position-price{font-size:13px}.position-price>small{font-size:9px}.holdings-section{grid-column:1/-1}.view-analysis{display:block}.analysis-tabs{margin:0 0 18px}.analysis-primary,.analysis-secondary{gap:18px}.view-analysis:has(.analysis-primary){display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-areas:"tabs tabs" "primary secondary" "sales sales"}.view-analysis:has(.analysis-primary)>.analysis-tabs{grid-area:tabs;margin-bottom:0}.research-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px}.research-table-head,.research-row{display:grid;grid-template-columns:minmax(240px,1fr) 76px 78px 86px 64px 90px;gap:16px;align-items:center}.research-table-head{color:var(--muted);font-size:10px;padding:12px 0;border-bottom:1px solid var(--line)}.research-table-head>span:not(:first-child){text-align:right}.research-row{padding:12px 0;min-height:66px}.research-identity{grid-row:auto;grid-column:auto}.research-identity>b{font-size:13px}.research-identity>small{font-size:11px;margin-top:4px;max-width:760px}.research-weight,.research-return{grid-row:auto;grid-column:auto;font-size:12px}.research-score{grid-row:auto;grid-column:auto;display:flex;flex-direction:row;align-items:baseline;justify-content:flex-end;gap:4px}.research-score>b{font-size:22px}.research-score>small{font-size:9px}.research-rsi,.research-date{display:block;font-size:12px;text-align:right;font-variant-numeric:tabular-nums}.research-date>small{display:block;font-size:9px;color:var(--muted)}.watch-row-tools{padding:4px 0 8px;min-height:30px}.macro-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.macro-card{padding:14px}.macro-card strong{font-size:25px}.view-daily{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px}.daily-schedule,.macro-section,.schedule-note,.legacy-report{width:100%}.daily-article,.daily-empty,.report-loading{width:calc(100% - 256px);margin:0;flex:1;min-width:0;grid-row:auto}.generate-report,.report-privacy{width:240px;margin:0}.report-privacy{margin-left:auto}.daily-article{padding:20px 26px}.article-cover h2{font-size:24px}.article-body{max-width:850px}.article-body p{font-size:15px;line-height:1.9}.article-body h3{font-size:19px}.analysis-stats strong{font-size:25px}.analysis-pnl{padding:18px 20px}.pnl-hero>strong{font-size:34px}.sector-treemap{margin-top:12px;max-height:320px}.goal-metrics{gap:16px;margin-top:20px}.goal-metrics strong{font-size:26px}.view-rebalance{gap:18px}.configuration-side{gap:18px}.allocation-intro h2{font-size:21px;margin-top:18px}.plan-row summary{font-size:12px;min-height:52px}.plan-row strong{font-size:16px}dialog{border-radius:14px;padding:22px;max-width:640px;width:min(640px,calc(100% - 60px))}.dialog-header{margin-bottom:16px}.dialog-header h2{font-size:22px}#toast{left:calc(50% + 87px)}
}
@media(min-width:1200px) and (hover:hover){.macro-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.view-page{padding-left:28px;padding-right:28px}.view-overview{grid-template-columns:minmax(0,2fr) minmax(300px,1fr)}.allocation-body{flex-direction:row}.donut-wrap{width:154px;height:154px}.research-row{grid-template-columns:minmax(320px,1fr) 90px 84px 90px 76px 96px}.research-table-head{grid-template-columns:minmax(320px,1fr) 90px 84px 90px 76px 96px}}
@media(max-width:360px){.view-page{padding-left:14px;padding-right:14px}.research-row{gap:4px 7px;grid-template-columns:minmax(0,1fr) 43px 48px}.analysis-tabs{gap:2px}.analysis-tabs button{padding:9px 8px;font-size:11px}.research-tools{gap:8px}.research-tools .text-button{font-size:11px}.allocation-body{gap:14px}.donut-wrap{width:125px;height:125px}.research-detail-toolbar{gap:8px}.research-detail-toolbar .text-button{font-size:10px}}
@media(min-width:900px) and (max-width:1199px) and (hover:hover){.research-table-head,.research-row{grid-template-columns:minmax(160px,1fr) 58px 64px 68px 52px 72px;gap:10px}.research-identity em{max-width:130px}.allocation-body{flex-direction:column;align-items:center}.allocation-legend{width:100%}.donut-wrap{width:132px;height:132px}}
@media(min-width:900px) and (hover:hover){.macro-notes{margin-top:8px}.article-body section:first-child{padding-top:0}.app-header .header-title{min-width:0}.keyboard-visible .app-shell{grid-template-rows:64px minmax(0,1fr)}}
.position-asset .asset-identity{gap:3px}.asset-identity strong{line-height:1.35}.asset-identity>span{line-height:1.4}.asset-identity .quote-warning{font-size:9px;line-height:1.3}.position-value{gap:4px}.position-value>strong{line-height:1.4}.position-value>span{line-height:1.4}
@media(min-width:900px) and (hover:hover){.wealth-top select{min-height:30px;padding:6px 9px;font-size:12px}.total-value{font-size:40px;margin-top:5px}.wealth-meta{margin-top:4px}.chart-toolbar{margin-top:8px}.trend-canvas,.trend-empty{height:110px}.trend-axis{padding-top:4px;font-size:9px}.overview-stats{padding-top:12px;display:flex;justify-content:space-between}.pnl-total,.cash-stat{flex-direction:row;align-items:baseline;gap:12px}.pnl-total>strong,.cash-stat>strong{font-size:21px}.position-row{min-height:58px}}
@media(max-width:899px),(hover:none){.view-page{padding-left:calc(18px + var(--safe-left));padding-right:calc(18px + var(--safe-right))}}
@media(max-width:360px){.view-page{padding-left:calc(14px + var(--safe-left));padding-right:calc(14px + var(--safe-right))}}
