:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;color:#13262d;background:#f4f7f6;font-synthesis:none;--teal: #0e766e;--teal-soft: #e7f3f1;--line: #dce5e3;--muted: #697b80;--orange: #d78224}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:220px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:220px;background:#fff;border-right:1px solid var(--line);padding:26px 18px;display:flex;flex-direction:column;z-index:10}.brand{border:0;background:transparent;display:flex;align-items:center;gap:11px;color:#13262d;padding:4px 7px 24px;font-size:20px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;color:var(--teal);border:1px solid #abd7d2;border-radius:10px}.sidebar nav{display:grid;gap:7px}.sidebar nav button{border:0;background:transparent;display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:9px;color:#40535a;font-size:14px}.sidebar nav button.active{color:var(--teal);background:var(--teal-soft);font-weight:600}.local-note{margin-top:auto;border:1px solid var(--line);border-radius:10px;padding:13px;display:flex;gap:10px;align-items:flex-start;color:var(--teal)}.local-note div{display:grid;gap:3px}.local-note strong{font-size:12px;color:#304349}.local-note span{font-size:10px;color:var(--muted)}.main-content{grid-column:2;padding:34px clamp(28px,4vw,64px) 60px;max-width:1450px;width:100%}.bottom-nav{display:none}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1{margin:0 0 5px;font-size:26px;letter-spacing:-.03em}.page-header p{margin:0;font-size:13px;color:var(--muted)}.date-label{border:1px solid var(--line);border-radius:8px;padding:8px 12px;color:var(--muted);font-size:12px;background:#fff}.summary-band{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);background:#fff;border-radius:11px;padding:24px 8px;margin-bottom:18px}.summary-band>div{padding:0 22px;border-right:1px solid var(--line);display:grid;gap:9px}.summary-band>div:last-child{border:0}.summary-band span{font-size:12px;color:var(--muted)}.summary-band strong{font-size:clamp(20px,2vw,30px);letter-spacing:-.04em}.gain{color:#078276!important}.loss{color:#b64949!important}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:18px}.panel{border:1px solid var(--line);background:#fff;border-radius:11px;padding:20px}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.section-heading h2{margin:0;font-size:16px}.section-heading p{margin:4px 0 0;color:var(--muted);font-size:11px}.section-heading button{border:0;background:transparent;color:var(--teal);font-size:12px}.allocation-wrap{display:grid;grid-template-columns:210px 1fr;gap:32px;align-items:center}.donut{position:relative;width:190px;height:190px}.donut svg{transform:rotate(-90deg)}.donut>div{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center}.donut strong{font-size:25px}.donut span{font-size:11px;color:var(--muted)}.allocation-list{display:grid}.allocation-row{display:grid;grid-template-columns:10px 1fr 55px 90px;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.allocation-row b{color:var(--muted);font-weight:500;text-align:right}.satellite-panel{border-color:#efc991;background:#fffdfa}.satellite-panel h2{color:#9a5715}.satellite-title{border:1px solid #efc991;padding:13px;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.satellite-title span{font-size:10px;color:#a15a13;background:#fff0da;padding:4px 8px;border-radius:99px}.satellite-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0}.satellite-stats div{display:grid;gap:4px}.satellite-stats span,.hint{font-size:11px;color:var(--muted)}.satellite-stats strong{font-size:18px}.hint{margin:0}.recent-panel{min-height:260px}.transaction-preview>div{display:grid;grid-template-columns:100px 70px 1fr 90px;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);font-size:11px}.transaction-preview .type{color:var(--teal);background:var(--teal-soft);width:max-content;padding:3px 7px;border-radius:4px}.transaction-preview b{text-align:right}.empty-state{min-height:160px;display:grid;place-content:center;justify-items:center;gap:6px;color:#9aabad;text-align:center}.empty-state svg{width:32px}.empty-state strong{color:#63777c;font-size:13px}.empty-state span{font-size:11px}.quick-panel>button{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;display:grid;grid-template-columns:38px 1fr 18px;gap:10px;align-items:center;padding:13px 0;text-align:left;color:#2a3c42}.quick-icon{width:34px;height:34px;border-radius:8px;display:grid;place-content:center;background:var(--teal-soft);color:var(--teal)}.quick-icon svg{width:17px}.quick-panel button>span:nth-child(2){display:grid}.quick-panel small{color:var(--muted);font-size:10px;margin-top:2px}.rebalance-reminder{width:100%;margin:0 0 18px;border:1px solid #b8d9d5;background:#eef8f6;border-radius:10px;padding:13px 16px;display:grid;grid-template-columns:34px 1fr 18px;gap:11px;align-items:center;text-align:left;color:#24514d}.rebalance-reminder.needs-review{border-color:#ebc483;background:#fff8ec;color:#865313}.rebalance-reminder>span:first-child{display:grid;place-content:center}.rebalance-reminder svg{width:18px}.rebalance-reminder>span:nth-child(2){display:grid;gap:2px}.rebalance-reminder small{color:var(--muted);font-size:10px}.narrow-page{max-width:720px;margin:0 auto}.fund-input{background:#fff;border:1px solid var(--line);border-radius:11px;padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:11px 24px}.fund-input label{font-size:12px;color:var(--muted)}.currency-input{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line)}.currency-input span{color:var(--teal);font-size:28px}.currency-input input{border:0;outline:0;width:100%;padding:8px 0;font-size:28px;color:var(--teal);font-weight:600}.date-input{border:0;border-bottom:1px solid var(--line);padding:12px 0;color:#2b3d43;outline:0}.plan-section{margin:26px 0 16px}.buy-plan{border:1px solid var(--line);border-radius:11px;background:#fff;padding:8px 20px}.buy-plan>div{display:grid;grid-template-columns:10px 1fr 50px 100px;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.buy-plan b{text-align:right}.buy-plan .total{grid-template-columns:1fr 100px;border:0}.satellite-inline{border:1px solid #efc991;border-radius:10px;padding:15px;background:#fffdfa;display:grid;gap:13px;margin-bottom:22px}.satellite-inline>div{display:flex;justify-content:space-between;gap:10px}.satellite-inline strong{color:#a15a13}.satellite-inline span{color:var(--muted);font-size:11px}.primary-button{border:0;color:#fff;background:var(--teal);border-radius:7px;padding:14px 24px;font-weight:600;width:100%;box-shadow:0 6px 18px #0e766e29}.submit-note{display:flex;justify-content:center;align-items:center;gap:5px;color:var(--muted);font-size:10px}.recommend-card{border:1px solid var(--line);background:#fff;border-radius:11px;padding:20px;margin-bottom:14px}.cashflow-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.cashflow-inputs.two-cols{grid-template-columns:1fr 1fr}.cashflow-inputs label{display:grid;gap:7px;color:var(--muted);font-size:11px}.money-input.wide{width:100%;height:40px}.locked-factor{border-left:2px solid var(--teal);padding:3px 0 3px 12px;display:grid;gap:2px}.locked-factor span,.locked-factor small{color:var(--muted);font-size:10px}.locked-factor strong{font-size:15px}.factor-list{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.factor-list>label{border:1px solid var(--line);border-radius:8px;padding:11px;display:flex;gap:9px;align-items:flex-start;cursor:pointer}.factor-list input{accent-color:var(--teal);margin-top:3px}.factor-list label>span{display:grid;gap:2px}.factor-list strong{font-size:11px}.factor-list small{color:var(--muted);font-size:9px;line-height:1.45}.cashflow-inputs select{width:100%;height:40px;border:1px solid var(--line);border-radius:7px;padding:0 10px;color:#304349;background:#fff}.reserve-alert,.rule-warning,.rule-note{margin:13px 0 0;border-radius:7px;padding:9px 11px;font-size:10px;line-height:1.55}.reserve-alert{background:#fff4e5;color:#985712}.recommendation-result{background:#123f3c;color:#fff;border-radius:11px;padding:20px;margin:18px 0 14px}.result-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.result-title>div{display:grid;gap:3px}.result-title span{font-size:11px;color:#b8d6d2}.result-title strong{font-size:30px;letter-spacing:-.04em}.result-title .status{color:#d5e9e6;border:1px solid #56817d;border-radius:99px;padding:5px 9px}.result-title .status.enhanced{color:#ffdfad;border-color:#a77c3b}.result-breakdown{margin-top:17px;border-top:1px solid #39635f;padding-top:9px}.result-breakdown>div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:10px}.result-breakdown span{color:#b8d6d2}.recommendation-result .rule-warning{background:#2b5652;color:#f3d7a8}.recommendation-result .rule-note{background:#24504c;color:#cce3df}.fund-input.compact{grid-template-columns:1fr 1fr;margin-top:14px}.reset-suggestion{align-self:end;justify-self:start;border:0;background:transparent;color:var(--teal);font-size:10px;padding:0 0 10px}.buy-plan strong{display:grid}.buy-plan strong small{margin-top:3px;color:var(--muted);font-size:9px;font-weight:400}.primary-button:disabled{opacity:.45;cursor:not-allowed}.currency-notice{margin:-9px 0 16px;color:#52676c;background:var(--teal-soft);border-radius:8px;padding:10px 13px;font-size:11px}.holdings-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.market-refresh{border:0;border-radius:8px;background:var(--teal);color:#fff;padding:10px 14px;font-weight:600}.market-refresh:disabled{opacity:.6}.market-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px;padding:15px 18px;border:1px solid var(--line);border-radius:10px;background:#fff}.market-summary div{display:grid;gap:3px}.market-summary span,.market-summary small{color:var(--muted);font-size:10px}.market-summary>small{grid-column:1/-1}.market-message{margin:-4px 0 13px;color:var(--teal);font-size:11px}.holdings-table{padding:8px 20px}.holding-head,.holding-row{display:grid;grid-template-columns:1.15fr .8fr .8fr 1.2fr .55fr;gap:16px;align-items:center}.holding-head{padding:12px 8px;color:var(--muted);font-size:11px}.holding-row{padding:16px 8px;border-top:1px solid var(--line);font-size:13px}.holding-name{display:flex;align-items:center;gap:10px}.holding-name>span:last-child{display:grid}.holding-row small{color:var(--muted)}.invested-readonly{display:grid!important;gap:1px!important}.invested-readonly b{font-size:13px}.invested-readonly small{font-size:9px}.quantity-input{width:100%;border:1px solid var(--line)!important;border-radius:7px;padding:8px!important;background:#fff!important}.not-applicable{color:var(--muted)}.market-value-cell{display:grid!important;align-items:start!important;gap:2px!important}.market-value-cell strong{font-size:14px}.money-input{display:flex;align-items:center;width:130px;border:1px solid var(--line);border-radius:7px;background:#fff;padding-left:9px}.money-input i{color:var(--muted);font-style:normal}.holding-row input{width:100%;min-width:0;border:0;outline:0;padding:8px 7px 8px 3px;background:transparent}.mobile-label{display:none}.satellite-row{background:#fffaf2}.transactions-page{padding:0 20px}.transaction-row{padding:17px 5px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.transaction-row>div{display:grid;gap:4px}.transaction-row>div:last-child{text-align:right}.transaction-row span,.transaction-row time{font-size:11px;color:var(--muted)}.empty-state.large{min-height:320px}.settings-panel,.danger-panel{margin-bottom:18px}.settings-panel h2,.danger-panel h2{margin-top:0;font-size:16px}.settings-panel p,.danger-panel p{color:var(--muted);font-size:12px}.settings-actions{display:flex;gap:10px;margin-top:20px}.settings-actions button{border:1px solid var(--line);border-radius:8px;background:#fff;padding:11px 14px;display:flex;align-items:center;gap:8px;color:#304349}.settings-actions svg{width:17px}.message{color:var(--teal)!important}.danger-panel button{border:1px solid #e3aaaa;color:#a83939;background:#fff;padding:9px 13px;border-radius:7px}.rebalance-page{max-width:1000px;margin:0 auto}.rebalance-status{border:1px solid #badad6;background:#eef8f6;border-radius:11px;padding:18px;display:flex;align-items:center;gap:14px;margin-bottom:18px}.rebalance-status.needs-review{border-color:#ebc483;background:#fff8ec}.rebalance-status-icon{width:42px;height:42px;border-radius:10px;display:grid;place-content:center;background:#d7eeeb;color:var(--teal)}.needs-review .rebalance-status-icon{background:#ffedcd;color:#a8681b}.rebalance-status-icon svg{width:20px}.rebalance-status>div:last-child{display:grid;gap:3px}.rebalance-status span,.rebalance-status small{color:var(--muted);font-size:10px}.rebalance-status strong{font-size:17px}.rebalance-table{margin-bottom:18px}.rebalance-head,.rebalance-row{display:grid;grid-template-columns:1.2fr .7fr .7fr .7fr .9fr;gap:12px;align-items:center}.rebalance-head{color:var(--muted);font-size:10px;padding:7px 5px 10px}.rebalance-row{border-top:1px solid var(--line);padding:13px 5px;font-size:11px}.rebalance-row>div{display:flex;gap:8px;align-items:center}.rebalance-row>span:last-child{color:var(--muted)}.rebalance-advice-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.rebalance-amount{display:grid;gap:7px;color:var(--muted);font-size:10px;margin-bottom:13px}.rebalance-buy-list{display:grid}.rebalance-buy-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:11px}.rebalance-buy-list span{display:flex;align-items:center;gap:8px}.rebalance-buy-list i{display:inline-block}.no-sell-panel>span{color:var(--muted);font-size:10px}.no-sell-panel>strong{display:block;font-size:28px;margin:4px 0 10px}.compact-list>div{padding:7px 0}.no-sell-panel p{color:var(--muted);font-size:10px;line-height:1.5}.rebalance-principles{display:flex;gap:11px;padding:14px;border-radius:9px;background:var(--teal-soft);color:var(--teal);margin-bottom:14px}.rebalance-principles svg{width:18px;flex:0 0 auto}.rebalance-principles div{display:grid;gap:3px}.rebalance-principles strong{font-size:11px}.rebalance-principles span{color:#52676c;font-size:10px;line-height:1.5}.secondary-action{width:100%;border:1px solid var(--teal);color:var(--teal);background:#fff;border-radius:8px;padding:12px;font-weight:600}.onboarding{min-height:100vh;background:#f4f7f6;padding:28px}.onboarding>header{max-width:900px;margin:0 auto 35px;display:flex;align-items:center;gap:10px}.onboarding>header span{margin-left:auto;color:var(--muted);font-size:12px}.onboarding main{max-width:800px;margin:0 auto}.onboarding-intro{margin-bottom:26px}.onboarding-intro h1{font-size:30px;margin-bottom:8px}.onboarding-intro p{max-width:630px;color:var(--muted);line-height:1.8;font-size:14px}.onboarding form{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px}.start-date{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;font-size:13px}.start-date input{border:1px solid var(--line);border-radius:7px;padding:8px}.onboarding-head,.onboarding-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:18px;align-items:center}.onboarding-head{font-size:11px;color:var(--muted);padding:8px}.onboarding-row{padding:13px 8px;border-top:1px solid var(--line)}.onboarding-row>div{display:flex;align-items:center;gap:10px}.onboarding-row>div>span:last-child{display:grid}.onboarding-row small{color:var(--muted);font-size:10px}.onboarding-row label{display:flex;border:1px solid var(--line);border-radius:7px;padding:8px;color:var(--muted)}.onboarding-row input{border:0;outline:0;width:100%;min-width:0}.onboarding form .primary-button{margin-top:22px}.text-button{width:100%;border:0;background:transparent;color:var(--teal);padding:13px;font-size:12px}.form-error{color:#a83939;background:#fff1f1;border:1px solid #efc2c2;border-radius:7px;padding:9px 11px;font-size:11px;margin:16px 0 -7px}.rebalance-review-note{margin:10px 0 0;color:var(--muted);font-size:10px;line-height:1.55;text-align:center}.sell-head,.sell-row{display:grid;grid-template-columns:.5fr 1.8fr .7fr .7fr 1fr .7fr;gap:12px;align-items:center}.sell-head{color:var(--muted);font-size:10px;padding:7px 5px 10px}.sell-row{border-top:1px solid var(--line);padding:12px 5px;font-size:11px}.sell-row>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sell-row>div small{flex-basis:100%;margin-left:20px;color:var(--muted);font-size:9px;font-weight:400}.sell-order{width:22px;height:22px;border-radius:99px;background:var(--teal-soft);color:var(--teal);display:grid;place-content:center;font-size:11px;font-weight:700}.sell-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:4px;padding:12px 5px 0;font-size:11px}.sell-total b{font-size:16px;color:#a83939}.no-sell-panel>.correction-value{font-size:22px}.correction-ontrack{color:#078276}.correction-slow{color:#a8681b}.correction-unreachable{color:#b64949}.correction-unknown{color:var(--muted)}.panel-note{margin:10px 0 0;color:var(--muted);font-size:10px;line-height:1.55}.household-band>div span{color:var(--muted);font-size:10px}.household-section{margin-bottom:18px}.household-section .rmb-deltas{grid-template-columns:repeat(2,minmax(0,260px))}.household-section .cash-value-grid{grid-template-columns:repeat(4,1fr)}.household-strip{width:100%;margin:0 0 18px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:14px 16px;display:grid;grid-template-columns:1fr 1fr 18px;gap:14px;align-items:center;text-align:left}.household-strip>span{display:grid;gap:3px}.household-strip small{color:var(--muted);font-size:10px}.household-strip strong{font-size:17px}.household-strip i{font-style:normal;font-size:10px;color:var(--muted)}.rmb-current{display:grid;gap:3px;margin:14px 0 12px}.rmb-current strong{font-size:26px}.rmb-current small{color:var(--muted);font-size:10px}.rmb-deltas{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.rmb-deltas>div{display:grid;gap:3px;padding:10px 11px;border:1px solid var(--line);border-radius:8px}.rmb-deltas span{color:var(--muted);font-size:10px}.rmb-deltas b{font-size:13px}.sparkline{width:100%;height:46px;display:block;margin-bottom:12px}.rmb-history{display:grid;max-height:168px;overflow-y:auto;margin-bottom:14px}.rmb-history>div{display:grid;grid-template-columns:84px 1fr 1fr auto;gap:8px;align-items:center;padding:8px 2px;border-top:1px solid var(--line);font-size:11px}.rmb-history time{color:var(--muted);font-size:10px}.rmb-history span{color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rmb-history button{border:0;background:transparent;color:#b64949;font-size:10px;padding:2px 4px}.rmb-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end;padding-top:14px;border-top:1px solid var(--line)}.rmb-form label{display:grid;gap:6px;color:var(--muted);font-size:10px;min-width:0}.rmb-form input{height:36px;box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;padding:0 9px;outline:0;background:#fff;font-size:12px}.rmb-form input:focus{border-color:#63aaa4;box-shadow:0 0 0 3px #0e766e1a}.rmb-form button{width:auto;height:36px;padding:0 16px;white-space:nowrap}.rmb-floor{margin-top:16px;padding:12px 13px;border:1px solid var(--line);border-radius:9px;display:grid;gap:5px;background:#fbfdfc}.rmb-floor.below{border-color:#ebc483;background:#fff8ec}.rmb-floor>span{color:var(--muted);font-size:10px}.rmb-floor strong{font-size:12px}.rmb-floor label{display:flex;gap:8px;align-items:center;font-size:11px;color:#40535a;margin-top:4px}.rmb-floor small{color:var(--muted);font-size:10px}.cash-value{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.cash-value-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0}.cash-value-grid>div{display:grid;gap:2px;padding:10px 11px;border:1px solid var(--line);border-radius:8px}.cash-value-grid span,.cash-value-grid small{color:var(--muted);font-size:10px}.cash-value-grid strong{font-size:14px}.cash-value-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cash-value-actions label{display:grid;gap:6px;color:var(--muted);font-size:10px}.cash-value-actions input,.cash-value-actions select{height:36px;box-sizing:border-box;border:1px solid var(--line);border-radius:7px;padding:0 9px;background:#fff;outline:0;font-size:12px;width:100%;min-width:0}.policy-gain{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:14px;padding:11px 12px;border-radius:8px;background:var(--teal-soft);font-size:11px}.policy-gain span{color:#52676c}.policy-gain strong{font-size:14px}@media(max-width:700px){.household-strip{grid-template-columns:1fr}.household-strip>span:last-of-type{padding-top:10px;border-top:1px solid var(--line)}.rmb-form,.cash-value-actions,.cash-value-grid{grid-template-columns:1fr}.rmb-form button{width:100%}.rmb-history>div{grid-template-columns:1fr auto auto}.rmb-history span{display:none}.bottom-nav{grid-template-columns:repeat(6,1fr)!important}.bottom-nav button{font-size:8px}}.rebalance-status.attention-action,.rebalance-reminder.attention-action{border-color:#ebc483;background:#fff8ec}.rebalance-reminder.attention-action{color:#865313}.attention-action .rebalance-status-icon{background:#ffedcd;color:#a8681b}.rebalance-status.attention-info,.rebalance-reminder.attention-info{border-color:#b8cfe6;background:#f2f8fd}.rebalance-reminder.attention-info{color:#2b5876}.attention-info .rebalance-status-icon{background:#dceaf7;color:#3d6f9e}.insurance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 18px}.insurance-summary>div{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fbfdfc}.insurance-summary span{color:var(--muted);font-size:10px}.insurance-summary strong{font-size:15px}.insurance-head,.insurance-row{display:grid;grid-template-columns:1.5fr .8fr .6fr .6fr 1fr;gap:10px;align-items:center}.insurance-head{color:var(--muted);font-size:10px;padding:0 4px 8px}.insurance-row{padding:11px 4px;border-top:1px solid var(--line);font-size:12px}.insurance-row label{display:grid;min-width:0}.insurance-row .mobile-label{display:none}.insurance-row input{height:34px;box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;padding:0 8px;outline:0;background:#fff;font-size:12px}.insurance-row input:focus{border-color:#63aaa4;box-shadow:0 0 0 3px #0e766e1a}.insurance-row button{width:auto;height:34px;padding:0 12px;font-size:11px}.insurance-override{display:flex;gap:10px;align-items:flex-start;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:12px}.insurance-override span{display:grid;gap:3px}.insurance-override small{color:var(--muted);font-size:10px;line-height:1.55}@media(max-width:700px){.insurance-summary{grid-template-columns:repeat(2,1fr)}.insurance-head{display:none}.insurance-row{grid-template-columns:1fr 1fr;gap:10px}.insurance-row>strong{grid-column:1 / -1}.insurance-row .mobile-label{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.insurance-row button{grid-column:1 / -1;width:100%}}.sell-panel{margin-bottom:18px}.sell-panel.sell-monitor{border-color:#cfe0dd}.sell-panel.sell-suggested{border-color:#ebc483;background:#fffdf8}.sell-panel.sell-urgent{border-color:#e2a5a5;background:#fff9f9}.review-panel{margin-bottom:14px}.review-checklist{margin:0 0 14px;padding-left:18px;display:grid;gap:7px;color:#40535a;font-size:11px;line-height:1.6}.secondary-action:disabled{border-color:var(--line);color:var(--muted);cursor:default}.satellite-item{padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--line)}.satellite-item:last-of-type{padding-bottom:4px;margin-bottom:4px;border-bottom:0}.satellite-manage{margin-top:18px}.satellite-form{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr auto;gap:12px;align-items:end}.add-satellite{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.satellite-form .span-rest{grid-column:2 / 5}.satellite-form label{display:grid;gap:6px;color:var(--muted);font-size:10px;min-width:0}.satellite-form input,.satellite-form select{height:38px;box-sizing:border-box;border:1px solid var(--line);border-radius:7px;padding:0 9px;background:#fff;outline:0;color:#21363c;font-size:12px;width:100%;min-width:0;transition:border-color .15s,box-shadow .15s}.satellite-form input:focus,.satellite-form select:focus{border-color:#63aaa4;box-shadow:0 0 0 3px #0e766e1a}.satellite-form button{width:auto;height:38px;padding:0 18px;white-space:nowrap}@media(max-width:700px){.satellite-form,.add-satellite{grid-template-columns:1fr}.satellite-form .span-rest{grid-column:auto}.satellite-form button{width:100%}}.storage-alert{margin:0 0 16px;padding:11px 13px;border:1px solid #efc2c2;background:#fff1f1;color:#a83939;border-radius:8px;font-size:11px;line-height:1.6}.crash-screen{max-width:560px;margin:0 auto;padding:60px 24px;display:grid;gap:12px}.crash-screen strong{font-size:22px}.crash-screen p{color:var(--muted);font-size:13px;line-height:1.8}.crash-screen pre{background:#fff1f1;border:1px solid #efc2c2;border-radius:8px;padding:11px 13px;color:#a83939;font-size:11px;white-space:pre-wrap;word-break:break-word}.crash-actions{display:grid;gap:6px;margin-top:6px}@media(max-width:980px){.summary-band{grid-template-columns:repeat(2,1fr);padding:10px}.summary-band>div{border:0;padding:14px}.dashboard-grid{grid-template-columns:1fr}.allocation-wrap{grid-template-columns:180px 1fr}.donut{width:170px;height:170px}}@media(max-width:700px){body{background:#fff}.app-shell{display:block}.sidebar{display:none}.main-content{padding:max(24px,env(safe-area-inset-top)) 18px calc(88px + env(safe-area-inset-bottom))}.bottom-nav{position:fixed;inset:auto 0 0;display:grid;grid-template-columns:repeat(5,1fr);padding:8px 6px calc(7px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bottom-nav button{border:0;background:transparent;display:grid;justify-items:center;gap:3px;color:#5f7278;font-size:9px}.bottom-nav button.active{color:var(--teal);font-weight:600}.page-header{margin-bottom:20px}.page-header h1{font-size:22px}.page-header p{font-size:11px}.date-label{display:none}.summary-band{grid-template-columns:1fr 1fr;border:0;padding:0;gap:0}.summary-band>div{border-bottom:1px solid var(--line);padding:15px 6px}.summary-band>div:first-child{grid-column:1 / -1}.summary-band strong{font-size:24px}.dashboard-grid{gap:14px}.panel{border-radius:9px;padding:16px}.allocation-wrap{display:block}.donut{width:150px;height:150px;margin:0 auto 10px}.allocation-row{grid-template-columns:10px 1fr 42px 82px}.quick-panel{display:none}.recent-panel{min-height:auto}.transaction-preview>div{grid-template-columns:75px 55px 1fr 70px;gap:5px}.fund-input{grid-template-columns:1fr;padding:18px}.fund-input label:nth-of-type(2){margin-top:9px}.buy-plan{padding:6px 12px}.buy-plan>div{grid-template-columns:10px 1fr 38px 92px;gap:8px}.satellite-inline>div{display:grid}.holdings-header{align-items:flex-start}.market-refresh{flex:0 0 auto;padding:9px 11px;font-size:11px}.market-summary{grid-template-columns:1fr 1fr;padding:13px;gap:12px}.market-summary div:nth-child(3){grid-column:1/-1}.holdings-table{border:0;padding:0}.holding-head{display:none}.holding-row{grid-template-columns:1fr 1fr;gap:14px 10px;padding:17px 4px}.holding-name{grid-column:1 / 2}.holding-row>strong{grid-column:2 / 3;grid-row:1;text-align:right}.holding-row label{min-width:0}.market-value-cell{grid-column:auto!important}.money-input{width:100%}.mobile-label{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}.settings-actions{display:grid}.onboarding{padding:20px 15px}.onboarding>header{margin-bottom:25px}.onboarding-intro h1{font-size:26px}.onboarding form{padding:17px}.onboarding-head{display:none}.onboarding-row{grid-template-columns:1fr 1fr;gap:8px}.onboarding-row>div{grid-column:1 / -1}.onboarding-row label:before{font-size:10px}.start-date{display:grid;gap:8px}.start-date input{width:100%}}@media(max-width:700px){.recommend-card{padding:16px}.cashflow-inputs,.cashflow-inputs.two-cols{grid-template-columns:1fr}.locked-factor{margin:3px 0}.factor-list{grid-template-columns:1fr}.recommendation-result{padding:17px}.fund-input.compact{grid-template-columns:1fr}.reset-suggestion{order:3;padding:0}.fund-input.compact label[for=dca-date]{margin-top:8px}.buy-plan strong small{line-height:1.4}.result-title strong{font-size:27px}}@media(max-width:700px){.rebalance-reminder{padding:12px}.rebalance-advice-grid{grid-template-columns:1fr;gap:14px}.rebalance-head{display:none}.rebalance-row{grid-template-columns:1.2fr .7fr .7fr;gap:8px}.rebalance-row>span:nth-child(2){display:none}.rebalance-row>span:last-child{text-align:right}.rebalance-status{align-items:flex-start}.rebalance-status strong{font-size:15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.factor-list>label.factor-number{display:grid;gap:8px}.execution-quantity{grid-column:2 / -1;display:grid;grid-template-columns:auto minmax(120px,180px);align-items:center;justify-content:end;gap:9px;color:var(--muted);font-size:10px}.execution-quantity input,.reserve-alert input,.setting-rate input{border:1px solid var(--line);border-radius:7px;background:#fff;padding:8px;min-width:0}.reserve-alert label{display:flex;align-items:center;gap:8px;margin-top:7px}.reserve-alert input{width:70px}.setting-rate{display:flex;align-items:center;gap:7px;margin-top:12px}.setting-rate input{width:100px}.allocation-history{margin-top:14px}.allocation-history h2{margin:4px 0 12px;font-size:15px}@media(max-width:700px){.execution-quantity{grid-column:1/-1;grid-template-columns:1fr 1fr;justify-content:stretch}.execution-plan>div{grid-template-columns:10px 1fr 38px 88px}}.money-input{transition:border-color .15s,box-shadow .15s}.money-input:focus-within{border-color:#63aaa4;box-shadow:0 0 0 3px #0e766e1a}.money-input input{flex:1;width:100%;min-width:0;height:100%;border:0;outline:0;background:transparent;padding:0 10px 0 5px;color:#21363c;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.money-input input::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.factor-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.factor-heading strong{font-size:12px}.factor-heading span{color:var(--muted);font-size:9px}.factor-list{margin-top:10px}.factor-list input[type=checkbox]{width:18px;height:18px;flex:0 0 18px;margin:0;accent-color:var(--teal)}.factor-list .money-input{display:flex;align-items:center}.factor-list .money-input i{flex:0 0 auto;line-height:1}.factor-list .money-input input{line-height:normal}@media(max-width:700px){.recommend-card{padding:16px 14px}.cashflow-inputs{grid-template-columns:1fr 1fr;gap:13px 10px}.cashflow-inputs>label:first-child{grid-column:1 / -1}.cashflow-inputs.two-cols{grid-template-columns:1fr}.money-input.wide{height:44px}.money-input input,.cashflow-inputs select{font-size:16px}.locked-factor{grid-column:1 / -1;margin:2px 0 0;padding:9px 0 9px 12px;grid-template-columns:1fr auto;align-items:center}.locked-factor strong{grid-column:2;grid-row:1 / 3;font-size:18px}.factor-heading{margin-top:16px;padding-top:14px}.factor-list{grid-template-columns:1fr;gap:0;margin-top:7px;border-top:1px solid var(--line)}.factor-list>label{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px 2px;gap:11px}.factor-list>label.factor-number{padding:14px 2px}.factor-list .factor-number .money-input{margin-top:8px}.factor-list strong{font-size:13px}.factor-list small{margin-top:2px;font-size:10px}}.factor-details{margin-top:18px;border-top:1px solid var(--line)}.factor-details summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 2px 4px;cursor:pointer}.factor-details summary::-webkit-details-marker{display:none}.factor-details summary>span{display:grid;gap:2px}.factor-details summary strong{font-size:12px}.factor-details summary small{color:var(--muted);font-size:9px}.factor-details summary b{flex:0 0 auto;color:var(--teal);background:var(--teal-soft);border-radius:99px;padding:5px 9px;font-size:9px}.factor-details[open] summary{padding-bottom:8px}.fund-input.compact{align-items:end}.fund-field{display:grid;gap:7px;min-width:0}.fund-field .date-input{width:100%;font-size:14px}.fund-input.compact .reset-suggestion{padding:0}.draft-note{align-self:center;justify-self:end;color:var(--muted);font-size:9px}.pending-value{color:#a76419!important}.paused-buy{opacity:.62}.paused-buy>b{color:var(--muted)}@media(max-width:700px){.factor-details{margin-top:15px}.factor-details summary{padding:13px 2px 3px}.factor-details summary strong{font-size:13px}.factor-details summary small,.factor-details summary b{font-size:10px}.fund-input.compact{grid-template-columns:1fr 1fr;padding:15px;gap:11px 14px}.fund-input.compact .fund-field{grid-column:auto}.fund-input.compact .reset-suggestion{grid-column:1;grid-row:2;order:initial;justify-self:start}.draft-note{grid-column:2;grid-row:2;font-size:10px;text-align:right}.fund-field .currency-input span,.fund-field .currency-input input{font-size:23px}.fund-field .date-input{min-height:43px;padding:8px 0;font-size:13px}.section-heading p,.cashflow-inputs label{font-size:11px}.result-breakdown>div{font-size:11px}}.floor-modes{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:4px}.floor-modes label{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-soft);cursor:pointer}.floor-modes input{width:15px;height:15px;margin:0;accent-color:var(--accent);flex:none}.rmb-floor small{display:block;margin-top:6px;font-size:12px;line-height:1.5;color:var(--text-soft)}.insurance-summary div small{display:block;margin-top:2px;font-size:11px;color:var(--text-soft)}
