:root{font-family:"Segoe UI","Microsoft YaHei",system-ui,sans-serif;color:#243b33;background:#f5f7f4;font-synthesis:none;--ink:#243b33;--muted:#829187;--line:#e8ede7;--green:#245c45;--gain:#cb6b58;--loss:#208d7b}
*{box-sizing:border-box}body{margin:0;overflow:hidden;font-size:14px}button,input,select{font:inherit;color:inherit}button{border:0;background:transparent;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid #7b9b65;outline-offset:2px}button:disabled{opacity:.3;cursor:default}button,input,select{-webkit-tap-highlight-color:transparent}h1,h2,p{margin:0}[hidden]{display:none!important}.gain{color:var(--gain)}.loss{color:var(--loss)}
.app-header{position:fixed;inset:0 0 auto;height:calc(62px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 15px 0;background:#f5f7f4f5;z-index:5;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.app-header>div{display:flex;align-items:center;gap:8px}.app-header h1{font-size:19px;font-weight:650;letter-spacing:.3px}.brand{font-size:27px;color:#37674b}.demo-tag{font-size:10px;color:#7b8c78;border:1px solid #dce5d8;border-radius:5px;padding:2px 5px}.app-header button{width:42px;height:42px;font-size:24px;color:#56785e}.app-header button.busy{animation:spin 1s linear infinite}
#app-scroll{position:fixed;inset:calc(62px + env(safe-area-inset-top)) 0 calc(66px + env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.page{padding:16px 14px 0}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{min-width:0;min-height:114px;padding:15px 12px 13px;background:#fff;border:1px solid #e6ece3;border-radius:14px}.metric>span{display:flex;align-items:center;gap:5px;font-size:11px;color:#7b8b7f}.metric small{font-size:9px;opacity:.7;border:1px solid currentColor;border-radius:3px;padding:0 3px}.metric>strong{display:block;font-size:clamp(18px,5.15vw,23px);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.65px;margin-top:11px;overflow-wrap:anywhere}.metric p{font-size:9px;margin-top:9px;color:#8a978a;line-height:1.5}.metric p b{font-weight:550;float:right}.metric.value{background:linear-gradient(135deg,#245642,#194c3c);border-color:#245642;color:#fff}.metric.value>span,.metric.value p{color:#c2d8c5}.quote-status{display:flex;align-items:center;gap:5px;color:#91a08e;font-size:9px;padding:11px 2px 0}.quote-status>span:last-child{margin-left:auto;white-space:nowrap}.status-dot{width:4px;height:4px;flex:none;background:#84a573;border-radius:50%}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:17px 1px 10px;min-height:34px}.section-heading h2{font-size:16px;font-weight:650}.section-heading small{font-size:10px;color:#87997b;font-weight:500;margin-left:4px}.text-button{font-size:12px;color:#557a53;min-height:38px;padding:8px 9px}.sort-button{min-width:72px;min-height:42px;border:1px solid #d7e2d0;background:#fff;border-radius:9px;font-size:12px;color:#557a53}
.stock-list{display:grid;gap:10px}.stock-card{min-width:0;background:#fff;border:1px solid #e6ece3;border-radius:13px;padding:14px 13px 12px}.stock-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,1.1fr);gap:8px;align-items:start}.stock-open{min-width:0;padding:0;text-align:left;display:flex;gap:8px;align-items:center;min-height:42px}.stock-mark{display:flex;justify-content:center;align-items:center;width:30px;height:32px;flex:none;border-radius:8px;background:#eef1e7;color:#7e9570;font-size:14px;font-weight:600}.stock-open b{display:block;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.stock-open small{display:block;font-size:9px;margin-top:4px;color:#94a08c}.stock-money{text-align:right;min-width:0}.stock-money>strong{display:block;font-size:clamp(17px,4.9vw,20px);font-weight:580;letter-spacing:-.5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stock-money>span{display:block;font-size:11px;margin-top:7px;line-height:1.6;overflow-wrap:anywhere}.stock-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 15px;border-top:1px solid var(--line);margin:12px 0 0;padding-top:12px}.stock-facts>div{min-width:0}.stock-facts dt{font-size:10px;color:#93a08e;line-height:1.5}.stock-facts dd{margin:4px 0 0;font-size:13px;line-height:1.3;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stock-foot{display:flex;gap:5px;align-items:center;font-size:9px;color:#8ca07c;margin-top:12px}.stock-foot span:last-child{margin-left:auto}.group-dot{width:4px;height:4px;background:#99af86;border-radius:50%}.holdings-tools{display:flex;gap:8px;align-items:center}.search{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid #e0e8dc;border-radius:9px;padding:0 10px;min-width:0;flex:1;height:42px;color:#92a188}.search>span{font-size:22px}.search input{min-width:0;width:100%;border:0;outline:0;background:transparent;font-size:13px}.search input::placeholder{color:#a4afa0}.account-row{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#819276;padding:13px 1px 15px}.account-row label{display:flex;align-items:center;gap:6px}.account-row select{padding:7px 10px;border:1px solid #dfe7d9;border-radius:7px;background:#fff;font-size:11px;max-width:180px}
.bottom-nav{position:fixed;inset:auto 0 0;height:calc(66px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:4px 7px calc(4px + env(safe-area-inset-bottom));background:#fffffffa;border-top:1px solid #e0e8dc;z-index:10}.bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:9px;font-size:10px;color:#92a08b;min-width:0}.bottom-nav button>span{font-size:23px;line-height:25px}.bottom-nav button.selected{color:#315f3d;background:#f0f5eb}.data-footnote{font-size:9px;line-height:1.8;text-align:center;color:#a3ae9c;margin:17px 14px 20px}.toast{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;min-width:110px;padding:12px 18px;border-radius:11px;background:#244b35f5;box-shadow:0 7px 22px #1e3d2a25;color:#fff;text-align:center;font-size:12px;line-height:1.7;z-index:30;pointer-events:none;overflow-wrap:anywhere}
#pull-indicator{display:flex;align-items:center;justify-content:center;gap:8px;height:var(--pull-height,0px);overflow:hidden;font-size:11px;color:#819a70;flex:none}#pull-symbol{font-size:20px}#pull-indicator.refreshing #pull-symbol{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.bottom-sheet{position:fixed;inset:auto 0 0;width:100%;max-width:480px;max-height:88vh;max-height:88dvh;margin:0 auto;padding:8px 17px calc(17px + env(safe-area-inset-bottom));border:0;border-radius:22px 22px 0 0;background:#fff;color:var(--ink);overscroll-behavior:contain;box-shadow:0 -12px 60px #152d2e22}.bottom-sheet::backdrop{background:#16332966;backdrop-filter:blur(2px)}.sheet-grip{width:34px;height:4px;border-radius:5px;background:#d9e2d3;margin:0 auto 15px}.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.sheet-heading h2{font-size:18px;font-weight:650}.sheet-heading p{font-size:10px;color:#97a08f;margin-top:6px}.close-button{font-size:24px;color:#95a389;width:44px;height:44px;flex:none;border-radius:10px}.sort-mode-row{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:11px;color:#718569;padding:18px 0 12px}.sort-mode-row select{font-size:12px;background:#f6f8f3;border:1px solid #e0e8d9;border-radius:7px;padding:9px;max-width:65%}.sort-help{font-size:10px;color:#98a38e;margin-bottom:9px;line-height:1.8}#sort-list{max-height:48vh;max-height:48dvh;overflow-y:auto;overscroll-behavior:contain}.sort-row{display:grid;grid-template-columns:minmax(0,1fr) 38px 38px 36px;align-items:center;gap:3px;padding:10px 0;border-bottom:1px solid var(--line);background:#fff}.sort-row>span{font-size:13px;overflow-wrap:anywhere}.sort-row small{display:block;font-size:9px;color:#9aa68f;margin-top:4px}.sort-row button{height:42px;border-radius:7px;background:#f6f8f3;color:#6d895c;font-size:17px;min-width:0}.sort-row .sort-handle{background:transparent;font-size:23px;color:#9aab90;touch-action:none;cursor:grab}.sort-ghost{opacity:.25;background:#e9f0e0}.sort-chosen{background:#eff5e7}.sort-fallback{box-shadow:0 7px 24px #20432b22;pointer-events:none}.sheet-actions{display:flex;gap:10px;margin-top:16px}.sheet-actions button{flex:1;min-height:44px;border-radius:10px;font-size:13px}.primary{background:var(--green);color:#fff}.secondary{border:1px solid #dce6d5;background:#fff;color:#728965}.page-section-title{font-size:16px;margin:8px 0 18px}.info-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 0;border-bottom:1px solid #e1e8dc;font-size:12px}.info-row strong{font-size:13px;font-weight:550}.page-note{font-size:11px;color:#91a187;line-height:1.9;margin:20px 0 6px}#detail-facts .stock-facts{margin-top:20px;row-gap:20px}#stock-detail .sheet-heading h2{font-size:22px}.empty{padding:45px 15px;text-align:center;color:#97a38d;font-size:12px}
@media(max-width:340px){.page{padding-left:11px;padding-right:11px}.metric{padding:13px 10px;min-height:110px}.metric p{font-size:8px}.metric>strong{font-size:18px}.stock-card{padding-left:11px;padding-right:11px}.stock-heading{grid-template-columns:minmax(0,1fr) minmax(90px,1.1fr)}.stock-money>strong{font-size:17px}.stock-open{gap:5px}.stock-open b{font-size:12px}.stock-mark{width:25px;height:29px}.stock-facts{column-gap:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.metric-modules{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0}.metric-modules:empty{display:none}.added-metric{position:relative}.added-metric>span{padding-right:26px}.mini-more{position:absolute;right:4px;top:4px;min-width:34px;min-height:34px;font-size:20px;color:var(--muted);z-index:1}.overview-actions{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,.8fr) 32px;gap:5px;margin:14px 0}.overview-actions button,.holding-actions button{font-size:11px;min-height:38px;padding:7px 6px;background:#fff;border:1px solid #dce6d5;border-radius:8px;color:#608251;white-space:nowrap}.overview-actions .primary,.holding-actions .primary{background:var(--green);color:#fff;border-color:var(--green)}.overview-actions #layout-undo{font-size:20px;padding:0}.holding-actions{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:7px;margin-top:10px}.account-summary{display:flex;flex-wrap:wrap;gap:7px 12px;font-size:10px;color:#829577;margin:-3px 0 15px;line-height:1.8}.account-summary>span:first-child{width:100%;font-weight:600}
.content-modules{display:grid;gap:14px}.content-module{min-width:0;padding:15px 13px;background:#fff;border:1px solid #e1e9dc;border-radius:13px}.content-module[data-module-id=holdings]{border:0;background:transparent;padding:0}.module-heading{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:40px;margin-bottom:8px}.module-heading h2{font-size:15px;font-weight:650;min-width:0;overflow-wrap:anywhere}.module-heading>div{display:flex;align-items:center;gap:2px;flex:none}.module-heading .text-button{font-size:10px;padding:6px;min-height:36px}.module-more{width:32px;height:36px;font-size:21px;color:#94a18b;flex:none}.module-empty{font-size:11px;color:#95a48a;line-height:1.9;padding:15px 0}.module-total{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:#889b7c;padding:6px 0 13px}.module-total strong{color:var(--ink);font-size:15px;font-weight:550}.module-total strong.gain{color:var(--gain)}.module-total strong.loss{color:var(--loss)}.group-overview-row{display:flex;justify-content:space-between;align-items:center;text-align:left;width:100%;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:12px}.group-overview-row>span{min-width:0;overflow-wrap:anywhere}.group-overview-row>span:last-child{text-align:right}.group-overview-row small{display:block;font-size:9px;color:#94a18c;margin-top:6px;line-height:1.6}.group-overview-row small.gain{color:var(--gain)}.group-overview-row small.loss{color:var(--loss)}.group-overview-row i,.group-manager-row i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px}.module-subtitle{font-size:11px;color:#7a906b;margin:18px 0 10px;font-weight:550}.allocation-line{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-size:11px;padding:10px 0}.allocation-line>span{max-width:75%;overflow-wrap:anywhere}.allocation-line strong{font-size:11px;font-weight:500}.allocation-line i{display:block;flex-basis:auto;height:3px;border-radius:3px;min-width:0;max-width:100%;margin-right:auto}.allocation-line:after{content:'';display:block;width:100%;height:0}.record-stock-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 0 8px;font-size:12px;border-top:1px solid var(--line)}.record-stock-heading small{display:block;font-size:9px;color:#98a38e;margin-top:5px}.record-stock-heading strong{font-size:13px;font-weight:550}.record-row{display:flex;align-items:center;gap:7px;padding:9px 0;border-bottom:1px solid var(--line);font-size:11px}.record-row>span{min-width:0;margin-right:auto}.record-row small{display:block;color:#99a68f;font-size:9px;margin-top:5px}.record-row strong{font-size:11px;font-weight:500}.record-row button,.realized-item button{font-size:10px;padding:8px 2px;min-height:36px}.danger{color:#bf7865!important}.module-action-row{display:flex;justify-content:space-between;gap:8px}.module-action-row .text-button{font-size:11px}.realized-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:13px 0;border-top:1px solid var(--line);font-size:11px}.realized-item>span{min-width:0;overflow-wrap:anywhere}.realized-item small{display:block;color:#96a48a;font-size:9px;line-height:1.8;margin-top:5px}.realized-item>div{grid-column:2;display:flex;gap:10px}.realized-item>small{grid-column:1;grid-row:2}.widget-stock{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:12px 0;border-top:1px solid var(--line);font-size:12px}.widget-stock>span{min-width:0;overflow-wrap:anywhere}.widget-stock small{display:block;color:#98a38e;font-size:9px;margin-top:6px}.widget-stock strong{font-size:12px;white-space:nowrap;font-weight:550}#investment-note{resize:vertical;width:100%;min-height:140px;background:#f7f9f4;border:1px solid #dde7d5;border-radius:9px;padding:12px;line-height:1.8;font-family:inherit;font-size:14px;color:var(--ink)}
.phone-form{margin-top:16px}.phone-form>.sheet-heading{margin-bottom:18px}.phone-form label{display:block;font-size:11px;color:#728668;min-width:0}.phone-form input:not([type=checkbox]),.phone-form select{width:100%;height:42px;padding:8px 9px;border:1px solid #dbe5d3;border-radius:7px;background:#f8faf5;color:var(--ink);font-size:16px;margin-top:7px;min-width:0}.phone-form input[type=color]{padding:4px}.phone-form small{display:block;color:#98a58e;font-size:9px;line-height:1.7;margin-top:6px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}.form-grid .full{grid-column:1/-1}.phone-form .check-label{display:flex;align-items:center;gap:6px;min-height:38px}.check-label input{width:18px;height:18px;accent-color:var(--green)}.symbol-input{display:flex;align-items:center;border:1px solid #dbe5d3;border-radius:7px;background:#f8faf5;margin-top:7px}.phone-form .symbol-input input{border:0;background:transparent;margin:0;padding-right:2px}.symbol-input button{flex:none;font-size:10px;color:#71925b;padding:8px 6px;min-height:38px}.form-error{font-size:11px;color:#b36a54;line-height:1.8;margin:10px 0}.form-error:empty{display:none}.form-caption{font-size:10px;color:#97a48c;line-height:1.8;margin:8px 0}.form-caption.full{margin:0}.page-note.compact{margin:0 0 16px}.form-submit{width:100%;min-height:44px;border-radius:9px;margin-top:18px;font-size:13px}.phone-form>label+label{margin-top:16px}.group-form-row{display:grid;grid-template-columns:minmax(0,1fr) 56px;gap:10px}.manager-list{max-height:48vh;max-height:48dvh;overflow-y:auto;overscroll-behavior:contain;margin-top:14px}.group-manager-row{display:flex;align-items:center;gap:2px;padding:12px 0;border-bottom:1px solid var(--line)}.group-manager-row>span{flex:1;min-width:0;overflow-wrap:anywhere;font-size:11px}.group-manager-row small{display:block;font-size:9px;color:#a0aa95;margin-top:4px}.group-manager-row button{font-size:10px;flex:none;min-width:32px;min-height:40px;padding:3px}.library-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 0;border-bottom:1px solid var(--line)}.library-row>span{font-size:12px;min-width:0;overflow-wrap:anywhere}.library-row small{display:block;font-size:9px;color:#9aa68e;margin-top:6px}.library-row button{font-size:11px;border:1px solid #d7e4cc;border-radius:7px;background:#f4f8ef;color:#718d5c;padding:8px;white-space:nowrap;min-height:36px}.library-row button:disabled{opacity:.5;background:transparent;border-color:transparent}.layout-row{display:grid;grid-template-columns:minmax(0,1fr) 32px 32px 40px 32px;align-items:center;gap:3px;padding:10px 0;border-bottom:1px solid var(--line);background:#fff}.layout-row>span{min-width:0;font-size:12px;overflow-wrap:anywhere}.layout-row button{font-size:11px;min-height:40px;padding:2px;border-radius:6px;color:#7e966c}.layout-row .sort-handle{font-size:23px;touch-action:none}.detail-action-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px}.detail-action-row button{flex:1;min-height:42px;min-width:65px;border-radius:9px;font-size:11px;padding:7px;border:1px solid #dae6d2}.detail-action-row .danger{background:#fff}.cycle-tabs{display:flex;justify-content:space-between;gap:6px;margin-top:16px}.cycle-tabs button{flex:1;min-height:38px;border:1px solid var(--line);border-radius:7px;font-size:11px}.cycle-tabs .selected{background:#edf4e5;color:#597c42}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #e0e8d9;font-size:12px}.setting-row select{max-width:65%;min-width:110px;background:#fff;border:1px solid #dbe5d3;border-radius:7px;font-size:12px;padding:8px}.setting-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--green)}.setting-row strong{font-size:11px;font-weight:500}.wide-action{display:block;width:100%;text-align:left;background:#fff;border:1px solid #dce5d4;border-radius:8px;min-height:42px;margin:10px 0;font-size:12px;padding:10px 12px}.page-section-title.spaced{margin-top:28px}
body[data-up=green]{--gain:#208d7b;--loss:#cb6b58}body[data-theme=dark]{--ink:#d8e4d0;--muted:#92a389;--line:#34472f;--green:#4b7451;color:var(--ink);background:#15251c}body[data-theme=dark] .app-header,body[data-theme=dark] .bottom-nav{background:#1a2e20;color:var(--ink);border-color:var(--line)}body[data-theme=dark] .metric,body[data-theme=dark] .stock-card,body[data-theme=dark] .content-module,body[data-theme=dark] .bottom-sheet,body[data-theme=dark] .wide-action{background:#213426;color:var(--ink);border-color:var(--line)}body[data-theme=dark] .content-module[data-module-id=holdings]{background:transparent}body[data-theme=dark] .metric.value{background:#24513b}body[data-theme=dark] .search,body[data-theme=dark] input,body[data-theme=dark] select,body[data-theme=dark] #investment-note{background:#192a1e;color:var(--ink);border-color:#405237}body[data-theme=dark] .sort-row,body[data-theme=dark] .layout-row{background:#213426}body[data-theme=dark] .sort-row button,body[data-theme=dark] .overview-actions button,body[data-theme=dark] .holding-actions button,body[data-theme=dark] .secondary,body[data-theme=dark] .detail-action-row .danger{background:#293f2a;border-color:#405237;color:var(--ink)}body[data-theme=dark] .bottom-nav button.selected{background:#31462b}body[data-theme=dark] .primary{background:#4c7751!important;color:#fff!important}
.bottom-sheet .toast{top:calc(14px + env(safe-area-inset-top));bottom:auto}.phone-form>.sheet-actions{position:sticky;bottom:calc(-17px - env(safe-area-inset-bottom));z-index:3;background:#fff;border-top:1px solid var(--line);padding:12px 0 2px}.phone-form>.sheet-heading{position:sticky;top:-8px;z-index:4;background:#fff;padding:6px 0}.bottom-sheet>.sheet-heading{position:sticky;top:-8px;z-index:5;background:#fff;margin:0 -17px;padding:8px 17px;border-bottom:1px solid var(--line)}.sheet-heading>div{min-width:0;overflow-wrap:anywhere}#holding-panel .phone-form,#record-panel .phone-form{margin-top:0}.group-manager-row [data-group-shift]{font-size:15px}body[data-theme=dark] .phone-form>.sheet-actions,body[data-theme=dark] .phone-form>.sheet-heading,body[data-theme=dark] .bottom-sheet>.sheet-heading{background:#213426}
#privacy svg{width:24px;height:24px;display:block;margin:auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.module-more{position:relative}[data-module-options]{isolation:isolate;overflow:hidden;touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;cursor:grab;border-radius:7px}[data-module-options]:before{content:'';position:absolute;inset:0;background:#88a77333;transform:scaleX(0);transform-origin:left;z-index:-1}[data-module-options]:active:before{transform:scaleX(1);transition:transform 1s linear}[data-module-options]:active{cursor:grabbing}.module-picked{outline:2px solid #8cae73;outline-offset:2px}.module-placeholder{opacity:.28;border:1px dashed #93ae80}.module-clone{display:none!important}.module-floating{z-index:1000!important;pointer-events:none!important;overflow:hidden!important;border-radius:13px;box-shadow:0 16px 45px #1d3b2f35;background:#fff;opacity:.96}.module-floating.content-module:after{content:'松开保存位置';position:absolute;inset:auto 0 0;text-align:center;padding:15px 0 8px;font-size:10px;color:#6b895a;background:linear-gradient(transparent,#fff 50%)}.module-dragging #app-scroll{user-select:none;-webkit-user-select:none}body[data-theme=dark] .module-floating{background:#213426}body[data-theme=dark] .module-floating.content-module:after{background:linear-gradient(transparent,#213426 50%)}
:root{--red:var(--gain)}.detail-live-quote{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;margin:12px 0}.detail-live-quote>strong{font-size:26px;font-weight:550;font-variant-numeric:tabular-nums}.detail-live-quote>span{font-size:13px}.detail-live-quote>span small{font-size:9px;color:var(--muted);margin-left:5px}.detail-live-quote>small{font-size:9px;color:#90a083;width:100%;line-height:1.8}.chart-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.chart-tools select,.chart-tools button{font-size:11px;min-height:34px;padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:transparent}.chart-status{font-size:11px;color:#a28b5b;line-height:1.8;margin-top:10px}.chart-status:empty{display:none}.detail-chart{width:100%;min-width:0;touch-action:pan-y}.detail-chart:empty{display:none}.detail-chart svg{display:block;width:100%;overflow:hidden}.detail-chart text{font-size:9px;fill:var(--muted)}.chart-grid-line{stroke:var(--line);stroke-dasharray:3 4}#crosshair line{stroke:#93a087;stroke-dasharray:3 3;stroke-width:.7}.chart-readout{display:flex;flex-wrap:wrap;gap:6px 9px;font-size:10px;color:#899b7e;line-height:1.6;margin:12px 0 2px}.chart-readout:empty{display:none}.chart-readout strong{width:100%;font-size:10px;color:var(--ink);font-weight:550}.chart-readout small{width:100%;font-size:9px;color:#9d915b}.chart-source{font-size:9px;color:#95a38b;line-height:1.9;margin-top:8px}.chart-source:empty{display:none}.history-range{display:flex;align-items:center;gap:9px;font-size:10px;color:#92a186;margin:8px 0}.history-range input{flex:1;min-width:0;height:24px;accent-color:#75995c}#stock-detail>.detail-action-row{position:sticky;bottom:calc(-17px - env(safe-area-inset-bottom));padding:12px 0 2px;background:#fff;border-top:1px solid var(--line);z-index:4}body[data-theme=dark] #stock-detail>.detail-action-row{background:#213426}

/* Layout revision preview: all metrics participate in one editable grid. */
.summary-heading{display:flex;justify-content:space-between;align-items:center;margin:-6px 0 8px;min-height:32px;font-size:11px;color:var(--muted)}
.summary-heading .text-button{font-size:11px;padding:6px 4px;min-height:36px}
.summary-grid{grid-auto-flow:row;align-items:stretch;gap:10px}
.summary-grid:empty{display:none}
.summary-grid>.metric:last-child:nth-child(odd){grid-column:1/-1}
.metric{position:relative;min-height:122px;height:auto;padding:16px 12px 14px;display:flex;flex-direction:column;justify-content:flex-start}
.metric>span{padding-right:20px;min-height:16px;line-height:1.55;flex-wrap:wrap;gap:4px}
.metric>strong{margin-top:13px;font-size:clamp(18px,5.2vw,24px);font-weight:600;line-height:1.3;overflow-wrap:anywhere;letter-spacing:-.5px;min-width:0;max-width:100%}
.metric p{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:3px 8px;font-size:9px;margin-top:auto;padding-top:10px;line-height:1.7}
.metric p b{float:none;overflow-wrap:anywhere}
.metric .mini-more{width:32px;height:32px;min-width:32px;min-height:32px;top:4px;right:3px;color:var(--muted)}
.metric.value .mini-more{color:#bed7c3}
.metrics-empty{border:1px dashed #bfceb5;border-radius:12px;padding:15px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px}
.content-module,.stock-card,.record-stock-heading,.group-overview-row,.widget-stock,.info-row,.setting-row{min-width:0;max-width:100%;overflow-wrap:anywhere}
.module-heading{align-items:flex-start;flex-wrap:wrap;column-gap:5px;row-gap:0}
.module-heading h2{flex:1;min-width:65px;line-height:36px}
.module-heading>div{max-width:100%;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}
.module-total{align-items:baseline;flex-wrap:wrap;gap:7px 12px;line-height:1.8}
.module-total strong{max-width:100%;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.group-overview-row{align-items:flex-start;gap:10px;line-height:1.6}
.group-overview-row>span:first-child{flex:1;min-width:0}
.group-overview-row>span:last-child{flex:1;min-width:0;font-variant-numeric:tabular-nums}
.record-stock-heading{align-items:flex-start;line-height:1.7}
.record-stock-heading>span{flex:1;min-width:0}
.record-stock-heading strong{min-width:0;max-width:55%;font-variant-numeric:tabular-nums}
.record-row{display:grid;grid-template-columns:minmax(0,1fr) 38px 38px;gap:4px 8px;padding:10px 0}
.record-row>span{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;gap:6px;flex-wrap:wrap;margin:0}
.record-row strong{font-size:13px;overflow-wrap:anywhere;min-width:0}
.realized-item{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);line-height:1.7}
.realized-item>strong{text-align:right;overflow-wrap:anywhere;min-width:0}
.realized-item>div{justify-content:flex-end}
.stock-heading{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
.stock-money>strong{max-width:100%;line-height:1.45}
.stock-foot{flex-wrap:wrap;line-height:1.8}
.stock-foot>span{min-width:0;overflow-wrap:anywhere}
.account-row{flex-wrap:wrap;gap:8px;line-height:1.7}
.account-row label{min-width:0;max-width:100%}
.account-row select{min-width:0;max-width:min(180px,70vw)}
.info-row strong{min-width:0;max-width:65%;overflow-wrap:anywhere;text-align:right}
.setting-row>span,.setting-row>label{min-width:0}
.bottom-sheet{overflow-x:hidden}
.bottom-sheet .sheet-heading h2{min-width:0;overflow-wrap:anywhere}
.library-row,.group-manager-row,.layout-row{min-width:0}
.library-row>span,.layout-row>span{line-height:1.7}
.manager-list{max-height:54dvh}
#arrange-panel .sheet-actions,#library-panel .sheet-actions,#sort-panel .sheet-actions{position:sticky;bottom:calc(-17px - env(safe-area-inset-bottom));padding:12px 0 2px;background:#fff;border-top:1px solid var(--line);z-index:4}
body[data-theme=dark] #arrange-panel .sheet-actions,body[data-theme=dark] #library-panel .sheet-actions,body[data-theme=dark] #sort-panel .sheet-actions{background:#213426}
@media(max-width:340px){.metric{padding:14px 11px 12px;min-height:120px}.metric>span{font-size:10px}.metric>strong{font-size:18px}.metric p{font-size:8px;gap:2px 5px}.content-module{padding:13px 11px}.overview-actions button{font-size:10px;padding:7px 4px}.module-heading .text-button{padding:6px 4px}.bottom-sheet{padding-left:13px;padding-right:13px}.bottom-sheet>.sheet-heading{margin-left:-13px;margin-right:-13px;padding-left:13px;padding-right:13px}}

/* Refresh preview: loading never changes the silent-mode viewport. */
#app-scroll{overflow-anchor:none}.metric>strong,.stock-money,.stock-facts dd,.info-row strong{font-variant-numeric:tabular-nums}.quote-status{min-height:18px}.quote-status #updated-at{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.refresh-mode-note{margin:8px 0 18px;line-height:1.8}
