.home-page{background:var(--bg);min-height:calc(100% - var(--bottom-nav-height));padding:1.25rem}.home-page .home-header{margin-bottom:1.5rem}.home-page .home-header .center-selector{cursor:pointer;align-items:center;gap:.375rem;padding:.5rem 0;transition:opacity .2s;display:inline-flex}.home-page .home-header .center-selector:active{opacity:.6}.home-page .home-header .center-selector h1{color:#1c1c1e;letter-spacing:-.02em;font-size:1.375rem;font-weight:800}.home-page .home-header .center-selector svg{color:#1c1c1e;margin-top:.125rem}.home-page .center-select-list{flex-direction:column;gap:.75rem;padding:.5rem 0;display:flex}.home-page .center-select-list .empty-reservations{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.home-page .center-select-list .empty-reservations svg{color:#d1d1d6;margin-bottom:1.25rem}.home-page .center-select-list .empty-reservations p{color:#8e8e93;margin-bottom:2rem;font-size:1rem;font-weight:500}.home-page .center-select-list .center-select-item{text-align:left;background:#fff;border:1px solid #f2f2f7;border-radius:1rem;justify-content:space-between;align-items:center;width:100%;padding:1.25rem;transition:all .2s;display:flex}.home-page .center-select-list .center-select-item.active{background:#f0f7ff;border-color:#007aff}.home-page .center-select-list .center-select-item.active .name{color:#007aff}.home-page .center-select-list .center-select-item .name{color:#1c1c1e;font-size:1rem;font-weight:700}.home-page .center-select-list .center-select-item .check-icon{color:#007aff}.home-page .ticket-carousel-container{margin-bottom:2rem}.home-page .ticket-carousel-container .ticket-carousel{scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;gap:.75rem;margin:0 -1.25rem;padding:0 1.25rem 1.5rem;display:flex;overflow-x:auto}.home-page .ticket-carousel-container .ticket-carousel::-webkit-scrollbar{display:none}.home-page .ticket-carousel-container .ticket-carousel.is-single .premium-ticket{scroll-snap-align:none;flex:1}.home-page .ticket-carousel-container .ticket-carousel.is-single .premium-ticket:last-child{margin-right:0}.home-page .ticket-carousel-container .ticket-carousel{cursor:grab;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.home-page .ticket-carousel-container .ticket-carousel.dragging{cursor:grabbing;scroll-snap-type:none}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket{scroll-snap-align:center;color:#fff;opacity:.5;background:linear-gradient(135deg,#007aff 0%,#0056b3 100%);border-radius:1.5rem;flex-direction:column;flex:0 0 88%;gap:1rem;padding:1.5rem;transition:all .4s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;transform:scale(.95);box-shadow:0 8px 24px #007aff26}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket.active{opacity:1;transform:scale(1)}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket:last-child{margin-right:1.25rem}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket.skeleton-ticket{flex:1;justify-content:center;align-items:center;min-height:160px;margin-right:0;display:flex;transform:scale(1)}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket.skeleton-ticket .ticket-empty{flex-direction:column;justify-content:center;align-items:center;gap:.5rem;display:flex}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket.pt-ticket{background:linear-gradient(135deg,#6366f1 0%,#4338ca 100%);box-shadow:0 8px 24px #6366f133}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket:after{content:"";background:#ffffff1a;border-radius:50%;width:12rem;height:12rem;position:absolute;top:-50%;right:-20%}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket .ticket-header{justify-content:space-between;align-items:center;display:flex}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket .ticket-header .center-name{opacity:.85;font-size:.8125rem;font-weight:500}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket .ticket-header .status-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3;border-radius:.5rem;flex-shrink:0;padding:.25rem .6rem;font-size:.7rem;font-weight:700}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket .ticket-header .status-badge.expired{color:#ffffffd9;background:#00000040}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket .ticket-name{letter-spacing:-.02em;margin:0;font-size:1.25rem;font-weight:800}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket .usage-progress{margin-top:.5rem}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket .usage-progress .label-row{justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:flex}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket .usage-progress .label-row .remaining{font-size:1.125rem}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket .usage-progress .progress-bar-bg{background:#fff3;border-radius:1rem;height:.5rem;overflow:hidden}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket .usage-progress .progress-bar-bg .progress-bar-fill{background:#fff;border-radius:1rem;height:100%}.home-page .ticket-carousel-container .ticket-carousel .premium-ticket .expiry-info{opacity:.8;align-items:center;gap:.25rem;margin-top:.25rem;font-size:.8125rem;display:flex}.home-page .ticket-carousel-container .carousel-indicators{justify-content:center;gap:.5rem;margin-top:0;margin-bottom:1rem;display:flex}.home-page .ticket-carousel-container .carousel-indicators .dot{background:#d1d1d6;border-radius:50%;width:6px;height:6px;transition:all .3s}.home-page .ticket-carousel-container .carousel-indicators .dot.active{background:#007aff;border-radius:3px;width:18px}.home-page .reserved-card{background:#fff;border:1px solid #f2f2f7;border-radius:1.25rem;margin-bottom:1rem;padding:1.25rem;transition:all .3s;position:relative;box-shadow:0 4px 12px #00000005}.home-page .reserved-card.cancelled{opacity:.55;filter:grayscale(.2);background:#fafafc;border-color:#e5e5ea}.home-page .reserved-card.cancelled .class-date .date-left .date-text:before{background:#8e8e93}.home-page .reserved-card .class-date{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.home-page .reserved-card .class-date .date-left{align-items:center;gap:.625rem;display:flex}.home-page .reserved-card .class-date .date-left .date-text{color:#1c1c1e;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:700;display:flex}.home-page .reserved-card .class-date .date-left .date-text:before{content:"";background:#007aff;border-radius:2px;width:3px;height:14px}.home-page .reserved-card .class-date .date-left .status-badge{border-radius:.4rem;flex-shrink:0;padding:.25rem .5rem;font-size:.7rem;font-weight:700}.home-page .reserved-card .class-date .date-left .status-badge.confirmed,.home-page .reserved-card .class-date .date-left .status-badge.completed{color:#007aff;background:#f0f7ff}.home-page .reserved-card .class-date .date-left .status-badge.noshow{color:#ff9500;background:#fff9f0}.home-page .reserved-card .class-date .date-left .status-badge.cancelled{color:#ff3b30;background:#fff0f0}.home-page .reserved-card .class-date .more-menu-container{position:relative}.home-page .reserved-card .class-date .more-menu-container .more-btn{color:#c7c7cc;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.25rem;transition:background .2s;display:flex}.home-page .reserved-card .class-date .more-menu-container .more-btn:hover{background:#f2f2f7}.home-page .reserved-card .class-date .more-menu-container .menu-dropdown{z-index:10;background:#fff;border:1px solid #f2f2f7;border-radius:.75rem;min-width:9rem;margin-top:.25rem;padding:.25rem;position:absolute;top:100%;right:0;box-shadow:0 10px 25px -5px #00000014,0 8px 10px -6px #00000014}.home-page .reserved-card .class-date .more-menu-container .menu-dropdown button{color:#ff3b30;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:.5rem;align-items:center;gap:.5rem;width:100%;padding:.5625rem .75rem;font-size:.8125rem;font-weight:600;transition:all .15s;display:flex}.home-page .reserved-card .class-date .more-menu-container .menu-dropdown button:active{background:#fff2f2}@media (hover:hover){.home-page .reserved-card .class-date .more-menu-container .menu-dropdown button:hover{background:#fff2f2}}.home-page .reserved-card .class-info{align-items:center;gap:1rem;display:flex}.home-page .reserved-card .class-info .instructor-img{background:#f2f2f7;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:3.25rem;height:3.25rem;display:flex;overflow:hidden}.home-page .reserved-card .class-info .instructor-img .fallback-icon{justify-content:center;align-items:center;display:flex}.home-page .reserved-card .class-info .instructor-img img{object-fit:cover;width:100%;height:100%}.home-page .reserved-card .class-info .details{flex:1}.home-page .reserved-card .class-info .details .title{color:#1c1c1e;margin:0 0 .25rem;font-size:.9375rem;font-weight:700}.home-page .reserved-card .class-info .details .desc{color:#8e8e93;margin-bottom:.375rem;font-size:.8125rem;font-weight:500}.home-page .reserved-card .class-info .details .attendance-info{align-items:center;gap:.25rem;font-size:.8125rem;font-weight:600;display:flex}.home-page .reserved-card .class-info .details .attendance-info .capacity-label{color:#8e8e93}.home-page .reserved-card .class-info .details .attendance-info .divider{color:#e5e5ea}.home-page .reserved-card .class-info .details .attendance-info .booked-label{color:#3a3a3c}.home-page .reserved-section .section-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.home-page .reserved-section .section-header h3{font-size:1.125rem;font-weight:700}.home-page .reserved-section .section-header .view-all{color:#007aff;background:#e5f1ff;border-radius:2rem;padding:.375rem .75rem;font-size:.8125rem;font-weight:600}.home-page .reserved-section .date-selector{-ms-overflow-style:none;scrollbar-width:none;gap:.5rem;margin:0 -1.25rem;padding:1.5rem 1.25rem 1.25rem;display:flex;overflow-x:auto}.home-page .reserved-section .date-selector::-webkit-scrollbar{display:none}.home-page .reserved-section .date-selector{cursor:grab;-webkit-user-select:none;user-select:none}.home-page .reserved-section .date-selector.dragging{cursor:grabbing}.home-page .reserved-section .date-selector .date-item{cursor:pointer;border-radius:1rem;flex-direction:column;flex:0 0 3rem;align-items:center;gap:.375rem;padding:.75rem 0;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.home-page .reserved-section .date-selector .date-item.has-month{margin-left:.5rem}.home-page .reserved-section .date-selector .date-item.has-month .month-label{color:#1c1c1e;white-space:nowrap;font-size:.75rem;font-weight:700;position:absolute;top:-1.25rem;left:0}.home-page .reserved-section .date-selector .date-item .weekday{color:#8e8e93;font-size:.75rem;font-weight:500}.home-page .reserved-section .date-selector .date-item .day{color:#1c1c1e;font-size:1rem;font-weight:700}.home-page .reserved-section .date-selector .date-item.sun .weekday,.home-page .reserved-section .date-selector .date-item.sun .day{color:#ff3b30}.home-page .reserved-section .date-selector .date-item.sat .weekday,.home-page .reserved-section .date-selector .date-item.sat .day{color:#007aff}.home-page .reserved-section .date-selector .date-item.active{background:#007aff;box-shadow:0 8px 16px #007aff33}.home-page .reserved-section .date-selector .date-item.active .weekday,.home-page .reserved-section .date-selector .date-item.active .day{color:#fff!important}.home-page .reserved-section .date-selector .date-item:active{transform:scale(.95)}.home-page .reserved-section .empty-reserved-card{text-align:center;background:#fff;border:1px solid #f2f2f7;border-radius:1.25rem;flex-direction:column;justify-content:center;align-items:center;padding:3rem 2rem;display:flex;box-shadow:0 4px 12px #00000005}.home-page .reserved-section .empty-reserved-card .empty-icon{color:#d1d1d6;margin-bottom:1rem}.home-page .reserved-section .empty-reserved-card p{color:#8e8e93;font-size:.9375rem;font-weight:500;line-height:1.4}.home-page .reserved-section .empty-reserved-card .go-reserve-btn{color:#007aff;background:#f0f7ff;border:none;border-radius:.75rem;margin-top:1.5rem;padding:.75rem 1.5rem;font-size:.875rem;font-weight:700;transition:all .2s}.home-page .reserved-section .empty-reserved-card .go-reserve-btn:active{background:#e5f1ff;transform:scale(.95)}.home-page .all-reservations-view{padding-bottom:2rem}.home-page .all-reservations-view .current-center-info{background:#f8f9fb;border-radius:.75rem;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding:.75rem 1rem;display:flex}.home-page .all-reservations-view .current-center-info svg{color:#007aff}.home-page .all-reservations-view .current-center-info span{color:#1c1c1e;font-size:.875rem;font-weight:600}.home-page .all-reservations-view .res-list{flex-direction:column;display:flex}.home-page .all-reservations-view .empty-reservations{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.home-page .all-reservations-view .empty-reservations svg{color:#d1d1d6;margin-bottom:1.25rem}.home-page .all-reservations-view .empty-reservations p{color:#8e8e93;margin-bottom:2rem;font-size:1rem;font-weight:500}
