@import "https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700;900&family=IBM+Plex+Sans+KR:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600;700&display=swap";*{box-sizing:border-box}body{color:#202432;background:#f8f8fb;margin:0;font-family:Noto Sans KR,sans-serif}button,input,select{font:inherit}button{cursor:pointer}#root{min-height:100dvh}:root{--bg:#fafafa;--card:#fff;--border:#ececec;--radius:14px;--ink:#1a1a1e;--ink-secondary:#8a8a93;--accent:#4f46e5;--accent-soft:#eef0ff;--keep:#067647;--keep-bg:#ecfdf3;--review:#b54708;--review-bg:#fffaeb;--cancel:#b42318;--cancel-bg:#fef3f2}.app{background:var(--bg);min-height:100vh;display:flex}.app>aside{background:var(--card);border-right:1px solid var(--border);flex-direction:column;width:244px;padding:30px 16px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:9px;padding:0 12px 38px;font-size:21px;display:flex}.brand b,.icon{color:#fff;background:var(--accent);place-items:center;font-weight:700;display:grid}.brand b{border-radius:9px;width:28px;height:28px;font-size:15px}.app nav{gap:5px;display:grid}.app nav button{text-align:left;color:#777b8c;background:0 0;border:0;border-radius:10px;padding:12px;font-size:14px;font-weight:600}.app nav button span{width:22px;margin-right:11px;font-size:18px;display:inline-grid}.app nav button small{font-size:inherit;font-weight:inherit}.app nav button.on{background:var(--accent-soft);color:var(--accent)}.profile{background:var(--bg);color:#575b6c;border-radius:12px;margin-top:auto;padding:10px;font-size:13px}.profile b{background:var(--accent-soft);color:var(--accent);border-radius:50%;place-items:center;width:26px;height:26px;margin-right:7px;display:inline-grid}.profile i{float:right;font-style:normal}.app main{width:min(1170px,100%);margin-left:244px;padding:52px 58px 70px}.page{animation:.2s both in}header{justify-content:space-between;align-items:flex-start;margin-bottom:34px;display:flex}.eyebrow{color:var(--accent);margin:0 0 8px;font-size:13px;font-weight:700}.page h1{letter-spacing:-1.3px;margin:0 0 8px;font-size:30px}.muted{color:#8a8d9c;margin:0;font-size:14px}.primary{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:13px 18px;font-weight:700;box-shadow:0 6px 14px #5e5fe535}.hero{background:linear-gradient(115deg,var(--accent),#7876e8);color:#fff;border-radius:18px;justify-content:space-between;align-items:center;min-height:154px;padding:29px 33px;display:flex}.hero p{opacity:.82;margin:0 0 5px;font-size:14px}.hero>b{letter-spacing:-1.3px;font-family:IBM Plex Mono,monospace;font-size:30px;display:block}.hero small{opacity:.7;font-size:12px}.save{background:#ffffff18;border:1px solid #ffffff2b;border-radius:13px;gap:11px;padding:16px 18px;display:flex}.save em,.recommend>b{color:#f5d36d;font-size:20px;font-style:normal}.save p{line-height:1.6}.save strong{font-size:14px}.hero-card{background:linear-gradient(110deg,var(--card),var(--accent-soft));border:1px solid var(--border);border-radius:15px;margin-top:22px;padding:18px 20px}.hero-label{color:var(--ink-secondary);margin:0;font-size:12px}.hero-amount{align-items:baseline;gap:6px;margin:8px 0;display:flex}.hero-amount b{color:var(--ink);font-family:IBM Plex Mono,monospace;font-size:32px}.hero-amount span{color:var(--ink-secondary);font-size:14px}.hero-card hr{border:0;border-top:1px solid var(--border);margin:12px 0}.hero-foot{color:var(--ink-secondary);justify-content:space-between;align-items:center;font-size:12px;display:flex}.hero-save{color:var(--accent);font-weight:600}.cols,.calendar,.detail-grid{grid-template-columns:1.03fr .97fr;gap:20px;margin-top:22px;display:grid}.panel,.cal-card,.schedule,.summary,.groups>section,.settings>section,.form form{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.panel-title{justify-content:space-between;align-items:flex-start;margin-bottom:17px;display:flex}.panel h2,.schedule h2,.groups h2{margin:0 0 5px;font-size:17px}.panel h2 em,.groups h2 em{color:var(--accent);background:var(--accent-soft);border-radius:20px;padding:2px 7px;font-size:12px;font-style:normal}.panel-title p,.settings section p{color:#9799a7;margin:0;font-size:12px}.panel-title button{color:var(--accent);background:0 0;border:0;font-size:12px;font-weight:700}.row{border:0;border-top:1px solid var(--border);background:var(--card);text-align:left;align-items:center;gap:11px;width:100%;padding:14px 2px;display:flex}.icon{border-radius:11px;flex:none;width:37px;height:37px;font-size:15px}.row>span:nth-child(2),.upcoming>span,.schedule button>span{flex:1;gap:3px;min-width:0;display:grid}.row b,.upcoming b,.schedule b{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.row small,.upcoming small,.schedule small{color:#9194a2;font-size:12px}.status{white-space:nowrap;border-radius:6px;padding:5px 8px;font-size:11px;font-weight:700}.keep{color:var(--keep);background:var(--keep-bg)}.cancel{color:var(--cancel);background:var(--cancel-bg)}.review{color:var(--review);background:var(--review-bg)}.row strong{white-space:nowrap;font-size:13px}.row i,.upcoming i,.schedule i{color:#aaa;font-size:20px;font-style:normal}.upcoming,.schedule button{border:0;border-top:1px solid var(--border);background:var(--card);text-align:left;align-items:center;gap:10px;width:100%;padding:10px 2px;display:flex}.time{text-align:center;color:#747687;width:40px;font-size:10px;line-height:1}.time small{font-size:10px;display:block}.time b{color:#343746;font-size:18px}.mobile{display:none}.month-nav-card{background:var(--card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;margin-top:18px;padding:12px 16px;display:flex;box-shadow:0 1px 2px #00000008}.month-nav{color:#8a8a93;cursor:pointer;background:0 0;border:0;padding:4px 10px;font-size:16px}.month-nav:disabled{color:var(--border);cursor:default}.month-label{color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;font-weight:600}.picker-year{justify-content:center;align-items:center;gap:16px;margin-bottom:16px;font-size:15px;display:flex}.month-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.month-grid button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:10px;padding:12px;font-size:13px}.month-grid button.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:700}.month-grid button:disabled{color:var(--border);cursor:default}.calendar{grid-template-columns:1.2fr .8fr;margin-top:0}.week,.days{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.week{color:#a0a0a8;padding-bottom:8px;font-size:11px}.days>span{border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:3px;height:44px;padding:6px 0 0;font-size:13px;display:flex;position:relative}.days .today{background:var(--accent)}.days .today b{color:#fff;font-weight:600}.days i{background:var(--accent);border-radius:50%;width:4px;height:4px;display:block}.schedule h2{margin-bottom:0;padding-bottom:2px}.schedule-sub{color:var(--ink-secondary);margin:0 0 12px;font-size:12px}.summary{background:linear-gradient(110deg,var(--card),var(--accent-soft));align-items:center;gap:33px;margin-bottom:24px;display:flex}.summary div{gap:5px;display:grid}.summary small{color:#8d8fa0;font-size:12px}.summary b{font-family:IBM Plex Mono,monospace;font-size:22px}.summary em{color:var(--accent);font-size:11px;font-style:normal;font-weight:600}.summary>i{color:#afb0bf;font-style:normal}.groups{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.groups>section{padding:19px}.groups h2{border-bottom:1px solid var(--border);padding-bottom:13px}.empty{color:#aaa;font-size:13px}.back{color:#777a8c;background:0 0;border:0;margin-bottom:27px;padding:0;font-size:13px}.detail-head{flex-direction:column;gap:3px;margin-bottom:18px;display:flex}.detail-head .eyebrow{color:var(--accent);margin:0;font-weight:600}.detail-head h1{margin:0;font-size:24px}.detail-grid{grid-template-columns:1.2fr .8fr;margin-top:0}.evaluation{gap:8px;padding:20px 18px;display:grid}.score{border-top:1px solid var(--border);gap:8px;padding:14px 0;display:grid}.score:first-of-type{border-top:0;padding-top:0}.score>div{gap:2px;display:grid}.score b{font-size:13px}.score small{color:var(--ink-secondary);font-size:12px}.score>span{gap:8px;display:flex}.score button{background:var(--card);color:var(--ink);border:1px solid #e4e4e7;border-radius:10px;flex:1;padding:10px;font-size:13px}.score button.selected{border:1.5px solid var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.recommend{background:var(--accent-soft);border-radius:14px;align-self:start;gap:2px;padding:16px;display:grid}.recommend-kicker{color:var(--accent);margin:0;font-size:12px;font-weight:600}.recommend h2{color:var(--ink);margin:2px 0 6px;font-size:16px}.recommend small{color:#4f46e5d9;font-size:12px;line-height:1.5}.recommend div{gap:8px;margin-top:12px;display:flex}.recommend button{background:var(--card);color:var(--accent);border:1px solid #c7c9f0;border-radius:10px;flex:1;padding:11px;font-size:13px;font-weight:600}.recommend button.selected{background:var(--accent);border-color:var(--accent);color:#fff}.delete{color:#a4a6b3;background:0 0;border:0;margin-top:23px;padding:0;font-size:12px;text-decoration:underline}.form form{gap:18px;width:min(550px,100%);display:grid}.form label{color:var(--ink);gap:8px;font-size:13px;font-weight:600;display:grid}.form input,.form select{color:var(--ink);background:var(--card);border:1px solid #e4e4e7;border-radius:10px;padding:13px 14px;font-size:14px}.form form>div{grid-template-columns:1fr 1fr;gap:12px;display:grid}.settings{max-width:780px}.settings section{justify-content:space-between;align-items:center;margin-bottom:13px;padding:22px 23px;display:flex}.settings section b{font-size:14px}.settings section.vertical{display:block}.options{gap:8px;margin-top:16px;display:flex}.options button{text-align:center;background:var(--card);color:var(--ink);border:1px solid #e4e4e7;border-radius:10px;flex:1;padding:11px 13px;font-size:13px}.options button.selected{border:1.5px solid var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.switch{background:#d7d8df;border:0;border-radius:20px;width:42px;height:24px;padding:3px}.switch i{background:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;display:block}.switch.on{background:var(--accent)}.switch.on i{transform:translate(18px)}.local{background:var(--accent-soft);color:#4f46e5d9;border-radius:12px;gap:10px;margin:12px 0;padding:14px;font-size:12px;line-height:1.5;display:flex}.local>b{color:var(--accent);font-size:16px;font-weight:400}.local p{margin:0}.local strong{color:var(--accent);margin-bottom:3px;font-size:13px;font-weight:600;display:block}.toast{z-index:5;color:#fff;background:#272936;border-radius:10px;padding:12px 16px;font-size:13px;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 8px 25px #0003}@keyframes in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media (width<=850px){.app>aside{display:none}.app main{padding:calc(30px + env(safe-area-inset-top)) 20px calc(100px + env(safe-area-inset-bottom));margin-left:0}.mobile{z-index:3;height:calc(70px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--border);padding:0 8px env(safe-area-inset-bottom);align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.toast{bottom:calc(85px + env(safe-area-inset-bottom))}.mobile nav{justify-content:space-around;align-items:stretch;width:100%;display:flex}.mobile nav button{color:#8a8d9c;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:5px 4px;font-size:10px;display:flex}.mobile nav button span{justify-content:center;align-items:center;width:22px;height:22px;margin:0;font-size:19px;line-height:1;display:flex}.mobile nav button small{font-size:10px;font-weight:400;line-height:1}.mobile nav button.on small{font-weight:700}.cols,.calendar,.detail-grid,.groups{grid-template-columns:1fr}.groups>section{padding:17px}.save{display:none}.page h1{font-size:26px}}@media (width<=520px){.app main{padding:25px 15px 100px}header{margin-bottom:25px}.new{width:42px;height:42px;box-shadow:none;padding:0;font-size:0}.new:first-letter{font-size:22px}.hero{padding:24px}.hero>b{font-size:27px}.panel{padding:18px}.panel-title button,.status.keep{display:none}.score{display:block}.score>span{margin-top:11px}.score button{flex:1}.detail-head .icon{width:43px;height:43px}.detail-head h1{font-size:22px}.form form{padding:19px}.summary{gap:11px;padding:20px}.summary b{font-size:16px}}.empty-state{text-align:center;color:var(--ink-secondary);padding:32px 16px}.empty-state .primary{margin-top:12px}.onboarding-banner{background:var(--accent-soft);color:var(--accent);border-radius:var(--radius);justify-content:space-between;align-items:center;margin-bottom:16px;padding:10px 16px;font-size:13px;display:flex}.onboarding-banner button{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:14px}.heatmap-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin:16px 0;padding:16px}.heatmap-head{justify-content:space-between;align-items:center;font-size:13px;display:flex}.heatmap-head h3{margin:0;font-size:14px}.heatmap-head span:last-child{color:var(--ink-secondary);font-size:11px}.heatmap-week{text-align:center;color:var(--ink-secondary);grid-template-columns:repeat(7,1fr);gap:6px;margin-top:12px;font-size:11px;display:grid}.heatmap-grid{grid-template-columns:repeat(7,1fr);gap:6px;margin-top:6px;display:grid}.heat{color:#a0a0a8;box-sizing:border-box;background:#f2f2f3;border-radius:8px;flex-direction:column;justify-content:space-between;align-items:flex-start;height:46px;padding:5px;font-size:9px;display:flex}.heat-empty{background:0 0}.heat b{font-weight:400}.heat em{font-style:normal;font-weight:600}.heat-1{color:var(--ink-secondary);background:#e4e5fb}.heat-2{color:#3b3f9e;background:#c3c7f5}.heat-3{color:#fff;background:#9098ee}.heat-3 b,.heat-3 em{color:#ffffffd9}.heat-4{color:#fff;background:#5b63e3}.heat-4 b,.heat-4 em{color:#ffffffd9}.heat-today{border:2px solid var(--ink)}.heat-today small{font-size:8px;font-weight:600}.heatmap-legend{color:var(--ink-secondary);justify-content:flex-end;align-items:center;gap:3px;margin-top:12px;font-size:11px;display:flex}.heatmap-legend i{border-radius:3px;width:12px;height:12px;display:block}.heatmap-legend i.heat-0{background:#f2f2f3}.sheet-overlay{z-index:20;background:#1a1a1e66;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:420px;padding:20px 20px calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;max-height:80vh;overflow-y:auto}.sheet header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.sheet-close{cursor:pointer;color:var(--ink-secondary);background:0 0;border:none;font-size:16px}.reason-chips{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.reason-chips button{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px}.reason-chips button.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.savings-preview{background:var(--accent-soft);color:var(--accent);border-radius:12px;margin:12px 0;padding:12px 16px;font-weight:600}.notif-header{justify-content:space-between;align-items:center;margin-bottom:0;display:flex}.notif-header h1{margin:0}.notif-read-all{color:var(--accent);cursor:default;font-size:13px;font-weight:600}.notif-group{margin:20px 0 0}.notif-group h3{color:var(--ink-secondary);margin-bottom:8px;font-size:12px;font-weight:600}.notif-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:0 16px}.notif-row{border-bottom:1px solid #f0f0f0;gap:12px;padding:14px 0;display:flex}.notif-row:last-child{border-bottom:0}.notif-icon{border-radius:999px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:flex}.notif-body{flex:1;gap:3px;min-width:0;display:grid}.notif-body b{font-size:14px;font-weight:600}.notif-body small{color:var(--ink-secondary);font-size:12px}.notif-body time{color:#a0a0a8;font-size:11px;font-style:normal}.notif-footer{text-align:center;color:#a0a0a8;margin-top:20px;font-size:11px}.row-with-action{align-items:center;gap:8px;display:flex}.row-with-action .row{flex:1}.link{color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:none;font-size:13px}.stale-badge{background:var(--review-bg);color:var(--review);border-radius:999px;margin:8px 0;padding:6px 12px;font-size:12px;display:inline-block}.last-evaluated{color:var(--ink-secondary);margin:-4px 0 8px;padding:0 2px;font-size:12px}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin:16px 0;padding:20px}.kpi-head{color:var(--ink-secondary);justify-content:space-between;font-size:13px;display:flex}.kpi-amount{color:var(--ink);margin:10px 0;font-family:IBM Plex Mono,monospace;font-size:30px;font-weight:700}.kpi-pills{gap:8px;display:flex}.pill-mini{color:#71717a;background:#f2f2f3;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:600}.pill-mini.accent{background:var(--accent-soft);color:var(--accent)}.insight-section{margin:20px 0 4px}.insight-head{margin-bottom:10px}.insight-head h3{margin:0 0 2px;font-size:14px}.insight-head p{color:var(--ink-secondary);margin:0;font-size:12px}.insight-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:16px}.insight-row{align-items:center;gap:12px;display:flex}.insight-row>span:nth-child(2){flex:1;gap:2px;min-width:0;display:grid}.insight-row b{font-size:14px}.insight-row small{color:var(--ink-secondary);font-size:12px}.insight-amount{text-align:right;gap:2px;display:grid}.insight-amount small{color:var(--ink-secondary);font-size:11px}.insight-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;display:flex}.insight-save{color:var(--keep);margin:0;font-size:12px}.insight-cta{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:600}.week-summary-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:20px;padding:16px;display:flex}.week-summary-icon{color:#71717a;background:#f2f2f3;border-radius:10px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.week-summary-card>span:nth-child(2){flex:1;gap:2px;min-width:0;display:grid}.week-summary-card b{font-size:14px}.week-summary-card small{color:var(--ink-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.week-summary-card strong{font-size:14px}.pill-change{background:var(--card);border:1px solid var(--accent);color:var(--accent);cursor:pointer;white-space:nowrap;border-radius:12px;padding:5px 10px;font-size:11px;font-weight:700}.btn-add-inline{background:var(--card);border:1.5px dashed var(--accent);width:100%;color:var(--accent);cursor:pointer;border-radius:12px;margin-top:18px;padding:15px;font-size:14px;font-weight:700}.btn-cancel-confirm{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:14px;width:100%;margin-top:20px;padding:16px;font-size:15px;font-weight:700}
