
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft Yahei",sans-serif;color:#142338;background:#f3f6fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}input,select{min-width:0}a{color:#1d5cb2}.app{max-width:1120px;margin:auto;min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{background:#0c1727;color:#eff4ff;padding:30px 20px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;margin-bottom:38px}.mark{background:#b1f2d0;color:#0c3528;border-radius:14px;padding:10px;font-weight:900;font-size:23px}.brand strong{display:block;font-size:17px}.brand small{font-size:11px;color:#9dacbf}.navbtn{border:0;background:transparent;color:#aebed4;width:100%;border-radius:12px;text-align:left;padding:14px 16px;margin:4px 0;font-size:14px}.navbtn.active{background:#20344e;color:white;font-weight:700}.sidefoot{position:absolute;bottom:30px;color:#8da0b6;font-size:12px;line-height:1.8}.main{padding:28px 34px 110px;min-width:0}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:26px}.eyebrow{color:#66809b;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}h1{font-size:28px;letter-spacing:-.04em;margin:5px 0 0}.sync-pill,.chip{display:inline-flex;gap:6px;align-items:center;border-radius:30px;background:#e7f5eb;color:#237047;font-size:12px;padding:8px 11px}.sync-pill.local{background:#edf0f6;color:#62748b}.hero{background:#10253d;color:white;border-radius:23px;padding:26px 28px;box-shadow:0 15px 35px #122b4920;display:grid;grid-template-columns:1fr 1fr;gap:25px}.hero .big{font-size:35px;font-weight:750;letter-spacing:-.055em;margin:7px 0}.hero .muted{color:#a8bfd6}.hero .right{border-left:1px solid #38506a;padding-left:30px}.positive{color:#167852!important}.negative{color:#ca4454!important}.hero .positive{color:#8ff0b8!important}.hero .negative{color:#ff9ea4!important}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:17px 0 25px}.metric,.panel,.holding{background:white;border:1px solid #e6eaf1;border-radius:18px;padding:20px;box-shadow:0 4px 22px #1d355010}.metric .num{font-size:22px;font-weight:750;margin-top:8px;letter-spacing:-.04em}.label{font-size:12px;color:#6b7e94;font-weight:650}.sectionhead{display:flex;justify-content:space-between;align-items:center;margin:27px 0 13px;gap:8px}.sectionhead h2{font-size:18px;letter-spacing:-.03em;margin:0}.controls{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid #dce3ec;background:white;color:#27425e;border-radius:11px;padding:10px 14px;font-size:13px;font-weight:650}.btn.primary{background:#163f68;color:white;border-color:#163f68}.btn.soft{background:#edf5ff;color:#24538a;border-color:#edf5ff}.btn.danger{color:#be4050;border-color:#f0cdd2}.btn.sm{padding:7px 9px;font-size:12px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:12px;font-weight:650;color:#566e86}.field input,.field select{background:#fff;border:1px solid #dce3ed;border-radius:11px;padding:12px;color:#1b2e43;width:100%;outline-color:#4c83a9}.formgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.holdings{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.holding{padding:18px;cursor:pointer;transition:border .15s}.holding:hover{border-color:#abc7e0}.holdtop{display:flex;align-items:center;justify-content:space-between}.ticker{font-weight:800;font-size:18px;letter-spacing:-.025em}.tiny{font-size:11px;color:#8495a9}.holdstats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 10px}.holdstats b{font-size:16px;display:block;margin-top:4px}.holdbottom{border-top:1px solid #eef0f4;padding-top:11px;display:flex;justify-content:space-between;font-size:12px}.mono{font-variant-numeric:tabular-nums}.tablewrap{overflow-x:auto;background:#fff;border:1px solid #e6eaf1;border-radius:16px}.datatable{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.datatable th{text-align:left;color:#6d7f94;background:#f9fbfe;font-size:11px;padding:14px 12px}.datatable td{padding:13px 12px;border-top:1px solid #edf0f5}.datatable tr:hover td{background:#f9fcff}.notice{background:#eaf2fc;border:1px solid #d4e2f4;color:#355878;border-radius:13px;padding:13px 15px;font-size:12px;line-height:1.7}.warn{background:#fff7e8;border-color:#f1dfbd;color:#835f2c}.hidden{display:none!important}.muted{color:#7b8fa5}.empty{text-align:center;padding:38px 20px;color:#7b8fa5}.empty .emoji{font-size:36px;margin-bottom:12px}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{padding:9px 14px;border:1px solid #dce3ec;background:white;border-radius:20px;color:#60788f;font-size:12px}.tab.active{background:#143e66;color:white;border-color:#143e66}.simresult{background:#10253d;color:white;border-radius:16px;padding:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.simresult b{display:block;font-size:22px;margin-top:6px}.simresult .label{color:#aabfd1}.simsteps{display:flex;flex-direction:column;gap:8px}.step{display:flex;justify-content:space-between;gap:8px;border:1px solid #e5eaf1;border-radius:12px;padding:12px;font-size:13px;background:#fff}.steps{display:flex;gap:8px;flex-wrap:wrap}.divider{border:0;border-top:1px solid #e8edf4;margin:14px 0}.hint{font-size:12px;line-height:1.75;color:#72859b}.float-nav{display:none}.toast{position:fixed;bottom:25px;right:25px;background:#10253d;color:white;padding:13px 19px;border-radius:13px;box-shadow:0 14px 35px #0d234755;max-width:320px;z-index:99;font-size:13px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:100%;background:#77bf92}.pricebox{display:flex;gap:10px;align-items:end}.pricebox .field{width:170px}.kbd{font-size:11px;color:#58718b;background:#edf2f8;border-radius:5px;padding:3px 5px}
@media(max-width:820px){.app{display:block}.sidebar{display:none}.main{padding:18px 15px 102px}.top{margin-bottom:18px}h1{font-size:23px}.hero{grid-template-columns:1fr;gap:13px;padding:22px}.hero .right{border-left:0;border-top:1px solid #38506a;padding:13px 0 0}.hero .big{font-size:32px}.grid3{grid-template-columns:repeat(3,1fr);gap:8px}.metric{padding:12px;border-radius:13px}.metric .num{font-size:16px}.holdings{grid-template-columns:1fr;gap:10px}.formgrid{grid-template-columns:repeat(2,1fr)}.simresult{grid-template-columns:1fr 1fr}.float-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e5eaf0;box-shadow:0 -7px 24px #10243b11;justify-content:space-around;padding:11px 10px calc(12px + env(safe-area-inset-bottom));z-index:30}.float-nav button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:5px;color:#8192a5;font-size:10px;min-width:55px}.float-nav button.active{color:#195b8b;font-weight:800}.float-nav .ico{font-size:20px}.panel{padding:16px}.toast{bottom:85px;right:15px;left:15px;max-width:none}.sectionhead h2{font-size:17px}}@media(max-width:420px){.grid3{grid-template-columns:1fr 1fr}.holdstats b{font-size:14px}.formgrid{grid-template-columns:1fr 1fr}.simresult b{font-size:18px}}

body{overflow-wrap:anywhere}.holding{font:inherit;color:inherit;text-align:left;width:100%}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #2e83ad;outline-offset:3px}button,input,select{min-height:44px}input,select{font-size:16px!important}.wrap{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.raw,pre{max-width:100%;max-height:380px;overflow:auto;font-size:12px;background:#f5f7fa;padding:12px;border-radius:10px}.ledger-list{display:grid;gap:12px}.trade-card{background:white;border:1px solid #e6eaf1;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}.trade-values{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:#64758b}.trade-values b{color:#142338}.trade-card .row{flex-wrap:wrap}.audit{margin-top:18px}summary{cursor:pointer;min-height:44px;padding:10px 0}.simresult .metric{background:#173652;border-color:#355069}.simresult .num{color:white;font-size:20px}.notice+.notice{margin-top:10px}.stack h2{font-size:18px;margin:0}.sync-pill{max-width:210px;text-align:center;line-height:1.5}.tiny{line-height:1.6}.field{min-width:0}.holding .holdbottom{flex-wrap:wrap;gap:8px}
@media(max-width:420px){.formgrid{grid-template-columns:1fr}.holdstats{grid-template-columns:1fr 1fr}.holdstats>div:last-child{grid-column:1/-1}.holdstats b{font-size:17px}.top{align-items:flex-start}.sync-pill{font-size:10px;max-width:115px;padding:6px}.row{flex-wrap:wrap}.sectionhead{flex-wrap:wrap}.simresult{grid-template-columns:1fr}.simresult .metric{padding:12px}.hero .big{font-size:28px}.holdbottom{font-size:12px}.main{padding-bottom:125px}}

textarea{font:inherit;font-size:16px;max-width:100%;width:100%;border:1px solid #dce3ed;border-radius:11px;padding:12px;resize:vertical}#content>.notice:first-child{margin-bottom:16px}

/* Phase 4 product acceptance: reuse the established application shell. */
.space{margin-top:16px}.scope{margin-bottom:18px}.scope summary{font-size:12px;color:#536c84}.scope[open] summary{font-weight:700}.cost-value{font-size:23px;font-weight:750;letter-spacing:-.035em;line-height:1.4;margin:7px 0}.check{display:flex;align-items:center;gap:9px;font-size:13px;line-height:1.7}.check input{flex:none;width:21px;min-height:21px}.sidefoot a{color:#b7dbff}.field select,.field input{max-width:100%}.metric .num{overflow-wrap:anywhere}.holdings .holding{height:100%}.panel h2{font-size:18px}.panel h3{font-size:15px}.grid3 .hint{margin-bottom:0}.tablewrap{max-width:100%}.field>input[type=file]{font-size:13px!important} .top .sync-pill{flex-shrink:0}.cost-value,.metric .num{font-variant-numeric:tabular-nums}
@media(max-width:420px){.cost-value{font-size:23px}.scope{padding:10px 13px}.scope summary{padding:0;display:flex;align-items:center}.grid3 .metric{min-width:0}.grid3 .num{font-size:17px}.holding .holdstats{grid-template-columns:1fr 1fr}.holding .holdstats>div:last-child{grid-column:auto}.float-nav button{min-width:44px}.panel .btn{max-width:100%}.hero .right p{font-size:13px}}

@media(max-width:820px){.grid3 .key-cost{grid-column:1/-1}.grid3 .key-cost .num{font-size:23px;line-height:1.4}}

/* Phase 4.1: investor-first detail hierarchy and display-only monetary formatting. */
.detail-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.detail-heading>div{display:flex;align-items:center;gap:10px}.detail-heading h2{margin:0;font-size:26px}.detail-date{color:#657b91;font-size:12px;margin:10px 0 14px}.primary-cost{border-radius:20px;background:#102b45;color:#fff;padding:18px 22px}.primary-cost .metric-help summary{color:#c6dded}.primary-cost .metric-help p{color:#193a53;background:#edf5fc}.primary-value{font-size:38px;font-weight:800;letter-spacing:-.035em;white-space:nowrap;line-height:1.4;font-variant-numeric:tabular-nums}.primary-value .per-share{font-size:15px;margin-left:7px;color:#c6dded}.primary-net{display:flex;align-items:center;justify-content:space-between;margin-top:10px;font-size:14px;gap:10px}.primary-net strong{white-space:nowrap}.primary-cost>p{font-size:11px;color:#b0c9df;margin:12px 0 0}.aux-costs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.aux-cost{padding:12px 16px;min-width:0}.aux-cost>strong{font-size:24px;display:block;white-space:nowrap;line-height:1.4}.aux-cost>p{font-size:11px;line-height:1.6;color:#74879a;margin:5px 0 0}.metric-help summary{display:flex;align-items:center;justify-content:space-between;gap:7px;list-style:none;min-height:44px;padding:0;font-size:13px;font-weight:650;color:#596f86}.metric-help summary::-webkit-details-marker{display:none}.metric-help summary span{font-size:18px;flex:none}.metric-help>p{font-size:12px;line-height:1.75;padding:10px;background:#f1f6fc;border-radius:10px;font-weight:400}.detail-sim .btn{width:100%;min-height:50px;font-size:16px;margin:0 0 14px}.analysis-panel>summary{font-weight:700}.analysis-list{display:grid;gap:14px;padding-top:5px}.analysis-list>.row{padding-bottom:12px;border-bottom:1px solid #edf0f5;font-size:13px}.analysis-list .row b{white-space:nowrap}.analysis-list .metric-help{margin-bottom:12px}.analysis-list .hint{margin:0}.precision pre{white-space:pre-wrap}.metric .num{font-size:20px;white-space:nowrap}.trade-values b,.datatable td{white-space:nowrap}.datatable td{font-variant-numeric:tabular-nums}#sim-live:empty{display:none}#sim-live .row{font-size:13px;margin-top:8px}#sim-live .row b{white-space:nowrap}.primary-value{max-width:100%}
@media(max-width:820px){.stock-detail .main>.top,.stock-detail .scope{display:none}.stock-detail .main{padding-top:14px}.detail-heading h2{font-size:24px}.primary-cost{padding:14px 18px}.primary-value{font-size:34px}.aux-cost{padding:10px 12px}.aux-cost>strong{font-size:23px}.detail-date{margin:8px 0 12px}.stock-detail .analysis-panel{padding:12px 16px}.analysis-list .row{align-items:flex-start;flex-wrap:nowrap}.analysis-list .row>span{flex:1;min-width:0}.analysis-list .row>b{flex:none}.stock-detail .detail-heading .btn{padding:8px 11px}.metric .num{font-size:18px}.detail-heading .chip{font-size:12px}}
@media(max-width:360px){.primary-value{font-size:31px}.aux-costs{gap:8px}.aux-cost .metric-help summary{font-size:12px}.aux-cost>strong{font-size:21px}.primary-cost>p{font-size:10px}.stock-detail .main{padding-left:12px;padding-right:12px}}

/* Plain-language captions are visible directly below their values. */
.metric-title{font-size:13px;font-weight:650;line-height:1.5;color:#596f86}
.metric-caption{font-size:12px;line-height:1.5;color:#61768d;margin:6px 0 0;font-weight:400;white-space:normal}
.primary-cost .metric-title{color:#c6dded}
.primary-cost>.metric-caption{font-size:12px;line-height:1.5;color:#d0e0ed;margin:6px 0 0}
.primary-cost>.cost-scope{font-size:11px;line-height:1.5;margin-top:9px;color:#b0c9df}
.primary-net+.metric-caption{font-size:12px}
.aux-cost>.metric-caption{font-size:12px;line-height:1.5;color:#61768d;margin-top:5px}
.aux-cost>.metric-meta{font-size:11px;line-height:1.5;margin-top:7px}
.aux-cost>strong{margin-top:4px}
.holding-result{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #edf0f5;margin-top:12px;padding-top:10px;font-size:14px}
.holding-result b{white-space:nowrap;font-variant-numeric:tabular-nums}
.holding .metric-caption{font-size:12px;line-height:1.5}
.analysis-list>.explained-row{padding-bottom:12px;border-bottom:1px solid #edf0f5;font-size:13px}
.analysis-list .metric-title{margin-bottom:8px}
.analysis-list .explained-row .row{font-size:13px}
.analysis-list .row b{white-space:nowrap}
.simresult .metric-caption{color:#c5d9e9}
.table-caption{display:block;max-width:155px;min-width:110px;white-space:normal;font-size:12px;font-weight:400;line-height:1.5;margin-top:5px}
.cost-rules{margin-top:12px}
@media(max-width:420px){.primary-cost{padding:13px 17px}.primary-cost>.metric-caption{font-size:12px}.primary-net+.metric-caption{font-size:12px}.aux-cost{padding:10px}.aux-cost>.metric-caption{font-size:12px}.aux-cost .metric-title{font-size:12px}.detail-date{margin-bottom:10px}}

.coverage-dates{display:inline-block;white-space:nowrap}

/* Account allocation is a dated NAV estimate, separate from stock-only weights. */
.allocation{grid-column:1/-1;min-width:0}
.allocation-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}
.allocation-value{white-space:nowrap;font-variant-numeric:tabular-nums}
.allocation-arrow{color:#6d849a;font-weight:400}
.estimate-tag{font-size:11px;color:#785a24;background:#fff2d5;border-radius:12px;padding:4px 9px;white-space:nowrap}
.allocation .hint{margin:7px 0 0}
.allocation>details>summary{font-size:12px;color:#536c84}
.allocation>details>.row{font-size:12px;align-items:flex-start;flex-wrap:wrap;margin-top:8px}
.allocation .row b{white-space:nowrap}
#sim-live .allocation{margin-top:12px;box-shadow:none}
@media(max-width:420px){.allocation .num{font-size:20px}.allocation>details>.row{gap:5px}}

/* Phase5A test entry only uses an anchor in the existing bottom navigation. */
#mobileNav>a{min-height:44px;display:flex;align-items:center;padding:5px 12px}
