:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#213e3a;background:#f5f4ee;font-synthesis:none;line-height:1.5;font-size:15px}.public-information{max-width:1120px;margin:24px auto 0;text-align:center;font-size:.9rem}.public-information>.pwa-install-button{margin-bottom:16px}.public-information nav,.public-information-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px}.public-information a,.public-information-links a{text-underline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.timetable-configuration>summary{cursor:pointer;font-weight:650;font-size:1.05rem;padding:8px 0}.timetable-configuration[open]>summary{margin-bottom:20px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:#176a60}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.15;letter-spacing:-.055em;margin-bottom:24px}h2{font-size:1.3rem;letter-spacing:-.025em}h3{font-size:1.05rem}small,.muted{color:#637873}.app-shell{display:flex;min-height:100vh}.portal-shell{min-height:100dvh;display:flex;flex-direction:column}.demo-section>.demo-banner{width:100%;margin:0;border-radius:0;border-width:0 0 1px;background:#fff0c9;padding:16px 28px;align-items:flex-start}.demo-section>.demo-banner>div{flex:1;min-width:0}.demo-section>.demo-banner .button{margin-top:10px}.portal-shell .demo-classes{border:0;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px 16px}.portal-shell .demo-classes legend{font-weight:650;margin-bottom:6px}.portal-shell .demo-classes label{display:flex;flex-direction:row;align-items:center;gap:6px;flex-shrink:1}.portal-shell .demo-classes small{flex-basis:100%;color:#755a25}.portal-shell .app-shell{flex:1;min-height:0}.portal-shell .sidebar{position:relative;top:auto;height:auto;min-height:100%}.dashboard-appointments{margin-top:30px;padding-top:26px;border-top:1px solid #dce4d7}.dashboard-appointments>.card{margin-bottom:20px}.dashboard-appointments .page-heading h2{font-size:1.7rem}@media(max-width:680px){.demo-section>.demo-banner{padding:14px 16px;gap:10px}.portal-shell .demo-classes label{width:auto}.portal-shell .sidebar{min-height:0}}.sidebar{width:clamp(240px,22vw,264px);min-width:240px;flex-shrink:0;background:#174e49;color:#fff;padding:32px 20px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:30px}.brand{font-size:1.35rem;font-weight:750;letter-spacing:-.03em}.brand small{display:block;color:#b7d7cc;font-size:.75rem;font-weight:400;letter-spacing:.06em;margin-top:7px}.sidebar nav{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;min-width:0;overflow-x:hidden;direction:rtl;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#8fbdb0 #ffffff0d}.sidebar nav>*{direction:ltr}.sidebar nav::-webkit-scrollbar{width:8px}.sidebar nav::-webkit-scrollbar-track{background:#ffffff0d;border-radius:8px}.sidebar nav::-webkit-scrollbar-thumb{background:#8fbdb0;border:2px solid #174e49;border-radius:8px}.sidebar nav::-webkit-scrollbar-thumb:hover{background:#b7d7cc}@supports selector(::-webkit-scrollbar){.sidebar nav{scrollbar-width:auto;scrollbar-color:auto}}.nav-button{border:0;background:transparent;color:#d1e2db;text-align:left;border-radius:10px;padding:13px 16px;font-weight:550}.nav-button:hover,.nav-button.active{background:#ffffff18;color:#fff}.sidebar footer,.sidebar .sidebar-footer{margin-top:auto;font-size:.8rem;color:#b7d7cc}.workspace{width:100%;min-width:0;padding:10px 14px;max-width:none}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.topbar select{max-width:270px}.demo-banner{background:#fff2d5;color:#755a25;padding:11px 16px;border:1px solid #ecd6a8;border-radius:9px;font-size:.83rem;margin-bottom:28px}.hero{background:#e2ede4;border-radius:18px;padding:32px 36px;margin-bottom:26px;border:1px solid #d6e2d6;position:relative;overflow:hidden}.hero p{max-width:640px;color:#516c60}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-weight:700;font-size:.7rem;color:#5a8171;margin-bottom:10px}.page-heading{margin-bottom:24px}.calendar-page-heading{margin-bottom:-13px}@media(max-width:680px){.calendar-page-heading{margin-bottom:-17px}}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:22px}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{background:#fff;border:1px solid #e1e6dc;border-radius:14px;padding:22px}.stat-card strong{font-size:2rem;display:block;color:#174e49}.event-row{display:flex;align-items:flex-start;gap:16px;padding:17px 0;border-bottom:1px solid #edf0e8}.event-row:last-child{border-bottom:0}.event-row p{margin-bottom:5px}.date-box{background:#f1f4e9;border-radius:10px;min-width:54px;padding:9px;text-align:center;color:#476447;font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.notice{padding:13px 16px;background:#e6f2e6;border:1px solid #c8ddc5;border-radius:9px;margin-bottom:18px}.notice.error{background:#fff0e8;color:#924630;border-color:#eccdbc}.stack{display:grid;gap:16px}.book-table{width:100%;border-collapse:collapse;font-size:.88rem}.book-table th,.book-table td{text-align:left;padding:13px 10px;border-bottom:1px solid #e6ebe1}.book-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#637873}.request-card{border-left:3px solid #93b99c}.admin-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 0;border-bottom:1px solid #edf0e8}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.checkbox-group{display:flex;flex-wrap:wrap;gap:12px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:15px}.section-heading h2{margin:0}.mobile-nav{display:none}.table-wrap{overflow-x:auto}pre{white-space:pre-wrap;overflow-wrap:anywhere}code{background:#f0f4ea;padding:3px 6px;border-radius:4px}hr{border:0;border-top:1px solid #e2e8dc;margin:20px 0}.sidebar{overflow-y:auto;overflow-x:hidden}.sidebar>*{min-width:0;max-width:100%;flex-shrink:0}.sidebar-user{margin-top:auto}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none}.brand-mark{font-size:1.8rem}.sidebar-label{padding-bottom:4px;color:#9cc4b5;font-size:.65rem;letter-spacing:.16em;font-weight:700;margin-bottom:-20px}.nav-button{display:flex;align-items:center;gap:12px;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}.nav-button span{font-size:1.1rem;width:20px;text-align:center}.sidebar-note{margin-top:auto;padding:22px 10px 8px;border-top:1px solid #ffffff20;color:#c2d9ce}.sidebar-note .eyebrow{color:#a6c7b6}.sidebar-user{display:flex;align-items:center;gap:10px;padding-top:18px;border-top:1px solid #ffffff20;font-size:.85rem}.sidebar-user small{display:block;color:#adccc0}.account-badge{width:100%;background:transparent;border-right:0;border-bottom:0;border-left:0;padding-right:0;padding-bottom:0;padding-left:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.account-badge>div{min-width:0;overflow-wrap:anywhere}.account-badge .avatar{flex-shrink:0}.account-badge:hover strong{text-decoration:underline}.compact-account-badge{display:none}.account-badge:focus-visible,.compact-account-badge:focus-visible{outline:2px solid #dfad78;outline-offset:3px}.avatar{display:inline-flex;width:38px;height:38px;border-radius:50%;background:#dceadd;color:#305846;align-items:center;justify-content:center;font-weight:700}.avatar.large{width:68px;height:68px;font-size:1.5rem;margin-bottom:16px}.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:18px}.demo-banner strong,.demo-banner span{display:block}.demo-banner label{display:grid;gap:5px;flex-shrink:0;font-size:.75rem}.demo-banner select{font-size:.8rem;padding:8px}.hero{display:flex;align-items:center;gap:28px}.hero>div:first-child{flex:1}.hero-art{position:relative;flex:0 0 220px;text-align:center;color:#256456}.hero-art svg{width:100%;position:relative;z-index:1}.sun{position:absolute;width:68px;height:68px;border-radius:50%;background:#e3bb75;top:10px;right:12px}.hero-caption{font-size:.7rem;color:#648773;display:block}.stats{margin-bottom:24px}.stat-card{display:flex;align-items:center;gap:16px;text-align:left;color:#637873}.stat-card>span:last-child{margin-left:auto}.stat-card strong{line-height:1.2;font-size:1.8rem}.stat-card div span{font-size:.8rem}.stat-icon{background:#e6efde;color:#476b45;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:1.35rem}.stat-icon.amber{background:#fbefd6;color:#a27838}.stat-icon.blue{background:#e3edf0;color:#59818a}.date-tile{background:#f1f4e9;border-radius:10px;min-width:54px;padding:8px;text-align:center;display:grid;color:#476447}.date-tile strong{font-size:1.35rem;line-height:1.3}.date-tile span{text-transform:uppercase;font-size:.65rem}.event-detail{min-width:0}.event-detail h3{margin:7px 0 4px}.event-detail p{font-size:.85rem;color:#637873;overflow-wrap:anywhere}.text-button{background:none;border:0;color:#257263;font-size:.8rem;font-weight:600;padding:3px 0}.badge.meeting{background:#f9ebd5;color:#8f682b}.badge.deadline{background:#f7e6df;color:#994f39}.quick-links>.ui-card-body>button{background:none;border:0;width:100%;display:flex;align-items:center;text-align:left;gap:14px;color:#25463e;padding:18px 0;border-bottom:1px solid #edf0e8}.quick-links>.ui-card-body>button>span:first-child{background:#edf3e8;border-radius:8px;width:36px;height:36px;display:grid;place-items:center;font-size:1.2rem}.quick-links>.ui-card-body>button>span:last-child{margin-left:auto}.quick-links small{display:block;font-size:.78rem;margin-top:3px}.info-note{background:#f3f6ed;color:#64785d;padding:14px;border-radius:9px;font-size:.8rem;margin-top:18px;overflow-wrap:anywhere}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:18px}.page-heading h1{margin:0}.page-heading p{color:#637873;margin:0}.tabs{display:flex;flex-wrap:wrap;background:#e8ede1;padding:4px;border-radius:9px;gap:4px}.tabs button{border:0;background:transparent;padding:9px 15px;border-radius:6px;color:#61755e;font-weight:600;font-size:.85rem}.tabs button.active{background:#fff;color:#254b3f;box-shadow:0 2px 4px #174e4910}.group-filter{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0;font-size:.8rem}.group-filter>span{font-weight:700;margin-right:5px}.group-filter label{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;background:#fff;border-radius:7px;border:1px solid #e1e6dc}.group-filter small{width:100%}.search-field{display:flex;align-items:center;gap:10px;width:min(500px,100%)}.search-field input{width:100%}.document-card{position:relative}.document-icon{font-size:1.6rem;display:inline-block;margin-right:15px;color:#618367}.document-card h3{margin:16px 0 8px}.document-card p{color:#637873;font-size:.9rem}.document-card details{margin:16px 0}.document-card summary{color:#2f715f;cursor:pointer;font-size:.85rem}.document-content{background:#f5f7ef;padding:12px;font-size:.8rem}.books-heading{margin-top:32px}.books-heading p{font-size:.8rem;margin:4px 0}.table-container{overflow-x:auto;max-width:100%;padding:12px}.book-table small{display:block;margin-top:4px;font-size:.75rem}.booking-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid #edf0e8}.booking-row p{margin:5px 0;color:#637873;font-size:.85rem}.booking-row .actions{margin:0}.appointment-card h3{margin-bottom:8px}.appointment-card p{font-size:.9rem}.request-card{padding:18px;margin-top:16px;background:#f8faf5;border-radius:7px}.request-card h3,.request-card .field{margin-top:14px}.request-message{white-space:pre-wrap;overflow-wrap:anywhere}.checkbox-field{display:flex;align-items:center;gap:8px}.retrieval-code{display:block;margin:12px 0;overflow-wrap:anywhere}.profile-card{width:100%;max-width:none}.profile-card dl{display:grid;grid-template-columns:140px 1fr;gap:14px;font-size:.9rem;margin:25px 0}.profile-card dd{margin:0}.profile-card dt{color:#637873}.footer{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;color:#83917e;font-size:.72rem;margin-top:20px;padding-top:10px;border-top:1px solid #e1e6dc}.page-content>section.card{margin-bottom:22px}@media(max-height:800px)and (min-width:681px){.sidebar-note{display:none}}@media(max-width:1100px){.hero-art{flex-basis:160px}.stats{grid-template-columns:1fr}.demo-banner{align-items:flex-start;flex-direction:column}}@media(max-width:1000px){.sidebar{padding:24px 14px}.grid.three,.grid.two{grid-template-columns:1fr}}@media(max-width:900px){.app-shell{display:block}.sidebar{position:static;min-width:0;width:100%;height:auto;padding:18px 16px;gap:16px}.nav-button{padding:9px 12px}.sidebar footer,.sidebar .sidebar-footer,.sidebar-note,.sidebar-label,.sidebar-user{display:none}}@media(max-width:680px){.topbar{align-items:flex-start;flex-direction:column;gap:10px}.topbar select{width:100%;max-width:none}.hero{padding:24px}.hero-art{display:none}.card{padding:18px}.form-grid{grid-template-columns:1fr}.admin-row{align-items:flex-start;flex-direction:column}.demo-banner{font-size:.78rem}.demo-banner label,.demo-banner select{width:100%}.book-table{min-width:560px}.page-heading,.books-heading,.booking-row{align-items:flex-start;flex-direction:column}.profile-card dl{grid-template-columns:1fr;gap:5px}.profile-card dd{margin-bottom:10px}.table-container{padding:10px}.hero h1{font-size:1.9rem}}.hero.hero-illustrated{display:block;padding:0;background:#eaf0e8}.hero-illustrated .hero-image{display:block;width:100%;height:auto}.hero-illustrated .hero-welcome{padding:26px 32px}.hero-illustrated h1{font-size:clamp(1.6rem,2.4vw,2.2rem);margin-bottom:12px}.brand-boat{display:block;width:48px;height:44px;color:#b7d7cc}@media(max-width:680px){.hero-illustrated .hero-welcome{padding:20px}.brand-boat{width:40px;height:38px}}.school-header{width:100%;overflow:hidden;background:#087099}.school-header img{display:block;width:100%;height:clamp(75px,12.5vw,180px);object-fit:cover;object-position:center top}.demo-section>.demo-banner{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:8px 20px;font-size:.75rem}.demo-section>.demo-banner .demo-label{display:inline;font-size:.7rem;letter-spacing:.1em}.demo-section>.demo-banner .demo-profile{display:flex;flex-direction:row;align-items:center;gap:8px;width:auto}.demo-section>.demo-banner select{width:auto;max-width:260px;padding:5px 8px;font-size:.75rem}.demo-section>.demo-banner .button{margin:0;padding:6px 10px;font-size:.73rem}.demo-section>.demo-banner .demo-classes{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px;margin:0;padding:0}.demo-section>.demo-banner .demo-classes label{display:flex;align-items:center;gap:4px;width:auto;font-size:.72rem}.hero.hero-welcome-only{display:flex;align-items:stretch;padding:26px 32px}.hero-welcome-only .hero-welcome{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:12px}.hero-welcome-only .ui-button{margin-top:auto}.hero-welcome-only h2{font-size:clamp(1.6rem,2.4vw,2.2rem);line-height:1.15;letter-spacing:-.055em;margin-bottom:12px}@media(max-width:680px){.demo-section>.demo-banner{padding:8px 12px;gap:6px 10px}.demo-section>.demo-banner .demo-classes{flex-basis:100%}.demo-section>.demo-banner .demo-profile{font-size:0;gap:0}.demo-section>.demo-banner select{max-width:215px;font-size:.72rem}.hero.hero-welcome-only{padding:20px}}.school-header{position:relative}.school-header.is-expanded img{height:auto;object-fit:contain}.header-image-toggle{position:absolute;right:16px;bottom:12px;border:1px solid #ffffff90;border-radius:7px;padding:7px 11px;background:#174e49e6;color:#fff;font-size:.75rem}@media(max-width:600px){.header-image-toggle{position:relative;display:block;right:auto;bottom:auto;max-width:none;margin:5px 8px 5px auto;padding:4px 8px}}.main-area{display:flex;flex-direction:column;min-width:0;flex:1}.main-scroll{display:flex;flex-direction:column;flex:1;min-height:0}.main-scroll>.workspace{display:flex;flex-direction:column;flex:1 0 auto}.workspace>.page-content{flex:1 0 auto}@media(max-width:900px){.portal-shell .app-shell{display:flex;flex-direction:column}.portal-shell .sidebar{flex-shrink:0}}@media(min-width:901px){.main-area{height:100dvh;overflow:hidden}.main-area .workspace{height:auto;overflow:visible}.main-scroll{flex:1;min-height:0;overflow-y:auto}}.class-assignment{border:1px solid #dce4d7;border-radius:10px;padding:16px;display:flex;flex-wrap:wrap;gap:10px 16px}.class-assignment legend{font-weight:650;padding:0 5px}.class-assignment p{flex-basis:100%;margin-bottom:4px;font-size:.85rem}.class-assignment label{font-size:.85rem}.profile-classes{margin-top:24px}.dashboard-top-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:22px;align-items:start}.dashboard-top-grid .hero{margin-bottom:0}.summary-booking+.summary-booking{padding-top:18px;border-top:1px solid #e1e6dc;margin-top:18px}@media(max-width:1000px){.dashboard-top-grid{grid-template-columns:1fr}}.demo-section>.demo-banner{display:grid;grid-template-columns:auto minmax(0,300px) auto 1fr;align-items:center}.demo-section>.demo-banner .demo-profile{min-width:0}.demo-section>.demo-banner .demo-profile select{min-width:0;width:100%;max-width:none}.demo-section>.demo-banner .demo-classes{grid-column:1 / -1}.profile-reminders{margin-top:24px}.profile-reminders>.muted{margin-top:16px;font-size:.82rem}.reservation-inline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.reservation-inline h2,.reservation-inline h3,.reservation-inline .badge{margin:0}.appointment-title{margin-bottom:18px}.appointment-title h2{font-size:1.1rem}.appointment-title>.badge{font-size:.7rem}.appointment-details{margin:10px 0}.reservation-controls{align-items:flex-end}.reservation-controls .field{flex:1 1 180px;min-width:0;margin:0}.reservation-controls select{width:100%}.reservation-board{margin-top:24px}.reservation-board>.section-heading{margin-bottom:16px}.reservation-config-row,.reservation-slot-row,.reservation-slot-form{padding-top:16px;margin-top:16px;border-top:1px solid #dce4d7}.reservation-config-row>.actions,.reservation-slot-row>.actions{margin-top:10px}.reservation-settings{margin-top:24px}.reservation-settings .full-width{grid-column:1 / -1;margin:0}.reservation-settings .class-assignment{grid-column:1 / -1}@media(min-width:901px){.portal-shell{height:100dvh;overflow:hidden}.demo-section>.demo-banner,.school-header{flex-shrink:0}.portal-shell .app-shell{overflow:hidden}.portal-shell .sidebar{height:100%;min-height:0;overflow:hidden;gap:20px;padding-top:20px;padding-bottom:20px}.sidebar nav{flex:1;min-height:0;overflow-y:auto;align-content:start}.sidebar-user{margin-top:auto}.workspace{height:100%;overflow-y:auto}}@media(max-width:680px){.sidebar-user{display:flex;margin-top:0;padding-top:10px}}@media(max-width:680px){.demo-section>.demo-banner{grid-template-columns:auto minmax(0,1fr) auto}}.appointment-notice{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.appointment-notice-title{font-size:.95rem;font-weight:650;color:#213e3a}.homework-recipient{margin:0 0 14px;padding:10px 14px;border-left:4px solid #247565;border-radius:6px;background:#edf7f2;color:#174d43;font-size:1.2rem;font-weight:750;line-height:1.4;overflow-wrap:anywhere}.mobile-menu-toggle{display:none}@media(max-width:360px){.sidebar .brand-mark{display:none}.sidebar .brand{font-size:1.1rem}}@media(max-width:900px){.portal-shell .sidebar{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;max-height:100dvh;overflow:hidden;gap:0 12px;padding:10px 16px;box-shadow:0 2px 8px #173c3420}.sidebar .brand{margin:0;gap:8px}.sidebar .brand small{display:none}.sidebar .brand-boat{width:32px;height:30px}.mobile-menu-toggle{display:flex;align-items:center;gap:10px;min-height:44px;width:44px;padding:8px;justify-content:center;border:1px solid #ffffff50;border-radius:8px;background:#ffffff12;color:#fff;font:inherit;font-size:1.25rem;font-weight:600;cursor:pointer}.sidebar nav{display:none;grid-column:1 / -1;min-height:0;overflow-y:auto;overflow-x:hidden;margin-top:10px}.sidebar.mobile-menu-open{height:100dvh}.sidebar.mobile-menu-open nav{display:grid;grid-template-columns:1fr;gap:4px}.compact-account-badge{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer}.sidebar .nav-button{width:100%;min-height:48px;white-space:normal;text-align:left}.portal-shell .sidebar-user,.sidebar-label{display:none}}@media(max-width:680px){.school-header{display:none}.page-heading{gap:12px}.appointment-notice{width:100%;padding:12px;border-radius:10px;background:#fff4d9;gap:8px}.appointment-notice-title{flex-basis:100%}.appointment-notice .ui-button{margin-left:auto}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}button,.ui-button{min-height:44px}.ui-booking-row{flex-wrap:wrap;gap:12px}.reservation-controls>.ui-button{width:100%}.ui-card.ui-card-compact{min-height:0}.profile-permissions .permission-row{gap:12px}}@media(max-width:680px){.ui-card{--ui-control-height: 44px}.ui-reservation-controls>.ui-actions{width:100%}.ui-reservation-controls>.ui-actions .ui-button{width:100%}.ui-booking-row>.ui-actions{flex-wrap:wrap}.permission-row>*{min-width:0}}.demo-section{position:relative;flex-shrink:0;margin:0;border:0;background:transparent}.demo-section.is-open{background:#fff5dc;border-bottom:1px solid #eadbb5}.demo-tab{position:absolute;top:100%;right:20px;z-index:20;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:38px;padding:8px 16px;border:1px solid #eadbb5;border-top:0;border-radius:0 0 10px 10px;background:#fff5dcd9;color:#775b29;box-shadow:0 2px 8px #775b2920;font:inherit;font-size:.78rem;font-weight:650;cursor:pointer}.demo-tab:focus-visible{outline:2px solid #176a60;outline-offset:2px}.demo-section+.main-scroll{padding-top:0}.demo-section>.demo-banner{border:0;margin:0}@media(max-width:680px){.demo-tab{right:0;min-height:44px;padding:8px 6px;gap:4px;font-size:.62rem}.demo-section+.main-scroll{padding-top:0}.demo-section>.demo-banner{padding:8px 12px 12px;grid-template-columns:auto minmax(0,1fr)}.demo-section .demo-banner>.ui-button{grid-column:2;justify-self:start}}.header-image-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:8px}@media(max-width:680px){.header-image-toggle{display:none}}.header-image-toggle{width:20px;height:20px;min-height:20px;padding:4px;border-color:#ffffff40;border-radius:4px;background:#12332e70}.header-image-toggle svg{width:10px;height:10px}:root{--ui-space-1: 8px;--ui-space-2: 16px;--ui-space-3: 24px;--ui-card-radius: 14px;--ui-widget-height: 304px}.card{background:#fff;border:1px solid #e1e6dc;border-radius:14px;padding:24px;box-shadow:0 3px 12px #203e3903}.badge{display:inline-flex;align-items:center;background:#eaf1ea;color:#36624a;border-radius:6px;padding:4px 9px;font-size:.74rem;font-weight:600;white-space:normal}.field{display:flex;flex-direction:column;gap:7px;font-weight:550;font-size:.88rem}.field.full{grid-column:1/-1}textarea{min-height:110px;resize:vertical}label{cursor:pointer}input[type=checkbox]{accent-color:var(--ui-primary)}.button{border:1px solid #cfdcd1;background:#fff;color:var(--ui-primary);border-radius:8px;padding:10px 15px;font-weight:650;font-size:.85rem;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.button.primary{background:var(--ui-primary);border-color:var(--ui-primary);color:#fff}.button.primary:hover{background:var(--ui-primary-hover)}.button.secondary{background:#f3f6ef}.button.danger{color:#a34939;border-color:#e7c7bd}.empty-state{padding:30px;text-align:center;background:#f8faf5;border-radius:10px;color:var(--ui-muted)}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--ui-border);border-radius:8px;padding:10px 12px;background:#fff;color:var(--ui-text);max-width:100%}.ui-card{display:flex;flex-direction:column;gap:var(--ui-space-2);padding:var(--ui-space-3);border-radius:var(--ui-card-radius);min-width:0}.ui-widget{min-height:var(--ui-widget-height);height:100%}.ui-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.ui-card-heading{min-width:0}.ui-card-header h2,.ui-card-header h3{margin:0;font-size:1.1rem;line-height:1.35;letter-spacing:-.02em;overflow-wrap:anywhere}.ui-card-description{margin:6px 0 0;font-size:.85rem;color:var(--ui-muted)}.ui-card-status{display:flex;justify-content:flex-end;flex-shrink:0;max-width:45%;gap:8px;flex-wrap:wrap}.ui-card-body{flex:1;min-width:0}.ui-card-body>:last-child{margin-bottom:0}.ui-card-footer{margin-top:auto;padding-top:var(--ui-space-2);border-top:1px solid var(--ui-border)}.ui-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--ui-space-1);margin:0}.ui-button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--ui-control-height);padding:8px 14px;border-radius:8px;font-size:.82rem;line-height:1.3;text-align:center}.ui-badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:6px;font-size:.7rem;font-weight:650;line-height:1.3;margin:0}.ui-badge-neutral{color:var(--ui-neutral);background:var(--ui-neutral-surface)}.ui-badge-success{color:var(--ui-success);background:var(--ui-success-surface)}.ui-badge-warning{color:var(--ui-warning);background:var(--ui-warning-surface)}.ui-badge-muted{color:#555f61;background:#e9ecec}.ui-badge-danger{color:var(--ui-danger);background:var(--ui-danger-surface)}.ui-booking-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 0}.ui-booking-details{flex:1 1 180px;min-width:0}.ui-booking-details>strong{display:block;font-size:.9rem}.ui-booking-details p{margin:6px 0 0;font-size:.82rem;overflow-wrap:anywhere}.ui-booking-status{margin-bottom:6px}.ui-booking-actions{margin-left:auto}.ui-empty-state{padding:16px;border:1px dashed var(--ui-border);border-radius:10px;color:var(--ui-muted);background:#f8faf7;text-align:left}.ui-empty-state strong{font-size:.9rem;font-weight:600}.ui-empty-state p{font-size:.82rem;margin:6px 0 0}.ui-feedback-success,.ui-feedback-error{padding:10px 14px;border-radius:8px;margin:8px 0}.ui-feedback-success{color:var(--ui-success);background:var(--ui-success-surface)}.ui-feedback-toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:2000;display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(560px,calc(100% - 32px));margin:0;border:1px solid #a7cbb4;box-shadow:0 8px 28px #163b3426;padding-right:54px}.ui-feedback-toast button{position:absolute;right:10px;top:50%;transform:translateY(-50%);flex-shrink:0;border:0;background:transparent;color:inherit;font-size:1.4rem;cursor:pointer;width:32px;height:32px}.ui-feedback-error{color:var(--ui-danger);background:var(--ui-danger-surface)}.ui-card input:not([type=checkbox]),.ui-card select,.ui-card textarea{min-height:var(--ui-control-height);border-radius:8px;font-size:.85rem}.ui-card .reservation-controls{display:flex;align-items:flex-end;justify-content:flex-end;gap:12px;flex-wrap:wrap}.ui-card .reservation-controls .field{flex:1 1 180px;min-width:0;margin:0}.ui-card .reservation-controls>.ui-button{flex-shrink:0}.ui-card select,.ui-card input:not([type=checkbox]):not([type=radio]){height:var(--ui-control-height);padding:8px 12px}.ui-reservation-controls{margin-bottom:0}.ui-reservation-controls>.ui-actions,.ui-booking-row>.ui-actions{margin-top:0;margin-bottom:0;flex-shrink:0}.widget-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-3);align-items:stretch}.dashboard-top-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-space-3);align-items:stretch}.reservation-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(280px,1fr);gap:var(--ui-space-3);overflow-x:auto;padding-bottom:4px}.reservation-board{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid #dce4d7}.reservation-row>*{min-width:0}.dashboard-update{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.dashboard-update+.dashboard-update{margin-top:16px;padding-top:16px;border-top:1px solid var(--ui-border, #e1e6dc)}.dashboard-update p,.dashboard-updates .ui-card-body{margin:0}.reminder-badges,.reminder-editor{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.reminder-badge{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 8px 0 12px}.reminder-remove{border:0;background:transparent;color:inherit;cursor:pointer;font-size:1.25rem;width:32px;height:40px}.reminder-add{width:40px;padding:0;font-size:1.25rem}.reminder-editor .field{margin:0;flex:1 1 140px}.ui-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;padding:16px;margin-bottom:24px}.ui-filters .field,.ui-filters .search-field{flex:1 1 220px;min-width:0;margin:0}.ui-filters .group-filter{flex:1 1 auto;margin:0;gap:12px;min-height:40px}.ui-filters select,.ui-filters input:not([type=checkbox]){height:40px;padding:8px 12px;font-size:.88rem;width:100%}.ui-filters .search-field input{min-width:0}.ui-filters .search-field{flex-direction:column;align-items:stretch;gap:7px}.document-preview-button{width:40px;padding:0}.ui-menu-icon{width:28px;height:28px;flex-shrink:0}.main-area{position:relative}.cover-credit{display:block;padding:7px 16px;background:#f5f4ee;color:#637873;font-size:.72rem;line-height:1.4;text-align:left}.school-header .header-image-toggle{bottom:42px}.account-title-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.account-title-row h1{margin:0;min-width:0;text-align:left}.account-title-row .badge{margin-left:auto;flex-shrink:0;max-width:45%;text-align:right;white-space:normal}.main-area>.demo-banner{padding-right:64px}.request-compose{margin-bottom:24px}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:24px}.profile-grid>.profile-card{min-width:0;margin:0}.profile-grid>.profile-reminders{display:flex;flex-direction:column}.profile-reminders>form{margin-bottom:24px}.profile-reminders>.ui-actions{margin-top:auto;padding-top:16px;border-top:1px solid #dce4d7}@media(max-width:1000px){.profile-grid{grid-template-columns:1fr}}@media(max-width:1000px){.reservation-row{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr;overflow-x:visible}.widget-grid,.dashboard-top-grid{grid-template-columns:1fr}}@media(max-width:680px){.ui-card .reservation-controls .field{flex-basis:100%}.ui-card{padding:18px}.ui-card-header{flex-wrap:wrap}.ui-card-status{max-width:100%;margin-left:auto}.ui-widget{min-height:240px}}.ui-card.ui-card-compact{min-height:160px;height:auto;align-self:stretch;padding:18px;gap:12px}.ui-card-compact>.reservation-controls,.ui-card-compact>.ui-actions,.ui-card-compact>.ui-empty-state{margin-top:auto}.ui-card-compact .ui-booking-row{padding:0}.ui-card-compact .summary-booking+.summary-booking{margin-top:0;padding-top:18px}.appointment-summary .reservation-controls .appointment-child-field{flex-basis:100%}.appointment-summary>.ui-card-header+.summary-booking,.reservation-module>.ui-card-header+.reservation-slot-row{margin-top:auto}.ui-card-compact .ui-empty-state{padding:0;border:0;background:transparent}.ui-field{display:grid;gap:7px;min-width:0}.ui-field>label{font-weight:550;font-size:.88rem}.ui-field-error{color:var(--ui-danger)}.ui-select{min-height:var(--ui-control-height);font-size:.88rem;min-width:0}.ui-select .p-select-label,.ui-select .p-multiselect-label{white-space:normal;overflow-wrap:anywhere}.ui-select .p-multiselect-label{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.p-select-overlay,.p-multiselect-overlay{font:inherit;max-width:calc(100vw - 24px)}.p-select-option,.p-multiselect-option{min-height:44px;white-space:normal;overflow-wrap:anywhere}.p-select-option-label,.p-multiselect-option-label{white-space:normal}.p-select-filter,.p-multiselect-filter{width:100%;min-width:0}.ui-select-footer{padding:10px 12px;border-top:1px solid var(--ui-border)}.lesson-select-more{width:100%}.multi-select-chip{display:inline-flex;align-items:center;gap:6px;border-radius:7px;padding:3px 6px 3px 9px;background:var(--ui-neutral-surface);color:var(--ui-neutral);font-size:.8rem;max-width:100%;overflow-wrap:anywhere}.multi-select-chip button{flex-shrink:0;border:0;background:transparent;color:inherit;width:28px;height:28px;padding:0;font-size:1.15rem}.multi-select-summary{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:start;gap:8px}.ui-text-action{border:0;background:transparent;color:var(--ui-primary);padding:0;font:inherit;font-size:.8rem;text-decoration:underline}.ui-dialog{width:min(620px,calc(100vw - 32px));max-height:85dvh;color:var(--ui-text)}.ui-dialog-heading{display:flex;align-items:start;justify-content:space-between;gap:16px;width:100%}.ui-dialog-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.ui-dialog-heading h2{margin:0;font-size:1.3rem}.ui-dialog .p-dialog-content{overflow-y:auto}.p-dialog-mask{background:#153c37a0}.ui-data-table{min-width:0}.ui-data-table .p-datatable-table-container{overflow-x:auto}.ui-data-table table{width:100%;border-collapse:collapse;font-size:.85rem}.ui-data-table th{background:#f4f7f0;color:var(--ui-text);text-align:left}.ui-data-table th,.ui-data-table td{padding:14px 16px;vertical-align:top;border-bottom:1px solid var(--ui-border)}.ui-feedback-toast .p-message-content{display:flex;align-items:center;width:100%;padding:0}.ui-feedback-toast .p-message-text{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%}.ui-feedback-toast .p-message-icon{display:none}@media(max-width:680px){.ui-select,.ui-field input,.ui-field textarea,.p-select-filter,.p-multiselect-filter{font-size:16px}.ui-dialog .p-dialog-header{padding:16px}.ui-dialog .p-dialog-content{padding:0 16px 16px}}.ui-dialog-wide{width:min(760px,calc(100vw - 32px))}.ui-dialog .document-content{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
