:root{--bg:#f5f6fb;--surface:#ffffff;--ink:#181b2e;--ink2:#565b74;--ink3:#6e7390;--line:#e1e4f0;--line2:#eef0f7;--danger:#d23f3f;--chip:#f2f3f9;--acc:#3d5af1;--accD:#2b43c9;--accT:#e9ecff;--due:#b4501a;--dueT:#fcebdf;--grad:linear-gradient(120deg,#3d5af1,#5b4df0);--font:"Pretendard Variable",Pretendard,"Noto Sans KR","Apple SD Gothic Neo",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}a{color:var(--accD)}a:hover{color:#1f33a3}img{max-width:100%}button{cursor:pointer}button,input{font:inherit}:focus-visible{outline:3px solid var(--acc);outline-offset:2px}.a-back:focus-visible,.a-chip:focus-visible,.a-main:focus-visible,.a-pill:focus-visible,.a-row:focus-visible,.a-tab:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accT)}.wrap{max-width:1120px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}.top{background:rgba(245,246,251,.92);border-bottom:1px solid var(--line)}.top .wrap{min-height:68px;gap:20px;flex-wrap:wrap;padding-block:10px}.brand,.top .wrap{display:flex;align-items:center}.brand{gap:10px;color:var(--ink);text-decoration:none;font-size:20px;font-weight:900;letter-spacing:-.02em}.brand img{width:36px;height:36px;border-radius:10px}.nav{display:flex;gap:18px;flex-grow:1;flex-wrap:wrap;font-size:15px;font-weight:700}.nav a{color:var(--ink2);text-decoration:none}.nav a[aria-current=page]{color:var(--ink)}@media (max-width:720px){.top .wrap{gap:8px 12px}.top .btn{order:2;margin-left:auto}.nav{order:3;flex:1 0 100%;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;gap:16px;padding-bottom:2px;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 24px;border-radius:26px;font-size:16px;font-weight:800;text-decoration:none;border:0}.btn-main{background:var(--grad)}.btn-dark,.btn-main,.btn-main:hover{color:#fff}.btn-dark{background:var(--ink)}.btn-dark:hover{color:#fff}.btn-line{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn-sm{height:44px;padding:0 20px;border-radius:22px;font-size:15px}h1{font-size:clamp(28px,4vw,40px);line-height:1.25;font-weight:900;letter-spacing:-.01em;text-wrap:balance}h1,h2{margin:0}h2{font-size:20px}.eyebrow,h2{font-weight:800}.eyebrow{font-size:15px;color:var(--accD)}.muted{color:var(--ink3);font-weight:600}.lead{margin:0;font-size:18px;line-height:30px;font-weight:500;color:var(--ink2);max-width:560px}main.page{padding-block:32px 72px;display:flex;flex-direction:column;gap:20px}.card{border-radius:26px;padding:18px 22px}.card,.card-acc{background:var(--surface)}.card-acc{border:2px solid var(--acc);border-radius:24px;padding:20px 22px}.cols{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.cols>.main{flex:999 1 560px;flex-direction:column}.cols>.main,.cols>.side{min-width:0;display:flex;gap:14px}.cols>.side{flex:1 1 280px;flex-direction:column}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px}.crumbs{font-size:14px;font-weight:600;display:flex;gap:6px;flex-wrap:wrap}.crumbs,.crumbs a{color:var(--ink3)}.list{background:var(--surface);border-radius:26px;overflow:hidden}.row{display:flex;align-items:center;gap:16px;padding:16px 22px;border-bottom:1px solid var(--line2);text-decoration:none;color:inherit;flex-wrap:wrap}.row:last-child{border-bottom:0}.row:hover{background:#fafbff;color:inherit}.row .when{width:104px;flex-shrink:0;font-size:14px;font-weight:800}.row .what{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:2px}.row .t{font-size:17px;line-height:25px;font-weight:800}.row .m{font-size:14px;font-weight:600;color:var(--ink3)}.tag{font-size:13px;font-weight:800;padding:5px 11px;border-radius:14px;background:var(--accT);color:var(--accD);white-space:nowrap}.due{color:var(--due)}.soon{color:var(--accD)}.past{color:var(--ink3)}.empty{padding:28px 22px;color:var(--ink2);font-weight:600}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{height:40px;padding:0 16px;border-radius:20px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:15px;font-weight:700;display:inline-flex;align-items:center;text-decoration:none}.chip.on,.chip[aria-current=page]{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:800}.kv{display:grid;grid-template-columns:120px 1fr;grid-gap:12px;gap:12px;padding:12px 0;border-bottom:1px solid var(--line2);font-size:16px}.kv:last-child{border-bottom:0}.kv>:first-child{font-weight:700;color:var(--ink2)}.kv>:last-child{font-weight:600}.money{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.money div{background:var(--chip);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}.money span{font-size:14px;font-weight:700;color:var(--ink2)}.money b{font-size:20px;font-weight:900}details{border-bottom:1px solid var(--line2)}details:last-child{border-bottom:0}summary{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:16px;font-weight:800;cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:"+";color:var(--ink3);font-size:18px}details[open] summary:after{content:"−"}details p{margin:0 0 14px;font-size:16px;line-height:26px;color:var(--ink2)}.foot{padding-block:32px 48px;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;font-size:14px;font-weight:600;color:var(--ink3)}.foot a{color:var(--ink2)}.mascot{border-radius:32px;object-fit:cover;aspect-ratio:1/1}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.app{max-width:480px;margin:0 auto;min-height:100dvh;position:relative;padding:calc(20px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-left)) 120px max(16px,env(safe-area-inset-right));display:flex;flex-direction:column;gap:12px}.app h1{font-size:28px;line-height:36px;font-weight:900;margin:0 4px 4px}.app h2{font-size:22px;line-height:30px;font-weight:800;margin:0 4px}.a-card{border-radius:26px}.a-acc,.a-card{background:var(--surface);padding:18px 20px}.a-acc{border:2px solid var(--acc);border-radius:24px}.a-cap{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom));width:min(350px,calc(100% - 40px));height:64px;border-radius:32px;background:rgba(255,255,255,.92);box-shadow:0 8px 28px rgba(24,27,46,.14);display:flex;align-items:center;gap:8px;padding:0 6px;z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.a-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.a-tab{height:52px;border-radius:26px;color:var(--ink3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:13px;font-weight:600;text-decoration:none}.a-tab[aria-current=page]{background:var(--accT);color:var(--accD);font-weight:700}.a-back{width:52px;background:#eff1f8;flex-shrink:0;color:var(--ink)}.a-back,.a-main{height:52px;border-radius:26px;display:flex;align-items:center;justify-content:center;border:0;text-decoration:none}.a-main{flex-grow:1;background:var(--grad);color:#fff;font-size:16px;font-weight:800}.a-main:disabled{opacity:.45}.a-ghost{height:52px;padding:0 14px;border-radius:26px;border:0;background:transparent;color:var(--ink2);flex-shrink:0;text-decoration:none;display:flex;align-items:center}.a-ghost,.a-pill{font-size:15px;font-weight:700}.a-pill{height:44px;padding:0 16px;border-radius:22px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.a-pill[aria-pressed=true]{border-color:transparent;background:var(--accT);color:var(--accD);font-weight:800}.a-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px}.a-cell{height:42px;border-radius:12px;border:0;background:var(--chip);color:var(--ink);font-size:14px;font-weight:700}.a-cell[aria-pressed=true]{background:var(--acc);color:#fff;font-weight:800}.a-label{font-size:13px;font-weight:700;color:var(--ink3)}.a-input{display:flex;align-items:center;height:52px;border-radius:16px;border:1px solid var(--line);padding:0 14px;background:var(--surface)}.a-input:focus-within{border:2px solid var(--acc)}.a-input input{flex-grow:1;min-width:0;border:0;outline:none;background:transparent;font-size:17px;font-weight:800;color:var(--ink)}.a-input span{font-size:15px;font-weight:700;color:var(--ink2)}.a-row{display:flex;align-items:center;gap:12px;min-height:68px;padding:10px 14px 10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:16px;text-decoration:none;color:inherit}.a-dot{width:10px;height:10px;border-radius:5px;flex-shrink:0}.dot-ok{background:var(--acc)}.dot-check{border:2px solid var(--acc)}.dot-no{background:var(--ink);position:relative}.dot-no:after{content:"";position:absolute;inset:3px;border-radius:2px;background:#fff}.a-chip{height:36px;padding:0 14px;border-radius:18px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:14px;font-weight:700}.a-chip[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:800}.a-img{border-radius:40px;object-fit:cover;aspect-ratio:1/1}.a-center{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.app{word-break:keep-all;touch-action:pan-y;will-change:transform}.a-back,.a-ghost,.a-main,.a-pill,.a-row,.a-tab{transition:transform .14s cubic-bezier(.2,.8,.2,1)}.a-back:active,.a-ghost:active,.a-main:active,.a-pill:active,.a-tab:active{transform:scale(.95)}.a-row:active{transform:scale(.985)}@keyframes a-pop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}@keyframes a-check{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes a-flash{0%{box-shadow:0 0 0 0 rgba(61,90,241,0)}30%{box-shadow:0 0 0 3px var(--acc)}to{box-shadow:0 0 0 0 rgba(61,90,241,0)}}.a-pop{display:inline-block;animation:a-pop .36s cubic-bezier(.2,.8,.2,1)}.a-check{width:20px;height:20px;border-radius:10px;background:var(--acc);color:#fff;font-size:13px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;animation:a-check .26s cubic-bezier(.2,.8,.2,1) both}.a-flash{animation:a-flash 1.2s ease-out}@media (prefers-reduced-motion:reduce){.a-check,.a-flash,.a-pop{animation:none}}.a-fold{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .28s cubic-bezier(.2,.8,.2,1),opacity .2s ease}.a-fold>*{overflow:hidden;min-height:0}.a-fold[data-open=true]{grid-template-rows:1fr;opacity:1}.a-plus{color:var(--ink3);font-size:22px;line-height:1;display:inline-block;transition:transform .24s cubic-bezier(.2,.8,.2,1)}.a-plus[data-open=true]{transform:rotate(45deg)}.a-main.a-sub{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.a-main.a-off{background:var(--line);color:var(--ink3)}@keyframes a-nudge{0%,to{transform:scale(1);box-shadow:0 0 0 0 rgba(61,90,241,.45)}50%{transform:scale(1.04);box-shadow:0 0 0 8px rgba(61,90,241,0)}}.a-nudge{animation:a-nudge 1.4s ease-in-out infinite}@keyframes a-out{0%{transform:translateY(6px);opacity:0}25%{transform:none;opacity:1}to{transform:none;opacity:1}}.a-out{display:inline-block;animation:a-out .6s cubic-bezier(.2,.8,.2,1)}@keyframes a-dim{0%{opacity:1;transform:none}30%{opacity:.45;transform:scale(.98)}to{opacity:1;transform:none}}.a-dim{animation:a-dim .7s ease-out}.a-frame{position:fixed;top:0;left:0;width:100%;height:calc(100dvh - 100px - env(safe-area-inset-bottom));border:0;background:#fff}@media (prefers-reduced-motion:reduce){.a-fold,.a-plus{transition:none}.a-dim,.a-nudge,.a-out{animation:none}}body,html{overflow-x:clip}@keyframes a-dlg-in{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}@keyframes a-bg-in{0%{opacity:0}to{opacity:1}}.a-dlg-bg{position:fixed;inset:0;z-index:50;background:rgba(24,27,46,.36);display:flex;align-items:flex-end;justify-content:center;padding:16px 16px calc(24px + env(safe-area-inset-bottom));animation:a-bg-in .18s ease-out;transition:opacity .16s}.a-dlg-bg[data-out=true]{opacity:0}.a-dlg{width:min(400px,100%);background:var(--surface);border-radius:28px;padding:24px 20px 16px;display:flex;flex-direction:column;gap:6px;box-shadow:0 16px 48px rgba(24,27,46,.24);animation:a-dlg-in .24s cubic-bezier(.2,.8,.2,1)}.a-dlg .a-main{flex:1 1}.a-main.a-danger{background:var(--danger)}.a-ok{display:inline-flex;align-items:center;gap:6px}.a-ok svg{flex-shrink:0}@keyframes a-shake{0%,to{transform:none}20%{transform:translateX(-6px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}@keyframes a-strike{0%{background-size:0 2px}40%{background-size:100% 2px}to{background-size:100% 2px}}@keyframes a-unbadge{0%{transform:scale(.4);opacity:0}30%{transform:scale(1.1);opacity:1}75%{transform:scale(1);opacity:1}to{transform:scale(.6) translateY(-8px);opacity:0}}.a-shake{animation:a-shake .42s ease-out}.a-strike{background:linear-gradient(var(--ink3),var(--ink3)) no-repeat 0 55%;background-size:0 2px;animation:a-strike .9s ease-out both;color:var(--ink3)}.a-unbadge{width:20px;height:20px;border-radius:10px;background:var(--ink3);color:#fff;font-size:15px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;animation:a-unbadge 1.3s cubic-bezier(.2,.8,.2,1) both}@keyframes a-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.a-rise{animation:a-rise .36s cubic-bezier(.2,.8,.2,1) both}.a-stick{position:-webkit-sticky;position:sticky;top:0;z-index:10;margin:0 -16px;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:rgba(245,246,251,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.a-week{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.a-bar{position:absolute;height:18px;border-radius:6px;font-size:13px;line-height:18px;font-weight:800;padding:0 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;pointer-events:none}.ev-apply{background:var(--acc);color:#fff}.ev-doc{background:var(--dueT);color:var(--due)}.ev-ann{background:var(--accT);color:var(--accD);box-shadow:inset 0 0 0 1px var(--acc)}.ev-con{background:var(--chip);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.a-browser{position:fixed;top:calc(12px + env(safe-area-inset-top));left:12px;right:12px;bottom:calc(96px + env(safe-area-inset-bottom));border-radius:24px;overflow:hidden;background:var(--surface);box-shadow:0 8px 28px rgba(24,27,46,.12);display:flex;flex-direction:column}.a-browser-bar{height:44px;flex-shrink:0;display:flex;align-items:center;gap:8px;padding:0 16px;border-bottom:1px solid var(--line2);font-size:13px;font-weight:700;color:var(--ink3)}.a-browser iframe{flex-grow:1;width:100%;border:0;background:#fff}@keyframes a-load{0%{transform:translateX(-100%)}to{transform:translateX(250%)}}.a-loadbar{position:absolute;top:43px;left:0;width:40%;height:2px;background:var(--acc);animation:a-load 1s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.a-dlg,.a-dlg-bg,.a-loadbar,.a-rise,.a-shake,.a-strike,.a-unbadge{animation:none}}.a-swipe{width:72px;border:0;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:13px;font-weight:800;font-family:inherit;cursor:pointer}.a-map{width:100%;border-radius:16px;overflow:hidden;background:var(--chip);z-index:0}.a-map .leaflet-control-attribution{font-size:10px}.a-mapbtn{display:flex;gap:8px;text-decoration:none;height:48px}.a-mapbtn,.a-mapdot{align-items:center;justify-content:center}.a-mapdot{width:22px;height:22px;border-radius:7px;color:#fff;font-size:13px;font-weight:900;display:inline-flex}@keyframes a-fade-in{0%{opacity:0}to{opacity:1}}@keyframes a-zoom-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.a-viewer{position:fixed;inset:0;z-index:60;background:#0c0e18;display:flex;flex-direction:column;animation:a-fade-in .18s ease-out;transition:opacity .18s;touch-action:none}.a-viewer[data-out=true]{opacity:0}.a-viewer-top{display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 16px 8px 20px;color:#fff;font-size:15px}.a-viewer-img{position:relative;flex-grow:1;margin:0 8px;animation:a-zoom-in .22s cubic-bezier(.2,.8,.2,1)}.a-viewer-bottom{display:flex;justify-content:center;gap:16px;padding:12px 16px calc(20px + env(safe-area-inset-bottom))}.a-viewer-nav{width:48px;height:48px;border-radius:24px;border:0;background:rgba(255,255,255,.14);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.a-viewer-nav:disabled{opacity:.3}@media (prefers-reduced-motion:reduce){.a-viewer,.a-viewer-img{animation:none}}.a-seg{margin-left:auto;display:flex;padding:3px;border-radius:18px;background:var(--chip);box-shadow:inset 0 0 0 1px var(--line)}.a-seg button{height:30px;padding:0 12px;border:0;border-radius:15px;background:transparent;color:var(--ink3);font-size:13px;font-weight:800;font-family:inherit;cursor:pointer}.a-seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px rgba(24,27,46,.12)}.a-noscroll{scrollbar-width:none}.a-noscroll::-webkit-scrollbar{display:none}.a-mapcard{position:absolute;left:10px;right:10px;bottom:10px;z-index:500;box-shadow:0 8px 24px rgba(24,27,46,.18);border-radius:16px}.a-pin{display:block;width:100%;height:100%;position:relative;filter:drop-shadow(0 3px 5px rgba(24,27,46,.28));transition:transform .16s cubic-bezier(.2,.8,.2,1);transform-origin:50% 100%}.a-pin:before{content:"";position:absolute;inset:0 0 6px 0;border-radius:50% 50% 50% 0;transform:rotate(-45deg) scale(.86);border:2.5px solid #fff;box-sizing:border-box}.a-pin svg{position:absolute;left:50%;top:42%;width:46%;height:46%;transform:translate(-50%,-50%);fill:currentColor}.a-pin-ok{color:#fff}.a-pin-ok:before{background:var(--acc)}.a-pin-check{color:var(--acc)}.a-pin-check:before{background:#fff;border-color:var(--acc)}.a-pin-no{color:#fff}.a-pin-no:before{background:var(--ink3)}.a-pin.on{animation:a-pin-pop .26s cubic-bezier(.2,.8,.2,1)}@keyframes a-pin-pop{0%{transform:scale(.7)}60%{transform:scale(1.12)}to{transform:none}}.a-me{display:block;width:22px;height:22px;border-radius:11px;background:#2f80ff;border:3px solid #fff;box-sizing:border-box;box-shadow:0 0 0 8px rgba(47,128,255,.18),0 2px 6px rgba(0,0,0,.25)}.a-map-tools{position:absolute;top:10px;right:10px;z-index:500;display:flex;flex-direction:column;gap:6px}.a-map-btn{width:44px;height:44px;border-radius:14px;border:0;background:rgba(255,255,255,.96);color:var(--ink);box-shadow:0 2px 10px rgba(24,27,46,.16);display:flex;align-items:center;justify-content:center;cursor:pointer}.a-map-btn:active{transform:scale(.94)}@keyframes a-spin{to{transform:rotate(1turn)}}.a-spin{animation:a-spin .9s linear infinite}