*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:root{--bg:#fffdf8;--ink:#4a3f35;--ink-soft:#8a7d70;--green:#7fc97f;--yellow:#f5c542;--red:#f08a7a;--card:#ffffff;--line:#f0e8dc;--accent:#f5a3b5}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}.remainCard{background:var(--card);border:3px solid var(--line);border-radius:24px;padding:24px 16px 20px;text-align:center;box-shadow:0 4px 0 var(--line)}.remainLabel{font-size:14px;color:var(--ink-soft)}.remainValue{font-size:56px;font-weight:700;line-height:1.2;letter-spacing:.02em}.remainValue.over{color:var(--red)}.remainSub{font-size:13px;color:var(--ink-soft);margin-top:4px}.gaugeWrap{margin:16px 8px 4px}.paceText{margin-top:12px;font-size:14px;color:var(--ink-soft)}.paceText strong{color:var(--ink);font-size:16px}.recordBtn{display:block;width:100%;margin-top:20px;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 #d98296;cursor:pointer}.recordBtn:active{transform:translateY(3px);box-shadow:0 2px 0 #d98296}.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:90svh;overflow-y:auto}.sheetTitle{text-align:center;font-size:16px;font-weight:700;margin-bottom:16px}.fieldLabel{font-size:13px;color:var(--ink-soft);margin:14px 0 6px}.amountInput{width:100%;font-size:36px;font-weight:700;font-family:inherit;text-align:center;padding:12px;border:3px solid var(--line);border-radius:18px;background:var(--card);color:var(--ink)}.amountInput:focus{outline:none;border-color:var(--accent)}.catGrid{display:flex;flex-wrap:wrap;gap:10px}.catBtn{padding:12px 16px;font-size:15px;font-family:inherit;background:var(--card);color:var(--ink);border:2.5px dashed var(--line);border-radius:999px;cursor:pointer}.catBtn.selected{border:2.5px solid var(--accent);background:#fdeef2;font-weight:700}.dateInput,.textInput{width:100%;font-size:16px;font-family:inherit;padding:12px;border:2.5px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink)}.dateInput:focus,.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:disabled{background:#d8d2c8;box-shadow:0 4px 0 #c2bcb2}.cancelBtn{flex:1 1;padding:16px;font-size:16px;color:var(--ink-soft);background:var(--card);border:2.5px solid var(--line);border-radius:20px}.cancelBtn,.deleteBtn{font-family:inherit;cursor:pointer}.deleteBtn{width:100%;margin-top:12px;padding:12px;font-size:14px;color:var(--red);background:none;border:none;text-decoration:underline}.monthNav{display:flex;align-items:center;justify-content:space-between;margin:8px 0 14px}.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}.monthTitle{font-size:18px;font-weight:700}.monthSummary{background:var(--card);border:3px solid var(--line);border-radius:18px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.achieved{font-size:15px}.recordList{display:flex;flex-direction:column;gap:8px}.recordItem{width:100%;display:flex;align-items:center;gap:12px;background:var(--card);border:2.5px solid var(--line);border-radius:16px;padding:12px 14px;font-family:inherit;font-size:15px;color:var(--ink);cursor:pointer;text-align:left}.recordDate{color:var(--ink-soft);font-size:13px;min-width:44px}.recordCat{flex:1 1}.recordMemo{display:block;font-size:12px;color:var(--ink-soft)}.recordAmount{font-weight:700;font-size:16px}.emptyText{text-align:center;color:var(--ink-soft);padding:32px 0;font-size:14px}.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}.budgetRow{display:flex;gap:10px;align-items:center}.budgetInput{flex:1 1;font-size:22px;text-align:right;padding:10px;border:2.5px solid var(--line);border-radius:14px;color:var(--ink)}.budgetInput,.smallBtn{font-weight:700;font-family:inherit}.smallBtn{padding:10px 16px;font-size:14px;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:#8ab4d8;border:none;border-radius:16px;box-shadow:0 3px 0 #6f9ac0}.exportBtn,.importLabel{width:100%;padding:14px;font-size:15px;font-weight:700;cursor:pointer}.importLabel{display:block;margin-top:10px;text-align:center;color:#6f9ac0;background:var(--card);border:2.5px dashed #8ab4d8;border-radius:16px}.noteText{font-size:12px;color:var(--ink-soft);margin-top:10px;line-height:1.6}.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);font-weight:700}.tabIcon{display:block;font-size:22px;margin-bottom:2px}