:root{color:#191f28;font-synthesis:none;text-rendering:optimizelegibility;--blue:#1b64da;--blue-pressed:#174ea6;--blue-soft:#e8f3ff;--text:#191f28;--text-secondary:#4e5968;--text-tertiary:#65717f;--line:#e5e8eb;--surface:#fff;--background:#f5f6f8;--red:#c93443;--green:#087f5b;--radius:22px;background:#f5f6f8;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--background)}body{background:var(--background);min-width:320px;min-height:100vh;color:var(--text);overscroll-behavior-y:none;margin:0}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #1b64da4d}button:disabled{cursor:default;opacity:.42}.app-shell{background:var(--background);width:min(100%,540px);min-height:100vh;margin:0 auto;position:relative}.app-content{min-height:100vh;padding:calc(18px + env(safe-area-inset-top)) 20px calc(112px + env(safe-area-inset-bottom))}.top-bar{justify-content:space-between;align-items:center;min-height:62px;margin-bottom:8px;display:flex}.top-bar.simple{margin-bottom:10px}.top-bar h1{letter-spacing:-.6px;margin:2px 0 0;font-size:25px;line-height:1.25}.top-bar.simple>h1{font-size:29px}.eyebrow{color:var(--text-secondary);margin:0;font-size:13px;font-weight:650;line-height:1.4}.icon-button{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:48px;height:48px;padding:0;display:inline-grid}.icon-button:hover{background:#0220470d}.month-picker{grid-template-columns:48px 1fr 48px;align-items:center;height:50px;margin-bottom:12px;display:grid}.month-picker button{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:48px;height:48px;padding:0;display:grid}.month-picker button:hover:not(:disabled){background:#e9ebee}.month-picker span{color:#4e5968;justify-content:center;align-items:center;gap:7px;font-size:15px;font-weight:680;display:flex}.hero-card{background:radial-gradient(circle at 90% 0%, #3182f614, transparent 36%), var(--surface);border-radius:26px;padding:26px 24px 23px;box-shadow:0 2px 8px #02204708}.hero-kicker{color:var(--text-secondary);margin:0 0 6px;font-size:15px;font-weight:620}.hero-card h2{letter-spacing:-1.1px;word-break:keep-all;max-width:380px;margin:0;font-size:clamp(27px,7vw,34px);line-height:1.28}.hero-secondary{border-top:1px solid #edf0f2;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;padding-top:20px;display:flex}.hero-secondary span{color:var(--text-secondary);font-size:14px}.hero-secondary strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:17px}.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 30px;display:grid}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:17px;justify-content:center;align-items:center;gap:7px;min-height:56px;padding:0 18px;font-size:16px;font-weight:730;display:inline-flex}.primary-button{background:var(--blue);color:#fff}.primary-button:hover:not(:disabled){background:var(--blue-pressed)}.secondary-button{color:#333d4b;background:#e9ebee}.secondary-button:hover:not(:disabled){background:#dde1e5}.primary-button.compact{width:auto;min-height:50px;padding:0 20px}.summary-section{margin:0 0 30px}.section-heading{justify-content:space-between;align-items:flex-end;gap:12px;min-height:52px;padding:0 4px 11px;display:flex}.section-heading h2{letter-spacing:-.4px;margin:0;font-size:20px;line-height:1.35}.section-heading p{color:var(--text-secondary);margin:2px 0 0;font-size:14px}.section-heading>button{min-height:44px;color:var(--blue);cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;padding:0 4px 0 12px;font-size:14px;font-weight:650;display:inline-flex}.list-card{border-radius:var(--radius);background:var(--surface);overflow:hidden}.holding-row,.transaction-row{background:var(--surface);text-align:left;cursor:pointer;border:0;border-bottom:1px solid #f2f3f5;align-items:center;gap:12px;width:100%;min-height:74px;padding:11px 16px;display:flex}.holding-row:last-child,.transaction-row:last-child{border-bottom:0}.holding-row:hover,.transaction-row:hover{background:#fafbfc}.holding-icon,.transaction-icon{width:42px;height:42px;color:var(--blue);background:#edf4ff;border-radius:14px;flex:none;place-items:center;display:grid}.holding-icon.investment{color:#009c72;background:#ebf9f4}.holding-icon.real_estate{color:#7e57c2;background:#f3eeff}.holding-icon.vehicle{color:#d97904;background:#fff3e7}.holding-icon.other{color:#4e5968;background:#f1f3f5}.transaction-icon.expense{color:var(--red);background:#fff0f1}.transaction-icon.income{color:var(--green);background:#eaf8f3}.transaction-icon.transfer{color:var(--blue);background:#edf4ff}.transaction-icon{font-size:22px;font-weight:760}.row-copy{flex:1;min-width:0}.row-copy strong,.row-copy small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.row-copy strong{font-size:15px;line-height:1.4}.row-copy small{color:var(--text-tertiary);margin-top:3px;font-size:12.5px}.amount,.transaction-amount{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:15px;font-weight:700}.amount.negative,.transaction-amount.expense{color:var(--red)}.transaction-amount.income{color:var(--green)}.transaction-amount.transfer{color:#4e5968}.row-chevron{color:#b0b8c1;flex:none}.inline-empty{text-align:center;padding:23px 20px}.inline-empty p{max-width:320px;color:var(--text-secondary);word-break:keep-all;margin:0 auto 8px;font-size:14px;line-height:1.55}.inline-empty button{min-height:44px;color:var(--blue);cursor:pointer;background:0 0;border:0;padding:0 12px;font-weight:680}.history-groups{padding-top:8px}.history-group{margin-bottom:24px}.history-group h2{color:var(--text-secondary);margin:0 4px 10px;font-size:14px;font-weight:670}.page-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:54vh;padding:32px;display:flex}.page-empty>svg{color:#b0b8c1}.page-empty h2{margin:16px 0 7px;font-size:20px}.page-empty p{color:var(--text-secondary);margin:0 0 20px;font-size:14px;line-height:1.55}.asset-hero{color:#1b64da;background:#e8f3ff;border-radius:22px;align-items:center;gap:14px;margin:12px 0 30px;padding:20px 21px;display:flex}.asset-hero>svg{flex:none}.asset-hero span,.asset-hero strong{display:block}.asset-hero span{margin-bottom:4px;font-size:13px}.asset-hero strong{font-size:18px}.wide-add-button{color:#333d4b;cursor:pointer;background:#e9ebee;border:0;border-radius:18px;justify-content:center;align-items:center;gap:6px;width:100%;min-height:58px;margin-top:-8px;font-weight:700;display:flex}.bottom-nav{z-index:40;width:min(100%,540px);height:calc(76px + env(safe-area-inset-bottom));padding:6px 16px env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff0;border-top:1px solid #0000000d;grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{min-width:64px;min-height:58px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:0;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:0;display:flex}.bottom-nav button.active{color:var(--blue)}.bottom-nav svg{width:23px;height:23px}.bottom-nav span{font-size:11px;font-weight:680}.toast{z-index:100;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));color:#fff;background:#191f28f0;border-radius:15px;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 40px);min-height:48px;padding:11px 16px;font-size:14px;font-weight:620;animation:.18s ease-out toast-in;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 28px #0000002e}.update-banner{z-index:101;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));color:#fff;background:#191f28f5;border-radius:17px;justify-content:space-between;align-items:center;gap:12px;width:min(100% - 32px,508px);min-height:56px;padding:10px 12px 10px 16px;font-size:14px;font-weight:650;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 28px #0000002e}.update-banner button{color:#191f28;cursor:pointer;background:#fff;border:0;border-radius:12px;flex:none;min-height:48px;padding:0 12px;font-weight:700}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.loading-screen,.auth-screen{width:min(100%,520px);min-height:100vh;margin:0 auto}.loading-screen{flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.loading-screen p{color:var(--text-secondary);margin:0;font-size:14px}.brand-mark{background:var(--blue);color:#fff;border-radius:15px;place-items:center;width:44px;height:44px;font-size:19px;font-weight:820;display:grid;box-shadow:0 8px 20px #3182f638}.brand-mark.large{border-radius:19px;width:56px;height:56px;margin-bottom:22px;font-size:23px}.auth-screen{padding:calc(58px + env(safe-area-inset-top)) 24px calc(32px + env(safe-area-inset-bottom));background:var(--surface);flex-direction:column;display:flex}.auth-intro h1{letter-spacing:-1px;margin:4px 0 10px;font-size:31px}.auth-description{max-width:360px;color:var(--text-secondary);word-break:keep-all;margin:0;font-size:16px;line-height:1.55}.auth-form{gap:13px;margin-top:36px;display:grid}.setup-guide{background:var(--blue-soft);color:var(--text);border-radius:18px;grid-template-columns:36px 1fr;gap:12px;padding:16px;display:grid}.setup-guide-icon{width:36px;height:36px;color:var(--blue);background:#fff;border-radius:12px;place-items:center;display:grid}.setup-guide strong{margin:1px 0 4px;font-size:14px;line-height:1.4;display:block}.setup-guide p{color:var(--text-secondary);word-break:keep-all;margin:0;font-size:13px;line-height:1.55}.field,.select-field{color:#4e5968;gap:7px;font-size:13px;font-weight:650;display:grid}.field input,.select-field select{width:100%;height:54px;color:var(--text);background:#f9fafb;border:1px solid #e5e8eb;border-radius:15px;padding:0 15px;font-size:16px;font-weight:520}.field input:focus,.select-field select:focus{border-color:var(--blue);background:#fff}.field-hint{color:var(--text-tertiary);word-break:keep-all;font-size:12px;font-weight:500;line-height:1.45}.remember-login{min-height:44px;color:var(--text);cursor:pointer;align-items:center;gap:11px;display:flex}.remember-login input{width:20px;height:20px;accent-color:var(--blue);cursor:pointer;margin:0}.remember-login span{gap:2px;display:grid}.remember-login strong{font-size:14px;font-weight:700}.remember-login small{color:var(--text-tertiary);font-size:12px;font-weight:500}.auth-form .primary-button{width:100%;margin-top:8px}.auth-links{flex-wrap:wrap;justify-content:center;gap:2px 8px;margin-top:17px;display:flex}.auth-links button{min-height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:0 7px;font-size:13px}.auth-links button:hover{color:var(--blue)}.demo-badge{color:var(--text-secondary);background:#f2f4f6;border-radius:100px;align-self:center;margin:14px 0 0;padding:8px 12px;font-size:12px}.sheet-open{overflow:hidden}.sheet-backdrop{z-index:80;background:#00000061;justify-content:center;align-items:flex-end;padding:0;animation:.16s ease-out fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.sheet{width:min(100%,540px);max-height:94vh;padding:8px 20px calc(24px + env(safe-area-inset-bottom));background:#fff;border-radius:28px 28px 0 0;animation:.22s cubic-bezier(.2,.8,.2,1) sheet-up;overflow:auto;box-shadow:0 -12px 48px #00000029}@keyframes sheet-up{0%{opacity:.6;transform:translateY(32px)}}.sheet-handle{background:#d1d6db;border-radius:999px;width:38px;height:4px;margin:0 auto 7px}.sheet-header{justify-content:space-between;align-items:center;min-height:58px;display:flex}.sheet-header h2{letter-spacing:-.6px;margin:0;font-size:23px}.sheet-form{padding-top:7px}.load-error-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:min(100%,520px);min-height:100vh;margin:0 auto;padding:32px;display:flex}.load-error-icon{width:54px;height:54px;color:var(--blue);background:#e8f3ff;border-radius:18px;place-items:center;display:grid}.load-error-screen h1{letter-spacing:-.5px;margin:18px 0 8px;font-size:22px}.load-error-screen p{max-width:320px;color:var(--text-secondary);word-break:keep-all;margin:0 0 22px;font-size:14px;line-height:1.55}.amount-input-wrap{justify-content:center;align-items:center;gap:7px;min-height:116px;padding:20px 8px 12px;display:flex}.amount-input{width:min(78%,310px);color:var(--text);letter-spacing:-1.4px;text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:0;padding:0;font-size:clamp(35px,11vw,48px);font-weight:750;line-height:1.25;outline:0!important}.amount-input::placeholder{color:#d1d6db}.amount-input-wrap>span{color:var(--text-secondary);padding-top:8px;font-size:21px;font-weight:620}.form-card{background:#f7f8fa;border-radius:19px;gap:14px;padding:17px;display:grid}.form-card .field input,.form-card .select-field select{background:#fff}.optional-block{padding:6px 1px 10px}.optional-block>p{margin:0 0 11px;font-size:14px;font-weight:680}.optional-block>p span{color:var(--text-tertiary);font-weight:520}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{color:#4e5968;cursor:pointer;background:#fff;border:1px solid #e5e8eb;border-radius:999px;min-height:48px;padding:0 15px;font-size:14px}.chip.active{background:var(--blue-soft);color:#1b64da;border-color:#c9e2ff;font-weight:680}.details-toggle{width:100%;min-height:52px;color:var(--text-secondary);cursor:pointer;background:#fff;border:1px solid #e5e8eb;border-radius:15px;justify-content:space-between;align-items:center;padding:0 16px;font-size:14px;display:flex}.details-toggle span:first-child{color:var(--text);font-weight:650}.details-toggle span:last-child{color:var(--blue);font-weight:650}.form-details{gap:14px;margin-top:12px;display:grid}.capital-action{width:100%;min-height:64px;color:var(--text);text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e8eb;border-radius:15px;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;padding:11px 16px;display:flex}.capital-action strong{font-size:14px}.capital-action span{color:var(--text-tertiary);font-size:12.5px}.capital-action.active{background:var(--blue-soft);border-color:#9cc7ff}.sheet-submit{width:100%;margin-top:16px}.danger-text-button{width:100%;min-height:52px;color:var(--red);cursor:pointer;background:0 0;border:0;margin-top:8px;font-size:14px;font-weight:650}.delete-confirm{background:#fff2f3;border-radius:17px;margin-top:13px;padding:16px}.delete-confirm p{color:#8c2f38;word-break:keep-all;margin:0 0 13px;font-size:14px;line-height:1.5}.delete-confirm>div{grid-template-columns:1fr 1fr;gap:8px;display:grid}.delete-confirm button{cursor:pointer;background:#fff;border:0;border-radius:13px;min-height:46px;font-weight:680}.delete-confirm button.danger{background:var(--red);color:#fff}.kind-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px;display:grid}.kind-button{min-height:76px;color:var(--text-secondary);cursor:pointer;background:#fff;border:1px solid #e5e8eb;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px 4px;font-size:12.5px;display:flex}.kind-button.active{background:var(--blue-soft);color:#1b64da;border-color:#bcdcff;font-weight:680}.selected-holding{background:#f7f8fa;border-radius:17px;align-items:center;gap:12px;padding:12px;display:flex}.selected-holding strong,.selected-holding small{display:block}.selected-holding small{color:var(--text-secondary);margin-top:3px;font-size:13px}.asset-amount-block{padding:8px 0 10px}.amount-input-wrap.asset-value{min-height:104px;padding-bottom:4px}.asset-value .amount-input{width:calc(100% - 42px);max-width:360px}.amount-input.amount-medium{font-size:clamp(31px,8.5vw,38px)}.amount-input.amount-small{letter-spacing:-.8px;font-size:clamp(23px,6.5vw,29px)}.amount-reading{min-height:22px;color:var(--blue);text-align:center;word-break:keep-all;margin:0;padding:0 18px;font-size:15px;font-weight:680;line-height:1.45}.form-helper{color:var(--text-secondary);text-align:center;word-break:keep-all;margin:0;padding:0 4px;font-size:13px;line-height:1.55}.capital-helper{background:var(--blue-soft);color:#2b5da8;text-align:left;border-radius:14px;margin-top:4px;padding:14px 16px}.members-list{gap:3px;margin:5px 0 18px;display:grid}.member-row{align-items:center;gap:12px;min-height:65px;padding:8px 4px;display:flex}.member-row>span{background:var(--blue-soft);color:#1b64da;border-radius:50%;place-items:center;width:42px;height:42px;font-weight:750;display:grid}.member-row strong,.member-row small{display:block}.member-row small{color:var(--text-tertiary);margin-top:3px;font-size:12.5px}.invite-card{text-align:center;background:#f1f7ff;border-radius:20px;padding:22px}.invite-card>svg{color:var(--blue)}.invite-card h3{margin:9px 0 4px;font-size:18px}.invite-card p{color:var(--text-secondary);margin:0 0 15px;font-size:13px}.invite-code{color:#1b64da;cursor:pointer;background:#fff;border:1px dashed #9cc8ff;border-radius:14px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:54px;display:flex}.invite-code strong{letter-spacing:1.7px;font-size:21px}.settings-list{gap:4px;margin-top:20px;display:grid}.settings-list>div,.settings-list>button{text-align:left;background:0 0;border:0;border-radius:15px;align-items:center;gap:13px;width:100%;min-height:60px;padding:8px 12px;display:flex}.settings-list>button{cursor:pointer;font-weight:650}.settings-list>.install-button{color:var(--text)}.settings-list>.install-button>span{min-width:0}.settings-list>.logout-button{color:var(--red)}.settings-list strong,.settings-list small{display:block}.settings-list small{color:var(--text-tertiary);margin-top:2px;font-size:12px}@media (min-width:720px){body{background:#e9ecf0}.app-shell,.auth-screen{box-shadow:0 0 40px #00000014}.app-content{padding-left:26px;padding-right:26px}.sheet-backdrop{align-items:center;padding:24px}.sheet{border-radius:28px;max-height:min(860px,92vh);padding-bottom:26px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.primary-button,.secondary-button,.bottom-nav button.active,.chip.active{border:1px solid buttontext}}
