@font-face{font-family:Montserrat;src:url(/static/fonts/montserrat.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}:root{color-scheme:light only;--wine: #7c122e;--wine-deep: #5e0d22;--wine-soft: #f7f0f2;--ink: #2e2e2e;--gray: #595660;--paper: #faf7f2;--card: #ffffff;--sand: #f7f0f2;--line: #e3d9dc;--line-strong: #8a8590;--focus: #7c122e;--photo: url(/static/hotel-lobby.jpg);--font: "Montserrat", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;--font-zh: "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Microsoft YaHei", "Montserrat", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.5;font-variant-numeric:lining-nums tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;text-size-adjust:100%}html:lang(zh) body{font-family:var(--font-zh)}[hidden]{display:none!important}img{display:block;max-width:100%;height:auto}button,input,textarea{font:inherit;color:inherit;border-radius:0}::selection{background:var(--wine);color:#fff}input,textarea{caret-color:var(--wine)}:focus{outline:none}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--paper)}.hero{display:none}.top{flex:none;display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 8px 8px 16px;padding-top:max(8px,env(safe-area-inset-top));background:var(--card)}.top__logo{width:92px;flex:none}.top__logo--rev{display:none}.desk{margin:0 0 0 auto;text-align:right;line-height:1.25}.desk__label{display:block;color:var(--gray)}.desk__clock{display:block;font-size:22px;font-weight:700;letter-spacing:.02em;color:var(--wine)}.top__menu{position:relative;flex:none}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:var(--ink);cursor:pointer;transition:background-color .15s ease}.icon-btn svg{fill:currentColor}.icon-btn[aria-expanded=true]{background:var(--sand)}.menu{position:absolute;right:0;top:calc(100% + 4px);z-index:10;width:max-content;min-width:260px;max-width:min(320px,calc(100vw - 24px));background:var(--card);box-shadow:0 8px 24px #2e2e2e2e;animation:rise .18s ease-out}.menu__item{display:block;width:100%;min-height:52px;padding:12px 18px;border:0;background:transparent;color:var(--wine);font-weight:500;text-align:left;cursor:pointer}.sheet{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.banner{flex:none;margin:0;padding:10px 16px;background:var(--sand);color:var(--wine);font-weight:500;line-height:1.4}.stage{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:16px 16px 8px}.dock{flex:none;padding:8px 16px;padding-bottom:max(16px,env(safe-area-inset-bottom));background:var(--paper)}.app:has(#gate:not([hidden])){position:relative;height:auto;min-height:100vh;min-height:100dvh}.app:has(#gate:not([hidden])) .hero{display:block;position:relative;flex:none;height:34vh;min-height:200px;max-height:340px;background:var(--ink) var(--photo) center 45% / cover no-repeat}.app:has(#gate:not([hidden])) .hero:before{content:"";position:absolute;inset:0;background:#14080c59}.app:has(#gate:not([hidden])) .top{position:absolute;left:0;top:0;right:0;z-index:2;padding:20px;background:transparent}.app:has(#gate:not([hidden])) .top__logo{display:none}.app:has(#gate:not([hidden])) .top__logo--rev{display:block;width:130px}.app:has(#gate:not([hidden])) .desk{display:none}.app:has(#gate:not([hidden])) .sheet{position:relative;display:block;flex:none;margin-top:-28px;background:var(--paper)}.app:has(#gate:not([hidden])) .banner{padding:24px 20px 0;background:transparent}.app:has(#gate:not([hidden])) .stage{overflow:visible;padding:18px 20px 0}.app:has(#gate:not([hidden])) .dock{padding:18px 20px;padding-bottom:max(32px,env(safe-area-inset-bottom))}.langs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px;padding:4px;background:var(--sand)}.lang{min-height:44px;padding:8px 2px;border:0;background:transparent;color:var(--gray);font-weight:500;cursor:pointer;transition:background-color .15s ease,color .15s ease}.lang[aria-pressed=true]{background:var(--card);color:var(--ink);font-weight:600}.lang:lang(zh){font-family:var(--font-zh)}.gate__title{margin:6px 0 14px;font-size:26px;font-weight:500;line-height:1.2;letter-spacing:-.01em;text-wrap:balance}.gate__hotel{display:block;font-weight:700}.consent p{margin:0 0 12px;text-wrap:pretty}.consent p:last-child{margin-bottom:0}.note{margin:0 0 12px;padding:12px 14px;background:var(--sand);color:var(--ink);animation:rise .2s ease-out both}.note:empty{display:none}.note.is-quiet{padding:0 2px;background:transparent;color:var(--gray)}.note:only-child,.note:has(+.actions[hidden]){margin-bottom:0}.actions{display:grid;grid-template-columns:1fr;gap:10px}.actions[aria-busy=true]{cursor:progress}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 22px;border:0;font-size:16px;font-weight:600;line-height:1.25;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background-color .15s ease-out,transform .12s ease-out}html:lang(zh) .btn{letter-spacing:.2em}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn--main{background-color:var(--wine);color:#fff}.btn--quiet{background:transparent;color:var(--wine);box-shadow:inset 0 0 0 2px var(--wine)}.log{display:flex;flex-direction:column;gap:12px;max-width:820px}.msg{max-width:86%;animation:rise .28s ease-out both}.msg__text{margin:0;padding:12px 16px;white-space:pre-line;overflow-wrap:anywhere;text-wrap:pretty}.msg--agent{align-self:flex-start}.msg--agent .msg__text{background:var(--card)}.msg--guest{align-self:flex-end}.msg--guest .msg__text{background:var(--wine);color:#fff}.msg--note .msg__text{background:var(--sand);color:var(--ink)}.msg--final .msg__text{background:var(--sand)}.msg__who{display:block;margin:0 0 4px;line-height:1.3;color:var(--gray)}.msg--manager{align-self:flex-start}.msg--manager .msg__who{color:var(--wine);font-weight:600}.msg--manager .msg__text{background:var(--card);box-shadow:inset 0 0 0 2px var(--wine)}.msg--notice{align-self:center;max-width:100%;text-align:center}.msg--notice .msg__text{padding:6px 14px;background:var(--sand);color:var(--ink)}.chips{display:flex;flex-wrap:wrap;gap:8px;max-width:820px;margin-top:12px;animation:rise .28s ease-out .12s both}.chip{min-height:44px;padding:8px 16px;border:0;background:var(--card);color:var(--wine);font-weight:500;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;transition:background-color .15s ease}.chip--cal{box-shadow:inset 0 0 0 2px var(--wine)}.typing{display:flex;align-items:center;gap:10px;margin-top:12px;color:var(--gray);animation:rise .2s ease-out both}.typing__dots{display:inline-flex;gap:4px}.typing__dots span{width:6px;height:6px;background:var(--wine);opacity:.35;animation:blink 1.2s ease-in-out infinite}.typing__dots span:nth-child(2){animation-delay:.2s}.typing__dots span:nth-child(3){animation-delay:.4s}.composer{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:end;column-gap:8px;row-gap:4px;max-width:820px}.composer__input{grid-column:1;grid-row:1 / span 2;width:100%;min-width:0;min-height:52px;max-height:160px;padding:13px 14px;border:1px solid var(--line-strong);background:var(--card);font-size:16px;line-height:1.5;resize:none;field-sizing:content}.composer__input::placeholder{color:var(--gray);opacity:1}.composer__input:focus-visible{outline:2px solid var(--wine);outline-offset:0;border-color:var(--wine)}.composer__input:disabled{background:var(--sand);cursor:not-allowed}.composer__send{grid-column:2;grid-row:2;padding-inline:18px}.composer__count{grid-column:2;grid-row:1;white-space:nowrap;text-align:right;color:var(--gray)}.composer__count.is-over{color:var(--wine);font-weight:600}.card{align-self:stretch;margin-top:4px;padding:20px 16px;background:var(--card);animation:rise .28s ease-out both}.card__title{margin:0 0 14px;font-size:20px;font-weight:700;line-height:1.3}.field{margin-bottom:12px}.field__label{display:block;margin-bottom:6px;color:var(--ink)}.field__input{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line-strong);background:var(--card);font-size:16px}.field__input:focus-visible{outline:2px solid var(--wine);outline-offset:0;border-color:var(--wine)}.field__input[aria-invalid=true]{border-color:var(--wine);border-width:2px}.card__error{margin:0 0 12px;color:var(--wine);font-weight:600}.card__submit{width:100%}.card__note{margin:12px 0 0;color:var(--gray)}.card.is-done{opacity:.8}.card.is-done .card__submit{display:none}.is-booting .stage,.is-booting .dock{visibility:hidden}.confirm{animation:rise .2s ease-out both}.confirm__text{margin:0 0 12px;font-weight:600;color:var(--ink)}.confirm__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.restart__btn{width:100%}.cal{padding:16px 14px}.cal__sum{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 14px}.cal__back{min-height:44px;max-width:100%;padding:8px 14px;border:0;background:var(--sand);color:var(--ink);text-align:left;overflow-wrap:anywhere;cursor:pointer}.cal__set{min-width:0;margin:0 0 12px;padding:0;border:0}.cal__set .field__label{margin-bottom:8px;padding:0}.cal__opt{display:flex;align-items:center;gap:12px;min-height:48px;margin-bottom:8px;padding:10px 14px;border:1px solid var(--line-strong);background:var(--card);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.cal__opt:has(:checked){border-color:var(--wine);background:var(--wine-soft)}.cal__opt:has(:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.cal__radio{flex:none;width:20px;height:20px;margin:0;accent-color:var(--wine)}.cal__radio:focus-visible{outline:none}.cal__optText{min-width:0;overflow-wrap:anywhere}.cal__bar{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;margin-bottom:10px}.cal__month{margin:0;font-size:18px;font-weight:600;text-align:center}.cal__nav{width:44px;height:44px;padding:0;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);font-size:22px;line-height:1;cursor:pointer}.cal__nav:disabled{opacity:.35;cursor:not-allowed}.cal__week,.cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal__week{margin-bottom:4px}.cal__wd{text-align:center;color:var(--gray)}.cal__grid{min-height:240px;align-content:start}.cal__day{min-width:0;min-height:44px;padding:0;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:16px;font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.cal__day[aria-pressed=true]{background:var(--wine);border-color:var(--wine);color:#fff;font-weight:600}.cal__day.is-busy{background:var(--sand);color:var(--gray);text-decoration:line-through;cursor:not-allowed}.cal__day.is-past{background:transparent;border-color:transparent;color:var(--gray);opacity:.45;cursor:not-allowed}.cal__legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:12px 0;color:var(--gray)}.cal__key{display:inline-flex;align-items:center;gap:8px}.cal__swatch{width:16px;height:16px;border:1px solid var(--line-strong);background:var(--card)}.cal__key.is-busy .cal__swatch{background:var(--sand);border-color:var(--line)}.cal__next{width:100%;margin-top:4px}.cal.is-done .cal__next{display:none}@media(min-width:900px){.app{display:grid;grid-template-columns:360px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"side head" "side body";background:var(--sand)}.hero{display:block;grid-area:side;background:var(--ink) var(--photo) 60% center / cover no-repeat}.top{grid-area:head;padding:14px 24px 14px 40px}.top__logo{width:110px}.sheet{grid-area:body}.banner{padding:12px 40px}.stage{padding:32px 40px 16px;background:var(--sand)}.dock{padding:12px 40px 28px;background:var(--sand)}.log{gap:16px}.msg__text{padding:16px 20px}.msg{max-width:80%}.card,.cal{padding:24px}.confirm__actions{grid-template-columns:max-content max-content}.confirm__actions .btn{min-width:180px}.restart{display:flex}.restart__btn{width:auto;min-width:180px}.actions{grid-template-columns:1fr 1fr}.app:has(#gate:not([hidden])){display:flex;align-items:center;justify-content:center;padding:48px 24px;background:transparent}.app:has(#gate:not([hidden])) .hero{position:fixed;inset:0;height:auto;max-height:none;background-position:center}.app:has(#gate:not([hidden])) .hero:before{background:#14080c8c}.app:has(#gate:not([hidden])) .top{padding:32px 40px}.app:has(#gate:not([hidden])) .top__logo--rev{width:170px}.app:has(#gate:not([hidden])) .sheet{width:680px;max-width:100%;margin:0;padding:40px 48px 44px}.app:has(#gate:not([hidden])) .banner{padding:0}.app:has(#gate:not([hidden])) .stage{padding:18px 0 0;background:transparent}.app:has(#gate:not([hidden])) .dock{padding:18px 0 0;background:transparent}.gate__title{font-size:30px}}@media(max-width:360px){.top{padding-left:12px;gap:8px}.top__logo{width:80px}.banner{padding:10px 14px}.stage{padding:14px 14px 8px}.dock{padding-left:14px;padding-right:14px}.langs{grid-template-columns:1fr 1fr}.confirm__actions{grid-template-columns:1fr}.btn{padding-left:14px;padding-right:14px;letter-spacing:.06em}.cal{padding:14px 10px}.cal__week,.cal__grid{gap:3px}.composer__send{width:52px;padding:0;color:transparent;font-size:0;background-image:url(/static/send.svg);background-position:center;background-repeat:no-repeat}}@media(hover:hover){.icon-btn:hover,.menu__item:hover{background:var(--sand)}.lang:hover{color:var(--ink)}.btn--main:hover:not(:disabled){background-color:var(--wine-deep)}.btn--quiet:hover:not(:disabled){background:var(--sand)}.chip:hover{background:var(--sand)}.cal__opt:hover{border-color:var(--wine)}.cal__day:not(:disabled):not(.is-busy):not([aria-pressed=true]):hover{border-color:var(--wine);background:var(--wine-soft)}.cal__back:hover,.cal__nav:not(:disabled):hover{background:var(--wine-soft)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes blink{0%,60%,to{opacity:.25}30%{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.typing__dots span{opacity:.8}}
