:root{--ct-bg:var(--tg-theme-bg-color,#fff);--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,#fff);--ct-secondary-bg:var(--tg-theme-secondary-bg-color,#f2f2f7);--ct-section-bg:var(--tg-theme-section-bg-color,#fff);--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:#fff;--color-black:#000;--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 #00000014;--shadow-sm:0 2px 8px #00000014;--shadow-md:0 4px 16px #0000001f;--shadow-lg:0 8px 32px #00000029;--shadow-xl:0 16px 48px #0003;--shadow-glow:0 4px 20px #667eea59;--shadow-glow-hover:0 8px 32px #667eea73;--glass-border-light:1px solid #ffffff59;--glass-border-medium:1px solid #ffffff73;--glass-border-strong:1px solid #ffffff8c;--glass-shadow-sm:0 2px 8px #0000000f, 0 1px 2px #0000000a;--glass-shadow-md:0 4px 16px #00000014, 0 2px 4px #0000000a, inset 0 1px 0 #ffffff40;--glass-shadow-lg:0 8px 32px #0000001a, 0 4px 8px #0000000f, inset 0 1px 0 #ffffff4d;--glass-shadow-card:0 4px 20px #00000014, 0 1px 3px #0000000a;--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 #ffffff1f;--glass-border-medium:1px solid #ffffff2e;--glass-border-strong:1px solid #ffffff38}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}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;overscroll-behavior-y:none;min-height:100vh;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{max-width:100%;display:block}button,input,select,textarea{font-family:inherit;font-size:inherit}button{cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px}input,select,textarea{min-height:44px}.counter-btn,.guest-counter-btn,.calendar-nav,.dropdown-item,.profile-menu-item{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}a{color:var(--ct-link);text-decoration:none}.text-gradient{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;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{color:currentColor;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ct-icon svg{display:block}.page-container{width:100%;max-width:100%;margin:0}@media (width>=768px){body{padding:var(--space-5)}}@media (width>=1024px){.page-container{max-width:640px;margin:0 auto}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full)}::selection{background:#667eea33}.glass{-webkit-backdrop-filter:blur(20px)saturate(180%);border:var(--glass-border-medium);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow-sm);background:linear-gradient(135deg,#fffc,#ffffffb8)}.glass-subtle{-webkit-backdrop-filter:blur(12px)saturate(150%);border:var(--glass-border-light);border-radius:var(--radius-lg);background:linear-gradient(135deg,#ffffff94,#ffffff7a)}.glass-strong{-webkit-backdrop-filter:blur(24px)saturate(200%);border:var(--glass-border-strong);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow-md);background:linear-gradient(135deg,#ffffffe0,#ffffffd1)}.glass-dark{-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-lg);color:#fff;background:#0000004d;border:1px solid #ffffff1a}.glass-card{-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);background:linear-gradient(135deg,#ffffffc7,#ffffffb3)}.glass-card:hover{box-shadow:var(--glass-shadow-md);transform:translateY(-2px)}.glass-card:active{transform:translateY(0)scale(.98)}.glass-gradient-card{background:var(--gradient-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-glow);color:#fff;transition:transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);border:1px solid #fff3;overflow:hidden}.glass-gradient-card:hover{box-shadow:var(--shadow-glow-hover);transform:translateY(-2px)}.glass-gradient-card:active{transform:translateY(0)scale(.98)}.glass-header{-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);top:env(safe-area-inset-top,0);z-index:var(--z-sticky);background:linear-gradient(135deg,#ffffffeb,#ffffffe0);position:sticky}.glass-section{-webkit-backdrop-filter:blur(16px)saturate(180%);border:var(--glass-border-light);background:linear-gradient(135deg,#ffffffe0,#ffffffd6);border-top:1px solid #ffffff40}.glass-section-last{border-radius:0 0 var(--radius-xl) var(--radius-xl);box-shadow:var(--glass-shadow-md)}.glass-overlay{-webkit-backdrop-filter:blur(8px);z-index:var(--z-modal-backdrop);background:#0006;position:fixed;inset:0}.glass-modal{-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);background:linear-gradient(135deg,#ffffffe6,#ffffffd9)}.glass-input{-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);background:#ffffffa6;box-shadow:inset 0 1px 3px #0000000f,0 1px #ffffff80}.glass-input:focus{border-color:var(--ct-accent);background:#ffffffa6;outline:none;box-shadow:0 0 0 3px #667eea26}.glass-input::placeholder{color:var(--ct-hint)}.glass-on-gradient{-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-md);color:#fff;background:#ffffff26;border:1px solid #ffffff40}@media (prefers-contrast:high){.glass,.glass-subtle,.glass-card,.glass-header,.glass-section,.glass-modal{-webkit-backdrop-filter:none;border:2px solid var(--color-gray-300);background:#fffffff2}.glass-dark{-webkit-backdrop-filter:none;background:#000000d9}}.btn-primary{appearance: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);justify-content:center;align-items:center;gap:var(--space-2);border:none;display:inline-flex}.btn-primary:hover{box-shadow:var(--shadow-glow-hover);transform:translateY(-1px)}.btn-primary:active{box-shadow:var(--shadow-sm);transform:translateY(0)scale(.98)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary.btn-block{width:100%}.btn-secondary{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);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);min-height:var(--touch-comfortable);justify-content:center;align-items:center;gap:var(--space-2);background:#ffffffb3;display:inline-flex}.btn-secondary:hover{border-color:var(--ct-accent);background:#ffffffe6;transform:translateY(-1px)}.btn-secondary:active{transform:translateY(0)scale(.98)}.btn-danger{appearance: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);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);min-height:var(--touch-min);background:linear-gradient(135deg,#f87171 0%,#ef4444 100%);border:none;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 2px 8px #f8717140}.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-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);border:none;justify-content:center;align-items:center;display:flex}.pill{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-xs);white-space:nowrap;font-weight:600;line-height:1;display:inline-flex}.pill-accent{color:var(--ct-accent);background:#667eea1a;border:1px solid #667eea26}.pill-white{color:#fffffff2;text-shadow:0 1px 2px #00000026;background:#ffffff38;border:1px solid #ffffff4d}.pill-success{color:var(--color-success);background:#10b9811a;border:1px solid #10b98126}.pill-stars{color:var(--color-stars);background:#ffc1071f;border:1px solid #ffc10740}.badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-xs);align-items:center;font-weight:700;display:inline-flex}.badge-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 2px 6px #667eea4d}.dropdown-container{width:100%;position:relative}.dropdown-input{box-sizing:border-box;width:100%;padding:var(--space-3) var(--space-4);padding-right:calc(var(--space-5) + 20px);font-size:var(--font-base);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out);min-height:var(--touch-comfortable);color:var(--ct-text);cursor:pointer;text-align:left;background:#ffffffa6;font-weight:500;box-shadow:inset 0 1px 3px #0000000f,0 1px #ffffff80}.dropdown-input:focus{border-color:var(--ct-accent);outline:none;box-shadow:0 0 0 3px #667eea1a}.dropdown-input::placeholder{color:var(--ct-hint)}.dropdown-arrow{right:var(--space-4);color:var(--ct-hint);pointer-events:none;font-size:var(--font-xs);transition:transform var(--duration-fast) var(--ease-out);position:absolute;top:50%;transform:translateY(-50%)}.dropdown-list{-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-gray-200);border-radius:0 0 var(--radius-md) var(--radius-md);max-height:220px;z-index:var(--z-dropdown);box-shadow:var(--glass-shadow-md);text-align:left;background:#fffffff5;border-top:none;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.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);color:var(--ct-text);justify-content:space-between;align-items:center;gap:var(--space-3);text-align:left;font-weight:500;display:flex}.dropdown-item:hover{background:var(--ct-secondary-bg)}.dropdown-item.selected{color:var(--ct-accent);background:#667eea1a;font-weight:700}.dropdown-item-check{color:var(--ct-accent);flex:none;font-weight:800}.dropdown-item:last-child{border-bottom:none}.dropdown-no-results{padding:var(--space-4);color:var(--ct-hint);text-align:center;font-style:italic;font-size:var(--font-sm)}.counter{align-items:center;gap:var(--space-4);display:flex}.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);color:var(--ct-accent);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;background:#ffffff80;border:1px solid #ffffff80;border-radius:50%;justify-content:center;align-items:center;font-weight:600;display:flex;box-shadow:0 1px 3px #0000000f}.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);text-align:center;min-width:32px;color:var(--ct-text);font-weight:600}.guest-row{padding:var(--space-4);border-radius:var(--radius-md);min-height:var(--touch-comfortable);background:#fff6;border:1px solid #ffffff73;justify-content:space-between;align-items:center;display:flex;box-shadow:inset 0 1px 2px #0000000a}.guest-row label{font-size:var(--font-base);color:var(--ct-text);font-weight:500}.app-header{padding:var(--space-8) var(--space-6);justify-content:space-between;align-items:center;display:flex}.header-content{width:100%}.page-header{padding:var(--space-4) var(--space-5);justify-content:space-between;align-items:center;display:flex}.page-title{font-size:var(--font-xl);background:var(--gradient-primary);-webkit-text-fill-color:transparent;letter-spacing:-.3px;-webkit-background-clip:text;background-clip:text;margin:0;font-weight:700}.date-group{background:var(--gradient-primary);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-glow);border:1px solid #fff3;position:relative;overflow:hidden}.date-header{align-items:center;gap:var(--space-2);display:flex}.date-title{color:#fff;font-size:var(--font-sm);text-transform:none;letter-spacing:0;font-weight:600}.date-input{min-height:var(--touch-comfortable);padding:var(--space-3) var(--space-4);font-size:var(--font-base);color:#fff;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);background:#ffffff26;border:1px solid #ffffff4d;justify-content:space-between;align-items:center;font-weight:600;display:flex}.date-input:hover{background:#ffffff40;border-color:#fff9;transform:translateY(-1px)}.date-input:active{transform:translateY(0)}.date-value{text-align:left;flex:1}.empty-state{text-align:center;padding:var(--space-12) var(--space-5);color:var(--ct-hint)}.empty-state-icon{margin-bottom:var(--space-4);opacity:.5;font-size:48px}.empty-state-title{font-size:var(--font-lg);color:var(--ct-text);margin-bottom:var(--space-2);font-weight:600}.empty-state-text{font-size:var(--font-sm);line-height:1.5}.error-highlight{animation:shake .5s var(--ease-out);border-color:var(--ct-destructive)!important;box-shadow:0 0 0 3px #ff3b301a!important}.is-loading{pointer-events:none;position:relative;color:#0000!important}.is-loading:after{content:"";border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;animation:.6s linear infinite spin;position:absolute;top:50%;left:50%}.stars-icon{vertical-align:middle;color:currentColor;width:14px;height:15px;margin-right:6px;display:inline-block}.status-positive{color:var(--color-success);font-weight:700}.status-negative{color:var(--color-error);font-weight:700}.status-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.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-radius:var(--radius-lg);background:var(--gradient-primary);color:#fff;font-size:var(--font-md);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);box-shadow:var(--shadow-glow);border:none;font-weight:700;position:relative;overflow:hidden}.search-button:hover{box-shadow:var(--shadow-glow-hover);transform:translateY(-2px)}.search-button:active{transform:translateY(0)scale(.98)}.search-button.loading{pointer-events:none;opacity:.8;position:relative}.search-button.loading:after{content:"";border:3px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.profile-menu-btn{width:var(--touch-min);height:var(--touch-min);background:var(--gradient-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);box-shadow:var(--shadow-glow);border:none;justify-content:center;align-items:center;display:flex;position:relative}.profile-menu-btn:hover{box-shadow:var(--shadow-glow-hover);transform:translateY(-2px)}.profile-menu-btn:active{transform:translateY(0)}.menu-icon{flex-direction:column;gap:3px;display:flex}.menu-icon span{background:#fff;border-radius:1px;width:16px;height:2px}.profile-menu{top:calc(100% + var(--space-2));background:var(--ct-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);opacity:0;visibility:hidden;min-width:200px;transition:all var(--duration-normal) var(--ease-out);z-index:var(--z-modal);text-align:left;position:absolute;right:0;overflow:hidden;transform:translateY(-8px)scale(.95)}.profile-menu.open{opacity:1;visibility:visible;transform:translateY(0)scale(1)}.profile-menu-item{justify-content:flex-start;align-items:center;gap:var(--space-3);padding:var(--space-4);cursor:pointer;transition:background var(--duration-fast);border-bottom:1px solid var(--color-gray-100);display:flex}.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);text-align:center;width:24px}.menu-item-text{font-size:var(--font-base);color:var(--ct-text);font-weight:500}.calendar-modal{padding:var(--space-4);z-index:var(--z-modal);visibility:hidden;opacity:0;transition:all var(--duration-normal) var(--ease-out);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.calendar-modal.open{visibility:visible;opacity:1}.calendar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:0;background:#00000080;position:fixed;inset:0}.calendar-container{z-index:1;background:var(--ct-bg);border-radius:var(--radius-xl);width:100%;max-width:min(400px,100vw - 32px);max-height:calc(100vh - 32px);box-shadow:var(--shadow-xl);flex-direction:column;display:flex;position:relative;overflow:hidden}.calendar-header{padding:var(--space-5);border-bottom:1px solid var(--color-gray-200);justify-content:space-between;align-items:center;display:flex}#calendar-title{font-size:var(--font-lg);color:var(--ct-text);font-weight:600}.calendar-nav{width:var(--touch-min);height:var(--touch-min);background:var(--ct-secondary-bg);font-size:var(--font-xl);color:var(--ct-text);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.calendar-nav:hover{background:var(--color-gray-200);transform:scale(1.05)}.calendar-weekdays{padding:var(--space-4) var(--space-5) 0;grid-template-columns:repeat(7,1fr);display:grid}.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{padding:var(--space-4) var(--space-5);grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-day{font-size:var(--font-sm);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;justify-content:center;align-items:center;font-weight:500;display:flex}.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:#667eea1a}.calendar-actions{justify-content:flex-end;gap:var(--space-3);padding:var(--space-5);border-top:1px solid var(--color-gray-200);flex-wrap:nowrap;display:flex}.calendar-btn{min-height:var(--touch-min);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap;text-overflow:ellipsis;border:none;min-width:0;font-weight:500;overflow:hidden}.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{flex:auto;min-width:0}.guests-group{gap:var(--space-3);flex-direction:column;display:flex}@media (width>=480px){.guests-group{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}}@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{border-radius:var(--radius-sm);background:linear-gradient(90deg,#667eea1a 25%,#667eea33 50%,#667eea1a 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer}.skeleton-text{width:80%;height:14px;margin-bottom:var(--space-2)}.skeleton-text-short{width:50%;height:14px}.skeleton-heading{width:60%;height:20px;margin-bottom:var(--space-3)}.skeleton-image{border-radius:var(--radius-lg);width:100%;height:200px}.skeleton-card{border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);box-shadow:var(--glass-shadow-sm);background:#ffffff80;border:1px solid #fff6;flex-direction:column;display:flex}.skeleton-card--tour{height:auto}.skeleton-grid{gap:var(--space-3);padding:var(--space-4);flex-direction:column;display:flex}.skeleton-line{border-radius:var(--radius-sm);height:14px}.skeleton-pulse{border-radius:var(--radius-sm);background:linear-gradient(90deg,#667eea24 25%,#667eea47 50%,#667eea24 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer}.skeleton-pill{border-radius:var(--radius-full);width:80px;height:28px;display:inline-block}.stagger-enter>*{opacity:0;animation:fadeInUp var(--duration-slow) var(--ease-out) forwards}.stagger-enter>:first-child{animation-delay:50ms}.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{border:3px solid #667eea33;border-top-color:var(--ct-accent);border-radius:50%;width:24px;height:24px;animation:.7s linear infinite spin;display:inline-block}.spinner-lg{border-width:4px;width:40px;height:40px}.loading-indicator{text-align:center;padding:var(--space-10) var(--space-8);z-index:var(--z-modal);min-width:280px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.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:"";background:linear-gradient(90deg,#667eea0f 25%,#667eea1f 50%,#667eea0f 75%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer;position:absolute;inset:0}.img-loading.loaded:before{display:none}.toast{bottom:calc(var(--space-5) + env(safe-area-inset-bottom,0px));padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-size:var(--font-sm);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));font-weight:600;position:fixed;left:50%;transform:translate(-50%)translateY(100px)}.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{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.skeleton{background:#667eea14;animation:none}}
