:root{--ct-bg: var(--tg-theme-bg-color, #ffffff);--ct-text: var(--tg-theme-text-color, #1a1a2e);--ct-hint: var(--tg-theme-hint-color, #8e8e93);--ct-link: var(--tg-theme-link-color, #667eea);--ct-button: var(--tg-theme-button-color, #667eea);--ct-button-text: var(--tg-theme-button-text-color, #ffffff);--ct-secondary-bg: var(--tg-theme-secondary-bg-color, #f2f2f7);--ct-section-bg: var(--tg-theme-section-bg-color, #ffffff);--ct-accent: var(--tg-theme-accent-text-color, #667eea);--ct-destructive: var(--tg-theme-destructive-text-color, #ff3b30);--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-primary-hover: linear-gradient(135deg, #5a6fd6 0%, #6a4192 100%);--gradient-accent: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-bg: linear-gradient(160deg, #667eea 0%, #764ba2 50%, #5a4fcf 100%);--color-white: #ffffff;--color-black: #000000;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-stars: #ffc107;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 3px rgba(0, 0, 0, .08);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 16px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .16);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .2);--shadow-glow: 0 4px 20px rgba(102, 126, 234, .35);--shadow-glow-hover: 0 8px 32px rgba(102, 126, 234, .45);--glass-border-light: 1px solid rgba(255, 255, 255, .35);--glass-border-medium: 1px solid rgba(255, 255, 255, .45);--glass-border-strong: 1px solid rgba(255, 255, 255, .55);--glass-shadow-sm: 0 2px 8px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--glass-shadow-md: 0 4px 16px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .04), inset 0 1px 0 rgba(255, 255, 255, .25);--glass-shadow-lg: 0 8px 32px rgba(0, 0, 0, .1), 0 4px 8px rgba(0, 0, 0, .06), inset 0 1px 0 rgba(255, 255, 255, .3);--glass-shadow-card: 0 4px 20px rgba(0, 0, 0, .08), 0 1px 3px rgba(0, 0, 0, .04);--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, sans-serif;--font-xs: 11px;--font-sm: 13px;--font-base: 15px;--font-md: 16px;--font-lg: 18px;--font-xl: 20px;--font-2xl: 24px;--font-3xl: 28px;--touch-min: 44px;--touch-comfortable: 48px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--z-dropdown: 100;--z-sticky: 200;--z-modal-backdrop: 900;--z-modal: 1000;--z-toast: 1100}@media (prefers-color-scheme: dark){:root{--ct-bg: var(--tg-theme-bg-color, #1a1a2e);--ct-text: var(--tg-theme-text-color, #e4e4e7);--ct-hint: var(--tg-theme-hint-color, #71717a);--ct-secondary-bg: var(--tg-theme-secondary-bg-color, #27272a);--ct-section-bg: var(--tg-theme-section-bg-color, #1f1f23);--glass-border-light: 1px solid rgba(255, 255, 255, .12);--glass-border-medium: 1px solid rgba(255, 255, 255, .18);--glass-border-strong: 1px solid rgba(255, 255, 255, .22)}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-family);background:var(--gradient-bg);color:var(--ct-text);line-height:1.5;font-size:var(--font-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overscroll-behavior-y:none;padding:var(--space-2);padding-top:max(var(--space-2),env(safe-area-inset-top));padding-bottom:max(var(--space-2),env(safe-area-inset-bottom))}img{display:block;max-width:100%}button,input,select,textarea{font-family:inherit;font-size:inherit}button{cursor:pointer;border:none;background:none;min-height:44px;min-width:44px}input,select,textarea{min-height:44px}.counter-btn,.guest-counter-btn,.calendar-nav,.dropdown-item,.profile-menu-item{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}a{color:var(--ct-link);text-decoration:none}.text-gradient{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-hint{color:var(--ct-hint)}.text-sm{font-size:var(--font-sm)}.text-xs{font-size:var(--font-xs)}.ct-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:currentColor}.ct-icon svg{display:block}.page-container{width:100%;max-width:100%;margin:0}@media (min-width: 768px){body{padding:var(--space-5)}}@media (min-width: 1024px){.page-container{max-width:640px;margin:0 auto}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full)}::selection{background:rgba(102,126,234,.2)}.glass{background:linear-gradient(135deg,rgba(255,255,255,.8),rgba(255,255,255,.72));backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:var(--glass-border-medium);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow-sm)}.glass-subtle{background:linear-gradient(135deg,rgba(255,255,255,.58),rgba(255,255,255,.48));backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);border:var(--glass-border-light);border-radius:var(--radius-lg)}.glass-strong{background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(255,255,255,.82));backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border:var(--glass-border-strong);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow-md)}.glass-dark{background:rgba(0,0,0,.3);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);color:#fff}.glass-card{background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(255,255,255,.7));backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:var(--glass-border-medium);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow-card);transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.glass-card:hover{transform:translateY(-2px);box-shadow:var(--glass-shadow-md)}.glass-card:active{transform:translateY(0) scale(.98)}.glass-gradient-card{background:var(--gradient-primary);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);color:#fff;overflow:hidden;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.glass-gradient-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow-hover)}.glass-gradient-card:active{transform:translateY(0) scale(.98)}.glass-header{background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(255,255,255,.88));backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border:var(--glass-border-medium);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--glass-shadow-md);position:sticky;top:env(safe-area-inset-top,0);z-index:var(--z-sticky)}.glass-section{background:linear-gradient(135deg,rgba(255,255,255,.88),rgba(255,255,255,.84));backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:var(--glass-border-light);border-top:1px solid rgba(255,255,255,.25)}.glass-section-last{border-radius:0 0 var(--radius-xl) var(--radius-xl);box-shadow:var(--glass-shadow-md)}.glass-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:var(--z-modal-backdrop)}.glass-modal{background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(255,255,255,.85));backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border:var(--glass-border-strong);border-radius:var(--radius-2xl);box-shadow:var(--glass-shadow-lg);z-index:var(--z-modal)}.glass-input{background:rgba(255,255,255,.65);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--ct-text);transition:all var(--duration-fast) var(--ease-out);min-height:var(--touch-comfortable);box-shadow:inset 0 1px 3px #0000000f,0 1px #ffffff80}.glass-input:focus{outline:none;border-color:var(--ct-accent);box-shadow:0 0 0 3px #667eea26;background:rgba(255,255,255,.65)}.glass-input::placeholder{color:var(--ct-hint)}.glass-on-gradient{background:rgba(255,255,255,.15);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-md);color:#fff}@media (prefers-contrast: high){.glass,.glass-subtle,.glass-card,.glass-header,.glass-section,.glass-modal{background:rgba(255,255,255,.95);backdrop-filter:none;-webkit-backdrop-filter:none;border:2px solid var(--color-gray-300)}.glass-dark{background:rgba(0,0,0,.85);backdrop-filter:none;-webkit-backdrop-filter:none}}.btn-primary{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);color:var(--color-white);font-weight:700;font-size:var(--font-base);background:var(--gradient-primary);box-shadow:var(--shadow-glow);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);min-height:var(--touch-comfortable);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-glow-hover)}.btn-primary:active{transform:translateY(0) scale(.98);box-shadow:var(--shadow-sm)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary.btn-block{width:100%}.btn-secondary{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--color-gray-200);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);color:var(--ct-text);font-weight:600;font-size:var(--font-sm);background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);min-height:var(--touch-comfortable);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.btn-secondary:hover{background:rgba(255,255,255,.9);border-color:var(--ct-accent);transform:translateY(-1px)}.btn-secondary:active{transform:translateY(0) scale(.98)}.btn-danger{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);color:var(--color-white);font-weight:600;font-size:var(--font-sm);background:linear-gradient(135deg,#f87171 0%,#ef4444 100%);box-shadow:0 2px 8px #f8717140;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center}.btn-danger:hover{background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);transform:translateY(-1px);box-shadow:0 4px 12px #f8717159}.btn-icon{width:var(--touch-min);height:var(--touch-min);border:none;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:600;line-height:1;white-space:nowrap}.pill-accent{background:rgba(102,126,234,.1);color:var(--ct-accent);border:1px solid rgba(102,126,234,.15)}.pill-white{background:rgba(255,255,255,.22);color:#fffffff2;border:1px solid rgba(255,255,255,.3);text-shadow:0 1px 2px rgba(0,0,0,.15)}.pill-success{background:rgba(16,185,129,.1);color:var(--color-success);border:1px solid rgba(16,185,129,.15)}.pill-stars{background:rgba(255,193,7,.12);color:var(--color-stars);border:1px solid rgba(255,193,7,.25)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-xs);font-weight:700}.badge-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 2px 6px #667eea4d}.dropdown-container{position:relative;width:100%}.dropdown-input{width:100%;box-sizing:border-box;padding:var(--space-3) var(--space-4);padding-right:calc(var(--space-5) + 20px);font-size:var(--font-base);font-weight:500;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background:rgba(255,255,255,.65);box-shadow:inset 0 1px 3px #0000000f,0 1px #ffffff80;transition:all var(--duration-fast) var(--ease-out);min-height:var(--touch-comfortable);color:var(--ct-text);cursor:pointer;text-align:left}.dropdown-input:focus{outline:none;border-color:var(--ct-accent);box-shadow:0 0 0 3px #667eea1a}.dropdown-input::placeholder{color:var(--ct-hint)}.dropdown-arrow{position:absolute;right:var(--space-4);top:50%;transform:translateY(-50%);color:var(--ct-hint);pointer-events:none;font-size:var(--font-xs);transition:transform var(--duration-fast) var(--ease-out)}.dropdown-list{position:absolute;top:100%;left:0;right:0;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-gray-200);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);max-height:220px;overflow-y:auto;z-index:var(--z-dropdown);display:none;box-shadow:var(--glass-shadow-md);text-align:left}.dropdown-list.open{display:block}.dropdown-item{padding:var(--space-3) var(--space-4);cursor:pointer;border-bottom:1px solid var(--color-gray-100);transition:background var(--duration-fast);font-weight:500;color:var(--ct-text);justify-content:flex-start;text-align:left}.dropdown-item:hover{background:var(--ct-secondary-bg)}.dropdown-item:last-child{border-bottom:none}.dropdown-no-results{padding:var(--space-4);color:var(--ct-hint);font-style:italic;text-align:center;font-size:var(--font-sm)}.counter{display:flex;align-items:center;gap:var(--space-4)}.counter-btn{width:var(--touch-min);height:var(--touch-min);min-width:var(--touch-min);min-height:var(--touch-min);font-size:var(--font-lg);font-weight:600;border:1px solid rgba(255,255,255,.5);border-radius:50%;background:rgba(255,255,255,.5);box-shadow:0 1px 3px #0000000f;display:flex;align-items:center;justify-content:center;color:var(--ct-accent);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none}.counter-btn:hover{border-color:var(--ct-accent);background:var(--ct-secondary-bg);transform:scale(1.05)}.counter-btn:active{transform:scale(.95)}.counter-value{font-size:var(--font-lg);font-weight:600;min-width:32px;text-align:center;color:var(--ct-text)}.guest-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.45);box-shadow:inset 0 1px 2px #0000000a;border-radius:var(--radius-md);min-height:var(--touch-comfortable)}.guest-row label{font-size:var(--font-base);font-weight:500;color:var(--ct-text)}.app-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-8) var(--space-6)}.header-content{width:100%}.page-header{padding:var(--space-4) var(--space-5);display:flex;align-items:center;justify-content:space-between}.page-title{font-size:var(--font-xl);font-weight:700;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.3px;margin:0}.date-group{background:var(--gradient-primary);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-glow);border:1px solid rgba(255,255,255,.2);position:relative;overflow:hidden}.date-header{display:flex;align-items:center;gap:var(--space-2)}.date-title{color:#fff;font-size:var(--font-sm);font-weight:600;text-transform:none;letter-spacing:0}.date-input{display:flex;align-items:center;justify-content:space-between;min-height:var(--touch-comfortable);padding:var(--space-3) var(--space-4);font-size:var(--font-base);font-weight:600;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);margin-top:var(--space-2)}.date-input:hover{border-color:#fff9;background:rgba(255,255,255,.25);transform:translateY(-1px)}.date-input:active{transform:translateY(0)}.date-value{flex:1;text-align:left}.empty-state{text-align:center;padding:var(--space-12) var(--space-5);color:var(--ct-hint)}.empty-state-icon{font-size:48px;margin-bottom:var(--space-4);opacity:.5}.empty-state-title{font-size:var(--font-lg);font-weight:600;color:var(--ct-text);margin-bottom:var(--space-2)}.empty-state-text{font-size:var(--font-sm);line-height:1.5}.error-highlight{border-color:var(--ct-destructive)!important;box-shadow:0 0 0 3px #ff3b301a!important;animation:shake .5s var(--ease-out)}.is-loading{position:relative;color:transparent!important;pointer-events:none}.is-loading:after{content:"";position:absolute;width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;top:50%;left:50%;margin:-9px 0 0 -9px}.stars-icon{display:inline-block;vertical-align:middle;width:14px;height:15px;margin-right:6px;color:currentColor}.status-positive{color:var(--color-success);font-weight:700}.status-negative{color:var(--color-error);font-weight:700}.status-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.sub-text{color:var(--ct-hint);font-size:var(--font-sm)}.search-button{width:100%;min-height:var(--touch-comfortable);max-height:56px;padding:var(--space-4);border:none;border-radius:var(--radius-lg);background:var(--gradient-primary);color:#fff;font-size:var(--font-md);font-weight:700;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);box-shadow:var(--shadow-glow);position:relative;overflow:hidden}.search-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow-hover)}.search-button:active{transform:translateY(0) scale(.98)}.search-button.loading{pointer-events:none;opacity:.8;position:relative}.search-button.loading:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.profile-menu-btn{position:relative;width:var(--touch-min);height:var(--touch-min);border:none;background:var(--gradient-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow)}.profile-menu-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow-hover)}.profile-menu-btn:active{transform:translateY(0)}.menu-icon{display:flex;flex-direction:column;gap:3px}.menu-icon span{width:16px;height:2px;background:white;border-radius:1px}.profile-menu{position:absolute;top:calc(100% + var(--space-2));right:0;background:var(--ct-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.95);transition:all var(--duration-normal) var(--ease-out);z-index:var(--z-modal);overflow:hidden;text-align:left}.profile-menu.open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.profile-menu-item{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3);padding:var(--space-4);cursor:pointer;transition:background var(--duration-fast);border-bottom:1px solid var(--color-gray-100)}.profile-menu-item:last-child{border-bottom:none}.profile-menu-item:hover{background:var(--ct-secondary-bg)}.profile-menu-item:active{background:var(--color-gray-100)}.menu-item-icon{font-size:var(--font-lg);width:24px;text-align:center}.menu-item-text{font-size:var(--font-base);font-weight:500;color:var(--ct-text)}.calendar-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:flex-start;padding:var(--space-4);z-index:var(--z-modal);visibility:hidden;opacity:0;transition:all var(--duration-normal) var(--ease-out);overflow-y:auto}.calendar-modal.open{visibility:visible;opacity:1}.calendar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:0}.calendar-container{position:relative;z-index:1;width:100%;max-width:min(400px,calc(100vw - 32px));max-height:calc(100vh - 32px);background:var(--ct-bg);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-xl);display:flex;flex-direction:column}.calendar-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5);border-bottom:1px solid var(--color-gray-200)}#calendar-title{font-size:var(--font-lg);font-weight:600;color:var(--ct-text)}.calendar-nav{width:var(--touch-min);height:var(--touch-min);border:none;border-radius:50%;background:var(--ct-secondary-bg);font-size:var(--font-xl);color:var(--ct-text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-out)}.calendar-nav:hover{background:var(--color-gray-200);transform:scale(1.05)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:var(--space-4) var(--space-5) 0}.calendar-weekdays>div{font-weight:600;font-size:var(--font-xs);color:var(--ct-hint);padding:var(--space-2) 0;text-transform:uppercase;text-align:center;letter-spacing:.5px}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:var(--space-4) var(--space-5)}.calendar-day{display:flex;align-items:center;justify-content:center;font-size:var(--font-sm);font-weight:500;min-height:var(--touch-min);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);aspect-ratio:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.calendar-day:not(.other-month):hover{background:var(--ct-secondary-bg)}.calendar-day.other-month{color:var(--color-gray-300)}.calendar-day.today{background:var(--ct-secondary-bg);border:2px solid var(--ct-accent)}.calendar-day.selected{background:var(--ct-accent);color:#fff}.calendar-day.in-range,.calendar-day.hover-preview{background:rgba(102,126,234,.1)}.calendar-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3);padding:var(--space-5);border-top:1px solid var(--color-gray-200)}.calendar-btn{min-height:var(--touch-min);padding:var(--space-3) var(--space-5);border:none;border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap}.calendar-btn.cancel{background:var(--ct-secondary-bg);color:var(--ct-text)}.calendar-btn.cancel:hover{background:var(--color-gray-200)}.calendar-btn.today,.calendar-btn.select{background:var(--gradient-primary);color:#fff}.calendar-btn.today:hover,.calendar-btn.select:hover{opacity:.9}.calendar-btn.select{min-width:100px}.guests-group{display:flex;flex-direction:column;gap:var(--space-3)}@media (min-width: 480px){.guests-group{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.6}}.skeleton{background:linear-gradient(90deg,rgba(102,126,234,.1) 25%,rgba(102,126,234,.2) 50%,rgba(102,126,234,.1) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-text{height:14px;width:80%;margin-bottom:var(--space-2)}.skeleton-text-short{height:14px;width:50%}.skeleton-heading{height:20px;width:60%;margin-bottom:var(--space-3)}.skeleton-image{height:200px;width:100%;border-radius:var(--radius-lg)}.skeleton-card{background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--glass-shadow-sm)}.skeleton-card--tour{height:auto}.skeleton-grid{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4)}.skeleton-line{height:14px;border-radius:var(--radius-sm)}.skeleton-pulse{background:linear-gradient(90deg,rgba(102,126,234,.14) 25%,rgba(102,126,234,.28) 50%,rgba(102,126,234,.14) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton-pill{height:28px;width:80px;border-radius:var(--radius-full);display:inline-block}.stagger-enter>*{opacity:0;animation:fadeInUp var(--duration-slow) var(--ease-out) forwards}.stagger-enter>*:nth-child(1){animation-delay:.05s}.stagger-enter>*:nth-child(2){animation-delay:.1s}.stagger-enter>*:nth-child(3){animation-delay:.15s}.stagger-enter>*:nth-child(4){animation-delay:.2s}.stagger-enter>*:nth-child(5){animation-delay:.25s}.stagger-enter>*:nth-child(6){animation-delay:.3s}.stagger-enter>*:nth-child(7){animation-delay:.35s}.stagger-enter>*:nth-child(8){animation-delay:.4s}.press-feedback{transition:transform var(--duration-fast) var(--ease-out);will-change:transform}.press-feedback:active{transform:scale(.98)}.spinner{display:inline-block;width:24px;height:24px;border:3px solid rgba(102,126,234,.2);border-top-color:var(--ct-accent);border-radius:50%;animation:spin .7s linear infinite}.spinner-lg{width:40px;height:40px;border-width:4px}.loading-indicator{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;padding:var(--space-10) var(--space-8);z-index:var(--z-modal);min-width:280px}.loading-indicator h3{color:var(--ct-text);margin-bottom:var(--space-2);font-weight:600;font-size:var(--font-md)}.loading-indicator p{color:var(--ct-hint);font-size:var(--font-sm)}.img-loading{position:relative;overflow:hidden}.img-loading img{opacity:0;transition:opacity var(--duration-normal) var(--ease-out)}.img-loading img.loaded{opacity:1}.img-loading:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(102,126,234,.06) 25%,rgba(102,126,234,.12) 50%,rgba(102,126,234,.06) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}.img-loading.loaded:before{display:none}.toast{position:fixed;bottom:calc(var(--space-5) + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%) translateY(100px);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-size:var(--font-sm);font-weight:600;box-shadow:var(--shadow-lg);z-index:var(--z-toast);transition:transform var(--duration-normal) var(--ease-spring);max-width:calc(100vw - var(--space-8))}.toast.show{transform:translate(-50%) translateY(0)}.toast-success{background:var(--color-success);color:#fff}.toast-error{background:var(--color-error);color:#fff}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.skeleton{animation:none;background:rgba(102,126,234,.08)}}
