*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:root{--bg:#fffdf8;--ink:#4a3f35;--ink-soft:#8a7d70;--green:#7fc97f;--green-deep:#57a05c;--yellow:#f5c542;--red:#f08a7a;--card:#ffffff;--line:#f0e8dc;--accent:#8ab4d8;--accent-deep:#6f9ac0;--chart-green:#57a05c;--chart-blue:#4c8bc4;--chart-amber:#b87d1f;--chart-coral:#d95a43}body,html{background:var(--bg);color:var(--ink);font-family:Hiragino Maru Gothic ProN,ヒラギノ丸ゴ ProN,Zen Maru Gothic,Rounded Mplus\ 1c,-apple-system,sans-serif;min-height:100svh}.app{max-width:480px;margin:0 auto;padding:16px 16px 96px}.appTitle{text-align:center;font-size:18px;letter-spacing:.2em;color:var(--ink-soft);padding:8px 0 4px}.entryBtn{display:block;width:100%;margin:12px 0 16px;padding:20px;font-size:22px;font-weight:700;font-family:inherit;color:#fff;background:var(--accent);border:none;border-radius:28px;box-shadow:0 5px 0 var(--accent-deep);cursor:pointer}.entryBtn:active{transform:translateY(3px);box-shadow:0 2px 0 var(--accent-deep)}.mainCard{background:var(--card);border:3px solid var(--line);border-radius:24px;padding:22px 16px 18px;text-align:center;box-shadow:0 4px 0 var(--line);margin-bottom:14px}.mainLabel{font-size:14px;color:var(--ink-soft)}.mainValue{font-size:48px;font-weight:700;line-height:1.25;letter-spacing:.02em;color:var(--green-deep)}.mainValue.minus{color:var(--red)}.mainSub{margin-top:6px;line-height:1.7}.compareRow,.mainSub{font-size:13px;color:var(--ink-soft)}.compareRow{display:flex;justify-content:center;gap:18px;margin-top:10px}.compareRow strong{color:var(--ink)}.alert{border-radius:16px;padding:12px 14px;font-size:14px;font-weight:700;margin-bottom:10px;border:2.5px solid}.alert.yellow{background:#fdf6e3;border-color:var(--yellow);color:#8a6d1a}.alert.red{background:#fdecea;border-color:var(--red);color:#a04030}.goalCard{background:var(--card);border:3px solid var(--line);border-radius:24px;padding:20px 18px;box-shadow:0 4px 0 var(--line);margin-bottom:14px}.goalTitle{font-size:15px;font-weight:700;margin-bottom:12px}.goalBarTrack{height:26px;background:var(--line);border-radius:999px;overflow:hidden}.goalBarFill{height:100%;background:var(--green);border-radius:999px;transition:width .6s ease;min-width:8px}.goalNumbers{display:flex;justify-content:space-between;margin-top:8px;font-size:13px;color:var(--ink-soft)}.goalNumbers strong{color:var(--ink);font-size:16px}.goalForecast{margin-top:12px;font-size:14px;text-align:center;color:var(--ink-soft)}.goalForecast strong{color:var(--ink);font-size:18px}.goalDone{margin-top:12px;font-size:15px;font-weight:700;text-align:center;color:var(--green-deep);background:#eef8ee;border-radius:14px;padding:12px}.methodNote{font-size:11px;color:var(--ink-soft);text-align:center;margin-top:6px}.statRow{display:flex;justify-content:space-between;align-items:baseline;padding:9px 2px;border-bottom:1.5px dashed var(--line);font-size:14px}.statRow:last-child{border-bottom:none}.statLabel{color:var(--ink-soft)}.statValue{font-weight:700;font-size:16px}.noteChip{font-size:12px;color:var(--ink-soft);background:var(--bg);border:1.5px dashed var(--line);border-radius:12px;padding:8px 12px;margin-top:10px;text-align:left;line-height:1.6}.nudge{display:flex;align-items:center;gap:10px;background:#eef4fa;border:2.5px solid var(--accent);border-radius:16px;padding:10px 12px;margin-bottom:12px;font-size:13px;color:var(--ink)}.nudgeBtn{font-size:13px;font-weight:700;color:#fff;background:var(--accent);border:none;border-radius:10px;padding:8px 12px;white-space:nowrap}.nudgeBtn,.nudgeClose{font-family:inherit;cursor:pointer}.nudgeClose{font-size:16px;color:var(--ink-soft);background:none;border:none;padding:4px}.sheetOverlay{position:fixed;inset:0;background:rgba(74,63,53,.35);display:flex;align-items:flex-end;justify-content:center;z-index:50}.sheet{background:var(--bg);width:100%;max-width:480px;border-radius:28px 28px 0 0;padding:20px 20px 32px;max-height:92svh;overflow-y:auto}.sheetMonthNav{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.sheetTitle{text-align:center;font-size:17px;font-weight:700}.sheetHint{text-align:center;font-size:12px;color:var(--ink-soft);margin-bottom:10px}.monthNavBtn{font-size:20px;font-family:inherit;padding:8px 18px;background:var(--card);border:2.5px solid var(--line);border-radius:14px;color:var(--ink);cursor:pointer}.monthNavBtn:disabled{opacity:.3}.sectionLabel{font-size:14px;font-weight:700;margin:18px 0 4px;color:var(--ink)}.fieldLabel{font-size:13px;color:var(--ink-soft);margin:12px 0 4px}.moneyInput{width:100%;font-size:26px;font-weight:700;font-family:inherit;text-align:right;padding:10px 14px;border:3px solid var(--line);border-radius:16px;background:var(--card);color:var(--ink)}.moneyInput:focus{outline:none;border-color:var(--accent)}.moneyInput.small{font-size:20px;padding:8px 12px;border-width:2.5px}.ghostBtn{display:inline-block;font-family:inherit;font-size:12px;color:var(--ink-soft);background:none;border:none;padding:4px 2px;cursor:pointer;-webkit-text-decoration:underline dashed;text-decoration:underline dashed;text-underline-offset:3px}.catField{margin-bottom:4px}.diffNote{font-size:13px;font-weight:700;border-radius:12px;padding:10px 12px;margin-top:10px}.diffNote.warn{background:#fdf6e3;color:#8a6d1a;border:2px solid var(--yellow)}.diffNote.ok{background:#eef8ee;color:var(--green-deep);border:2px solid var(--green)}.textInput{width:100%;font-size:15px;font-family:inherit;padding:12px;border:2.5px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink)}.textInput:focus{outline:none;border-color:var(--accent)}.sheetActions{display:flex;gap:12px;margin-top:22px}.saveBtn{flex:2 1;padding:16px;font-size:18px;font-weight:700;font-family:inherit;color:#fff;background:var(--green);border:none;border-radius:20px;box-shadow:0 4px 0 #63a863;cursor:pointer}.saveBtn:active{transform:translateY(2px);box-shadow:0 2px 0 #63a863}.cancelBtn{flex:1 1;padding:16px;font-size:16px;font-family:inherit;color:var(--ink-soft);border:2.5px solid var(--line);border-radius:20px;cursor:pointer}.cancelBtn,.chartCard{background:var(--card)}.chartCard{border:3px solid var(--line);border-radius:20px;padding:16px 8px 10px;margin-bottom:14px;box-shadow:0 4px 0 var(--line)}.chartTitle{font-size:15px;font-weight:700;margin:0 8px 10px}.chipRow{display:flex;flex-wrap:wrap;gap:8px;margin:0 8px 12px}.chip{padding:8px 14px;font-size:13px;font-family:inherit;background:var(--card);color:var(--ink);border:2px dashed var(--line);border-radius:999px;cursor:pointer}.chip.selected{border:2px solid var(--accent);background:#eef4fa;font-weight:700}.emptyText{text-align:center;color:var(--ink-soft);padding:28px 12px;font-size:14px;line-height:1.8}.settingCard{background:var(--card);border:3px solid var(--line);border-radius:18px;padding:16px;margin-bottom:14px}.settingTitle{font-size:15px;font-weight:700;margin-bottom:10px}.settingRow{display:flex;gap:10px;align-items:center;margin-bottom:10px}.settingRowLabel{flex:1 1;font-size:13px;color:var(--ink-soft)}.settingInput{width:130px;font-size:18px;font-weight:700;font-family:inherit;text-align:right;padding:8px 10px;border:2.5px solid var(--line);border-radius:12px;color:var(--ink);background:var(--card)}.settingInput:focus{outline:none;border-color:var(--accent)}.settingTextInput{flex:1 1;font-size:14px;font-family:inherit;padding:10px;border:2.5px solid var(--line);border-radius:12px;color:var(--ink);background:var(--card)}.settingTextInput:focus{outline:none;border-color:var(--accent)}.smallBtn{padding:10px 16px;font-size:14px;font-weight:700;font-family:inherit;color:#fff;background:var(--green);border:none;border-radius:14px;box-shadow:0 3px 0 #63a863;cursor:pointer;white-space:nowrap}.catRow{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1.5px dashed var(--line)}.catName{flex:1 1;font-size:15px}.catDelBtn,.catEditBtn{font-size:13px;font-family:inherit;padding:6px 12px;border-radius:10px;border:2px solid var(--line);background:var(--card);color:var(--ink-soft);cursor:pointer}.catDelBtn{color:var(--red)}.addCatRow{display:flex;gap:8px;margin-top:12px}.exportBtn{font-family:inherit;color:#fff;background:var(--accent);border:none;border-radius:16px;box-shadow:0 3px 0 var(--accent-deep)}.exportBtn,.importLabel{width:100%;padding:14px;font-size:15px;font-weight:700;cursor:pointer}.importLabel{display:block;margin-top:10px;text-align:center;color:var(--accent-deep);background:var(--card);border:2.5px dashed var(--accent);border-radius:16px}.noteText{font-size:12px;color:var(--ink-soft);margin-top:10px;line-height:1.7}.tabBar{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:2.5px solid var(--line);display:flex;justify-content:center;z-index:40;padding-bottom:env(safe-area-inset-bottom)}.tabBarInner{display:flex;width:100%;max-width:480px}.tabBtn{flex:1 1;padding:12px 0 10px;font-size:12px;font-family:inherit;background:none;border:none;color:var(--ink-soft);cursor:pointer}.tabBtn.active{color:var(--accent-deep);font-weight:700}.tabIcon{display:block;font-size:22px;margin-bottom:2px}