:root{--bg:#e8e8ed;--card:#fff;--card-2:#f2f2f7;--text:#0c0c0f;--muted:#7b7f89;--accent:#0a84ff;--danger:#ff3b30;--positive:#22c55e;--shadow:0 8px 20px #0a0a0f1a;--radius-card:22px;--radius-subcard:16px;--radius-pill:999px;--radius-ui-control:999px;--fs-title:20px;--fs-headline:17px;--fs-subheadline:15px;--fs-caption:13px;--fs-balance:36px;--fw-title:700;--fw-headline:600;--fw-subheadline:500}html,body,#root{width:100%;height:100%;min-height:var(--app-vh,100dvh);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;margin:0;overflow:hidden}*{box-sizing:border-box}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:SF Pro Text,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body.ios-fullscreen-lock{width:100%;position:fixed;inset:0;overflow:hidden;padding-top:0!important}[data-theme=dark]{--bg:#17181c;--card:#2a2b31;--card-2:#3a3b43;--text:#f4f5f8;--muted:#9ca0aa;--shadow:0 8px 20px #00000047}.app-shell{width:100%;height:100%;min-height:var(--app-vh,100dvh);background:var(--bg);justify-content:center;display:flex}.phone-frame{width:min(100vw,430px);height:100%;min-height:var(--app-vh,100dvh);background:var(--bg);position:relative;overflow:hidden}.main-scroll,.screen-scroll{height:100%;padding:calc(env(safe-area-inset-top) + 8px) 16px calc(env(safe-area-inset-bottom) + 170px);-webkit-overflow-scrolling:touch;overscroll-behavior-y:none;overflow:hidden auto}.main-scroll{padding-top:calc(env(safe-area-inset-top) + 156px);padding-bottom:calc(env(safe-area-inset-bottom) + 122px)}.main-scroll.scroll-locked{overflow-y:hidden}.row{align-items:center;display:flex}.spacer{flex:1}.icon-circle{aspect-ratio:1;border-radius:var(--radius-ui-control);background:var(--card);width:46px;height:46px;box-shadow:var(--shadow);color:var(--text);cursor:pointer;border:none;flex:none;justify-content:center;align-items:center;display:inline-flex}.zero-badge{border-radius:var(--radius-pill);background:var(--card);min-height:46px;box-shadow:var(--shadow);justify-content:center;align-items:center;gap:0;padding:0 18px;display:inline-flex}.zero-char{letter-spacing:0;color:color-mix(in srgb, var(--muted) 58%, transparent);margin:0;font-size:24px;font-weight:800;line-height:1}.zero-char.zero-sep{margin:0 3px}.zero-char.on{color:var(--text)}.zero-char.on.neg{color:var(--danger)}.balance-card{border-radius:var(--radius-card);background:var(--card);box-shadow:var(--shadow);top:calc(env(safe-area-inset-top) + 70px);z-index:19;width:min(100vw - 32px,398px);margin-top:0;padding:12px 14px;position:fixed;left:50%;transform:translate(-50%)}.main-scroll>.row{top:calc(env(safe-area-inset-top) + 8px);z-index:20;filter:drop-shadow(0 6px 10px #0a0a0f1f);background:0 0;width:min(100vw - 32px,398px);padding-bottom:8px;position:fixed;left:50%;transform:translate(-50%)}.balance-title{letter-spacing:0;margin-top:8px;font-family:ui-rounded,Avenir Next Rounded,SF Pro Rounded,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:32px;font-weight:700;line-height:1.06}.balance-title.neg{color:var(--danger)}.balance-head{align-items:center;gap:8px;display:flex}.balance-head h3{white-space:nowrap;margin:0;font-size:15px;font-weight:600;line-height:1.08}.period-btn{color:var(--accent);white-space:nowrap;text-align:right;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;outline:none;margin-left:auto;padding:0;font-size:15px;font-weight:600;line-height:1.05}.period-btn:active,.period-btn:focus-visible{box-shadow:none;background:0 0;outline:none}.card-list{flex-direction:column;gap:12px;margin-top:12px;display:flex}.project-card{background:var(--card);box-shadow:var(--shadow);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:pan-y;border:none;border-radius:20px;align-items:center;gap:8px;min-height:64px;padding:10px 12px;display:flex}.subproject-wrap{flex-direction:column;gap:12px;margin-left:24px;display:flex}.subproject-card{border-radius:var(--radius-subcard);background:var(--card);box-shadow:var(--shadow);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:pan-y;border:none;align-items:center;gap:8px;min-height:52px;padding:9px 11px;display:flex}.emoji{justify-content:center;align-items:center;min-width:24px;min-height:24px;font-size:20px;line-height:1;display:inline-flex}.subproject-card .emoji{font-size:18px}.title-text{text-overflow:ellipsis;white-space:nowrap;font-size:19px;font-weight:600;line-height:1.08;overflow:hidden}.subproject-card .title-text{font-size:var(--fs-headline)}.project-card .title-text,.subproject-card .title-text{color:var(--text);font-size:17px}.value-pos{color:var(--positive);font-weight:var(--fw-title);font-size:var(--fs-title);white-space:nowrap;line-height:1.08}.value-neg{color:var(--danger);font-weight:var(--fw-title);font-size:var(--fs-title);white-space:nowrap;line-height:1.08}.value-zero{color:var(--text);font-weight:var(--fw-title);font-size:var(--fs-title);white-space:nowrap;line-height:1.08}.subproject-card .value-pos,.subproject-card .value-neg,.subproject-card .value-zero{font-size:var(--fs-headline)}.project-card .value-pos,.project-card .value-neg,.project-card .value-zero{font-size:18px}.project-side{justify-content:center;align-items:flex-end;min-width:max-content;min-height:44px;padding-bottom:12px;display:flex;position:relative}.project-side .chevron-btn{width:34px;min-width:34px;height:34px;position:absolute;bottom:-14px;right:0}.chevron-btn{color:var(--muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;outline:none;justify-content:center;align-items:center;width:24px;min-width:24px;margin-left:0;padding:0;display:inline-flex}.chevron-btn:active,.chevron-btn:focus-visible{box-shadow:none;background:0 0;outline:none}.bottom-layer{z-index:30;align-items:center;gap:12px;width:min(100vw,430px);padding:0 16px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}@supports (height:100dvh){html,body,#root,.app-shell,.phone-frame{height:100dvh;min-height:100dvh}}.bottom-menu{border-radius:var(--radius-pill);background:var(--card);height:74px;box-shadow:var(--shadow), 0 2px 8px #0a0a0f2e;flex:1;justify-content:space-between;align-items:center;margin-bottom:0;padding:0 10px;display:flex}.tab-btn{width:64px;height:70px;color:var(--text);-webkit-tap-highlight-color:transparent;cursor:pointer;background:0 0;border:none;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:color .14s;display:flex}.tab-label{letter-spacing:.01em;font-size:10px;font-weight:600;line-height:1}.tab-btn.active{color:var(--accent);box-shadow:none;background:0 0}.tab-btn:active,.tab-btn:focus-visible{box-shadow:none;background:0 0;outline:none}.plus-btn{background:var(--accent);color:#fff;cursor:pointer;width:64px;height:64px;box-shadow:var(--shadow);border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.plus-icon{transition:transform .2s}.plus-btn.open .plus-icon{transform:rotate(45deg)}.quick-actions{right:16px;bottom:calc(env(safe-area-inset-bottom) + 86px);z-index:32;flex-direction:column;gap:8px;display:flex;position:absolute}.quick-action{border-radius:var(--radius-ui-control);color:#fff;min-width:104px;height:40px;font-size:var(--fs-headline);font-weight:var(--fw-headline);cursor:pointer;box-shadow:var(--shadow);background:#111;border:none;justify-content:center;align-items:center;gap:10px;padding:0 16px;display:inline-flex}[data-theme=dark] .quick-action{color:#000;background:#fff}.overlay{z-index:40;background:#0000001f;position:absolute;inset:0}.sheet{background:var(--bg);z-index:41;max-height:100%;box-shadow:none;border-radius:0;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.sheet.full{border-radius:0;inset:0}.sheet-handle{display:none}.sheet-head{z-index:3;padding:calc(env(safe-area-inset-top) + 8px) 16px 8px;background:var(--bg);align-items:center;gap:10px;min-height:46px;display:flex;position:sticky;top:0}.sheet-action-slot{flex:1;align-items:center;min-width:46px;display:flex}.sheet-action-slot.right{justify-content:flex-end}.sheet-title{font-size:18px;line-height:1.06;font-weight:var(--fw-title);text-align:center;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 128px);margin:0;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.sheet-title-node{pointer-events:auto;justify-content:center;display:flex}.sheet-back-btn{border-radius:var(--radius-ui-control);background:var(--card);width:46px;height:46px;box-shadow:var(--shadow);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;display:inline-flex}.sheet-back-icon{transform:translate(-2px)}.sheet-action-pill{border-radius:var(--radius-ui-control);background:var(--card);min-height:46px;box-shadow:var(--shadow);color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap;border:none;justify-content:center;align-items:center;padding:0 16px;font-size:15px;font-weight:600;line-height:1;display:inline-flex}.text-btn{color:var(--accent);font-size:var(--fs-headline);line-height:1;font-weight:var(--fw-headline);cursor:pointer;background:0 0;border:none;padding:0}.text-btn.danger{color:var(--danger)}.text-btn:disabled{opacity:.45}.sheet-body{padding:8px 16px calc(env(safe-area-inset-bottom) + 16px);-webkit-overflow-scrolling:touch;overflow-y:auto}.form-card{border-radius:var(--radius-card);background:var(--card);box-shadow:var(--shadow);padding:14px}.field,.select,.textarea{background:var(--card-2);width:100%;color:var(--text);border-radius:var(--radius-ui-control);min-height:48px;font-size:var(--fs-headline);font-weight:var(--fw-headline);border:none;outline:none;padding:0 14px}.field.center{text-align:center}.amount-field{position:relative}.amount-input{text-align:right;padding-right:28px}.amount-currency{color:var(--muted);font-size:var(--fs-headline);pointer-events:none;font-weight:600;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.textarea{resize:none;min-height:96px;padding-top:12px;padding-bottom:12px}.split{gap:8px;display:flex}.segment{border-radius:var(--radius-ui-control);min-height:42px;font-size:var(--fs-headline);font-weight:var(--fw-headline);background:var(--card-2);color:var(--text);cursor:pointer;border:none;flex:1}.segment.active{background:var(--accent);color:#fff}.pull-refresh-spinner{border:2px solid color-mix(in srgb, var(--muted) 60%, transparent);border-top-color:color-mix(in srgb, var(--muted) 85%, var(--text) 15%);border-radius:50%;width:28px;height:28px}.pull-refresh-spinner.spin{animation:.8s linear infinite pullSpin}@keyframes pullSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.inline-row{align-items:center;gap:8px;display:flex}.tag{border-radius:var(--radius-pill);font-size:var(--fs-caption);font-weight:var(--fw-headline);color:var(--muted);background:var(--card-2);padding:5px 10px}.card-divider{background:color-mix(in srgb, var(--muted) 22%, transparent);height:1px;margin-left:12px}.notice{font-size:var(--fs-subheadline);color:var(--muted);line-height:1.35}.screen-title{z-index:20;background:var(--bg);min-height:calc(env(safe-area-inset-top) + 52px);padding:calc(env(safe-area-inset-top) + 4px) 16px 8px;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:sticky;top:0}.screen-title .title{font-size:var(--fs-title);line-height:1.06;font-weight:var(--fw-title);text-align:center}.event-card{background:var(--card);box-shadow:var(--shadow);cursor:pointer;border:none;border-radius:20px;flex-direction:column;gap:8px;padding:12px;display:flex}.event-card .title-text{color:var(--text);font-size:17px}.event-card .value-pos,.event-card .value-neg,.event-card .value-zero{font-size:18px}.event-card .small{font-size:var(--fs-caption)}.event-note{color:var(--muted);font-size:var(--fs-subheadline);white-space:pre-wrap;line-height:1.35}.placeholder{color:var(--muted);font-size:var(--fs-headline);font-weight:var(--fw-headline);padding:10px 12px}.drop-list{border-radius:var(--radius-card);background:var(--card);box-shadow:var(--shadow);overflow:hidden}.archive-sheet .project-card{background:var(--card);width:100%;min-height:64px;box-shadow:var(--shadow);padding:10px 12px}.archive-sheet .subproject-card{background:var(--card);width:100%;min-height:52px;box-shadow:var(--shadow);padding:9px 11px}.archive-sheet .emoji{filter:grayscale()saturate(0)}.archive-sheet .title-text{color:color-mix(in srgb, var(--text) 72%, var(--muted) 28%)}.archive-sheet .value-neg{color:color-mix(in srgb, var(--text) 68%, var(--muted) 32%)}.drop-item{white-space:nowrap;cursor:pointer;align-items:center;gap:8px;min-height:42px;padding:0 14px;font-size:15px;font-weight:500;display:flex}.drop-item.sel{color:var(--accent);font-weight:700}.drop-check-icon{margin-left:auto}.parent-options-list{background:var(--card-2);box-shadow:none}.parent-option{width:100%}.parent-option.sel{font-weight:700}.dropdown{position:relative}.dropdown-panel{z-index:50;width:max-content;min-width:176px;position:absolute;top:calc(100% + 6px);right:0}.btn-ghost{color:var(--text);cursor:pointer;background:0 0;border:none}.event-card.btn-ghost{background:var(--card);box-shadow:var(--shadow)}.small{font-size:var(--fs-subheadline)}.yesterday-btn{background:var(--card-2);width:auto;color:var(--muted);font-size:var(--fs-subheadline);font-weight:var(--fw-headline);border-radius:var(--radius-ui-control);border:none;justify-content:center;align-items:center;padding:0 12px;display:inline-flex}.filters-sheet .segment,.filters-sheet .field,.filters-sheet .select{border-radius:var(--radius-ui-control);height:46px;min-height:46px}.form-section-title{font-size:var(--fs-subheadline);color:var(--muted);line-height:1.2;font-weight:var(--fw-headline);margin-bottom:8px}.empty-state{text-align:center;color:var(--muted);margin-top:28px}.empty-state-icon{line-height:1}.empty-state-title{font-size:var(--fs-title);line-height:1.2;font-weight:var(--fw-title);color:var(--text);margin-top:10px}.empty-state-text{font-size:var(--fs-subheadline);margin-top:8px;padding:0 16px;line-height:1.35}.hint-banner{border-radius:var(--radius-ui-control);background:var(--card);box-shadow:var(--shadow);text-align:center;font-size:var(--fs-headline);font-weight:var(--fw-headline);margin-top:10px;padding:12px}@media (width<=380px){:root{--fs-title:18px;--fs-headline:16px;--fs-subheadline:14px;--fs-balance:32px}.icon-circle{width:44px;height:44px}.tab-btn{width:62px;height:62px}}
