:root{--bg: #101012;--card: #1c1c1e;--card2: #262629;--stroke: #2c2c30;--text: #ffffff;--hint: #8e8e93;--accent: #ffdd2d;--on-accent: #141414;--blue: #4e9cff;--green: #32d074;--danger: #ff5c5c;--radius: 18px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:15px;overscroll-behavior:none;-webkit-font-smoothing:antialiased}button{font-family:inherit}.num{font-variant-numeric:tabular-nums}.app{display:flex;flex-direction:column;height:100%;max-width:640px;margin:0 auto}.screen{flex:1;overflow-y:auto;padding:8px 14px 28px;scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.header{display:flex;align-items:center;gap:10px;padding:12px 16px 8px}.header h1{font-size:22px;margin:0;flex:1;font-weight:800;letter-spacing:-.3px}.ledger-pill{background:var(--card);border:none;color:var(--text);font-size:13px;font-weight:500;padding:7px 12px;border-radius:20px;cursor:pointer;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ledger-pill:active{background:var(--card2)}.tabs{display:flex;background:#141416;border-top:1px solid var(--stroke);padding-bottom:env(safe-area-inset-bottom)}.tab{flex:1;background:none;border:none;color:var(--hint);font-size:10px;font-weight:500;padding:7px 0 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px}.tab svg{width:24px;height:24px}.tab.active{color:var(--accent)}.card{background:var(--card);border-radius:var(--radius);padding:14px 16px;margin:0 0 10px}.card.tight{padding:6px 16px}.card-title{font-size:13px;font-weight:600;color:var(--hint);margin:2px 0 10px;display:flex;justify-content:space-between;align-items:center}.card-title .link{color:var(--blue);cursor:pointer;font-weight:500}.row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;gap:8px}.muted{color:var(--hint)}.small{font-size:13px}.big{font-size:26px;font-weight:700;letter-spacing:-.5px}.hero-num{font-size:34px;font-weight:800;letter-spacing:-.8px;line-height:1.1}.right{text-align:right}.grow{flex:1;min-width:0}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.neg{color:var(--danger)}.pos{color:var(--green)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:10px}.stackbar{display:flex;gap:2px;height:10px;border-radius:5px;overflow:hidden}.stackbar span{min-width:3px}.bar-track{height:5px;border-radius:3px;background:var(--card2);margin-top:6px;overflow:hidden}.bar-fill{height:100%;border-radius:3px}.btn{background:var(--accent);color:var(--on-accent);border:none;border-radius:14px;padding:13px 16px;font-size:15px;font-weight:600;cursor:pointer;width:100%}.btn:active{opacity:.85}.btn:disabled{opacity:.4}.btn.secondary{background:var(--card2);color:var(--text)}.btn.danger{background:#ff5c5c29;color:var(--danger)}.btn.small{width:auto;padding:7px 12px;font-size:13px;font-weight:500;border-radius:10px}.icon-btn{background:var(--card);border:none;color:var(--text);width:34px;height:34px;border-radius:50%;font-size:17px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.icon-btn:active{background:var(--card2)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:50;display:flex;align-items:flex-end;justify-content:center}.sheet{background:#1e1e21;border-radius:22px 22px 0 0;width:100%;max-width:640px;max-height:90%;overflow-y:auto;padding:8px 16px calc(24px + env(safe-area-inset-bottom));scrollbar-width:none}.sheet::-webkit-scrollbar{display:none}.sheet-handle{width:38px;height:4px;border-radius:2px;background:var(--hint);opacity:.4;margin:6px auto 12px}.sheet h3{margin:2px 0 12px;font-size:18px;font-weight:700}.field{margin:12px 0}.field label{display:block;font-size:12px;color:var(--hint);margin-bottom:5px}input.input,select.input{width:100%;background:var(--card2);color:var(--text);border:none;border-radius:12px;padding:11px 13px;font-size:15px}input.input::placeholder{color:var(--hint)}.seg{display:flex;background:var(--card2);border-radius:12px;padding:3px;gap:3px}.seg button{flex:1;border:none;background:none;color:var(--hint);padding:8px 0;border-radius:10px;font-size:13px;font-weight:500;cursor:pointer}.seg button.active{background:var(--accent);color:var(--on-accent);font-weight:600}.tx-row{display:flex;align-items:center;gap:11px;padding:9px 0;cursor:pointer}.tx-row:active{opacity:.7}.tx-emoji{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.day-header{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--hint);margin:16px 4px 4px}.day-total{font-variant-numeric:tabular-nums}.badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;background:var(--card2);color:var(--hint);margin-left:6px}.checkbox{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}.fab{position:fixed;right:16px;bottom:calc(64px + env(safe-area-inset-bottom));width:54px;height:54px;border-radius:50%;background:var(--accent);color:var(--on-accent);border:none;font-size:28px;line-height:1;box-shadow:0 6px 20px #00000073;cursor:pointer;z-index:10;font-weight:500}.fab:active{transform:scale(.94)}.chipbar{display:flex;gap:7px;overflow-x:auto;padding:4px 0 10px;scrollbar-width:none}.chipbar::-webkit-scrollbar{display:none}.chip{border:none;background:var(--card);color:var(--hint);border-radius:18px;padding:7px 13px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}.chip.active{background:var(--blue);color:#fff}.empty{text-align:center;color:var(--hint);padding:44px 20px}.period-nav{display:flex;align-items:center;justify-content:center;gap:6px;margin:2px 0 12px}.period-nav .title{min-width:150px;text-align:center;font-size:16px;font-weight:700;text-transform:capitalize;cursor:pointer}.menu-row{display:flex;align-items:center;gap:13px;padding:13px 2px;cursor:pointer;border-bottom:1px solid var(--stroke);font-size:15px;font-weight:500}.menu-row:last-child{border-bottom:none}.menu-row .mi{width:36px;height:36px;border-radius:12px;background:var(--card2);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.menu-row .arrow{margin-left:auto;color:var(--hint);font-size:18px}.delta-up{color:var(--danger)}.delta-down{color:var(--green)}.sheet-backdrop{animation:fade .15s ease-out}.sheet{animation:slide .18s ease-out}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{transform:translateY(40px);opacity:.5}}
