:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#14110d;--bg2:#1a1611;--surface:#211c16;--surface2:#272118;--line:#352d22;--line2:#473c2d;--text:#ece4d6;--muted:#9b9082;--faint:#6b6357;--gold:#e0b25e;--gold-dim:#b98f44;--pos:#7fb87d;--neg:#df8a72;--on-gold:#1a140a;--hover:#ffffff05;--chip:#ffffff0a;--scrim:#080603b8;--btn-hover:#2d2619}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f4ee;--bg2:#efe9df;--surface:#fff;--surface2:#f7f2ea;--line:#e8e0d2;--line2:#d6cab6;--text:#2a2318;--muted:#6c6253;--faint:#9a8f7d;--gold:#9c6f1e;--gold-dim:#7d5713;--pos:#1f9d57;--neg:#cf4636;--on-gold:#fdf6e9;--hover:#3c2d0f0b;--chip:#3c2d0f0f;--scrim:#231c1066;--btn-hover:#efe7d8}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--text);background:radial-gradient(1200px 600px at 80% -10%, #e0b25e12, transparent 60%), radial-gradient(900px 500px at 0% 0%, #7aa2d60d, transparent 55%), var(--bg);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:IBM Plex Sans,sans-serif}.app{padding:28px 22px 64px}.wrap{max-width:1080px;margin:0 auto}a{color:var(--gold)}.num{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace}.pos{color:var(--pos)}.neg{color:var(--neg)}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:26px;display:flex}.brand{align-items:center;gap:12px;display:flex}.monogram{background:linear-gradient(145deg,var(--gold),var(--gold-dim));width:38px;height:38px;color:var(--on-gold);border-radius:9px;place-items:center;font-family:Fraunces,serif;font-size:22px;font-weight:600;display:grid;box-shadow:0 6px 18px #e0b25e2e}.brand h1{letter-spacing:.3px;margin:0;font-family:Fraunces,serif;font-size:22px;font-weight:500}.brand p{color:var(--faint);margin:2px 0 0;font-size:12px}.topactions{align-items:center;gap:10px;display:flex}.updated{color:var(--faint);text-align:right;font-size:11px}button{cursor:pointer;border:none;font-family:inherit}.btn{background:var(--surface2);color:var(--text);border:1px solid var(--line2);border-radius:9px;align-items:center;gap:7px;padding:9px 14px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn:hover{border-color:var(--gold-dim);background:var(--btn-hover)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:linear-gradient(145deg,var(--gold),var(--gold-dim));color:var(--on-gold);border:none;font-weight:600}.btn.primary:hover{filter:brightness(1.06)}.btn .dot{background:var(--gold);border-radius:50%;width:7px;height:7px}.btn.primary .dot{background:var(--on-gold)}.hero{background:linear-gradient(160deg,var(--surface),var(--bg2));border:1px solid var(--line);border-radius:18px;grid-template-columns:1.4fr 1fr 1fr;gap:24px;margin-bottom:18px;padding:26px 28px;display:grid;position:relative;overflow:hidden}.hero:after{content:"";pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.025'/%3E%3C/svg%3E");position:absolute;inset:0}.hero .cell{z-index:1;position:relative}.label{text-transform:uppercase;letter-spacing:1.4px;color:var(--faint);margin-bottom:8px;font-size:11px}.bigval{font-variant-numeric:tabular-nums;letter-spacing:-.5px;font-family:IBM Plex Mono,monospace;font-size:40px;font-weight:500;line-height:1}.subval{font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:24px;font-weight:500}.plrow{align-items:baseline;gap:10px;margin-top:12px;display:flex}.pltag{background:var(--chip);border-radius:6px;padding:3px 8px;font-family:IBM Plex Mono,monospace;font-size:14px}.grid2{grid-template-columns:300px 1fr;align-items:stretch;gap:18px;margin-bottom:18px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.card h2{letter-spacing:.2px;margin:0 0 16px;font-family:Fraunces,serif;font-size:16px;font-weight:500}.donut-wrap{flex-direction:column;align-items:center;gap:18px;display:flex}.legend{flex-direction:column;gap:9px;width:100%;display:flex}.legrow{justify-content:space-between;align-items:center;font-size:13px;display:flex}.legleft{align-items:center;gap:9px;display:flex}.swatch{border-radius:3px;flex:none;width:11px;height:11px}.legpct{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:12px}.chart-empty{height:100%;min-height:180px;color:var(--faint);text-align:center;place-items:center;font-size:13px;display:grid}.thead,.trow{grid-template-columns:1.7fr .8fr 1fr 1fr 1.1fr 64px;align-items:center;gap:10px;display:grid}.thead{text-transform:uppercase;letter-spacing:.8px;color:var(--faint);border-bottom:1px solid var(--line);padding:0 6px 12px;font-size:11px}.thead .sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .12s}.thead .sortable:hover{color:var(--muted)}.trow{border-bottom:1px solid var(--line);padding:13px 6px}.trow:last-child{border-bottom:none}.trow:hover{background:var(--hover)}.asset{align-items:center;gap:11px;min-width:0;display:flex}.aname{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.asym{color:var(--faint);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.tnum{font-variant-numeric:tabular-nums;text-align:right;font-family:IBM Plex Mono,monospace;font-size:13.5px}.right{text-align:right}.priceedit{background:var(--bg2);border:1px solid var(--line);width:100%;color:var(--text);text-align:right;border-radius:7px;padding:6px 8px;font-family:IBM Plex Mono,monospace;font-size:13px}.priceedit:focus{border-color:var(--gold-dim);outline:none}.ch24{font-size:10.5px}.rowact{justify-content:flex-end;gap:6px;display:flex}.iconbtn{background:var(--surface2);border:1px solid var(--line);width:28px;height:28px;color:var(--muted);border-radius:7px;place-items:center;font-size:13px;display:grid}.iconbtn:hover{color:var(--text);border-color:var(--line2)}.iconbtn.del:hover{color:var(--neg);border-color:var(--neg)}.empty{text-align:center;color:var(--muted);padding:48px 20px}.empty .ico{opacity:.6;margin-bottom:10px;font-size:34px}.status{color:var(--faint);margin-top:14px;font-size:11px}.status.err{color:var(--neg)}.overlay{background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line2);border-radius:18px;width:100%;max-width:440px;max-height:90vh;padding:24px;overflow:auto}.modal h3{margin:0 0 18px;font-family:Fraunces,serif;font-size:19px;font-weight:500}.field{margin-bottom:14px}.field label{text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-bottom:6px;font-size:11px;display:block}.field input,.field select{background:var(--bg2);border:1px solid var(--line);width:100%;color:var(--text);border-radius:9px;padding:10px 12px;font-family:IBM Plex Sans,sans-serif;font-size:14px}.field input.num{font-family:IBM Plex Mono,monospace}.field input:focus,.field select:focus{border-color:var(--gold-dim);outline:none}.field .hint{color:var(--faint);margin-top:5px;font-size:11px}.typegrid{grid-template-columns:repeat(5,1fr);gap:7px;display:grid}.typebtn{background:var(--bg2);border:1px solid var(--line);color:var(--muted);text-align:center;border-radius:9px;padding:9px 4px;font-size:11px;font-weight:500}.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modalact{gap:10px;margin-top:20px;display:flex}.modalact .btn{flex:1;justify-content:center}.ghost{border:1px solid var(--line2);color:var(--muted);background:0 0}.ghost:hover{color:var(--text)}.searchbox{position:relative}.results{background:var(--surface2);border:1px solid var(--line2);z-index:5;border-radius:11px;max-height:220px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden auto}.resitem{cursor:pointer;border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 12px;display:flex}.resitem:hover{background:var(--surface)}.resitem img{border-radius:50%;width:20px;height:20px}.resitem .rn{font-size:13px;font-weight:500}.resitem .rs{color:var(--faint);text-transform:uppercase;font-size:11px}.checkrow{color:var(--muted);cursor:pointer;align-items:center;gap:8px;margin-top:5px;font-size:12px;display:flex}.checkrow input{width:auto}.assetlink{color:inherit;cursor:pointer;border-radius:8px;text-decoration:none}.assetlink:hover .aname{color:var(--gold)}a.btn{text-decoration:none}.acthead,.actrow{grid-template-columns:1fr 1.7fr .7fr .9fr 1fr 1.1fr}.acttxt{color:var(--muted);font-size:13px}.actname{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;text-decoration:none;overflow:hidden}.actname:hover{color:var(--gold)}.actsym{color:var(--faint);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.actrow .pltag{text-transform:capitalize}.gearbtn{width:40px;height:40px;color:var(--muted);justify-content:center;padding:0;font-size:18px;line-height:1;text-decoration:none}.gearbtn:hover{color:var(--gold);border-color:var(--gold-dim)}.dangerzone{border-color:#df8a7266}.dangerzone h2{color:var(--neg)}.dangertext{color:var(--muted);margin-bottom:14px;font-size:13px;line-height:1.55}.btn.danger{border:1px solid var(--neg);color:var(--neg);background:0 0}.btn.danger:hover:not(:disabled){background:var(--neg);color:var(--on-gold)}.btn.danger:disabled{opacity:.45;cursor:default}.dtop{margin-bottom:18px}.back{color:var(--muted);margin-bottom:14px;font-size:13px;text-decoration:none;display:inline-block}.back:hover{color:var(--gold)}.dhead{align-items:center;gap:12px;display:flex}.dname{margin:0;font-family:Fraunces,serif;font-size:24px;font-weight:500}.dsym{color:var(--faint);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-size:12px}.card{margin-bottom:18px}.cardhead{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.cardhead h2{margin:0}.summary{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:18px;display:grid}.statcell{min-width:0}.statval{margin-top:4px;font-size:16px;font-weight:500}.statsub{color:var(--muted);margin-top:3px;font-size:12px}.chartwrap{cursor:crosshair;touch-action:pan-y;-webkit-tap-highlight-color:transparent;position:relative}.trademark{border:1.5px solid var(--bg);pointer-events:none;border-radius:50%;width:8px;height:8px;position:absolute;transform:translate(-50%,-50%)}.crosshair{background:var(--line2);pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.crossdot{width:9px;height:9px;box-shadow:0 0 0 2px var(--surface);pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.charttip{background:var(--surface2);border:1px solid var(--line2);pointer-events:none;white-space:nowrap;z-index:2;border-radius:8px;flex-direction:column;gap:1px;padding:5px 9px;font-size:12px;display:flex;position:absolute;top:6px;transform:translate(-50%);box-shadow:0 4px 14px #0000004d}.charttip.flip{transform:translate(-100%)}.charttip-when{color:var(--muted);font-size:10px}.ygrid{border-top:1px solid var(--line);opacity:.6;pointer-events:none;position:absolute;left:0;right:0}.ylabel{color:var(--faint);background:var(--surface);pointer-events:none;border-radius:3px;padding:0 3px;font-family:IBM Plex Mono,monospace;font-size:9px;position:absolute;left:2px;transform:translateY(-50%)}.xaxis{color:var(--faint);justify-content:space-between;margin-top:8px;font-family:IBM Plex Mono,monospace;font-size:10px;display:flex}.refline{border-top:1px dashed var(--muted);opacity:.45;pointer-events:none;position:absolute;left:0;right:0}.reflabel{color:var(--muted);background:var(--surface);pointer-events:none;border-radius:3px;padding:0 4px;font-family:IBM Plex Mono,monospace;font-size:9px;position:absolute;right:4px;transform:translateY(-50%)}.ranges{background:var(--bg2);border:1px solid var(--line);border-radius:9px;display:inline-flex;overflow:hidden}.rangebtn{color:var(--muted);border:none;border-left:1px solid var(--line);background:0 0;padding:5px 11px;font-family:inherit;font-size:12px;font-weight:500}.rangebtn:first-child{border-left:none}.rangebtn.on{background:var(--gold);color:var(--on-gold);font-weight:600}.chartfoot{justify-content:space-between;align-items:center;margin-top:10px;display:flex}.txnform{background:var(--bg2);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:14px}.txngrid{grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;display:grid}.txnact{justify-content:flex-end;gap:10px;margin-top:6px;display:flex}.field input:disabled{opacity:.55;cursor:not-allowed}.txnlist{flex-direction:column;display:flex}.txnrow{border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:11px 4px;display:grid}.txnrow:last-child{border-bottom:none}.txnmain{min-width:0}.txnsub{color:var(--faint);margin-top:2px;font-size:11px}.txnline{font-weight:500}.pltag.pos{color:var(--pos)}.pltag.neg{color:var(--neg)}.muted{color:var(--muted)}.notes{resize:vertical;background:var(--bg2);border:1px solid var(--line);width:100%;min-height:90px;color:var(--text);border-radius:10px;padding:12px;font-family:IBM Plex Sans,sans-serif;font-size:14px;line-height:1.5}.notes:focus{border-color:var(--gold-dim);outline:none}.notestate{color:var(--faint);font-size:11px}.newslist{flex-direction:column;gap:2px;display:flex}.newsitem{border-bottom:1px solid var(--line);color:var(--text);border-radius:6px;padding:11px 6px;text-decoration:none;display:block}.newsitem:last-child{border-bottom:none}.newsitem:hover{background:var(--hover)}.newstitle{font-size:13.5px;font-weight:500}.newsmeta{color:var(--faint);margin-top:3px;font-size:11px}@media (max-width:820px){.hero{grid-template-columns:1fr 1fr}.hero .cell:first-child{grid-column:1/-1}.grid2{grid-template-columns:1fr}}@media (max-width:620px){.thead{display:none}.trow{grid-template-columns:1fr auto;grid-auto-rows:auto;gap:6px 12px}.trow .c-qty,.trow .c-avg{display:none}.trow .asset{grid-area:1/1}.trow .c-price{grid-area:1/2}.trow .c-val{text-align:left;grid-area:2/1}.trow .c-act{grid-area:2/2}.acthead{display:none}.actrow{grid-template-columns:1fr auto auto;align-items:center;gap:4px 10px}.actrow .c-actdate,.actrow .c-actqty,.actrow .c-actprice{display:none}.actrow .c-actname{grid-column:1}.actrow .c-actside{grid-column:2}.actrow .c-actamt{grid-column:3}.topactions{flex-wrap:wrap;justify-content:flex-end;gap:7px}.topactions .btn{padding:8px 11px;font-size:12px}.hide-sm{display:none}.chartwrap svg{min-height:150px}.ranges{flex-wrap:wrap}}
