*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#14213d;background:#f5f8fc}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.app{display:flex;min-height:100vh}.sidebar{width:250px;background:linear-gradient(180deg,#101c32,#071325);color:#fff;padding:24px 14px;position:fixed;inset:0 auto 0 0}.brand{display:flex;align-items:center;gap:10px;font-size:23px;margin:0 12px 38px}.brand-icon{font-size:31px}.brand b,.brand small{display:block}.brand small{font-size:11px;color:#9fb0cb;font-weight:500}.sidebar nav a{display:flex;gap:15px;padding:13px 16px;margin:4px 0;color:#b7c4d9;border-radius:9px;text-decoration:none}.sidebar nav a.active,.sidebar nav a:hover{background:#1d72f3;color:#fff}.teacher-card{position:absolute;bottom:110px;left:15px;right:15px;border-top:1px solid #26334a;padding-top:20px;display:flex;gap:10px;align-items:center}.teacher-card small,.teacher-card em{display:block;color:#9fb0cb;font-size:11px;font-style:normal}.teacher-card em{color:#52d68b}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#2b3c55;color:white;font-weight:800}.avatar.sm{width:34px;height:34px}.side-note{position:absolute;bottom:30px;left:28px;color:#9fb0cb;font-style:italic}.main{margin-left:250px;width:calc(100% - 250px);padding:0 26px 40px}.topbar{height:76px;display:flex;justify-content:space-between;align-items:center}.search{background:white;border:1px solid #e5ebf3;border-radius:10px;width:430px;padding:9px 14px;color:#7c8ba3}.search input{border:0;outline:0;width:90%;padding-left:8px}.profile{display:flex;align-items:center;gap:12px}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px}.stat{border:1px solid #e5ebf3;border-radius:12px;padding:16px 18px;display:grid;grid-template-columns:45px 1fr;grid-template-rows:20px 30px;background:white}.stat span{grid-row:1/3;display:grid;place-items:center;font-size:20px}.stat small{color:#61708a}.stat b{font-size:25px}.blue{background:#f1f7ff}.purple{background:#faf5ff}.green{background:#effcf6}.red{background:#fff2f3}.gold{background:#fff9eb}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:18px}.calendar-panel,.booking-card,.upcoming-card,.credit-card,.recent,.card{background:#fff;border:1px solid #e5ebf3;border-radius:14px}.calendar-panel{padding:18px}.panel-head,.card-title{display:flex;justify-content:space-between;align-items:center}.panel-head h1,.card-title h2{margin:0}.panel-head p{margin:5px 0 14px;color:#7b8aa1;font-size:13px}.calendar-tools{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.calendar-tools button{background:#f5f8fc;border:1px solid #e5ebf3;border-radius:8px;padding:8px 11px;color:#42516b}.calendar-tools .primary,.primary{background:#176cf0;color:white;border:0}.calendar-tools .active2{background:#176cf0;color:#fff}.primary{border-radius:8px;padding:10px 14px;font-weight:700}.full{width:100%;margin-top:10px}.right-column{display:flex;flex-direction:column;gap:14px}.booking-card{padding:17px}.booking-card h2{font-size:18px;margin:0}.booking-card label{display:block;font-size:12px;font-weight:700;margin:11px 0 5px;color:#42516b}.booking-card input,.booking-card select,.booking-card textarea,.lookup input,.student-book input,.student-book select,.student-book textarea{width:100%;border:1px solid #dfe6ef;border-radius:7px;padding:10px;outline:none}.booking-card textarea{height:75px;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tabs{display:flex;background:#f4f7fb;border-radius:7px;padding:3px;margin:15px 0}.tabs button{width:50%;padding:8px;border-radius:5px;background:transparent}.tabs .active{background:#176cf0;color:white}.slot-note{background:#f0f6ff;color:#3565a6;padding:10px;border-radius:8px;font-size:12px;margin-top:12px}.credit-card{padding:16px;display:flex;justify-content:space-between;align-items:center;gap:12px;background:linear-gradient(135deg,#eff7ff,#f8fbff)}.credit-card>div{display:flex;gap:10px;align-items:center}.credit-card small{display:block;color:#74829a}.credit-card a,.card-title a{font-size:12px;color:#176cf0;text-decoration:none}.credit-icon{width:48px;height:48px;border-radius:10px;background:#176cf0;color:white;display:grid;place-items:center;font-weight:900}.upcoming-card{padding:16px}.upcoming-card .card-title{margin-bottom:8px}.up-item{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1f5}.up-item:last-child{border:0}.up-item>div{flex:1}.up-item b,.up-item small{display:block}.up-item small{color:#7c899d;font-size:11px;margin-top:3px}.dot{width:8px;height:8px;background:#2b80f7;border-radius:50%}.day-pill{background:#f1f6fd;padding:5px 7px;border-radius:7px;font-size:10px}.recent{margin-top:18px;padding:18px}.table-wrap{overflow:auto}.recent table{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px}.recent th,.recent td{text-align:left;padding:12px;border-bottom:1px solid #edf1f5}.recent th{font-size:11px;color:#7b8aa1}.status{padding:5px 8px;border-radius:20px;font-size:11px}.status.scheduled{background:#eaf3ff;color:#176cf0}.status.completed{background:#eafaf2;color:#14965b}.status.cancelled,.status.no_show{background:#fff0f1;color:#d92d45}.modal{position:fixed;inset:0;background:#0b142b99;display:grid;place-items:center;z-index:20}.modal.hidden,.hidden{display:none}.modal-box{background:white;border-radius:14px;padding:24px;width:360px;position:relative}.modal-close{position:absolute;right:15px;top:12px;background:none;font-size:22px}.status-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.status-buttons button{padding:11px;border-radius:8px;background:#f0f4f9}.danger{background:#fff0f1;color:#d92d45;border:1px solid #ffd2d8;padding:10px;border-radius:8px}.student-page{background:linear-gradient(180deg,#f5f9ff,#f7fafc);min-height:100vh}.student-wrap{max-width:1200px;margin:auto;padding:25px}.student-header{display:flex;justify-content:space-between;align-items:center}.ghost{color:#176cf0;text-decoration:none}.hero{display:grid;grid-template-columns:1fr 420px;gap:30px;padding:70px 0 45px;align-items:center}.eyebrow{font-size:11px;font-weight:800;color:#176cf0;letter-spacing:2px}.hero h1{font-size:52px;line-height:1.04;margin:15px 0}.hero h1 span{color:#176cf0}.hero p{color:#687790;max-width:600px}.package{background:#fff;border:1px solid #e3eaf3;border-radius:18px;padding:25px;box-shadow:0 18px 50px #1d4e8915}.package-top{display:flex;justify-content:space-between}.package-top span{color:#176cf0;font-weight:900}.price{font-size:43px;font-weight:900;margin:20px 0 5px}.price small{font-size:14px;color:#8190a6}.package input{width:100%;margin:6px 0;padding:12px;border:1px solid #e1e8f0;border-radius:8px}.student-book{display:grid;grid-template-columns:360px 1fr;gap:18px}.card{padding:20px}.card h2{margin-top:0}.lookup{display:flex;gap:7px}.lookup button{white-space:nowrap}.credit-result{margin-top:12px;background:#edf8f2;color:#147b4d;padding:13px;border-radius:9px}.availability .card-title{margin-bottom:18px}.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.slot{border:1px solid #dce6f2;border-radius:10px;background:#fff;padding:15px;text-align:left}.slot small,.slot span{display:block;font-size:11px;margin-top:4px}.slot.available{border-color:#bcd7ff}.slot.available:hover,.slot.selected{background:#eaf3ff;border-color:#176cf0}.slot.busy{opacity:.5}.center-page{min-height:100vh;display:grid;place-items:center;background:#f5f8fc}.success-box{background:#fff;padding:45px;border-radius:18px;text-align:center;max-width:500px;box-shadow:0 20px 60px #0b214018}.success-icon{width:70px;height:70px;border-radius:50%;background:#eafaf2;color:#14a263;font-size:38px;display:grid;place-items:center;margin:auto}.success-icon.muted{background:#fff0f1;color:#d92d45}.button-link{display:inline-block;text-decoration:none;margin-top:18px}.empty{padding:25px;text-align:center;color:#8996a9;background:#f7f9fc;border-radius:8px}@media(max-width:1050px){.sidebar{width:78px}.sidebar .brand div,.sidebar nav span,.teacher-card div:not(.avatar),.side-note{display:none}.main{margin-left:78px;width:calc(100% - 78px)}.workspace{grid-template-columns:1fr}.right-column{display:grid;grid-template-columns:1fr 1fr}.stats{grid-template-columns:repeat(3,1fr)}.hero{grid-template-columns:1fr}.student-book{grid-template-columns:1fr}}@media(max-width:700px){.main{padding:0 10px}.topbar{height:auto;padding:12px 0}.search{width:100%}.profile{display:none}.stats{grid-template-columns:1fr 1fr}.right-column{display:block}.booking-card,.credit-card,.upcoming-card{margin-top:14px}.calendar-tools{margin-top:10px}.hero h1{font-size:38px}.slots{grid-template-columns:1fr 1fr}.student-wrap{padding:15px}.sidebar{display:none}.main{margin-left:0;width:100%}}


