:root{--app-bg: #f5f7fb;--hero-bg: #eef2f7;--hero-border: #dbe3ee;--text: #172033;--muted: #536179;--soft-text: #637083;--panel-bg: rgba(255, 255, 255, .92);--panel-border: #dfe5ef;--panel-shadow: rgba(40, 52, 77, .08);--row-bg: #fbfcff;--row-hover: #f4f7fb;--row-border: #e5eaf3;--control-bg: #e8edf6;--control-hover: #dbe4f1;--accent: #365f89;--accent-soft: #edf4fb;--accent-border: #c8d7e8;--focus: #7489b6;--focus-ring: rgba(116, 137, 182, .15);--danger: #9d2d2d;--danger-bg: #fff1f1;--warning-bg: #fbf4ea;--warning-border: #e2c9aa;--warning-text: #7d5a32;--liability-bg: #fff8f4;--liability-border: #d5aa87;--icon-button-size: 40px;--chip-height: 40px;--compact-action-height: 40px;--action-button-height: 44px;color:var(--text);background:var(--app-bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}[data-style-mode=clear]{--app-bg: #f8fafc;--hero-bg: #f7f9fc;--hero-border: #e2e8f0;--text: #18212f;--muted: #64748b;--soft-text: #6b7788;--panel-bg: rgba(255, 255, 255, .96);--panel-border: #e2e8f0;--panel-shadow: rgba(20, 31, 48, .06);--row-bg: #ffffff;--row-hover: #f7f9fc;--row-border: #e7edf4;--control-bg: #f0f4f8;--control-hover: #e6edf5;--accent: #3f5874;--accent-soft: #f4f7fb;--accent-border: #d6e0ec;--focus: #6f88a8;--focus-ring: rgba(111, 136, 168, .16);--warning-bg: #fbf5ec;--warning-border: #dfccb3;--warning-text: #765936;--liability-bg: #fff8f4;--liability-border: #d2ad91}[data-style-mode=graphite]{--app-bg: #f2f3f5;--hero-bg: #e7eaee;--hero-border: #d3d8df;--text: #171b22;--muted: #525c69;--soft-text: #606b78;--panel-bg: rgba(255, 255, 255, .94);--panel-border: #d8dde5;--panel-shadow: rgba(21, 27, 35, .09);--row-bg: #fcfcfd;--row-hover: #f0f2f5;--row-border: #e1e5ea;--control-bg: #e3e7ed;--control-hover: #d7dde6;--accent: #303946;--accent-soft: #f1f3f6;--accent-border: #cfd6df;--focus: #657487;--focus-ring: rgba(101, 116, 135, .16);--warning-bg: #f6efe8;--warning-border: #d6bd9f;--warning-text: #73583b;--liability-bg: #fbf4ef;--liability-border: #c8a084}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--app-bg)}html,body,#root{overflow-x:clip}button,input,select{font:inherit}button{appearance:none;border:0;background:transparent;color:inherit;padding:0;cursor:pointer;text-align:inherit}button:disabled,input:disabled{cursor:not-allowed;opacity:.65}button:focus-visible{outline:none;box-shadow:0 0 0 4px var(--focus-ring)}.app-shell{width:min(1180px,calc(100% - 64px));margin:0 auto;padding:0 0 72px}.hero{position:relative;z-index:0;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:36px;padding:58px 0 44px}.hero:before{position:absolute;z-index:-1;inset:0 calc((100% - 100vw)/2);content:"";background:var(--hero-bg);border-bottom:1px solid var(--hero-border)}.eyebrow{margin:0 0 8px;color:var(--muted);font-size:.84rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:12px;font-size:2.75rem;letter-spacing:0}h2{margin:0;font-size:1.1rem}.hero-subtitle{max-width:720px;margin-bottom:0;color:var(--muted)}.style-switch-button{display:inline-flex;flex:0 0 var(--icon-button-size);width:var(--icon-button-size);height:var(--icon-button-size);min-width:var(--icon-button-size);min-height:var(--icon-button-size);align-items:center;justify-content:center;border:1px solid var(--row-border);border-radius:999px;background:var(--row-bg);color:var(--muted);padding:0;font-size:.84rem;font-weight:800;line-height:1;opacity:.86;white-space:nowrap}.style-switch-button:hover{background:var(--row-hover);color:var(--accent);opacity:1}.style-switch-button:focus-visible{outline:none;border-color:var(--focus);box-shadow:0 0 0 4px var(--focus-ring)}.style-switch-button span{color:inherit}.style-mode-mark{display:block;width:16px;height:16px;border:2px solid currentColor;border-radius:999px}.style-mode-mark.is-mist{background:linear-gradient(90deg,currentColor 0 50%,transparent 50% 100%)}.style-mode-mark.is-clear{background:transparent}.style-mode-mark.is-graphite{background:currentColor}.icon-action-button{flex:0 0 var(--icon-button-size)}.primary-action,.secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.15;white-space:nowrap}.primary-action{min-height:var(--action-button-height)}.secondary-action{min-height:var(--compact-action-height)}.card-button{width:100%;min-height:0;text-align:left}.disclosure-button{align-items:center}.subtle-danger-button{flex:0 0 auto;min-height:var(--compact-action-height);border:0;border-radius:999px;background:transparent;color:#9f6b6b;padding:7px 9px;font-size:.82rem;font-weight:800;line-height:1.15;white-space:nowrap}.subtle-danger-button:hover{background:var(--danger-bg);color:var(--danger)}.data-management{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px;color:var(--soft-text);font-size:.82rem}.data-tools-panel{display:grid;gap:10px;margin-top:12px;padding:10px}.data-tools-toggle{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title icon" "meta icon";gap:3px 12px;align-items:center;border:0;border-radius:16px;background:var(--row-bg);color:var(--text);padding:12px 12px 12px 14px;text-align:left}.data-tools-toggle:hover,.data-tools-toggle:focus-visible,.data-tools-panel.is-open .data-tools-toggle{background:var(--row-hover)}.data-tools-toggle>span:first-child{grid-area:title;font-size:1rem;font-weight:900}.data-tools-toggle small{grid-area:meta;color:var(--soft-text);font-size:.82rem;font-weight:800}.data-tools-toggle .expand-indicator{grid-area:icon}.data-tools-body{display:grid;gap:12px;border-top:1px solid var(--row-border);padding:12px 4px 4px}.goal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.goal-grid input{padding:9px 10px}.backup-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.csv-preview{display:grid;gap:10px;border:1px solid var(--row-border);border-radius:16px;background:var(--row-bg);padding:12px}.csv-preview-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.csv-preview-summary strong,.csv-preview-summary small{display:block}.csv-preview-summary small{margin-top:3px;color:var(--soft-text);font-size:.8rem;font-weight:800}.csv-preview-summary>span{flex:0 0 auto;border:1px solid var(--accent-border);border-radius:999px;background:var(--accent-soft);color:var(--accent);padding:6px 9px;font-size:.8rem;font-weight:900;white-space:nowrap}.csv-error-box,.csv-warning-box{display:grid;gap:6px;border:1px solid var(--warning-border);border-radius:14px;background:var(--warning-bg);color:var(--warning-text);padding:10px}.csv-warning-box{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}.csv-error-box strong,.csv-warning-box strong{font-size:.84rem}.csv-box-header,.validation-box-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.csv-box-header span,.validation-box-header span{border:1px solid var(--accent-border);border-radius:999px;background:var(--accent-soft);color:var(--accent);padding:3px 7px;font-size:.72rem;font-weight:900;white-space:nowrap}.csv-error-box ul,.csv-warning-box ul{display:grid;max-height:142px;gap:5px;margin:0;overflow:auto;padding-left:18px;font-size:.82rem;line-height:1.35}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%)}.cockpit-grid{display:grid;grid-template-columns:minmax(320px,1.18fr) minmax(280px,.82fr);gap:14px;margin:20px 0 12px;align-items:stretch}.net-worth-card{display:grid;align-content:start;gap:14px;min-height:178px;background:linear-gradient(135deg,var(--accent-soft) 0%,var(--panel-bg) 68%);border-color:var(--accent-border)}.section-kicker{color:var(--soft-text);font-size:.82rem;font-weight:800}.net-worth-card>strong{display:block;margin:0;color:var(--accent);font-size:2rem;line-height:1.05;overflow-wrap:anywhere}.net-worth-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.net-worth-metrics div{border:1px solid var(--row-border);border-radius:16px;background:var(--row-bg);padding:10px 12px}.net-worth-metrics dt{color:var(--soft-text);font-size:.78rem;font-weight:800}.net-worth-metrics dd{margin:3px 0 0;color:var(--text);font-size:1rem;font-weight:900;text-align:right;overflow-wrap:anywhere}.currency-breakdown{display:grid;gap:10px}.currency-breakdown-toggle{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"title meta icon";gap:10px;align-items:center;border:1px solid var(--row-border);border-radius:14px;background:var(--row-bg);color:var(--text);padding:9px 10px 9px 12px;text-align:left}.currency-breakdown-toggle:hover{background:var(--row-hover)}.currency-breakdown-toggle:focus-visible{border-color:var(--focus);box-shadow:0 0 0 4px var(--focus-ring)}.currency-breakdown-toggle>span:first-child{grid-area:title;font-size:.9rem;font-weight:900}.currency-breakdown-toggle small{grid-area:meta;color:var(--soft-text);font-size:.78rem;font-weight:800;white-space:nowrap}.currency-breakdown-toggle .expand-indicator{grid-area:icon}.currency-breakdown-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:8px}.currency-mini-card{display:grid;gap:5px;border:1px solid var(--row-border);border-radius:14px;background:var(--panel-bg);padding:10px}.currency-mini-card span,.currency-mini-card small{color:var(--soft-text);font-size:.78rem;font-weight:800}.currency-mini-card strong{color:var(--text);font-size:.98rem;overflow-wrap:anywhere}.attention-panel{min-height:178px}.compact-header{margin-bottom:10px}.attention-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.attention-list li,.attention-empty{border:1px solid var(--warning-border);border-radius:14px;background:var(--warning-bg);color:var(--warning-text);padding:10px 12px;font-size:.9rem;font-weight:800}.attention-list li.is-focusable{padding:0}.attention-action{display:grid;width:100%;gap:3px;border:0;border-radius:inherit;background:transparent;color:inherit;padding:10px 12px;text-align:left}.attention-action span,.attention-action small{display:block}.attention-action small{color:var(--soft-text);font-size:.74rem;font-weight:900}.attention-action:hover,.attention-action:focus-visible{background:color-mix(in srgb,var(--warning-bg) 82%,var(--accent-soft));outline:none;box-shadow:inset 0 0 0 1px var(--warning-border)}.attention-empty{margin:0;border-color:var(--row-border);background:var(--row-bg);color:var(--soft-text)}.currency-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:0 0 12px}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:20px 0}.summary-card,.panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:22px;box-shadow:0 16px 40px var(--panel-shadow)}.summary-card{padding:18px}.summary-card span,.summary-card small,.panel-header span,.muted,.asset-row small,.stock-summary small{color:var(--soft-text)}.summary-card strong{display:block;margin:6px 0;font-size:1.35rem}.summary-card.empty strong{font-size:1.1rem}.currency-card{min-height:104px;padding:14px 15px;box-shadow:none}.currency-card strong{font-size:1.12rem;line-height:1.2;overflow-wrap:anywhere}.total-card{border-color:var(--accent-border);background:linear-gradient(135deg,var(--accent-soft) 0%,var(--panel-bg) 66%)}.total-card strong{color:var(--accent)}.warning-text{display:block;margin-top:6px;color:#b45309;font-weight:800}.content-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(500px,1.55fr);gap:16px;align-items:start;margin-bottom:16px}.panel{padding:18px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.asset-detail-header{align-items:flex-start}.asset-detail-header h2,.asset-detail-header span{display:block}.inline-control{display:inline-flex;grid-template-columns:none;width:fit-content;flex:0 0 auto;align-items:center;gap:8px;color:var(--soft-text);font-size:.82rem;white-space:nowrap}.inline-control select{width:auto;min-width:108px;border-radius:999px;padding:7px 28px 7px 10px;font-size:.82rem;font-weight:800}.asset-filter-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) repeat(3,auto) auto;gap:10px;align-items:end;margin:-2px 0 12px}.search-control{min-width:0}.search-control input{min-height:38px;border-radius:999px;padding:8px 14px;font-size:.88rem}.filter-reset-button{align-self:end;min-height:38px}.exchange-shell{position:relative;z-index:12;display:flex;justify-content:flex-end;margin-bottom:12px}.exchange-trigger{display:inline-flex;align-items:center;gap:10px;width:fit-content;max-width:100%;padding:6px 7px 6px 12px;border-radius:999px;box-shadow:none}.exchange-trigger-copy{display:flex;align-items:baseline;gap:8px;min-width:0}.exchange-trigger-copy strong{font-size:.86rem;white-space:nowrap}.exchange-trigger-copy span{color:var(--soft-text);font-size:.76rem;white-space:nowrap}.exchange-actions{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.exchange-actions .ghost-button,.exchange-actions .icon-button{flex:0 0 auto}.exchange-trigger .icon-button{background:var(--control-bg);font-size:.95rem}.exchange-popover{position:absolute;top:calc(100% + 8px);right:0;width:min(760px,calc(100vw - 48px));max-height:min(520px,calc(100vh - 168px));overflow:auto;padding:16px;box-shadow:0 24px 70px #1720332e}.exchange-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:12px;color:var(--soft-text);font-size:.88rem}.exchange-meta a{color:var(--accent);font-weight:800;text-decoration:none}.exchange-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.exchange-row{display:grid;grid-template-columns:minmax(86px,1fr) minmax(96px,1fr) auto auto;gap:8px;align-items:center;border:1px solid var(--row-border);border-radius:16px;background:var(--row-bg);padding:10px}.exchange-row strong,.exchange-row small{display:block}.exchange-row small{color:var(--soft-text);font-size:.78rem}.rate-source{border-radius:999px;background:#fff7ed;color:#9a3412;padding:5px 8px;font-size:.74rem;font-weight:800;white-space:nowrap}.small-action{border:0;border-radius:999px;background:var(--control-bg);color:var(--text);padding:7px 12px;font-size:.78rem;font-weight:800;white-space:nowrap}.rate-status{margin:12px 0 0;color:var(--soft-text);font-size:.88rem}.form-panel{display:grid;gap:12px}.validation-summary{display:grid;gap:8px}.validation-box{display:grid;gap:7px;border:1px solid var(--row-border);border-radius:14px;background:var(--row-bg);padding:10px}.validation-box.is-error{border-color:var(--warning-border);background:var(--warning-bg);color:var(--warning-text)}.validation-box.is-warning{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}.validation-box strong{font-size:.84rem}.validation-box ul{display:grid;gap:4px;margin:0;padding-left:18px;font-size:.82rem;line-height:1.35}.validation-notice{margin:0;color:var(--soft-text);font-size:.82rem;font-weight:800}.warning-confirm-button{width:fit-content;border:1px solid var(--warning-border);border-radius:999px;background:var(--panel-bg);color:var(--warning-text);padding:7px 12px;font-size:.8rem;font-weight:900}.warning-confirm-button:hover,.warning-confirm-button:focus-visible{background:var(--warning-bg)}.add-asset-panel{padding:10px}.add-asset-toggle{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title icon" "meta icon";gap:3px 12px;align-items:center;border:0;border-radius:16px;background:var(--row-bg);color:var(--text);padding:12px 12px 12px 14px;text-align:left}.add-asset-toggle:hover,.add-asset-toggle:focus-visible,.add-asset-panel.is-open .add-asset-toggle{background:var(--row-hover)}.add-asset-toggle>span:first-child{grid-area:title;font-size:1rem;font-weight:900}.add-asset-toggle small{grid-area:meta;color:var(--soft-text);font-size:.82rem;font-weight:800}.add-asset-toggle .expand-indicator{grid-area:icon}.add-asset-form{border-top:1px solid var(--row-border);margin-top:10px;padding:12px 4px 4px}.form-row{display:grid;gap:12px}.form-row.compact{grid-template-columns:repeat(2,minmax(0,1fr))}label{display:grid;gap:6px;color:var(--muted);font-size:.88rem;font-weight:700}input,select{width:100%;border:1px solid var(--panel-border);border-radius:14px;background:#fff;color:var(--text);padding:11px 12px;outline:none}input:focus,select:focus{border-color:var(--focus);box-shadow:0 0 0 4px var(--focus-ring)}.primary-button,.ghost-button,.danger-button{border:0;border-radius:999px;font-weight:800;text-align:center}.primary-button{margin-top:4px;padding:12px 18px;background:var(--accent);color:#fff}.primary-button:disabled,.ghost-button:disabled,.danger-button:disabled{cursor:not-allowed;opacity:.48}.ghost-button{padding:10px 14px;background:var(--control-bg);color:var(--text);white-space:nowrap}.danger-button{flex:1 1 160px;margin-top:4px;padding:12px 18px;background:var(--danger);color:#fff}.form-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.form-actions .primary-button{flex:1 1 180px}.modal-backdrop{position:fixed;z-index:30;inset:0;display:grid;place-items:center;background:#1720335c;padding:24px}.edit-modal,.confirm-modal{display:grid;width:min(560px,100%);max-height:min(720px,calc(100vh - 48px));gap:12px;overflow:auto;box-shadow:0 28px 70px #17203338}.confirm-modal{width:min(420px,100%)}.modal-header{align-items:flex-start}.modal-header .muted{margin-top:5px}.modal-actions{position:sticky;bottom:-18px;border-top:1px solid var(--row-border);background:var(--panel-bg);padding-top:12px}.delete-preview{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;border:1px solid var(--row-border);border-radius:14px;background:var(--row-bg);padding:12px}.delete-preview strong,.delete-preview small{display:block;overflow-wrap:anywhere}.delete-preview small{color:var(--soft-text)}.icon-button{display:inline-flex;flex:0 0 var(--icon-button-size);width:var(--icon-button-size);height:var(--icon-button-size);min-width:var(--icon-button-size);min-height:var(--icon-button-size);align-items:center;justify-content:center;border:0;border-radius:999px;background:var(--control-bg);color:var(--text);font-size:1.1rem;font-weight:900;line-height:1}.icon-button:hover,.ghost-button:hover,.small-action:hover{background:var(--control-hover)}.chevron-icon{position:relative;display:block;width:14px;height:14px;color:currentColor;transform:rotate(0);transform-origin:center;transition:transform .14s ease}.chevron-icon:before,.chevron-icon:after{position:absolute;top:6px;width:7px;height:2px;border-radius:999px;background:currentColor;content:""}.chevron-icon:before{left:1px;transform:rotate(45deg);transform-origin:right center}.chevron-icon:after{right:1px;transform:rotate(-45deg);transform-origin:left center}.chevron-icon.is-open{transform:rotate(180deg)}.refresh-icon,.loading-icon,.close-icon{position:relative;display:block;flex:0 0 auto;width:16px;height:16px;color:currentColor}.refresh-icon{border:2px solid currentColor;border-left-color:transparent;border-radius:999px;transform:rotate(32deg)}.refresh-icon:after{position:absolute;top:-3px;right:-2px;width:6px;height:6px;border-top:2px solid currentColor;border-right:2px solid currentColor;content:"";transform:rotate(22deg)}.loading-icon{border:2px solid color-mix(in srgb,currentColor 24%,transparent);border-top-color:currentColor;border-radius:999px;animation:icon-spin .8s linear infinite}.close-icon:before,.close-icon:after{position:absolute;top:7px;left:2px;width:12px;height:2px;border-radius:999px;background:currentColor;content:""}.close-icon:before{transform:rotate(45deg)}.close-icon:after{transform:rotate(-45deg)}@keyframes icon-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading-icon{animation:none}}.list{display:grid;gap:10px}.list-item{border:1px solid var(--row-border);border-radius:18px;background:var(--row-bg);overflow:hidden}.overview-surface{display:grid;gap:14px}.allocation-bar{display:flex;min-height:46px;overflow:hidden;border:1px solid var(--row-border);border-radius:16px;background:var(--control-bg)}.allocation-segment{display:flex;min-width:74px;align-items:center;justify-content:space-between;gap:8px;border:0;border-right:1px solid rgba(255,255,255,.5);background:color-mix(in srgb,var(--segment-color) 72%,var(--panel-bg));color:#fff;padding:8px 10px;font-size:.82rem;text-align:left;white-space:nowrap}.allocation-segment:last-child{border-right:0}.allocation-segment:hover,.allocation-segment.is-selected{filter:saturate(.86) brightness(.96)}.allocation-segment span,.allocation-segment strong{overflow:hidden;text-overflow:ellipsis}.allocation-segment strong{font-size:.86rem}.allocation-empty{display:grid;width:100%;place-items:center;color:var(--soft-text);font-size:.9rem;font-weight:800}.allocation-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px}.allocation-summary-card{display:grid;gap:8px;min-height:116px;border:1px solid var(--row-border);border-radius:14px;background:var(--row-bg);color:var(--text);padding:12px;text-align:left}.allocation-summary-card:hover{background:var(--row-hover)}.allocation-summary-card:focus-visible{border-color:var(--focus);box-shadow:0 0 0 4px var(--focus-ring)}.allocation-summary-card.is-selected{border-color:var(--focus);background:var(--accent-soft)}.allocation-summary-card.is-liability{border-left:4px solid var(--liability-border);background:linear-gradient(90deg,var(--liability-bg),var(--row-bg) 52%)}.summary-card-topline,.summary-card-bottomline{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;min-width:0}.summary-card-topline strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.summary-card-bottomline{align-items:flex-end}.summary-card-bottomline span{color:var(--soft-text);font-size:.78rem;font-weight:800}.summary-card-bottomline strong{font-size:1.02rem;min-width:0;flex:1 1 112px;text-align:right;overflow-wrap:anywhere}.allocation-summary-card small{color:var(--soft-text);font-size:.8rem;line-height:1.35}.allocation-dot{flex:0 0 auto;width:10px;height:10px;border-radius:999px}.concentration-panel{grid-column:1 / -1}.risk-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.risk-row{display:grid;gap:10px;border:1px solid var(--row-border);border-radius:14px;background:var(--row-bg);padding:12px}.risk-row.has-warning{border-color:var(--warning-border);background:linear-gradient(90deg,var(--warning-bg),var(--row-bg) 62%)}.risk-name,.risk-metrics{display:grid;gap:8px}.risk-name{grid-template-columns:minmax(0,1fr) auto;align-items:start}.risk-name strong,.risk-name small,.risk-metrics span,.risk-metrics strong{display:block}.risk-name small,.risk-metrics span{color:var(--soft-text);font-size:.78rem}.risk-metrics{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.risk-metrics div{min-width:0;text-align:right}.risk-metrics strong{color:var(--text);font-size:.96rem;overflow-wrap:anywhere}.risk-pill{border:1px solid var(--warning-border);border-radius:999px;background:var(--warning-bg);color:var(--warning-text);padding:4px 8px;font-size:.74rem;font-weight:900;white-space:nowrap}.overview-allocation{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;align-items:center}.pie-chart{position:relative;width:118px;aspect-ratio:1;border:1px solid var(--row-border);border-radius:50%;box-shadow:0 12px 28px var(--panel-shadow)}.pie-chart:after{position:absolute;inset:31%;content:"";border:1px solid var(--row-border);border-radius:50%;background:var(--panel-bg)}.pie-legend{display:grid;gap:8px}.pie-legend-row{position:relative;display:grid;width:100%;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:.86rem;outline:none;padding:3px 4px;text-align:left}.pie-legend-row:hover,.pie-legend-row:focus-visible,.pie-legend-row.is-selected{background:var(--accent-soft)}.pie-legend-row span{width:10px;height:10px;border-radius:50%}.pie-legend-row strong{min-width:0;color:var(--text)}.allocation-percent{color:var(--soft-text);font-weight:800}.allocation-amount{position:absolute;z-index:2;top:calc(100% + 5px);right:0;border:1px solid var(--row-border);border-radius:999px;background:var(--panel-bg);box-shadow:0 10px 24px var(--panel-shadow);color:var(--text);padding:5px 8px;font-size:.78rem;font-weight:800;opacity:0;pointer-events:none;transform:translateY(-2px);transition:opacity .14s ease,transform .14s ease;white-space:nowrap}.pie-legend-row:hover .allocation-amount,.pie-legend-row:focus .allocation-amount{opacity:1;transform:translateY(0)}.overview-allocation-secondary{align-items:start}.pie-chart-secondary{width:104px}.overview-list{display:grid;gap:8px}.overview-row{display:grid;width:100%;grid-template-columns:minmax(115px,1fr) minmax(135px,1fr) minmax(150px,1fr);gap:12px;align-items:center;border:1px solid var(--row-border);border-radius:16px;background:var(--row-bg);color:var(--text);padding:12px 14px;text-align:left}.overview-row:hover{background:var(--row-hover)}.overview-row.is-selected{border-color:var(--focus);background:var(--accent-soft)}.overview-row>div{min-width:0}.overview-row>div:last-child{text-align:right}.overview-row strong,.overview-row small,.overview-detail-row small{display:block}.overview-row strong,.overview-detail-row strong{overflow-wrap:anywhere}.overview-row small,.overview-detail-row small{color:var(--soft-text)}.overview-detail{display:grid;gap:10px;border-top:1px solid var(--row-border);padding-top:12px}.overview-detail-header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.overview-detail-header h3{margin:0 0 4px;font-size:1rem}.overview-detail-header>strong{text-align:right}.overview-detail-list{display:grid;gap:8px}.overview-detail-row{display:grid;grid-template-columns:92px minmax(0,1fr) minmax(126px,auto);gap:10px;align-items:center;border:1px solid var(--row-border);border-radius:14px;background:var(--row-bg);padding:10px}.overview-detail-row>strong{justify-self:end;text-align:right}.stock-summary{display:grid;width:100%;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:center;border:0;background:transparent;color:inherit;padding:14px;text-align:left}.stock-summary strong,.stock-summary small{display:block}.detail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:10px;border-top:1px solid var(--row-border);padding:10px 14px 14px}.detail-card{display:grid;gap:6px;align-content:start;min-height:132px;border:1px solid var(--row-border);border-radius:14px;background:var(--panel-bg);color:var(--muted);padding:10px;font-size:.86rem}.detail-card.is-liability{border-left:4px solid var(--liability-border);background:linear-gradient(90deg,var(--liability-bg),var(--panel-bg) 58%)}.detail-card-header{display:flex;justify-content:space-between;gap:8px;color:var(--soft-text);font-size:.76rem;font-weight:800}.detail-badge-list{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.detail-badge{border:1px solid var(--accent-border);border-radius:999px;background:var(--accent-soft);color:var(--accent);padding:3px 7px;font-size:.7rem;font-weight:900;line-height:1.2;white-space:nowrap}.detail-badge.is-concentration,.detail-badge.is-stale{border-color:var(--warning-border);background:var(--warning-bg);color:var(--warning-text)}.detail-card strong{color:var(--text);font-size:1rem;text-align:right;overflow-wrap:anywhere}.detail-card small{color:var(--soft-text);line-height:1.35;text-align:right}.detail-card .updated-text{color:var(--muted);font-size:.74rem;text-align:left}.detail-card p{margin:0;color:var(--muted);line-height:1.35;overflow-wrap:anywhere}.detail-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-start;margin-top:auto}.detail-actions .edit-button,.detail-actions .delete-button{display:inline-flex;min-height:34px;align-items:center;justify-content:center;border:1px solid var(--accent-border);border-radius:999px;background:var(--accent-soft);color:var(--accent);padding:6px 10px;font-size:.82rem;font-weight:700;line-height:1}.detail-actions .delete-button{border-color:#e1b8b8;background:#fff4f4;color:#9d2d2d}.table-like{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:10px;align-items:start}.type-filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.filter-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--chip-height);padding:0 12px;line-height:1;white-space:nowrap}.type-filter-button{border:1px solid var(--hero-border);border-radius:999px;background:var(--row-bg);color:var(--muted);font-size:.86rem;font-weight:800}.filter-chip small{display:inline-flex;min-width:18px;min-height:18px;align-items:center;justify-content:center;border-radius:999px;line-height:1}.type-filter-button small{color:var(--soft-text);font-size:.74rem}.type-filter-button:hover{background:var(--row-hover)}.type-filter-button:focus-visible{border-color:var(--focus)}.type-filter-button.is-active{border-color:var(--focus);background:var(--control-bg);color:var(--text)}.type-filter-button.is-active small{color:var(--muted)}.asset-group{border:1px solid var(--row-border);border-radius:16px;background:var(--row-bg);overflow:hidden}.asset-group.is-liability{border-left:4px solid var(--liability-border);background:linear-gradient(90deg,var(--liability-bg),var(--row-bg) 60%)}.asset-row{display:grid;grid-template-areas:"badge title toggle" "amount amount amount";grid-template-columns:auto minmax(0,1fr) auto;gap:7px 10px;align-items:center;border:1px solid var(--row-border);border-radius:16px;background:var(--row-bg);padding:12px}.asset-row>div{min-width:0}.asset-row .badge{grid-area:badge}.asset-row>div:first-of-type{grid-area:title}.asset-row>div:nth-of-type(2){grid-area:amount;text-align:right}.asset-row>div:first-of-type strong,.asset-row>div:first-of-type small,.asset-row>div:nth-of-type(2) strong,.asset-row>div:nth-of-type(2) small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-group-summary{width:100%;border:0;border-radius:0;color:inherit;text-align:left}.asset-group-summary:hover{background:var(--row-hover)}.asset-group-summary:focus-visible{background:var(--row-hover);box-shadow:inset 0 0 0 2px var(--focus)}.asset-row strong,.asset-row small{display:block}.asset-row .text-compact{font-size:.94rem;line-height:1.25}.asset-row .text-tight{font-size:.86rem;line-height:1.22}.expand-indicator{grid-area:toggle;display:inline-flex;flex:0 0 var(--icon-button-size);width:var(--icon-button-size);height:var(--icon-button-size);min-width:var(--icon-button-size);min-height:var(--icon-button-size);align-items:center;justify-content:center;border:1px solid var(--row-border);border-radius:999px;background:var(--control-bg);color:var(--muted);font-size:.9rem;font-weight:900;line-height:1}.badge{display:inline-flex;border-radius:999px;background:var(--control-bg);color:var(--muted);padding:5px 9px;font-size:.78rem;font-weight:800}.muted{margin:0}@media(max-width:860px){.app-shell{width:min(100% - 28px,520px);padding-top:0}.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;margin-bottom:20px;padding:26px 0 24px}.hero-subtitle{font-size:.92rem;line-height:1.45}.style-switch-button{align-self:start;justify-self:end;margin-top:2px}h1{margin-bottom:8px;font-size:2rem}.content-grid,.cockpit-grid,.asset-filter-toolbar,.form-row.compact,.exchange-row,.overview-allocation,.overview-row,.overview-detail-row,.stock-summary,.detail-list{grid-template-columns:1fr}.asset-detail-header{display:grid}.inline-control{justify-self:start}.asset-filter-toolbar{align-items:stretch}.asset-filter-toolbar .inline-control,.asset-filter-toolbar .inline-control select,.filter-reset-button{width:100%}.exchange-shell{justify-content:flex-start}.exchange-trigger-copy span{display:none}.exchange-popover{right:auto;left:0;width:100%;max-height:calc(100vh - 128px)}.exchange-actions{justify-content:flex-start}.panel{padding:14px;border-radius:18px}.exchange-trigger{min-height:48px;padding:4px 5px 4px 12px;border-radius:999px}.add-asset-panel,.data-tools-panel{padding:8px}.add-asset-toggle,.data-tools-toggle{min-height:0;border-radius:14px;padding:10px 10px 10px 12px}.add-asset-toggle>span:first-child,.data-tools-toggle>span:first-child{font-size:.96rem}.add-asset-toggle small,.data-tools-toggle small{font-size:.76rem;line-height:1.25}.expand-indicator{width:var(--icon-button-size);height:var(--icon-button-size);flex-basis:var(--icon-button-size);font-size:.86rem}.overview-surface{gap:10px}.allocation-bar{min-height:40px;border-radius:14px}.allocation-segment{min-width:66px;padding:7px 9px;font-size:.78rem}.allocation-summary-grid{gap:8px}.allocation-summary-card{min-height:92px;gap:6px;padding:10px}.summary-card-topline,.summary-card-bottomline{gap:7px}.summary-card-bottomline strong{flex-basis:92px;font-size:.94rem}.allocation-summary-card small{font-size:.76rem;line-height:1.28}.risk-list{gap:8px}.risk-row{gap:8px;border-radius:14px;padding:10px}.risk-name{grid-template-columns:minmax(0,1fr) auto;gap:8px}.risk-name strong{font-size:.98rem}.risk-name small,.risk-metrics span{font-size:.72rem;line-height:1.25}.risk-pill{align-self:start;padding:3px 7px;font-size:.7rem}.risk-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.risk-metrics div{border:1px solid var(--row-border);border-radius:10px;background:color-mix(in srgb,var(--row-bg) 70%,var(--panel-bg));padding:7px 6px;text-align:right}.risk-metrics strong{font-size:.82rem;line-height:1.2}.overview-row>div:last-child,.overview-detail-header>strong,.overview-detail-row>strong{justify-self:start;text-align:left}.modal-backdrop{align-items:end;padding:14px}.edit-modal{max-height:calc(100vh - 28px)}.detail-actions{justify-content:flex-start}.type-filter{flex-wrap:nowrap;max-width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:2px;scrollbar-width:none}.type-filter::-webkit-scrollbar{display:none}.type-filter-button{flex:0 0 auto}.ghost-button{width:fit-content}.csv-preview-summary{display:grid}.csv-preview-summary>span{width:fit-content}}@media(max-width:430px){.app-shell{width:min(100% - 22px,430px)}.hero{padding:22px 0 20px}h1{font-size:1.82rem}.panel{padding:12px}.exchange-trigger{padding:4px 5px 4px 12px}.cockpit-grid,.content-grid{gap:12px}.net-worth-card>strong{font-size:clamp(1.72rem,8vw,2.1rem)}.risk-metrics strong{font-size:.78rem}.allocation-summary-card{min-height:84px}}
