:root{--paper:#f7f1e5;--card:#fffdf8;--ink:#241f1b;--muted:#5a5149;--faint:#756a5d;--line:#e3d8c6;--line2:#d4c6ae;--tomato:#c8462b;--teal:#2e6f75;--teal-bg:#ddebe9;--tape:#f2d98ad9;--mustard:#f2d98a;--hand:"Mali", cursive;--body:"IBM Plex Sans Thai", system-ui, sans-serif;--mono:var(--body)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;background:#e9e1d2;margin:0}button,input,select,textarea{color:inherit;font-family:inherit}button{cursor:pointer}a{color:inherit}.app{background:var(--paper);flex-direction:column;max-width:440px;min-height:100dvh;margin:0 auto;display:flex;position:relative}.dots{background-color:var(--paper);background-image:radial-gradient(var(--line) 1px, transparent 1px);background-size:18px 18px}.hand{font-family:var(--hand)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:500}.muted{color:var(--muted)}.small{font-size:13px}.pad{padding:0 20px}.grow{flex:auto;min-height:0}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between;align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:10px;display:flex}.wrap{flex-wrap:wrap}.scroll-x{white-space:nowrap;scrollbar-width:none;gap:6px;display:flex;overflow-x:auto}.scroll-x::-webkit-scrollbar{display:none}.topbar{flex-shrink:0;grid-template-columns:1fr minmax(0,max-content) 1fr;align-items:center;gap:4px;height:56px;padding:8px 8px 0;display:grid}.topbar .title{text-overflow:ellipsis;white-space:nowrap;text-align:center;min-width:0;font-size:16px;font-weight:600;overflow:hidden}.topbar .tb-l,.topbar .tb-r{align-items:center;gap:2px;min-width:44px;display:flex}.topbar .tb-r{justify-content:flex-end}.backlink{cursor:pointer;min-width:44px;height:44px;color:var(--ink);font:inherit;background:0 0;border:0;border-radius:10px;align-items:center;gap:2px;min-width:0;max-width:100%;margin-left:-4px;padding:0 10px 0 4px;font-size:14px;font-weight:600;display:inline-flex}.backlink span{text-overflow:ellipsis;white-space:nowrap;max-width:180px;overflow:hidden}.backlink:active{transform:scale(.97)}.iconbtn{background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;text-decoration:none;display:flex}.h1{font-family:var(--hand);margin:0;font-size:28px;font-weight:700;line-height:1.2}.label{color:var(--muted);font-size:13px;font-weight:600}.card{background:var(--card);border:1px solid var(--line);border-radius:14px}.list>*+*{border-top:1px dashed var(--line)!important}.card.list>:first-child{border-top-left-radius:13px;border-top-right-radius:13px}.card.list>:last-child{border-bottom-right-radius:13px;border-bottom-left-radius:13px}.item{padding:12px 14px}.btn{border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;width:100%;height:54px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.btn:disabled{opacity:.45;cursor:default}.btn.dark{background:var(--ink);color:var(--paper)}.btn.red{background:var(--tomato);color:#fff}.btn.line{background:var(--card);border:1px solid var(--ink);color:var(--ink);height:50px;font-size:15px}.btn.ghost{color:var(--muted);background:0 0;height:40px;font-size:14px;font-weight:500}.btn.danger{border:1.5px solid var(--tomato);color:var(--tomato);background:0 0;height:48px;font-size:14px}.pill{border:1px solid var(--ink);background:var(--card);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;height:34px;padding:0 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.pill.on{background:var(--ink);color:var(--paper);border-width:2px}.pill.soft{border-color:var(--line2);font-weight:500}.pill.red{border-color:var(--tomato);color:var(--tomato)}.chip{border:1px solid var(--line2);background:var(--card);border-radius:999px;flex-shrink:0;height:32px;padding:0 12px;font-size:12px;font-weight:600}.chip.on{background:var(--ink);color:var(--paper);border:2px solid var(--ink)}.chip:disabled{color:#bdb2a2;border-color:var(--line);cursor:not-allowed;background:0 0}.input{border:1px solid var(--line2);background:var(--card);border-radius:12px;width:100%;height:46px;padding:0 14px;font-size:16px}.input:focus{outline:2px solid var(--ink);outline-offset:-1px}.input.sm{background:var(--paper);border-color:var(--line);border-radius:10px;height:40px;padding:0 10px;font-size:14px}.input.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right}.field{flex-direction:column;gap:6px;display:flex}.av{border:2px solid var(--paper);width:34px;height:34px;color:var(--ink);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.av-stack{display:flex}.av-stack .av{width:28px;height:28px;margin-left:-8px;font-size:12px}.av-stack .av:first-child{margin-left:0}.pick{width:36px;height:36px;color:var(--faint);background:0 0;border:1.5px dashed #b5a892;border-radius:50%;flex-shrink:0;font-size:13px;font-weight:600}.pick.on{border:2px solid var(--ink);color:var(--ink);animation:.22s ease-out pop}.seg{background:#ede4d3;border-radius:999px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.seg button{height:38px;color:var(--muted);background:0 0;border:none;border-radius:999px;font-size:14px;font-weight:600}.seg button.on{background:var(--ink);color:var(--paper)}.switch{background:var(--line2);border:none;border-radius:13px;flex-shrink:0;width:44px;height:26px;position:relative}.switch:after{content:"";background:var(--card);border-radius:50%;width:20px;height:20px;transition:left .15s;position:absolute;top:3px;left:3px}.switch.on{background:var(--teal)}.switch.on:after{left:21px}.stamp{font-family:var(--hand);background:var(--card);border:2px solid;border-radius:6px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-block}.stamp.red{color:var(--tomato)}.stamp.teal{color:var(--teal)}.stamp.in{animation:.4s cubic-bezier(.2,.8,.3,1.2) both stampIn}.sheet-bg{z-index:50;background:#2a24208c;flex-direction:column;justify-content:flex-end;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.sheet{background:var(--paper);width:100%;max-width:440px;padding:12px 20px calc(24px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;flex-direction:column;gap:14px;max-height:90dvh;margin:0 auto;animation:.3s cubic-bezier(.2,.8,.3,1) sheetUp;display:flex;overflow-y:auto}.grab{background:var(--line2);border-radius:3px;flex-shrink:0;align-self:center;width:44px;height:5px}.consent{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:55;background:var(--card);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:12px;max-width:416px;margin:0 auto;padding:16px;display:flex;position:fixed;box-shadow:0 18px 44px #2a242038}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));background:var(--ink);width:min(400px,100% - 40px);color:var(--paper);z-index:60;border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:13px;animation:.25s ease-out fadeUp;display:flex;position:fixed;transform:translate(-50%)}.err{color:#8e2e1b;background:#f6ddd6;border-radius:12px;padding:10px 12px;font-size:13px}.note{background:var(--teal-bg);border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.5}.footer{padding:10px 20px calc(20px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--paper);flex-shrink:0;position:sticky;bottom:0}.tape{background:var(--tape);height:18px;position:absolute}.spinner{border:2.5px solid var(--line2);border-top-color:var(--tomato);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.9s linear infinite spin}.center{justify-content:center;align-items:center;display:flex}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes stampIn{0%{opacity:0;transform:scale(1.9)rotate(-8deg)}55%{opacity:1;transform:scale(.9)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(-8deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes popIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes dropIn{0%{opacity:0;transform:translateY(-40px)rotate(-3deg)}70%{opacity:1;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes sweep{0%{top:-6%}50%{top:100%}to{top:-6%}}@keyframes printOut{0%{clip-path:inset(0 0 100%);transform:translateY(-18px)}to{clip-path:inset(0 0 -20px);transform:none}}@keyframes rowIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@keyframes fall{0%{transform:translateY(-40px)rotate(0)}to{transform:translateY(110vh)rotate(540deg)}}.pop-in{animation:.35s ease-out both popIn}.drop-in{animation:.55s cubic-bezier(.3,.7,.3,1.1) both dropIn}.confetti{pointer-events:none;z-index:70;position:fixed;inset:0;overflow:hidden}.confetti i{width:10px;height:16px;animation:1.6s cubic-bezier(.3,.4,.6,1) both fall;position:absolute;top:0}.btn,.pill,.chip,.iconbtn,.seg button,.pick{transition:transform .12s ease-out,background-color .15s,color .15s}.btn:not(:disabled):active,.pill:not(:disabled):active,.chip:not(:disabled):active,.iconbtn:active,.seg button:active,.pick:active{transform:scale(.95)}.press{transition:transform .15s ease-out}.press:active{transform:scale(.97)}.app>*{animation:.2s ease-out pageIn}@keyframes pageIn{0%{opacity:0}to{opacity:1}}.sheet-bg.closing{animation:.2s ease-in forwards fadeOut}.sheet-bg.closing .sheet{animation:.2s ease-in forwards sheetDown}@keyframes fadeOut{to{opacity:0}}@keyframes sheetDown{to{transform:translateY(100%)}}.book{transition:transform .2s cubic-bezier(.2,.8,.3,1.2)}.book:active{transform:scale(1.04)rotate(1deg)}.bump{animation:.25s ease-out pop}.draw-in{animation:1.2s ease-out .2s both drawIn}@keyframes drawIn{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.pill:disabled,.chip:disabled{opacity:.4;cursor:default}input[type=date].input{appearance:none;min-width:0}.badge{background:var(--tomato);color:#fff;border:2px solid var(--paper);border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:flex;position:absolute;top:6px;right:5px}.dock{max-width:440px;padding:0 12px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--paper) 70%, #f7f1e500);z-index:5;grid-template-columns:1fr 1fr 84px 1fr 1fr;align-items:center;height:112px;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.dock a.tool{color:var(--ink);flex-direction:column;align-items:center;gap:3px;padding:6px 0;font-size:12px;font-weight:600;text-decoration:none;display:flex}.dock a.tool span.ic{background:var(--card);border:1px solid var(--line2);border-radius:14px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.polaroid{background:#fff;border-radius:3px;padding:6px 6px 18px;box-shadow:0 6px 14px #2a242024}.memo{background:#fff8da;border-radius:4px 12px 12px 4px;box-shadow:0 4px 10px #2a242012}.sticker{font-family:var(--hand);background:var(--mustard);color:var(--ink);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700;display:inline-block}.textarea{resize:vertical;height:auto;min-height:96px;padding:12px 14px;line-height:1.5}.dialog-bg{z-index:80;background:#2a24208c;justify-content:center;align-items:center;padding:24px;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.dialog{background:var(--paper);border-radius:20px;flex-direction:column;gap:8px;width:100%;max-width:340px;padding:22px 20px 14px;animation:.2s ease-out popIn;display:flex;box-shadow:0 20px 40px #2a242040}.diary-card{filter:drop-shadow(0 4px 8px #2a242014)}.zig{background:var(--card);border-radius:10px 10px 0 0;padding:10px 12px 16px;display:block;-webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 6px) no-repeat,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/12px 6px repeat-x;mask:linear-gradient(#000 0 0) top/100% calc(100% - 6px) no-repeat,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/12px 6px repeat-x}.stk{font-family:var(--hand);background:var(--card);white-space:nowrap;border:2px solid;border-radius:7px;padding:2px 9px;font-weight:700;line-height:1.3;display:inline-block;box-shadow:0 2px #2a242014}@keyframes ticketUp{0%{opacity:0;transform:translateY(120px)rotate(3deg)}75%{opacity:1;transform:translateY(-6px)rotate(-.5deg)}to{opacity:1;transform:none}}.ticket-up{animation:.8s cubic-bezier(.3,.7,.3,1) .2s both ticketUp}.fade-late{animation:.4s ease-out 1s both popIn}.skel{background:linear-gradient(90deg,#e9dfcc 0%,#f3ecdf 50%,#e9dfcc 100%) 0 0/200% 100%;flex-shrink:0;animation:1.3s ease-in-out infinite skel;display:block}@keyframes skel{0%{background-position:100% 0}to{background-position:-100% 0}}.shelf-grid{grid-template-columns:1fr 1fr;gap:22px 16px;display:grid}.sidenav,.desktop-only{display:none}.nav-item{height:42px;color:var(--ink);border-radius:12px;flex-shrink:0;align-items:center;gap:10px;padding:0 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:#efe6d6}.nav-item.on{background:var(--ink);color:var(--paper);font-weight:600}.idea-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px;display:grid}@media (width>=768px){.app{max-width:720px;box-shadow:0 0 0 1px var(--line)}.shelf-grid,.idea-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sheet-bg{justify-content:center;align-items:center;padding:24px}.sheet{border-radius:24px;max-width:520px;padding-bottom:24px;animation:.22s ease-out popIn;box-shadow:0 24px 60px #2a24204d}.sheet-bg.closing .sheet{animation:.18s ease-in forwards fadeOut}.sheet .grab{display:none}}@media (width>=1024px){body{background-color:var(--paper);background-image:radial-gradient(var(--line) 1px, transparent 1px);background-size:18px 18px}.shell.has-nav .app .dots{background:0 0}:is(.app:has(>.split),.app:has(>.landing)){max-width:none;box-shadow:none;background:0 0}.landing{box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto;padding:0 40px}.landing .float-a{animation:5s ease-in-out infinite floaty}.landing .float-b{animation:6s ease-in-out infinite reverse floaty}@keyframes floaty{50%{transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.landing .float-a,.landing .float-b{animation:none}}.split{box-sizing:border-box;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:100dvh;padding:16px;display:grid}.split-art{background:radial-gradient(120% 90% at 30% 20%,#fce3d2 0%,#f6d9b8 38%,#cfe3df 100%);border-radius:28px;justify-content:center;align-items:center;display:flex;overflow:hidden}.mobile-only{display:none!important}.consent{width:380px;margin:0;bottom:24px;left:auto;right:24px}.desktop-only{display:revert}.shell.has-nav{grid-template-columns:264px minmax(0,1fr);min-height:100dvh;display:grid}.sidenav{border-right:1px solid var(--line);background:#f2eadb;flex-direction:column;gap:2px;height:100dvh;padding:22px 14px 18px;display:flex;position:sticky;top:0}.shell.has-nav .app{width:100%;max-width:760px;box-shadow:none;background:0 0}.shell.has-nav .app:has(>.wide){max-width:1240px}.shell.has-nav .app:has(>.bill-layout){max-width:1060px}.shell.has-nav .dock,.shell.has-nav .fixed-bar{left:264px!important}.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:30px 22px}.idea-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.pad{padding-left:32px;padding-right:32px}.trip-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:28px;padding-right:32px;display:grid}.trip-aside{flex-direction:column;gap:10px;padding-top:12px;display:flex;position:sticky;top:20px}.days-wrap{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;column-gap:24px;row-gap:0!important;display:grid!important}.days-wrap>:not(.days-map):not(.dock){margin-bottom:12px}.days-wrap>*{grid-column:1}.days-wrap>.days-map{grid-area:1/2/span 60;position:sticky;top:16px}.days-wrap>.dock{border-radius:16px 16px 0 0;max-width:none;margin:0;bottom:0;right:auto;position:sticky!important;left:auto!important}.wide .seg{max-width:380px}.docs-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid;box-shadow:none!important;background:0 0!important;border:0!important}.docs-list>*{background:var(--card)!important;border:1px solid var(--line)!important;border-radius:13px!important}.docs-page>.footer{background:0 0;border-top:0}.docs-page>.footer>.btn{max-width:440px;margin:0 auto;display:flex}.trip-grid>div:first-child{padding-left:12px}.bill-layout{grid-template-rows:auto auto 1fr;grid-template-columns:minmax(0,1fr) 340px;align-items:start;column-gap:28px;display:grid!important}.bill-layout>*{grid-column:1}.bill-layout>.topbar{grid-column:1/-1}.bill-layout>.footer{border:1px solid var(--line);background:var(--card);border-radius:18px;grid-area:2/2/span 2;margin-right:24px;padding:16px;position:sticky;top:16px}}