/* Authentication */
.login-page{min-height:100vh;display:grid;place-items:center;background:#f4f7fb;padding:32px}.login-shell{width:min(440px,100%)}.login-brand{display:flex;align-items:center;gap:12px;margin:0 auto 18px;width:max-content}.login-brand b{display:block;font-size:24px}.login-brand small{display:block;color:#7b8794}.login-box{background:#fff;border:1px solid #e7ebf0;border-radius:18px;padding:28px;box-shadow:0 18px 50px rgba(20,40,70,.08)}.login-box h1{margin:20px 0 6px}.muted{color:#788594}.login-tabs{display:flex;gap:8px;background:#f2f5f8;padding:5px;border-radius:10px}.login-tabs a{flex:1;text-align:center;padding:10px;border-radius:7px;text-decoration:none;color:#66717d;font-weight:700}.login-tabs a.active{background:#fff;color:#2563eb;box-shadow:0 2px 8px rgba(0,0,0,.06)}.login-box label{display:block;margin:14px 0 6px;font-weight:700;font-size:13px}.login-box input{width:100%;box-sizing:border-box;padding:12px;border:1px solid #dce2e8;border-radius:9px}.form-error{background:#fff0f0;color:#c62828;padding:11px;border-radius:9px;margin:15px 0}.login-switch{text-align:center;margin-top:18px;color:#6d7782;font-size:14px}.login-switch a{color:#2563eb;font-weight:700}.demo-login{margin-top:18px;padding:12px;background:#f6f8fa;border-radius:9px;color:#65717d;font-size:13px}.student-user{display:flex;align-items:center;gap:14px}.student-user small{color:#7a8794}.student-user .ghost{white-space:nowrap}.logout-link{font-size:12px;color:#6d7782;text-decoration:none;margin-left:8px}.signed-in{font-size:13px;color:#6c7783;background:#f5f7f9;padding:10px;border-radius:8px}

/* Teacher student selector/add-student modal only */
.student-picker-modal{width:min(440px,calc(100% - 30px));max-height:90vh;overflow:auto}.student-picker-modal label{display:block;font-size:12px;font-weight:700;margin:11px 0 5px;color:#42516b}.student-picker-modal input,.student-picker-modal select{width:100%;border:1px solid #dfe6ef;border-radius:7px;padding:10px;outline:none}.student-divider{display:flex;align-items:center;gap:10px;margin:18px 0 4px;color:#8996a9;font-size:12px}.student-divider:before,.student-divider:after{content:"";height:1px;background:#e5ebf3;flex:1}

/* Student management + supplied logo only */
.brand-logo{width:48px;height:48px;object-fit:contain;flex:0 0 auto}.login-brand .brand-logo{width:64px;height:64px}.student-notes-preview{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#61708a}.student-actions{display:flex;gap:6px;align-items:center}.student-actions button{padding:7px 10px;border-radius:7px;font-weight:700}.student-actions .disable-student{background:#fff2f3;color:#b42335}.student-actions .enable-student{background:#effcf6;color:#147b4d}.student-actions .notes-button{background:#f1f7ff;color:#176cf0}.student-status{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.student-status.enabled{background:#effcf6;color:#147b4d}.student-status.disabled{background:#fff2f3;color:#b42335}#studentNotesText{width:100%;border:1px solid #dfe6ef;border-radius:7px;padding:10px;outline:none;resize:vertical}
.availability-table input[type="time"]{border:1px solid #dfe6ef;border-radius:7px;padding:8px;max-width:150px}.availability-table input[type="checkbox"]{width:18px;height:18px}.availability-table td{vertical-align:middle}

/* Requested date/time picker controls and package list */
.picker-field{position:relative;display:flex;align-items:center}.picker-field input{width:100%;padding-right:46px}.picker-icon{position:absolute;right:8px;border:0;background:transparent;font-size:20px;cursor:pointer;padding:6px;line-height:1}.package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:0 0 28px}.package-option{display:block}.package-option form{margin-top:18px}@media(max-width:900px){.package-grid{grid-template-columns:1fr}}

.flatpickr-day.flatpickr-disabled{color:#b8bec8!important;background:#f1f3f5!important;cursor:not-allowed!important}.student-header .brand-logo{width:58px;height:58px}

.booking-field-label{display:block;font-weight:700;color:#42516b;margin:12px 0 6px;font-size:14px}
