*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-color:#fff;--bg-gradient:linear-gradient(180deg, #fff 0%, #e0f2f4 20%, #88c4d1 75%);--text-primary:#54566b;--text-secondary:#74768b;--accent-color:#76b5c5;--accent-light:#e0f2f4;--border-color:#76b5c566;--card-bg:#fffffff2;--card-text:#54566b;--card-shadow:0 10px 40px #54566b1a;--font-serif:"Playfair Display", serif;--font-sans:"Montserrat", sans-serif}body{font-family:var(--font-sans);background:var(--bg-color);background-image:var(--bg-gradient);color:var(--text-primary);opacity:0;background-attachment:fixed;justify-content:center;align-items:flex-start;min-height:100vh;transition:opacity .3s;display:flex;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-container{flex-direction:column;justify-content:flex-start;width:100%;max-width:500px;min-height:100vh;padding:2rem;display:flex;position:relative}.screen{opacity:0;pointer-events:none;flex-direction:column;justify-content:flex-start;width:100%;height:100%;padding:8vh 2rem 2rem;transition:opacity .5s,transform .5s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;top:0;left:0;transform:translateY(20px)}.screen.active{opacity:1;pointer-events:all;position:relative;transform:translateY(0)}.screen.hidden{display:none}.hidden{display:none!important}.header{text-align:center;margin-bottom:3rem}.r360-logo{max-width:180px;margin:0 auto 1.5rem;display:block}.logo-title{font-family:var(--font-serif);color:var(--text-primary);margin-bottom:.5rem;font-size:3.5rem;font-weight:400;line-height:1.1}.subtitle{font-family:var(--font-sans);color:var(--text-secondary);letter-spacing:.1em;text-transform:uppercase;font-size:1rem;font-weight:400}.has-custom-logo .logo-title{margin-bottom:.4rem;font-size:2rem}.has-custom-logo .subtitle{letter-spacing:.12em;font-size:.85rem}.search-container{width:100%;position:relative}.input-wrapper{z-index:10;width:100%;position:relative}.search-icon{color:var(--accent-color);pointer-events:none;position:absolute;top:50%;left:1.5rem;transform:translateY(-50%)}.guest-input{width:100%;font-size:1.1rem;font-family:var(--font-sans);color:var(--card-text);background:var(--card-bg);border:1px solid var(--border-color);border-radius:3rem;outline:none;padding:1.2rem 1.2rem 1.2rem 3.5rem;font-weight:400;transition:all .3s;box-shadow:0 4px 15px #00000008}.guest-input::placeholder{color:var(--card-text);opacity:.6}.guest-input:focus{border-color:var(--card-text);box-shadow:0 4px 20px #54566b1a}.dropdown-list{background:var(--card-bg);border:1px solid var(--border-color);width:100%;max-height:280px;box-shadow:var(--card-shadow);z-index:5;opacity:0;pointer-events:none;border-radius:1.5rem;list-style:none;transition:all .3s;position:absolute;top:calc(100% + .5rem);left:0;overflow-y:auto;transform:translateY(-10px)}.dropdown-list.active{opacity:1;pointer-events:all;transform:translateY(0)}.dropdown-list::-webkit-scrollbar{width:6px}.dropdown-list::-webkit-scrollbar-track{background:0 0}.dropdown-list::-webkit-scrollbar-thumb{background:var(--accent-light);border-radius:3px}.dropdown-item{cursor:pointer;color:var(--card-text);opacity:.8;font-family:var(--font-serif);border-bottom:1px solid #76b5c526;padding:1rem 1.5rem;font-size:1.1rem;transition:background .2s,color .2s}.dropdown-item:last-child{border-bottom:none}.dropdown-item:hover,.dropdown-item.focused{background:var(--accent-light);color:var(--card-text);opacity:1}.loading-indicator{color:var(--text-secondary);justify-content:center;align-items:center;gap:.8rem;margin-top:2rem;font-size:.9rem;display:flex}.spinner{border:2px solid var(--accent-light);border-top-color:var(--accent-color);border-radius:50%;width:18px;height:18px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.success-card{background:var(--card-bg);border:1px solid var(--border-color);text-align:center;box-shadow:var(--card-shadow);border-radius:2rem;flex-direction:column;align-items:center;gap:1.5rem;padding:3rem 2rem;display:flex;position:relative;overflow:hidden}.success-card:before{content:"";background:var(--accent-color);width:100%;height:6px;position:absolute;top:0;left:0}.card-header h2{font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--card-text);opacity:.8;font-size:1rem;font-weight:400}.guest-name{font-family:var(--font-serif);color:var(--card-text);font-size:2.8rem;font-weight:400;line-height:1.1}.table-label{color:var(--card-text);opacity:.8;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.2rem;font-size:.9rem}.table-number-display{border:2px solid var(--accent-color);background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:130px;height:130px;margin:0 auto;display:flex;box-shadow:0 8px 25px #76b5c54d}.table-prefix{text-transform:uppercase;color:var(--accent-color);margin-bottom:-5px;font-size:.8rem;font-weight:600}.table-number{font-family:var(--font-serif);color:var(--text-primary);font-size:4rem;font-weight:400;line-height:1}.reset-btn{border:1px solid var(--border-color);color:var(--card-text);cursor:pointer;font-size:.9rem;font-weight:500;font-family:var(--font-sans);background:0 0;border-radius:2rem;align-items:center;gap:.5rem;padding:.8rem 2rem;transition:all .3s;display:flex}.reset-btn:hover{background:var(--accent-light);border-color:var(--accent-color)}.diagram-btn{z-index:100;background:var(--card-bg);border:1.5px solid var(--border-color);font-family:var(--font-sans);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:2rem;justify-content:center;align-items:center;gap:.5rem;width:fit-content;padding:.75rem 1.75rem;font-size:.85rem;font-weight:500;transition:all .25s;display:flex;position:fixed;bottom:1.75rem;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #54566b1f}.diagram-btn:hover{border-color:var(--accent-color);color:var(--text-primary);background:var(--accent-light)}.diagram-lightbox{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:999;background:#000000d9;justify-content:center;align-items:center;padding:1.5rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.diagram-lightbox.hidden{display:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.diagram-lightbox img{object-fit:contain;border-radius:.75rem;max-width:100%;max-height:90vh;box-shadow:0 30px 80px #00000080}.diagram-close{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:.9rem;transition:background .2s;display:flex;position:fixed;top:1.25rem;right:1.25rem}.diagram-close:hover{background:#ffffff4d}.screensaver{-webkit-backdrop-filter:blur(28px)saturate(1.4);z-index:9000;cursor:pointer;background:#000000b8;justify-content:center;align-items:center;animation:.8s fadeIn;display:flex;position:fixed;inset:0}.screensaver.hidden{display:none!important}.screensaver-content{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem;display:flex}.screensaver-title{font-family:var(--font-serif);color:#fff;margin-bottom:.25rem;font-size:2.8rem;font-weight:400;line-height:1.15}.screensaver-sub{font-family:var(--font-sans);color:#ffffffa6;letter-spacing:.05em;margin-bottom:1.75rem;font-size:1rem}#screensaver-qr{background:#fff;border-radius:10px;padding:10px;line-height:0;display:inline-block}.screensaver-url{font-family:var(--font-sans);color:#fff6;letter-spacing:.02em;margin-top:.75rem;font-size:.72rem}.powered-by{font-family:var(--font-sans);color:#ffffff61;letter-spacing:.03em;z-index:10;pointer-events:none;font-size:.62rem;transition:color .3s;position:fixed;bottom:.75rem;right:1rem}.powered-by a{color:inherit;pointer-events:all;text-decoration:none}.powered-by a:hover{text-decoration:underline}@media (width<=480px){.screen{padding-top:4vh}.header{margin-bottom:2rem}.logo-title{font-size:2.8rem}.r360-logo{max-width:140px;margin-bottom:1rem}.guest-input{font-size:1rem}.success-card{padding:2.5rem 1.5rem}.guest-name{font-size:2.2rem}.table-number-display{width:110px;height:110px}.table-number{font-size:3.5rem}}
