@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@500;600;700;800&display=swap";:root{--brand-primary: #17685c;--brand-accent: #df9a64;--brand-accent-ink: #805738;--brand-accent-highlight: color-mix(in srgb, var(--brand-accent) 55%, white);--brand-tertiary: #6f90a2;--brand-tertiary-surface: color-mix(in srgb, var(--brand-tertiary) 9%, white);--brand-tertiary-border: color-mix(in srgb, var(--brand-tertiary) 32%, white);--brand-wash: color-mix(in srgb, var(--brand-primary) 6%, white);--brand-border: color-mix(in srgb, var(--brand-primary) 20%, white);--brand-surface: var(--brand-tertiary-surface);--brand-accent-surface: color-mix(in srgb, var(--brand-accent) 16%, white);--brand-shadow: color-mix(in srgb, var(--brand-primary) 10%, transparent);font-family:DM Sans,Arial,sans-serif;color:#24313a;background:var(--brand-tertiary-surface);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{outline:3px solid var(--brand-accent-ink);outline-offset:3px}h1,h2,h3,.brand{font-family:Outfit,DM Sans,sans-serif}h1{color:var(--brand-primary);font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin:.3rem 0 .7rem}h2{color:var(--brand-primary);font-size:1.45rem;margin:0 0 1rem}h3{font-size:1.1rem;margin:.4rem 0}p{line-height:1.5}.muted{color:#56636c}.eyebrow{color:var(--brand-accent-ink);font-size:.75rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin:0}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--brand-primary);border-radius:10px;background:var(--brand-primary);color:#fff;font-weight:700;text-decoration:none;padding:.75rem 1.1rem;min-height:44px}.button:hover{filter:brightness(.85)}.button:disabled{opacity:.55;cursor:not-allowed}.button.small{padding:.45rem .75rem;min-height:44px;font-size:.87rem}.button.full{width:100%}.quiet-button{border:1px solid var(--brand-border);border-radius:9px;background:#fff;color:var(--brand-primary);font-weight:700;min-height:44px;padding:.5rem .8rem}.quiet-button:hover{background:var(--brand-wash)}.text-link{color:var(--brand-primary);font-weight:700;text-decoration-thickness:2px}.panel{min-width:0;border:1px solid var(--brand-border);border-radius:16px;background:#fff;padding:1.5rem;box-shadow:0 6px 24px var(--brand-shadow)}.page-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding:2.2rem 0 1.5rem}.week-actions{display:flex;align-items:center;gap:.8rem;font-weight:700;white-space:nowrap}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(155px,1fr));gap:.7rem;align-items:start;overflow-x:auto;padding-bottom:1rem}.day-column{min-height:260px}.day-column h2{text-transform:capitalize;font-size:.9rem;padding:.7rem .2rem;border-bottom:3px solid var(--brand-accent-highlight)}.class-card{border:1px solid var(--brand-tertiary-border);border-left:4px solid var(--brand-primary);border-radius:12px;background:var(--brand-surface);padding:.8rem;margin-bottom:.65rem;box-shadow:0 2px 10px var(--brand-shadow)}.class-card h3{color:var(--brand-primary);line-height:1.15;overflow-wrap:anywhere}.class-card p{margin:.3rem 0;font-size:.85rem}.class-card .class-time{display:inline-block;padding:.15rem .4rem;border-radius:5px;font-weight:800;color:var(--brand-primary);background:var(--brand-accent-surface)}.class-card .button,.class-card .text-link{margin-top:.65rem}.class-card.cancelled{opacity:.68;border-left-color:#9aa4a0}.empty-day{color:#66747c;font-size:.85rem}.alert,.notice{padding:.8rem 1rem;border-radius:9px;margin:1rem 0}.alert{color:#8b261e;background:#fff0ea;border:1px solid #f3bcb0}.notice{color:var(--brand-primary);background:var(--brand-wash);border:1px solid var(--brand-border)}.badge{display:inline-block;border-radius:99px;padding:.2rem .55rem;color:var(--brand-primary);background:var(--brand-accent-surface);font-size:.75rem;font-weight:700}.stack{display:grid;gap:.75rem}.booking-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.booking-row>div:first-child{min-width:0;overflow-wrap:anywhere}.booking-row h2{margin:.3rem 0 .6rem}.empty-state{color:#59666f}.auth-card{max-width:430px;margin:4rem auto}form{display:grid;grid-template-columns:minmax(0,1fr);gap:.6rem;min-width:0}form label{font-size:.88rem;font-weight:700;margin-top:.65rem}form input,form select,form textarea{width:100%;min-width:0;border:1px solid #7a858c;border-radius:9px;background:#fff;padding:.7rem .8rem;color:#24313a}form input:focus,form select:focus,form textarea:focus{border-color:var(--brand-primary)}form .button{margin-top:1rem}.teacher-layout{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,2fr);gap:1rem}.teacher-class-list{max-height:min(70vh,44rem);overflow-y:auto;overscroll-behavior:contain;padding:.15rem;align-content:start}.roster{scroll-margin-top:1rem}.roster-back{display:none}.class-select{width:100%;text-align:left;display:grid;gap:.3rem;color:inherit}.class-select.selected{border-color:var(--brand-primary);background:var(--brand-wash)}.roster-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--brand-border);padding:.8rem 0}.roster-input{display:block;width:100%;border:1px solid #7a858c;border-radius:9px;padding:.7rem .8rem;margin:.5rem 0 1rem}.roster-row div:first-child{display:grid;gap:.2rem}.attendance-actions{display:flex;gap:.4rem}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:1rem}@media(max-width:800px){.page-head{align-items:start;flex-direction:column}.teacher-layout,.admin-grid{grid-template-columns:minmax(0,1fr)}.teacher-class-list{max-height:min(42vh,23rem)}.teacher-class-list.teacher-list-hidden{display:none}.roster-back{display:inline-flex;margin-bottom:.75rem}}@media(max-width:700px){.calendar-grid{grid-template-columns:1fr;overflow-x:visible}.day-column{min-height:0}.day-column h2{margin:.2rem 0 .5rem}.class-card .button{width:100%}}@media(max-width:500px){.booking-row,.roster-row{align-items:stretch;flex-direction:column}.booking-row .quiet-button{width:100%}.week-actions{width:100%;max-width:100%;justify-content:space-between;gap:.35rem;white-space:normal}.week-actions span{min-width:0;text-align:center}}.subscription-row{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-top:1px solid var(--brand-border)}.subscription-row>div:first-child{min-width:0;overflow-wrap:anywhere}.subscription-row h2{margin:0}.subscription-row p{margin:.35rem 0}.subscription-balance{display:grid;justify-items:end;align-content:start;gap:.35rem;min-width:170px}.subscription-balance span{color:#56636c;font-size:.85rem}.subscription-adjust{margin:1rem 0 2rem;max-width:580px}.credit-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.credit-summary p:last-child{display:grid;justify-items:end;margin:0}.credit-summary strong{font:700 2rem Outfit,sans-serif;color:var(--brand-primary)}@media(max-width:600px){.subscription-row,.credit-summary{flex-direction:column;align-items:stretch}.subscription-balance,.credit-summary p:last-child{justify-items:start}}
