@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";:root{--red:#c94a3a;--red-deep:#a83628;--red-soft:#f8e6e1;--orange:#d8893a;--orange-soft:#fff0de;--green:#2f9a6a;--green-soft:#e5f6ee;--blue:#1677ff;--ink:#1c1611;--muted:#7a6e63;--paper:#f4eee6;--card:#fffdf9;--line:#e8dccb;--shadow:0 8px 24px #46281014;--sans:"Noto Sans SC", "PingFang SC", sans-serif;--serif:"Noto Serif SC", "Songti SC", serif;--ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;background:#d9cbb8}:is(body:has(.admin-root),body:has(.admin-login),body:has(.admin-boot)){background:#1c1611}button,input,select,textarea{font-family:inherit}button{cursor:pointer}button.hotel-card,button.share-card,button.route-card,button.spot-card,button.city-card{color:inherit;font:inherit;padding:0}button.banner{text-align:left;border:0;width:100%;padding:0}button.notice,button.plan-entry,button.panel{font:inherit;color:inherit}a{color:inherit;text-decoration:none}img{object-fit:cover;width:100%;height:100%;display:block}.stage{background:radial-gradient(900px 500px at 12% -10%,#f3d3b4,#0000 55%),radial-gradient(800px 480px at 110% 110%,#c9dcc8,#0000 50%),#e7dccb;place-items:center;min-height:100svh;padding:20px;display:grid}.phone{background:var(--paper);flex-direction:column;width:min(390px,100%);height:min(844px,100svh);display:flex;position:relative;overflow:hidden;box-shadow:0 30px 80px #321c0838}.phone-notch{z-index:20;pointer-events:none;background:#1d1712;border-radius:16px;width:118px;height:22px;position:absolute;top:8px;left:50%;transform:translate(-50%)}@media (width>=520px){.phone{border:9px solid #1d1712;border-radius:36px;height:844px}}@media (width<=480px){.stage{background:var(--paper);padding:0}.phone{width:100%;height:100svh;box-shadow:none}.phone-notch{display:none}}.navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;background:#f4eee6eb;flex:none;grid-template-columns:44px 1fr 44px;align-items:center;height:52px;margin-top:36px;padding:0 10px;display:grid}.navbar h1{text-align:center;letter-spacing:.04em;margin:0;font-size:17px;font-weight:700}.nav-btn{width:36px;height:36px;color:var(--ink);transition:background .2s var(--ease);background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.nav-btn:active{background:#0000000d}.brand-mark{background:var(--red);color:#fff;width:28px;height:28px;font-family:var(--serif);border-radius:8px;place-items:center;font-size:14px;display:grid}.nav-right{justify-content:flex-end;display:flex}.page{-webkit-overflow-scrolling:touch;animation:page-in .35s var(--ease);flex:1;padding:4px 16px 24px;overflow:auto}.page.with-tab{padding-bottom:84px}.page.with-cta{padding-bottom:96px}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.sticky-cta{background:linear-gradient(180deg, transparent, var(--paper) 32%);z-index:6;padding:8px 16px 16px;position:absolute;bottom:0;left:0;right:0}.cta-wrap{flex-direction:column;gap:8px;display:flex}.cta-hint{color:var(--muted);justify-content:space-between;align-items:baseline;padding:0 2px;font-size:12px;display:flex}.cta-hint b{color:var(--red);font-size:15px}.tabbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);z-index:6;background:#fffdf9f0;grid-template-columns:1fr 1fr 1fr;height:64px;padding-bottom:6px;display:grid;position:absolute;bottom:0;left:0;right:0}.tab{color:#9a8d82;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:500;transition:color .2s;display:flex}.tab.on.red{color:var(--red)}.tab.on.orange{color:var(--orange)}.tab.on.green{color:var(--green)}.banner{color:#fff;height:176px;box-shadow:var(--shadow);border-radius:20px;position:relative;overflow:hidden}.banner img{transition:transform 6s;transform:scale(1.04)}.banner:hover img{transform:scale(1.1)}.banner .copy{z-index:2;position:absolute;bottom:18px;left:16px;right:16px}.banner h3{font-family:var(--serif);animation:fade-up .45s var(--ease);margin:0;font-size:22px;font-weight:700}.banner p{opacity:.92;margin:6px 0 0;font-size:12px}.banner:after{content:"";background:linear-gradient(#0000 28%,#140a04ad);position:absolute;inset:0}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.dots{z-index:2;gap:5px;display:flex;position:absolute;bottom:12px;right:14px}.dots i{width:6px;height:6px;transition:width .3s var(--ease), background .3s;background:#fff6;border-radius:99px}.dots i.on{background:#fff;width:16px}.notice{background:var(--card);border:1px solid var(--line);color:var(--muted);border-radius:14px;align-items:center;gap:8px;width:100%;margin-top:10px;padding:10px 12px;font-size:12px;display:flex;box-shadow:0 2px 8px #46281008}.notice b{color:var(--red);background:var(--red-soft);border-radius:6px;padding:2px 6px;font-size:11px}.notice span{white-space:nowrap;text-overflow:ellipsis;text-align:left;flex:1;overflow:hidden}.plan-entry{color:#fff;text-align:left;width:100%;transition:transform .2s var(--ease);background:radial-gradient(120px 80px at 90% 10%,#ffffff38,#0000),linear-gradient(135deg,#c94a3a,#e07a45);border:0;border-radius:22px;margin-top:14px;padding:18px 16px 14px;position:relative;overflow:hidden;box-shadow:0 14px 28px #c94a3a47}.plan-entry:active{transform:scale(.985)}.plan-entry .plan-cta{background:#fff3;border-radius:999px;padding:4px 10px;font-size:12px;position:absolute;top:16px;right:14px}.plan-entry h3{font-family:var(--serif);margin:0;font-size:21px}.plan-entry p{opacity:.92;max-width:78%;margin:6px 0 14px;font-size:12px}.plan-grid{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.plan-grid div{text-align:center;background:#ffffff29;border-radius:12px;padding:10px 8px}.plan-grid strong{font-size:12px;display:block}.plan-grid em{opacity:.85;font-size:10px;font-style:normal}.section-title{justify-content:space-between;align-items:baseline;margin:22px 0 10px;display:flex}.section-title h2{font-size:16px;font-family:var(--serif);margin:0;padding-left:10px;position:relative}.section-title h2:before{content:"";background:var(--red);border-radius:99px;width:3px;position:absolute;top:4px;bottom:4px;left:0}.section-title button{color:var(--muted);background:0 0;border:0;font-size:12px}.hscroll{scrollbar-width:none;gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.hscroll::-webkit-scrollbar{display:none}.route-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .2s var(--ease);border-radius:18px;flex:0 0 228px;overflow:hidden}.route-card:active{transform:scale(.98)}.route-card .cover{height:118px;position:relative}.route-card .cover .badge{color:#fff;z-index:1;background:#1c1611b8;border-radius:999px;padding:3px 8px;font-size:10px;position:absolute;top:8px;left:8px}.route-card .body{text-align:left;padding:10px 12px 12px}.route-card h3{margin:0;font-size:14px}.route-card p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 0;font-size:11px;line-height:1.45;display:-webkit-box;overflow:hidden}.share-card,.spot-card,.hotel-card,.city-card,.order-card,.panel{background:var(--card);border:1px solid var(--line);border-radius:16px}.share-list{flex-direction:column;gap:10px;display:flex}.share-card{min-height:96px;box-shadow:var(--shadow);grid-template-columns:1fr 96px;display:grid;overflow:hidden}.share-card .body{text-align:left;padding:12px}.share-card h3{margin:0;font-size:14px;line-height:1.4}.share-card p{color:var(--muted);margin:6px 0 0;font-size:11px}.spot-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.spot-card{box-shadow:var(--shadow);overflow:hidden}.spot-card .cover{height:100px}.spot-card .body{text-align:left;padding:8px 10px 10px}.spot-card h3{margin:0;font-size:13px}.spot-card p{color:var(--muted);align-items:center;gap:3px;margin:2px 0 0;font-size:11px;display:flex}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip,.opt,.month{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;align-items:center;gap:4px;padding:8px 12px;font-size:13px;transition:background .2s,border-color .2s,color .2s,transform .15s;display:inline-flex}.chip:active,.opt:active,.month:active{transform:scale(.97)}.chip.on,.opt.on,.month.on{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 6px 14px #c94a3a40}.opt{text-align:left;border-radius:16px;width:100%;padding:12px 12px 10px;position:relative}.opt small{color:var(--muted);margin-top:2px;font-size:11px;display:block}.opt.on small{color:#ffffffd9}.opt .hot{background:var(--orange-soft);color:var(--orange);border-radius:999px;padding:1px 6px;font-size:10px;position:absolute;top:8px;right:8px}.opt.on .hot{color:#fff;background:#ffffff38}.opt-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.steps{grid-template-columns:1fr 1fr 1fr 1fr;gap:0;margin:0 0 12px;padding:8px 0 4px;list-style:none;display:grid;position:relative}.steps li{color:#b4a89c;flex-direction:column;align-items:center;gap:5px;font-size:11px;display:flex;position:relative}.steps i{z-index:1;background:#efe6d8;border-radius:99px;place-items:center;width:24px;height:24px;font-size:11px;font-style:normal;font-weight:600;transition:background .25s,color .25s;display:grid}.step-line{z-index:0;background:#efe6d8;width:100%;height:2px;position:absolute;top:11px;right:50%}.step-line.on{background:var(--red)}.steps .done,.steps .now{color:var(--red)}.steps .done i,.steps .now i{background:var(--red);color:#fff}.steps .now i{box-shadow:0 0 0 4px var(--red-soft)}.btn{background:linear-gradient(180deg, #d45745, var(--red-deep));color:#fff;border:0;border-radius:14px;width:100%;height:48px;font-size:15px;font-weight:600;transition:transform .15s,opacity .2s;box-shadow:0 8px 18px #a8362847}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.4;box-shadow:none}.btn.ghost{background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:none}.btn.green{background:linear-gradient(#1ad06d,#07a350);box-shadow:0 8px 18px #07a35047}.btn.blue{background:linear-gradient(#3d8dff,#1464e0);box-shadow:0 8px 18px #1677ff47}.btn-row{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.hotel-card{box-shadow:var(--shadow);grid-template-columns:100px 1fr;margin-bottom:10px;transition:box-shadow .2s,outline-color .2s;display:grid;position:relative;overflow:hidden}.hotel-card.selected{outline:2px solid var(--red);outline-offset:-1px;box-shadow:0 8px 20px #c94a3a26}.hotel-card .cover{height:104px;position:relative}.hotel-card .body{text-align:left;padding:10px 12px}.hotel-card h3{margin:0;padding-right:18px;font-size:14px}.meta{color:var(--muted);align-items:center;gap:4px;margin:4px 0;font-size:11px;display:flex}.score{color:var(--orange);align-items:center;gap:2px;display:inline-flex}.price{color:var(--red);font-size:15px;font-weight:700}.price em{color:var(--muted);font-size:11px;font-style:normal;font-weight:500}.tags{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.tags span{background:var(--paper);color:var(--muted);border-radius:999px;padding:2px 6px;font-size:10px}.radio-mark{border:1.5px solid var(--line);color:#fff;background:#fff;border-radius:99px;place-items:center;width:20px;height:20px;display:grid;position:absolute;top:10px;right:10px}.radio-mark.on{background:var(--red);border-color:var(--red)}.city-pick{scrollbar-width:none;gap:8px;padding-bottom:8px;display:flex;overflow-x:auto}.city-pick::-webkit-scrollbar{display:none}.city-pick button{border:1px solid var(--line);background:var(--card);border-radius:12px;flex:none;padding:8px 12px;font-size:13px;transition:background .2s,color .2s}.city-pick button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.city-chip{flex:none;width:72px;overflow:hidden;border:1.5px solid var(--line)!important;background:var(--card)!important;color:var(--ink)!important;border-radius:14px!important;padding:0!important}.city-chip img{height:48px}.city-chip span{text-align:center;padding:6px 4px 8px;font-size:12px;display:block}.city-chip.on{box-shadow:0 0 0 2px var(--red-soft);border-color:var(--red)!important}.city-chip.on span{color:var(--red);font-weight:600}.stay-head{justify-content:space-between;align-items:center;margin:8px 0;display:flex}.stay-head h3{margin:0;font-size:15px}.weeker{align-items:center;gap:8px;font-size:13px;display:flex}.weeker button{border:1px solid var(--line);background:#fff;border-radius:8px;width:28px;height:28px;font-size:16px;line-height:1}.warn{color:var(--orange);margin:6px 0 12px;font-size:12px}.ok{color:var(--green);margin:6px 0 12px;font-size:12px}.ok-text{color:var(--green)}.warn-text{color:var(--orange)}.city-card{box-shadow:var(--shadow);overflow:hidden}.city-card .cover{height:128px;position:relative}.city-card .cover span{color:#fff;font-family:var(--serif);z-index:1;text-align:left;font-size:22px;position:absolute;bottom:12px;left:12px}.city-card .cover:after{content:"";background:linear-gradient(#0000,#00000080);position:absolute;inset:0}.city-card .body{color:var(--muted);text-align:left;padding:10px 12px 12px;font-size:12px}.hero{height:190px;margin:0 -16px 12px;position:relative}.hero .cap{color:#fff;z-index:1;text-align:left;position:absolute;bottom:14px;left:16px}.hero .cap h2{font-family:var(--serif);margin:0;font-size:24px}.hero:after{content:"";background:linear-gradient(#0000 20%,#0000008c);position:absolute;inset:0}.panel{box-shadow:var(--shadow);margin-bottom:10px;padding:14px}.panel-title{align-items:center;gap:6px;margin:0 0 8px;font-size:13px;font-weight:600;display:flex}.row{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:9px 0;font-size:13px;display:flex}.row:last-child{border-bottom:0}.row .dim{color:var(--muted);text-align:left}.sum{color:var(--red);font-size:18px;font-weight:700}.field{margin-bottom:12px}.field label{color:var(--muted);justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.field label .err{color:var(--red)}.field input,.field textarea{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;padding:0 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}.field input{height:44px}.field textarea{resize:none;min-height:72px;padding:10px 12px}.field input:focus,.field textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft);outline:none}.field input.invalid{border-color:#e08a7a}.check-row{color:var(--muted);align-items:flex-start;gap:8px;margin-top:4px;font-size:12px;display:flex}.check-row input{margin-top:2px}.check-row a{color:var(--red);text-decoration:underline}.mine-head{color:#fff;background:radial-gradient(140px 90px at 90% 0,#f3c39a40,#0000),linear-gradient(135deg,#1d1712,#4a3728);border-radius:22px;align-items:center;gap:12px;padding:18px 16px;display:flex}.avatar{width:54px;height:54px;font-family:var(--serif);color:#1d1712;background:#f3c39a;border-radius:50%;place-items:center;font-size:22px;display:grid}.stats{grid-template-columns:1fr 1fr 1fr;gap:8px;margin:12px 0;display:grid}.stats button,.stats div{background:var(--card);border:1px solid var(--line);text-align:center;color:inherit;box-shadow:var(--shadow);border-radius:14px;padding:12px 0}.stats b{font-size:20px;display:block}.stats span{color:var(--muted);font-size:11px}.menu{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;overflow:hidden}.menu a,.menu button{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;justify-content:space-between;align-items:center;width:100%;padding:15px 14px;font-size:14px;display:flex}.menu a:last-child,.menu button:last-child{border-bottom:0}.pay-amt{text-align:center;padding:10px 0 6px}.pay-amt span{color:var(--muted);font-size:12px}.pay-amt b{letter-spacing:-.02em;margin-top:4px;font-size:40px;display:block}.pay-amt small{color:var(--muted);font-size:12px}.pay-method{gap:8px;margin:8px 0 12px;display:grid}.pay-method button{border:1.5px solid var(--line);background:var(--card);text-align:left;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex}.pay-method button.on{border-color:var(--red);background:var(--red-soft)}.pay-method .pm-icon{color:#fff;border-radius:10px;place-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:grid}.pay-method .pm-icon.wx{background:#07c160}.pay-method .pm-icon.ali{background:#1677ff}.pay-method strong{font-size:14px;display:block}.pay-method em{color:var(--muted);font-size:11px;font-style:normal}.success{text-align:center;padding:28px 10px 10px}.success .badge{background:var(--green-soft);width:76px;height:76px;color:var(--green);animation:pop .45s var(--ease);border-radius:50%;place-items:center;margin:0 auto 12px;font-size:34px;display:grid}@keyframes pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.success h2{font-family:var(--serif);margin:0 0 6px}.success p{color:var(--muted);font-size:13px;line-height:1.6}.next-steps{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:14px;margin:16px 0;padding:12px 14px}.next-steps h4{margin:0 0 8px;font-size:13px}.next-steps ol{color:var(--muted);margin:0;padding-left:18px;font-size:12px;line-height:1.7}.status{border-radius:999px;padding:2px 8px;font-size:11px}.status.paid{background:var(--green-soft);color:var(--green)}.status.pending{background:var(--orange-soft);color:var(--orange)}.empty{text-align:center;color:var(--muted);padding:40px 16px;font-size:13px}.article p{color:#4a4038;text-align:left;font-size:14px;line-height:1.8}.hl{flex-wrap:wrap;gap:6px;margin:10px 0 0;display:flex}.hl span{background:var(--red-soft);color:var(--red);border-radius:999px;padding:4px 8px;font-size:11px}.tip-card{border:1px solid var(--line);background:linear-gradient(135deg,#fff8ef,#f3ebe0);border-radius:14px;margin:8px 0 14px;padding:12px 14px}.tip-card strong{color:var(--ink);margin-bottom:4px;font-size:13px;display:block}.tip-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.summary-bar{grid-template-columns:1fr 1fr 1fr;gap:8px;margin:4px 0 14px;display:grid}.summary-bar div{background:var(--card);border:1px solid var(--line);text-align:center;box-shadow:var(--shadow);border-radius:14px;padding:10px 8px}.summary-bar em{color:var(--muted);margin-bottom:2px;font-size:10px;font-style:normal;display:block}.summary-bar b{font-size:13px}.week-progress{background:var(--card);border:1px solid var(--line);border-radius:14px;margin:8px 0 12px;padding:12px}.week-progress-head{justify-content:space-between;margin-bottom:8px;font-size:12px;display:flex}.week-track{background:#efe6d8;border-radius:99px;height:10px;display:flex;overflow:hidden}.week-track i{height:100%;display:block}.week-track i.rest{background:#efe6d8}.week-legend{color:var(--muted);flex-wrap:wrap;gap:8px 12px;margin-top:8px;font-size:11px;display:flex}.week-legend i{border-radius:99px;width:8px;height:8px;margin-right:4px;display:inline-block}.itinerary{margin:0;padding:4px 0 0;list-style:none}.itinerary li{grid-template-columns:16px 1fr;gap:10px;padding-bottom:14px;display:grid;position:relative}.itinerary li:not(:last-child):before{content:"";background:var(--line);width:2px;position:absolute;top:14px;bottom:0;left:7px}.itinerary .dot{background:var(--red);width:12px;height:12px;box-shadow:0 0 0 3px var(--red-soft);z-index:1;border-radius:99px;margin-top:3px}.itin-body{text-align:left}.itin-top{justify-content:space-between;gap:8px;font-size:13px;display:flex}.itin-top span{color:var(--muted);flex:none;font-size:12px}.itin-body p{color:var(--muted);margin:3px 0 0;font-size:12px}.guest-stepper{background:var(--card);border:1px solid var(--line);border-radius:14px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 14px;display:flex}.guest-stepper .left{align-items:center;gap:8px;font-size:14px;display:flex}.guest-stepper .ctrl{align-items:center;gap:10px;display:flex}.guest-stepper .ctrl button{border:1px solid var(--line);background:#fff;border-radius:8px;width:30px;height:30px;font-size:16px}.guest-stepper .ctrl b{text-align:center;min-width:16px}.stay-block{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;margin-bottom:12px;padding:12px}.stay-block .stay-head{margin-top:0}.sort-row{gap:8px;margin:0 0 10px;display:flex}.sort-row button{color:var(--muted);background:0 0;border:0;padding:4px 0;font-size:12px}.sort-row button.on{color:var(--red);font-weight:600}.order-mini{text-align:left;align-items:center;gap:10px;width:100%;margin-bottom:10px;padding:12px;display:flex}.order-mini .thumb{border-radius:10px;flex:none;width:56px;height:56px;overflow:hidden}.order-mini .body{flex:1;min-width:0}.order-mini h4{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:13px;overflow:hidden}.order-mini p{color:var(--muted);margin:4px 0 0;font-size:11px}.fee-box{background:#faf5ef;border-radius:12px;margin-top:4px;padding:10px 12px}.fee-box .row{padding:6px 0}.date-range{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;margin-bottom:14px;padding:12px}.date-range.trigger{padding-bottom:8px}.date-range-bar{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-bottom:10px;display:grid}.date-range-bar.as-button{text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:0;margin:0;padding:0}.date-range-bar.sheet-bar{margin-bottom:8px}.date-side{border:1px solid var(--line);text-align:left;background:#fff;border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.date-range-bar.as-button .date-side{pointer-events:none}.date-side.focus{border-color:var(--red);box-shadow:0 0 0 2px color-mix(in srgb, var(--red) 18%, transparent)}.date-side em{color:var(--muted);font-size:11px;font-style:normal}.date-side strong{color:var(--ink);font-size:16px;font-weight:700}.date-side span{color:var(--muted);font-size:11px}.date-nights{min-width:52px;color:var(--ink);background:#f7f0e8;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;padding:6px 4px;line-height:1.15;display:flex}.date-nights b{color:var(--red);font-size:16px;font-weight:700}.date-nights span{font-size:11px}.date-nights small{color:var(--muted);margin-top:2px;font-size:10px}.date-trigger-hint{width:100%;color:var(--red);background:0 0;border:0;margin-top:8px;padding:4px 0 2px;font-size:12px;font-weight:600}.date-hint{color:var(--ink);margin:0 0 10px;padding:0 4px;font-size:12px}.date-hint span{color:var(--muted)}.date-sheet-mask{z-index:45;animation:date-fade-in .2s var(--ease);background:#1c161173;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0}.date-sheet{background:var(--card);padding:8px 14px calc(14px + env(safe-area-inset-bottom,0px));max-height:min(78%,640px);animation:date-sheet-up .28s var(--ease);border-radius:18px 18px 0 0;flex-direction:column;display:flex;box-shadow:0 -12px 40px #2818082e}.date-sheet-handle{background:#d8cec2;border-radius:999px;width:36px;height:4px;margin:2px auto 8px}.date-sheet-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.date-sheet-head h3{margin:0;font-size:16px;font-weight:700}.date-sheet-close{width:32px;height:32px;color:var(--muted);background:#f3ebe2;border:0;border-radius:50%;font-size:20px;line-height:1}.date-sheet .cal-weekdays{background:var(--card);flex:none}.date-sheet .cal-scroll{flex:1;min-height:0;max-height:none;margin:0 -4px;padding:0 4px 8px}.date-sheet-foot{border-top:1px solid var(--line);flex:none;grid-template-columns:1fr auto;align-items:center;gap:10px;padding-top:10px;display:grid}.date-sheet-summary{flex-direction:column;gap:2px;min-width:0;display:flex}.date-sheet-summary span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.date-sheet-summary b{font-size:14px}.date-sheet-foot .btn{min-width:96px;padding:12px 18px}@keyframes date-fade-in{0%{opacity:0}to{opacity:1}}@keyframes date-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.cal-weekdays{text-align:center;color:var(--muted);border-bottom:1px solid var(--line);background:var(--card);z-index:1;grid-template-columns:repeat(7,1fr);padding:0 2px 6px;font-size:11px;display:grid;position:sticky;top:0}.cal-scroll{-webkit-overflow-scrolling:touch;max-height:360px;margin-top:4px;overflow-y:auto}.cal-month{margin:12px 0 4px}.cal-month h4{margin:0 0 8px;font-size:14px;font-weight:650}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px 0;display:grid}.cal-cell{aspect-ratio:1;color:var(--ink);background:0 0;border:0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;padding:0;font-size:13px;display:flex;position:relative}.cal-cell.empty{pointer-events:none}.cal-cell.disabled{color:#c8c2ba;pointer-events:none}.cal-cell b{font-weight:600;line-height:1}.cal-cell i{color:#fff;margin-top:2px;font-size:9px;font-style:normal;line-height:1}.cal-cell.in-range{background:color-mix(in srgb, var(--red) 12%, transparent);border-radius:0}.cal-cell.start,.cal-cell.end,.cal-cell.temp-start{background:var(--red);color:#fff}.cal-cell.start{border-radius:10px 0 0 10px}.cal-cell.end{border-radius:0 10px 10px 0}.cal-cell.start.end{border-radius:10px}.cal-cell:not(.disabled):not(.empty):active{transform:scale(.96)}.boot-screen{text-align:center;color:var(--ink);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.boot-screen p{margin:0;font-size:15px}.boot-screen .boot-sub{color:var(--muted);font-size:12px}.boot-screen .btn{min-width:120px;margin-top:8px}.admin-boot{color:#f4eee6;min-height:100vh;font-family:var(--sans);background:#1c1611;place-items:center;display:grid}.admin-login{min-height:100vh;font-family:var(--sans);background:radial-gradient(at 20% 10%,#c94a3a59,#0000 45%),radial-gradient(at 80% 90%,#d8893a40,#0000 40%),#1c1611;place-items:center;padding:24px;display:grid}.admin-login-card{background:#fffdf9;border-radius:20px;flex-direction:column;gap:14px;width:min(400px,100%);padding:28px 24px;display:flex;box-shadow:0 24px 60px #00000059}.admin-login-card h1{font-family:var(--serif);margin:0;font-size:26px}.admin-login-card p{color:var(--muted);margin:0;font-size:13px}.admin-login-card label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.admin-login-card input{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:15px}.admin-root{min-height:100vh;font-family:var(--sans);color:var(--ink);background:#efe6da;grid-template-columns:220px 1fr;display:grid}.admin-side{color:#f4eee6;background:#1c1611;flex-direction:column;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.admin-brand{flex-direction:column;gap:2px;padding:4px 10px 18px;display:flex}.admin-brand strong{font-family:var(--serif);font-size:22px}.admin-brand span{opacity:.65;font-size:12px}.admin-side nav{flex-direction:column;flex:1;gap:2px;display:flex;overflow:auto}.admin-side nav a{color:#f4eee6b8;border-radius:10px;padding:10px 12px;font-size:14px}.admin-side nav a:hover{color:#fff;background:#ffffff0f}.admin-side nav a.on{background:var(--red);color:#fff;font-weight:600}.admin-side-foot{color:#f4eee6b3;border-top:1px solid #ffffff1a;flex-direction:column;gap:8px;padding:12px 10px 4px;font-size:12px;display:flex}.admin-side-foot button{color:#f4eee6;background:0 0;border:1px solid #fff3;border-radius:8px;padding:6px 10px}.admin-side-foot .mini-link{color:#f4eee68c;text-decoration:underline}.admin-main{min-width:0;padding:24px 28px 40px}.admin-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.admin-head h1{font-family:var(--serif);margin:0;font-size:26px}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-toolbar input,.admin-toolbar select,.admin-field input,.admin-field select,.admin-field textarea{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:0;padding:8px 10px;font-size:13px}.admin-toolbar input{min-width:180px}.admin-btn{background:var(--red);color:#fff;border:0;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:600}.admin-btn:disabled{opacity:.55;cursor:not-allowed}.admin-btn.ghost{color:var(--ink);border:1px solid var(--line);background:#fff}.admin-btn.sm{padding:5px 10px;font-size:12px}.admin-btn.danger{color:var(--red)}.admin-link{color:var(--red);background:0 0;border:0;padding:0;font-weight:600}.admin-stat-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:18px;display:grid}.admin-stat{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:6px;padding:14px;display:flex}.admin-stat em{color:var(--muted);font-size:12px;font-style:normal}.admin-stat strong{font-size:22px;font-weight:700}.admin-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;padding:14px 16px}.admin-card-title{margin-bottom:10px;font-weight:650}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:10px 8px}.admin-table th{color:var(--muted);font-size:12px;font-weight:500}.admin-sub{color:var(--muted);margin-top:2px;font-size:11px}.admin-muted{color:var(--muted);font-size:13px}.admin-actions{flex-wrap:wrap;gap:6px;display:flex}.admin-tag{background:var(--orange-soft);color:var(--orange);border-radius:999px;padding:2px 8px;font-size:11px;display:inline-flex}.admin-tag.paid{background:var(--green-soft);color:var(--green)}.admin-tag.cancelled{color:#888;background:#eee}.admin-tag.pending{background:var(--orange-soft);color:var(--orange)}.admin-thumb-row{align-items:center;gap:10px;display:flex}.admin-thumb-row img{object-fit:cover;border-radius:8px;width:44px;height:44px}.admin-banner-thumb{object-fit:cover;border-radius:8px;width:96px;height:48px}.admin-error,.admin-error-box{color:var(--red);background:var(--red-soft);border-radius:10px;margin-bottom:10px;padding:8px 12px;font-size:13px}.admin-modal-mask{z-index:50;background:#1c161173;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.admin-modal{background:#fffdf9;border-radius:16px;width:min(520px,100%);max-height:min(90vh,800px);overflow:auto;box-shadow:0 20px 50px #00000040}.admin-modal.wide{width:min(720px,100%)}.admin-modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.admin-modal-head h3{margin:0;font-size:16px}.admin-icon-btn{color:var(--muted);background:0 0;border:0;font-size:22px;line-height:1}.admin-modal-body{padding:16px}.admin-form{flex-direction:column;gap:12px;display:flex}.admin-form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.admin-field{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.admin-field textarea{resize:vertical}.admin-form-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.admin-kv{gap:10px;display:grid}.admin-kv>div{grid-template-columns:72px 1fr;gap:8px;font-size:13px;display:grid}.admin-kv em{color:var(--muted);font-style:normal}@media (width<=860px){.admin-root{grid-template-columns:1fr}.admin-side{height:auto;position:relative}.admin-side nav{flex-flow:wrap}.admin-form-grid{grid-template-columns:1fr}}
