:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#eceef2;--text:#15181d;--muted:#5f6672;--line:#dde0e6;--grid:#eceef2;--accent:#1f6feb;--accent-text:#fff;--series:#2a78d6;--up:#1a7f37;--down:#c62828;--warn:#7a5200;--warn-bg:#fff4d6;--bad:#c62828;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e1013;--surface:#171a1f;--surface-2:#20242b;--text:#e8eaed;--muted:#9aa3ae;--line:#2b3038;--grid:#252a31;--accent:#4c9aff;--accent-text:#0b1220;--series:#3987e5;--up:#56d364;--down:#ff7b72;--warn:#e3b341;--warn-bg:#33290d;--bad:#ff7b72;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select{font:inherit;color:inherit}h2{margin:0;font-size:1rem}.tabs{z-index:5;padding:max(8px, env(safe-area-inset-top)) 16px 8px;background:var(--bg);border-bottom:1px solid var(--line);align-items:center;gap:4px;display:flex;position:sticky;top:0}.tabs .brand{margin-right:12px;font-weight:700}.tabs a{color:var(--muted);border-radius:8px;padding:6px 10px;text-decoration:none}.tabs a[aria-current=page]{color:var(--text);background:var(--surface-2);font-weight:600}main{max-width:960px;padding:16px 16px max(32px, env(safe-area-inset-bottom));margin:0 auto}.stack{flex-direction:column;gap:12px;display:flex}.reloading{opacity:.6;transition:opacity .2s}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grid-2{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=760px){.grid-2{grid-template-columns:1fr 1fr}}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:0;padding:16px}.card>h2{margin-bottom:12px}.card>.chart-note{margin:-8px 0 12px}.card-head,.group-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.card-head{margin-bottom:8px}.group-head{color:var(--muted);padding:4px 2px 0}.group-head h2{color:var(--text)}.label{color:var(--muted);font-size:.85rem}.muted{color:var(--muted)}.small{font-size:.8rem}.error{color:var(--bad)}.up{color:var(--up)}.down{color:var(--down)}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.hero{padding:8px 2px}.hero-value{letter-spacing:-.02em;font-size:3rem;font-weight:600;line-height:1.1}.hero-value .unit{color:var(--muted);font-size:1.25rem;font-weight:400}.delta{margin-top:4px;font-size:.95rem}.delta.up:before{content:"▲ "}.delta.down:before{content:"▼ "}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:16px;display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px}.tile-value{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:600}.notice{border-radius:12px;padding:12px 16px;font-size:.9rem}.notice.warn{background:var(--warn-bg);color:var(--warn)}.btn{background:var(--accent);color:var(--accent-text);cursor:pointer;border:1px solid #0000;border-radius:10px;align-self:flex-start;padding:10px 16px;font-weight:600}.btn.small{padding:6px 12px;font-size:.9rem}.btn.ghost{color:var(--text);border-color:var(--line);background:0 0}.btn.danger{color:var(--bad);border-color:var(--line);background:0 0}.btn:disabled{opacity:.5;cursor:default}.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:4px}.segmented{background:var(--surface-2);border-radius:8px;align-self:flex-start;padding:2px;display:inline-flex}.segmented button{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:6px;padding:4px 10px;font-size:.85rem}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:600}.chart{width:100%;position:relative;overflow:hidden}.chart svg{outline:none;display:block}.chart svg:focus-visible{outline:2px solid var(--accent);border-radius:4px}.chart .grid{stroke:var(--grid);stroke-width:1px}.chart .axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.series-line{fill:none;stroke:var(--series);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.series-area{fill:var(--series);opacity:.1}.series-dot{fill:var(--series);stroke:var(--surface);stroke-width:2px}.crosshair{stroke:var(--muted);stroke-width:1px}.tooltip{pointer-events:none;background:var(--surface);border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:8px;flex-direction:column;align-items:center;padding:6px 10px;font-size:.8rem;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 2px 8px #0000001f}.tooltip strong{color:var(--text);font-size:.95rem}.chart-empty{color:var(--muted);text-align:center;padding:32px 0}.table-view summary{cursor:pointer;color:var(--muted);margin-top:8px;font-size:.85rem}.table-view table{margin-top:8px}.bars{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.bars li{grid-template-columns:minmax(90px,30%) 1fr auto;align-items:center;gap:8px;font-size:.9rem;display:grid}.bar-track{height:12px}.bar-fill{background:var(--series);border-radius:0 4px 4px 0;min-width:2px;height:100%;display:block}.bars li:hover .bar-fill,.bars li:focus .bar-fill{filter:brightness(1.15)}.bar-value{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table{border-collapse:collapse;width:100%;font-size:.9rem}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 4px;font-size:.8rem;font-weight:500}td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 4px}tr:last-child td{border-bottom:none}tr.inactive td{opacity:.5}.holdings td:first-child{word-break:break-word}.account{padding:0}.account>.stack{padding:0 16px 16px}.account-head{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:14px 16px;display:flex}.form{flex-direction:column;gap:10px;display:flex}.form label{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.form label.check{color:var(--text);flex-direction:row;align-items:center;gap:8px}.form input:not([type=checkbox]),.form select{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 10px;font-size:16px}.refresh-row{flex-direction:column;gap:6px;display:flex}
