@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&family=Bebas+Neue&family=JetBrains+Mono:wght@400;500;700&display=swap";.room-card{position:relative;display:flex;flex-direction:column;background-color:var(--color-bg-card);border-radius:var(--border-radius-lg);overflow:hidden;cursor:pointer;transition:transform var(--transition-normal),box-shadow var(--transition-normal);animation:slideInUp var(--transition-slow) ease backwards}.room-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.room-card:nth-child(1){animation-delay:0ms}.room-card:nth-child(2){animation-delay:.1s}.room-card:nth-child(3){animation-delay:.2s}.room-card:nth-child(4){animation-delay:.3s}.room-card__image-wrapper{position:relative;aspect-ratio:16 / 10;overflow:hidden}.room-card__image{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.room-card:hover .room-card__image{transform:scale(1.05)}.room-card__overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-start;padding:var(--spacing-sm);background:linear-gradient(to bottom,#000000b3,#0000004d,#0000)}.room-card__status{display:flex;flex-direction:column;gap:2px}.room-card__status-primary{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:#0009;border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);width:fit-content}.room-card__status-secondary{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:#00000080;border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);width:fit-content}.room-card__indicator{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.3)}.room-card__indicator--green{background-color:var(--color-available);box-shadow:0 0 8px var(--color-available)}.room-card__indicator--red{background-color:var(--color-busy);box-shadow:0 0 8px var(--color-busy)}.room-card__indicator--orange{background-color:var(--color-partial);box-shadow:0 0 8px var(--color-partial)}.room-card__info{padding:var(--spacing-md);background-color:#ffffff14}.room-card__meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.room-card__type{font-size:var(--font-size-xs);color:var(--color-text-muted)}.room-card__price{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.room-card__details{display:flex;align-items:center;gap:var(--spacing-sm)}.room-card__name{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);letter-spacing:.05em;color:var(--color-text-primary)}.room-card__number{font-size:var(--font-size-sm);color:var(--color-text-muted)}.room-card__capacity{display:flex;align-items:center;gap:4px;margin-left:auto;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.room-card__capacity svg{opacity:.7}.room-card__capacity-extra{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-left:4px;opacity:.8}.room-card--past{cursor:not-allowed;pointer-events:none}.room-card--past .room-card__image{filter:grayscale(100%) brightness(.5)}.room-card--past .room-card__overlay{background:linear-gradient(to bottom,#000c,#00000080,#0000004d)}.room-card--past .room-card__status-primary,.room-card--past .room-card__status-secondary{color:#fff6}.room-card--past .room-card__indicator{background-color:#80808080!important;box-shadow:none!important}.room-card--past .room-card__info{background-color:#8080801a}.room-card--past .room-card__type,.room-card--past .room-card__price,.room-card--past .room-card__name,.room-card--past .room-card__number,.room-card--past .room-card__capacity{color:#ffffff59!important}.room-card--past .room-card__capacity svg{opacity:.3}.room-card--past:hover{transform:none;box-shadow:none}.room-card--past:hover .room-card__image{transform:none}.room-card__price-badge{position:absolute;bottom:var(--spacing-sm);left:var(--spacing-sm);display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;z-index:2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.room-card__price-badge--up{background:#f44336d9;color:#fff}.room-card__price-badge--down{background:#4caf50d9;color:#fff}.room-card__price-wrapper{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.room-card__base-price{font-size:var(--font-size-xs);color:var(--color-text-muted);text-decoration:line-through;opacity:.7}.room-card__price--increased{color:#f44336!important}.room-card__price--decreased{color:#4caf50!important}@media(max-width:480px){.room-card__info{padding:var(--spacing-sm)}.room-card__name{font-size:var(--font-size-xl)}.room-card__price-badge{font-size:9px;padding:3px 6px}.room-card__price-badge span{max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.language-switcher{position:relative;z-index:100}.language-switcher__button{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:var(--color-text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.language-switcher__button:hover{background:#ffffff26;border-color:#ffffff4d}.language-switcher__button:active{transform:scale(.98)}.language-switcher__button--compact{padding:6px 10px;font-size:12px;gap:4px}.language-switcher__code{font-weight:600;letter-spacing:.5px}.language-switcher__flag{font-size:16px;line-height:1}.language-switcher__name{font-weight:500}.language-switcher__arrow{transition:transform .2s ease;opacity:.7}.language-switcher__arrow--open{transform:rotate(180deg)}.language-switcher__dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;background:#1e1e23f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.15);border-radius:12px;box-shadow:0 8px 32px #0009,0 0 0 1px #0000004d;overflow:hidden;animation:dropdownSlide .2s ease}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.language-switcher__option{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:transparent;border:none;color:var(--color-text-primary);font-size:14px;cursor:pointer;transition:background .15s ease;text-align:left}.language-switcher__option:hover{background:#ffffff14}.language-switcher__option:first-child{border-radius:11px 11px 0 0}.language-switcher__option:last-child{border-radius:0 0 11px 11px}.language-switcher__option--active{background:rgba(var(--color-accent-rgb),.15);color:var(--color-accent)}.language-switcher__option--active:hover{background:rgba(var(--color-accent-rgb),.2)}.language-switcher__option-flag{font-size:18px;line-height:1}.language-switcher__option-name{flex:1;font-weight:500}.language-switcher__option-code{font-size:11px;font-weight:600;color:var(--color-text-secondary);letter-spacing:.5px}.language-switcher__option--active .language-switcher__option-code{color:var(--color-accent);opacity:.8}@media(max-width:480px){.language-switcher__dropdown{min-width:140px}.language-switcher__option{padding:10px 12px;font-size:13px}}.phone-button{display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:none;cursor:pointer;transition:all .2s ease;color:inherit}.phone-button:hover{opacity:.8}.phone-button--icon{padding:8px;border-radius:50%}.phone-button--text{padding:8px 12px;border-radius:8px}.phone-button--full{padding:8px 16px;border-radius:8px;background:#ffffff1a}.phone-button--full:hover{background:#fff3}.phone-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:20px}.phone-modal{background:linear-gradient(145deg,#1a1a2e,#16213e);border-radius:20px;padding:32px;max-width:380px;width:100%;text-align:center;position:relative;box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease;border:1px solid rgba(255,255,255,.1)}.phone-modal__close{position:absolute;top:16px;right:16px;background:#ffffff1a;border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:all .2s ease}.phone-modal__close:hover{background:#fff3;transform:rotate(90deg)}.phone-modal__icon{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#00c6ff,#0072ff);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:#fff}.phone-modal__title{color:#fff;font-size:1.25rem;font-weight:600;margin:0 0 16px}.phone-modal__number{display:block;font-size:1.75rem;font-weight:700;color:#fff;text-decoration:none;padding:16px 24px;background:#ffffff1a;border-radius:12px;margin-bottom:20px;transition:all .2s ease;letter-spacing:.5px}.phone-modal__number:hover{background:#ffffff26;transform:scale(1.02)}.phone-modal__actions{display:flex;justify-content:center;gap:12px;margin-bottom:16px}.phone-modal__copy{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;font-size:.9rem;cursor:pointer;transition:all .2s ease}.phone-modal__copy:hover{background:#fff3}.phone-modal__copy--success{background:#4caf504d;border-color:#4caf5080;color:#81c784}.phone-modal__hint{color:#ffffff80;font-size:.8rem;margin:0;line-height:1.4}@media(max-width:480px){.phone-modal{padding:24px;margin:16px}.phone-modal__number{font-size:1.5rem;padding:14px 20px}}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-accent-gradient);min-height:var(--header-height);position:sticky;top:0;z-index:100}.header__menu-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--border-radius-sm);color:var(--color-text-on-accent);transition:background-color var(--transition-fast)}.header__menu-btn:hover{background-color:#ffffff1a}.header__info{flex:1;text-align:left;padding:0 var(--spacing-md);overflow:hidden}.header__title{font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-on-accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:var(--line-height-tight)}.header__location-btn{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:2px 8px 2px 4px;background:#ffffff1a;border-radius:var(--border-radius-full);color:#ffffffe6;transition:all var(--transition-fast);max-width:100%;cursor:pointer}.header__location-btn:hover{background:#fff3}.header__location-icon{flex-shrink:0;opacity:.8}.header__address{font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header__location-arrow{flex-shrink:0;opacity:.7;transition:transform var(--transition-fast)}.header__location-btn:hover .header__location-arrow{transform:translateY(2px)}.header__actions{display:flex;align-items:center;gap:var(--spacing-sm)}.header__phone-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--border-radius-full);color:var(--color-text-on-accent);transition:background-color var(--transition-fast)}.header__phone-btn:hover{background-color:#ffffff1a}.header__lang-btn{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-on-accent);border-radius:var(--border-radius-sm);transition:background-color var(--transition-fast)}.header__lang-btn:hover{background-color:#ffffff1a}.header__profile-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--border-radius-full);color:var(--color-text-on-accent);transition:all var(--transition-fast);background:#ffffff1a;overflow:hidden}.header__profile-btn:hover{background-color:#fff3;transform:scale(1.05)}.header__profile-btn--authenticated{border:2px solid var(--color-success);box-shadow:0 0 10px #4caf504d}.header__profile-avatar{width:100%;height:100%;object-fit:cover}@media(max-width:480px){.header{padding:var(--spacing-xs) var(--spacing-sm)}.header__title{font-size:var(--font-size-sm)}.header__address{font-size:10px}.header__location-btn{padding:2px 6px 2px 2px;gap:2px}}.calendar-overlay{display:none}.calendar{position:absolute;top:100%;right:0;margin-top:var(--spacing-sm);background:var(--color-bg-secondary);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);padding:var(--spacing-md);width:320px;max-width:calc(100vw - 2 * var(--spacing-md));box-shadow:var(--shadow-lg);z-index:1000;animation:calendar-appear .2s ease-out}@media(max-width:360px){.calendar{right:50%;transform:translate(50%)}@keyframes calendar-appear{0%{opacity:0;transform:translate(50%) translateY(-10px)}to{opacity:1;transform:translate(50%) translateY(0)}}}@keyframes calendar-appear{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.calendar__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.calendar__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-transform:capitalize}.calendar__nav-btn{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.calendar__nav-btn:hover{background:#ffffff0d;color:var(--color-text-primary)}.calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.calendar__weekday{text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);padding:var(--spacing-xs) 0}.calendar__grid{display:flex;flex-direction:column;gap:var(--spacing-xs)}.calendar__week{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--spacing-xs)}.calendar__day{aspect-ratio:1;border:none;background:transparent;color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);position:relative}.calendar__day:hover:not(:disabled){background:#ffffff1a}.calendar__day:disabled{cursor:not-allowed}.calendar__day--other-month{color:var(--color-text-muted);opacity:.3}.calendar__day--past{color:var(--color-text-muted);opacity:.5}.calendar__day--today{color:var(--color-accent);font-weight:var(--font-weight-bold)}.calendar__day--today:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:4px;height:4px;background:var(--color-accent);border-radius:50%}.calendar__day--selected{background:var(--color-accent-gradient);color:var(--color-text-on-accent);font-weight:var(--font-weight-bold)}.calendar__day--selected:hover{background:var(--color-accent-gradient)}.calendar__footer{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid rgba(255,255,255,.1)}.calendar__today-btn{width:100%;padding:var(--spacing-sm);background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.calendar__today-btn:hover{background:#ffffff1a;border-color:var(--color-accent)}@media(max-width:640px){.calendar-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:999;animation:overlay-appear .2s ease-out}@keyframes overlay-appear{0%{opacity:0}to{opacity:1}}.calendar{position:fixed;top:auto;right:var(--spacing-sm);left:var(--spacing-sm);bottom:var(--spacing-sm);margin-top:0;min-width:0;max-width:none}}@media(max-width:480px){.calendar{padding:var(--spacing-sm)}.calendar__title{font-size:var(--font-size-base)}.calendar__day{font-size:var(--font-size-xs)}}.time-slider{background:linear-gradient(180deg,var(--color-bg-secondary) 0%,rgba(20,20,35,.98) 100%);padding:var(--spacing-md);-webkit-user-select:none;user-select:none}.time-slider__header{display:flex;justify-content:flex-end;align-items:center;margin-bottom:var(--spacing-md)}.time-slider__date-wrapper{position:relative}.time-slider__date{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-decoration:underline;text-decoration-style:dashed;cursor:pointer;transition:color var(--transition-fast)}.time-slider__date:hover{color:var(--color-text-primary)}.time-wheel-3d{position:relative;display:flex;justify-content:center;align-items:center;perspective:300px;padding:var(--spacing-sm) 0}.time-wheel-3d__container{position:relative;overflow:hidden;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none;cursor:grab;touch-action:none;transform-style:preserve-3d;width:100%;max-width:200px}.time-wheel-3d__container::-webkit-scrollbar{display:none}.time-wheel-3d__container.is-dragging{cursor:grabbing}.time-wheel-3d__item{display:flex;align-items:center;justify-content:center;transition:transform .1s ease-out,opacity .1s ease-out;transform-style:preserve-3d;cursor:pointer;backface-visibility:hidden}.time-wheel-3d__time{font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:1.5rem;font-weight:500;color:var(--color-text-muted);transition:all .2s ease;letter-spacing:.05em}.time-wheel-3d__item.is-hour .time-wheel-3d__time{color:var(--color-text-secondary)}.time-wheel-3d__item.is-selected .time-wheel-3d__time{font-size:2rem;font-weight:700;color:var(--color-text-primary);text-shadow:0 0 20px var(--color-accent),0 0 40px rgba(255,64,129,.5)}.time-wheel-3d__highlight{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:180px;height:52px;background:linear-gradient(90deg,transparent 0%,rgba(255,64,129,.1) 20%,rgba(255,64,129,.15) 50%,rgba(255,64,129,.1) 80%,transparent 100%);border-top:2px solid var(--color-accent);border-bottom:2px solid var(--color-accent);border-radius:4px;pointer-events:none;z-index:1;box-shadow:inset 0 0 30px #ff40811a,0 0 20px #ff408133}.time-wheel-3d__fade{position:absolute;left:0;right:0;height:60px;pointer-events:none;z-index:2}.time-wheel-3d__fade--top{top:0;background:linear-gradient(to bottom,var(--color-bg-secondary) 0%,rgba(20,20,35,.9) 40%,transparent 100%)}.time-wheel-3d__fade--bottom{bottom:0;background:linear-gradient(to top,var(--color-bg-secondary) 0%,rgba(20,20,35,.9) 40%,transparent 100%)}.time-wheel-3d__lines{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:220px;height:52px;display:flex;justify-content:space-between;pointer-events:none;z-index:3}.time-wheel-3d__line{width:3px;height:100%;background:linear-gradient(to bottom,transparent 0%,var(--color-accent) 20%,var(--color-accent) 80%,transparent 100%);border-radius:2px;box-shadow:0 0 10px var(--color-accent)}@keyframes wheelAppear{0%{opacity:0;transform:scale(.9) rotateX(20deg)}to{opacity:1;transform:scale(1) rotateX(0)}}.time-wheel-3d__container{animation:wheelAppear .5s ease-out}@media(max-width:480px){.time-slider{padding:var(--spacing-sm)}.time-wheel-3d__time{font-size:1.25rem}.time-wheel-3d__item.is-selected .time-wheel-3d__time{font-size:1.75rem}.time-wheel-3d__highlight{max-width:160px;height:46px}.time-wheel-3d__lines{max-width:180px;height:46px}}.time-wheel-3d.is-past .time-wheel-3d__time{color:var(--color-text-muted)!important;text-shadow:none!important}.time-wheel-3d.is-past .time-wheel-3d__item.is-selected .time-wheel-3d__time{color:#fff6!important;text-shadow:none!important}.time-wheel-3d.is-past .time-wheel-3d__highlight{background:linear-gradient(90deg,transparent 0%,rgba(128,128,128,.1) 20%,rgba(128,128,128,.15) 50%,rgba(128,128,128,.1) 80%,transparent 100%);border-color:#80808080;box-shadow:none}.time-wheel-3d.is-past .time-wheel-3d__line{background:linear-gradient(to bottom,transparent 0%,rgba(128,128,128,.5) 20%,rgba(128,128,128,.5) 80%,transparent 100%);box-shadow:none}@media(prefers-color-scheme:dark){.time-wheel-3d__highlight{background:linear-gradient(90deg,transparent 0%,rgba(255,64,129,.15) 20%,rgba(255,64,129,.2) 50%,rgba(255,64,129,.15) 80%,transparent 100%)}}.sort-tabs{display:flex;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--color-bg-secondary)}.sort-tabs__btn{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background-color:transparent;border:1px solid rgba(255,255,255,.1);border-radius:var(--border-radius-full);transition:all var(--transition-fast)}.sort-tabs__btn:hover{background-color:#ffffff0d;color:var(--color-text-primary)}.sort-tabs__btn--active{background-color:var(--color-bg-elevated);color:var(--color-text-primary);border-color:transparent}.time-slot-picker{display:flex;flex-direction:column;gap:var(--spacing-md)}.time-slot-picker__header{display:flex;align-items:center;justify-content:space-between}.time-slot-picker__title{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.time-slot-picker__reset{background:transparent;border:1px solid var(--color-accent);color:var(--color-accent);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.time-slot-picker__reset:hover{background:var(--color-accent);color:var(--color-text-on-accent)}.time-slot-picker__legend{display:flex;flex-wrap:wrap;gap:var(--spacing-md);padding:var(--spacing-sm) 0;border-bottom:1px solid rgba(255,255,255,.1)}.legend-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.legend-dot{width:12px;height:12px;border-radius:3px}.legend-dot--available{background:var(--color-available)}.legend-dot--booked{background:var(--color-busy)}.legend-dot--selected{background:var(--color-accent)}.time-slot-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(65px,1fr));gap:var(--spacing-xs)}.time-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-xs);border-radius:var(--border-radius-sm);border:2px solid transparent;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.time-slot__time{font-family:JetBrains Mono,monospace}.time-slot__check{position:absolute;top:4px;right:4px;color:#fff}.time-slot--available{background:#4caf5026;color:var(--color-available);border-color:#4caf504d}.time-slot--available:hover{background:#4caf504d;border-color:var(--color-available);transform:scale(1.05)}.time-slot--booked{background:#f4433626;color:var(--color-busy);border-color:#f443364d;cursor:not-allowed;opacity:.7}.time-slot--past{background:#ffffff0d;color:var(--color-text-muted);border-color:transparent;cursor:not-allowed;opacity:.5}.time-slot--closing{background:#ff98001a;color:var(--color-warning);border-color:#ff98004d;cursor:not-allowed;opacity:.7}.time-slot--selected-start{background:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.time-slot--selected-end{background:var(--color-accent-dark);color:var(--color-text-on-accent);border-color:var(--color-accent-dark);box-shadow:var(--shadow-glow)}.time-slot--in-range{background:#e91e634d;color:var(--color-accent-light);border-color:#e91e6380}.time-slot--selectable-end{background:#e91e6326;border-color:#e91e634d;animation:pulse-end 1.5s ease-in-out infinite}.time-slot--selectable-end:hover{background:#e91e634d;border-color:var(--color-accent)}@keyframes pulse-end{0%,to{box-shadow:0 0 #e91e6366}50%{box-shadow:0 0 0 4px #e91e6300}}.time-slot-picker__selection{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-elevated);border-radius:var(--border-radius-md);border:1px solid rgba(233,30,99,.3)}.selection-label{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.selection-value{display:flex;align-items:center;gap:var(--spacing-sm)}.selection-time{font-family:JetBrains Mono,monospace;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-accent);background:#e91e631a;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm)}.selection-separator{color:var(--color-text-muted)}.time-slot-picker__promotions{background:linear-gradient(135deg,#ffd70014,#ff980014);border:1px solid rgba(255,215,0,.2);border-radius:var(--border-radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-sm)}.promotions-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);color:gold;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.promotions-header svg{color:gold}.promotions-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.promotion-badge{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);background:#ffffff0d;border:1px solid rgba(255,255,255,.1);transition:all var(--transition-fast);cursor:help}.promotion-badge__icon{display:flex;align-items:center}.promotion-badge__name{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.promotion-badge__value{background:#4caf5033;color:#4caf50;padding:2px 6px;border-radius:var(--border-radius-xs);font-weight:var(--font-weight-bold);font-size:var(--font-size-xs)}.promotion-badge__conditions{width:100%;font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:2px}.promotion-badge__reason{width:100%;font-size:var(--font-size-xs);color:var(--color-warning);font-style:italic;margin-top:2px}.promotion-badge--applicable{background:#4caf501a;border-color:#4caf504d}.promotion-badge--applicable:hover{background:#4caf5033;border-color:#4caf5080}.promotion-badge--applicable .promotion-badge__icon{color:#4caf50}.promotion-badge--not-applicable{opacity:.6;background:#ffffff08}.promotion-badge--not-applicable .promotion-badge__value{background:#9e9e9e33;color:var(--color-text-muted)}.promotion-badge--not-applicable .promotion-badge__icon{color:var(--color-text-muted)}.promotion-badge--bonus_time .promotion-badge__icon,.promotion-badge--bonus_time.promotion-badge--applicable .promotion-badge__value{color:gold;background:#ffd70033}.promotion-badge--free_hour .promotion-badge__icon{color:#e91e63}.promotion-badge--free_hour.promotion-badge--applicable .promotion-badge__value{background:#e91e6333;color:#e91e63}.promotion-badge--discount_percent .promotion-badge__icon,.promotion-badge--discount_fixed .promotion-badge__icon{color:#4caf50}@media(max-width:480px){.time-slot-picker__grid{grid-template-columns:repeat(4,1fr);gap:4px}.time-slot{padding:var(--spacing-xs);font-size:var(--font-size-xs)}.time-slot__time{font-size:11px}.time-slot__check{top:2px;right:2px}.time-slot__check svg{width:10px;height:10px}.time-slot-picker__legend{gap:var(--spacing-sm)}.legend-item{font-size:var(--font-size-xs)}.time-slot-picker__promotions{padding:var(--spacing-sm)}.promotions-list{flex-direction:column}.promotion-badge{font-size:var(--font-size-xs)}}.booking-form{display:flex;flex-direction:column;height:100%;max-height:90vh;background:var(--color-bg-secondary);border-radius:var(--border-radius-lg);overflow:hidden}.booking-form__header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--spacing-md) var(--spacing-lg);padding-right:60px;background:var(--color-bg-primary);border-bottom:1px solid rgba(255,255,255,.1)}.booking-form__back{display:flex;align-items:center;gap:var(--spacing-xs);background:transparent;border:none;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:color var(--transition-fast);justify-self:start}.booking-form__back:hover{color:var(--color-text-primary)}.booking-form__room-info{display:flex;flex-direction:column;align-items:center;text-align:center}.booking-form__room-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.booking-form__room-price{font-size:var(--font-size-sm);color:var(--color-accent)}.booking-steps{display:flex;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);padding-right:60px;background:var(--color-bg-primary);position:relative}.booking-steps:before{content:"";position:absolute;top:50%;left:var(--spacing-xl);right:var(--spacing-xl);height:2px;background:#ffffff1a;transform:translateY(-50%);z-index:0}.booking-steps__item{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);position:relative;z-index:1}.step-number{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-bg-elevated);color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border:2px solid rgba(255,255,255,.1);transition:all var(--transition-normal)}.step-label{font-size:var(--font-size-xs);color:var(--color-text-muted);transition:color var(--transition-normal)}.booking-steps__item.active .step-number{background:var(--color-accent);color:#fff;border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.booking-steps__item.active .step-label{color:var(--color-accent)}.booking-steps__item.completed .step-number{background:var(--color-success);color:#fff;border-color:var(--color-success)}.booking-steps__item.completed .step-label{color:var(--color-success)}.booking-form__content{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.booking-step{animation:fadeIn .3s ease}.booking-step__title{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.booking-step__subtitle{margin-bottom:var(--spacing-md);color:var(--color-text-secondary);font-size:var(--font-size-base)}.booking-step__loading{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-2xl);color:var(--color-text-secondary)}.booking-step__loading .spinner{animation:spin 1s linear infinite}.booking-step__selected{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-elevated);border-radius:var(--border-radius-md);color:var(--color-text-secondary);text-align:center}.booking-step__selected strong{color:var(--color-accent)}.booking-step__price-preview{margin-top:var(--spacing-md);padding:var(--spacing-md);background:#e91e631a;border-radius:var(--border-radius-md);border:1px solid rgba(233,30,99,.3);display:flex;justify-content:space-between;align-items:center}.booking-step__price-preview span{color:var(--color-text-secondary)}.booking-step__price-preview strong{color:var(--color-accent);font-size:var(--font-size-lg)}.date-picker{display:flex;gap:var(--spacing-sm);overflow-x:auto;overflow-y:hidden;padding:var(--spacing-sm) 0;margin:0 calc(-1 * var(--spacing-lg));padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-behavior:smooth;scroll-snap-type:x proximity;touch-action:pan-x}.date-picker::-webkit-scrollbar{display:none}.date-picker:after{content:"";flex-shrink:0;width:var(--spacing-lg)}.date-picker__item{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:70px;flex-shrink:0;padding:var(--spacing-md) var(--spacing-sm);background:var(--color-bg-elevated);border:2px solid transparent;border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-fast);position:relative;scroll-snap-align:center}.date-picker__item:hover{border-color:#e91e634d;transform:translateY(-2px)}.date-picker__item--selected{background:var(--color-accent);border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.date-picker__day{font-size:var(--font-size-xs);text-transform:uppercase;color:var(--color-text-muted)}.date-picker__item--selected .date-picker__day{color:#fffc}.date-picker__date{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1}.date-picker__month{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.date-picker__today{position:absolute;bottom:4px;font-size:9px;color:var(--color-success);text-transform:uppercase;letter-spacing:.5px}.date-picker__item--selected .date-picker__today{color:#ffffffe6}.contact-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.contact-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.contact-form__field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.contact-form__field label{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.contact-form__field input,.contact-form__field textarea{padding:var(--spacing-md);background:var(--color-bg-elevated);border:2px solid rgba(255,255,255,.1);border-radius:var(--border-radius-md);color:var(--color-text-primary);font-size:var(--font-size-base);transition:all var(--transition-fast)}.contact-form__field input:focus,.contact-form__field textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #e91e6333}.contact-form__field input::placeholder,.contact-form__field textarea::placeholder{color:var(--color-text-muted)}.contact-form__hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.guest-counter{display:flex;align-items:center;gap:var(--spacing-md)}.guest-counter button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-elevated);border:2px solid rgba(255,255,255,.2);border-radius:var(--border-radius-sm);color:var(--color-text-primary);font-size:var(--font-size-xl);cursor:pointer;transition:all var(--transition-fast)}.guest-counter button:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.guest-counter button:disabled{opacity:.3;cursor:not-allowed}.guest-counter span{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);min-width:40px;text-align:center}.payment-summary{background:var(--color-bg-elevated);border-radius:var(--border-radius-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.payment-summary h4{margin-bottom:var(--spacing-md);color:var(--color-text-primary);font-size:var(--font-size-lg)}.payment-summary__row{display:flex;justify-content:space-between;padding:var(--spacing-sm) 0;color:var(--color-text-secondary)}.payment-summary__row strong{color:var(--color-text-primary)}.payment-summary__divider{height:1px;background:#ffffff1a;margin:var(--spacing-md) 0}.payment-summary__row--discount span:last-child{color:var(--color-success)}.payment-summary__row--total{font-size:var(--font-size-lg);padding-top:var(--spacing-md)}.payment-summary__row--total strong{color:var(--color-accent);font-size:var(--font-size-xl)}.payment-summary__deposit{margin-top:var(--spacing-md);padding:var(--spacing-md);background:#e91e6326;border-radius:var(--border-radius-md);border:1px solid rgba(233,30,99,.3)}.deposit-info{display:flex;justify-content:space-between;align-items:center}.deposit-info span{color:var(--color-text-secondary)}.deposit-amount{font-size:var(--font-size-xl);color:var(--color-accent)!important}.deposit-note{margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-muted)}.payment-card{background:var(--color-bg-elevated);border-radius:var(--border-radius-md);padding:var(--spacing-lg)}.payment-card h4{margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.payment-card__note{margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-warning)}.payment-card__fields{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.payment-card__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.payment-card__field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.payment-card__field label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.payment-card__field input{padding:var(--spacing-md);background:var(--color-bg-card);border:1px solid rgba(255,255,255,.1);border-radius:var(--border-radius-sm);color:var(--color-text-muted);font-family:JetBrains Mono,monospace;font-size:var(--font-size-base)}.payment-button{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-lg);background:var(--color-accent-gradient);border:none;border-radius:var(--border-radius-md);color:#fff;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast)}.payment-button:hover:not(:disabled){transform:scale(1.02);box-shadow:var(--shadow-glow)}.payment-button:disabled{opacity:.7;cursor:wait}.payment-button .spinner{animation:spin 1s linear infinite}.booking-step--success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--spacing-2xl)}.success-icon{color:var(--color-success);margin-bottom:var(--spacing-lg);animation:successPop .5s ease}@keyframes successPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.success-title{font-size:var(--font-size-2xl);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.success-booking-id{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.success-booking-id strong{color:var(--color-accent);font-family:JetBrains Mono,monospace}.success-details{padding:var(--spacing-lg);background:var(--color-bg-elevated);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-lg);width:100%}.success-details p{color:var(--color-text-primary);line-height:var(--line-height-relaxed)}.success-message{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-xl)}.success-button{padding:var(--spacing-md) var(--spacing-2xl);background:var(--color-accent);border:none;border-radius:var(--border-radius-md);color:#fff;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast)}.success-button:hover{transform:scale(1.05);box-shadow:var(--shadow-glow)}.booking-form__footer{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-primary);border-top:1px solid rgba(255,255,255,.1)}.booking-form__next{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-accent);border:none;border-radius:var(--border-radius-md);color:#fff;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-fast)}.booking-form__next:hover:not(:disabled){background:var(--color-accent-light);transform:translateY(-2px);box-shadow:var(--shadow-glow)}.booking-form__next:disabled{background:var(--color-bg-elevated);color:var(--color-text-muted);cursor:not-allowed}.booking-form__phone-link{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);background:transparent;border:none;cursor:pointer;transition:color var(--transition-fast)}.booking-form__phone-link:hover{color:var(--color-text-secondary);opacity:1}.payment-error{padding:var(--spacing-md);margin-bottom:var(--spacing-md);background:#f4433626;border:1px solid rgba(244,67,54,.4);border-radius:var(--border-radius-md);color:#f44336;font-size:var(--font-size-sm);text-align:center}.payment-promotion-warning{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-md);background:#ffc1071f;border:1px solid rgba(255,193,7,.35);border-radius:var(--border-radius-md);color:#ffc107;font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.payment-promotion-warning svg{flex-shrink:0;margin-top:2px}.booking-step__price-preview{flex-direction:column;gap:var(--spacing-sm)}.booking-step__price-preview--loading{justify-content:center;gap:var(--spacing-sm)}.booking-step__price-preview--loading .spinner{animation:spin 1s linear infinite}.booking-step__price-preview--hint{background:#ffffff0d;border-color:#ffffff1a;justify-content:center;gap:var(--spacing-sm)}.booking-step__price-preview--hint span{color:var(--color-text-muted);font-size:var(--font-size-sm)}.booking-step__price-preview--error{background:#f443361a;border-color:#f443364d;justify-content:center;gap:var(--spacing-sm)}.booking-step__price-preview--error span{color:#f44336;font-size:var(--font-size-sm)}.price-preview__main{display:flex;justify-content:space-between;align-items:center;width:100%}.price-preview__modifiers{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);padding-top:var(--spacing-sm);border-top:1px solid rgba(233,30,99,.2)}.price-modifier-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.price-modifier-badge--increase{background:#f4433626;color:#f44336;border:1px solid rgba(244,67,54,.3)}.price-modifier-badge--decrease{background:#4caf5026;color:#4caf50;border:1px solid rgba(76,175,80,.3)}.price-modifier-badge__value{font-weight:var(--font-weight-semibold)}.price-preview__loyalty{margin-top:var(--spacing-sm)}.loyalty-discount-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:linear-gradient(135deg,#ffd70026,#ffc10726);border:1px solid rgba(255,215,0,.4);border-radius:999px;font-size:var(--font-size-sm);color:#ffc107}.loyalty-discount-badge svg{color:gold}.loyalty-discount-badge__name{font-weight:var(--font-weight-medium)}.loyalty-discount-badge__value{font-weight:var(--font-weight-bold);color:#4caf50}.payment-summary__loyalty{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:linear-gradient(135deg,#ffd7001a,#ffc1070d);border:1px solid rgba(255,215,0,.3);border-radius:var(--border-radius-md)}.payment-summary__loyalty-header{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:#ffc107;margin-bottom:var(--spacing-xs)}.payment-summary__loyalty-header svg{color:gold}.payment-summary__row--loyalty{color:#4caf50}.payment-summary__row--loyalty .loyalty-value{font-weight:var(--font-weight-bold);color:#4caf50}.payment-summary__modifiers{margin-top:var(--spacing-md);padding:var(--spacing-md);background:#ffffff08;border-radius:var(--border-radius-sm);border:1px dashed rgba(255,255,255,.1)}.payment-summary__modifiers-title{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-muted)}.payment-summary__row--modifier-increase span:first-child{display:flex;align-items:center;gap:var(--spacing-xs)}.payment-summary__row--modifier-increase span:last-child{color:#f44336}.payment-summary__row--modifier-decrease span:first-child{display:flex;align-items:center;gap:var(--spacing-xs)}.payment-summary__row--modifier-decrease span:last-child{color:#4caf50}.promotion-selector{background:linear-gradient(135deg,#ffd70014,#ff980014);border:1px solid rgba(255,215,0,.2);border-radius:var(--border-radius-md);padding:var(--spacing-md);margin-top:var(--spacing-xl);margin-bottom:var(--spacing-lg)}.promotion-selector__header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);color:gold;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.promotion-selector__header svg{color:gold}.promotion-selector__clear{margin-left:auto;background:transparent;border:1px solid rgba(255,215,0,.3);color:gold;padding:4px 12px;border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.promotion-selector__clear:hover{background:#ffd7001a;border-color:gold}.promotion-selector__loading{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-muted);font-size:var(--font-size-sm)}.promotion-selector__list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.promotion-card{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);background:#ffffff08;border:2px solid rgba(255,255,255,.1);border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:left;width:100%}.promotion-card:hover:not(:disabled){background:#ffffff0f;border-color:#ffd7004d}.promotion-card--selected{background:#ffd7001a;border-color:gold;box-shadow:0 0 10px #ffd70033}.promotion-card--disabled{opacity:.5;cursor:not-allowed}.promotion-card__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#ffd70026;color:gold;flex-shrink:0}.promotion-card--bonus_time .promotion-card__icon{background:#ffd70026;color:gold}.promotion-card--free_hour .promotion-card__icon{background:#e91e6326;color:#e91e63}.promotion-card--discount_percent .promotion-card__icon,.promotion-card--discount_fixed .promotion-card__icon{background:#4caf5026;color:#4caf50}.promotion-card__content{flex:1;min-width:0}.promotion-card__name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:4px}.promotion-card__value{display:inline-block;background:#4caf5033;color:#4caf50;padding:2px 8px;border-radius:var(--border-radius-xs);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);margin-bottom:4px}.promotion-card--bonus_time .promotion-card__value{background:#ffd70033;color:gold}.promotion-card--free_hour .promotion-card__value{background:#e91e6333;color:#e91e63}.promotion-card__conditions{font-size:var(--font-size-xs);color:var(--color-text-muted)}.promotion-card__reason{font-size:var(--font-size-xs);color:var(--color-warning);font-style:italic;margin-top:4px}.promotion-card__check{color:gold;flex-shrink:0}.promotion-selector--loading{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);color:var(--color-text-muted);font-size:var(--font-size-sm)}.promotion-selector__description{display:flex;align-items:flex-start;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding:var(--spacing-md);background:#ffd7001a;border:1px solid rgba(255,215,0,.25);border-radius:var(--border-radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed)}.promotion-selector__description svg{flex-shrink:0;margin-top:2px;color:gold}.price-preview__promotion{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid rgba(255,215,0,.2)}.promotion-applied-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);background:linear-gradient(135deg,#ffd70026,#ff980026);border:1px solid rgba(255,215,0,.3);animation:promotion-pulse 2s ease-in-out infinite}@keyframes promotion-pulse{0%,to{box-shadow:0 0 #ffd7004d}50%{box-shadow:0 0 10px 2px #ffd70033}}.promotion-applied-badge svg{color:gold}.promotion-applied-badge__name{color:gold;font-weight:var(--font-weight-medium)}.promotion-applied-badge__value{background:#4caf5033;color:#4caf50;padding:2px 8px;border-radius:var(--border-radius-xs);font-weight:var(--font-weight-bold);font-size:var(--font-size-xs)}.promotion-applied-badge--bonus_time{background:linear-gradient(135deg,#ffd70026,#ffc10726)}.promotion-applied-badge--free_hour{background:linear-gradient(135deg,#e91e6326,#9c27b026);border-color:#e91e634d}.promotion-applied-badge--free_hour svg{color:#e91e63}.promotion-applied-badge--free_hour .promotion-applied-badge__name{color:#e91e63}.promotion-applied-badge--discount_percent,.promotion-applied-badge--discount_fixed{background:linear-gradient(135deg,#4caf5026,#43a04726);border-color:#4caf504d}.promotion-applied-badge--discount_percent svg,.promotion-applied-badge--discount_fixed svg{color:#4caf50}.promotion-applied-badge--discount_percent .promotion-applied-badge__name,.promotion-applied-badge--discount_fixed .promotion-applied-badge__name{color:#4caf50}.promotion-bonus-info{display:flex;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:#ffd7001a;border-radius:var(--border-radius-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.promotion-bonus-info svg{color:gold;flex-shrink:0}.payment-summary__promotion{margin-top:var(--spacing-md);padding:var(--spacing-md);background:linear-gradient(135deg,#ffd70014,#ff980014);border-radius:var(--border-radius-sm);border:1px solid rgba(255,215,0,.2)}.payment-summary__promotion-header{display:flex;align-items:center;gap:var(--spacing-xs);color:gold;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.payment-summary__promotion-header svg{color:gold}.payment-summary__promotion-name{color:var(--color-text-primary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.payment-summary__row--promotion span:first-child{color:var(--color-text-secondary)}.payment-summary__row--promotion .promotion-value{color:#4caf50;font-weight:var(--font-weight-bold)}.bonus-hours-note{color:#4caf50;font-size:var(--font-size-xs);font-weight:400}.coupon-selector{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:linear-gradient(135deg,#10b98114,#05966914);border-radius:var(--border-radius-md);border:1px solid rgba(16,185,129,.2)}.coupon-selector__header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);font-weight:var(--font-weight-semibold);color:#10b981}.coupon-selector__header svg{color:#10b981}.coupon-selector__clear{margin-left:auto;background:transparent;border:none;color:var(--color-text-muted);font-size:var(--font-size-xs);cursor:pointer;text-decoration:underline}.coupon-selector__clear:hover{color:var(--color-text-secondary)}.coupon-selector--loading,.coupon-selector--empty{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm);background:linear-gradient(135deg,#10b9810d,#0596690d);border-radius:var(--border-radius-md);border:1px dashed rgba(16,185,129,.3)}.coupon-selector--empty svg{color:#10b98180}.promotion-selector--disabled,.coupon-selector--disabled{opacity:.5;position:relative}.promotion-selector--disabled:after,.coupon-selector--disabled:after{content:"";position:absolute;inset:0;background:transparent;cursor:not-allowed;z-index:1}.promotion-selector--disabled .promotion-card,.coupon-selector--disabled .coupon-card-mini{pointer-events:none}.discount-hint{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-normal);margin-left:auto}.coupon-selector__list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.coupon-selector__reason{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:#10b9811a;border-radius:var(--border-radius-xs);font-size:var(--font-size-sm);color:#10b981;font-style:italic}.coupon-card-mini{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-elevated);border:2px solid transparent;border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast);text-align:left}.coupon-card-mini:hover{border-color:#10b98180;box-shadow:0 2px 8px #10b9811a}.coupon-card-mini--selected{border-color:#10b981;background:#10b9811a}.coupon-card-mini__icon{font-size:24px;flex-shrink:0}.coupon-card-mini__content{flex:1;min-width:0}.coupon-card-mini__name{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.coupon-card-mini__value{color:#10b981;font-weight:var(--font-weight-bold);font-size:var(--font-size-md)}.coupon-card-mini__expires{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:2px}.coupon-card-mini__expires--soon{color:#f59e0b;font-weight:var(--font-weight-medium)}.coupon-card-mini__check{color:#10b981}.coupon-card-mini--free_hour{border-color:#10b9814d}.coupon-card-mini--free_hour .coupon-card-mini__value{color:#10b981}.coupon-card-mini--percent,.coupon-card-mini--fixed_amount{border-color:#3b82f64d}.coupon-card-mini--percent .coupon-card-mini__value,.coupon-card-mini--fixed_amount .coupon-card-mini__value{color:#3b82f6}.price-preview__coupon{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid rgba(16,185,129,.2)}.coupon-applied-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);background:linear-gradient(135deg,#10b98126,#05966926);border:1px solid rgba(16,185,129,.3)}.coupon-applied-badge__icon{font-size:16px}.coupon-applied-badge__name{color:#10b981;font-weight:var(--font-weight-medium)}.coupon-applied-badge__value{background:#10b98133;color:#10b981;padding:2px 8px;border-radius:var(--border-radius-xs);font-weight:var(--font-weight-bold);font-size:var(--font-size-xs)}.price-preview__final{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:linear-gradient(135deg,#10b9811a,#0596691a);border-radius:var(--border-radius-sm);border:1px solid rgba(16,185,129,.3)}.price-preview__final span{color:#10b981;font-weight:var(--font-weight-medium)}.price-strikethrough{text-decoration:line-through;color:var(--color-text-secondary);font-weight:var(--font-weight-normal);font-size:.9em}.price-with-discount{color:#10b981;font-weight:var(--font-weight-bold)}.payment-summary__coupon{margin-top:var(--spacing-md);padding:var(--spacing-md);background:linear-gradient(135deg,#10b98114,#05966914);border-radius:var(--border-radius-sm);border:1px solid rgba(16,185,129,.2)}.payment-summary__coupon-header{display:flex;align-items:center;gap:var(--spacing-xs);color:#10b981;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);margin-bottom:var(--spacing-xs)}.payment-summary__coupon-header .coupon-icon{font-size:18px}.payment-summary__coupon-name{color:var(--color-text-primary);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.payment-summary__row--coupon span:first-child{color:var(--color-text-secondary)}.payment-summary__row--coupon .coupon-value{color:#10b981;font-weight:var(--font-weight-bold)}.contact-form__capacity-info{display:flex;flex-direction:column;gap:4px}.contact-form__hint--extra{color:var(--color-accent);font-weight:var(--font-weight-medium)}.contact-form__extra-charge{display:flex;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-xs);padding:var(--spacing-sm);background:#e91e631a;border:1px solid rgba(233,30,99,.3);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);color:var(--color-accent)}.contact-form__extra-charge svg{flex-shrink:0}.price-preview__extra-guests{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid rgba(233,30,99,.2)}.extra-guests-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);background:#e91e6326;color:var(--color-accent);border:1px solid rgba(233,30,99,.3)}.extra-guests-badge svg{flex-shrink:0}.extra-guests-badge__value{font-weight:var(--font-weight-bold);margin-left:var(--spacing-xs)}.payment-summary__row--extra-guests{margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:#e91e6314;border-radius:var(--border-radius-sm);border:1px dashed rgba(233,30,99,.3)}.payment-summary__row--extra-guests span:first-child{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.payment-summary__row--extra-guests span:first-child svg{color:var(--color-accent)}.payment-summary__row--extra-guests span:last-child{color:var(--color-accent);font-weight:var(--font-weight-semibold)}@media(max-width:600px){.booking-steps{padding:var(--spacing-md);padding-right:50px}.step-label{display:none}.contact-form__row,.payment-card__row{grid-template-columns:1fr}.booking-form__header{padding:var(--spacing-sm) var(--spacing-md);padding-right:50px}.booking-form__room-name{font-size:var(--font-size-sm)}.booking-form__room-price{font-size:var(--font-size-xs)}.booking-form__content{padding:var(--spacing-md)}.date-picker{margin:0 calc(-1 * var(--spacing-md));padding-left:var(--spacing-md);padding-right:var(--spacing-md);padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.date-picker__item{min-width:60px;padding:var(--spacing-sm) var(--spacing-xs)}.date-picker__date{font-size:var(--font-size-xl)}.price-preview__modifiers{flex-direction:column}.price-modifier-badge{justify-content:space-between;width:100%}.promotion-applied-badge{flex-wrap:wrap;width:100%}.promotion-applied-badge__value{margin-left:auto}.promotion-selector{padding:var(--spacing-sm)}.promotion-card{padding:var(--spacing-sm);gap:var(--spacing-sm)}.promotion-card__icon{width:32px;height:32px}.promotion-card__icon svg{width:16px;height:16px}.promotion-card__name{font-size:var(--font-size-sm)}.promotion-card__value{font-size:var(--font-size-xs)}}@media(max-width:400px){.booking-steps{padding:var(--spacing-sm) var(--spacing-md);padding-right:45px}.step-number{width:28px;height:28px;font-size:var(--font-size-xs)}.date-picker__item{min-width:55px}.booking-form__header{padding-right:45px}}.payment-type-selector{margin-top:var(--spacing-lg);padding:var(--spacing-lg);background:linear-gradient(135deg,#e91e6314,#9c27b014);border-radius:var(--border-radius-md);border:1px solid rgba(233,30,99,.2)}.payment-type-selector__title{margin-bottom:var(--spacing-md);color:var(--color-text-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.payment-type-selector__options{display:flex;flex-direction:column;gap:var(--spacing-md)}.payment-type-option{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);background:#ffffff08;border:2px solid rgba(255,255,255,.1);border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:left;width:100%}.payment-type-option:hover{background:#ffffff0f;border-color:#e91e634d}.payment-type-option--selected{background:#e91e631f;border-color:var(--color-accent);box-shadow:0 0 15px #e91e6333}.payment-type-option__radio{width:22px;height:22px;flex-shrink:0;border:2px solid rgba(255,255,255,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:2px;transition:all var(--transition-fast)}.payment-type-option--selected .payment-type-option__radio{border-color:var(--color-accent)}.payment-type-option__radio-inner{width:12px;height:12px;border-radius:50%;background:transparent;transition:all var(--transition-fast)}.payment-type-option--selected .payment-type-option__radio-inner{background:var(--color-accent);box-shadow:0 0 8px #e91e6380}.payment-type-option__content{flex:1}.payment-type-option__label{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:4px;font-size:var(--font-size-base)}.payment-type-option--selected .payment-type-option__label{color:var(--color-accent)}.payment-type-option__amount{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:4px}.payment-type-option--selected .payment-type-option__amount{color:var(--color-accent)}.payment-type-option__note{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.payment-type-option__note--accent{color:var(--color-success)}.payment-type-selector__summary{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid rgba(233,30,99,.2)}.payment-type-selector__summary span{color:var(--color-text-secondary);font-size:var(--font-size-lg)}.payment-type-selector__summary strong{color:var(--color-accent);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}@media(max-width:600px){.payment-type-selector{padding:var(--spacing-md)}.payment-type-option{padding:var(--spacing-sm);gap:var(--spacing-sm)}.payment-type-option__radio{width:20px;height:20px}.payment-type-option__radio-inner{width:10px;height:10px}.payment-type-option__label{font-size:var(--font-size-sm)}.payment-type-option__amount{font-size:var(--font-size-lg)}.payment-type-option__note{font-size:var(--font-size-xs)}.payment-type-selector__summary strong{font-size:var(--font-size-xl)}}.locked-coupons-section{margin-top:var(--spacing-lg);padding:16px;background:#fafafa;border-radius:12px;border:1px solid #e0e0e0}.locked-coupons-section__header{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:#333;margin-bottom:8px}.locked-coupons-section__hint{font-size:13px;color:#666;margin-bottom:16px}.locked-coupons-section__grid{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:768px){.locked-coupons-section__grid{grid-template-columns:repeat(3,1fr)}}.warning-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem;animation:fadeIn .2s ease-out}.warning-modal{background:var(--color-surface, #1a1a2e);border-radius:1rem;max-width:420px;width:100%;padding:1.5rem;position:relative;box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease-out;border:1px solid rgba(255,193,7,.3)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.warning-modal__close{position:absolute;top:.75rem;right:.75rem;background:transparent;border:none;color:var(--color-text-secondary, #888);cursor:pointer;padding:.25rem;border-radius:.25rem;transition:color .2s,background .2s}.warning-modal__close:hover{color:var(--color-text, #fff);background:#ffffff1a}.warning-modal__icon{display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:#ffc107}.warning-modal__icon svg{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}.warning-modal__title{text-align:center;font-size:1.25rem;font-weight:600;color:#ffc107;margin:0 0 .5rem}.warning-modal__room-name{text-align:center;font-size:1.1rem;font-weight:500;color:var(--color-text, #fff);margin:0 0 1rem}.warning-modal__content{background:#ffc1071a;border-radius:.75rem;padding:1rem;margin-bottom:1.5rem;border:1px solid rgba(255,193,7,.2)}.warning-modal__text{font-size:.95rem;line-height:1.6;color:var(--color-text, #fff);margin:0;text-align:center}.warning-modal__actions{display:flex;gap:.75rem}.warning-modal__button{flex:1;padding:.875rem 1rem;border-radius:.5rem;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.warning-modal__button--cancel{background:#ffffff1a;color:var(--color-text-secondary, #aaa);border:1px solid rgba(255,255,255,.2)}.warning-modal__button--cancel:hover{background:#ffffff26;color:var(--color-text, #fff)}.warning-modal__button--confirm{background:linear-gradient(135deg,#ffc107,#ff9800);color:#000}.warning-modal__button--confirm:hover{background:linear-gradient(135deg,#ffca28,#ffa726);transform:translateY(-1px);box-shadow:0 4px 12px #ffc10766}.warning-modal__button--confirm:active{transform:translateY(0)}@media(max-width:480px){.warning-modal{padding:1.25rem;margin:.5rem}.warning-modal__actions{flex-direction:column}.warning-modal__button{padding:1rem}}.room-modal-overlay{position:fixed;inset:0;background-color:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.room-modal{position:relative;background-color:var(--color-bg-card);border-radius:var(--border-radius-xl);max-width:900px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease;box-shadow:var(--shadow-lg),var(--shadow-glow)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.room-modal__close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);z-index:10;background-color:#000000b3;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-primary);transition:background-color var(--transition-normal),transform var(--transition-fast)}.room-modal__close:hover{background-color:#000000e6;transform:scale(1.1)}.room-modal__image-section{position:relative;width:100%;aspect-ratio:16 / 9;overflow:hidden;flex-shrink:0}.room-modal__image{width:100%;height:100%;object-fit:cover}.room-modal__image-section:after{content:"";position:absolute;bottom:0;left:0;right:0;height:120px;background:linear-gradient(to top,var(--color-bg-card) 0%,rgba(36,36,36,.95) 20%,rgba(36,36,36,.8) 40%,rgba(36,36,36,.4) 70%,transparent 100%);pointer-events:none}.room-modal__content{position:relative;padding:var(--spacing-xl);margin-top:-60px;overflow-y:auto;flex:1;z-index:1}.room-modal__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.room-modal__title{font-family:var(--font-family-display);font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);letter-spacing:.05em;color:var(--color-text-primary);margin:0}.room-modal__subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.room-modal__price-tag{display:flex;flex-direction:column;align-items:flex-end;background:var(--color-accent-gradient);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-md);flex-shrink:0}.room-modal__price-label{font-size:var(--font-size-xs);text-transform:uppercase;color:#ffffffe6;letter-spacing:.05em}.room-modal__price{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:#fff}.room-modal__capacity-info{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:#ffffff0d;border-radius:var(--border-radius-md);margin-bottom:var(--spacing-lg);width:fit-content;color:var(--color-text-secondary)}.room-modal__capacity-info svg{margin-top:2px;flex-shrink:0}.room-modal__capacity-details{display:flex;flex-direction:column;gap:2px}.room-modal__capacity-max{font-size:var(--font-size-sm);color:var(--color-text-muted);opacity:.9}.room-modal__section{margin-bottom:var(--spacing-lg)}.room-modal__section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.room-modal__description{font-size:var(--font-size-md);line-height:1.6;color:var(--color-text-secondary)}.room-modal__equipment{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-sm)}.room-modal__equipment-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:#ffffff0d;border-radius:var(--border-radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.room-modal__no-equipment{color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic}.room-modal__amenities{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-xs)}.room-modal__amenities li{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding-left:var(--spacing-md);position:relative}.room-modal__amenities li:before{content:"✓";position:absolute;left:0;color:var(--color-available)}.room-modal__hours{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.room-modal__book-button{width:100%;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-accent-gradient);color:#fff;border:none;border-radius:var(--border-radius-lg);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);cursor:pointer;transition:transform var(--transition-normal),box-shadow var(--transition-normal);margin-top:var(--spacing-lg)}.room-modal__book-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.room-modal__book-button:active:not(:disabled){transform:translateY(0)}.room-modal__book-button:disabled{opacity:.5;cursor:not-allowed;background:linear-gradient(135deg,#666,#888)}@media(max-width:768px){.room-modal-overlay{padding:0;align-items:flex-end}.room-modal{max-width:100%;max-height:95vh;border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0}.room-modal__image-section:after{height:100px}.room-modal__content{padding:var(--spacing-lg);margin-top:-50px}.room-modal__header{flex-direction:column;align-items:flex-start}.room-modal__price-tag{align-self:flex-end}.room-modal__equipment,.room-modal__amenities{grid-template-columns:1fr}}@media(max-width:480px){.room-modal__image-section{aspect-ratio:4 / 3}.room-modal__image-section:after{height:80px}.room-modal__title{font-size:var(--font-size-2xl)}.room-modal__content{padding:var(--spacing-md);margin-top:-40px}.room-modal__close{width:36px;height:36px}}.room-modal--booking{display:flex;flex-direction:column}.room-modal--booking .room-modal__close{background-color:var(--color-bg-elevated);z-index:20}.room-modal--booking .room-modal__close:hover{background-color:var(--color-bg-primary)}@media(max-width:600px){.room-modal--booking .room-modal__close{top:var(--spacing-sm);right:var(--spacing-sm);width:36px;height:36px}}@media(max-width:400px){.room-modal--booking .room-modal__close{width:32px;height:32px}.room-modal--booking .room-modal__close svg{width:18px;height:18px}}.booking-rules-modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem;animation:bookingRulesFadeIn .2s ease-out}@keyframes bookingRulesFadeIn{0%{opacity:0}to{opacity:1}}.booking-rules-modal{background:var(--color-surface, #1a1a2e);border-radius:1rem;max-width:540px;width:100%;max-height:90vh;overflow-y:auto;padding:1.5rem;position:relative;box-shadow:0 20px 60px #00000080;animation:bookingRulesSlideUp .3s ease-out;border:1px solid rgba(255,255,255,.1)}@keyframes bookingRulesSlideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.booking-rules-modal__close{position:absolute;top:.75rem;right:.75rem;background:transparent;border:none;color:var(--color-text-secondary, #888);cursor:pointer;padding:.5rem;border-radius:.5rem;transition:color .2s,background .2s;z-index:1}.booking-rules-modal__close:hover{color:var(--color-text, #fff);background:#ffffff1a}.booking-rules-modal__header{text-align:center;margin-bottom:1.25rem;padding-right:2rem}.booking-rules-modal__title{font-size:1.5rem;font-weight:700;color:var(--color-text, #fff);margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.5px}.booking-rules-modal__subtitle{font-size:.9rem;color:var(--color-text-secondary, #aaa);margin:0;font-style:italic}.booking-rules-modal__content{background:#0000004d;border-radius:.75rem;padding:1rem;margin-bottom:1.25rem;border:1px solid rgba(255,255,255,.05)}.booking-rules-modal__section{padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.1)}.booking-rules-modal__section:first-child{padding-top:0}.booking-rules-modal__section:last-child{border-bottom:none;padding-bottom:0}.booking-rules-modal__section-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--color-text, #fff);margin:0 0 .5rem}.booking-rules-modal__section-title svg{color:var(--color-primary, #e53935);flex-shrink:0}.booking-rules-modal__section-text{font-size:.875rem;line-height:1.6;color:var(--color-text-secondary, #bbb);margin:0;padding-left:1.625rem}.booking-rules-modal__checkbox{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:rgba(var(--color-primary-rgb, 229, 57, 53),.1);border-radius:.75rem;margin-bottom:1rem;border:1px solid rgba(var(--color-primary-rgb, 229, 57, 53),.3);cursor:pointer;transition:background .2s;-webkit-user-select:none;user-select:none}.booking-rules-modal__checkbox:hover{background:rgba(var(--color-primary-rgb, 229, 57, 53),.15)}.booking-rules-modal__checkbox:focus{outline:2px solid var(--color-primary, #e53935);outline-offset:2px}.booking-rules-modal__checkbox-icon{display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #888);flex-shrink:0;transition:color .2s}.booking-rules-modal__checkbox-icon.checked{color:var(--color-primary, #e53935)}.booking-rules-modal__checkbox-text{font-size:.95rem;line-height:1.5;color:var(--color-text, #fff);font-weight:500}.booking-rules-modal__note{font-size:.8rem;color:var(--color-text-secondary, #888);text-align:center;margin:0 0 1.25rem;font-style:italic}.booking-rules-modal__actions{display:flex;gap:.75rem}.booking-rules-modal__button{flex:1;padding:1rem 1.25rem;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none}.booking-rules-modal__button--cancel{background:#ffffff1a;color:var(--color-text-secondary, #aaa);border:1px solid rgba(255,255,255,.2)}.booking-rules-modal__button--cancel:hover{background:#ffffff26;color:var(--color-text, #fff)}.booking-rules-modal__button--confirm{background:linear-gradient(135deg,var(--color-primary, #e53935) 0%,#c62828 100%);color:#fff}.booking-rules-modal__button--confirm:hover:not(:disabled){background:linear-gradient(135deg,#ef5350,#d32f2f);transform:translateY(-1px);box-shadow:0 4px 12px #e5393566}.booking-rules-modal__button--confirm:active:not(:disabled){transform:translateY(0)}.booking-rules-modal__button--confirm:disabled{background:#ffffff1a;color:var(--color-text-secondary, #666);cursor:not-allowed;transform:none;box-shadow:none}@media(max-width:480px){.booking-rules-modal{padding:1.25rem;margin:.5rem;max-height:85vh}.booking-rules-modal__title{font-size:1.25rem}.booking-rules-modal__content{padding:.75rem}.booking-rules-modal__section-title{font-size:.95rem}.booking-rules-modal__section-text{font-size:.8rem;padding-left:1.5rem}.booking-rules-modal__actions{flex-direction:column}.booking-rules-modal__button{padding:1rem}}.city-selector-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);animation:fadeIn .2s ease-out}.city-selector{background:var(--color-surface);border-radius:var(--border-radius-lg);width:100%;max-width:400px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out;box-shadow:0 10px 40px #0000004d}.city-selector__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.city-selector__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.city-selector__close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--border-radius-full);color:var(--color-text-secondary);transition:all var(--transition-fast)}.city-selector__close:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.city-selector__geo-btn{display:flex;align-items:center;gap:var(--spacing-md);margin:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-accent-gradient);border-radius:var(--border-radius-md);color:var(--color-text-on-accent);transition:all var(--transition-normal);font-weight:var(--font-weight-medium)}.city-selector__geo-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--color-accent-rgb),.3)}.city-selector__geo-btn:disabled{opacity:.7;cursor:not-allowed}.city-selector__geo-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#fff3;border-radius:var(--border-radius-full)}.city-selector__geo-text{flex:1}.city-selector__error{margin:0 var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md);background:#ef44441a;border-radius:var(--border-radius-sm);color:#ef4444;font-size:var(--font-size-sm)}.city-selector__divider{display:flex;align-items:center;gap:var(--spacing-md);margin:var(--spacing-md) var(--spacing-lg);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.city-selector__divider:before,.city-selector__divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.city-selector__list{flex:1;overflow-y:auto;padding:0 var(--spacing-md) var(--spacing-lg)}.city-selector__item{display:flex;align-items:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-md) var(--spacing-lg);background:transparent;border-radius:var(--border-radius-md);color:var(--color-text-primary);transition:all var(--transition-fast);text-align:left}.city-selector__item:hover{background:var(--color-surface-hover)}.city-selector__item--active{background:rgba(var(--color-accent-rgb),.1);color:var(--color-accent)}.city-selector__item--active .city-selector__item-icon{color:var(--color-accent)}.city-selector__item-icon{color:var(--color-text-secondary);flex-shrink:0}.city-selector__item-name{flex:1;font-weight:var(--font-weight-medium)}.city-selector__item-arrow{color:var(--color-text-tertiary);opacity:0;transition:opacity var(--transition-fast)}.city-selector__item:hover .city-selector__item-arrow{opacity:1}.city-selector__empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-tertiary)}@media(max-width:480px){.city-selector-overlay{padding:0;align-items:flex-end}.city-selector{max-width:100%;max-height:85vh;border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0}.city-selector__geo-btn{margin:var(--spacing-md)}}.branch-selector-overlay{position:fixed;inset:0;background:#0000;z-index:999;pointer-events:none;transition:background-color .3s ease}.branch-selector-overlay--open{background:#00000080;pointer-events:auto}.branch-selector{position:fixed;top:0;left:0;bottom:0;width:320px;max-width:85vw;background:var(--color-surface);z-index:1000;display:flex;flex-direction:column;transform:translate(-100%);transition:transform .3s ease;box-shadow:4px 0 20px #0000004d}.branch-selector--open{transform:translate(0)}.branch-selector__header{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--spacing-lg);background:var(--color-accent-gradient);color:var(--color-text-on-accent)}.branch-selector__header-info{flex:1}.branch-selector__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-sm) 0}.branch-selector__city-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:#fff3;border-radius:var(--border-radius-full);color:var(--color-text-on-accent);font-size:var(--font-size-sm);transition:background-color var(--transition-fast)}.branch-selector__city-btn:hover{background:#ffffff4d}.branch-selector__close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--border-radius-full);color:var(--color-text-on-accent);transition:background-color var(--transition-fast);flex-shrink:0}.branch-selector__close:hover{background:#fff3}.branch-selector__list{flex:1;overflow-y:auto;padding:var(--spacing-md)}.branch-selector__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--color-text-tertiary);text-align:center;gap:var(--spacing-md)}.branch-selector__empty svg{opacity:.5}.branch-selector__item{display:flex;align-items:flex-start;gap:var(--spacing-md);width:100%;padding:var(--spacing-md);background:var(--color-background);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-sm);text-align:left;transition:all var(--transition-fast);border:2px solid transparent;position:relative}.branch-selector__item:hover{background:var(--color-surface-hover);border-color:var(--color-border)}.branch-selector__item--active{background:rgba(var(--color-accent-rgb),.1);border-color:var(--color-accent)}.branch-selector__item--active:hover{background:rgba(var(--color-accent-rgb),.15);border-color:var(--color-accent)}.branch-selector__item-check{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);color:var(--color-accent)}.branch-selector__item-content{flex:1;min-width:0}.branch-selector__item-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;line-height:var(--line-height-tight)}.branch-selector__item--active .branch-selector__item-name{color:var(--color-accent)}.branch-selector__item-details{display:flex;flex-direction:column;gap:var(--spacing-xs)}.branch-selector__item-detail{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.branch-selector__item-detail svg{flex-shrink:0;color:var(--color-text-tertiary)}.branch-selector__item-phone{text-decoration:none;border-radius:var(--border-radius-sm);padding:2px 4px;margin:-2px -4px;transition:all var(--transition-fast)}.branch-selector__item-phone:hover{background:rgba(var(--color-accent-rgb),.15);color:var(--color-accent)}.branch-selector__item-phone:hover svg{color:var(--color-accent)}.branch-selector__item-arrow{color:var(--color-text-tertiary);flex-shrink:0;opacity:0;transition:opacity var(--transition-fast);align-self:center}.branch-selector__item:hover .branch-selector__item-arrow{opacity:1}.branch-selector__footer{padding:var(--spacing-md);border-top:1px solid var(--color-border)}.branch-selector__change-city{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-md);background:transparent;border:2px dashed var(--color-border);border-radius:var(--border-radius-md);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.branch-selector__change-city:hover{border-color:var(--color-accent);color:var(--color-accent);background:rgba(var(--color-accent-rgb),.05)}@media(max-width:480px){.branch-selector{width:100%;max-width:100%}}.cancel-modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn var(--transition-fast) ease}.cancel-modal{width:100%;max-width:480px;max-height:90vh;overflow-y:auto;background:var(--color-bg-card);border-radius:var(--border-radius-xl);border:1px solid rgba(255,255,255,.1);animation:slideUp var(--transition-normal) ease}.cancel-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.05)}.cancel-modal__title{font-family:var(--font-family-display);font-size:var(--font-size-lg);letter-spacing:.5px}.cancel-modal__close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-full);color:var(--color-text-secondary);transition:all var(--transition-fast)}.cancel-modal__close:hover{background:var(--color-bg-elevated);color:var(--color-text-primary)}.cancel-modal__content{padding:var(--spacing-lg)}.cancel-modal__loading{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);color:var(--color-text-secondary)}.cancel-modal__spinner{animation:spin 1s linear infinite}.cancel-modal__success{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xl);text-align:center}.cancel-modal__success svg{color:var(--color-success)}.cancel-modal__success h3{font-size:var(--font-size-lg)}.cancel-modal__success p{color:var(--color-text-secondary)}.cancel-modal__booking-info{padding:var(--spacing-md);margin-bottom:var(--spacing-lg);background:var(--color-bg-elevated);border-radius:var(--border-radius-md)}.cancel-modal__booking-row{display:flex;justify-content:space-between;padding:var(--spacing-xs) 0}.cancel-modal__booking-row:not(:last-child){border-bottom:1px solid rgba(255,255,255,.05)}.cancel-modal__booking-label{color:var(--color-text-muted);font-size:var(--font-size-sm)}.cancel-modal__booking-value{font-weight:var(--font-weight-medium)}.cancel-modal__booking-value--accent{color:var(--color-accent)}.cancel-modal__refund{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);border-radius:var(--border-radius-md)}.cancel-modal__refund--success{background:#4caf501a;border:1px solid rgba(76,175,80,.3)}.cancel-modal__refund--success .cancel-modal__refund-icon{color:var(--color-success)}.cancel-modal__refund--warning{background:#ff98001a;border:1px solid rgba(255,152,0,.3)}.cancel-modal__refund--warning .cancel-modal__refund-icon{color:var(--color-warning)}.cancel-modal__refund-icon{flex-shrink:0;margin-top:2px}.cancel-modal__refund-content{flex:1}.cancel-modal__refund-content h4{margin-bottom:var(--spacing-xs);font-size:var(--font-size-base)}.cancel-modal__refund-content p{margin-bottom:var(--spacing-xs);color:var(--color-text-secondary);font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--spacing-xs)}.cancel-modal__refund-amount{display:flex;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:#ffffff0d;border-radius:var(--border-radius-sm)}.cancel-modal__refund-amount strong{color:var(--color-success)}.cancel-modal__refund-note{color:var(--color-text-muted)!important;font-size:var(--font-size-xs)!important;font-style:italic}.cancel-modal__refund-warning-text{color:var(--color-text-primary)!important;line-height:1.5}.cancel-modal__refund-warning-text strong{color:var(--color-warning)}.cancel-modal__reason{margin-bottom:var(--spacing-lg)}.cancel-modal__reason label{display:block;margin-bottom:var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cancel-modal__reason textarea{width:100%;padding:var(--spacing-md);background:var(--color-bg-elevated);border:1px solid rgba(255,255,255,.1);border-radius:var(--border-radius-md);color:var(--color-text-primary);font-family:inherit;font-size:var(--font-size-sm);resize:vertical;transition:border-color var(--transition-fast)}.cancel-modal__reason textarea:focus{outline:none;border-color:var(--color-accent)}.cancel-modal__reason textarea::placeholder{color:var(--color-text-muted)}.cancel-modal__confirm{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md);background:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-fast)}.cancel-modal__confirm:hover{background:#f4433626}.cancel-modal__confirm input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.cancel-modal__confirm-checkmark{flex-shrink:0;width:22px;height:22px;margin-top:2px;background:var(--color-bg-elevated);border:2px solid rgba(255,255,255,.3);border-radius:var(--border-radius-sm);position:relative;transition:all var(--transition-fast)}.cancel-modal__confirm input:checked~.cancel-modal__confirm-checkmark{background:var(--color-error);border-color:var(--color-error)}.cancel-modal__confirm-checkmark:after{content:"";position:absolute;left:6px;top:2px;width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);opacity:0;transition:opacity var(--transition-fast)}.cancel-modal__confirm input:checked~.cancel-modal__confirm-checkmark:after{opacity:1}.cancel-modal__confirm-text{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.5}.cancel-modal__confirm-text strong{color:var(--color-error)}.cancel-modal__error{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-md);background:var(--color-error-bg);border-radius:var(--border-radius-md);color:var(--color-error);font-size:var(--font-size-sm)}.cancel-modal__actions{display:flex;gap:var(--spacing-md);padding:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.05)}.cancel-modal__btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius-md);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.cancel-modal__btn--secondary{background:var(--color-bg-elevated);border:1px solid rgba(255,255,255,.1);color:var(--color-text-secondary)}.cancel-modal__btn--secondary:hover{background:var(--color-bg-primary);color:var(--color-text-primary)}.cancel-modal__btn--danger{background:var(--color-error);color:#fff}.cancel-modal__btn--danger:hover:not(:disabled){background:#d32f2f}.cancel-modal__btn--danger:disabled{opacity:.5;cursor:not-allowed}.cancel-modal__btn-spinner{animation:spin 1s linear infinite}@media(max-width:480px){.cancel-modal-overlay{padding:var(--spacing-sm);align-items:flex-end}.cancel-modal{max-height:85vh;border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0}.cancel-modal__actions{flex-direction:column-reverse}.cancel-modal__refund{flex-direction:column}}.loyalty-card{--tier-color: #CD7F32;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border-radius:16px;padding:20px;border:1px solid var(--border-color);position:relative;overflow:hidden}.loyalty-card:before{content:"";position:absolute;top:-50%;right:-20%;width:200px;height:200px;background:radial-gradient(circle,var(--tier-color) 0%,transparent 70%);opacity:.1;pointer-events:none}.loyalty-card--loading{min-height:200px;display:flex;align-items:center;justify-content:center}.loyalty-card__skeleton{width:100%;height:150px;background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-tertiary) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:8px}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.loyalty-card--error{display:flex;align-items:center;gap:12px;color:var(--color-error);padding:16px}.loyalty-card--compact{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:20px;background:var(--bg-secondary);border:2px solid var(--tier-color);cursor:pointer;transition:all .2s ease;font-size:14px}.loyalty-card--compact:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.loyalty-card--compact .loyalty-card__icon{font-size:18px}.loyalty-card--compact .loyalty-card__name{font-weight:600;color:var(--text-primary)}.loyalty-card--compact .loyalty-card__discount{background:var(--tier-color);color:#fff;padding:2px 8px;border-radius:12px;font-weight:700;font-size:12px}.loyalty-card--compact .loyalty-card__arrow{color:var(--text-tertiary);transition:transform .2s ease}.loyalty-card--compact:hover .loyalty-card__arrow{transform:translate(4px)}.loyalty-card__header{display:flex;align-items:center;gap:16px;margin-bottom:16px}.loyalty-card__badge{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0003}.loyalty-card__emoji{font-size:28px}.loyalty-card__title{flex:1}.loyalty-card__tier-name{margin:0;font-size:24px;font-weight:700;color:var(--text-primary)}.loyalty-card__tier-label{margin:4px 0 0;font-size:13px;color:var(--text-secondary)}.loyalty-card__discount-badge{display:flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--color-success) 0%,#27ae60 100%);color:#fff;padding:8px 14px;border-radius:20px;font-weight:700;font-size:16px;box-shadow:0 2px 8px #27ae604d}.loyalty-card__description{margin-bottom:20px;padding:12px 16px;background:var(--bg-tertiary);border-radius:10px;font-size:14px;color:var(--text-secondary);line-height:1.5}.loyalty-card__description strong{color:var(--text-primary)}.loyalty-card__progress-section{margin-bottom:16px}.loyalty-card__progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.loyalty-card__progress-label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-secondary)}.loyalty-card__progress-label svg{color:var(--tier-color)}.loyalty-card__progress-value{font-weight:700;font-size:14px;color:var(--text-primary)}.loyalty-card__progress-bar{height:10px;background:var(--bg-tertiary);border-radius:5px;overflow:hidden;margin-bottom:10px}.loyalty-card__progress-fill{height:100%;border-radius:5px;transition:width .5s ease-out;position:relative}.loyalty-card__progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shine 2s infinite}@keyframes shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.loyalty-card__progress-hint{font-size:13px;color:var(--text-tertiary);display:flex;align-items:center;gap:4px}.loyalty-card__progress-hint strong{color:var(--text-primary)}.loyalty-card__progress-hint svg{color:gold}.loyalty-card__max-level{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;background:linear-gradient(135deg,gold,orange);border-radius:10px;color:#1a1a1a;font-weight:700;font-size:15px;margin-bottom:16px}.loyalty-card__warning{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:10px;margin-bottom:16px}.loyalty-card__warning svg{color:var(--color-error);flex-shrink:0;margin-top:2px}.loyalty-card__warning-text{flex:1}.loyalty-card__warning-text strong{display:block;color:var(--color-error);font-size:14px;margin-bottom:4px}.loyalty-card__warning-text p{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.4}.loyalty-card__stats{display:flex;justify-content:center;padding-top:16px;border-top:1px solid var(--border-color)}.loyalty-card__stat{text-align:center}.loyalty-card__stat-value{display:block;font-size:28px;font-weight:700;color:var(--tier-color);line-height:1}.loyalty-card__stat-label{display:block;font-size:12px;color:var(--text-tertiary);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}@media(max-width:480px){.loyalty-card{padding:16px}.loyalty-card__header{flex-wrap:wrap}.loyalty-card__badge{width:48px;height:48px}.loyalty-card__emoji{font-size:24px}.loyalty-card__tier-name{font-size:20px}.loyalty-card__discount-badge{margin-top:12px;width:100%;justify-content:center}}.coupons-list__tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:1px solid var(--border-color, #e0e0e0)}.coupons-list__tab{padding:8px 16px;border:none;background:transparent;color:var(--text-secondary, #666);font-size:14px;font-weight:500;border-radius:6px 6px 0 0;cursor:pointer;transition:all var(--transition-fast)}.coupons-list__tab:hover{background:var(--bg-hover, rgba(0, 0, 0, .05));color:var(--text-primary, #333)}.coupons-list__tab.active{background:var(--primary-color, #8B5CF6);color:#fff;font-weight:600}.coupons-list{display:flex;flex-direction:column;gap:16px}.coupons-list--loading,.coupons-list--error,.coupons-list--empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;text-align:center;color:var(--text-secondary, #666);gap:12px}.coupons-list__spinner{width:32px;height:32px;border:3px solid var(--border-color, #e0e0e0);border-top-color:var(--primary-color, #8B5CF6);border-radius:50%;animation:spin 1s linear infinite}.coupons-list__error-icon,.coupons-list__empty-icon{font-size:48px}.coupons-list__empty-hint{font-size:14px;color:var(--text-tertiary, #999);margin:0}.coupons-list__section{display:flex;flex-direction:column;gap:12px}.coupons-list__section--used{opacity:.6}.coupons-list__title{font-size:16px;font-weight:600;color:var(--text-primary, #333);margin:0}.coupons-list__items{display:flex;flex-direction:column;gap:8px}.coupons-list--compact .coupons-list__items{gap:6px}.coupon-card{display:flex;align-items:center;gap:12px;padding:16px;background:var(--card-bg, #fff);border:2px solid var(--border-color, #e0e0e0);border-radius:12px;cursor:pointer;transition:all .2s ease;position:relative}.coupon-card:hover:not(.coupon-card--disabled){border-color:var(--primary-color, #8B5CF6);box-shadow:0 4px 12px #8b5cf626}.coupon-card--selected{border-color:var(--primary-color, #8B5CF6);background:#8b5cf60d}.coupon-card--disabled{cursor:default;opacity:.5}.coupon-card--compact{padding:12px;gap:10px}.coupon-card__icon{font-size:32px;flex-shrink:0}.coupon-card--compact .coupon-card__icon{font-size:24px}.coupon-card__content{flex:1;min-width:0}.coupon-card__name{font-size:16px;font-weight:600;color:var(--text-primary, #333);margin-bottom:4px}.coupon-card--compact .coupon-card__name{font-size:14px}.coupon-card__value{font-size:18px;font-weight:700;color:var(--primary-color, #8B5CF6)}.coupon-card--compact .coupon-card__value{font-size:15px}.coupon-card__reason{font-size:13px;color:var(--text-secondary, #666);margin-top:4px}.coupon-card__expires{font-size:12px;color:var(--text-tertiary, #999);margin-top:6px}.coupon-card__expires--soon{color:var(--warning-color, #f59e0b);font-weight:500}.coupon-card__used{font-size:12px;color:var(--success-color, #10b981);margin-top:6px}.coupon-card__check{width:28px;height:28px;border-radius:50%;background:var(--primary-color, #8B5CF6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.coupon-card__action{font-size:13px;color:var(--primary-color, #8B5CF6);font-weight:500;padding:6px 12px;border:1px solid var(--primary-color, #8B5CF6);border-radius:6px;flex-shrink:0;transition:all .2s ease}.coupon-card:hover .coupon-card__action{background:var(--primary-color, #8B5CF6);color:#fff}.coupon-card.coupon--gift{border-color:#10b981}.coupon-card.coupon--gift .coupon-card__value{color:#10b981}.coupon-card.coupon--gift:hover:not(.coupon-card--disabled){border-color:#059669;box-shadow:0 4px 12px #10b98126}.coupon-card.coupon--gift.coupon-card--selected{border-color:#10b981;background:#10b9810d}.coupon-card.coupon--birthday{border-color:#f59e0b;background:linear-gradient(135deg,#f59e0b0d,#fff)}.coupon-card.coupon--birthday .coupon-card__value{color:#f59e0b}.coupon-card.coupon--birthday:hover:not(.coupon-card--disabled){border-color:#d97706;box-shadow:0 4px 12px #f59e0b33}.coupon-card.coupon--loyalty{border-color:#8b5cf6;background:linear-gradient(135deg,#8b5cf60d,#fff)}.coupon-card.coupon--discount{border-color:#3b82f6}.coupon-card.coupon--discount .coupon-card__value{color:#3b82f6}@media(max-width:480px){.coupon-card{padding:12px;gap:10px}.coupon-card__icon{font-size:28px}.coupon-card__name{font-size:14px}.coupon-card__value{font-size:16px}.coupon-card__action{padding:4px 8px;font-size:12px}}.locked-coupon{position:relative;border-radius:10px;padding:12px;background:linear-gradient(135deg,#f5f5f5,#e0e0e0);border:2px dashed #bbb;overflow:hidden;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center}.locked-coupon__blur-overlay{position:absolute;inset:0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffb3;z-index:1}.locked-coupon__lock-icon{position:absolute;top:8px;right:8px;color:#666;z-index:3;opacity:.8}.locked-coupon__lock-icon svg{width:24px;height:24px}.locked-coupon__content{position:relative;z-index:2;text-align:center;opacity:.4;pointer-events:none}.locked-coupon__icon{color:#888;margin-bottom:6px}.locked-coupon__icon svg{width:20px;height:20px}.locked-coupon__title{font-size:14px;font-weight:600;color:#444;margin-bottom:3px}.locked-coupon__value{font-size:20px;font-weight:700;color:#555;margin-bottom:6px}.locked-coupon__description{font-size:12px;color:#666;line-height:1.3}.locked-coupon__auth-buttons{position:relative;z-index:3;display:flex;flex-direction:column;gap:6px;width:100%;max-width:100%;margin-top:10px}.locked-coupon__auth-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border-radius:6px;border:none;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.locked-coupon__auth-btn--telegram{background:#08c;color:#fff}.locked-coupon__auth-btn--telegram:hover{background:#069;transform:translateY(-1px)}.locked-coupon__auth-btn--vk{background:#07f;color:#fff}.locked-coupon__auth-btn--vk:hover{background:#05c;transform:translateY(-1px)}.locked-coupon__auth-icon{font-size:14px}.locked-coupon__hint{position:relative;z-index:3;font-size:11px;color:#888;margin-top:8px;text-align:center}.locked-coupon--welcome{background:linear-gradient(135deg,#e3f2fd,#bbdefb)}.locked-coupon--birthday{background:linear-gradient(135deg,#fce4ec,#f8bbd0)}.locked-coupon--loyalty{background:linear-gradient(135deg,#fff3e0,#ffe0b2)}.registration-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.registration-modal{background:#fff;border-radius:16px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.registration-modal__close{position:absolute;top:16px;right:16px;background:transparent;border:none;color:#666;cursor:pointer;padding:4px;border-radius:50%;transition:all .2s;z-index:10}.registration-modal__close:hover{background:#f5f5f5;color:#333}.registration-modal__header{padding:32px 24px 24px;text-align:center;border-bottom:1px solid #eee}.registration-modal__icon{color:#4caf50;margin-bottom:16px}.registration-modal__title{font-size:24px;font-weight:700;color:#222;margin-bottom:8px}.registration-modal__booking-id{font-size:14px;color:#666}.registration-modal__booking-id strong{color:#333;font-weight:600}.registration-modal__content{padding:24px}.registration-modal__benefits-title{font-size:18px;font-weight:600;color:#333;margin-bottom:16px}.registration-modal__benefits-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}.registration-modal__benefit{display:flex;gap:12px;align-items:flex-start}.registration-modal__benefit-icon{flex-shrink:0;width:40px;height:40px;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center}.registration-modal__benefit-content{flex:1}.registration-modal__benefit-title{font-size:15px;font-weight:600;color:#333;margin-bottom:4px}.registration-modal__benefit-description{font-size:13px;color:#666;line-height:1.4}.registration-modal__actions{padding:24px;border-top:1px solid #eee;display:flex;flex-direction:column;gap:12px}.registration-modal__auth-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border-radius:10px;border:none;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.registration-modal__auth-btn--telegram{background:#08c;color:#fff}.registration-modal__auth-btn--telegram:hover{background:#069;transform:translateY(-2px);box-shadow:0 4px 12px #0088cc4d}.registration-modal__auth-btn--vk{background:#07f;color:#fff}.registration-modal__auth-btn--vk:hover{background:#05c;transform:translateY(-2px);box-shadow:0 4px 12px #0077ff4d}.registration-modal__auth-icon{font-size:20px}.registration-modal__skip{background:transparent;border:none;color:#888;font-size:14px;padding:10px;cursor:pointer;transition:color .2s}.registration-modal__skip:hover{color:#555;text-decoration:underline}.home-page{min-height:100vh;display:flex;flex-direction:column;background-color:var(--color-bg-primary)}.auth-banner{background:linear-gradient(135deg,#ffc10726,#ff980026,#ff57221a);border-bottom:1px solid rgba(255,193,7,.3);padding:var(--spacing-sm) var(--spacing-md)}.auth-banner__content{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;justify-content:center}.auth-banner__icons{display:flex;gap:var(--spacing-xs);flex-shrink:0}.auth-banner__icon{animation:pulse 2s ease-in-out infinite}.auth-banner__icon--gift{color:#ff9800;animation-delay:0s}.auth-banner__icon--bell{color:#ffc107;animation-delay:.5s}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.auth-banner__text{display:flex;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;justify-content:center;text-align:center}.auth-banner__message{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.auth-banner__link{display:inline-flex;align-items:center;gap:4px;color:var(--color-accent);font-weight:600;font-size:var(--font-size-sm);text-decoration:none;padding:4px 12px;border-radius:var(--radius-full);background:rgba(var(--color-accent-rgb, 124, 58, 237),.1);transition:all .2s ease}.auth-banner__link:hover{background:var(--color-accent);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--color-accent-rgb, 124, 58, 237),.3)}.auth-banner__link svg{flex-shrink:0}@media(max-width:640px){.auth-banner{padding:var(--spacing-xs) var(--spacing-sm)}.auth-banner__content,.auth-banner__text{flex-direction:column;gap:var(--spacing-xs)}.auth-banner__message{font-size:var(--font-size-xs);line-height:1.4}}.home-page__content{flex:1;padding:var(--spacing-md)}.home-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md);max-width:1200px;margin:0 auto}.home-page__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--color-text-secondary);text-align:center}.home-page__spinner{animation:spin 1s linear infinite;color:var(--color-accent);margin-bottom:var(--spacing-md)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.home-page__error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);text-align:center}.home-page__error p{color:var(--color-text-secondary);font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}.home-page__error-hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.home-page__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);color:var(--color-text-secondary);text-align:center}.home-page__empty p{font-size:var(--font-size-xl)}.home-page__footer{padding:var(--spacing-md);text-align:center;background:var(--color-accent-gradient);color:var(--color-text-on-accent);font-size:var(--font-size-sm)}@media(max-width:640px){.home-page__grid{grid-template-columns:1fr}.home-page__content{padding:var(--spacing-sm)}}@media(min-width:768px){.home-page__grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.home-page__grid{grid-template-columns:repeat(3,1fr)}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);position:relative;overflow:hidden}.login-page__bg{position:absolute;inset:0;z-index:0}.login-page__bg-gradient{position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(233,30,99,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(156,39,176,.15) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(63,81,181,.1) 0%,transparent 70%)}.login-page__bg-pattern{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:50px 50px;animation:patternMove 20s linear infinite}@keyframes patternMove{0%{transform:translate(0)}to{transform:translate(50px,50px)}}.login-page__back{position:absolute;top:var(--spacing-lg);left:var(--spacing-lg);z-index:10;width:48px;height:48px;border-radius:var(--border-radius-full);background:var(--color-bg-card);border:1px solid rgba(255,255,255,.1);color:var(--color-text-primary);display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal)}.login-page__back:hover{background:var(--color-bg-elevated);border-color:var(--color-accent);transform:translate(-4px)}.login-card{position:relative;z-index:1;width:100%;max-width:420px;padding:var(--spacing-2xl);background:var(--color-bg-card);border-radius:var(--border-radius-xl);border:1px solid rgba(255,255,255,.08);box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff0d;animation:slideInUp var(--transition-slow) ease}.login-card__logo{width:80px;height:80px;margin:0 auto var(--spacing-lg);background:var(--color-accent-gradient);border-radius:var(--border-radius-lg);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 10px 40px #e91e634d}.login-card__title{font-family:var(--font-family-display);font-size:var(--font-size-3xl);text-align:center;margin-bottom:var(--spacing-sm);letter-spacing:1px;background:linear-gradient(135deg,var(--color-text-primary),var(--color-accent-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-card__subtitle{text-align:center;color:var(--color-text-secondary);margin-bottom:var(--spacing-xl)}.login-card__error{padding:var(--spacing-md);margin-bottom:var(--spacing-lg);background:var(--color-error-bg);border:1px solid var(--color-error);border-radius:var(--border-radius-md);color:var(--color-error);text-align:center;font-size:var(--font-size-sm);animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.login-card__buttons{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.login-button{position:relative;display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:all var(--transition-normal);min-height:56px}.login-button--telegram{background:linear-gradient(135deg,#08c,#00a1e4);border:none;color:#fff}.login-button--telegram:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0088cc4d}.login-button__widget{flex:1;display:flex;align-items:center;justify-content:center}.login-button__widget iframe{margin:0!important}.login-button__placeholder{color:#ffffffb3;font-size:var(--font-size-sm)}.login-button--vk{background:linear-gradient(135deg,#07f,#06c);border:none;color:#fff;cursor:pointer}.login-button--vk:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #0077ff4d}.login-button--vk:disabled{opacity:.7;cursor:not-allowed}.login-button__icon{width:40px;height:40px;background:#fff3;border-radius:var(--border-radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.login-button__text{flex:1;text-align:center}.login-card__info{text-align:center;font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:var(--line-height-relaxed);margin-top:var(--spacing-lg)}.login-loading{display:flex;align-items:center;justify-content:center;min-height:100vh}.login-loading__spinner{width:48px;height:48px;border:3px solid var(--color-bg-elevated);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}@media(max-width:480px){.login-page{padding:var(--spacing-md);align-items:flex-start;padding-top:80px}.login-card{padding:var(--spacing-xl)}.login-card__title{font-size:var(--font-size-2xl)}.login-card__logo{width:64px;height:64px}.login-card__logo svg{width:32px;height:32px}}.profile-page{min-height:100vh;background:var(--color-bg-primary);padding-bottom:var(--spacing-2xl)}.profile-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-secondary);border-bottom:1px solid rgba(255,255,255,.05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.profile-header__back,.profile-header__logout{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-full);transition:all var(--transition-normal)}.profile-header__back:hover{background:var(--color-bg-elevated);transform:translate(-4px)}.profile-header__logout{color:var(--color-text-secondary)}.profile-header__logout:hover{background:var(--color-error-bg);color:var(--color-error)}.profile-header__title{font-family:var(--font-family-display);font-size:var(--font-size-xl);letter-spacing:1px}.profile-card{margin:var(--spacing-lg);padding:var(--spacing-xl);background:var(--color-bg-card);border-radius:var(--border-radius-xl);border:1px solid rgba(255,255,255,.05);animation:slideInUp var(--transition-slow) ease}.profile-card__avatar{position:relative;width:96px;height:96px;margin:0 auto var(--spacing-lg);background:var(--color-bg-elevated);border-radius:var(--border-radius-full);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);overflow:hidden;border:3px solid var(--color-bg-secondary)}.profile-card__avatar img{width:100%;height:100%;object-fit:cover}.profile-card__loyalty-badge{position:absolute;bottom:0;right:0;width:28px;height:28px;border-radius:var(--border-radius-full);display:flex;align-items:center;justify-content:center;color:#1a1a1a;border:2px solid var(--color-bg-card)}.profile-card__name-row{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.profile-card__name{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);text-align:center}.profile-card__edit-name{display:flex;gap:var(--spacing-sm)}.profile-card__edit-name input{width:120px;padding:var(--spacing-sm);background:var(--color-bg-elevated);border:1px solid rgba(255,255,255,.1);border-radius:var(--border-radius-sm);text-align:center}.profile-card__edit-btn,.profile-card__cancel-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-full);transition:all var(--transition-fast)}.profile-card__edit-btn{color:var(--color-text-secondary)}.profile-card__edit-btn:hover{background:var(--color-bg-elevated);color:var(--color-accent)}.profile-card__cancel-btn{color:var(--color-text-secondary)}.profile-card__cancel-btn:hover{background:var(--color-error-bg);color:var(--color-error)}.profile-card__edit-spinner{width:18px;height:18px;border:2px solid var(--color-bg-elevated);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}.profile-card__loyalty-wrapper{display:flex;justify-content:center;margin:0 auto var(--spacing-lg)}.profile-loyalty{margin:var(--spacing-lg);animation:slideInUp var(--transition-slow) ease}.profile-card__contacts{display:flex;flex-direction:column;gap:var(--spacing-sm)}.profile-card__contact{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.profile-card__contact svg{color:var(--color-text-muted);flex-shrink:0}.profile-card__contact-edit{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)}.profile-card__contact-edit svg{color:var(--color-text-muted);flex-shrink:0}.profile-card__contact-edit input{flex:1;padding:var(--spacing-sm);background:var(--color-bg-elevated);border:1px solid rgba(255,255,255,.1);border-radius:var(--border-radius-sm)}.profile-coupons{margin:var(--spacing-xl) 0}.profile-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--spacing-md);margin:var(--spacing-lg)}.profile-stats__item{padding:var(--spacing-lg);background:var(--color-bg-card);border-radius:var(--border-radius-lg);border:1px solid rgba(255,255,255,.05);text-align:center;animation:fadeIn var(--transition-normal) ease}.profile-stats__item--accent{background:linear-gradient(135deg,#e91e6326,#9c27b026);border-color:#e91e634d}.profile-stats__icon{width:40px;height:40px;margin:0 auto var(--spacing-sm);background:var(--color-bg-elevated);border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;color:var(--color-accent)}.profile-stats__item--accent .profile-stats__icon{background:#e91e6333}.profile-stats__value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-xs)}.profile-stats__label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.profile-bookings{margin:var(--spacing-lg)}.profile-bookings__header{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.profile-bookings__title{font-family:var(--font-family-display);font-size:var(--font-size-lg);letter-spacing:.5px}.profile-bookings__tabs{display:flex;gap:var(--spacing-sm);overflow-x:auto;padding-bottom:var(--spacing-xs)}.profile-bookings__tab{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-card);border:1px solid rgba(255,255,255,.1);border-radius:var(--border-radius-full);font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap;transition:all var(--transition-fast)}.profile-bookings__tab:hover{border-color:#fff3}.profile-bookings__tab.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.profile-bookings__list{display:flex;flex-direction:column;gap:var(--spacing-md)}.profile-bookings__loading,.profile-bookings__empty{padding:var(--spacing-2xl);text-align:center;color:var(--color-text-muted)}.profile-bookings__empty svg{margin-bottom:var(--spacing-md);opacity:.5}.booking-card{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-card);border-radius:var(--border-radius-lg);border:1px solid rgba(255,255,255,.05);animation:fadeIn var(--transition-normal) ease}.booking-card__image{position:relative;width:100px;height:100px;flex-shrink:0;border-radius:var(--border-radius-md);overflow:hidden;background:var(--color-bg-elevated)}.booking-card__image img{width:100%;height:100%;object-fit:cover}.booking-card__image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.booking-card__status{position:absolute;top:var(--spacing-xs);left:var(--spacing-xs);padding:2px 8px;font-size:var(--font-size-xs);border-radius:var(--border-radius-sm);background:var(--color-bg-primary)}.booking-card__status--success{background:var(--color-success-bg);color:var(--color-success)}.booking-card__status--warning{background:var(--color-warning-bg);color:var(--color-warning)}.booking-card__status--error{background:var(--color-error-bg);color:var(--color-error)}.booking-card__status--muted{background:#ffffff1a;color:var(--color-text-muted)}.booking-card__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.booking-card__header{display:flex;flex-direction:column;gap:var(--spacing-xs)}.booking-card__room{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-card__payment{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--border-radius-full);width:fit-content}.booking-card__payment-icon{font-size:10px;font-weight:700}.booking-card__payment--success{background:var(--color-success-bg);color:var(--color-success)}.booking-card__payment--partial{background:linear-gradient(90deg,#ffc10733,#ff980033);color:#ffb300;border:1px solid rgba(255,193,7,.3)}.booking-card__payment--warning{background:var(--color-warning-bg);color:var(--color-warning)}.booking-card__location{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.booking-card__location svg{flex-shrink:0;color:var(--color-text-muted)}.booking-card__datetime{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.booking-card__date,.booking-card__time{display:flex;align-items:center;gap:var(--spacing-xs)}.booking-card__date svg,.booking-card__time svg{color:var(--color-text-muted)}.booking-card__footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:var(--spacing-xs)}.booking-card__guests{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-muted)}.booking-card__price{font-weight:var(--font-weight-semibold);color:var(--color-accent)}.booking-card__cancel-btn{display:flex;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:var(--border-radius-md);color:var(--color-error);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);width:100%;justify-content:center}.booking-card__cancel-btn:hover{background:#f4433633;border-color:var(--color-error)}.booking-card__cancel-btn:active{transform:scale(.98)}.profile-loading{display:flex;align-items:center;justify-content:center;min-height:100vh}.profile-loading__spinner{width:48px;height:48px;border:3px solid var(--color-bg-elevated);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}@media(max-width:480px){.profile-card{margin:var(--spacing-md);padding:var(--spacing-lg)}.profile-stats{margin:var(--spacing-md);grid-template-columns:repeat(2,1fr)}.profile-bookings{margin:var(--spacing-md)}.booking-card__image{width:80px;height:80px}.profile-card__edit-name{flex-direction:column}.profile-card__edit-name input{width:100%}.booking-card__payment{font-size:10px;padding:2px 8px}}.profile-card__birth-warning{display:flex;align-items:flex-start;gap:8px;padding:12px;background:linear-gradient(135deg,#fff3e0,#ffe0b2);border-radius:8px;margin-top:12px;font-size:13px;color:#e65100;line-height:1.5}.profile-card__birth-warning svg{flex-shrink:0;margin-top:2px}.vk-callback{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary)}.vk-callback__content{text-align:center;padding:var(--spacing-xl)}.vk-callback__spinner{width:64px;height:64px;margin:0 auto var(--spacing-xl);border:4px solid var(--color-bg-elevated);border-top-color:#07f;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.vk-callback__icon{width:64px;height:64px;margin:0 auto var(--spacing-xl);display:flex;align-items:center;justify-content:center}.vk-callback__icon--error{color:var(--color-error)}.vk-callback__title{font-size:var(--font-size-xl);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.vk-callback__subtitle{color:var(--color-text-secondary);font-size:var(--font-size-sm)}:root{--color-bg-primary: #0f0f0f;--color-bg-secondary: #1a1a1a;--color-bg-card: #242424;--color-bg-elevated: #2d2d2d;--color-accent: #e91e63;--color-accent-light: #ff4081;--color-accent-dark: #c2185b;--color-accent-gradient: linear-gradient(135deg, #e91e63 0%, #9c27b0 100%);--color-text-primary: #ffffff;--color-text-secondary: rgba(255, 255, 255, .7);--color-text-muted: rgba(255, 255, 255, .5);--color-text-on-accent: #ffffff;--color-success: #4caf50;--color-success-bg: rgba(76, 175, 80, .15);--color-warning: #ff9800;--color-warning-bg: rgba(255, 152, 0, .15);--color-error: #f44336;--color-error-bg: rgba(244, 67, 54, .15);--color-available: #4caf50;--color-busy: #f44336;--color-partial: #ff9800;--font-family-primary: "Montserrat", "Segoe UI", system-ui, -apple-system, sans-serif;--font-family-display: "Bebas Neue", "Impact", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--border-radius-sm: 6px;--border-radius-md: 12px;--border-radius-lg: 16px;--border-radius-xl: 24px;--border-radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(233, 30, 99, .3);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--header-height: 60px;--timeline-height: 80px;--card-min-width: 280px;--card-max-width: 350px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family-primary);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-light)}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}img{max-width:100%;height:auto;display:block}ul,ol{list-style:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background-color:var(--color-bg-elevated);border:1px solid rgba(255,255,255,.1);border-radius:var(--border-radius-sm);padding:var(--spacing-sm) var(--spacing-md);transition:border-color var(--transition-fast)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-accent)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-bg-elevated);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease forwards}.animate-slide-up{animation:slideInUp var(--transition-slow) ease forwards}
