*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-start:#f6ede4;--bg-end:#ede4f0;--bg-mid:#f2e8e0;--card-bg:#ffffff8c;--card-border:#ffffffb3;--card-shadow:#b48c6e1f;--card-hover:#fffc;--text-primary:#2e2017;--text-secondary:#7a6b5d;--text-tertiary:#a89888;--accent-warm:#d4845a;--accent-sage:#7ba68e;--accent-lavender:#9b8ec4;--accent-rose:#c4797a;--accent-sky:#6da4b8;--accent-gold:#c4a44e;--icon-bg-1:#d4845a1f;--icon-bg-2:#c4797a1f;--icon-bg-3:#7ba68e1f;--icon-bg-4:#9b8ec41f;--icon-bg-5:#c4a44e1f;--icon-bg-6:#6da4b81f;--header-overlay:#ffffff59;--divider:#b4967826;--grain-opacity:.3;--toggle-bg:#b4967826;--toggle-icon:#7a6b5d;--btn-primary:#d4845a;--btn-primary-text:#fff;--btn-secondary-bg:#b496781a;--btn-secondary-text:#7a6b5d;--input-bg:#fff9;--input-border:#b4967840;--success-bg:#7ba68e1f;--success-color:#5a9e74;--badge-bg:#d4845a1a}[data-theme=dark]{--bg-start:#1a1410;--bg-end:#18141e;--bg-mid:#1c1614;--card-bg:#ffffff0f;--card-border:#ffffff1a;--card-shadow:#0000004d;--card-hover:#ffffff1a;--text-primary:#f0e6dc;--text-secondary:#a89888;--text-tertiary:#6d5e50;--accent-warm:#e89a6e;--accent-sage:#8cc4a2;--accent-lavender:#b0a2d8;--accent-rose:#d89090;--accent-sky:#82bcd0;--accent-gold:#d8bc66;--icon-bg-1:#e89a6e26;--icon-bg-2:#d8909026;--icon-bg-3:#8cc4a226;--icon-bg-4:#b0a2d826;--icon-bg-5:#d8bc6626;--icon-bg-6:#82bcd026;--header-overlay:#ffffff0a;--divider:#ffffff0f;--grain-opacity:.15;--toggle-bg:#ffffff14;--toggle-icon:#a89888;--btn-primary:#e89a6e;--btn-primary-text:#1a1410;--btn-secondary-bg:#ffffff0f;--btn-secondary-text:#a89888;--input-bg:#ffffff0f;--input-border:#ffffff1a;--success-bg:#8cc4a21f;--success-color:#8cc4a2;--badge-bg:#e89a6e1f}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,sans-serif}body{background:linear-gradient(165deg, var(--bg-start) 0%, var(--bg-mid) 40%, var(--bg-end) 100%);min-height:100dvh;color:var(--text-primary);transition:background .5s,color .3s;overflow-x:hidden}body:before{content:"";opacity:var(--grain-opacity);pointer-events:none;z-index:100;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.4'/%3E%3C/svg%3E");background-size:200px 200px;position:fixed;inset:0}.ambient-glow{filter:blur(80px);pointer-events:none;z-index:0;opacity:.4;border-radius:50%;transition:opacity .5s;position:fixed}.glow-1{background:radial-gradient(circle,#d4845a4d,#0000 70%);width:300px;height:300px;top:-80px;right:-60px}.glow-2{background:radial-gradient(circle,#9b8ec440,#0000 70%);width:250px;height:250px;bottom:100px;left:-80px}[data-theme=dark] .ambient-glow{opacity:.2}.app-container{z-index:1;max-width:430px;min-height:100dvh;padding:env(safe-area-inset-top,20px) 20px env(safe-area-inset-bottom,20px);flex-direction:column;margin:0 auto;display:flex;position:relative}.top-bar{opacity:0;justify-content:space-between;align-items:center;padding:16px 0 8px;animation:.6s forwards fadeSlideDown;display:flex}.top-bar-left{align-items:center;gap:6px;display:flex}.status-dot{background:var(--accent-sage);border-radius:50%;width:7px;height:7px;animation:2.5s ease-in-out infinite pulse}.status-text{letter-spacing:.5px;color:var(--text-tertiary);text-transform:uppercase;font-size:11px}.theme-toggle{background:var(--toggle-bg);width:36px;height:36px;color:var(--toggle-icon);cursor:pointer;-webkit-backdrop-filter:blur(8px);border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}.theme-toggle:active{transform:scale(.9)}.theme-toggle svg{width:18px;height:18px;transition:transform .3s}.header-card{background:var(--header-overlay);-webkit-backdrop-filter:blur(20px);border:1px solid var(--card-border);opacity:0;border-radius:20px;margin:8px 0 28px;padding:24px;animation:.7s .1s forwards fadeSlideDown;position:relative;overflow:hidden}.header-card:after{content:"";background:radial-gradient(circle,#d4845a1a,#0000 70%);border-radius:50%;width:120px;height:120px;position:absolute;top:-40px;right:-40px}.hotel-name{letter-spacing:2px;color:var(--text-tertiary);text-transform:uppercase;margin-bottom:10px;font-size:11px;font-weight:500}.welcome-msg{letter-spacing:-.3px;margin-bottom:14px;font-size:22px;font-weight:700;line-height:1.35}.welcome-highlight{background:linear-gradient(135deg, var(--accent-warm), var(--accent-rose));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.room-info{align-items:center;gap:12px;display:flex}.room-badge{background:var(--card-bg);border:1px solid var(--card-border);color:var(--text-primary);letter-spacing:.3px;border-radius:10px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex}.room-badge svg{width:14px;height:14px;color:var(--accent-warm)}.stay-info{color:var(--text-tertiary);font-size:12px;line-height:1.5}.status-tag{letter-spacing:.3px;border-radius:8px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.status-tag.pending{background:color-mix(in srgb, var(--accent-warm) 15%, transparent);color:var(--accent-warm)}.status-tag.checked-in{background:color-mix(in srgb, var(--accent-sage) 15%, transparent);color:var(--accent-sage)}.grid-section{flex:1}.section-label{letter-spacing:1.5px;color:var(--text-tertiary);text-transform:uppercase;opacity:0;margin-bottom:16px;padding-left:4px;font-size:11px;font-weight:500;animation:.6s .25s forwards fadeSlideDown}.grid-container{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.grid-item{aspect-ratio:1;background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);cursor:pointer;opacity:0;color:inherit;-webkit-tap-highlight-color:transparent;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;text-decoration:none;transition:all .3s cubic-bezier(.23,1,.32,1);display:flex;position:relative;overflow:hidden}.grid-item:first-child{animation:.5s .3s forwards fadeScaleIn}.grid-item:nth-child(2){animation:.5s .37s forwards fadeScaleIn}.grid-item:nth-child(3){animation:.5s .44s forwards fadeScaleIn}.grid-item:nth-child(4){animation:.5s .51s forwards fadeScaleIn}.grid-item:nth-child(5){animation:.5s .58s forwards fadeScaleIn}.grid-item:nth-child(6){animation:.5s .65s forwards fadeScaleIn}.grid-item:nth-child(7){animation:.5s .72s forwards fadeScaleIn}.grid-item:nth-child(8){animation:.5s .79s forwards fadeScaleIn}.grid-item:nth-child(9){animation:.5s .86s forwards fadeScaleIn}.grid-item:before{content:"";background:radial-gradient(circle at 50% 30%, var(--item-glow,transparent), transparent 70%);opacity:0;transition:opacity .3s;position:absolute;inset:0}.grid-item:hover:before,.grid-item:active:before{opacity:1}.grid-item:hover{border-color:var(--card-hover);box-shadow:0 8px 24px var(--card-shadow), 0 2px 8px var(--card-shadow);transform:translateY(-3px)}.grid-item:active{transition-duration:.1s;transform:scale(.96)}.grid-icon{border-radius:13px;justify-content:center;align-items:center;width:44px;height:44px;transition:transform .3s;display:flex}.grid-item:hover .grid-icon{transform:scale(1.08)}.grid-icon svg{width:22px;height:22px}.grid-label{letter-spacing:.2px;color:var(--text-primary);font-size:12.5px;font-weight:600}.icon-warm{background:var(--icon-bg-1);color:var(--accent-warm)}.icon-rose{background:var(--icon-bg-2);color:var(--accent-rose)}.icon-sage{background:var(--icon-bg-3);color:var(--accent-sage)}.icon-lavender{background:var(--icon-bg-4);color:var(--accent-lavender)}.icon-gold{background:var(--icon-bg-5);color:var(--accent-gold)}.icon-sky{background:var(--icon-bg-6);color:var(--accent-sky)}.glow-warm{--item-glow:#d4845a0f}.glow-rose{--item-glow:#c4797a0f}.glow-sage{--item-glow:#7ba68e0f}.glow-lavender{--item-glow:#9b8ec40f}.glow-gold{--item-glow:#c4a44e0f}.glow-sky{--item-glow:#6da4b80f}.footer{border-top:1px solid var(--divider);text-align:center;opacity:0;margin-top:32px;padding:20px 0 8px;animation:.6s 1s forwards fadeSlideUp}.footer-hotel{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600}.footer-contact{color:var(--text-tertiary);justify-content:center;align-items:center;gap:6px;font-size:12px;display:flex}.footer-contact svg{width:12px;height:12px}.footer-divider{background:var(--text-tertiary);opacity:.5;border-radius:50%;width:3px;height:3px}.footer-note{color:var(--text-tertiary);opacity:.6;margin-top:10px;font-size:10.5px}.page-overlay{z-index:50;background:linear-gradient(165deg, var(--bg-start) 0%, var(--bg-mid) 40%, var(--bg-end) 100%);-webkit-overflow-scrolling:touch;transition:transform .35s cubic-bezier(.32,.72,0,1);position:fixed;inset:0;overflow-y:auto;transform:translate(100%)}.page-overlay.active{transform:translate(0)}.page-inner{max-width:430px;min-height:100dvh;padding:env(safe-area-inset-top,20px) 20px env(safe-area-inset-bottom,20px);flex-direction:column;margin:0 auto;display:flex}.page-header{align-items:center;gap:12px;padding:16px 0 20px;display:flex}.back-btn{border:1px solid var(--card-border);background:var(--card-bg);-webkit-backdrop-filter:blur(8px);width:40px;height:40px;color:var(--text-primary);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.back-btn:active{transform:scale(.92)}.back-btn svg{width:20px;height:20px}.page-title{letter-spacing:-.2px;font-size:18px;font-weight:700}.info-card{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);border-radius:16px;margin-bottom:16px;padding:20px}.info-card-title{color:var(--text-primary);margin-bottom:12px;font-size:13px;font-weight:600}.info-row{justify-content:space-between;align-items:center;padding:8px 0;display:flex}.info-row+.info-row{border-top:1px solid var(--divider)}.info-label{color:var(--text-secondary);font-size:13px}.info-value{color:var(--text-primary);font-size:13px;font-weight:600}.btn{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-family:inherit;font-size:15px;font-weight:600;transition:all .2s;display:flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--btn-primary);color:var(--btn-primary-text)}.btn-primary:hover{filter:brightness(1.05)}.btn-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-text)}.btn-danger{color:var(--accent-rose);background:#c4797a1f}.btn-success{background:var(--success-bg);color:var(--success-color)}.btn+.btn{margin-top:10px}.btn svg{width:18px;height:18px}.input-field{border:1px solid var(--input-border);background:var(--input-bg);width:100%;color:var(--text-primary);-webkit-backdrop-filter:blur(8px);border-radius:12px;outline:none;padding:12px 16px;font-family:inherit;font-size:14px;transition:border-color .2s}.input-field:focus{border-color:var(--accent-warm)}.input-field::placeholder{color:var(--text-tertiary)}.input-group{margin-bottom:14px}.input-label{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.status-badge{border-radius:8px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-success{background:var(--success-bg);color:var(--success-color)}.badge-pending{background:var(--badge-bg);color:var(--accent-warm)}.badge-info{background:var(--icon-bg-6);color:var(--accent-sky)}.success-view{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;display:flex}.success-circle{background:var(--success-bg);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;animation:.5s cubic-bezier(.34,1.56,.64,1) forwards successPop;display:flex}.success-circle svg{width:36px;height:36px;color:var(--success-color);stroke-dasharray:50;stroke-dashoffset:50px;animation:.6s .3s forwards checkDraw}.success-title{font-size:20px;font-weight:700}.success-desc{color:var(--text-secondary);font-size:14px;line-height:1.6}@keyframes successPop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes checkDraw{to{stroke-dashoffset:0}}.unlock-area{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;display:flex}.unlock-btn{border:3px solid var(--accent-gold);background:var(--icon-bg-5);width:160px;height:160px;color:var(--accent-gold);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-family:inherit;transition:all .3s;display:flex;position:relative}.unlock-btn:after{content:"";border:2px dashed var(--accent-gold);opacity:.3;border-radius:50%;animation:12s linear infinite spinSlow;position:absolute;inset:-8px}.unlock-btn svg{width:48px;height:48px;transition:transform .3s}.unlock-btn span{font-size:14px;font-weight:600}.unlock-btn:active{transform:scale(.93)}.unlock-btn.unlocked{border-color:var(--success-color);background:var(--success-bg);color:var(--success-color)}.unlock-btn.unlocked:after{border-color:var(--success-color);animation:none}.unlock-hint{color:var(--text-tertiary);text-align:center;font-size:13px}@keyframes spinSlow{to{transform:rotate(360deg)}}.wifi-card{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);text-align:center;border-radius:20px;padding:28px 24px}.wifi-icon-lg{background:var(--icon-bg-6);width:64px;height:64px;color:var(--accent-sky);border-radius:20px;justify-content:center;align-items:center;margin:0 auto 20px;display:flex}.wifi-icon-lg svg{width:32px;height:32px}.wifi-label{color:var(--text-tertiary);margin-bottom:4px;font-size:12px}.wifi-value{letter-spacing:1px;color:var(--text-primary);margin-bottom:20px;font-size:20px;font-weight:700}.wifi-copy-row{background:var(--input-bg);border:1px solid var(--input-border);border-radius:12px;align-items:center;gap:8px;padding:10px 14px;display:flex}.wifi-copy-text{letter-spacing:2px;color:var(--text-primary);flex:1;font-family:SF Mono,Menlo,monospace;font-size:16px;font-weight:600}.wifi-copy-btn{background:var(--btn-primary);color:var(--btn-primary-text);cursor:pointer;border:none;border-radius:8px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:all .2s}.wifi-copy-btn:active{transform:scale(.94)}.contact-card{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);cursor:pointer;color:var(--text-primary);border-radius:16px;align-items:center;gap:14px;margin-bottom:12px;padding:16px;transition:all .2s;display:flex}.contact-card:active{opacity:.85;transform:scale(.98)}.contact-card-icon{border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.contact-card-body{flex:1;min-width:0}.contact-card-title{margin-bottom:2px;font-size:15px;font-weight:600}.contact-card-desc{color:var(--text-secondary);letter-spacing:.3px;font-family:SF Mono,Menlo,monospace;font-size:14px}.contact-card-hint{color:var(--text-tertiary);margin-top:4px;font-size:11px}.contact-card-arrow{color:var(--text-tertiary);flex-shrink:0}.guest-chat-container{flex-direction:column;flex:1;min-height:0;display:flex}.guest-chat-messages{flex-direction:column;flex:1;gap:12px;padding:8px 0;display:flex;overflow-y:auto}.guest-chat-date-divider{text-align:center;color:var(--text-tertiary);background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;margin:4px auto;padding:4px 12px;font-size:11px}.guest-chat-bubble{gap:8px;max-width:85%;display:flex}.guest-chat-bubble.bot{align-self:flex-start}.guest-chat-bubble.user{flex-direction:row-reverse;align-self:flex-end}.guest-chat-avatar{background:color-mix(in srgb, var(--accent-warm) 12%, transparent);width:32px;height:32px;color:var(--accent-warm);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.guest-chat-bubble.user .guest-chat-avatar{background:color-mix(in srgb, var(--accent-sage) 12%, transparent);color:var(--accent-sage)}.guest-chat-content{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);border-radius:14px;padding:10px 14px}.guest-chat-bubble.bot .guest-chat-content{border-top-left-radius:4px}.guest-chat-bubble.user .guest-chat-content{background:color-mix(in srgb, var(--accent-sage) 8%, var(--card-bg));border-top-right-radius:4px}.guest-chat-sender{color:var(--text-tertiary);margin-bottom:3px;font-size:11px;font-weight:600}.guest-chat-text{color:var(--text-primary);font-size:14px;line-height:1.55}.guest-chat-time{color:var(--text-tertiary);margin-top:4px;font-size:10px}.guest-chat-file-preview{background:color-mix(in srgb, var(--accent-warm) 8%, transparent);border:1px solid var(--card-border);color:var(--text-secondary);cursor:pointer;border-radius:10px;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;font-size:12px;display:flex}.guest-chat-file-preview img{border-radius:8px;width:100%;max-width:200px;margin-top:4px}.guest-chat-input-bar{border-top:1px solid var(--divider);align-items:center;gap:8px;margin-top:auto;padding:12px 0;display:flex}.guest-chat-attach-btn{background:var(--card-bg);border:none;border:1px solid var(--card-border);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.guest-chat-attach-btn:active{transform:scale(.9)}.guest-chat-send-btn{background:var(--btn-primary);width:40px;height:40px;color:var(--btn-primary-text);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.guest-chat-send-btn:active{transform:scale(.9)}.guest-chat-status-dot{background:#5a9e74;border-radius:50%;width:8px;height:8px;animation:2s infinite statusPulse;display:inline-block}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.4}}.faq-item{margin-bottom:10px}.faq-q{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);cursor:pointer;width:100%;color:var(--text-primary);text-align:left;-webkit-tap-highlight-color:transparent;border-radius:14px;justify-content:space-between;align-items:center;padding:16px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:all .2s;display:flex}.faq-q:active{transform:scale(.98)}.faq-q svg{width:16px;height:16px;color:var(--text-tertiary);flex-shrink:0;margin-left:8px;transition:transform .3s}.faq-q.open svg{transform:rotate(180deg)}.faq-q.open{border-bottom-right-radius:0;border-bottom-left-radius:0}.faq-a{background:var(--card-bg);border:1px solid var(--card-border);max-height:0;color:var(--text-secondary);border-top:none;border-radius:0 0 14px 14px;padding:0 18px;font-size:13px;line-height:1.7;transition:max-height .3s,padding .3s;overflow:hidden}.faq-a.open{max-height:200px;padding:14px 18px}.place-card{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);cursor:pointer;border-radius:16px;gap:14px;margin-bottom:12px;padding:16px;transition:all .2s;display:flex}.place-card:active{transform:scale(.98)}.place-icon{border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.place-icon svg{width:22px;height:22px}.place-info{flex:1}.place-name{margin-bottom:3px;font-size:14px;font-weight:600}.place-desc{color:var(--text-secondary);font-size:12px;line-height:1.5}.place-dist{color:var(--text-tertiary);margin-top:4px;font-size:11px}.radio-card{background:var(--card-bg);border:1.5px solid var(--card-border);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:14px;align-items:center;gap:12px;padding:14px 16px;transition:all .2s;display:flex}.radio-card:active{transform:scale(.98)}.radio-card input{display:none}.radio-dot{border:2px solid var(--text-tertiary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;transition:all .2s;display:flex}.radio-dot:after{content:"";background:var(--accent-warm);border-radius:50%;width:10px;height:10px;transition:transform .2s;transform:scale(0)}.radio-card input:checked~.radio-dot{border-color:var(--accent-warm)}.radio-card input:checked~.radio-dot:after{transform:scale(1)}.radio-card:has(input:checked){border-color:var(--accent-warm);background:var(--icon-bg-1)}.radio-content{flex:1}.radio-title{color:var(--text-primary);font-size:14px;font-weight:600}.radio-desc{color:var(--text-secondary);margin-top:2px;font-size:12px}.room-status-card{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1.5px solid var(--card-border);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:16px;align-items:center;gap:14px;margin-bottom:10px;padding:16px;transition:all .2s;display:flex}.room-status-card:active{transform:scale(.98)}.room-status-card.selected{border-color:var(--accent-warm);background:var(--icon-bg-1)}.room-status-card.disabled{opacity:.5;cursor:not-allowed}.room-status-card.disabled:active{transform:none}.room-status-icon{border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.room-status-info{flex:1}.room-status-name{font-size:15px;font-weight:700}.room-status-type{color:var(--text-secondary);font-size:13px}.room-checkbox{border:2px solid var(--text-tertiary);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:all .2s;display:flex}.room-checkbox.checked{background:var(--accent-warm);border-color:var(--accent-warm)}.room-checkbox svg{color:#fff;opacity:0;width:14px;height:14px;transition:opacity .2s}.room-checkbox.checked svg{opacity:1}.service-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.service-item{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:18px 16px;transition:all .2s;display:flex}.service-item:active{transform:scale(.96)}.service-icon{border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.service-icon svg{width:20px;height:20px}.service-name{font-size:13px;font-weight:600}.service-price{color:var(--text-tertiary);font-size:12px}.svc-item{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);border-radius:16px;align-items:center;gap:14px;margin-bottom:10px;padding:14px 16px;display:flex}.svc-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.svc-icon svg{width:20px;height:20px}.svc-info{flex:1;min-width:0}.svc-name{font-size:14px;font-weight:600}.svc-price-tag{color:var(--text-tertiary);margin-top:2px;font-size:12px}.svc-right{flex-shrink:0;align-items:center;display:flex}.svc-request-btn{border:1.5px solid var(--accent-warm);color:var(--accent-warm);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:10px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:all .2s}.svc-request-btn:active{transform:scale(.94)}.svc-request-btn.requested{border-color:var(--success-color);color:var(--success-color);pointer-events:none}.qty-control{border:1.5px solid var(--card-border);border-radius:10px;align-items:center;gap:0;display:flex;overflow:hidden}.qty-btn{background:var(--btn-secondary-bg);width:32px;height:32px;color:var(--text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;font-family:inherit;font-size:16px;font-weight:600;transition:all .15s;display:flex}.qty-btn:active{background:var(--icon-bg-1)}.qty-btn:disabled{opacity:.3;cursor:not-allowed}.qty-value{text-align:center;width:32px;color:var(--text-primary);background:0 0;font-size:14px;font-weight:700}.order-item{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);border-radius:16px;margin-bottom:12px;padding:16px 18px}.order-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.order-id{color:var(--text-tertiary);font-family:SF Mono,Menlo,monospace;font-size:12px}.order-items{margin-bottom:4px;font-size:14px;font-weight:600}.order-bottom{justify-content:space-between;align-items:center;display:flex}.order-time{color:var(--text-tertiary);font-size:12px}.order-total{color:var(--accent-warm);font-size:14px;font-weight:700}.order-summary{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);border-radius:16px;margin-top:4px;padding:18px 20px}.order-summary-row{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;display:flex}.order-summary-row+.order-summary-row{border-top:1px solid var(--divider)}.order-summary-row.total{border-top:2px solid var(--divider);color:var(--text-primary);margin-top:4px;padding-top:12px;font-size:16px;font-weight:700}.order-summary-row.total .order-summary-amount{color:var(--accent-warm);letter-spacing:.5px;font-size:20px}.order-summary-amount{font-family:SF Mono,Menlo,monospace;font-weight:600}.steps{justify-content:center;align-items:center;gap:0;margin-bottom:28px;display:flex}.step-dot{background:var(--divider);border-radius:50%;width:10px;height:10px;transition:all .3s}.step-dot.active{background:var(--accent-warm);border-radius:5px;width:28px}.step-dot.done{background:var(--success-color)}.step-line{background:var(--divider);width:32px;height:2px;transition:background .3s}.step-line.done{background:var(--success-color)}.page-content{flex-direction:column;flex:1;display:flex}.page-spacer{flex:1}@keyframes fadeSlideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeScaleIn{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.ripple{pointer-events:none;background:#ffffff4d;border-radius:50%;animation:.5s ease-out forwards rippleAnim;position:absolute;transform:scale(0)}[data-theme=dark] .ripple{background:#ffffff14}@keyframes rippleAnim{to{opacity:0;transform:scale(3)}}@media (width<=360px){.app-container,.page-inner{padding-left:16px;padding-right:16px}.grid-container{gap:10px}.grid-icon{border-radius:11px;width:40px;height:40px}.grid-icon svg{width:20px;height:20px}.grid-label{font-size:11.5px}.welcome-msg{font-size:20px}}@media (width>=410px){.grid-container{gap:14px}.grid-icon{width:48px;height:48px}.grid-icon svg{width:24px;height:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}
