:root{--brand-color: var(--tg-theme-button-color, #3390ec);--accent-color: var(--tg-theme-link-color, #3390ec)}:root{color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.4;font-size:16px;background:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #000000)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #000000)}#root{min-height:100vh}button{font:inherit;cursor:pointer}.app{display:flex;flex-direction:column;min-height:100vh;padding:12px 16px 24px;gap:16px}.app__header--brand{display:flex;align-items:center;gap:12px;padding:14px;border-radius:999px;background:#7c6bc4;color:var(--tg-theme-button-text-color, #ffffff)}.app__logo{width:56px;height:56px;border-radius:50%;object-fit:cover;flex-shrink:0}.app__header-text h1{margin:0;font-size:1.25rem;color:inherit}.app__subtitle{margin:4px 0 0;font-size:.875rem;color:color-mix(in srgb,var(--tg-theme-button-text-color, #ffffff) 75%,transparent)}.state{padding:16px;border-radius:12px;background:var(--tg-theme-secondary-bg-color, #f4f4f5);color:var(--tg-theme-text-color, #000000)}.state--error{color:var(--tg-theme-destructive-text-color, #df3f40)}.category-list,.slot-list{display:flex;flex-direction:column;gap:8px}.category-btn,.slot-btn{width:100%;text-align:left;padding:12px 14px;border:none;border-radius:12px;background:var(--tg-theme-secondary-bg-color, #f4f4f5);color:var(--tg-theme-text-color, #000000)}.category-btn{padding:14px 16px;border-radius:16px;font-size:1rem}.category-btn--active,.slot-btn--active{outline:2px solid var(--accent-color, var(--tg-theme-button-color, #3390ec))}.slot-btn__meta{display:block;margin-top:4px;font-size:.8125rem;color:var(--tg-theme-hint-color, #707579)}.section-title{margin:0 0 8px;font-size:.9375rem;color:var(--tg-theme-section-header-text-color, #707579)}.book-btn{margin-top:auto;width:100%;padding:14px 16px;border:none;border-radius:999px;background:var(--brand-color, var(--tg-theme-button-color, #3390ec));color:var(--tg-theme-button-text-color, #ffffff);font-weight:600}.book-btn:disabled{opacity:.5;cursor:not-allowed}.back-btn{align-self:flex-start;padding:8px 0;border:none;background:transparent;color:var(--accent-color, var(--tg-theme-link-color, #3390ec))}.load-more-btn{width:100%;margin-top:8px;padding:12px 16px;border:none;border-radius:999px;background:var(--tg-theme-secondary-bg-color, #f4f4f5);color:var(--accent-color, var(--tg-theme-link-color, #3390ec));font-weight:600}.load-more-btn:disabled{opacity:.6;cursor:not-allowed}.app--with-nav{padding-bottom:88px}.app__banner{margin-bottom:0}.app__content{display:flex;flex:1;min-height:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.app__content::-webkit-scrollbar{display:none}.app__panel{flex:0 0 100%;width:100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.view{display:flex;flex-direction:column;gap:16px;flex:1}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--tg-theme-bg-color, #ffffff);border-top:1px solid var(--tg-theme-secondary-bg-color, #e8e8e8)}.bottom-nav__btn{padding:8px 4px;border:none;border-radius:10px;background:transparent;color:var(--tg-theme-hint-color, #707579);font-size:.75rem;line-height:1.2;display:flex;flex-direction:column;align-items:center;gap:3px}.bottom-nav__icon{line-height:1;display:flex}.bottom-nav__btn--active{color:var(--accent-color, var(--tg-theme-link-color, #3390ec));background:var(--tg-theme-secondary-bg-color, #f4f4f5);font-weight:600}.booking-list,.package-list{display:flex;flex-direction:column;gap:8px}.booking-card,.package-card{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:12px;background:var(--tg-theme-secondary-bg-color, #f4f4f5);color:var(--tg-theme-text-color, #000000)}.booking-card__main{display:flex;flex-direction:column;gap:4px}.booking-card__time,.booking-card__status,.package-card__meta{font-size:.8125rem;color:var(--tg-theme-hint-color, #707579)}.booking-card__cancel{align-self:flex-start;padding:8px 12px;border:none;border-radius:999px;background:var(--brand-color, var(--tg-theme-button-color, #3390ec));color:var(--tg-theme-button-text-color, #ffffff);font-size:.875rem}.booking-card__cancel--danger{background:var(--tg-theme-destructive-text-color, #df3f40);color:#fff}.booking-card__cancel-error{margin:0;font-size:.8125rem;color:var(--tg-theme-destructive-text-color, #df3f40)}.booking-card__actions{display:flex;flex-wrap:wrap;gap:8px}.booking-card__reschedule{padding:8px 12px;border:none;border-radius:999px;background:var(--accent-color, var(--tg-theme-button-color, #3390ec));color:var(--tg-theme-button-text-color, #ffffff);font-size:.875rem}.booking-card__reschedule:disabled{opacity:.5}.booking-card__cancel:disabled{opacity:.5}.review-form{display:flex;flex-direction:column;gap:10px;margin-top:8px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--tg-theme-hint-color, #707579) 25%,transparent)}.review-form__prompt{margin:0;font-size:.875rem}.review-form__stars{display:flex;gap:4px}.review-form__star{padding:0;border:none;background:transparent;line-height:1;font-size:20px;color:#fff}.review-form__star--active{color:#fbbf24}.review-form__star:disabled{cursor:not-allowed}.review-form__submit{align-self:center;width:auto;padding:8px 12px;border:none;border-radius:999px;background:var(--accent-color, var(--tg-theme-button-color, #3390ec));color:var(--tg-theme-button-text-color, #ffffff);font-size:.875rem;font-weight:600}.review-form__submit:disabled{opacity:.5;cursor:not-allowed}.review-form__label{display:flex;flex-direction:column;gap:6px;font-size:.8125rem;color:var(--tg-theme-hint-color, #707579)}.review-form__comment{resize:vertical;min-height:72px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--tg-theme-hint-color, #707579) 35%,transparent);border-radius:10px;font:inherit;background:var(--tg-theme-bg-color, #ffffff);color:var(--tg-theme-text-color, #000000)}.review-summary{display:flex;flex-direction:column;gap:4px;margin-top:8px;font-size:.8125rem}.review-summary__rating{font-weight:600}.review-summary__status,.review-summary__comment{color:var(--tg-theme-hint-color, #707579)}.review-summary__comment{margin:0;white-space:pre-wrap}.privacy-section__text,.privacy-section__warning{margin:0 0 12px;font-size:.875rem;color:var(--tg-theme-hint-color, #707579);line-height:1.5}.privacy-section__actions{display:flex;flex-wrap:wrap;gap:8px}.privacy-section__delete{padding:8px 12px;border:none;border-radius:999px;background:var(--tg-theme-destructive-text-color, #df3f40);color:#fff;font-size:.875rem}.privacy-section__delete:disabled{opacity:.5}.reschedule-current{margin:0;padding:12px 14px;border-radius:12px;background:var(--tg-theme-secondary-bg-color, #f4f4f5);font-size:.875rem}.package-card__badge{align-self:flex-start;padding:4px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent-color, #10b981) 15%,transparent);color:var(--accent-color, var(--tg-theme-link-color, #3390ec));font-size:.75rem;font-weight:600}.package-card__buy{align-self:center;width:auto;padding:8px 12px;border:none;border-radius:999px;background:var(--accent-color, var(--tg-theme-button-color, #3390ec));color:var(--tg-theme-button-text-color, #ffffff);font-size:.875rem;font-weight:600}.package-card__buy:disabled{opacity:.5}.slot-picker{display:flex;flex-direction:column;gap:12px}.cal{border-radius:14px;background:var(--tg-theme-secondary-bg-color, #f4f4f5);padding:10px 12px 12px}.cal__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cal__nav-btn{padding:4px 10px;border:none;background:transparent;color:var(--accent-color, var(--tg-theme-link-color, #3390ec));font-size:1.375rem;line-height:1}.cal__nav-btn:disabled{opacity:.25;cursor:default}.cal__title{font-size:.9375rem;font-weight:600;text-transform:capitalize;color:var(--tg-theme-text-color, #000000)}.cal__weekdays,.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal__weekdays{margin-bottom:2px}.cal__wd{text-align:center;font-size:.6875rem;color:var(--tg-theme-hint-color, #707579);padding:2px 0 4px}.cal__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;font-size:.875rem;background:transparent;color:var(--tg-theme-text-color, #000000);padding:0;min-width:36px;min-height:36px}.cal__day--available{font-weight:700;color:var(--accent-color, var(--tg-theme-link-color, #3390ec))}.cal__day--unavailable{color:var(--tg-theme-hint-color, #707579);cursor:default}.cal__day--past{opacity:.35}.cal__day--today{box-shadow:0 0 0 1.5px var(--accent-color, var(--tg-theme-link-color, #3390ec))}.cal__day--selected{background:var(--accent-color, var(--tg-theme-link-color, #3390ec));color:#fff!important;font-weight:700;box-shadow:none}.time-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.time-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:48px;padding:8px 6px;border:1.5px solid transparent;border-radius:12px;background:var(--tg-theme-secondary-bg-color, #f4f4f5);color:var(--tg-theme-text-color, #000000);font-size:.9375rem;font-weight:500}.time-chip--active{background:var(--accent-color, var(--tg-theme-link-color, #3390ec));color:#fff}.time-chip__meta{font-size:.6875rem;color:var(--tg-theme-hint-color, #707579);margin-top:2px}.time-chip--active .time-chip__meta{color:#ffffffbf}.consent-view{gap:12px}.consent-doc{border-radius:12px;background:var(--tg-theme-secondary-bg-color, #f4f4f5);padding:12px 14px}.consent-doc__body{margin-top:8px;max-height:40vh;overflow-y:auto;white-space:pre-wrap;font-size:.875rem;line-height:1.5;color:var(--tg-theme-text-color, #000000)}.reviews-section{display:flex;flex-direction:column;gap:8px}.reviews-scroll{display:flex;flex-direction:column;gap:10px;margin:0;padding:0}.review-card{width:100%;display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:12px;background:var(--tg-theme-secondary-bg-color, #f4f4f5);color:var(--tg-theme-text-color, #000000)}.review-card__header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.review-card__name{font-size:.875rem;font-weight:600}.review-card__stars{display:inline-flex;gap:2px;line-height:1;flex-shrink:0}.review-card__star{font-size:.875rem;color:#fff}.review-card__star--filled{color:#fbbf24}.review-card__text{margin:0;font-size:.8125rem;line-height:1.45;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}.review-card__date{margin-top:auto;font-size:.75rem;color:var(--tg-theme-hint-color, #707579)}
