:root{--bg:#ffffff;--card:#f4f4f2;--soft:#e9e9e6;--line:#e4e4e0;--ink:#111111;--sub:#6b6b6b;--accent:#9fe870;--accent-ink:#111111;--accent-soft:#f4f4f2;--accent-text:#111111;--dark:#111111;--on-dark:#ffffff;--good:#111111;--good-soft:#f4f4f2;--bad:#cb272f;--bad-soft:#f8e4e3;--warn:#f2d4d5;--bad-bar:#e8a5a8;--ice:#0b4c72}@media (prefers-color-scheme:dark){:root{--bg:#111111;--card:#1c1c1c;--soft:#262626;--line:#2e2e2e;--ink:#f2f2f2;--sub:#a3a3a3;--accent-soft:#1c1c1c;--accent-text:#f2f2f2;--dark:#262626;--good:#f2f2f2;--good-soft:#1c1c1c;--bad:#ef6b70;--bad-soft:#3a1c1d;--warn:#4a2a2b;--bad-bar:#8a3f43;--ice:#8cc0e6}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Pretendard Variable,Pretendard,system-ui,-apple-system,sans-serif;letter-spacing:-.01em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.5;-webkit-tap-highlight-color:transparent}button,input{font:inherit;color:inherit}button{cursor:pointer}.app{max-width:440px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:16px 16px 0}.screen{flex:1 1;display:flex;flex-direction:column;padding-bottom:16px}.spacer{flex:1 1}.btn{display:block;width:100%;border:0;padding:15px;font-weight:800;font-size:16px;background:var(--ink);color:var(--bg);text-align:center;margin-top:10px}.btn,.btn .plus{border-radius:9999px}.btn .plus{display:inline-grid;place-items:center;width:22px;height:22px;background:var(--accent);color:#111;font-weight:900;margin-right:8px;line-height:1;vertical-align:-3px}.btn:disabled{opacity:.45;cursor:default}.btn.ghost{background:var(--bg);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.btn.small{padding:10px;font-size:14px}.link{background:none;border:0;color:var(--sub);text-decoration:underline;font-size:13px;padding:8px}.big{font-size:64px;line-height:1.1;margin:28px 0 12px}.big,.q{text-align:center}.q{font-size:26px;font-weight:900;margin:4px 0;line-height:1.3;letter-spacing:-.03em}.qs{font-size:14px;color:var(--sub);text-align:center;margin:6px 0 16px}.steps{display:flex;gap:5px;margin:4px 0 8px}.steps i{flex:1 1;height:6px;border-radius:9999px;background:var(--card)}.steps i.on{background:var(--ink)}.back{background:none;border:0;font-size:22px;padding:0 4px 4px;align-self:flex-start;color:var(--sub)}.amount{display:flex;align-items:baseline;justify-content:center;gap:4px;border-bottom:2px solid var(--ink);padding:8px 0;margin:8px 0}.amount,.amount input{font-size:32px;font-weight:900}.amount input{min-width:1ch;max-width:85%;text-align:right;border:0;background:transparent;outline:none;padding:0}.amount input::placeholder{color:var(--line)}.cell input{width:100%;text-align:right;border:0;border-radius:10px;background:var(--bg);padding:8px 10px;font-weight:700;outline:none}.cell input:focus{box-shadow:0 0 0 2px var(--ink)}.hint{background:var(--accent-soft);border-radius:12px;padding:10px 12px;font-size:13px;margin-top:12px}.chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:8px}.chips span{background:var(--soft);border-radius:99px;padding:4px 10px;font-size:12px;color:var(--sub)}.choice{display:block;width:100%;text-align:left;background:var(--card);border:2px solid transparent;border-radius:16px;padding:14px 16px;margin-top:10px}.choice b{display:block;font-size:16px}.choice span{color:var(--sub);font-size:13px}.choice:hover{border-color:var(--accent-text)}.card{background:var(--card);border-radius:16px;padding:16px;margin-top:10px}.card.hero{border-radius:20px;padding:20px 18px 16px}.card.hero .remain .n{color:var(--ink)}.card.hero .bar{background:var(--bg)}.card h3{margin:0 0 10px;font-size:15px;color:var(--ink);font-weight:800}.budget-row{display:grid;grid-template-columns:1fr 120px;align-items:center;grid-gap:8px;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}.budget-row:last-child{border-bottom:0}.budget-row .nm{font-size:15px;font-weight:700}.budget-row .nm small{display:block;font-weight:400;font-size:11px;color:var(--sub)}.budget-row.with-x{grid-template-columns:minmax(0,1fr) 108px 26px}.budget-row>*{min-width:0}.budget-row .nm{display:block}.budget-row .nm:has(.name-input){display:flex;align-items:center;gap:6px}.name-input{flex:1 1;min-width:0;border:0;border-bottom:1px dashed var(--line);background:transparent;font-weight:700;font-size:15px;padding:4px 0;outline:none}.name-input:focus{border-bottom-color:var(--accent-text)}.budget-row .x,.x{background:none;border:0;color:var(--sub);font-size:15px;padding:4px}.chip-btn{background:var(--bg);border:1px solid var(--line);border-radius:99px;padding:6px 11px;font-size:13px}.chip-btn:hover{border-color:var(--accent-text)}.add-line{display:block;width:100%;background:none;border:0;color:var(--accent-text);font-weight:700;padding:12px 0 10px;text-align:left}.add-box,.add-line{border-top:1px dashed var(--line)}.add-box{padding:10px 0}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);grid-gap:4px;gap:4px}.emoji-grid button{background:var(--soft);border:2px solid transparent;border-radius:10px;font-size:20px;padding:4px 0}.emoji-grid button.on{border-color:var(--accent-text);background:var(--accent-soft)}.card h3.with-link{display:flex;justify-content:space-between;align-items:center}.card h3.with-link button{background:var(--bg);color:var(--ink);border:0;border-radius:99px;padding:4px 10px;font-size:12px;font-weight:700}.backup-bar{display:block;width:100%;text-align:left;background:var(--accent-soft);color:var(--ink);border:0;border-radius:12px;padding:9px 12px;font-size:13px;margin:6px 0 2px}.nav{background:var(--card);border:0;border-radius:9999px;padding:4px 12px;font-size:13px}.nav:disabled{opacity:.3}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:3px;gap:3px;margin-top:6px}.cal-h{text-align:center;font-size:11px;color:var(--sub);padding:2px 0}.cal-h.sun{color:var(--bad)}.cal-h.sat{color:var(--ice)}.cal-d{display:flex;flex-direction:column;align-items:center;gap:0;min-height:54px;padding:3px 0 2px;background:var(--bg);border:2px solid transparent;border-radius:10px;font-size:11px}.cal-d.out{background:transparent;opacity:.3}.cal-d.on{border-color:var(--accent-text);background:var(--accent-soft)}.cal-d.today .n{background:var(--ink);color:var(--bg);border-radius:99px;padding:0 5px}.cal-d .n{font-weight:700;font-size:11px;line-height:16px}.cal-d .e{font-size:14px;line-height:18px;height:18px}.cal-d .a{font-size:9.5px;color:var(--sub);letter-spacing:-.3px;white-space:nowrap}.cal-d .a.bad{color:var(--bad);font-weight:700}.cal-detail{margin-top:10px;border-top:1px solid var(--line);padding-top:8px;font-size:14px}.tag-ns{margin-left:6px;font-size:12px;background:var(--good-soft);color:var(--good);border-radius:99px;padding:1px 8px}.steps-list{margin:4px 0 0;padding-left:20px;font-size:13px;line-height:1.7}.step-name{font-size:13px;color:var(--sub);font-weight:700;margin:2px 0 0}.step-btns{display:flex;gap:8px}.step-btns .btn{flex:1 1}.verdict{background:var(--good-soft);color:var(--good);border-radius:14px;padding:12px;text-align:center;font-weight:900;font-size:16px}.verdict.bad{background:var(--bad-soft);color:var(--bad)}.grade{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:6px;gap:6px;margin-top:10px}.grade div{background:var(--bg);border-radius:12px;padding:8px 4px;text-align:center;font-size:11px;color:var(--sub)}.grade div em{display:block;font-style:normal;font-size:24px}.grade div b{display:block;color:var(--ink)}.ctable,.grade div b{font-size:13px}.ct-h,.ct-r{display:grid;grid-template-columns:minmax(0,1.5fr) 1fr 1fr 1fr;grid-gap:4px;gap:4px;align-items:center;padding:7px 0}.ct-h{font-size:11px;color:var(--sub);border-bottom:2px solid var(--line)}.ct-r{border-bottom:1px solid var(--line)}.ct-h span:not(:first-child),.ct-r>span:not(:first-child){text-align:right}.up{color:var(--bad)}.dn{color:var(--ice)}.why{grid-column:1/-1;display:flex;flex-direction:column;gap:3px}.reflect small,.why small{display:block;font-size:12px;color:var(--sub);margin-bottom:4px}.why-in{width:100%;border:0;border-radius:8px;background:var(--accent-soft);padding:7px 10px;font-size:12px;outline:none}.why-in:focus{box-shadow:0 0 0 2px var(--ink)}.reflect{display:block;margin-top:10px}.reflect b{display:block;font-size:14px;margin-bottom:2px}.reflect textarea{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:9px 11px;font-size:14px;resize:vertical;outline:none}.reflect textarea:focus{border-color:var(--accent-text)}.share{background:var(--dark);color:#fff;border-radius:20px;padding:18px;text-align:center;margin-top:12px}.share .s0{font-size:12px;opacity:.9;font-weight:700}.share .s1{font-size:52px;line-height:1.2}.share .s2{font-weight:900;font-size:22px;color:var(--accent);letter-spacing:-.03em}.share .s3{font-size:12px;opacity:.95;margin-top:4px}.kv{margin:6px 0;font-size:14px}.kv b{margin-right:6px}@media (min-width:900px){.app.wide{max-width:1000px}.review-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 16px;gap:0 16px;align-items:start}.app.wide .tabs{margin:0}}.tip{font-size:12px;color:var(--sub);margin:8px 2px 0}h3.sec{font-size:15px;margin:20px 0 8px}.calc{display:grid;grid-template-columns:1fr auto;grid-row-gap:2px;row-gap:2px;font-size:13px;color:var(--sub);padding-bottom:8px;border-bottom:1px solid var(--line)}.calc span:nth-child(2n){text-align:right}.sum{display:flex;justify-content:space-between;align-items:baseline;font-weight:900;font-size:15px;padding-top:10px}.sum.good{color:var(--good)}.sum.bad{color:var(--bad)}.top{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;margin-bottom:4px}.fire{color:var(--accent-text)}.ice{color:var(--ice);font-size:12px;margin-left:6px}.demo-bar{background:var(--ink);color:var(--bg);border-radius:12px;padding:8px 12px;font-size:13px;display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.demo-bar button{background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:4px 10px;font-weight:700;font-size:12px}.remain{text-align:center;padding:6px 0 2px}.remain .l{font-size:13px;color:var(--sub)}.remain .n small{font-size:20px;font-weight:800;letter-spacing:-.02em}.remain .n{font-size:40px;font-weight:900;letter-spacing:-.03em;line-height:1.15}.remain .n.bad{color:var(--bad)}.bar{height:10px;border-radius:9999px;background:var(--soft);overflow:hidden;margin:8px 0 4px}.bar i{display:block;height:100%;background:var(--accent);border-radius:9px}.bar.bad i{background:var(--bad-bar)}.bar.thin{height:7px;margin:4px 0 0}.bar.thin i{background:var(--ink)}.bar.thin.bad i{background:var(--bad-bar)}.barcap{display:flex;justify-content:space-between;font-size:12px;color:var(--sub)}.today-line{font-size:14px;text-align:center;margin-top:10px}.today-line b{font-size:16px}.days{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;align-items:end;height:96px}.days>div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;font-size:11px;color:var(--sub)}.days b{display:block;width:70%;min-height:3px;background:var(--ink);border-radius:6px 6px 2px 2px;margin-bottom:3px}.days b.bad{background:var(--bad-bar)}.days b.ok{background:var(--warn)}.days b.none{background:var(--line)}.days em{font-style:normal;font-size:16px;height:20px}.days .is-today{color:var(--ink);font-weight:900}.cat-line{padding:7px 0}.cat-line .h{display:flex;justify-content:space-between;font-size:14px}.cat-line .h span:last-child{color:var(--sub);font-size:13px}.cat-line .h b.over{color:var(--bad)}.tx{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.tx:last-child{border-bottom:0}.tx .e{font-size:20px}.tx .m{flex:1 1}.tx .m small{display:block;color:var(--sub);font-size:11px}.tx .a{font-weight:700}.tx .a.in{color:var(--good)}.tx .x{background:none;border:0;color:var(--sub);font-size:16px;padding:4px}.fab{position:-webkit-sticky;position:sticky;bottom:76px;z-index:5}.fab .btn{box-shadow:0 6px 20px rgba(0,0,0,.18)}.tabs{position:-webkit-sticky;position:sticky;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg);border-top:1px solid var(--line);margin:0 -16px;padding:8px 0 calc(10px + env(safe-area-inset-bottom));gap:4px;padding-left:10px!important;padding-right:10px!important}.tabs button{background:none;border:0;border-radius:9999px;font-size:14px;font-weight:600;color:var(--sub);padding:9px 0}.tabs button.on{background:var(--ink);color:var(--bg);font-weight:800}.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:20;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--bg);width:100%;max-width:440px;border-radius:24px 24px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));max-height:92dvh;overflow-y:auto}.cats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;margin-top:8px}.cats button{background:var(--card);border:2px solid transparent;border-radius:14px;padding:8px 0 6px;font-size:24px}.cats button small{display:block;font-size:11px;color:var(--sub)}.cats button.on{border-color:var(--accent-text);background:var(--accent-soft)}.memo{width:100%;border:0;border-radius:12px;background:var(--card);padding:12px;margin-top:10px;outline:none;border:1px solid var(--line)}.seg{display:flex;gap:6px;justify-content:center;margin-top:4px}.seg button{border:1px solid var(--line);background:var(--card);border-radius:99px;padding:4px 12px;font-size:13px}.seg button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.toast{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);background:var(--bg);border:1px solid var(--line);border-radius:24px;padding:24px 28px;text-align:center;z-index:30;box-shadow:0 12px 40px rgba(0,0,0,.18);min-width:240px;animation:pop .25s ease-out}.toast .t1{font-size:64px;line-height:1.1}.toast .t2{font-size:18px;font-weight:900;margin-top:6px}.toast .t3{font-size:13px;color:var(--sub);margin-top:2px;white-space:pre-line;max-width:280px}@keyframes pop{0%{transform:translate(-50%,-50%) scale(.85);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.empty{text-align:center;color:var(--sub);font-size:14px;padding:40px 0}.inapp{background:var(--dark);color:#fff;border-radius:16px;padding:14px 16px;margin-bottom:10px}.inapp b{display:block;color:var(--accent);font-size:15px}.inapp p{margin:4px 0 0;font-size:13px;color:rgba(255,255,255,.8)}.inapp .how b{display:inline;color:#fff}.catbars .cb{padding:7px 0}.cb-h{display:flex;justify-content:space-between;gap:8px;font-size:14px}.cb-h em{font-style:normal;font-size:11px;color:var(--sub);margin-left:6px}.cb-h span:last-child{color:var(--sub);font-size:13px;white-space:nowrap}.cb-h b{color:var(--ink)}.cb-track{position:relative;height:10px;border-radius:9999px;background:var(--bg);margin-top:6px;overflow:hidden}.cb-track i{position:absolute;left:0;top:0;bottom:0;border-radius:9999px;min-width:4px}.cb-track i.good{background:var(--ink)}.cb-track i.ok{background:var(--warn)}.cb-track i.bad{background:var(--bad-bar)}.cb-over{font-size:12px;font-weight:700;color:var(--bad);text-align:right;margin-top:3px}.sheet-img{display:block;width:100%;border-radius:12px;border:1px solid var(--line);background:#fff}.saved-box{margin-top:14px;padding:14px 16px;border-radius:14px;background:var(--bg);border-left:4px solid var(--accent)}.saved-box .l{font-size:13px;color:var(--sub)}.saved-box .n{font-size:26px;font-weight:900;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:2px 0 6px}.saved-box p{font-size:13px;color:var(--sub);margin:0 0 8px;line-height:1.5}.saved-box .check{display:flex;gap:8px;align-items:center;font-weight:700;font-size:14px}.saved-box .check input{width:20px;height:20px;accent-color:var(--ink)}.saved-box .total{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:14px}.undo-bar{position:fixed;left:50%;bottom:150px;transform:translateX(-50%);display:flex;gap:14px;align-items:center;background:var(--dark);color:var(--on-dark);border-radius:9999px;padding:10px 10px 10px 18px;font-size:14px;z-index:40;max-width:calc(100% - 32px);box-shadow:0 8px 24px rgba(0,0,0,.2)}.undo-bar span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.undo-bar button{background:var(--accent);color:#111;border:0;border-radius:9999px;padding:6px 12px;font-weight:800;white-space:nowrap}.edit-date{display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:15px;margin-bottom:8px}.edit-date input{font:inherit;font-weight:600;border:1px solid var(--line);border-radius:10px;padding:6px 8px;background:var(--bg);color:var(--ink)}.help details{border-top:1px solid var(--line);padding:10px 0}.help summary{font-weight:700;font-size:14px;cursor:pointer}.help p{font-size:13px;color:var(--sub);line-height:1.6;margin:6px 0 0}.grade div b.over,.today-line b.over{color:var(--bad)}