@keyframes toast-enter-desktop{0%{opacity:0;transform:translateY(12px)scale(.96)}60%{opacity:1;transform:translateY(-3px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-exit-desktop{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(8px)scale(.95)}}@keyframes toast-enter-mobile{0%{opacity:0;transform:translateY(-12px)scale(.96)}60%{opacity:1;transform:translateY(3px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toast-exit-mobile{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-8px)scale(.95)}}.responsive-toaster-container{z-index:var(--z-toast,800)}.responsive-toast{min-width:auto;max-width:90vw;margin-top:calc(var(--safe-area-top,0px) + 16px);margin-bottom:calc(var(--bottom-nav-height,64px) + var(--safe-area-bottom,0px) + 16px);will-change:transform, opacity;backface-visibility:hidden;touch-action:manipulation;-webkit-user-select:none;user-select:none;animation:.35s cubic-bezier(.34,1.56,.64,1) forwards toast-enter-mobile;transform:translateZ(0)}@media (width>=768px){.responsive-toast{min-width:300px;max-width:420px;margin-top:16px;margin-bottom:16px;animation:.35s cubic-bezier(.34,1.56,.64,1) forwards toast-enter-desktop}}@media (width<=767px) and (orientation:landscape){.responsive-toast{margin-top:calc(var(--safe-area-top,0px) + 8px);margin-bottom:calc(var(--bottom-nav-height,48px) + var(--safe-area-bottom,0px) + 8px);padding:12px 16px;font-size:13px}}@media (prefers-reduced-motion:reduce){.responsive-toast{-webkit-backdrop-filter:none;animation:none}}@media (prefers-contrast:more){.responsive-toast{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border:2px solid}}.social-media-links{justify-content:center;align-items:center;gap:12px;display:flex}.social-media-links.horizontal{flex-direction:row}.social-media-links.vertical{flex-direction:column}.social-link{cursor:pointer;align-items:center;gap:8px;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.social-icon-wrapper{border-radius:50%;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.social-icon{color:var(--text-secondary);transition:all .3s cubic-bezier(.4,0,.2,1)}.social-label{color:var(--text-secondary);font-size:13px;font-weight:500;transition:color .3s}.social-link:hover .social-icon-wrapper{transform:translateY(-2px)scale(1.1)}.social-link:hover .social-icon,.social-link:hover .social-label{color:var(--primary-blue)}.social-links-sm .social-icon-wrapper{width:32px;height:32px}.social-links-md .social-icon-wrapper{width:40px;height:40px}.social-links-lg .social-icon-wrapper{width:48px;height:48px}.social-media-links.default .social-icon-wrapper{background:var(--glass-bg-subtle);-webkit-backdrop-filter:var(--glass-blur-subtle);backdrop-filter:var(--glass-blur-subtle);border:1px solid var(--border-subtle)}.social-media-links.default .social-link:hover .social-icon-wrapper{background:var(--glass-accent-bg);border-color:var(--primary-blue);box-shadow:0 4px 12px #007bff33}.social-media-links.glass .social-icon-wrapper{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.social-media-links.glass .social-link:hover .social-icon-wrapper{background:var(--glass-accent-bg);border-color:var(--primary-blue);box-shadow:0 8px 24px #007bff40}.social-media-links.minimal .social-icon-wrapper{background:0 0;border:none}.social-media-links.minimal .social-link:hover .social-icon-wrapper{background:var(--glass-bg-subtle)}.social-media-links.solid .social-icon-wrapper{background:#fff;border:1px solid #00000014;box-shadow:0 2px 8px #00000014}.social-media-links.solid .social-icon{color:var(--primary-blue)}.social-media-links.solid .social-link:hover .social-icon-wrapper{border-color:var(--primary-blue);background:#fff;transform:translateY(-2px)scale(1.05);box-shadow:0 4px 16px #60a5fa4d}.social-media-links.solid .social-link:hover .social-icon{color:#3b82f6}[data-theme=dark] .social-icon{color:var(--text-secondary)}[data-theme=dark] .social-link:hover .social-icon{color:var(--primary-blue)}[data-theme=dark] .social-media-links.default .social-icon-wrapper{border-color:var(--border-subtle);background:#ffffff0d}[data-theme=dark] .social-media-links.default .social-link:hover .social-icon-wrapper{border-color:var(--primary-blue);background:#4a9eff26;box-shadow:0 4px 12px #4a9eff4d}[data-theme=dark] .social-media-links.solid .social-icon-wrapper{background:#1e293be6;border:1px solid #60a5fa33;box-shadow:0 2px 8px #0000004d}[data-theme=dark] .social-media-links.solid .social-icon{color:var(--primary-blue)}[data-theme=dark] .social-media-links.solid .social-link:hover .social-icon-wrapper{border-color:var(--primary-blue);background:#1e293b;transform:translateY(-2px)scale(1.05);box-shadow:0 4px 16px #60a5fa66}[data-theme=dark] .social-media-links.solid .social-link:hover .social-icon{color:#60a5fa}@media (width<=768px){.social-media-links{gap:8px}.social-links-md .social-icon-wrapper{width:36px;height:36px}.social-links-lg .social-icon-wrapper{width:42px;height:42px}}.avatar-component{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.avatar-component img{object-fit:cover;width:100%;height:100%}.avatar-initials{color:#fff;text-transform:uppercase;font-weight:600}.avatar-sm{width:32px;height:32px}.avatar-sm .avatar-initials{font-size:.7rem}.avatar-md{width:36px;height:36px}.avatar-md .avatar-initials{font-size:.85rem}.avatar-lg{width:48px;height:48px}.avatar-lg .avatar-initials{font-size:1rem}.avatar-xl{width:80px;height:80px}.avatar-xl .avatar-initials{font-size:1.5rem}.toggle-container{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:8px 0;transition:all .2s;display:flex}.toggle-container:hover{opacity:.9}.toggle-input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{background:var(--glass-bg-subtle);border:1.5px solid var(--border-subtle);border-radius:12px;flex-shrink:0;width:44px;height:24px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.toggle-slider:before{content:"";background:var(--text-secondary);border-radius:50%;width:18px;height:18px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:2px;transform:translateY(-50%);box-shadow:0 2px 4px #0000001a}.toggle-input:checked+.toggle-slider{background:var(--primary-blue);border-color:var(--primary-blue);box-shadow:var(--shadow-glow-subtle)}.toggle-input:checked+.toggle-slider:before{background:#fff;left:calc(100% - 20px);box-shadow:0 2px 8px #0003}.toggle-container:hover .toggle-slider{border-color:var(--primary-blue)}.toggle-input:focus+.toggle-slider{outline:2px solid var(--primary-blue);outline-offset:2px}.toggle-label{color:var(--text-main);font-size:14px;font-weight:500;transition:color .2s}.toggle-container:hover .toggle-label{color:var(--primary-blue)}body.dark-mode .toggle-slider{background:var(--glass-bg-dark);border-color:var(--border-dark)}body.dark-mode .toggle-slider:before{background:var(--text-muted)}body.dark-mode .toggle-input:checked+.toggle-slider:before{background:#fff}.pwa-install-prompt{z-index:var(--z-system);width:500px;max-width:90%;animation:.3s ease-out slideUp;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.pwa-prompt-content{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);align-items:center;gap:16px;padding:20px 24px;display:flex}[data-theme=dark] .pwa-prompt-content{background:var(--glass-dark-bg);border-color:var(--glass-dark-border)}.pwa-prompt-icon{border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg,#60a5fa 0%,#3b82f6 50%,#2563eb 100%);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;animation:2s ease-in-out infinite iconPulse;display:flex;box-shadow:0 4px 12px #3b82f64d}@keyframes iconPulse{0%,to{transform:scale(1);box-shadow:0 4px 12px #3b82f64d}50%{transform:scale(1.05);box-shadow:0 6px 16px #3b82f666}}.pwa-prompt-text{flex:1;min-width:0}.pwa-prompt-text h3{color:var(--text-main);margin:0 0 4px;font-size:1rem;font-weight:600}.pwa-prompt-text p{color:var(--text-muted);margin:0;font-size:.875rem;line-height:1.4}.pwa-prompt-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.pwa-install-btn{color:#fff;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border:none;align-items:center;gap:8px;padding:10px 20px;font-size:.875rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 2px 8px #3b82f633}.pwa-install-btn:hover{background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.pwa-install-btn:active{transform:translateY(0);box-shadow:0 2px 8px #3b82f633}.pwa-dismiss-btn{border:1px solid var(--glass-border);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.pwa-dismiss-btn:hover{color:#ff6b9d;background:#ff6b9d1a;border-color:#ff6b9d}[data-theme=dark] .pwa-dismiss-btn{border-color:#ffffff1a}[data-theme=dark] .pwa-dismiss-btn:hover{background:#ff6b9d26}@media (width<=768px){.pwa-install-prompt{width:auto;max-width:none;bottom:16px;left:16px;right:16px;transform:none}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pwa-prompt-content{gap:12px;padding:16px}.pwa-prompt-icon{width:40px;height:40px}.pwa-prompt-text h3{font-size:.9rem}.pwa-prompt-text p{font-size:.8rem}.pwa-install-btn{padding:8px 16px;font-size:.8rem}.pwa-dismiss-btn{width:32px;height:32px}}.update-notification{z-index:var(--z-toast);max-width:420px;animation:.4s cubic-bezier(.4,0,.2,1) slideInRight;position:fixed;top:20px;right:20px}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.update-notification-content{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(135deg,#fffffffa 0%,#f9fafbf2 100%);border:1px solid #3b82f633;border-radius:12px;align-items:center;gap:14px;padding:16px 20px;display:flex;box-shadow:0 8px 24px #3b82f626,0 2px 8px #00000014}[data-theme=dark] .update-notification-content{background:linear-gradient(135deg,#1e293bfa 0%,#0f172af2 100%);border-color:#60a5fa4d;box-shadow:0 8px 24px #0006,0 2px 8px #60a5fa1a}.update-icon{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 4px 12px #10b9814d}.update-icon.updating{animation:1s linear infinite rotateIcon}@keyframes rotateIcon{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.update-text{flex:1;min-width:0}.update-text h4{color:var(--text-main);margin:0 0 4px;font-size:.95rem;font-weight:600}.update-text p{color:var(--text-muted);margin:0;font-size:.8rem;line-height:1.4}.update-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.update-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:.8rem;font-weight:600;transition:all .2s;display:flex;box-shadow:0 2px 8px #10b98133}.update-btn:hover{background:linear-gradient(135deg,#059669 0%,#047857 100%);transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.update-btn:active{transform:translateY(0);box-shadow:0 2px 8px #10b98133}.update-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.update-btn:disabled:hover{background:linear-gradient(135deg,#10b981 0%,#059669 100%);transform:none;box-shadow:0 2px 8px #10b98133}.update-dismiss-btn{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000001a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.update-dismiss-btn:hover{color:#ef4444;background:#ef44441a;border-color:#ef4444}[data-theme=dark] .update-dismiss-btn{border-color:#ffffff1a}[data-theme=dark] .update-dismiss-btn:hover{background:#ef444426}@media (width<=768px){.update-notification{max-width:none;top:16px;left:16px;right:16px}.update-notification-content{gap:12px;padding:14px 16px}.update-icon{width:36px;height:36px}.update-text h4{font-size:.875rem}.update-text p{font-size:.75rem}.update-btn{padding:7px 14px;font-size:.75rem}.update-dismiss-btn{width:30px;height:30px}}.network-error{background:var(--background-secondary);border:2px solid var(--border-color);box-sizing:border-box;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:600px;margin:16px;padding:32px 24px;display:flex}.network-error-content{text-align:center;flex-direction:column;align-items:center;gap:20px;width:100%;display:flex}.network-error-icon{width:80px;height:80px;color:var(--error-color);background:#ff3b301a;border-radius:50%;justify-content:center;align-items:center;display:flex}.network-error-error .network-error-icon{color:var(--error-color);background:#ff3b301a}.network-error-warning .network-error-icon{color:var(--warning-color);background:#ff95001a}.network-error-text{flex-direction:column;gap:8px;display:flex}.network-error-title{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.network-error-message{color:var(--text-secondary);margin:0;font-size:16px;line-height:1.5}.network-error-retry-count{color:var(--text-muted);margin:4px 0 0;font-size:14px;font-style:italic}.network-error-retry-btn{background:var(--primary-blue);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;margin-top:8px;padding:12px 24px;font-size:16px;font-weight:600;transition:all .2s;display:flex}.network-error-retry-btn:hover:not(:disabled){background:var(--primary-blue-dark);transform:translateY(-1px);box-shadow:0 4px 12px #007bff4d}.network-error-retry-btn:active:not(:disabled){transform:translateY(0)}.network-error-retry-btn:disabled{opacity:.6;cursor:not-allowed}.network-error-retry-btn .spinning{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=767px){.network-error{border-radius:8px;margin:12px;padding:24px 16px}.network-error-icon{width:64px;height:64px}.network-error-icon svg{width:36px;height:36px}.network-error-title{font-size:18px}.network-error-message{font-size:14px}.network-error-retry-btn{justify-content:center;width:100%;padding:14px 24px}}[data-theme=dark] .network-error{background:#ffffff0d;border-color:#ffffff1a}[data-theme=dark] .network-error-error .network-error-icon{color:#ff453a;background:#ff453a26}[data-theme=dark] .network-error-warning .network-error-icon{color:#ff9f0a;background:#ff9f0a26}.inline-error{background:#ff3b301a;border:1px solid #ff3b304d;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin:8px 0;padding:12px 16px;animation:.2s slideIn;display:flex}.inline-error-compact{margin:4px 0;padding:8px 12px}.inline-error-content{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.inline-error-icon{color:var(--error-color);flex-shrink:0}.inline-error-message{color:var(--error-color);overflow-wrap:break-word;font-size:14px;line-height:1.4}.inline-error-compact .inline-error-message{font-size:13px}.inline-error-dismiss{cursor:pointer;color:var(--error-color);opacity:.7;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:opacity .2s;display:flex}.inline-error-dismiss:hover{opacity:1}.inline-error-dismiss:focus-visible{outline:2px solid var(--error-color);outline-offset:2px;border-radius:4px}@keyframes slideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .inline-error{background:#ff453a26;border-color:#ff453a66}[data-theme=dark] .inline-error-icon,[data-theme=dark] .inline-error-message,[data-theme=dark] .inline-error-dismiss{color:#ff453a}@media (width<=767px){.inline-error{padding:10px 12px}.inline-error-message{font-size:13px}}.lazy-image-container{background-color:var(--bg-secondary,#f8f9fa);position:relative;overflow:hidden}.lazy-image-container.loaded{background-color:#0000}.lazy-image-placeholder{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.placeholder-img{object-fit:cover;filter:blur(10px);width:100%;height:100%;transform:scale(1.1)}.placeholder-blur{background:linear-gradient(135deg,#007bff1a 0%,#007bff0d 50%,#007bff1a 100%);width:100%;height:100%;animation:2s infinite shimmer}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.lazy-image{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .3s ease-in-out}.lazy-image.visible{opacity:1}.lazy-image-error{background-color:var(--bg-secondary,#f8f9fa);width:100%;height:100%;color:var(--text-secondary,#6c757d);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;top:0;left:0}.lazy-image-error svg{opacity:.5}.lazy-image-error span{font-size:14px;font-weight:500}.lazy-bg-container{background-position:50%;background-repeat:no-repeat;background-size:cover;transition:background-image .3s ease-in-out}.lazy-bg-container:not(.loaded){background-color:var(--bg-secondary,#f8f9fa)}@media (prefers-color-scheme:dark){.lazy-image-container{background-color:var(--bg-secondary-dark,#2c3e50)}.placeholder-blur{background:linear-gradient(135deg,#007bff26 0%,#007bff14 50%,#007bff26 100%)}.lazy-image-error{background-color:var(--bg-secondary-dark,#2c3e50);color:var(--text-secondary-dark,#adb5bd)}.lazy-bg-container:not(.loaded){background-color:var(--bg-secondary-dark,#2c3e50)}}@media (prefers-reduced-motion:reduce){.lazy-image,.lazy-bg-container{transition:none}.placeholder-blur{animation:none}}.lazy-image-container,.lazy-bg-container{will-change:opacity;contain:layout style paint}.consent-banner{z-index:var(--z-system);background:var(--bg-primary,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:12px;width:calc(100% - 40px);max-width:900px;transition:opacity .3s,transform .3s;animation:.4s ease-out slideUp;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 10px 40px #00000026}.consent-banner.closing{opacity:0;transform:translate(-50%)translateY(20px)}.consent-content{align-items:center;gap:16px;padding:16px 20px;display:flex}.consent-icon{color:#fff;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.consent-text{color:var(--text-primary,#374151);flex:1;font-size:14px;line-height:1.5}.consent-text p{margin:0}.consent-link{color:#3b82f6;cursor:pointer;background:0 0;border:none;margin:0 2px;padding:0;font-size:14px;font-weight:500;text-decoration:underline;transition:color .2s}.consent-link:hover{color:#2563eb}.consent-actions{flex-shrink:0;gap:8px;display:flex}.consent-btn{cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s}.consent-btn-accept{color:#fff;background:#3b82f6}.consent-btn-accept:hover{background:#2563eb}.consent-btn-decline{color:var(--text-secondary,#6b7280);border:1px solid var(--border-color,#e5e7eb);background:0 0}.consent-btn-decline:hover{background:var(--bg-secondary,#f3f4f6);color:var(--text-primary,#374151)}.consent-close{width:24px;height:24px;color:var(--text-muted,#9ca3af);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:8px;right:8px}.consent-close:hover{background:var(--bg-secondary,#f3f4f6);color:var(--text-primary,#374151)}[data-theme=dark] .consent-banner{background:#1f2937;border-color:#374151}[data-theme=dark] .consent-text{color:#e5e7eb}[data-theme=dark] .consent-btn-decline{color:#9ca3af;border-color:#4b5563}[data-theme=dark] .consent-btn-decline:hover{color:#e5e7eb;background:#374151}[data-theme=dark] .consent-close{color:#6b7280}[data-theme=dark] .consent-close:hover{color:#e5e7eb;background:#374151}@media (width<=768px){.consent-banner{border-radius:12px 12px 0 0;width:100%;max-width:100%;bottom:0;left:0;right:0;transform:none}.consent-banner.closing{transform:translateY(20px)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.consent-content{text-align:center;flex-direction:column;gap:12px;padding:20px}.consent-icon{display:none}.consent-actions{justify-content:center;width:100%}.consent-btn{flex:1;max-width:150px}}@media (prefers-reduced-motion:reduce){.consent-banner{animation:none}.consent-banner.closing{display:none}}.guest-banner{z-index:1000;background:var(--surface-white);border-top:1px solid var(--border-color);animation:.3s ease-out slideUp;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000001a}.guest-banner-content{align-items:center;gap:16px;max-width:1200px;margin:0 auto;padding:16px 24px;display:flex}.guest-banner-icon{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.guest-banner-text{flex:1}.guest-banner-message{color:var(--text-main);margin:0;font-size:14px;line-height:1.5}.guest-banner-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.guest-banner-signup-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.guest-banner-signup-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.guest-banner-signup-btn:active{transform:translateY(0)}.guest-banner-dismiss-btn{width:36px;height:36px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.guest-banner-dismiss-btn:hover{background:var(--surface-hover);color:var(--text-main)}@media (width<=768px){.guest-banner-content{gap:12px;padding:12px 16px}.guest-banner-icon{width:32px;height:32px}.guest-banner-icon svg{width:16px;height:16px}.guest-banner-message{font-size:13px}.guest-banner-signup-btn{padding:8px 16px;font-size:13px}.guest-banner-dismiss-btn{width:32px;height:32px}}@media (width<=480px){.guest-banner-content{flex-wrap:wrap}.guest-banner-text{flex-basis:100%;order:1}.guest-banner-icon{order:0}.guest-banner-actions{order:2;margin-left:auto}}.autocomplete-container{width:100%;position:relative}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;z-index:1;position:absolute;left:12px}.search-input{width:100%;font-size:var(--font-size-base);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-main);padding:12px 40px 12px 44px;transition:all .2s}.search-input:focus{border-color:var(--primary-blue);outline:none;box-shadow:0 0 0 3px #3b82f61a}.loading-spinner{border:2px solid var(--border-subtle);border-top-color:var(--primary-blue);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin;position:absolute;right:12px}.search-submit-btn{background:var(--primary-blue);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:all .15s;display:flex;position:absolute;right:8px}.search-submit-btn:hover{background:var(--primary-blue-hover,#2563eb);transform:scale(1.05)}.search-submit-btn:active{transform:scale(.95)}.search-input:not(:last-child){padding-right:50px}.autocomplete-dropdown{border:1px solid var(--border-subtle);border-radius:var(--radius-md);max-height:400px;z-index:var(--z-dropdown);background:#fff;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001a}[data-theme=dark] .autocomplete-dropdown{background:#1e293b}.autocomplete-item{cursor:pointer;align-items:center;gap:12px;padding:12px 16px;transition:background-color .15s;display:flex}.autocomplete-item:hover,.autocomplete-item.selected{background-color:var(--bg-hover)}.autocomplete-item svg{color:var(--text-muted);flex-shrink:0}.nearby-item{color:var(--primary-blue);border-bottom:1px solid var(--border-subtle);font-weight:500}.nearby-item svg{color:var(--primary-blue)}.autocomplete-section-header{font-size:var(--font-size-sm);color:var(--text-muted);background-color:var(--bg-secondary);border-top:1px solid var(--border-subtle);padding:8px 16px;font-weight:600}.autocomplete-section-header:first-child{border-top:none}.item-content{flex:1;min-width:0}.item-title{font-size:var(--font-size-base);color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.item-subtitle{font-size:var(--font-size-sm);color:var(--text-muted);margin-top:2px}.product-item{align-items:flex-start}.product-thumbnail{object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0;width:50px;height:50px}.no-results{text-align:center;color:var(--text-muted);font-size:var(--font-size-sm);padding:24px 16px}.star-rating{align-items:center;gap:var(--spacing-sm);display:flex}.stars-container{align-items:center;gap:2px;display:flex}.star-icon{flex-shrink:0}.star-half-container{display:inline-block;position:relative}.star-half-container .star-empty{position:absolute;top:0;left:0}.star-half-container .star-half{clip-path:inset(0 50% 0 0)}.rating-number{font-size:var(--font-size-sm);color:var(--text-main);font-weight:600}.review-count{font-size:var(--font-size-sm);color:var(--text-muted)}.star-rating-sm .rating-number,.star-rating-sm .review-count{font-size:var(--font-size-xs)}.star-rating-lg .rating-number{font-size:var(--font-size-base)}.star-rating-lg .review-count{font-size:var(--font-size-sm)}[data-theme=dark] .rating-number{color:var(--text-main)}[data-theme=dark] .review-count{color:var(--text-muted)}.experience-badge{border-radius:var(--radius-sm);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;gap:4px;padding:4px 8px;font-weight:600;line-height:1.2;display:inline-flex}.badge-best-seller{color:#92400e;background-color:#fef3c7}.badge-special-offer{color:#1e40af;background-color:#dbeafe}.badge-free-cancellation{color:#065f46;background-color:#d1fae5}[data-theme=dark] .badge-best-seller{color:#fef3c7;background-color:#78350f}[data-theme=dark] .badge-special-offer{color:#dbeafe;background-color:#1e3a8a}[data-theme=dark] .badge-free-cancellation{color:#d1fae5;background-color:#064e3b}.availability-calendar{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.month-title{color:#111827;margin:0;font-size:18px;font-weight:600}.month-nav{cursor:pointer;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.month-nav:hover{background:#f3f4f6;border-color:#d1d5db}.calendar-loading,.calendar-error{text-align:center;color:#6b7280;padding:40px 20px;font-size:14px}.calendar-error{color:#dc2626;background:#fee2e2;border-radius:8px;padding:16px}.calendar-weekdays{grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px;display:grid}.calendar-weekdays>div{text-align:center;color:#6b7280;padding:8px 0;font-size:12px;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.calendar-day{aspect-ratio:1;cursor:pointer;border:2px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-size:14px;font-weight:500;transition:all .2s;display:flex}.calendar-day.empty{cursor:default}.calendar-day.past{color:#d1d5db;cursor:not-allowed}.calendar-day.unavailable{color:#9ca3af;cursor:not-allowed;background:#f9fafb;position:relative}.unavailable-indicator{color:#ef4444;font-size:10px;font-weight:700;line-height:1;position:absolute;top:2px;right:2px}.calendar-day.available{color:#111827;background:#e0f2fe;border-color:#bae6fd}.calendar-day.available:hover{background:#bae6fd;border-color:#7dd3fc;transform:scale(1.05)}.calendar-day.selected{color:#fff;background:#3b82f6;border-color:#2563eb}.calendar-day.selected:hover{background:#2563eb;border-color:#1d4ed8}.calendar-legend{border-top:1px solid #e5e7eb;flex-wrap:wrap;gap:16px;margin-top:16px;padding-top:16px;display:flex}.legend-item{color:#6b7280;align-items:center;gap:8px;font-size:12px;display:flex}.legend-color{border-radius:4px;width:16px;height:16px}.legend-color.available{background:#e0f2fe;border:2px solid #bae6fd}.legend-color.unavailable{background:#f9fafb;border:2px solid #e5e7eb}.legend-color.selected{background:#3b82f6;border:2px solid #2563eb}.time-slots-section{border-top:1px solid #e5e7eb;margin-top:24px;padding-top:24px}.time-slots-header{color:#111827;align-items:center;gap:8px;margin-bottom:16px;font-size:16px;font-weight:600;display:flex}.options-list{flex-direction:column;gap:12px;display:flex}.option-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:16px;transition:all .2s;display:flex}.option-card:hover{border-color:#d1d5db;box-shadow:0 4px 12px #00000014}.option-info{flex:1}.option-title{color:#111827;margin:0 0 4px;font-size:15px;font-weight:600}.option-description{color:#6b7280;margin:0 0 8px;font-size:13px;line-height:1.4}.option-duration{color:#6b7280;align-items:center;gap:6px;font-size:13px;display:flex}.option-pricing{flex-direction:column;align-items:flex-end;gap:12px;display:flex}.price-info{align-items:center;gap:4px;display:flex}.price{color:#111827;font-size:18px;font-weight:700}.price-type{color:#6b7280;font-size:12px}.select-option-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#3b82f6;border:none;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .2s}.select-option-btn:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.no-options{text-align:center;color:#6b7280;background:#f9fafb;border-radius:8px;margin-top:16px;padding:32px 20px;font-size:14px}.next-available{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;margin-top:24px;padding:16px}.next-available-title{color:#374151;margin:0 0 12px;font-size:14px;font-weight:600}.next-available-dates{flex-wrap:wrap;gap:8px;display:flex}.next-available-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s}.next-available-btn:hover{color:#fff;background:#3b82f6;border-color:#3b82f6}.next-available-btn:active{transform:scale(.98)}@media (width<=768px){.option-card{flex-direction:column;align-items:flex-start}.option-pricing{flex-direction:row;justify-content:space-between;align-items:center;width:100%}.select-option-btn{width:auto}}.segmented-control{background:var(--glass-bg-subtle);border:1px solid var(--border-subtle);border-radius:8px;gap:2px;padding:3px;transition:all .2s;display:inline-flex}.segmented-control.full-width{width:100%;display:flex}.segment{color:var(--text-secondary);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:4px;min-width:0;padding:6px 12px;font-size:13px;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.segmented-control.full-width .segment{flex:1}.segment:hover:not(.selected){background:var(--bg-page);color:var(--text-main)}.segment.selected{background:var(--primary-blue);color:#fff;animation:.2s cubic-bezier(.4,0,.2,1) segment-select;transform:scale(1.02);box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f,inset 0 1px #ffffff1a}.segment:active{transform:scale(.98)}.segment:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px}.segment-icon{justify-content:center;align-items:center;font-size:14px;display:flex}.segment-label{line-height:1}.segmented-control.small .segment{padding:4px 8px;font-size:12px}.segmented-control.small .segment-icon{font-size:12px}.segmented-control.large .segment{padding:8px 16px;font-size:14px}.segmented-control.large .segment-icon{font-size:16px}body.dark-mode .segmented-control{background:var(--glass-bg-dark);border-color:var(--border-dark)}body.dark-mode .segment:hover:not(.selected){background:#ffffff0d}body.dark-mode .segment.selected{box-shadow:0 1px 3px #0000004d,0 1px 2px #0003,inset 0 1px #ffffff26}@keyframes segment-select{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1.02)}}.time-of-day-selector{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.time-of-day-selector.small{gap:4px}.time-period{background:var(--glass-bg-subtle);border:1.5px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.time-of-day-selector.small .time-period{gap:6px;padding:6px 8px}.period-icon{color:var(--text-muted);flex-shrink:0;transition:all .2s}.time-of-day-selector.small .period-icon{width:14px;height:14px}.period-content{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.period-label{color:var(--text-main);font-size:16px;font-weight:500;line-height:1.2}.period-time{color:var(--text-muted);font-size:16px;font-weight:400;line-height:1}.time-of-day-selector.small .period-label,.time-of-day-selector.small .period-time{font-size:16px}.time-period:hover:not(.selected){background:var(--bg-page);border-color:var(--primary-blue);transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.time-period:hover:not(.selected) .period-icon{color:var(--primary-blue)}.time-period.selected{background:linear-gradient(135deg, var(--primary-blue) 0%, #06c 100%);border-color:var(--primary-blue);color:#fff;animation:.3s cubic-bezier(.4,0,.2,1) time-period-select;transform:translateY(-1px);box-shadow:0 2px 8px #0066ff40,inset 0 1px #fff3}.time-period.selected .period-icon,.time-period.selected .period-label,.time-period.selected .period-time{color:#fff}.time-period:active{transform:translateY(0)}.time-period:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px}body.dark-mode .time-period{background:var(--glass-bg-dark);border-color:var(--border-dark)}body.dark-mode .time-period:hover:not(.selected){background:#ffffff0d}body.dark-mode .time-period.selected{background:linear-gradient(135deg, var(--primary-blue) 0%, #0052cc 100%);box-shadow:0 2px 8px #0066ff4d,inset 0 1px #ffffff26}@keyframes time-period-select{0%{transform:translateY(0)scale(1)}50%{transform:translateY(-2px)scale(1.02)}to{transform:translateY(-1px)scale(1)}}
