:root{--bg:#fbf6ee;--cream:#fffcf7;--card:#fffefb;--ink:#3a302a;--ink-2:#5e524a;--muted:#8a7d73;--line:#ece1d4;--line-2:#e2d3c3;--peach:#f6c9b4;--peach-d:#b2583a;--peach-bg:#fdede4;--blush:#f2cfd4;--blush-d:#a4475b;--blush-bg:#fbeaec;--sage:#bfd1b8;--sage-d:#4d6a48;--sage-bg:#eaf1e6;--bad:#b3261e;--bad-bg:#fce9e7;--warn:#8a5a00;--warn-bg:#fff3d6;--gold:#c29b5c;--radius:18px;--shadow:0 1px 2px #5037280d, 0 6px 18px #7850320f;--nav-h:64px;--font:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;--serif:"Gowun Batang", "Nanum Myeongjo", "AppleMyungjo", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);letter-spacing:-.01em;word-break:keep-all;overflow-wrap:anywhere;-webkit-tap-highlight-color:#b2583a1f;margin:0;font-size:17px;line-height:1.6}a{color:var(--peach-d)}h1,h2,h3{margin:0;line-height:1.35}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--peach-d);outline-offset:2px;border-radius:8px}.app{min-height:100dvh;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px)}body.kbd .app{padding-bottom:24px}.page{flex-direction:column;gap:14px;max-width:760px;margin:0 auto;padding:14px 16px 24px;display:flex}.topbar{z-index:20;-webkit-backdrop-filter:saturate(1.2)blur(8px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top);background:#fbf6eef0;position:sticky;top:0}.topbar-row{align-items:center;gap:8px;max-width:760px;min-height:56px;margin:0 auto;padding:8px 12px 6px;display:flex}.topbar-title{flex:1;min-width:0}.topbar h1{font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;font-size:21px;font-weight:700;overflow:hidden}.topbar .sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;overflow:hidden}.brand-mark{width:40px;height:40px;color:var(--peach-d);background:var(--peach-bg);border-radius:50%;flex:none;place-items:center;display:grid}.icon-btn{width:44px;height:44px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.icon-btn:active{background:var(--line)}.syncbar{align-items:center;gap:6px;max-width:760px;margin:0 auto;padding:5px 14px 7px;font-size:13.5px;font-weight:600;display:flex}.syncbar span{flex:1;min-width:0}.syncbar.ok{color:var(--sage-d)}.syncbar.wait{color:var(--warn)}.syncbar.warn{color:var(--warn);background:var(--warn-bg)}.syncbar.bad{color:var(--bad);background:var(--bad-bg)}.link-btn{color:inherit;cursor:pointer;background:0 0;border:0;min-height:32px;padding:6px 4px;font-weight:700;text-decoration:underline}.bottomnav{z-index:30;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#fffcf7f7;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottomnav a{height:var(--nav-h);color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12.5px;font-weight:600;text-decoration:none;display:flex}.bottomnav a.on{color:var(--peach-d)}.bottomnav a.on svg{stroke-width:2.1px}body.kbd .bottomnav,body.kbd .fab{display:none}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card.focus{border-color:var(--peach)}.card-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.card-head h2,.card-title{flex:1;margin:0 0 6px;font-size:17.5px;font-weight:700}.card-head h2{margin:0}.card-icon{background:var(--sage-bg);width:30px;height:30px;color:var(--sage-d);border-radius:50%;flex:none;place-items:center;display:grid}.alert-card{background:#fffbfa;border-color:#f0c7c2}.alert-card .card-icon{background:var(--bad-bg);color:var(--bad)}.more-link{padding:8px 2px;font-size:14.5px;font-weight:600;text-decoration:none;display:inline-block}.subhead{color:var(--ink-2);margin:14px 0 4px;font-size:16px;font-weight:700}.subhead small{color:var(--muted);font-weight:500}.muted{color:var(--muted);margin:0}.count{font-size:14px}.help{color:var(--muted);margin:4px 0 0;font-size:14.5px;line-height:1.55}.meta{color:var(--muted);margin:0;font-size:13.5px}.lead-text{margin:0;font-size:18px;font-weight:600}.hero{background:linear-gradient(160deg, #fffdf8 0%, var(--blush-bg) 100%);padding:20px 18px 16px;position:relative;overflow:hidden}.hero>:not(.hero-sprig){position:relative}.hero-sprig{opacity:.85;pointer-events:none;width:150px;position:absolute;top:-4px;right:-6px}.eyebrow{color:var(--ink-2);margin:0;font-size:14px;font-weight:600}.display{font-family:var(--serif);color:var(--peach-d);margin:4px 0 2px;font-size:40px;font-weight:700}.display.sm{font-size:30px}.hero p{margin:2px 0}.hero-sub{color:var(--ink-2);align-items:center;gap:6px;font-size:15px;display:flex}.progress{margin-top:12px}.progress .bar{border:1px solid var(--line-2);background:#fffc;border-radius:99px;height:12px;overflow:hidden}.progress .bar span{background:linear-gradient(90deg, var(--sage), var(--sage-d));border-radius:99px;height:100%;display:block}.progress p{margin-top:6px;font-size:14.5px}.progress small{color:var(--muted)}.quick{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.quick-btn{background:var(--card);border:1px solid var(--line);min-height:76px;color:var(--ink);box-shadow:var(--shadow);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:12px 4px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.quick-btn svg{color:var(--peach-d)}.rows{margin:0;padding:0;list-style:none}.rows.card{padding:4px 14px}.row{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:58px;padding:6px 0;display:flex}.row:last-child{border-bottom:0}.row>a:not(.btn),.row-main{min-width:0;color:inherit;flex:1;align-items:center;gap:10px;padding:4px 0;text-decoration:none;display:flex}.row-main{flex-direction:column;align-items:flex-start!important;gap:1px!important}.row a>.row-main{padding:0}.row-main strong{font-size:16.5px;font-weight:600}.row-main small{color:var(--muted);font-size:14px;display:block}.row-main small.late{color:var(--bad);font-weight:600}.row.done .row-main strong{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2)}.row .flags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.check-row{align-items:flex-start}.badge{background:var(--sage-bg);color:var(--sage-d);text-align:center;border-radius:10px;flex:none;min-width:64px;padding:4px 9px;font-size:13px;font-weight:700}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.check{cursor:pointer;flex:none;place-items:center;width:44px;height:44px;display:grid;position:relative}.check input{opacity:0;cursor:pointer;margin:0;position:absolute;top:0;bottom:0;left:0;right:0}.check .box{border:2px solid var(--line-2);color:#0000;background:#fff;border-radius:9px;place-items:center;width:28px;height:28px;display:grid}.check input:checked+.box{background:var(--sage-d);border-color:var(--sage-d);color:#fff}.check input:focus-visible+.box{outline:3px solid var(--peach-d);outline-offset:2px}.check input:disabled+.box{opacity:.5}.chip{color:var(--ink-2);white-space:nowrap;background:#f3ede6;border:1px solid #0000;border-radius:99px;flex:none;padding:4px 10px;font-size:13px;font-weight:600}.chip.sage{background:var(--sage-bg);color:var(--sage-d)}.chip.peach{background:var(--peach-bg);color:var(--peach-d)}.chip.blush{background:var(--blush-bg);color:var(--blush-d)}.chip.muted{border-color:var(--line-2);color:var(--muted);background:0 0}.chip.bad{background:var(--bad-bg);color:var(--bad)}.btn{border:1px solid var(--line-2);min-height:48px;color:var(--ink);cursor:pointer;background:#fff;border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)}.btn.sm{border-radius:12px;min-height:40px;padding:6px 12px;font-size:14.5px}.btn.primary{background:var(--peach-d);border-color:var(--peach-d);color:#fff}.btn.danger{color:var(--bad);border-color:#ebc3be}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn.block{width:100%;margin-top:10px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.btn-row.end{justify-content:flex-end}.fab{right:16px;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 14px);z-index:25;background:var(--peach-d);color:#fff;cursor:pointer;border:0;border-radius:99px;align-items:center;gap:6px;min-height:54px;padding:0 20px 0 16px;font-size:16px;font-weight:700;display:flex;position:fixed;box-shadow:0 6px 18px #b2583a59}.fab:disabled{opacity:.5}.tabs{scrollbar-width:none;gap:6px;margin:0 -2px;padding:2px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{border:1px solid var(--line-2);cursor:pointer;min-height:40px;color:var(--ink-2);background:#fff;border-radius:99px;flex:none;padding:6px 14px;font-size:15px;font-weight:600}.tabs button.on{background:var(--ink);border-color:var(--ink);color:#fff}.filters{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.search{border:1px solid var(--line-2);color:var(--muted);background:#fff;border-radius:14px;align-items:center;gap:8px;padding:0 12px;display:flex}.search input{flex:1;min-width:0;box-shadow:none!important;background:0 0!important;border:0!important;padding:12px 0!important}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{border:1px solid var(--line-2);width:100%;color:var(--ink);-webkit-appearance:none;appearance:none;background:#fff;border-radius:12px;min-height:48px;padding:12px 14px;font-size:17px}select{background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 15px) 21px;background-repeat:no-repeat;background-size:5px 5px;padding-right:36px}input[type=date],input[type=time],input[type=month]{min-height:48px}textarea{resize:vertical;line-height:1.55}input:disabled,select:disabled,textarea:disabled{color:var(--ink-2);background:#f6f1ea}input.invalid{border-color:var(--bad)}input:focus,select:focus,textarea:focus{border-color:var(--peach-d);outline-offset:0;outline:2px solid #b2583a33}.form{flex-direction:column;gap:14px;display:flex}.form-sec{min-width:0;margin:0}.form-sec legend{color:var(--sage-d);background:var(--card);border-radius:8px;padding:0 6px;font-size:16px;font-weight:700}.field{border-bottom:1px dashed var(--line);padding:8px 0 10px;scroll-margin-top:120px;scroll-margin-bottom:40px}.field:last-child{border-bottom:0}.field.compact{border:0;padding:4px 0}.field-label{color:var(--ink-2);margin:0 0 6px;font-size:14.5px;font-weight:700;display:block}.field.st-error,.field.st-conflict{background:#fff8f6;border-radius:10px;margin:0 -8px;padding:8px 8px 10px}.fs{margin:6px 0 0;font-size:14px;font-weight:600}.fs.ok{color:var(--sage-d)}.fs.wait{color:var(--warn)}.fs.warn{color:var(--warn);background:var(--warn-bg);border-radius:10px;padding:8px 10px}.fs.bad{color:var(--bad)}div.fs.bad{flex-direction:column;gap:6px;display:flex}.fs-actions{flex-wrap:wrap;gap:8px;display:flex}.conflict{background:var(--peach-bg);border:1px solid #e9b9a8;border-radius:12px;margin-top:8px;padding:10px 12px;font-size:15px}.conflict dl{grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0 8px;display:grid}.conflict dt{color:var(--ink-2);font-weight:700}.conflict dd{white-space:pre-wrap;margin:0}.num-wrap{position:relative}.num-wrap .unit{color:var(--muted);pointer-events:none;font-size:15px;position:absolute;top:13px;right:14px}.num-wrap input{text-align:right;font-variant-numeric:tabular-nums;padding-right:44px!important}.link-row{align-items:center;gap:8px;display:flex}.link-row>input,.link-row>select{flex:1;min-width:0}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg button{border:1px solid var(--line-2);cursor:pointer;min-height:44px;color:var(--ink-2);background:#fff;border-radius:12px;padding:8px 14px;font-size:15px;font-weight:600}.seg button.on{background:var(--sage-bg);border-color:var(--sage-d);color:var(--sage-d)}.seg.wide{grid-template-columns:repeat(3,1fr);margin-bottom:10px;display:grid}.seg.mini{flex-wrap:nowrap;gap:4px}.seg.mini button{min-height:40px;padding:4px 8px;font-size:13.5px}.ref-list{margin:0 0 6px;padding:0;list-style:none}.ref-list li{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.two{grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;display:grid}.check-line{align-items:flex-start;gap:10px;padding:10px 0;font-size:15.5px;display:flex}.check-line input{flex:none;width:24px;height:24px;margin-top:2px}.money-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.money{background:var(--cream);border:1px solid var(--line);border-radius:14px;flex-direction:column;padding:10px 12px;display:flex}.money-label{color:var(--muted);font-size:13.5px;font-weight:600}.money strong{font-variant-numeric:tabular-nums;font-size:19px}.money strong.na{color:var(--muted);font-size:16px;font-weight:600}.money small{color:var(--muted);font-size:12.5px;line-height:1.4}.estimate{border-bottom:1px dashed var(--line);padding:8px 0}.estimate p{margin:2px 0}.na{color:var(--muted)}.stat-row{text-align:center;grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.stat-row div{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:8px 4px}.stat-row strong{font-size:22px;display:block}.stat-row span{color:var(--muted);font-size:12.5px}details{margin-top:10px}summary{cursor:pointer;align-items:center;min-height:40px;font-weight:600;display:flex}.notice{background:var(--sage-bg);color:var(--ink);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;font-size:15px;display:flex}.notice.warn{background:var(--warn-bg)}.notice p{flex-basis:100%;margin:0}.break{word-break:break-all;font-size:14px}.empty{text-align:center;color:var(--muted);padding:24px 12px}.empty .sprig{opacity:.8;width:120px}.cal-nav{justify-content:space-between;align-items:center;display:flex}.cal-nav h2{font-family:var(--serif);font-size:22px}.cal{grid-template-columns:repeat(7,1fr);gap:4px;padding:10px;display:grid}.cal-h{text-align:center;color:var(--muted);padding:4px 0;font-size:13px;font-weight:700}.cal-d{aspect-ratio:1;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:44px;padding:0;font-size:15px;display:flex}.cal-d.today{border-color:var(--peach-d);font-weight:700}.cal-d.sel{background:var(--peach-bg)}.cal-d em{background:var(--sage-d);color:#fff;border-radius:99px;min-width:18px;padding:0 4px;font-size:11px;font-style:normal;font-weight:700}.cmp-item dl{grid-template-columns:minmax(90px,35%) 1fr;gap:4px 10px;margin:0;display:grid}.cmp-item dt{color:var(--ink-2);font-size:14.5px;font-weight:600}.cmp-item dd{white-space:pre-wrap;margin:0}.cmp-item{padding:12px 14px}.table-wrap{padding:0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14.5px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 12px}thead th{background:var(--cream);color:var(--ink-2);white-space:nowrap;font-size:13.5px;position:sticky;top:0}tbody tr{cursor:pointer}tbody tr:hover{background:var(--cream)}td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td.bad{color:var(--bad);font-weight:700}table.compare th{width:180px}tr.sec th{background:var(--sage-bg);color:var(--sage-d)}.grid-links{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.link-tile{color:var(--ink);align-items:center;gap:10px;min-height:64px;padding:12px 14px;font-weight:600;text-decoration:none;display:flex}.link-tile svg{color:var(--peach-d);flex:none}.auth{max-width:480px;padding:calc(env(safe-area-inset-top) + 28px) 16px 40px;flex-direction:column;gap:14px;margin:0 auto;display:flex}.auth-hero{text-align:center;padding:26px 8px 6px;position:relative}.auth-hero .hero-sprig{opacity:.8;width:140px;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.auth-hero .display{margin-top:18px}.lead{color:var(--ink-2);margin:4px 0 0}.auth-form input{margin-bottom:12px}.toasts{left:12px;right:12px;top:calc(env(safe-area-inset-top) + 92px);z-index:50;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed}.toast{background:var(--ink);color:#fff;max-width:520px;box-shadow:var(--shadow);border-radius:12px;padding:10px 16px;font-size:15px}.toast.error{background:var(--bad)}.splash{min-height:100dvh;color:var(--muted);align-content:center;place-items:center;gap:8px;display:grid}.splash-ring{font-size:36px}.preview{border-top:1px dashed var(--line-2);margin-top:12px;padding-top:8px}.plain{margin:6px 0;padding-left:20px}.file-btn{position:relative;overflow:hidden}.file-btn input{opacity:0;cursor:pointer;position:absolute;top:0;bottom:0;left:0;right:0}.help-page p,.help-page ol{margin:6px 0}.quick-add .card-title{margin-bottom:8px}code{background:var(--cream);border-radius:6px;padding:1px 6px}@media (min-width:900px){.page,.topbar-row,.syncbar{max-width:1100px}.grid-links{grid-template-columns:repeat(4,1fr)}.bottomnav{border:1px solid var(--line);border-bottom:0;border-radius:18px 18px 0 0;max-width:640px;left:50%;transform:translate(-50%)}}@media (max-width:360px){body{font-size:16px}.quick,.stat-row{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
