:root{--void:#16110a;--ink:#1e1810;--ink-raised:#262016;--ink-inset:#120e08;--text:#e8dcc4;--text-heading:#f5ecd8;--text-muted:#a89270;--text-faint:#7c6e54;--foil:#c9a24b;--foil-bright:#e8c66a;--foil-line:#c9a24b38;--foil-line-strong:#c9a24b66;--cash:#8fb079;--debit:#d9695a;--seal-great:#7fa760;--seal-good:#4fa6a8;--seal-acceptable:#c9a24b;--seal-retail:#c77b3a;--seal-avoid:#d9534a;--glass-bg:var(--ink);--glass-bg-strong:var(--ink-raised);--glass-border:var(--foil-line);--glass-border-bright:var(--foil-line-strong);--glass-highlight:#f5ecd80a;--glass-inset:var(--ink-inset);--glass-blur:0px;--sidebar-w:212px;--topbar-h:60px;--radius-sm:7px;--radius:11px;--radius-lg:14px;--radius-xl:14px;--gap:16px;--gap-lg:24px;--shadow-sm:0 1px 4px #00000080;--shadow-md:0 10px 34px #0000008c;--shadow-glow:none;--text-bump:2pt;--sans:"Newsreader", Georgia, serif;--heading:"Fraunces", Georgia, serif;--mono:"Spline Sans Mono", ui-monospace, monospace;--ease-page:cubic-bezier(.2, 0, 0, 1);--ease-stamp:cubic-bezier(.34, 1.4, .5, 1);--ease-out:cubic-bezier(.2, 0, 0, 1);--dur:.22s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:calc(15px + var(--text-bump))/1.55 var(--sans);color:var(--text);background:var(--void);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}html,body{min-height:100%;margin:0;overflow-x:clip}body{background:var(--void)}h1,h2,h3{font-family:var(--heading);color:var(--text-heading);letter-spacing:0;margin:0;font-weight:600}h1{font-size:calc(21px + var(--text-bump));text-wrap:balance;font-weight:600}h2{font-size:calc(15px + var(--text-bump));letter-spacing:.04em;border-bottom:1px solid var(--foil-line);text-wrap:balance;margin-bottom:14px;padding-bottom:8px;font-weight:600}h3{font-size:calc(14px + var(--text-bump));font-weight:600}.view-panel{counter-reset:section}.view-panel h2:before{counter-increment:section;content:counter(section, decimal-leading-zero) " · ";font-family:var(--mono);letter-spacing:0;color:var(--foil);font-size:.78em;font-weight:500}p{margin:0}a{color:var(--foil-bright)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}input,select,textarea{background:var(--glass-inset);border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--text-heading);transition:border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);outline:none;padding:9px 12px}input:focus,select:focus,textarea:focus{border-color:var(--foil-line-strong);box-shadow:0 0 0 2px var(--foil-line)}input::placeholder{color:var(--text-faint)}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23A89270' d='M3 4.5L6 8l3-3.5'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}textarea{resize:vertical;min-height:72px}:focus-visible{outline:2px solid var(--foil);outline-offset:2px;border-radius:inherit}.item-row:focus-visible,.pick-row:focus-visible{box-shadow:0 0 0 2px var(--foil);outline:none}.tabnums{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.muted{color:var(--text-muted);font-size:.92em}.empty{text-align:center;padding:32px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ambient{z-index:0;pointer-events:none;background:repeating-linear-gradient(to right, #c9a24b05 0 1px, transparent 1px 28px), repeating-linear-gradient(to bottom, #c9a24b05 0 1px, transparent 1px 28px), linear-gradient(168deg, var(--void) 0%, var(--ink) 60%, var(--void) 100%);background-size:28px 28px,28px 28px,100% 100%;position:fixed;inset:0;overflow:hidden}.ambient:before,.ambient:after{content:none}#app{z-index:1;min-height:100svh;position:relative}.shell{min-height:100svh;display:flex}@keyframes shell-in{0%{opacity:0;transform:translateY(12px)}}.glass{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--shadow-sm), inset 0 1px 0 var(--glass-highlight)}.glass-inset{background:var(--glass-inset);border:1px solid var(--foil-line);border-radius:var(--radius-sm);box-shadow:inset 0 1px 3px #0006}.sidebar{z-index:100;width:var(--sidebar-w);border:none;border-right:1px solid var(--foil-line);height:auto;box-shadow:none;border-radius:0;flex-direction:column;padding:20px 14px;display:flex;position:fixed;top:0;left:0}@keyframes slide-right{0%{opacity:0;transform:translate(-20px)}}.brand{border-bottom:1px solid var(--foil-line);align-items:center;gap:12px;margin-bottom:14px;padding:8px 10px 16px;display:flex}.brand-icon{font-size:1.5rem}.brand-title{font-family:var(--heading);color:var(--text-heading);letter-spacing:0;font-size:1.08rem;font-style:italic;font-weight:600;line-height:1.15}.brand-sub{color:var(--text-muted);letter-spacing:.08em;margin-top:3px;font-size:.68rem}.nav{flex-direction:column;gap:3px;padding:4px 0;display:flex}.nav-btn{border-radius:var(--radius-sm);width:100%;color:var(--text-muted);font-family:var(--sans);text-align:left;transition:background var(--dur) var(--ease-out), color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);border:1px solid #0000;align-items:center;gap:10px;padding:9px 11px;font-size:.92rem;font-weight:500;display:flex}.nav-btn span:first-child{text-align:center;flex-shrink:0;width:22px;font-size:1rem}.nav-btn{position:relative}.nav-btn:hover{color:var(--text);background:#f5ecd80a}.nav-btn.active{background:var(--ink-raised);color:var(--text-heading);border:1px solid var(--foil-line-strong);box-shadow:none}.nav-btn.active:after{content:"";background:var(--foil);transform-origin:0;height:1px;animation:nav-underline .32s var(--ease-out);position:absolute;bottom:5px;left:11px;right:11px}@keyframes nav-underline{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.sidebar-foot{border-top:1px solid var(--foil-line);box-shadow:none;background:0 0;border-bottom:none;border-left:none;border-right:none;border-radius:0;flex-direction:column;gap:6px;margin-top:10px;padding:12px 11px 4px;display:flex}.stat-mini{font-family:var(--sans);letter-spacing:.04em;color:var(--text-muted);align-items:baseline;font-size:.78rem;display:flex}.stat-mini:before{content:"";border-bottom:1px dotted var(--foil-line-strong);flex:1;order:1;margin:0 6px;transform:translateY(-2px)}.stat-mini span{font-family:var(--mono);color:var(--foil);font-variant-numeric:tabular-nums;order:2;font-size:.92rem;font-weight:500}.main{margin-left:var(--sidebar-w);flex-direction:column;flex:1;min-height:100svh;display:flex}@keyframes fade-up{0%{opacity:0}}.topbar{z-index:50;justify-content:space-between;align-items:center;gap:var(--gap);padding:14px var(--gap-lg);min-height:var(--topbar-h);border-top:none;border-left:none;border-right:none;border-radius:0;display:flex;position:sticky;top:0}.topbar-lead{flex-direction:column;gap:6px;min-width:0;display:flex}.topbar-lead h1{margin:0}.wallet-bar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.wallet-pill{border:1px solid var(--foil-line);background:var(--glass-inset,#ffffff0a);color:var(--text-body);border-radius:999px;align-items:baseline;gap:5px;padding:4px 9px;font-size:.78rem;line-height:1.2;display:inline-flex}.wallet-cur{font-family:var(--font-mono,"Spline Sans Mono", monospace);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);font-size:.68rem}.wallet-amt{color:var(--text-heading);font-weight:600}.wallet-rs .wallet-amt{color:var(--accent-gold,#c9a24b)}.wallet-yuan .wallet-amt{color:#4fa6a8}.wallet-os .wallet-amt{color:#a78bfa}.wallet-edit{min-width:36px;min-height:36px;padding:0 8px}.wallet-form-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.topbar-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.search-input{border:none;border-bottom:1px solid var(--foil-line);width:200px;box-shadow:none;color:var(--text-heading);transition:border-color var(--dur) var(--ease-out);background:0 0;border-radius:0;padding:7px 6px;font-size:.9rem}.search-input::placeholder{color:var(--text-faint);font-style:italic}.search-input:focus{border-color:var(--foil);box-shadow:none}.view-panel{padding:var(--gap-lg);gap:var(--gap-lg);will-change:transform;flex-direction:column;flex:1;display:flex}.view-panel.view-enter{animation:view-fade .3s var(--ease-page)}@keyframes view-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.grid-dash{gap:var(--gap);grid-template-columns:repeat(3,1fr);display:grid}.grid-2{gap:var(--gap-lg);grid-template-columns:repeat(2,1fr);align-items:start;display:grid}.card{border-radius:var(--radius-lg);padding:20px}.shell.booting .card:first-child{animation-delay:80ms}.shell.booting .card:nth-child(2){animation-delay:.14s}.shell.booting .card:nth-child(3){animation-delay:.2s}.shell.booting .card:nth-child(4){animation-delay:.26s}.shell.booting .grid-2 .card:first-child{animation-delay:.12s}.shell.booting .grid-2 .card:nth-child(2){animation-delay:.18s}@keyframes card-in{0%{opacity:0;transform:translateY(10px)}}.shell.booting{animation:shell-in .6s var(--ease-out) both}.shell.booting .sidebar{animation:slide-right .5s var(--ease-out) 50ms both}.shell.booting .main{animation:fade-up .55s var(--ease-out) .1s both}.shell.booting .card{animation:card-in .5s var(--ease-out) both}.row-arrow{pointer-events:none;background:0 0;border-color:#0000}.stat-card{flex-direction:column;gap:6px;padding:18px 20px;display:flex}.stat-card.accent{background:linear-gradient(145deg, #c9a24b12, transparent 60%), var(--ink-raised);border-color:var(--foil-line-strong)}.stat-label{font-size:calc(12px + var(--text-bump));font-family:var(--sans);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;order:-1}.stat-value{font-family:var(--heading);font-size:calc(28px + var(--text-bump));color:var(--text-heading);border-bottom:1px solid var(--foil-line);padding-bottom:7px;font-weight:600;line-height:1.05}.stat-value.sm{font-size:calc(20px + var(--text-bump))}.stat-hint{font-size:calc(12px + var(--text-bump));color:var(--text-muted);margin-top:2px}.btn{border-radius:var(--radius-sm);font-family:var(--sans);letter-spacing:.01em;white-space:nowrap;transition:background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out), box-shadow .1s var(--ease-out), transform .1s var(--ease-out);justify-content:center;align-items:center;gap:6px;padding:8px 15px;font-size:.9rem;font-weight:600;display:inline-flex}.btn:active{transform:translateY(1px)scale(.97)}.btn.primary:active{transform:translateY(0)scale(.97);box-shadow:inset 0 1px 3px #00000059}.btn.primary{color:var(--foil-bright);border:1px solid var(--foil-line-strong);box-shadow:none;background:#c9a24b24}.btn.primary:hover{border-color:var(--foil);background:#c9a24b38;transform:translateY(-1px)}.btn.ghost{border:1px solid var(--foil-line);color:var(--text);background:0 0}.btn.ghost:hover{border-color:var(--foil-line-strong);color:var(--text-heading);background:#f5ecd80a}.btn.danger{background:color-mix(in srgb, var(--debit) 12%, transparent);border:1px solid color-mix(in srgb, var(--debit) 38%, transparent);color:var(--debit)}.btn.danger:hover{background:color-mix(in srgb, var(--debit) 20%, transparent);border-color:var(--debit)}.btn.icon{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-muted);background:0 0;border:1px solid #0000;padding:0;font-size:1.1rem}.btn.icon:hover{border-color:var(--foil-line);color:var(--foil);background:#f5ecd80a}.btn.sm{padding:5px 10px;font-size:.8rem}.file-btn{cursor:pointer}.btn-row{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.link{color:var(--text-heading);cursor:pointer;text-align:left;transition:color var(--dur) var(--ease-out);background:0 0;border:none;padding:0;font-weight:500}.link:hover{color:var(--foil-bright)}.pill{--pill-hue:var(--pill-color,var(--text-muted));font-family:var(--sans);letter-spacing:.03em;background:color-mix(in srgb, var(--pill-hue) 15%, transparent);border:1px solid color-mix(in srgb, var(--pill-hue) 34%, transparent);color:color-mix(in srgb, var(--pill-hue) 72%, var(--text));border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:.72rem;font-weight:600;display:inline-flex}@supports (color:color-mix(in oklab, #000, #000)){.pill{--pill-hue:color-mix(in oklab, var(--pill-color,var(--text-muted)) 62%, var(--text))}}.pill.stock{--pill-color:var(--foil)}.tier{font-family:var(--mono);color:var(--foil);border:1px solid var(--foil-line);vertical-align:middle;background:#c9a24b24;border-radius:4px;padding:1px 6px;font-size:.72rem;font-weight:500}.item-list{flex-direction:column;gap:8px;display:flex}.item-list.compact{gap:6px}.item-row{border-radius:var(--radius);cursor:pointer;transition:background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);align-items:center;gap:12px;padding:12px 14px;display:flex}.item-row:hover{background:var(--ink-raised);border-color:var(--foil-line-strong);box-shadow:var(--shadow-sm)}.item-row.compact{padding:10px 12px}.item-emoji{text-align:center;flex-shrink:0;width:34px;font-size:1.4rem}.item-info{flex:1;min-width:0}.item-name{font-family:var(--sans);color:var(--text-heading);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.item-meta{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.item-price{font-family:var(--mono);color:var(--text-muted);text-align:right;flex-shrink:0;font-size:.86rem}.item-price strong{color:var(--foil-bright);font-weight:500}.toolbar{border-radius:var(--radius);align-items:center;gap:12px;padding:12px 16px;display:flex}.toolbar select{flex:1;max-width:280px}.cat-toolbar{justify-content:space-between;gap:12px 16px}.cat-btns{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.cat-btn{border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--sans);white-space:nowrap;transition:background var(--dur) var(--ease-out), color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);border:1px solid #0000;align-items:center;gap:5px;padding:6px 10px;font-size:.82rem;font-weight:500;display:inline-flex}.cat-btn:hover{color:var(--text);background:#f5ecd80a}.cat-btn.active{background:var(--ink-raised);color:var(--text-heading);border-color:var(--foil-line-strong)}.cat-select{flex:none;min-width:168px;max-width:200px;margin-left:auto}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-svg text{font-family:var(--mono);font-variant-numeric:tabular-nums;fill:var(--text)}.chart-svg .lbl{font-family:var(--sans);fill:var(--text-muted)}.chart-svg .axis{stroke:var(--foil-line);stroke-width:1px}.chart-svg .axis-strong{stroke:var(--foil-line-strong)}.cat-chart{grid-template-columns:minmax(120px,auto) 1fr;align-items:center;gap:16px;display:grid}.cat-legend{color:var(--text);flex-direction:column;gap:6px;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.cat-legend b{text-align:right;min-width:2ch;color:var(--foil-bright);margin-right:6px;font-weight:500;display:inline-block}.lolli-stem{stroke-width:2px;opacity:.85}.lolli-bead{stroke:var(--foil-line-strong)}.lolli-num{fill:var(--foil-bright);font-size:calc(12px + var(--text-bump))}.shell.booting .cat-lollipop .lolli-row{animation:lolli-grow .5s var(--ease-out) both}@keyframes lolli-grow{0%{opacity:0;transform:translate(-6px)}}@media (width<=860px){.cat-chart{grid-template-columns:1fr}}.ledger-card{margin-top:var(--gap-lg)}.ledger-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;display:flex}.ledger-head h2{margin:0}.ledger-lede{margin:8px 0 16px;line-height:1.5}.ledger-table th.num,.ledger-table td.num{text-align:right}.ledger-item-name{align-items:center;gap:8px;display:inline-flex}.ledger-item-name.removed{color:var(--text-faint);font-style:italic}.pill.sell{--pill-color:var(--cash)}.pill.buy{--pill-color:var(--debit)}.ledger-total{font-weight:600}.ledger-total.gain{color:var(--cash)}.ledger-total.loss{color:var(--debit)}.ledger-actions-col{width:1%}.ledger-actions{white-space:nowrap;text-align:right}.icon-btn{appearance:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--dur) var(--ease-out), color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);background:0 0;border:1px solid #0000;padding:4px 7px;font-size:.9rem;line-height:1}.icon-btn:hover{background:color-mix(in srgb, var(--foil-bright) 8%, var(--ink-raised));color:var(--text-heading);border-color:var(--foil-line)}.icon-btn.danger:hover{color:var(--debit);border-color:color-mix(in srgb, var(--debit) 40%, var(--foil-line))}.ledger-totals{flex-direction:column;gap:2px;margin-top:14px;display:flex}.ledger-totals .gain{color:var(--cash)}.ledger-totals .loss{color:var(--debit)}.portfolio-split{flex-direction:column;align-items:center;gap:10px;margin-bottom:14px;display:flex}.portfolio-donut{max-width:180px}.portfolio-hover-lane{width:100%;max-width:340px;min-height:48px;position:relative}.portfolio-hover-item{border-radius:var(--radius);background:var(--ink-raised);border:1px solid var(--foil-line);box-shadow:var(--shadow-sm);opacity:0;transition:opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);pointer-events:none;align-items:center;gap:10px;padding:8px 12px;display:flex;position:absolute;inset:0;transform:translateY(6px)}.portfolio-hover-item.is-active{opacity:1;transform:translateY(0)}.portfolio-hover-emoji{text-align:center;flex-shrink:0;width:32px;font-size:1.35rem}.portfolio-hover-name{color:var(--text-heading);font-size:.88rem;font-weight:600;line-height:1.2}.portfolio-hover-meta{align-items:center;gap:8px;margin-top:2px;font-size:.78rem;display:flex}.portfolio-split.is-seg-hover .donut-seg{opacity:.45}.portfolio-split.is-seg-hover .donut-seg.is-hovered{opacity:1}.portfolio-holdings .item-row[data-portfolio-item]{transition:opacity var(--dur) var(--ease-out)}.portfolio-split.is-seg-hover~.portfolio-holdings .item-row[data-portfolio-item]{opacity:.35}.portfolio-split.is-seg-hover~.portfolio-holdings .item-row[data-portfolio-item].is-highlighted{opacity:1}.donut-total{font-family:var(--heading);font-size:calc(20px + var(--text-bump));fill:var(--foil-bright)}.donut-unit{font-size:calc(9px + var(--text-bump));letter-spacing:.06em;text-transform:uppercase}.donut-seg{cursor:pointer;transition:opacity var(--dur) var(--ease-out)}.shell.booting .portfolio-donut .donut-seg{animation:seg-in .5s var(--ease-out) both;transform-box:fill-box;transform-origin:90px 90px}@keyframes seg-in{0%{opacity:0;transform:scale(.9)}}.band-gauge{flex-shrink:0;width:120px}.band-gauge .gauge-tick text,.band-gauge .gauge-marker text{font-size:calc(10px + var(--text-bump));fill:var(--text-muted)}@media (width<=480px){.band-gauge{width:100%;max-width:180px;margin:0 auto}}.compare-bar{width:100%}.cmp-tick{stroke-width:2px}.cmp-tick.great{stroke:var(--seal-great)}.cmp-tick.good{stroke:var(--seal-good)}.cmp-tick.pawn{stroke:var(--foil);stroke-dasharray:2 2}.shell.booting .compare-bar .cmp-fill{animation:cmp-grow .6s var(--ease-out) both;transform-box:fill-box;transform-origin:0}@keyframes cmp-grow{0%{transform:scaleX(0)}}.inv-summary{justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.inv-summary strong{font-family:var(--mono);color:var(--foil-bright);font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:500}.table-wrap{overflow-x:auto}.inv-table-wrap{border-radius:var(--radius-lg);overflow:visible}.inv-table,.price-table{border-collapse:collapse;width:100%;font-size:.88rem}.inv-table th,.price-table td:first-child{text-align:left;color:var(--text-muted);font-family:var(--heading);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--foil-line-strong);padding:11px 16px;font-size:.72rem;font-weight:600}.inv-table thead th{top:var(--topbar-h);z-index:2;background:var(--ink-raised);position:sticky}.inv-table.ledger-table thead th{z-index:auto;position:static;top:auto}.inv-table.ledger-table td{vertical-align:top;border-bottom:1px solid var(--foil-line);padding-top:12px;padding-bottom:12px;line-height:1.45}.inv-table.ledger-table tbody tr:last-child td{border-bottom:none}.inv-table td,.price-table td{color:var(--text);border-bottom:none;padding:10px 16px}.inv-table tbody tr:nth-child(odd){background:var(--ink)}.inv-table tbody tr:nth-child(2n){background:var(--ink-raised)}.inv-table td.tabnums,.inv-table td:not(:first-child),.price-table td:last-child{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}.inv-table th:first-child,.inv-table td:first-child{text-align:left}.inv-table tbody tr:hover,.price-table tr:hover td{background:#c9a24b12}.inv-table.sm{font-size:.82rem}.inv-table.sm th,.inv-table.sm td{padding:8px 12px}.inv-table tfoot td{border-top:1px solid var(--foil-line-strong);color:var(--text-heading);background:var(--ink-raised);border-bottom:none;padding-top:12px}.qty-input{text-align:right;width:68px;font-family:var(--mono);font-variant-numeric:tabular-nums;border:none;border-bottom:1px solid var(--foil-line);box-shadow:none;color:var(--text-heading);transition:border-color var(--dur) var(--ease-out);background:0 0;border-radius:0;padding:4px 6px}.qty-input:focus{border-bottom-color:var(--foil);box-shadow:none}.compare-picks{flex-direction:column;gap:6px;max-height:420px;display:flex;overflow-y:auto}.check-row{border-radius:var(--radius-sm);cursor:pointer;color:var(--text);transition:background var(--dur) var(--ease-out);align-items:center;gap:10px;padding:10px 12px;font-size:.9rem;display:flex}.check-row:hover{background:#f5ecd80a}.check-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--foil);cursor:pointer}.chart{flex-direction:column;gap:4px;display:flex}.chart-row{grid-template-columns:minmax(100px,1.2fr) 1fr auto;align-items:center;gap:12px;margin-top:10px;display:grid}.chart-label{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}.chart-bar-wrap{align-items:center;display:flex}.chart-val{font-family:var(--mono);color:var(--text-heading);font-variant-numeric:tabular-nums;text-align:right;min-width:64px;font-size:.9rem;font-weight:500}.chart-sub{color:var(--text-muted);grid-column:1/-1;margin-bottom:6px;padding-left:2px;font-size:.75rem}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field>span{font-size:calc(12px + var(--text-bump));font-family:var(--sans);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.field.flex{flex:1}.field-row{align-items:flex-end;gap:12px;display:flex}.settings-grid{grid-template-columns:repeat(2,1fr);gap:12px 16px;margin-bottom:8px;display:grid}.quote-result-wrap{margin-top:8px}.quote-result{--status-color:var(--foil);border-radius:var(--radius);border:1px solid color-mix(in srgb, var(--status-color) 38%, var(--foil-line));background:color-mix(in srgb, var(--status-color) 9%, var(--ink-raised));align-items:center;gap:18px;padding:16px 18px;display:flex}.seal{background:radial-gradient(circle at 50% 50%, var(--ink-raised) 0 56%, transparent 57%), repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--status-color) 70%, transparent) 0deg 4deg, transparent 4deg 8deg), radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--status-color) 26%, var(--ink-inset)) 0 100%);width:84px;height:84px;box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--status-color) 55%, transparent), inset 0 0 0 9px var(--ink-raised), inset 0 0 0 10px color-mix(in srgb, var(--status-color) 40%, transparent), var(--shadow-sm);animation:stamp .26s var(--ease-stamp) both;border-radius:50%;flex-shrink:0;place-items:center;display:grid;position:relative}.seal:after{content:"";border:1px solid color-mix(in srgb, var(--status-color) 60%, transparent);opacity:0;pointer-events:none;animation:seal-ring .5s var(--ease-stamp);border-radius:50%;position:absolute;inset:-6px}@keyframes seal-ring{0%{opacity:.7;transform:scale(.7)}to{opacity:0;transform:scale(1.25)}}.seal-word{font-family:var(--heading);font-variant:small-caps;letter-spacing:.02em;text-align:center;overflow-wrap:anywhere;max-width:60px;color:color-mix(in srgb, var(--status-color) 82%, white);text-shadow:0 1px 2px #000000b3;padding:0 6px;font-size:.86rem;font-weight:600;line-height:1.05}@keyframes stamp{0%{opacity:.35;transform:scale(1.18)rotate(-4deg)}60%{transform:scale(.96)}to{opacity:1;transform:scale(1)rotate(0)}}.seal-readout{flex-direction:column;gap:4px;min-width:0;display:flex}.seal-verdict{font-family:var(--heading);letter-spacing:.01em;color:var(--status-color);font-size:.98rem;font-weight:600}.quote-rs{font-family:var(--mono);font-size:calc(17px + var(--text-bump));color:var(--text-heading);font-variant-numeric:tabular-nums;font-weight:500}.quote-bands{font-family:var(--mono);font-size:calc(11px + var(--text-bump));color:var(--text-muted);font-variant-numeric:tabular-nums}.quote-status{color:var(--status-color,var(--foil));margin-top:4px;font-size:.92rem;font-weight:600}.profit-grid{flex-direction:column;gap:2px;display:flex}.profit-row{border-bottom:1px solid var(--foil-line);justify-content:space-between;align-items:center;padding:10px 0;font-size:.9rem;display:flex}.profit-row span:first-child{color:var(--text-muted)}.profit-row span:last-child{color:var(--text-heading);font-weight:500}.profit-row.highlight{background:color-mix(in srgb, var(--cash) 12%, transparent);border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--cash) 38%, var(--foil-line));margin:6px 0;padding:12px 14px}.profit-row.highlight span:last-child{color:var(--cash);font-family:var(--mono);font-variant-numeric:tabular-nums}.profit-row.highlight.loss,.profit-row.loss{background:color-mix(in srgb, var(--debit) 12%, transparent);border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--debit) 40%, var(--foil-line));margin:6px 0;padding:12px 14px}.profit-row.loss span:last-child{color:var(--debit);font-family:var(--mono);font-variant-numeric:tabular-nums}.price-table td:last-child{text-align:right;color:var(--foil-bright);font-weight:500}.modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(4px);animation:backdrop-in .25s var(--ease-out) both;background:#080603bd;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}@keyframes backdrop-in{0%{opacity:0}}.modal{border-radius:var(--radius-xl);background:var(--ink-raised);border:1px solid var(--foil-line-strong);width:100%;max-width:480px;max-height:90svh;box-shadow:var(--shadow-md);animation:modal-in .35s var(--ease-out) both;padding:26px;position:relative;overflow-y:auto}@keyframes modal-in{0%{opacity:0;transform:translateY(20px)scale(.97)}}.form-modal{max-width:520px}.modal-close{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);transition:background var(--dur) var(--ease-out), color var(--dur) var(--ease-out);justify-content:center;align-items:center;font-size:1.3rem;display:flex;position:absolute;top:14px;right:14px}.modal-close:hover{color:var(--text-heading);background:#f5ecd80a}.modal-head{animation:modal-content-in .4s var(--ease-out);align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}@keyframes modal-content-in{0%{opacity:0;transform:translateY(6px)}}.modal-head h2{font-size:calc(28px + var(--text-bump));letter-spacing:0;border-bottom:none;padding-bottom:0;font-weight:600}.modal-head h2:before{content:none}.modal-emoji{font-size:2.2rem;line-height:1}.modal-quote{margin:16px 0;padding:14px 16px}.modal-quote h3{margin:0 0 10px}.modal-inv{margin:16px 0;font-size:.9rem}.modal-inv label{color:var(--text-muted);align-items:center;gap:10px;display:flex}.modal-inv input{width:80px}.notes{color:var(--text);text-wrap:pretty;background:var(--ink-inset);border-radius:var(--radius-sm);border:1px solid var(--foil-line);border-left:2px solid var(--foil);margin:12px 0;padding:12px 14px;font-size:.9rem;line-height:1.55}.toast{z-index:300;font-family:var(--sans);color:var(--text-heading);background:var(--ink-raised);border:1px solid var(--foil-line-strong);box-shadow:var(--shadow-md);animation:toast-in .4s var(--ease-out) both;border-radius:999px;padding:11px 22px;font-size:.9rem;font-weight:600;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(16px)}}.toast.leaving{animation:toast-out .26s var(--ease-out) forwards}@keyframes toast-out{to{opacity:0;transform:translate(-50%)translateY(12px)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--foil-line-strong);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--foil)}@media (width<=1100px){.grid-dash{grid-template-columns:repeat(2,1fr)}}@media (width<=860px){:root{--sidebar-w:100%}.shell{flex-direction:column;min-height:100svh;display:flex}.main{flex-direction:column;flex:1;min-height:100svh;margin-left:0;display:flex}.sidebar{z-index:49;width:100%;height:auto;min-height:unset;background:var(--ink);border:none;border-bottom:1px solid var(--foil-line-strong);flex-direction:row;align-items:stretch;gap:0;padding:0;position:static;box-shadow:0 8px 28px #00000080;animation:none!important}.brand,.sidebar-foot{display:none}.nav{scrollbar-width:none;flex-flow:row;flex:1;gap:0;padding:0;overflow:visible}.nav::-webkit-scrollbar{display:none}.nav-btn{letter-spacing:.01em;text-align:center;white-space:nowrap;border:1px solid #0000;border-radius:0;flex-direction:column;flex:1 1 0;justify-content:center;gap:2px;min-width:0;padding:7px 2px;font-size:.62rem;line-height:1.05}.nav-btn .nav-index{width:auto;color:var(--foil);font-size:.74rem}.nav-btn.active{background:var(--ink-raised);border:1px solid #0000;border-radius:0}.nav-btn.active:after{inset:auto 8px 5px}.nav-btn.active .nav-index{color:var(--foil-bright)}.topbar{flex-wrap:wrap;flex-shrink:0;padding:12px 16px}.topbar-actions{justify-content:flex-end;width:100%}.search-input{flex:1;width:auto;min-width:0}.view-panel{padding:16px}.inv-table-wrap{overflow-x:auto}.inv-table thead th{position:static}.grid-2,.settings-grid{grid-template-columns:1fr}.field-row{flex-direction:column;align-items:stretch}.chart-row{grid-template-columns:1fr;gap:6px}.chart-val{text-align:left}}@media (width<=480px){.grid-dash{grid-template-columns:1fr}.stat-value{font-size:calc(23px + var(--text-bump))}.topbar h1{font-size:calc(18px + var(--text-bump));width:100%}.wallet-form-grid{grid-template-columns:1fr}.btn-row{flex-direction:column}.btn-row .btn,.btn-row .file-btn{width:100%}.modal{padding-left:16px;padding-right:16px}}.result-count{margin:0 0 8px;font-size:.82rem}.qty-cell{align-items:center;gap:8px;display:inline-flex}.btn.step{border-radius:var(--radius-sm);width:30px;min-width:30px;height:30px;padding:0;font-size:1.05rem;line-height:1;position:relative}.btn.step:after{content:"";position:absolute;inset:-7px -1px}.btn.step:disabled{opacity:.35;cursor:not-allowed}.qty-cell .qty-input{width:56px}.quote-picker{position:relative}.quote-picker>input[type=search]{width:100%}.quote-picker-list{border:1px solid var(--foil-line);border-radius:var(--radius);background:var(--ink-inset);flex-direction:column;gap:2px;max-height:220px;margin-top:6px;padding:4px;display:flex;overflow-y:auto}.pick-row{text-align:left;border-radius:var(--radius-sm);width:100%;min-height:36px;color:var(--text);font-family:var(--sans);transition:background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;font-size:.92rem;display:flex}.pick-row:hover{background:var(--glass-highlight);border-color:var(--foil-line);color:var(--text-heading)}.pick-row.active{border-color:var(--foil-line-strong);color:var(--foil-bright)}.pick-row .pick-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pick-empty{margin:0;padding:8px 10px}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:28px 20px;display:flex}.empty-state .muted{text-wrap:pretty;max-width:32ch}.boot-state{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100svh;padding:24px;display:flex;position:relative}.boot-state h2{font-family:var(--heading);color:var(--text-heading);text-wrap:balance;margin:0}.boot-state .muted{text-wrap:pretty;max-width:38ch}.boot-icon{font-size:2.2rem}.boot-spinner{border:2px solid var(--foil-line);border-top-color:var(--foil);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite boot-spin}@keyframes boot-spin{to{transform:rotate(360deg)}}.currency-seg{border:1px solid var(--foil-line);border-radius:var(--radius-sm);background:var(--ink-inset);align-items:stretch;gap:0;padding:3px;display:none}.currency-native{display:block}.seg-opt{border-radius:calc(var(--radius-sm) - 2px);min-width:0;color:var(--text-muted);font-family:var(--mono);letter-spacing:.02em;transition:background var(--dur) var(--ease-out), color var(--dur) var(--ease-out);background:0 0;border:none;flex:1 1 0;padding:9px 6px;font-size:.84rem;font-weight:500}.seg-opt:hover{color:var(--text-heading)}.seg-opt.active{background:var(--ink-raised);color:var(--foil-bright);box-shadow:inset 0 0 0 1px var(--foil-line-strong)}@media (pointer:coarse){.currency-seg{display:flex}.currency-native{display:none}.btn,.btn.sm,.btn.icon,.modal-close,.nav-btn,.pick-row,.check-row,.link{min-height:44px}.btn.icon,.modal-close{min-width:44px}.qty-input{min-height:40px;font-size:calc(16px + var(--text-bump))}.seg-opt,.btn.step{min-height:44px}}@media (width<=480px){.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-width:none;max-height:92svh;padding-top:30px;padding-bottom:calc(24px + env(safe-area-inset-bottom));animation:sheet-up .32s var(--ease-out) both;border-bottom:none}.modal:before{content:"";background:var(--foil-line-strong);border-radius:999px;width:42px;height:4px;position:absolute;top:9px;left:50%;transform:translate(-50%)}@keyframes sheet-up{0%{opacity:0;transform:translateY(100%)}}.inv-table-wrap{box-shadow:none;background:0 0;border:none;overflow-x:visible}.inv-table{min-width:0;display:block}.inv-table thead{display:none}.inv-table tbody,.inv-table tbody tr,.inv-table td{display:block}.inv-table tbody tr,.inv-table tbody tr:nth-child(odd),.inv-table tbody tr:nth-child(2n){background:var(--ink);border:1px solid var(--foil-line);border-radius:var(--radius);margin-bottom:10px;padding:14px 14px 12px}.inv-table tbody tr.inv-empty-row,.inv-table tbody tr.inv-empty-row:nth-child(odd),.inv-table tbody tr.inv-empty-row:nth-child(2n){background:0 0;border:none;margin:0;padding:12px 2px}.inv-table tr.inv-empty-row td{text-align:center;border:none;margin:0;padding:0;display:block}.inv-table tr.inv-empty-row td:before{content:none}.inv-table tbody tr:hover{background:var(--ink)}.inv-table td:first-child{border-bottom:1px solid var(--foil-line);margin-bottom:12px;padding:0 0 12px}.inv-table td:first-child .link{font-size:1rem}.inv-table td:nth-child(2){padding:0 0 12px}.inv-table td:nth-child(2) .qty-cell{align-items:stretch;gap:10px;width:100%;display:flex}.inv-table td:nth-child(2) .btn.step{border:1px solid var(--foil-line);border-radius:var(--radius-sm);width:48px;min-width:48px;height:48px;min-height:48px;font-size:1.4rem}.inv-table td:nth-child(2) .qty-cell .qty-input{text-align:center;width:auto;height:48px;font-size:calc(16px + var(--text-bump));border:1px solid var(--foil-line);border-radius:var(--radius-sm);background:var(--ink-inset);flex:1}.inv-table td:nth-child(3),.inv-table td:nth-child(4){width:50%;font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:left;align-items:baseline;gap:6px;padding:0;display:inline-flex}.inv-table td:nth-child(3):before{content:"Unit"}.inv-table td:nth-child(4):before{content:"Total"}.inv-table td:nth-child(3):before,.inv-table td:nth-child(4):before{font-family:var(--sans);text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:.66rem;font-weight:600}.inv-table td:nth-child(4){text-align:right;justify-content:flex-end}.inv-table td:nth-child(5){border-top:1px solid var(--foil-line);margin-top:10px;padding:12px 0 0}.inv-table td:nth-child(5) .btn{width:100%}.quote-result{text-align:center;flex-direction:column;align-items:stretch;gap:14px}.quote-result .seal{width:96px;height:96px;margin:0 auto}.quote-result .seal-word{font-size:.96rem}.seal-readout{align-items:center}.quote-result .quote-rs{font-size:calc(26px + var(--text-bump))}.inv-table.ledger-table,.inv-table.ledger-table thead,.inv-table.ledger-table tbody,.inv-table.ledger-table tr,.inv-table.ledger-table th,.inv-table.ledger-table td{display:revert}.inv-table.ledger-table tbody tr,.inv-table.ledger-table tbody tr:nth-child(odd),.inv-table.ledger-table tbody tr:nth-child(2n){border:none;border-radius:0;margin:0;padding:0}.inv-table.ledger-table td:nth-child(3),.inv-table.ledger-table td:nth-child(4){text-align:right;width:auto;padding:12px 16px}.inv-table.ledger-table td:nth-child(3):before,.inv-table.ledger-table td:nth-child(4):before{content:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.seal,.modal,.view-panel,.nav-btn.active:after,.seal:after,.modal-head,.toast,.toast.leaving,.shell.booting .cat-lollipop .lolli-row,.shell.booting .portfolio-donut .donut-seg,.shell.booting .compare-bar .cmp-fill{animation:none!important}.view-panel{opacity:1!important;transform:none!important}.nav-btn.active:after{opacity:1!important;transform:scaleX(1)!important}.shell.booting .compare-bar .cmp-fill,.shell.booting .portfolio-donut .donut-seg,.shell.booting .cat-lollipop .lolli-row{opacity:1!important;transform:none!important}}.login-gate{z-index:1;justify-content:center;align-items:center;min-height:100svh;padding:24px;display:flex;position:relative}.login-card{text-align:center;border-radius:var(--radius-lg);width:100%;max-width:420px;animation:login-rise .5s var(--ease-out) both;padding:40px 32px 32px}@keyframes login-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-seal{border:1px solid var(--foil-line-strong);background:#c9a24b1a;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:18px;font-size:2rem;display:inline-flex}.login-card h1{font-family:var(--heading);font-size:calc(24px + var(--text-bump));margin:0 0 10px}.login-card .muted{max-width:34ch;margin:0 auto 22px}.login-btn{width:100%;padding:12px 18px;font-size:.98rem}.btn.discord{color:#fff;background:#5865f2;border:1px solid #5865f2}.btn.discord:hover{background:#4954dd;border-color:#4954dd;transform:translateY(-1px)}.discord-glyph{font-size:1.05rem}.login-fine{margin:16px 0 0}.login-error{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--debit) 12%, transparent);border:1px solid color-mix(in srgb, var(--debit) 38%, transparent);color:var(--debit);margin:0 0 18px;padding:9px 12px;font-size:.86rem}.user-chip{border:1px solid var(--foil-line);background:var(--ink-inset);border-radius:999px;align-items:center;gap:8px;padding:4px 6px 4px 8px;display:inline-flex}.user-avatar{object-fit:cover;border:1px solid var(--foil-line);border-radius:50%;width:28px;height:28px}.user-avatar.fallback{color:var(--foil-bright);font-family:var(--heading);background:#c9a24b29;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;display:inline-flex}.user-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:12ch;font-size:.85rem;overflow:hidden}.ops-user-cell{flex-direction:column;gap:1px;display:flex}.ops-user-name{color:var(--text-heading);font-size:.9rem}.ops-user-id{color:var(--text-faint);font-size:.72rem}@media (width<=640px){.user-name{display:none}}
