@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap";:root{font-family:Noto Sans KR,DM Sans,sans-serif;color:#19262d;background:#e9f0ef;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#e9f0ef}button,input{font:inherit}button{border:0;cursor:pointer}.app-shell{min-height:100dvh;display:flex;justify-content:center}.phone{width:100%;max-width:440px;min-height:100dvh;background:#f7faf9;position:relative;overflow:hidden;box-shadow:0 0 50px #1c575127}.hero{background:#087f73;color:#fff;padding:12px 20px 24px;border-radius:0 0 30px 30px;position:relative}.status{font:600 11px DM Sans;display:flex;justify-content:space-between;opacity:.8;margin:0 2px 18px}.topline{display:flex;justify-content:space-between;align-items:center}.eyebrow{font:600 10px DM Sans;letter-spacing:.14em;opacity:.65}.topline h1{font-size:29px;letter-spacing:-.06em;margin:2px 0 0;font-weight:800}.avatar{width:35px;height:35px;border-radius:50%;background:#ffffff2b;color:#fff;font-size:13px;font-weight:700}.month-row{display:flex;justify-content:center;align-items:center;gap:15px;margin:20px 0 16px}.month-row button{background:none;color:#fff;display:flex;align-items:center}.month-select{font-weight:700;font-size:15px;gap:4px}.summary{background:#fff;color:#1b3031;border-radius:20px;padding:17px 18px;display:flex;justify-content:space-between;align-items:flex-end;box-shadow:0 10px 25px #005a5029}.summary span{display:block;color:#91a09f;font-size:12px}.summary strong{display:block;color:#e45f6e;font:800 25px DM Sans;letter-spacing:-.04em;margin-top:3px}.summary-meta{font-size:12px!important;text-align:right;padding-bottom:2px}.summary-dot{color:#e45f6e!important;display:inline!important;margin-left:4px}.content{padding:15px 16px 105px}.calendar-card{background:#fff;border-radius:23px;padding:16px 12px 13px;box-shadow:0 3px 15px #23453c0b}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.weekdays{color:#9aa8a6;font-size:11px;font-weight:700;margin-bottom:8px}.weekdays .sun{color:#e78383}.weekdays .sat{color:#6f9cdd}.calendar-grid{row-gap:4px}.day{background:none;height:47px;border-radius:14px;color:#50615f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.day b{font-size:13px;font-weight:600}.day small{font:600 9px DM Sans;color:#e87982;line-height:1}.day.selected{background:#e1f2ee;color:#087f73}.day.selected small{color:#087f73}.day:hover{background:#f0f7f5}.day-section{padding-top:23px}.section-head,.page-title{display:flex;align-items:center;justify-content:space-between;padding:0 3px 11px}.section-head h2,.page-title h2{font-size:17px;margin:0;letter-spacing:-.04em}.section-head p{font-size:12px;color:#96a19f;margin:4px 0 0}.text-button{background:none;color:#087f73;font-weight:700;font-size:13px;display:flex;gap:4px;align-items:center}.expense-list{display:flex;flex-direction:column;gap:8px}.expense{background:#fff;border-radius:16px;padding:11px 12px;display:flex;align-items:center;gap:11px;box-shadow:0 2px 10px #23453c08}.category-icon{width:37px;height:37px;border-radius:12px;display:grid;place-items:center;font-size:17px;flex:none}.expense-info{flex:1;min-width:0}.expense-info strong{font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expense-info span{font-size:11px;color:#98a29f;display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expense-right{text-align:right}.expense-right b{display:block;color:#e26770;font:700 13px DM Sans}.expense-right button{background:none;color:#b7c1bf;padding:5px 0 0}.empty{background:#fff;border-radius:18px;padding:28px 16px;text-align:center;color:#abb5b3;font-size:13px;display:flex;flex-direction:column;align-items:center;gap:8px}.empty svg{color:#b4cfca}.empty button{background:#e3f3ef;color:#087f73;border-radius:10px;padding:9px 14px;font-size:12px;font-weight:700;margin-top:5px}.fab{position:fixed;z-index:3;bottom:79px;left:50%;transform:translate(calc(-50% + 172px));width:54px;height:54px;border-radius:19px;background:#ef6c77;color:#fff;display:grid;place-items:center;box-shadow:0 8px 18px #e45e6b55}.bottom-nav{position:fixed;z-index:2;bottom:0;left:50%;transform:translate(-50%);width:min(440px,100%);height:67px;background:#ffffffeb;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-top:1px solid #e7eeec;display:flex;justify-content:space-around;padding:7px 45px 5px}.bottom-nav button{background:none;color:#a1afad;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;font-weight:600}.bottom-nav .active{color:#087f73}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10262366;z-index:5;display:flex;align-items:flex-end;justify-content:center}.sheet{width:min(440px,100%);background:#fff;border-radius:28px 28px 0 0;padding:10px 21px 26px;max-height:94dvh;overflow:auto;box-shadow:0 -10px 35px #173b3626}.sheet-grip{height:4px;width:38px;background:#d7e1df;border-radius:5px;margin:0 auto 18px}.sheet-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.sheet h2{margin:4px 0 0;font-size:21px;letter-spacing:-.05em}.icon-btn{background:#f2f6f5;color:#76908b;width:33px;height:33px;border-radius:11px;display:grid;place-items:center}.sheet label{display:block;color:#4d5f5c;font-size:12px;font-weight:700;margin-top:15px}.sheet input{width:100%;border:1px solid #e3ece9;background:#fbfdfc;border-radius:12px;padding:12px 13px;margin-top:7px;color:#20322f;outline:none}.sheet input:focus{border-color:#66b9ad;box-shadow:0 0 0 3px #ddf2ee}.amount-input{position:relative}.amount-input input{font:700 25px DM Sans;padding-right:40px}.amount-input span{position:absolute;right:14px;bottom:14px;color:#8da09c;font-size:13px}.optional{color:#aab8b5;font-size:10px;font-weight:400;margin-left:4px}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:7px}.category-grid button{background:#f5f8f7;border:1px solid transparent;border-radius:11px;padding:9px 3px;color:#687875;font-size:11px}.category-grid button span{display:block;font-size:17px;margin-bottom:4px}.category-grid button.chosen{background:#e3f3ef;border-color:#7ec7ba;color:#087f73;font-weight:700}.submit{width:100%;border-radius:14px;background:#087f73;color:#fff;padding:14px;margin-top:22px;font-weight:700;display:flex;justify-content:center;align-items:center;gap:7px}.toast{position:fixed;z-index:10;bottom:92px;left:50%;transform:translate(-50%);background:#1b302d;color:#fff;border-radius:13px;padding:11px 15px;font-size:12px;box-shadow:0 6px 20px #123b3633}.subpage{padding-top:8px}.count-pill{background:#e3f3ef;color:#087f73;padding:6px 10px;border-radius:20px;font-size:11px;font-weight:700}.all-item{display:flex;gap:7px;align-items:flex-start}.date-chip{font:600 10px DM Sans;color:#90a09d;width:42px;padding-top:17px;white-space:nowrap}.all-item .expense{flex:1}.stats-card{background:#fff;border-radius:22px;padding:20px;box-shadow:0 3px 15px #23453c0b}.stats-card>span{color:#96a19f;font-size:12px}.stats-card>strong{font:800 27px DM Sans;display:block;margin-top:4px;color:#203331}.bar-chart{margin-top:24px}.bar-row{margin-top:14px}.bar-row>div:first-child{display:flex;justify-content:space-between;font-size:12px;color:#52635f}.bar-row b{font:600 12px DM Sans}.bar-track{height:8px;background:#eef3f1;border-radius:9px;overflow:hidden;margin-top:6px}.bar-track i{height:100%;display:block;border-radius:9px}.insight{background:#e2f3ee;border-radius:20px;padding:16px 18px;margin-top:11px}.insight span{font-size:11px;color:#4c8e83}.insight strong{display:block;font-size:17px;margin-top:3px;color:#087f73}.insight p{font-size:12px;color:#5d8982;margin:4px 0 0}@media(max-width:380px){.fab{transform:translate(calc(-50% + 145px))}.bottom-nav{padding-left:36px;padding-right:36px}}.connection{display:inline-block;margin-top:6px;padding:3px 7px;border-radius:9px;font-size:9px;font-weight:700;background:#ffffff1f;color:#d8f2ed}.connection.ready{background:#c9eee333;color:#dcfff7}.connection.offline{background:#ffd6db33;color:#ffe9eb}.hero{padding:10px 20px 16px;border-radius:0 0 24px 24px}.topline h1{font-size:26px}.month-row{margin:11px 0}.summary{padding:12px 15px;border-radius:16px}.summary strong{font-size:22px}.calendar-card{padding:11px 10px 9px;border-radius:18px}.weekdays{margin-bottom:4px}.day{height:40px;border-radius:11px}.content{padding-top:11px}.quick-amounts{display:flex;gap:6px;margin-top:7px}.quick-amounts button{flex:1;background:#f1f6f4;color:#5e7771;border-radius:9px;padding:7px 3px;font-size:11px}.category-preview{display:inline-flex;align-items:center;background:#e2f3ee;color:#087f73;border-radius:9px;padding:6px 9px;font-size:11px;font-weight:700;margin-top:14px}.empty{padding:22px 16px}.empty svg{opacity:.45}.login-screen{min-height:100dvh;background:#087f73;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 26px}.login-mark{width:58px;height:58px;border-radius:20px;background:#ffffff24;display:grid;place-items:center;font:700 28px DM Sans;margin-bottom:18px}.login-screen h1{margin:0;font-size:32px;letter-spacing:-.08em}.login-screen>p{text-align:center;line-height:1.7;color:#d8f0ec;font-size:14px;margin:10px 0 26px}.login-screen form{width:min(310px,100%)}.login-screen input{width:100%;border:0;border-radius:14px;background:#fff;color:#20322f;padding:14px 15px;outline:none;font-size:16px;text-align:center}.login-screen form button{width:100%;border:0;border-radius:14px;background:#ef6c77;color:#fff;padding:14px;margin-top:9px;font-weight:700;font-size:15px}.login-screen form small{display:block;text-align:center;color:#ffe2e5;margin-top:12px;font-size:12px}.sheet label{font-size:12px}.sheet input{font-size:15px}.sheet h2{font-size:20px}.submit{font-size:15px;padding:15px}:root{--space-unit:4px}button{touch-action:manipulation}.fab{width:58px;height:58px;border-radius:50%;bottom:82px;transform:translate(calc(-50% + 143px));box-shadow:0 9px 22px #e45e6b52}.fab svg{stroke-width:2.5}.bottom-nav{height:70px;padding-left:54px;padding-right:54px}.bottom-nav button{min-width:54px;min-height:48px;justify-content:center}.content{padding-left:17px;padding-right:17px}.calendar-card{box-shadow:0 2px 12px #23453c0a}.day-section{padding-top:20px}.section-head{padding-bottom:10px}.section-head h2,.page-title h2{font-size:16px}.expense{min-height:61px;padding:11px 13px}.expense-info strong{font-size:14px;line-height:1.35}.expense-info span{font-size:12px}.expense-right b{font-size:14px}.sheet{padding:10px 22px 27px}.sheet-head{margin-bottom:16px}.sheet h2{font-size:21px}.sheet label{font-size:13px;line-height:1.35;margin-top:14px}.sheet input{min-height:47px;padding:12px 14px}.amount-input input{font-size:27px;min-height:56px}.quick-amounts button{min-height:36px;font-size:12px}.submit{min-height:50px;margin-top:20px}.login-screen input,.login-screen form button{min-height:50px}@media(max-width:380px){.fab{transform:translate(calc(-50% + 122px))}.bottom-nav{padding-left:42px;padding-right:42px}}.runtime-error{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center;color:#20322f;font-size:14px}.runtime-error span{font-size:12px;color:#849490}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8;background:#10262366;display:flex;align-items:center;justify-content:center;padding:24px}.confirm-dialog{width:min(310px,100%);background:#fff;border-radius:22px;padding:22px 20px 18px;box-shadow:0 18px 50px #10262335;text-align:center}.confirm-icon{width:40px;height:40px;border-radius:13px;background:#fff0f1;color:#e26770;display:grid;place-items:center;margin:0 auto 11px}.confirm-dialog h3{font-size:17px;letter-spacing:-.04em;margin:0;color:#203331}.confirm-dialog p{font-size:12px;color:#879692;margin:7px 0 18px}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.confirm-actions button{min-height:43px;border-radius:12px;background:#f2f6f5;color:#61736f;font-size:13px;font-weight:700}.confirm-actions .danger{background:#ef6c77;color:#fff}.runtime-error small{display:block;max-width:280px;word-break:break-word;color:#a66;font-size:10px;margin-top:4px}
