:root{--bg: #f4f5f7;--card: #ffffff;--orange: #f97316;--orange-dark: #c2410c;--orange-light: #fff1e0;--blue: #2563eb;--blue-light: #eaf1ff;--gold: #b7791f;--gold-bg: #fdf3d4;--gold-strong: #e0a315;--text: #171b24;--text-dim: #70768a;--green: #16a34a;--green-bg: #dcfce7;--red: #dc2626;--red-bg: #fee2e2;--border: #eef0f4}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;letter-spacing:-.01em}#root{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);display:flex;flex-direction:column;position:relative}.page{flex:1;padding:18px 16px 104px;overflow-y:auto}.card{background:var(--card);border-radius:22px;padding:20px;margin-bottom:14px;box-shadow:0 1px 3px #171b240a,0 1px 1px #171b2408}.card[role=button]{cursor:pointer;transition:transform .1s ease}.card[role=button]:active{transform:scale(.98)}.card-blue{background:var(--blue-light);border:1.5px solid #bfdbfe}.card-gold{background:var(--gold-bg);border:1.5px solid #f3dd9e}h1{font-size:26px;font-weight:800;margin:2px 0 16px;letter-spacing:-.02em}h2{font-size:17px;font-weight:700;margin:0 0 12px;letter-spacing:-.01em}.eyebrow{font-size:11.5px;font-weight:700;color:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;margin:0}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.row+.row{border-top:1px solid var(--border);padding-top:12px;margin-top:12px}.icon-circle{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}.muted{color:var(--text-dim);font-size:13px}.amount-neg{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.amount-pos{color:var(--green);font-weight:700;font-variant-numeric:tabular-nums}button{font-family:inherit;cursor:pointer}.btn-primary{background:var(--orange);color:#fff;border:none;border-radius:999px;padding:15px 20px;font-size:16px;font-weight:700;width:100%;box-shadow:0 6px 16px #f9731647}.btn-outline{background:transparent;color:var(--orange);border:2px solid var(--orange);border-radius:999px;padding:12px 20px;font-size:15px;font-weight:700;width:100%}.btn-blue{background:var(--blue);color:#fff;border:none;border-radius:999px;padding:15px 20px;font-size:15px;font-weight:700;width:100%}.btn-gold{background:var(--gold-strong);color:#fff;border:none;border-radius:999px;padding:15px 20px;font-size:15px;font-weight:700;width:100%}.btn-ghost-icon{background:#f0f1f4;border:none;border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--text);flex-shrink:0}input,select,textarea{font-family:inherit;font-size:16px;padding:12px 14px;border-radius:13px;border:1.5px solid #e4e6ec;width:100%;background:#fafafa;color:var(--text)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange);background:#fff}label{font-size:12.5px;color:var(--text-dim);font-weight:700;letter-spacing:.02em;display:block;margin-bottom:6px;margin-top:14px}.tabbar{position:sticky;bottom:0;left:0;right:0;background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-around;padding:8px 4px calc(8px + env(safe-area-inset-bottom));z-index:10}.tab-item{background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:600;color:var(--text-dim);padding:4px 10px}.tab-item.active{color:var(--orange)}.tab-item .tab-icon{margin-bottom:1px}.fab{width:52px;height:52px;border-radius:50%;background:var(--orange);color:#fff;border:none;font-size:24px;font-weight:400;display:flex;align-items:center;justify-content:center;margin-top:-4px;box-shadow:0 3px 8px #f9731659}.segmented{display:flex;background:#eef0f4;border-radius:999px;padding:4px;gap:4px}.segmented button{flex:1;border:none;background:transparent;border-radius:999px;padding:10px;font-weight:700;font-size:14px;color:var(--text-dim)}.segmented button.active{background:#fff;color:var(--text);box-shadow:0 1px 4px #0000001a}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f121973;display:flex;align-items:flex-end;justify-content:center;z-index:50}.modal-sheet{background:var(--card);width:100%;max-width:480px;border-radius:26px 26px 0 0;padding:22px 18px calc(20px + env(safe-area-inset-bottom));max-height:88vh;overflow-y:auto}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.modal-header h2{margin:0;font-size:20px}.modal-close{background:#f0f1f4;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.progress-track{height:9px;background:#eef0f4;border-radius:999px;overflow:hidden;position:relative}.progress-fill{height:100%;background:var(--orange);border-radius:999px;transition:width .3s ease}.progress-marker{position:absolute;top:-3px;width:3px;height:15px;background:var(--text);border-radius:2px}.chip{display:inline-flex;align-items:center;gap:6px;background:#f0f1f4;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:500;border:2px solid transparent;white-space:nowrap}.chip.selected{border-color:var(--orange);background:var(--orange-light);color:var(--orange-dark);font-weight:700}.chip-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.empty-state{text-align:center;color:var(--text-dim);padding:28px 10px;font-size:14px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-weight:700;font-size:12.5px}.badge-pill{background:#eef0f4;color:var(--text-dim);font-weight:700;font-size:12.5px;padding:6px 12px;border-radius:999px}.stat-box{flex:1;background:#f7f7f9;border-radius:14px;padding:12px 14px}.stat-box strong{font-size:18px;display:block;margin-top:2px}.banner-gold{background:var(--gold-bg);border:1px solid #f0d989;color:#8a5a06;font-weight:700;font-size:14px;padding:13px 14px;border-radius:14px;display:flex;align-items:center;gap:8px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:10px}.cal-weekday{text-align:center;font-size:11px;font-weight:700;color:var(--text-dim);padding-bottom:4px}.cal-cell{aspect-ratio:1;border-radius:10px;background:#f5f6f8;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;color:var(--text-dim);gap:2px;padding:0;font-family:inherit}.cal-cell.empty{background:transparent}.cal-cell.real{background:var(--orange);color:#fff}.cal-cell.recurring{background:var(--blue);color:#fff}.cal-cell.today{box-shadow:0 0 0 2px var(--text) inset}.cal-legend{display:flex;gap:16px;margin-top:12px;justify-content:center}.cal-legend-item{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-dim);font-weight:600}.cal-legend-dot{width:10px;height:10px;border-radius:3px}.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.month-tile{border-radius:14px;padding:12px 8px;text-align:center;background:#fafbfc;border:1px solid #f0f1f4}.month-tile{color:var(--text-dim)}.month-tile .m-label{font-size:12px;font-weight:700;color:inherit;opacity:.75}.month-tile .m-total{font-size:13px;font-weight:800;margin-top:4px;color:inherit;opacity:.6}.month-tile.filled{border-color:transparent}.month-tile.filled .m-label,.month-tile.filled .m-total{opacity:1}.trend-wrap{position:relative}
