:root{--paper:#f2f0e9;--card:#fcfbf7;--ink:#1c1b16;--muted:#716c5e;--line:#ddd8c8;--line2:#c8c2ae;--green:#1e6b4a;--red:#ae3b22;--blue:#3a5a8c;--radius:12px;--gap:18px;--nav-h:64px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-variant-numeric:tabular-nums;min-height:100dvh;font-family:Inter Variable,Inter,system-ui,sans-serif;font-size:15px;line-height:1.45}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,select,textarea{font:inherit;color:inherit}.ic{vertical-align:middle;flex:none;width:20px;height:20px;display:inline-block}.hide{display:none!important}.mono{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace}.serif{font-family:Fraunces Variable,Georgia,serif}::-webkit-scrollbar{width:0;height:0}.layout{min-height:100dvh}.main{padding:24px 18px calc(var(--nav-h) + 100px + env(safe-area-inset-bottom));max-width:820px;margin:0 auto}.page{animation:.25s both fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.sidebar{display:none}@media (width>=1024px){.sidebar{background:var(--paper);border-right:1px solid var(--line2);width:236px;padding:26px 16px;padding-bottom:calc(20px + env(safe-area-inset-bottom));z-index:40;flex-direction:column;gap:6px;display:flex;position:fixed;inset:0 auto 0 0}.main{max-width:900px;margin-left:236px;padding:32px 32px 64px}.bottomnav{display:none!important}.fab{bottom:28px!important;right:28px!important}.tb-auth{display:none}}.brand{align-items:center;gap:11px;padding:2px 8px 24px;display:flex}.brand svg{border-radius:9px;flex:none;width:34px;height:34px}.brand b{letter-spacing:-.2px;font-family:Fraunces Variable,serif;font-size:20px;font-weight:640}.snav{color:var(--muted);text-align:left;border:1px solid #0000;border-radius:9px;align-items:center;gap:13px;width:100%;padding:11px 13px;font-size:14px;font-weight:600;display:flex}.snav:hover{color:var(--ink)}.snav.on{color:var(--ink);border-color:var(--line2);background:var(--card)}.snav .ic{width:19px;height:19px}.side-foot{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding:16px 4px 0;display:flex}.side-user{flex:1;align-items:center;gap:11px;min-width:0;display:flex}.side-user small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;display:block;overflow:hidden}.bottomnav{z-index:50;background:var(--paper);border-top:1px solid var(--line2);padding:6px 6px calc(8px + env(safe-area-inset-bottom));display:flex;position:fixed;bottom:0;left:0;right:0}.bn{color:var(--muted);letter-spacing:.02em;flex-direction:column;flex:1;align-items:center;gap:3px;padding:5px 0;font-size:10.5px;font-weight:600;display:flex}.bn .bn-ic{justify-content:center;align-items:center;height:24px;display:flex}.bn .bn-ic .ic{width:20px;height:20px}.bn.on{color:var(--ink)}.bn.on .bn-ic{position:relative}.bn.on .bn-ic:after{content:"";background:var(--ink);border-radius:1px;width:4px;height:4px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)}.fab{right:18px;bottom:calc(64px + 26px + env(safe-area-inset-bottom));z-index:45;background:var(--ink);width:54px;height:54px;color:var(--paper);border:1px solid var(--ink);border-radius:15px;justify-content:center;align-items:center;display:flex;position:fixed}.fab:active{transform:scale(.95)}.fab .ic{width:23px;height:23px}.topbar{align-items:flex-start;gap:10px;margin-bottom:24px;display:flex}.topbar h1{letter-spacing:-.3px;font-family:Fraunces Variable,serif;font-size:26px;font-weight:640;line-height:1.1}.topbar .sub{color:var(--muted);margin-top:5px;font-size:12.5px}.topbar .grow{flex:1;min-width:0}.tb-actions{align-items:center;gap:8px;padding-top:3px;display:flex}.iconbtn{border:1px solid var(--line2);background:var(--card);width:40px;height:40px;color:var(--ink);border-radius:11px;flex:none;justify-content:center;align-items:center;display:inline-flex}.iconbtn .ic{width:18px;height:18px}.iconbtn:active{transform:translateY(1px)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.card-h{justify-content:space-between;align-items:center;padding:16px 18px 0;display:flex}.card-h b{font-size:14px;font-weight:700}.link{color:var(--ink);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--line2);text-decoration-color:var(--line2);align-items:center;gap:1px;font-size:12.5px;font-weight:650;display:inline-flex}.link .ic{width:13px;height:13px}.mb{margin-bottom:var(--gap)}.stats-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--line);margin-bottom:var(--gap);overflow:hidden}.stats{background:var(--line);grid-template-columns:1fr 1fr;gap:1px;display:grid}@media (width>=900px){.stats{grid-template-columns:repeat(4,1fr)}}.stat{background:var(--card);padding:17px 17px 15px}.stat .lbl{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:9px;font-size:10.5px;font-weight:650}.stat .val{letter-spacing:-.4px;font-family:IBM Plex Mono,monospace;font-size:clamp(16px,4.4vw,19px);font-weight:600}.stat .sub2{color:var(--muted);margin-top:5px;font-size:11.5px}.pos{color:var(--green)}.neg{color:var(--red)}.neu{color:var(--ink)}.fund{padding:13px 18px}.fund:last-of-type{padding-bottom:16px}.fund .r1{align-items:center;gap:10px;margin-bottom:9px;display:flex}.dot{border-radius:2px;flex:none;width:9px;height:9px}.fund .nm{flex:1;font-size:13.5px;font-weight:600}.fund .vl{font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:500}.fund .pct{color:var(--muted);text-align:right;width:42px;font-family:IBM Plex Mono,monospace;font-size:11px}.bar{background:#eae7db;border-radius:99px;height:3px;overflow:hidden}.bar i{border-radius:99px;height:100%;display:block}.card-foot{border-top:1px solid var(--line);justify-content:space-between;margin-top:6px;padding:13px 18px;font-size:13px;font-weight:700;display:flex}.card-foot .mono{font-weight:600}.mov{border-top:1px solid var(--line);cursor:pointer;text-align:left;align-items:center;gap:14px;width:100%;padding:15px 18px;display:flex}.mov:first-of-type{border-top:none}.mov:active{background:#f6f4ec}@media (hover:hover){.mov:hover{background:#f6f4ec}}.mov-ic{border-radius:12px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.mov-ic .ic{width:18px;height:18px}.ic-in{color:var(--green);background:#e4ede6}.ic-out{color:var(--red);background:#f4e5df}.ic-tr{color:#7a7563;background:#ece9de}.mov-mid{flex:1;min-width:0}.mov-t{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;display:block;overflow:hidden}.mov-s{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:11.5px;display:block;overflow:hidden}.mov-amt{flex:none;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:500}.day{margin-bottom:22px}.day-h{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line2);justify-content:space-between;align-items:baseline;margin-bottom:10px;padding:0 2px 7px;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;display:flex}.list-card{overflow:hidden}.chips{gap:10px;margin:0 -2px 18px;padding:2px;display:flex;overflow-x:auto}.chipb{border:1px solid var(--line2);background:var(--card);color:var(--muted);border-radius:8px;flex:none;padding:8px 15px;font-size:12.5px;font-weight:600}.chipb.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.filters{margin-bottom:var(--gap);padding:16px;animation:.2s both fadeUp}.in-wrap{position:relative}.in-wrap .ic{width:16px;height:16px;color:var(--muted);position:absolute;top:50%;left:13px;transform:translateY(-50%)}.in-wrap input{padding-left:38px}.f2{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.field{flex-direction:column;gap:7px;display:flex}.field label,.lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:650}input[type=text],input[type=email],input[type=password],input[type=date],select,textarea{border:1px solid var(--line2);background:#fff;border-radius:10px;outline:none;width:100%;padding:12px 14px;font-size:15px}input:focus,select:focus,textarea:focus{border-color:var(--ink)}input[type=date]{min-height:47px}.val-wrap{position:relative}.val-wrap span{color:var(--muted);font-family:IBM Plex Mono,monospace;font-weight:600;position:absolute;top:50%;left:15px;transform:translateY(-50%)}.val-wrap input{letter-spacing:-.3px;padding-left:38px;font-family:IBM Plex Mono,monospace;font-size:19px;font-weight:600}.f-err{color:var(--red);min-height:15px;margin:3px 0;font-size:12.5px;font-weight:600}.seg{border:1px solid var(--line2);background:var(--card);border-radius:10px;gap:4px;padding:4px;display:flex}.seg button{color:var(--muted);border-radius:7px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 4px;font-size:13px;font-weight:650;display:flex}.seg button .ic{width:14px;height:14px}.seg button.on{background:var(--ink);color:var(--paper)}.btn{border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:13px 18px;font-size:14px;font-weight:650;display:inline-flex}.btn:active{transform:translateY(1px)}.btn .ic{width:16px;height:16px}.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-ghost{background:var(--card);border-color:var(--line2);color:var(--ink)}.btn-danger{background:var(--red);color:#fff;border-color:var(--red)}.btn-block{width:100%}.hero{margin-bottom:var(--gap);flex-direction:column;gap:2px;padding:22px 20px;display:flex}.hero .row{align-items:center;gap:14px;margin-bottom:14px;display:flex}.avatar{border:1px solid var(--line2);width:46px;height:46px;color:var(--ink);letter-spacing:.4px;background:#ece7d8;border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.hero .big{letter-spacing:-1px;font-family:IBM Plex Mono,monospace;font-size:31px;font-weight:600}.hero .meaning{color:var(--muted);margin-top:5px;font-size:13px}.mini-grid{margin-bottom:var(--gap);grid-template-columns:1fr 1fr;gap:14px;display:grid}.mini{padding:16px}.mini .mlbl{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-items:center;gap:6px;margin-bottom:8px;font-size:10.5px;font-weight:650;display:flex}.mini .mlbl .ic{width:13px;height:13px}.mini .v{letter-spacing:-.3px;font-family:IBM Plex Mono,monospace;font-size:16px;font-weight:600}.mini .s{color:var(--muted);margin-top:4px;font-size:11px}.sec-h{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);justify-content:space-between;align-items:baseline;padding:2px 2px 10px;font-size:11px;font-weight:650;display:flex}.empty{text-align:center;color:var(--muted);padding:42px 22px}.empty .eic{border:1px solid var(--line2);background:var(--card);width:44px;height:44px;color:var(--ink);border-radius:12px;justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.empty .eic .ic{width:19px;height:19px}.empty b{color:var(--ink);margin-bottom:4px;font-size:14.5px;display:block}.empty p{max-width:280px;margin:0 auto;font-size:13px}.sheet-layer{z-index:100;position:fixed;inset:0}.backdrop{background:#1c1b1661;position:absolute;inset:0}.sheet{background:var(--card);border:1px solid var(--line2);padding:10px 22px calc(26px + env(safe-area-inset-bottom));border-bottom:none;border-radius:18px 18px 0 0;max-height:88dvh;position:absolute;bottom:0;left:0;right:0;overflow:auto}.grab{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;width:72px;height:26px;margin:6px auto 8px;position:relative}.grab:after{content:"";background:var(--line2);border-radius:99px;width:36px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sh-title{letter-spacing:-.3px;margin-bottom:18px;font-family:Fraunces Variable,serif;font-size:22px;font-weight:640}.sh-form{flex-direction:column;gap:16px;display:flex}@media (width>=768px){.sheet{border-bottom:1px solid var(--line2);border-radius:16px;width:min(480px,92vw);padding-top:26px;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.grab{display:none}}.dl{border-bottom:1px solid var(--line);justify-content:space-between;gap:14px;padding:12px 0;font-size:13.5px;display:flex}.dl:last-of-type{border:none}.dl dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex:none;padding-top:1px;font-size:12px}.dl dd{text-align:right;font-weight:600}.dl dd .mono{font-weight:500}.sheet-actions{gap:12px;margin-top:20px;display:flex}.sheet-actions .btn{flex:1}.swatches{flex-wrap:wrap;gap:11px;display:flex}.sw{border:2px solid #0000;border-radius:9px;width:34px;height:34px}.sw.on{border-color:var(--ink)}.prow{border-top:1px solid var(--line);cursor:pointer;text-align:left;align-items:center;gap:14px;width:100%;padding:15px 18px;display:flex}.prow:first-of-type{border-top:none}.prow:active{background:#f6f4ec}@media (hover:hover){.prow:hover{background:#f6f4ec}}.prow .nm{font-size:14px;font-weight:650;display:block}.prow .sb{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.prow .rt{text-align:right;margin-left:auto}.prow .rt b{font-family:IBM Plex Mono,monospace;font-size:13.5px;font-weight:500;display:block}.prow .rt small{color:var(--muted);font-size:10.5px}.note{color:var(--muted);padding:14px 4px 0;font-size:11.5px;line-height:1.55}#toasts{top:calc(16px + env(safe-area-inset-top));z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper);border-radius:10px;align-items:center;gap:8px;padding:11px 16px;font-size:13px;font-weight:600;animation:.22s both tin;display:flex}.toast .ic{color:#9bc7af;width:14px;height:14px}.toast.err .ic{color:#e5a79a}@keyframes tin{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.auth{background:var(--paper);justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.auth-card{width:min(404px,100%);padding:34px 28px}.auth-brand{text-align:center;flex-direction:column;align-items:center;gap:11px;margin-bottom:28px;display:flex}.auth-brand svg{border-radius:14px;width:54px;height:54px}.auth-brand h1{letter-spacing:-.5px;font-family:Fraunces Variable,serif;font-size:31px;font-weight:640}.auth-brand p{color:var(--muted);max-width:250px;font-size:13.5px;line-height:1.5}.auth .sh-form{margin-bottom:4px}.pass-wrap{position:relative}.pass-wrap button{width:38px;height:38px;color:var(--muted);border-radius:9px;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.pass-wrap input{padding-right:46px}.sheetx-enter-active .backdrop,.sheetx-leave-active .backdrop{transition:opacity .22s}.sheetx-enter-from .backdrop,.sheetx-leave-to .backdrop{opacity:0}.sheetx-enter-active .sheet,.sheetx-leave-active .sheet{transition:transform .28s cubic-bezier(.32,.72,.25,1)}.sheetx-enter-from .sheet,.sheetx-leave-to .sheet{transform:translateY(102%)}@media (width>=768px){.sheetx-enter-from .sheet,.sheetx-leave-to .sheet{opacity:0;transform:translate(-50%,-46%)}.sheetx-enter-active .sheet,.sheetx-leave-active .sheet{transition:transform .22s,opacity .22s}}.toastx-leave-active{transition:all .3s}.toastx-leave-to{opacity:0;transform:translateY(-8px)}
