*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--navy:#1e1040;--navy2:#2a1858;--cream:#f8f5f0;--white:#fff;--accent:#8b6fd4;--accent2:#7055b8;--text:#3a3a3a;--muted:#7a7a7a;--sans:"Segoe UI", system-ui, sans-serif}html{scroll-behavior:smooth}body{font-family:var(--sans);color:var(--text);background:var(--white);-webkit-font-smoothing:antialiased}.container{max-width:1100px;margin:0 auto;padding:0 2rem}.section{padding:96px 0}.section-light{background:var(--cream)}.section-dark{background:var(--navy)}.section-accent{background:var(--accent)}.section-label{letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-size:.75rem;font-weight:700;display:block}.section-label.light{color:#ffffff8c}h2{color:var(--navy);margin-bottom:1.5rem;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:600;line-height:1.15}.section-dark h2{color:var(--white)}.navbar{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f1c2ef2;justify-content:space-between;align-items:center;height:68px;padding:0 2.5rem;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{color:var(--white);letter-spacing:.04em;font-size:1.25rem;font-weight:700;text-decoration:none}.nav-links{align-items:center;gap:2rem;display:flex}.nav-link{color:#ffffffbf;letter-spacing:.03em;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .2s}.nav-link:hover{color:var(--white)}.nav-book-btn{background:var(--accent);color:var(--white);letter-spacing:.03em;border-radius:4px;padding:.5rem 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .2s}.nav-book-btn:hover{background:var(--accent2)}.nav-link--admin{color:#c4abf0!important}.user-menu{position:relative}.user-menu-btn{width:36px;height:36px;color:var(--white);cursor:pointer;background:#ffffff1f;border:1.5px solid #ffffff47;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,border-color .2s;display:flex}.user-menu-btn:hover{background:#ffffff38;border-color:#ffffff80}.user-menu-dropdown{background:var(--white);z-index:200;border:1px solid #e5e0d8;border-radius:8px;min-width:160px;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 8px 24px #00000024}.user-menu-item{width:100%;font-family:var(--sans);color:var(--navy);text-align:left;cursor:pointer;background:0 0;border:none;padding:.75rem 1.1rem;font-size:.9rem;font-weight:500;transition:background .15s;display:block}.user-menu-item:hover{background:#f5f2fd}.user-menu-item--admin{color:var(--accent)}.user-menu-item--danger{color:#c0392b;border-top:1px solid #ece8e2}.user-menu-item--danger:hover{background:#fdf0ef}.hero{text-align:center;background:linear-gradient(#0a142399 0%,#0a142373 100%),linear-gradient(135deg,#2a1858 0%,#1e1040 50%,#2d1260 100%);justify-content:center;align-items:center;min-height:100vh;padding:0 2rem;display:flex}.hero-overlay{max-width:680px}.hero-title{color:var(--white);letter-spacing:-.02em;margin-bottom:1.25rem;font-size:clamp(2.8rem,8vw,5.5rem);font-weight:700;line-height:1.05}.hero-subtitle{color:#ffffffbf;margin-bottom:2.5rem;font-size:clamp(1rem,2.5vw,1.25rem);line-height:1.6}.hero-btn{background:var(--accent);color:var(--white);letter-spacing:.03em;border-radius:4px;padding:.85rem 2.25rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .2s,transform .15s;display:inline-block}.hero-btn:hover{background:var(--accent2);transform:translateY(-1px)}.two-col{grid-template-columns:1fr 1fr;align-items:center;gap:5rem;display:grid}.about-text h2{margin-bottom:1.25rem}.about-text p{color:var(--muted);margin-bottom:1rem;font-size:1.05rem;line-height:1.75}.about-image{object-fit:cover;border-radius:8px;width:100%;height:420px;display:block}.cards{grid-template-columns:repeat(2,1fr);gap:2rem;max-width:780px;margin-top:2.5rem;display:grid}.card{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:.75rem;padding:2rem;transition:border-color .2s;display:flex}.card:hover{border-color:#5b8fa880}.card-header{justify-content:space-between;align-items:center;display:flex}.card-type{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-size:.7rem;font-weight:700}.card-duration{color:#fff6;font-size:.8rem}.card h3{color:var(--white);font-size:1.35rem;font-weight:600;line-height:1.2}.card-level{color:#ffffff73;font-size:.8rem;font-style:italic}.card-desc{color:#ffffffa6;flex:1;font-size:.95rem;line-height:1.6}.card-btn{color:var(--accent);letter-spacing:.04em;margin-top:.5rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:color .2s;display:inline-block}.card-btn:hover{color:#8ab9cc}.schedule-grid{grid-template-columns:repeat(2,1fr);gap:2rem;margin-top:2.5rem;display:grid}.schedule-card{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;gap:1.25rem;padding:2rem;display:flex}.schedule-location{color:var(--white);border-bottom:1px solid #ffffff1a;padding-bottom:1rem;font-size:1.2rem;font-weight:700}.schedule-rows{flex-direction:column;gap:0;display:flex}.schedule-row{border-bottom:1px solid #ffffff0f;grid-template-columns:1fr auto auto;align-items:center;gap:1rem;padding:.7rem 0;display:grid}.schedule-row:last-child{border-bottom:none}.schedule-day{color:#ffffffbf;font-size:.95rem}.schedule-type{letter-spacing:.1em;text-transform:uppercase;border-radius:3px;padding:.25rem .6rem;font-size:.7rem;font-weight:700}.schedule-type--yin{color:#90c8dc;background:#82b4c826}.schedule-type--yang{color:#c4abf0;background:#8b6fd433}.schedule-type--offsite{color:#f0b57a;background:#dc8c3c33}.schedule-time{color:#ffffff8c;white-space:nowrap;font-size:.9rem;font-weight:600}.locations-grid{grid-template-columns:repeat(2,1fr);gap:2rem;margin-top:2.5rem;display:grid}.location-card{background:var(--white);border:1px solid #e5e0d8;border-radius:8px;overflow:hidden}.map-embed{border:0;width:100%;height:220px;display:block}.location-info{padding:1.75rem 2rem}.location-info h3{color:var(--navy);margin-bottom:.4rem;font-size:1.3rem;font-weight:700}.venue-name{color:var(--accent2);margin-bottom:.4rem;font-weight:600}.venue-address{color:var(--muted);margin-bottom:.75rem;font-size:.9rem;line-height:1.5}.venue-days{letter-spacing:.08em;color:var(--navy);text-transform:uppercase;font-size:.8rem;font-weight:700}.teachers-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2rem;margin-top:1rem;display:grid}.teacher-card-pub{text-align:center;flex-direction:column;align-items:center;gap:1rem;display:flex}.teacher-photo{background:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:120px;height:120px;display:flex;overflow:hidden}.teacher-photo img{object-fit:cover;width:100%;height:100%}.teacher-initials{color:var(--white);letter-spacing:.03em;font-size:2rem;font-weight:700}.teacher-name{color:var(--navy);font-size:1.1rem;font-weight:700}.teacher-bio{color:var(--muted);font-size:.9rem;line-height:1.6}.news-section{border-top:1px solid #e8e3da}.news-list{flex-direction:column;margin-top:2.5rem;display:flex}.news-item{border-bottom:1px solid #e8e3da;grid-template-columns:140px 1fr;align-items:start;gap:1.5rem 2.5rem;padding:2rem 0;display:grid}.news-date{color:var(--muted);padding-top:.2rem;font-size:.8rem;font-weight:500}.news-title{color:var(--navy);margin-bottom:.4rem;font-size:1.1rem;font-weight:600}.news-excerpt,.news-body{color:var(--muted);white-space:pre-wrap;grid-column:2;margin-top:.35rem;font-size:.95rem;line-height:1.6}.book-container{text-align:center}.section-accent h2{color:var(--white)}.section-accent p{color:#fffc;margin-bottom:2rem;font-size:1.1rem}.book-cta-btn{background:var(--white);color:var(--accent2);letter-spacing:.03em;border-radius:4px;padding:.9rem 2.5rem;font-size:1rem;font-weight:700;text-decoration:none;transition:opacity .2s;display:inline-block}.book-cta-btn:hover{opacity:.9}.footer{background:var(--navy);padding:3rem 0}.footer-inner{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;display:flex}.footer-logo{color:var(--white);letter-spacing:.04em;font-size:1.15rem;font-weight:700}.footer-links{gap:1.75rem;display:flex}.footer-links a{color:#ffffff8c;font-size:.875rem;text-decoration:none;transition:color .2s}.footer-links a:hover{color:var(--white)}.footer-copy{color:#ffffff4d;font-size:.8rem}.nav-left{align-items:center;gap:.75rem;display:flex}.nav-mobile-right,.nav-mobile-menu{display:none}.nav-hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:.25rem;display:none}.nav-hamburger span{background:var(--white);border-radius:2px;width:22px;height:2px;display:block}.nav-mobile-signin{color:#ffffffd9;font-size:.9rem;font-weight:500;text-decoration:none}@media (width<=768px){.two-col{grid-template-columns:1fr;gap:2.5rem}.about-image{height:260px}.cards{grid-template-columns:1fr;max-width:100%}.schedule-grid,.locations-grid{grid-template-columns:1fr}.news-item{grid-template-columns:1fr;gap:.5rem}.section{padding:64px 0}.nav-links{display:none}.nav-hamburger{display:flex}.nav-mobile-right{align-items:center;display:flex}.nav-mobile-menu{z-index:101;background:#0f1c2efa;flex-direction:column;gap:.25rem;padding:2rem;display:flex;position:fixed;inset:68px 0 0;overflow-y:auto}.nav-mobile-link{color:#fffc;border-bottom:1px solid #ffffff14;padding:.85rem 0;font-size:1.2rem;font-weight:500;text-decoration:none;transition:color .2s}.nav-mobile-link:hover{color:var(--white)}.nav-mobile-book{background:var(--accent);color:var(--white);text-align:center;border-radius:6px;margin-top:1.5rem;padding:1rem;font-size:1rem;font-weight:600;text-decoration:none}}.waiver-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;background:#0a061ebf;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.waiver-card{background:var(--white);border-radius:12px;flex-direction:column;width:100%;max-width:680px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000059}.waiver-header{border-bottom:1px solid #e8e3da;flex-shrink:0;padding:2rem 2rem 1.25rem}.waiver-title{color:var(--navy);margin-bottom:.35rem;font-size:1.4rem;font-weight:700}.waiver-subtitle{color:var(--muted);font-size:.9rem}.waiver-body{flex-direction:column;flex:1;gap:1rem;padding:1.5rem 2rem;display:flex;overflow-y:auto}.waiver-para{color:var(--text);font-size:.875rem;line-height:1.7}.waiver-footer{border-top:1px solid #e8e3da;flex-direction:column;flex-shrink:0;gap:1rem;padding:1.25rem 2rem 1.75rem;display:flex}.waiver-check-label{color:var(--navy);cursor:pointer;align-items:flex-start;gap:.65rem;font-size:.9rem;font-weight:600;line-height:1.5;display:flex}.waiver-check-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin-top:.15rem}.waiver-btn{background:var(--navy);color:var(--white);font-family:var(--sans);cursor:pointer;border:none;border-radius:5px;width:100%;padding:.85rem 2rem;font-size:1rem;font-weight:600;transition:background .2s}.waiver-btn:hover:not(:disabled){background:var(--navy2)}.waiver-btn:disabled{opacity:.45;cursor:not-allowed}@media (width<=540px){.waiver-header,.waiver-body,.waiver-footer{padding-left:1.25rem;padding-right:1.25rem}}.booking-page{background:#d8d0f0;flex-direction:column;align-items:center;gap:1rem;min-height:100vh;padding:5rem 2rem 4rem;display:flex}.slot-empty{color:var(--muted);text-align:center;padding:2rem 0;font-style:italic}.slot-section{flex-direction:column;gap:1.5rem;margin-bottom:.5rem;display:flex}.slot-location-label{letter-spacing:.12em;text-transform:uppercase;color:var(--accent2);margin-bottom:.5rem;font-size:.75rem;font-weight:700}.slot-row{cursor:pointer;text-align:left;background:#f5f2fd;border:1px solid #d8d0f0;border-radius:6px;justify-content:space-between;align-items:center;gap:.75rem;width:100%;margin-bottom:.4rem;padding:.85rem 1rem;transition:border-color .15s,background .15s;display:flex}.slot-main{flex-direction:column;gap:.3rem;min-width:0;display:flex}.slot-meta{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.slot-status{flex-shrink:0}.slot-row:hover:not(:disabled){border-color:var(--accent);background:#f2eef9}.slot-row--selected{border-color:var(--accent);background:#ede8f8}.slot-row--booked{opacity:.6;cursor:not-allowed;background:#f0eef5}.slot-day{color:var(--navy);font-size:.95rem;font-weight:500}.slot-time{color:var(--muted);white-space:nowrap;font-size:.875rem;font-weight:600}.slot-teacher{color:var(--accent2);font-size:.8rem;font-weight:500}.slot-check{color:var(--accent);font-size:.9rem;font-weight:700}.slot-booked-badge{letter-spacing:.08em;text-transform:uppercase;color:#27a96c;white-space:nowrap;background:#27a96c1f;border-radius:3px;padding:.2rem .5rem;font-size:.7rem;font-weight:700}.slot-desc{color:var(--muted);text-align:left;padding-top:.1rem;font-size:.8rem;font-style:italic}.booking-divider{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-top:1px solid #e5e0d8;margin-top:.5rem;padding:1rem 0 .25rem;font-size:.75rem;font-weight:700}.booking-card{background:var(--white);border:1px solid #e5e0d8;border-radius:10px;width:100%;max-width:640px;padding:3rem}.booking-back{color:var(--navy);cursor:pointer;text-align:left;letter-spacing:.02em;background:0 0;border:none;width:100%;max-width:640px;padding:.5rem 0;font-size:.95rem;font-weight:700;transition:color .2s}.booking-back:hover{color:var(--accent2)}.booking-title{color:var(--navy);letter-spacing:-.02em;margin-bottom:.5rem;font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700}.booking-subtitle{color:var(--muted);margin-bottom:2.25rem;font-size:1rem}.booking-form{flex-direction:column;gap:1.25rem;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.form-group input,.form-group select,.form-group textarea{font-family:var(--sans);color:var(--text);background:var(--white);resize:vertical;border:1px solid #ddd8d0;border-radius:5px;outline:none;padding:.65rem .85rem;font-size:.95rem;transition:border-color .2s}.form-group input::placeholder,.form-group textarea::placeholder{color:#bbb5ac}.booking-submit{background:var(--navy);color:var(--white);font-family:var(--sans);letter-spacing:.03em;cursor:pointer;border:none;border-radius:5px;margin-top:.5rem;padding:.9rem 2rem;font-size:1rem;font-weight:600;transition:background .2s,transform .15s}.booking-submit:hover:not(:disabled){background:var(--navy2);transform:translateY(-1px)}.booking-submit:disabled{opacity:.6;cursor:not-allowed}.booking-success{text-align:center;padding:3.5rem 3rem}.success-icon{background:var(--accent);width:56px;height:56px;color:var(--white);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.5rem;font-size:1.5rem;display:flex}@media (width<=540px){.booking-page{padding:5rem 1rem 3rem}.booking-card{padding:1.5rem 1.25rem}.form-row{grid-template-columns:1fr}}.auth-page{background:#d8d0f0;flex-direction:column;align-items:center;gap:1rem;min-height:100vh;padding:5rem 2rem 4rem;display:flex}.auth-card{background:var(--white);border:1px solid #e5e0d8;border-radius:10px;width:100%;max-width:480px;padding:3rem}.auth-card--wide{max-width:680px}.auth-back{color:var(--navy);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;max-width:480px;padding:.5rem 0;font-size:.95rem;font-weight:700;transition:color .2s}.auth-back:hover{color:var(--accent2)}.auth-card--wide~.auth-back,.auth-card--wide .auth-back{max-width:680px}.auth-icon{background:var(--accent);width:56px;height:56px;color:var(--white);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.5rem;font-size:1.4rem;display:flex}.auth-title{color:var(--navy);letter-spacing:-.02em;margin-bottom:.5rem;font-size:clamp(1.6rem,4vw,2.2rem);font-weight:700}.auth-subtitle{color:var(--muted);margin-bottom:2rem;font-size:1rem;line-height:1.6}.auth-form{flex-direction:column;gap:1.25rem;display:flex}.profile-name-row{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.form-group label{color:var(--navy);letter-spacing:.02em;font-size:.825rem;font-weight:600}.form-group input{font-family:var(--sans);color:var(--text);background:var(--white);border:1px solid #ddd8d0;border-radius:5px;outline:none;padding:.65rem .85rem;font-size:.95rem;transition:border-color .2s}.form-group input::placeholder{color:#bbb5ac}.form-group input:focus{border-color:var(--accent)}.form-group input:disabled{color:var(--muted);cursor:not-allowed;background:#f5f3ef}.form-success{color:#27a96c;background:#f0faf5;border:1px solid #b2e4ce;border-radius:5px;padding:.65rem .85rem;font-size:.875rem}.account-header-actions{align-items:center;gap:.5rem;display:flex}@media (width<=480px){.profile-name-row{grid-template-columns:1fr}}.auth-submit{background:var(--navy);color:var(--white);font-family:var(--sans);cursor:pointer;border:none;border-radius:5px;width:100%;padding:.9rem 2rem;font-size:1rem;font-weight:600;transition:background .2s,transform .15s}.auth-submit:hover:not(:disabled){background:var(--navy2);transform:translateY(-1px)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.account-header{border-bottom:1px solid #e8e3da;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.account-menu{position:relative}.account-menu-btn{width:36px;height:36px;color:var(--navy);cursor:pointer;background:#f0edf9;border:1.5px solid #d8d0f0;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,border-color .2s;display:flex}.account-menu-btn:hover{border-color:var(--accent);background:#e8e2f5}.account-menu-dropdown{background:var(--white);z-index:50;border:1px solid #e5e0d8;border-radius:8px;min-width:150px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 24px #0000001a}.account-menu-item{width:100%;font-family:var(--sans);color:var(--navy);text-align:left;cursor:pointer;background:0 0;border:none;padding:.75rem 1.1rem;font-size:.9rem;font-weight:500;transition:background .15s;display:block}.account-menu-item:hover{background:#f5f2fd}.account-menu-item--danger{color:#c0392b;border-top:1px solid #ece8e2}.account-menu-item--danger:hover{background:#fdf0ef}.auth-logout{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ddd8d0;border-radius:5px;padding:.4rem 1rem;font-size:.875rem;font-weight:500;transition:border-color .2s,color .2s}.auth-logout:hover{border-color:var(--navy);color:var(--navy)}.no-bookings{text-align:center;color:var(--muted);flex-direction:column;gap:1.25rem;padding:2rem 0;display:flex}.bookings-list{flex-direction:column;gap:0;display:flex}.booking-row{border-bottom:1px solid #e8e3da;flex-direction:column;gap:.3rem;padding:1.25rem 0;display:flex}.booking-row-main{align-items:center;gap:1rem;display:flex}.booking-row--cancelled{opacity:.65}.booking-actions{gap:.5rem;margin-left:auto;display:flex}.booking-cancel,.booking-rebook{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ddd8d0;border-radius:4px;padding:.25rem .65rem;font-size:.8rem;font-weight:500;transition:border-color .2s,color .2s}.booking-cancel:hover:not(:disabled){color:#c0392b;border-color:#c0392b}.booking-rebook:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.booking-cancel:disabled,.booking-rebook:disabled{opacity:.5;cursor:not-allowed}.booking-class{color:var(--navy);font-size:1rem;font-weight:600}.booking-location{color:var(--muted);font-size:.875rem}.booking-row-meta{align-items:center;gap:1rem;display:flex}.booking-date,.booking-time{color:var(--muted);font-size:.8rem}.booking-teacher{color:var(--accent2);font-size:.8rem;font-weight:500}.booking-status{letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:700}.booking-notes{color:var(--muted);margin-top:.2rem;font-size:.875rem;font-style:italic}.form-error{color:#c0392b;background:#fdf0ef;border:1px solid #f5c6c2;border-radius:5px;padding:.65rem .85rem;font-size:.875rem}.admin-page{background:#fdf0e6;flex-direction:column;gap:2rem;max-width:100%;min-height:100vh;padding:6rem 2rem 4rem;display:flex}.admin-page>*{width:100%;max-width:860px;margin-left:auto;margin-right:auto}.admin-header{border-bottom:1px solid #e5e0d8;justify-content:space-between;align-items:flex-start;padding-bottom:1.5rem;display:flex}.admin-title{color:var(--navy);margin-bottom:.25rem;font-size:2rem;font-weight:700}.admin-sub{color:var(--muted);font-size:.95rem}.admin-back{color:var(--navy);cursor:pointer;background:0 0;border:none;font-size:.9rem;font-weight:700;transition:color .2s}.admin-back:hover{color:var(--accent2)}.admin-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:2px solid #bfb9af;gap:.25rem;padding-bottom:0;display:flex;overflow-x:auto}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{font-family:var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.6rem 1.25rem;font-size:.9rem;font-weight:600;transition:color .15s,border-color .15s}.admin-tab:hover{color:var(--navy)}.admin-tab--active{color:var(--navy);border-bottom-color:var(--navy)}.admin-location-block{margin-bottom:1.5rem}.admin-location-title{color:var(--accent2);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.75rem;font-size:.8rem;font-weight:700}.admin-table{border:1px solid #e5e0d8;border-radius:8px;overflow:hidden}.admin-table-head{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#f2ede6;align-items:center;gap:1rem;padding:.6rem 1.25rem;font-size:.75rem;font-weight:700;display:grid}.admin-table-head--schedules{grid-template-columns:auto auto auto 1fr auto auto 1.5fr 1.3fr}.admin-table-head--teachers{grid-template-columns:auto 2fr minmax(0,1.5fr)}.admin-table-head--posts{grid-template-columns:auto 2fr 1fr}.admin-table-head--customers{grid-template-columns:auto 1.5fr minmax(0,2fr) 1fr}.admin-table-row{background:var(--white);border-top:1px solid #e5e0d8;align-items:center;gap:1rem;padding:.85rem 1.25rem;transition:background .15s;display:grid}.admin-table-row--schedules{grid-template-columns:auto auto auto 1fr auto auto 1.5fr 1.3fr}.admin-table-row--teachers{grid-template-columns:auto 2fr minmax(0,1.5fr)}.admin-table-row--posts{grid-template-columns:auto 2fr 1fr}.admin-table-row--customers{grid-template-columns:auto 1.5fr minmax(0,2fr) 1fr}.admin-table-row:hover{background:#faf8f5}.admin-table-row--inactive{opacity:.45}.admin-cell-day{color:var(--navy);font-size:.95rem;font-weight:500}.admin-cell-time{color:var(--muted);font-size:.875rem}.admin-cell-desc{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-style:italic;overflow:hidden}.admin-form-desc{grid-column:1/-1}.slot-type{letter-spacing:.1em;text-transform:uppercase;border-radius:3px;padding:.2rem .55rem;font-size:.7rem;font-weight:700}.slot-type--yin{color:#2d7a96;background:#82b4c833}.slot-type--yang{color:#6340b0;background:#8b6fd426}.slot-type--offsite{color:#a05a10;background:#dc8c3c26}.admin-toggle{letter-spacing:.04em;text-transform:uppercase;cursor:pointer;white-space:nowrap;border:none;border-radius:20px;padding:.2rem .45rem;font-size:.65rem;font-weight:700;transition:opacity .15s}.admin-toggle--on{color:#1a7a4a;background:#d4f0e0}.admin-toggle--off{color:#7a1a1a;background:#f0d4d4}.admin-toggle:hover{opacity:.8}.admin-row-actions{align-items:center;gap:.25rem;display:flex}.admin-icon-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .3rem;font-size:1rem;line-height:1;transition:background .15s}.admin-icon-btn:hover{background:#f0ece8}.admin-icon-btn--delete:hover{background:#fdf0ef}.admin-post-status-cell{flex-direction:column;gap:.3rem;display:flex}.admin-delete{color:#ccc;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.2rem .4rem;font-size:.85rem;transition:color .15s,background .15s}.admin-delete:hover{color:#c0392b;background:#fdf0ef}.admin-add-card{background:var(--white);border:1px solid #e5e0d8;border-radius:8px;padding:1.75rem}.admin-add-form{margin-top:1rem}.admin-form-field{margin-bottom:1.25rem}.admin-form-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.25rem;display:grid}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{color:var(--navy);font-size:.8rem;font-weight:600}.form-group input,.form-group select,.form-group textarea{font-family:var(--sans);color:var(--text);resize:vertical;border:1px solid #ddd8d0;border-radius:5px;outline:none;padding:.55rem .75rem;font-size:.9rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent)}.admin-teacher-select{font-family:var(--sans);color:var(--text);background:var(--white);cursor:pointer;border:1px solid #ddd8d0;border-radius:4px;outline:none;max-width:130px;padding:.3rem .5rem;font-size:.8rem}.admin-teacher-select:focus{border-color:var(--accent)}.admin-edit-btn{color:var(--navy);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ddd8d0;border-radius:4px;padding:.25rem .65rem;font-size:.8rem;font-weight:500;transition:border-color .15s}.admin-edit-btn:hover{border-color:var(--accent)}.admin-form-actions{align-items:center;gap:.75rem;display:flex}.admin-cancel-btn{font-family:var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:1px solid #ddd8d0;border-radius:5px;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;transition:border-color .2s}.admin-cancel-btn:hover{border-color:var(--navy);color:var(--navy)}.admin-add-btn{background:var(--navy);color:var(--white);font-family:var(--sans);cursor:pointer;border:none;border-radius:5px;padding:.75rem 1.75rem;font-size:.95rem;font-weight:600;transition:background .2s}.admin-add-btn:hover:not(:disabled){background:var(--navy2)}.admin-add-btn:disabled{opacity:.6;cursor:not-allowed}.admin-post-status{font-size:.8rem;font-weight:600}.admin-post-status--published{color:#1a7a4a}.admin-post-status--draft{color:var(--muted)}.admin-invite-cell{align-items:center;display:flex}.admin-invite-ok{color:#1a7a4a;font-size:.85rem;font-weight:600}.admin-sub-note{color:var(--muted);margin-bottom:.75rem;font-size:.8rem}.admin-error{color:#c0392b;background:#fdf0ef;border:1px solid #f5c6c2;border-radius:5px;margin-bottom:.75rem;padding:.65rem .85rem;font-size:.875rem}@media (width<=640px){.admin-form-row{grid-template-columns:1fr}.admin-table-head{display:none}.admin-table-row--teachers{grid-template-columns:auto 1fr}.admin-table-row--posts{grid-template-columns:auto 1fr auto}.admin-table-row--customers{grid-template-columns:auto 1fr}.admin-table-row--schedules{grid-template-columns:auto auto auto 1fr}}.teacher-page{background:#e8f0e8;flex-direction:column;align-items:center;gap:1rem;min-height:100vh;padding:5rem 2rem 4rem;display:flex}.teacher-back{color:var(--navy);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;max-width:720px;padding:.5rem 0;font-size:.95rem;font-weight:700;transition:color .2s}.teacher-back:hover{color:var(--accent2)}.teacher-card{background:var(--white);border:1px solid #e5e0d8;border-radius:10px;width:100%;max-width:720px;padding:2.5rem}.teacher-header{border-bottom:1px solid #e8e3da;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;padding-bottom:1.5rem;display:flex}.teacher-title{color:var(--navy);margin-bottom:.25rem;font-size:1.8rem;font-weight:700}.teacher-sub{color:var(--muted);font-size:.9rem}.teacher-loading,.teacher-empty{color:var(--muted);text-align:center;padding:2rem 0;font-style:italic}.teacher-sessions{flex-direction:column;gap:.5rem;display:flex}.teacher-session{border:1px solid #e5e0d8;border-radius:8px;overflow:hidden}.teacher-checkin-link{text-align:right;color:var(--accent2);letter-spacing:.03em;padding:.4rem 1.25rem 0;font-size:.8rem;font-weight:700;text-decoration:none;display:block}.teacher-checkin-link:hover{text-decoration:underline}.teacher-session-row{cursor:pointer;text-align:left;background:#faf8f5;border:none;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:1rem 1.25rem;transition:background .15s;display:flex}.teacher-session-row:hover{background:#f5f2ef}.teacher-session-info{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.teacher-session-date{color:var(--navy);font-size:.95rem;font-weight:600}.teacher-session-loc,.teacher-session-time{color:var(--muted);font-size:.875rem}.teacher-session-chevron{color:var(--muted);flex-shrink:0;font-size:.7rem}.teacher-roster{background:var(--white);border-top:1px solid #e5e0d8;padding:1.25rem}.teacher-roster-empty{color:var(--muted);font-size:.9rem;font-style:italic}.teacher-roster-count{color:var(--accent2);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.75rem;font-size:.8rem;font-weight:700}.teacher-roster-table{flex-direction:column;display:flex}.teacher-roster-head,.teacher-roster-row{grid-template-columns:1.5fr 2fr 1fr auto;align-items:center;gap:1rem;padding:.5rem 0;font-size:.875rem;display:grid}.teacher-roster-head{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid #e8e3da;margin-bottom:.25rem;padding-bottom:.5rem;font-size:.75rem;font-weight:700}.teacher-roster-row{border-bottom:1px solid #f0ede8}.teacher-roster-row:last-child{border-bottom:none}.teacher-roster-email,.teacher-roster-phone{color:var(--muted)}.teacher-roster-status{text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.teacher-roster-status--pending{color:#e8a020}.teacher-roster-status--confirmed{color:#27a96c}.checkin-page{background:#e8f0e8;flex-direction:column;align-items:center;gap:1rem;min-height:100vh;padding:5rem 1.5rem 4rem;display:flex}.checkin-back{color:var(--navy);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;max-width:560px;padding:.5rem 0;font-size:.95rem;font-weight:700;transition:color .2s}.checkin-back:hover{color:var(--accent2)}.checkin-card{background:var(--white);border:1px solid #e5e0d8;border-radius:12px;width:100%;max-width:560px;padding:2rem}.checkin-loading,.checkin-empty{color:var(--muted);text-align:center;padding:2rem 0;font-style:italic}.checkin-header{border-bottom:1px solid #e8e3da;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.75rem;padding-bottom:1.5rem;display:flex}.checkin-session-label{text-transform:uppercase;letter-spacing:.1em;color:var(--accent2);margin-bottom:.35rem;font-size:.8rem;font-weight:700}.checkin-title{color:var(--navy);font-size:1.5rem;font-weight:700;line-height:1.2}.checkin-count{background:#f0faf5;border:1px solid #b2e4ce;border-radius:10px;flex-direction:column;flex-shrink:0;align-items:center;min-width:80px;padding:.75rem 1.25rem;display:flex}.checkin-count-num{color:#27a96c;font-size:2rem;font-weight:700;line-height:1}.checkin-count-den{color:var(--muted);font-size:1rem;font-weight:500}.checkin-count-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:.25rem;font-size:.7rem;font-weight:700}.checkin-list{flex-direction:column;gap:.5rem;display:flex}.checkin-row{background:var(--white);cursor:pointer;text-align:left;border:1.5px solid #e5e0d8;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:1rem 1.25rem;transition:border-color .15s,background .15s;display:flex}.checkin-row:hover:not(:disabled){background:#f8fdf9;border-color:#27a96c}.checkin-row--in{background:#f0faf5;border-color:#27a96c}.checkin-row:disabled{opacity:.6;cursor:not-allowed}.checkin-student-info{flex-direction:column;gap:.2rem;display:flex}.checkin-name{color:var(--navy);font-size:1rem;font-weight:600}.checkin-time{color:#27a96c;font-size:.8rem}.checkin-badge{white-space:nowrap;border-radius:20px;flex-shrink:0;padding:.35rem .85rem;font-size:.8rem;font-weight:700}.checkin-badge--out{color:var(--muted);background:#f2ede6}.checkin-badge--in{color:#fff;background:#27a96c}
