:root{--block-spacing: 20px;--tg-blue: #007aff;--tg-blue-dark: #0056b3;--tg-blue-light: #5ac8fa;--purple-primary: #667eea;--purple-secondary: #764ba2;--tg-accent: #34c759;--tg-destructive: #ff3b30;--tg-bg-primary: #ffffff;--tg-bg-secondary: #f2f2f7;--tg-bg-tertiary: #f8f9fa;--tg-text-primary: #000000;--tg-text-secondary: #8e8e93;--tg-text-tertiary: #c7c7cc;--tg-separator: #c6c6c8;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 32px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--touch-target-min: 44px;--touch-target-comfortable: 48px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,var(--purple-primary) 0%,var(--purple-secondary) 100%);color:var(--tg-text-primary);line-height:1.5;font-size:var(--font-size-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:var(--spacing-sm);min-height:100vh;overscroll-behavior-y:none}#app{width:100%;max-width:100%;margin:0}.app-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-lg) var(--radius-lg) 0 0!important;border:1px solid rgba(255,255,255,.2);box-shadow:0 2px 20px #0000001a;margin-bottom:8px}.header-logo{display:flex;align-items:center;gap:var(--spacing-sm)}.logo-icon{font-size:var(--font-size-2xl);background:linear-gradient(135deg,#007aff 0%,#5ac8fa 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-text{font-size:var(--font-size-lg);font-weight:600;color:var(--tg-blue);letter-spacing:-.01em}.profile-menu-btn{position:relative;width:var(--touch-target-min);height:var(--touch-target-min);border:none;background:linear-gradient(135deg,var(--purple-primary) 0%,var(--purple-secondary) 100%);border-radius:var(--radius-md);cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #667eea4d}.profile-menu-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.profile-menu-btn:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.menu-icon{display:flex;flex-direction:column;gap:3px}.menu-icon span{width:16px;height:2px;background:white;border-radius:1px;transition:all .2s ease}.profile-menu{position:absolute;top:calc(100% + var(--spacing-sm));right:0;background:var(--tg-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:200px;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.95);transition:all .2s ease;z-index:1000;overflow:hidden}.profile-menu.open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.profile-menu-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);cursor:pointer;transition:background-color .15s ease;border-bottom:1px solid var(--tg-separator)}.profile-menu-item:last-child{border-bottom:none}.profile-menu-item:hover{background:var(--tg-bg-secondary)}.profile-menu-item:active{background:var(--tg-bg-tertiary)}.menu-item-icon{font-size:var(--font-size-lg);width:24px;text-align:center}.menu-item-text{font-size:var(--font-size-base);font-weight:500;color:var(--tg-text-primary)}.btn-primary{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:10px 14px;border-radius:var(--radius-md);color:#fff;font-weight:700;background:linear-gradient(135deg,var(--purple-primary) 0%,var(--purple-secondary) 100%);box-shadow:0 4px 12px #667eea4d;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #667eea66}.btn-primary:active{transform:translateY(0);box-shadow:var(--shadow-sm)}#subscription-block .status-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}#subscription-block .status-positive{color:#10b981;font-weight:700}#subscription-block .status-negative{color:#ef4444;font-weight:700}#subscription-block .sub-text{color:#6b7280}.stars-icon{display:inline-block;vertical-align:middle;width:14px;height:15px;margin-right:6px;color:#fff}.booking-container{background:var(--tg-bg-primary);border-radius:0 0 var(--radius-lg) var(--radius-lg);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);position:relative}@media (min-width: 768px){.booking-container,.app-header{border-radius:var(--radius-lg)}}.error-highlight{border-color:var(--tg-destructive)!important;box-shadow:0 0 0 3px #ff3b301a!important;animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.search-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.input-group{position:relative}.dropdown-container{position:relative;width:100%}.location-input{width:100%;padding:var(--spacing-lg);font-size:var(--font-size-base);font-weight:500;border:1px solid var(--tg-separator);border-radius:var(--radius-md);background:var(--tg-bg-primary);transition:all .2s ease;min-height:var(--touch-target-comfortable);max-height:var(--touch-target-comfortable);line-height:1.2}.location-input:focus{outline:none;border-color:var(--tg-blue);box-shadow:0 0 0 3px #007aff1a}.location-input::placeholder{color:var(--tg-text-secondary)}.dropdown-input{width:100%;box-sizing:border-box;padding-right:calc(var(--spacing-xl) + 24px)}.dropdown-arrow{position:absolute;right:var(--spacing-lg);top:50%;transform:translateY(-50%);color:var(--tg-text-secondary);pointer-events:none;font-size:var(--font-size-xs)}.dropdown-list{position:absolute;top:100%;left:0;right:0;background:var(--tg-bg-primary);border:1px solid var(--tg-separator);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);max-height:200px;overflow-y:auto;z-index:100;display:none;box-shadow:var(--shadow-md)}.dropdown-list.open{display:block}.dropdown-item{padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;border-bottom:1px solid var(--tg-bg-secondary);transition:background-color .15s ease}.dropdown-item:hover{background:var(--tg-bg-secondary)}.dropdown-item:last-child{border-bottom:none}.dropdown-item-name{display:block;font-weight:500;color:var(--tg-text-primary);font-size:var(--font-size-base)}.dropdown-item-providers{display:block;font-size:var(--font-size-xs);color:var(--tg-text-secondary);margin-top:2px}.dropdown-no-results{padding:var(--spacing-lg);color:var(--tg-text-secondary);font-style:italic;text-align:center;font-size:var(--font-size-sm)}.date-group{background:linear-gradient(135deg,var(--purple-primary) 0%,var(--purple-secondary) 100%);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:0 8px 32px #667eea4d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);position:relative;overflow:hidden}.date-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.date-header{display:flex;align-items:center;gap:var(--spacing-sm)}.date-title{color:#fff;font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.custom-date-input{display:flex;align-items:center;justify-content:space-between;min-height:var(--touch-target-comfortable);max-height:var(--touch-target-comfortable);padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base);font-weight:600;background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s ease;cursor:pointer}.custom-date-input:hover{border-color:#fff9;background:rgba(255,255,255,.25);transform:translateY(-1px)}.custom-date-input:active{transform:translateY(0)}.date-value{flex:1;text-align:left}.guests-group{display:flex;flex-direction:column;gap:var(--spacing-md)}.guest-counter{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);background:var(--tg-bg-tertiary);border:1px solid var(--tg-separator);border-radius:var(--radius-md);transition:all .2s ease;min-height:var(--touch-target-comfortable);max-height:64px}.guest-counter:hover{border-color:var(--tg-blue);background:var(--tg-bg-primary);box-shadow:var(--shadow-sm)}.guest-counter label{font-size:var(--font-size-base);font-weight:500;color:var(--tg-text-primary);flex:1}.counter{display:flex;align-items:center;gap:var(--spacing-lg)}.counter-btn{width:var(--touch-target-min);height:var(--touch-target-min);min-width:var(--touch-target-min);min-height:var(--touch-target-min);max-width:var(--touch-target-min);max-height:var(--touch-target-min);font-size:var(--font-size-lg);font-weight:600;border:1px solid var(--tg-separator);border-radius:50%;background:var(--tg-bg-primary);display:flex;align-items:center;justify-content:center;color:var(--tg-blue);cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.counter-btn:hover{border-color:var(--tg-blue);background:var(--tg-bg-secondary);transform:scale(1.05)}.counter-btn:active{transform:scale(.95);background:var(--tg-bg-tertiary)}.counter-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}#adults-count,#children-count{font-size:var(--font-size-lg);font-weight:600;min-width:32px;text-align:center;color:var(--tg-text-primary)}.search-button{width:100%;min-height:var(--touch-target-comfortable);max-height:56px;padding:var(--spacing-lg);border:none;border-radius:var(--radius-lg);background:var(--tg-blue);color:#fff;font-size:var(--font-size-base);font-weight:600;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-md);position:relative;overflow:hidden}.search-button:hover{background:var(--tg-blue-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.search-button:active{transform:translateY(0);box-shadow:var(--shadow-md)}.calendar-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:flex-start;padding:var(--spacing-lg);z-index:1000;visibility:hidden;opacity:0;transition:all .2s ease;overflow-y:auto}.calendar-modal.open{visibility:visible;opacity:1}.calendar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:0}.calendar-container{position:relative;z-index:1;width:100%;max-width:min(400px,calc(100vw - 32px));max-height:calc(100vh - 32px);background:var(--tg-bg-primary);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-xl);display:flex;flex-direction:column}.calendar-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);border-bottom:1px solid var(--tg-separator)}.calendar-title{font-size:var(--font-size-lg);font-weight:600;color:var(--tg-text-primary)}.calendar-nav{width:var(--touch-target-min);height:var(--touch-target-min);border:none;border-radius:50%;background:var(--tg-bg-secondary);font-size:var(--font-size-xl);color:var(--tg-text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.calendar-nav:hover{background:var(--tg-bg-tertiary);transform:scale(1.05)}.calendar-nav:active{transform:scale(.95)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);padding:var(--spacing-lg) var(--spacing-xl) 0}.calendar-weekdays>div{font-weight:600;font-size:var(--font-size-xs);color:var(--tg-text-secondary);padding:var(--spacing-sm) 0;text-transform:uppercase;text-align:center;letter-spacing:.5px}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:var(--spacing-lg) var(--spacing-xl)}.calendar-day{display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:500;min-height:var(--touch-target-min);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease;aspect-ratio:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.calendar-day:not(.other-month):hover{background:var(--tg-bg-secondary)}.calendar-day.other-month{color:var(--tg-text-tertiary)}.calendar-day.today{background:var(--tg-bg-secondary);border:2px solid var(--tg-blue)}.calendar-day.selected{background:var(--tg-blue);color:#fff}.calendar-day.in-range,.calendar-day.hover-preview{background:rgba(0,122,255,.1)}.calendar-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-xl);border-top:1px solid var(--tg-separator)}.calendar-btn{min-height:var(--touch-target-min);padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all .15s ease}.hotel-image-container{display:flex;align-self:stretch;flex:0 0 auto;overflow:hidden;border-radius:12px;background:var(--tg-bg-secondary)}.hotel-image{position:relative;height:100%}.hotel-image img{width:100%;height:100%;object-fit:cover;display:block}.hotel-image.loading img{opacity:0}.loading-spinner{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center}.hotel-image.loading .loading-spinner{display:flex}.loading-spinner:after{content:"";width:28px;height:28px;border:3px solid rgba(102,126,234,.2);border-top-color:var(--purple-primary);border-radius:50%;animation:ct-spin .8s linear infinite}@keyframes ct-spin{to{transform:rotate(360deg)}}.calendar-btn.cancel{background:var(--tg-bg-secondary);color:var(--tg-text-primary)}.calendar-btn.cancel:hover{background:var(--tg-bg-tertiary)}.calendar-btn.today,.calendar-btn.select{background:var(--tg-blue);color:#fff}.calendar-btn.today:hover,.calendar-btn.select:hover{background:var(--tg-blue-dark)}.calendar-btn.select{min-width:100px}@media (max-width: 360px){body{padding:var(--spacing-xs)}.booking-container{padding:var(--spacing-lg)}.search-form{gap:var(--spacing-md)}}@media (min-width: 480px){.guests-group{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.guest-counter{max-width:100%;min-width:0;overflow:hidden}.guest-counter label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media (min-width: 768px){body{padding:var(--spacing-xl)}.booking-container{padding:var(--spacing-3xl);border-radius:var(--radius-lg)!important}.calendar-container{max-width:500px}.search-form{gap:var(--spacing-2xl)}}@media (min-width: 1024px){#app{max-width:600px;margin:0 auto}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.search-form>*{animation:fadeInUp .4s ease-out}.search-form>*:nth-child(1){animation-delay:.1s}.search-form>*:nth-child(2){animation-delay:.15s}.search-form>*:nth-child(3){animation-delay:.2s}.search-form>*:nth-child(4){animation-delay:.25s}.search-form>*:nth-child(5){animation-delay:.3s}.search-form>*:nth-child(6){animation-delay:.35s}.location-input:focus,.counter-btn:focus,.search-button:focus,.calendar-btn:focus,.calendar-day:focus{outline:2px solid var(--tg-blue);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){:root{--tg-separator: #000000;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .3)}}.date-picker-display{display:flex;align-items:center;justify-content:center;background:var(--tg-bg-tertiary);border:2px solid var(--tg-separator);border-radius:50%;width:60px;height:60px;cursor:pointer;transition:all .2s ease;color:var(--tg-text-secondary);font-size:var(--font-size-sm);text-align:center}.date-picker-display:hover{border-color:var(--tg-blue);background:var(--tg-bg-primary);box-shadow:var(--shadow-sm)}.date-picker-display.has-date{background:var(--tg-blue);border-color:var(--tg-blue);color:#fff}.date-picker-icon{font-size:var(--font-size-base)}.guest-counter-hotel{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border:2px solid var(--tg-separator);border-radius:var(--radius-md);background:var(--tg-bg-tertiary);transition:all .2s ease}.guest-counter-hotel:hover{border-color:var(--tg-blue);background:var(--tg-bg-primary)}.guest-counter-btn{width:32px;height:32px;border:1px solid var(--tg-separator);border-radius:50%;background:var(--tg-bg-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--font-size-base);font-weight:600;color:var(--tg-blue);transition:all .2s ease}.guest-counter-btn:hover{border-color:var(--tg-blue);background:var(--tg-bg-secondary);transform:scale(1.05)}.guest-counter-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.guest-count{font-size:var(--font-size-base);font-weight:600;min-width:30px;text-align:center;color:var(--tg-text-primary)}
