:root{--bg:#ffffff;--bg-sub:#f2f2f2;--primary:#368fff;--primary-sub:#1f3d88;--text:#3a3a3a;--accent:#e5484d;--letterbox:#dadbdf;--text-1:rgba(58,58,58,1);--text-2:rgba(58,58,58,0.75);--text-3:rgba(58,58,58,0.5);--line:rgba(58,58,58,0.25);--text-disabled:rgba(58,58,58,0.12);--primary-12:rgba(54,143,255,0.12);--primary-25:rgba(54,143,255,0.25);--r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--shadow-card:0 0 4px rgba(0,0,0,0.12);--shadow-menu:0 4px 8px rgba(0,0,0,0.25);--font:"Pretendard","Pretendard Variable",-apple-system,BlinkMacSystemFont,system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;overflow:hidden}body{background:var(--letterbox);color:var(--text-1);font-family:var(--font);font-size:16px;line-height:24px;-webkit-font-smoothing:antialiased}@media (max-width:392px){body{background:var(--bg)}}button,input,textarea{font-family:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.t-display,.t-title1{font-weight:600;font-size:28px;line-height:34px}.t-title2{font-weight:600;font-size:20px;line-height:28px}.t-subtitle{font-weight:600}.t-body,.t-subtitle{font-size:16px;line-height:24px}.t-body{font-weight:400}.t-caption{font-weight:500;font-size:12px;line-height:16px}.t-button{font-weight:500}.t-button,.t-button-strong{font-size:14px;line-height:21px}.t-button-strong{font-weight:600}.t-legal{font-weight:500;font-size:9px;line-height:12px}.req{color:var(--accent)}.shell{width:100%;max-width:393px;height:100dvh;margin:0 auto;background:var(--bg);position:relative;display:flex;flex-direction:column;overflow:hidden}.shell-scroll{flex:1 1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.shell-scroll::-webkit-scrollbar{display:none}.shell-scroll.lock{overflow:hidden}.shell-footer{padding:20px 24px calc(20px + env(safe-area-inset-bottom))}.shell-footer,.topbar{flex:none;background:var(--bg)}.topbar{height:56px;display:flex;align-items:center;padding:0 24px 0 20px;gap:0;z-index:20}.topbar.float{position:-webkit-sticky;position:sticky;top:0}.topbar.modal{position:relative;padding:0 24px;border-bottom:1px solid var(--bg-sub)}.topbar .grow{flex:1 1}.topbar .ttl{font-weight:600;font-size:16px;line-height:24px}.topbar.modal .ttl{position:absolute;left:56px;right:56px;text-align:center;pointer-events:none}.topbar-done{color:var(--primary);padding:0;font-weight:500;font-size:14px;line-height:21px}.icon-btn,.topbar-done{background:none;border:none}.icon-btn{width:44px;height:44px;margin:0;display:flex;align-items:center;justify-content:center;color:var(--text-1);flex:none;position:relative}.topbar .icon-btn--back{margin-left:-10px}.topbar.modal .icon-btn--close{margin-left:-14px}.topbar .icon-btn--kebab{margin-right:-21px}.hit-icon{position:relative;width:auto;height:auto;min-width:0;padding:0;margin:0;border:none;background:none;display:flex;align-items:center;justify-content:center;color:inherit;flex:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}.hit-icon:disabled{cursor:default}.hit-icon:active{background:transparent;filter:none}.hit-icon:after{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}.progress{padding:0 32px}.progress .track{height:3px;border-radius:2px;background:var(--bg-sub);overflow:hidden}.progress .fill{height:100%;background:var(--primary);border-radius:2px}.btn{height:56px;border:none;border-radius:var(--r-md);width:100%;font-weight:600;font-size:20px;line-height:28px;display:flex;align-items:center;justify-content:center}.btn-primary{background:var(--primary);color:#fff}.btn-primary:not(:disabled):active{filter:brightness(.95)}.btn-disabled,.btn:disabled{background:var(--line);color:#fff;cursor:not-allowed}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{height:37px;padding:0 16px;border-radius:var(--r-sm);background:var(--bg);border:1px solid var(--line);color:var(--text-1);font-weight:600;font-size:14px;line-height:21px;display:inline-flex;align-items:center}.chip[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}.addcat:active,.chip:active,.trip-new:active,.trip:active{filter:brightness(.97)}.badge{min-width:48px;height:24px;border-radius:var(--r-lg);background:var(--primary-12);color:var(--primary);font-weight:600;font-size:12px;line-height:16px;display:inline-flex;align-items:center;justify-content:center;padding:0 8px}.badge.off{background:var(--text-disabled);color:var(--text-3)}.badge.new{background:rgba(229,72,77,.12);color:var(--accent)}.badge.lg{min-width:0;height:32px;padding:0 16px;border-radius:16px;font-weight:600;font-size:12px;line-height:16px}.pad{padding:8px 32px 24px}.pad-a{padding:32px}.pad-b{padding:28px 24px 24px}.pad-c{padding:8px 20px 0}.q-title{margin:0}.q-sub{margin:12px 0 20px;color:var(--text-3);font-weight:500;font-size:12px;line-height:16px}.q-block+.q-block{margin-top:48px}.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.sec-count{color:var(--text-3);font-weight:500;font-size:12px;line-height:16px}.infobox{width:100%;border:2px solid var(--bg-sub);border-radius:var(--r-lg);padding:20px 24px;background:var(--bg)}.infobox .t{font-weight:600;font-size:16px;line-height:24px;margin-bottom:12px}.infobox ul{list-style:none;margin:0;padding:0}.infobox li{gap:16px;margin:8px 0}.infobox .n,.infobox li{display:flex;align-items:center}.infobox .n{width:24px;height:24px;border-radius:var(--r-xs);background:var(--primary-12);color:var(--primary);font-weight:600;font-size:14px;line-height:21px;justify-content:center;flex:none}.cal{width:100%;border:2px solid var(--bg-sub);border-radius:var(--r-lg);padding:16px 22px 20px;background:var(--bg)}.cal .capt{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.cal .capt .m{font-weight:600;font-size:16px;line-height:24px}.cal .capt button{position:relative;background:none;border:none;color:var(--text-1);width:10px;height:20px;min-width:0;min-height:0;padding:0;display:flex;align-items:center;justify-content:center}.cal .capt button:after{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}.cal table{width:100%;border-collapse:separate;border-spacing:1px}.cal th{font-weight:500;font-size:12px;line-height:16px;color:var(--text-3)}.cal td,.cal th{text-align:center;padding:0}.cal .d{width:100%;height:40px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;line-height:21px;color:var(--text-1);border-radius:var(--r-sm);background:none;border:none}.cal .d.is-range{background:var(--bg-sub)}.cal .d.is-edge{background:var(--primary);color:#fff}.cal .d.out{color:var(--text-3)}.cal .sum{display:flex;justify-content:space-between;border-top:1px solid var(--bg-sub);margin-top:4px;padding-top:14px;font-weight:500;font-size:12px;line-height:16px;color:var(--text-1)}.cal .sum .r{color:var(--text-3)}.trip-wrap{position:relative}.trip{width:100%;border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 24px 20px;background:var(--bg);text-align:left;color:var(--text-1);-webkit-text-fill-color:var(--text-1);-webkit-appearance:none;-moz-appearance:none;appearance:none}.trip .head{display:flex;align-items:center;gap:8px;padding-right:48px}.trip .place{font-weight:600;font-size:16px;line-height:24px;color:var(--text-1);-webkit-text-fill-color:var(--text-1)}.trip .badge{color:var(--primary);-webkit-text-fill-color:var(--primary)}.trip .badge.off{color:var(--text-3);-webkit-text-fill-color:var(--text-3)}.trip .badge.new{color:var(--accent);-webkit-text-fill-color:var(--accent)}.trip .when{font-weight:500;font-size:12px;line-height:16px;color:var(--text-3);-webkit-text-fill-color:var(--text-3);margin:4px 0 8px}.trip .tag{color:var(--text-2);-webkit-text-fill-color:var(--text-2)}.kb{position:absolute;top:14px;right:20px;z-index:2;width:28px;height:28px;padding:0;border:none;background:none;border-radius:8px;display:flex;align-items:center;justify-content:center}.kb:active{background:var(--bg-sub)}.kb:after{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}.trip-new{background:var(--bg-sub);border:none;padding:16px 20px 16px 24px;display:flex;align-items:center;width:100%;min-height:76px;border-radius:var(--r-lg);text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none}.trip-new,.trip-new .place{color:var(--text-1);-webkit-text-fill-color:var(--text-1)}.trip-new .place{font-weight:600;font-size:16px;line-height:24px}.trip-new .when{font-weight:500;font-size:12px;line-height:16px;color:var(--text-3);-webkit-text-fill-color:var(--text-3)}.trip-new .fab{width:28px;height:28px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;margin-left:auto;flex:none}.trip-new:active .fab{background:#2673e0}.tags{display:flex;gap:8px;flex-wrap:wrap}.tag{padding:6px 10px;border-radius:var(--r-sm);background:var(--bg-sub);color:var(--text-2);font-weight:500;font-size:12px;line-height:16px}.share-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.share-tip{top:calc(100% + 10px);width:max-content;max-width:min(280px,calc(100vw - 48px));padding:10px 14px;background:var(--text-1);color:#fff;-webkit-text-fill-color:#fff;font-weight:500;font-size:12px;line-height:16px;border:none;border-radius:var(--r-sm);text-align:center;z-index:3;-webkit-appearance:none;-moz-appearance:none;appearance:none}.share-tip,.share-tip:after{position:absolute;left:50%;transform:translateX(-50%)}.share-tip:after{content:"";bottom:100%;border:6px solid transparent;border-bottom:6px solid var(--text-1)}.share-btn{height:32px;padding:0 20px;border-radius:999px;background:var(--primary);color:#fff;-webkit-text-fill-color:#fff;font-weight:500;font-size:14px;line-height:21px;border:none;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,transform .1s ease}.share-btn:hover{box-shadow:0 0 8px var(--primary)}.share-btn:active{background:var(--primary-sub);box-shadow:none}.dim{position:absolute;inset:0;background:rgba(58,58,58,.5);z-index:40;display:flex;align-items:center;justify-content:center;padding:24px}.confirm{width:320px;min-height:192px;background:var(--bg);border-radius:var(--r-sm);overflow:hidden;box-shadow:0 0 4px rgba(0,0,0,.25);display:flex;flex-direction:column}.confirm .msg{flex:1 1;display:flex;align-items:center;justify-content:center;padding:0 24px;font-weight:400;font-size:16px;line-height:24px;text-align:center;white-space:pre-line}.confirm .acts,.dialog .acts{display:flex;border-top:1px solid var(--bg-sub);height:48px}.confirm .acts button,.dialog .acts button{flex:1 1;border:none;background:var(--bg);font-size:16px;line-height:24px;color:var(--text-3)}.confirm .acts button+button,.dialog .acts button+button{border-left:1px solid var(--bg-sub);color:var(--primary)}.confirm .acts button.off,.dialog .acts button.off{color:var(--line);cursor:not-allowed}.dialog{width:320px;height:312px;background:var(--bg);border-radius:var(--r-sm);overflow:hidden;box-shadow:var(--shadow-card);display:flex;flex-direction:column}.dialog .con{padding:20px 24px 0;flex:1 1;display:flex;flex-direction:column;min-height:0}.dialog .tt{font-weight:600;font-size:20px;line-height:28px;margin-bottom:8px;color:var(--text-1)}.dialog .ds{position:relative;flex:1 1;min-height:0;font-weight:400;font-size:16px;line-height:24px;color:var(--text-3);text-align:left}.dialog .ds .typed{color:var(--text-1)}.dialog .ds .ph{top:0;right:0;white-space:pre-line;font-size:16px;line-height:24px;color:var(--text-3);text-align:left}.dialog .ds .caret,.dialog .ds .ph{position:absolute;left:0;pointer-events:none}.dialog .ds .caret{top:4px;width:2px;height:16px;background:var(--primary);z-index:2;animation:dialog-caret 1.06s step-end infinite}@keyframes dialog-caret{50%{opacity:0}}.dialog input,.dialog textarea{position:relative;z-index:1;width:100%;height:24px;min-height:24px;max-height:184px;border:none;outline:none;font-size:16px;line-height:24px;color:var(--text-1);background:transparent;padding:0;margin:0;caret-color:var(--primary);resize:none;overflow:hidden;white-space:pre-wrap;word-break:break-word;display:block;text-align:left;text-align-last:left}.dialog input.empty,.dialog textarea.empty{color:transparent;caret-color:transparent}.menu-back{position:fixed;inset:0;z-index:29}.menu{position:fixed;z-index:30;width:179px;border-radius:var(--r-xs);box-shadow:var(--shadow-menu);overflow:hidden;padding:4px 0}.menu,.menu button{background:var(--bg)}.menu button{display:block;width:100%;text-align:left;height:44px;padding:0 16px;border:none;font-size:16px;line-height:24px;color:var(--text-1)}.menu button:active,.menu button:hover{background:var(--primary-25)}.toast-wrap{position:absolute;left:50%;transform:translateX(-50%);top:calc(12px + env(safe-area-inset-top));width:min(345px,calc(100% - 48px));z-index:50}.toast-wrap.bottom{top:auto;bottom:calc(24px + env(safe-area-inset-bottom))}.toast-wrap.bottom.raised{bottom:calc(80px + env(safe-area-inset-bottom))}.toast{height:48px;background:rgba(58,58,58,.8);border-radius:var(--r-sm);display:flex;align-items:center;padding:0 24px;gap:12px}.toast .msg{flex:1 1;color:#fff}.toast .act,.toast .msg{font-weight:500;font-size:14px;line-height:21px}.toast .act{color:var(--primary);background:none;border:none;white-space:nowrap}.cat-head{min-height:60px;display:flex;align-items:center;padding:0 24px 0 20px;gap:12px;border-top:1px solid var(--bg-sub);background:var(--bg);width:100%;text-align:left;cursor:pointer}.cat-head .title{flex:1 1;min-width:0;font-weight:600;font-size:16px;line-height:24px;color:var(--primary-sub);white-space:normal;overflow:visible;overflow-wrap:break-word;word-break:keep-all}.cat-head .grow{flex:1 1}.cat-head .hint{font-weight:500;font-size:12px;line-height:16px;color:var(--text-3);flex:none}.row{position:relative;min-height:48px;height:auto;display:flex;align-items:center;padding:8px 24px 8px 28px;gap:24px;background:var(--bg);width:100%;text-align:left;border:none;touch-action:pan-y}.row.sub{min-height:64px}.row:before{content:"";position:absolute;top:0;left:28px;right:28px;height:1px;background:var(--bg-sub)}.row .body{flex:1 1;min-width:0;display:flex;flex-direction:column;justify-content:center}.row .name{font-weight:400;font-size:16px;line-height:24px;color:var(--text-1);overflow:visible;overflow-wrap:break-word}.row .desc,.row .name{white-space:normal;word-break:keep-all}.row .desc{font-weight:500;font-size:12px;line-height:16px;color:var(--text-3);margin-top:2px;overflow:visible}.row .desc.overpack{color:var(--accent);opacity:.75;display:flex;align-items:center;gap:4px}.row .name-add{color:var(--primary)}.row .name-ph{color:var(--text-3)}.row.muted{opacity:.25;pointer-events:none}.row input{width:100%;border:none;outline:none;font-size:16px;line-height:24px;background:transparent;color:var(--text-1);caret-color:var(--primary)}.row input.add-inline{white-space:nowrap;overflow-x:auto;overflow-y:hidden;word-break:normal}.row input::placeholder{color:var(--text-3)}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex:none}.row-actions.edit{gap:24px}.cbx{width:20px;height:20px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--line);background:transparent;padding:0}.cbx.on{background:var(--primary);border-color:var(--primary)}.cbx.del{background:var(--accent);border-color:var(--accent)}.cbx.add{border:1.5px dashed var(--primary)}.listrow{position:relative;height:56px;display:flex;align-items:center;padding:0 32px;background:var(--bg);width:100%;border:none;text-align:left;color:var(--text-1);-webkit-text-fill-color:var(--text-1);-webkit-appearance:none;-moz-appearance:none;appearance:none}.listrow:before{content:"";position:absolute;top:0;left:28px;right:28px;height:1px;background:var(--bg-sub)}.listrow .lab{flex:1 1;font-weight:400;font-size:16px;line-height:24px;color:var(--text-1);-webkit-text-fill-color:var(--text-1)}.listrow .hit{position:relative;width:24px;height:24px;flex:none;margin:0;display:flex;align-items:center;justify-content:center}.listrow .hit:after{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}.reco-row{display:flex;gap:12px;overflow-x:auto;padding:12px 20px 8px;scrollbar-width:none;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.reco-row:active{cursor:-webkit-grabbing;cursor:grabbing}.reco-head{font-weight:400;font-size:16px;line-height:24px;margin-top:28px}.reco-more{text-align:center;color:var(--text-3);font-weight:500;font-size:14px;line-height:21px;padding:24px 24px 28px;pointer-events:none}.reco-more+section .cat-head{border-top:1px solid var(--bg-sub)}.reco-row::-webkit-scrollbar{display:none}.reco{width:298px;min-width:298px;height:107px;border-radius:var(--r-sm);background:var(--bg);box-shadow:var(--shadow-card);border:none;padding:20px;display:flex;gap:16px;flex:none}.reco .txt{flex:1 1;font-weight:400;font-size:16px;line-height:20px}.reco .src{font-weight:500;font-size:12px;line-height:16px;color:var(--text-3);margin-top:10px}.reco .thumb{width:50px;height:50px;border-radius:var(--r-xs);background:var(--bg-sub);flex:none}.actionbar{flex:none;height:calc(64px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--text-3);display:flex;align-items:center;padding:0 20px env(safe-area-inset-bottom) 28px}.actionbar .cnt{font-weight:600;font-size:16px;line-height:24px}.actionbar .act{margin-left:auto;font-weight:500;font-size:14px;line-height:21px;color:var(--accent);background:none;border:none}.actionbar .act.off{color:var(--text-3);cursor:not-allowed}.footer-legal{padding-top:24px;display:flex;flex-direction:column;align-items:center;border-top:1px solid var(--bg-sub);gap:48px}.addcat{height:32px;padding:0 20px;border-radius:16px;background:var(--primary);color:#fff;font-weight:600;font-size:13px;line-height:20px;border:none;display:inline-flex;align-items:center;justify-content:center}.legalwrap{width:100%;background:linear-gradient(to bottom,var(--bg),var(--bg-sub) 32px);padding:20px 20px 24px}.legal,.legal2{color:var(--text-3);font-weight:500;font-size:9px;line-height:12px;margin:0}.legal2 a{text-decoration:underline}.legaldiv{height:1px;background:var(--line);margin:10px 0}.empty{margin:24px;padding:32px 20px;border-radius:var(--r-lg);background:var(--bg-sub);text-align:center;color:var(--text-3);font-weight:500;font-size:12px;line-height:16px}.empty.tight{margin:8px 20px;padding:16px}.float-count{position:absolute;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(0);z-index:15;display:flex;align-items:center;justify-content:center;width:120px;height:28px;gap:9px;border-radius:100px;background:#fff;color:var(--text-3);font-weight:500;font-size:14px;line-height:21px;box-shadow:0 0 8px rgba(0,0,0,.25);transition:transform .28s ease,opacity .28s ease;pointer-events:auto}.float-count.off{transform:translateX(-50%) translateY(120%);opacity:0;pointer-events:none}.float-count .n{display:flex;align-items:center;gap:6px}.float-count .div{width:1px;height:18px;background:var(--line);flex:none}.loading-dim{position:absolute;inset:0;z-index:45;background:rgba(255,255,255,.82);display:flex;align-items:center;justify-content:center}.loading-dim img{display:block;width:72px;height:72px}.sheet{position:absolute;left:0;right:0;bottom:0;background:var(--bg);border-radius:24px 24px 0 0;padding:44px 24px 24px;z-index:41;max-height:80%;overflow:auto}.sheet-list{display:flex;flex-direction:column;gap:16px}.sheet-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:24px;font-weight:600;font-size:16px;line-height:24px;color:var(--text-1);text-decoration:none}.sheet-note{margin:0;padding:11px 16px;border-radius:var(--r-sm);background:var(--bg-sub);font-weight:500;font-size:14px;line-height:21px;color:var(--text-3);white-space:pre-wrap}.sheet-list+.sheet-note{margin-top:24px}.sheet-close{margin-top:20px;width:100%;height:48px;border:none;border-radius:var(--r-md);background:var(--primary);color:#fff;font-weight:600;font-size:16px}.skel{background:var(--bg-sub);border-radius:8px;height:16px;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}