:root{--bg: #ffffff;--bg-elev: #faf9f6;--bg-elev2: #f3f1ec;--border: #e4e0d7;--border-strong: #cfc9bd;--text: #17150f;--text-dim: #635d52;--text-faint: #9a9286;--accent: #17150f;--danger: #a3231f;--warn: #8a6d16;--radius: 0px;--nav-h: 60px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit}.app{max-width:560px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;border-left:1px solid var(--border);border-right:1px solid var(--border);padding-bottom:calc(90px + var(--safe-b))}.content{padding:16px;padding-top:calc(16px + var(--safe-t));flex:1}.wordmark{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.wordmark span,.wordmark-btn{font-size:13px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--text)}.wordmark-btn{background:none;border:none;padding:0;cursor:pointer}.fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);overflow-y:auto;z-index:35}.fullscreen .content{max-width:560px;margin:0 auto;padding-bottom:calc(40px + var(--safe-b))}.link.back{display:inline-block;margin-bottom:18px;border-bottom:none;letter-spacing:1px;text-transform:uppercase;font-size:12px}.lock{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;padding-bottom:calc(24px + var(--safe-b))}.lock-icon{width:72px;height:72px}.lock-title{font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase}.lock-sub{color:var(--text-faint);font-size:13px;text-align:center}.lock-btn{width:auto;min-width:200px;margin-top:6px}.lock-err{color:var(--danger);font-size:13px;text-align:center}.lock-form{display:flex;flex-direction:column;gap:12px;width:100%;max-width:280px;margin-top:4px}.lock-tap{cursor:pointer}.cal-title{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-faint);margin-bottom:16px}.cal-bars{display:flex;align-items:stretch;gap:10px;height:170px}.cal-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.cal-bar-track{flex:1;width:100%;display:flex;align-items:flex-end}.cal-bar{width:100%;background:var(--text);min-height:4px}.cal-bar-label{font-size:11px;color:var(--text-faint);margin-top:8px;letter-spacing:.3px}.cal-row{display:flex;align-items:center;justify-content:space-between;padding:14px 4px;border-bottom:1px solid var(--border)}.cal-row-main .cal-month{font-weight:700;font-size:15px}.cal-row-main .cal-taken{color:var(--text-faint);font-size:12px;margin-top:2px}.cal-row-val{text-align:right}.cal-networth{font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}.cal-delta{display:block;font-size:12px;margin-top:2px;font-variant-numeric:tabular-nums}.cal-delta.up{color:#0ca678}.cal-delta.down{color:var(--danger)}.cur-toggle{display:inline-flex;border:1px solid var(--border-strong)}.cur-toggle button{border:none;border-right:1px solid var(--border-strong);background:var(--bg);color:var(--text-dim);font-size:12px;font-weight:700;letter-spacing:.5px;padding:8px 14px}.cur-toggle button:last-child{border-right:none}.cur-toggle button.active{background:var(--text);color:var(--bg)}.card{background:var(--bg-elev);border:1px solid var(--border);padding:18px;margin-bottom:14px}.hero{text-align:left;padding:22px 18px;position:relative;min-height:150px}.hero-actions{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;gap:8px}.hero-actions .icon-btn{width:34px;height:34px}.hero-actions .icon-btn svg{width:17px;height:17px}.hero .label{color:var(--text-faint);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700}.hero .label-btn{background:none;border:none;padding:0;cursor:pointer;text-align:left}.hero .value{font-size:42px;font-weight:700;margin:10px 0 6px;letter-spacing:-1px;font-variant-numeric:tabular-nums}.hero .sub{color:var(--text-faint);font-size:12px;letter-spacing:.3px}.hero .value.stale{color:var(--text-faint)}.alloc{display:flex;align-items:center;gap:20px}.alloc .legend{flex:1;display:flex;flex-direction:column;gap:10px}.legend-row{display:flex;align-items:center;gap:10px;font-size:13px}.legend-dot{width:10px;height:10px;flex-shrink:0}.legend-row .lg-label{color:var(--text-dim);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-row .lg-val{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.legend-row .lg-pct{color:var(--text-faint);font-size:12px;width:38px;text-align:right;font-variant-numeric:tabular-nums}.section-title{display:flex;align-items:center;justify-content:space-between;margin:22px 2px 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.section-title h2{font-size:11px;margin:0;color:var(--text-faint);font-weight:700;letter-spacing:1.5px;text-transform:uppercase}.section-title .count{color:var(--text-faint);font-size:13px;font-variant-numeric:tabular-nums}.acct-row{display:flex;align-items:center;gap:14px;padding:15px 16px;margin-bottom:-1px;background:var(--bg);border:1px solid var(--border);width:100%;text-align:left;color:inherit}.acct-row:hover{background:var(--bg-elev)}.acct-icon{width:38px;height:38px;display:grid;place-items:center;flex-shrink:0;color:var(--text)}.acct-icon svg{width:20px;height:20px}.acct-icon .brand-img{width:24px;height:24px;object-fit:contain;display:block}.acct-icon .nft-img{width:100%;height:100%;object-fit:cover;display:block}.acct-icon .mark{font-size:11px;font-weight:700;letter-spacing:.5px}.acct-main{flex:1;min-width:0;overflow:hidden}.acct-main .name{display:block;font-weight:600;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-main .meta{display:block;color:var(--text-faint);font-size:12px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.2px}.acct-val{text-align:right;flex-shrink:0}.acct-val .v{font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}.acct-val .err{color:var(--danger);font-size:11px}.acct-val .pending{color:var(--text-faint);font-size:12px}.acct-val .warn-note{display:block;color:var(--warn);font-size:10px;margin-top:2px;letter-spacing:.3px}.holdings{margin-top:12px;border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:8px}.holding-row{display:flex;justify-content:space-between;font-size:13px;color:var(--text-dim)}.holding-row .h-sym{color:var(--text);font-weight:600}.holding-row .h-amt{color:var(--text-faint)}.fab{position:fixed;bottom:calc(24px + var(--safe-b));right:max(18px,calc((100vw - 560px)/2 + 18px));width:52px;height:52px;border:1px solid var(--text);background:var(--text);color:var(--bg);font-size:26px;font-weight:400;line-height:1;display:grid;place-items:center;z-index:31}.fab:active{background:var(--bg);color:var(--text)}.btn{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);padding:13px 16px;font-size:14px;font-weight:700;letter-spacing:.5px;width:100%}.btn.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn.ghost{background:var(--bg)}.btn.danger{background:var(--bg);color:var(--danger);border-color:var(--danger)}.btn.small{width:auto;padding:9px 14px;font-size:12px}.btn-row{display:flex;gap:10px}.btn-row .btn{flex:1}.icon-btn{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);width:40px;height:40px;display:grid;place-items:center}.icon-btn:active{background:var(--bg-elev2)}.icon-btn svg{width:20px;height:20px}.icon-btn.spin svg{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{margin-bottom:16px}.field label{display:block;font-size:11px;color:var(--text-faint);margin-bottom:7px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.field .hint{font-size:12px;color:var(--text-faint);margin-top:6px;line-height:1.4}.input,.select{width:100%;background:var(--bg);border:1px solid var(--border-strong);color:var(--text);padding:12px 13px;font-size:16px;outline:none}.input:focus,.select:focus{border-color:var(--text)}.type-grid{display:grid;grid-template-columns:1fr 1fr}.type-card{border:1px solid var(--border);background:var(--bg);padding:15px 13px;text-align:left;color:var(--text);margin:0 -1px -1px 0}.type-card.active{border-color:var(--text);background:var(--bg-elev);position:relative;z-index:1;box-shadow:inset 0 0 0 1px var(--text)}.type-card .t{font-weight:700;font-size:14px}.type-card .d{color:var(--text-faint);font-size:12px;margin-top:3px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--border-strong);background:var(--bg);color:var(--text-dim);padding:8px 13px;font-size:13px;font-weight:600}.chip.active{border-color:var(--text);color:var(--bg);background:var(--text)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#17150f59;z-index:40;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--bg);width:100%;max-width:560px;border-top:1px solid var(--border-strong);max-height:92vh;overflow-y:auto;padding:10px 18px calc(26px + var(--safe-b));animation:slideup .2s ease}@keyframes slideup{0%{transform:translateY(24px)}to{transform:translateY(0)}}.sheet-handle{width:36px;height:3px;background:var(--border-strong);margin:8px auto 16px}.sheet-title{font-size:14px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin:0 0 20px}.empty{text-align:center;color:var(--text-faint);padding:44px 20px;font-size:14px;line-height:1.5}.banner{padding:11px 14px;font-size:13px;margin-bottom:14px;border:1px solid}.banner.error{background:#fbf2f1;color:var(--danger);border-color:#e6c9c7}.banner.warn{background:#faf6ea;color:var(--warn);border-color:#e6ddc4}.banner.info{background:var(--bg-elev);color:var(--text-dim);border-color:var(--border)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.row-between{display:flex;align-items:center;justify-content:space-between;gap:10px}.muted{color:var(--text-faint)}.token-line{display:flex;gap:8px;align-items:center;margin-bottom:8px}.token-line .input{flex:1}.link{color:var(--text);background:none;border:none;border-bottom:1px solid var(--text);padding:0 0 1px;font-size:13px;font-weight:600}
