:root{color:#171a1f;background:#f5f7fa;--accent: #1769aa;--accent-strong: #0f5c98;--positive: #15815f;--warning: #d75f35;--surface: #ffffff;--surface-muted: #f0f3f7;--line: #dde3ea;--text-muted: #647181;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f5f7fa}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{width:min(100%,760px);min-height:100vh;margin:0 auto;padding:14px 14px 96px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;padding:6px 2px}.topbar h1,.screen-title h2,.section-block h2,.review-head h2{margin:0;line-height:1.2;letter-spacing:0}.topbar h1{font-size:25px;font-weight:900}.topbar.dashboard-hidden{display:none}.eyebrow{margin:0 0 4px;color:var(--text-muted);font-size:12px;font-weight:800}.status-pill,.chip{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--accent);font-size:13px;font-weight:800;white-space:nowrap}.screen{display:grid;gap:14px}.portfolio-hero,.empty-start,.import-panel{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.portfolio-hero{grid-template-columns:minmax(0,1fr) auto;align-items:end;min-height:154px}.portfolio-hero strong{display:block;margin-bottom:8px;font-size:34px;line-height:1.08;letter-spacing:0}.profit{margin:0;font-size:15px;font-weight:900}.hero-subtext{margin:8px 0 0;color:var(--text-muted);font-size:13px;font-weight:800}.positive{color:var(--positive)}.negative{color:#c2412d}.hero-action{min-height:42px;padding:8px 12px;border:0;border-radius:8px;background:#eaf3fb;color:var(--accent);font-size:13px;font-weight:900}.hero-panel{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;min-height:136px;padding:18px;border-radius:8px;border:1px solid #cfd9e5;background:#fff;color:#171a1f}.hero-panel strong{display:block;font-size:33px;line-height:1.1;letter-spacing:0}.hero-panel .eyebrow{color:var(--text-muted)}.hero-panel span{flex:0 0 auto;padding:8px 10px;border-radius:8px;background:#e7f3ee;color:var(--positive);font-size:13px;font-weight:800}.quick-actions,.review-panel{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.metric-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-grid article,.metric{min-height:72px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.metric-grid span,.metric span{display:block;margin-bottom:6px;color:var(--text-muted);font-size:12px;font-weight:800}.metric-grid strong,.metric strong{display:block;font-size:20px}.quick-actions strong,.item-card strong{display:block;margin-bottom:5px}.quick-actions p,.item-card p,.screen-title p,.empty,.notice{margin:0;color:var(--text-muted);line-height:1.5}.section-block{display:grid;gap:10px}.section-head{display:grid;gap:4px}.section-head p{margin:0;color:var(--text-muted);line-height:1.45}.section-block h2,.section-head h2,.screen-title h2{font-size:20px;font-weight:900}.summary-row,.bar-row{display:grid;gap:12px;min-height:82px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.summary-row.compact{min-height:74px}.summary-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.summary-main strong,.bar-row strong,.empty-start strong,.import-copy h2{display:block;margin:0 0 5px}.summary-main p,.bar-row span,.empty-start p,.import-copy p{margin:0;color:var(--text-muted);line-height:1.45}.amount-block{display:grid;gap:4px;min-width:112px;text-align:right}.amount-block b{white-space:nowrap}.amount-block span{font-size:12px;font-weight:900}.progress-track{height:7px;overflow:hidden;border-radius:999px;background:#edf1f5}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.bar-list{display:grid;gap:10px}.bar-row div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.import-copy{display:grid;grid-template-columns:minmax(0,1fr) 132px;align-items:end;gap:14px}.list{display:grid;gap:10px}.price-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.price-panel strong{display:block;margin-bottom:5px}.price-panel span{color:var(--text-muted);font-size:12px;font-weight:800}.price-chips{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.price-chip{display:inline-flex;align-items:center;min-height:30px;padding:6px 9px;border-radius:8px;background:#f2f4f7;color:#44515f;font-size:12px;font-weight:900}.price-chip.fresh{background:#e7f3ee;color:var(--positive)}.holding-list{display:grid;gap:8px}.holding-row{display:grid;gap:12px;min-height:82px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.holding-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.holding-main strong{display:block;margin-bottom:5px}.holding-main p{margin:0;color:var(--text-muted);line-height:1.45}.item-card{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:76px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.item-card b{white-space:nowrap}.asset-screen{gap:16px;background:#fff}.asset-hero{display:grid;gap:28px;padding:4px 2px 2px}.asset-titlebar,.asset-actions,.section-toolbar,.investment-row,.account-total,.donut-card{display:flex;align-items:center}.asset-titlebar,.section-toolbar,.account-total{justify-content:space-between;gap:12px}.plain-icon{min-height:36px;border:0;border-radius:8px;background:transparent;color:#202832;font-weight:900}.asset-titlebar .plain-icon:first-child{padding:0;font-size:20px}.asset-actions{gap:6px}.sync-pill{min-height:32px;padding:6px 10px;border:0;border-radius:8px;background:#e8f7ee;color:#14935b;font-size:12px;font-weight:900}.asset-total{display:block;font-size:34px;line-height:1.06;letter-spacing:0}.asset-profit{margin:8px 0 0;font-size:14px;font-weight:900}.analysis-shortcuts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:2px 0 8px}.analysis-shortcuts button{display:grid;gap:5px;justify-items:center;min-height:56px;border:0;border-radius:8px;background:transparent;color:#7b8794;font-size:12px;font-weight:900}.analysis-shortcuts button span{display:grid;place-items:center;width:26px;height:24px;color:#8c97a4;font-size:18px}.analysis-shortcuts button.active{color:#171a1f}.goal-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.goal-panel span,.analysis-card span,.trend-card span,.donut-card span,.tax-card span{display:block;margin-bottom:5px;color:var(--text-muted);font-size:12px;font-weight:900}.goal-panel strong,.analysis-card strong,.trend-card strong,.donut-card strong,.tax-card strong{display:block;font-size:20px}.goal-panel p,.analysis-card p,.trend-card p,.donut-card p,.tax-card p{margin:5px 0 0;color:var(--text-muted);font-size:12px;line-height:1.45}.goal-panel .progress-track{grid-column:1 / -1}.compact-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.asset-section,.account-panel{display:grid;gap:12px;padding-top:12px}.section-toolbar{align-items:flex-end;flex-wrap:wrap}.section-toolbar h2{width:100%;margin:0;font-size:21px;font-weight:900}.pill-tabs,.sort-tabs{display:inline-flex;gap:4px;padding:3px;border-radius:8px;background:#f2f4f7}.sort-tabs{margin-left:auto;background:transparent}.pill-tabs button,.sort-tabs button{min-height:32px;padding:6px 10px;border:0;border-radius:8px;background:transparent;color:#6a7480;font-size:12px;font-weight:900}.pill-tabs button.active,.sort-tabs button{background:#fff;color:#171a1f;box-shadow:0 1px 5px #20283214}.asset-list,.account-list,.target-list,.analysis-panel{display:grid;gap:10px}.investment-row{min-height:64px;gap:10px}.asset-badge{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:#f1c40f;color:#171a1f;font-size:12px;font-weight:900}.asset-badge.green{background:#16a36a;color:#fff}.asset-badge.blue{background:#2265c9;color:#fff}.asset-badge.pink{background:#e2368c;color:#fff}.asset-badge.gray{background:#e6ebf0;color:#7a8490}.investment-main{min-width:0;flex:1 1 auto}.investment-main strong{display:block;overflow:hidden;margin-bottom:4px;font-size:14px;line-height:1.28;text-overflow:ellipsis}.investment-main span,.target-row span{color:var(--text-muted);font-size:12px;font-weight:800}.investment-value{display:grid;gap:4px;min-width:102px;text-align:right}.investment-value strong{white-space:nowrap;font-size:14px}.investment-value span{white-space:nowrap;font-size:12px;font-weight:900}.sparkline{flex:0 0 52px;width:52px;height:32px}.positive-line{color:#dc3a6d}.negative-line{color:#2585c7}.analysis-grid,.tax-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.analysis-card,.trend-card,.donut-card,.tax-card{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.tax-card{min-height:98px}.trend-card{display:grid;gap:12px}.trend-chart{display:flex;align-items:flex-end;gap:8px;height:112px;padding:10px;border-radius:8px;background:linear-gradient(180deg,#fff,#f4f7fa)}.trend-chart span{flex:1 1 auto;margin:0;border-radius:8px 8px 0 0;background:#dc3a6d}.donut-card{gap:14px}.donut{flex:0 0 116px;width:116px;height:116px;border-radius:50%;background:conic-gradient(#184fd6 0 24%,#55a4e8 24% 39%,#b9ddf6 39% 53%,#ea2d8c 53% 67%,#2e9f9b 67% 78%,#f1c40f 78% 91%,#dfe6ed 91% 100%);-webkit-mask:radial-gradient(circle at center,transparent 0 42%,#000 43%);mask:radial-gradient(circle at center,transparent 0 42%,#000 43%)}.target-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px 0;border-bottom:1px solid var(--line)}.target-row:last-child{border-bottom:0}.target-row strong{display:block;margin-bottom:4px}.target-row b{white-space:nowrap;font-size:12px}.target-row .progress-track{grid-column:1 / -1}.account-total{min-height:70px;padding:14px;border-radius:8px;background:#f5f7fa}.account-total span{color:var(--text-muted);font-size:12px;font-weight:900}.account-total strong{font-size:22px}.tax-badge{display:inline-flex;align-items:center;min-height:28px;padding:5px 8px;border-radius:8px;background:#e8f7ee;color:#14935b;font-size:12px;font-weight:900;white-space:nowrap}.tax-badge.plain{background:#eef2f6;color:#62707f}.form-stack{display:grid;gap:12px}label{display:grid;gap:7px;color:#303943;font-size:14px;font-weight:800}input,select,textarea{width:100%;min-height:48px;border:1px solid #ccd5df;border-radius:8px;background:var(--surface);color:#171a1f;padding:11px 12px;outline:none}textarea{resize:vertical;line-height:1.5}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1769aa24}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.segmented button,.bottom-tabs button,.secondary-button,.small-button{min-height:44px;border:1px solid #ccd5df;border-radius:8px;background:var(--surface);color:#202832;font-weight:800}.segmented button.active{border-color:var(--accent);background:#eaf3fb;color:var(--accent)}.primary-button,.secondary-button{width:100%;min-height:52px;padding:12px 14px}.primary-button{border:0;border-radius:8px;background:var(--accent);color:#fff;font-weight:900}.secondary-button{background:#fff}.secondary-button.danger{color:#b23b2c}.small-button{flex:0 0 auto;padding:8px 12px}.review-panel{display:grid;gap:14px}.review-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.review-head span{display:inline-flex;align-items:center;justify-content:center;min-width:52px;min-height:36px;border-radius:8px;background:#eaf3fb;color:var(--accent);font-weight:900}.details{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.details div{padding:12px;border-radius:8px;background:var(--surface-muted)}.details dt{color:var(--text-muted);font-size:12px;font-weight:800}.details dd{margin:4px 0 0;font-weight:900}.notice{padding:12px;border-radius:8px;background:#fff0eb;color:var(--warning);font-weight:700}.notice.neutral{background:#eef5fb;color:var(--accent)}.settings-actions{display:grid;gap:10px}.hidden-file-input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.bottom-tabs{position:fixed;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:min(100%,760px);margin:0 auto;padding:10px 12px 14px;border-top:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-tabs button{min-height:48px;font-size:13px}.bottom-tabs button.active{border-color:var(--accent);background:var(--accent);color:#fff}@media(min-width:720px){.app-shell{padding-top:22px}.topbar h1{font-size:30px}.screen{gap:22px}}@media(max-width:420px){.app-shell{padding-right:12px;padding-left:12px}.hero-panel{align-items:flex-start;flex-direction:column}.hero-panel strong{font-size:28px}.portfolio-hero,.import-copy{grid-template-columns:1fr}.portfolio-hero{align-items:start}.portfolio-hero strong{font-size:30px}.amount-block{min-width:0;text-align:left}.summary-main,.bar-row div,.holding-main{align-items:flex-start;flex-direction:column}.price-panel{grid-template-columns:1fr}.price-chips{justify-content:flex-start}.metric-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid,.details,.action-row{grid-template-columns:1fr}}
