:root{--bg:#f4f6f9;--panel:#fff;--text:#202b3c;--muted:#637086;--line:#dfe5ee;--blue:#245cce;--soft:#eaf0fc;color-scheme:light}html[data-theme=dark]{--bg:#131820;--panel:#1b222c;--text:#e9edf4;--muted:#a0aabb;--line:#303a48;--blue:#96b6ff;--soft:#273955;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 'Segoe UI',Arial,sans-serif}h1,h2,p{margin:0}h1{font-size:30px;line-height:1.25;letter-spacing:-.7px}h2{font-size:18px}a{color:var(--blue)}button,input{font:inherit}button{cursor:pointer;color:var(--text);background:var(--panel);border:1px solid var(--line);padding:9px 13px;border-radius:5px}button:hover,.button:hover{background:var(--soft)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--blue);outline-offset:3px}[hidden]{display:none!important}.shell{min-height:100vh;display:flex}aside{width:224px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:30px 22px;background:var(--panel);border-right:1px solid var(--line)}.brand{font-weight:750;font-size:31px;letter-spacing:-1px;text-decoration:none;color:var(--text)}.brand span{color:var(--blue)}.eyebrow{color:var(--muted);font-size:11px;letter-spacing:1px;font-weight:600;margin:24px 0 12px}nav{display:grid;gap:7px}nav button{text-align:left;border:0;background:transparent;padding:12px;font-weight:500}nav button[aria-current=page]{color:var(--blue);background:var(--soft)}.aside-bottom{margin-top:auto;font-size:13px}.aside-bottom p{margin-top:22px;font-weight:600;overflow-wrap:anywhere}.content{margin-left:224px;width:calc(100% - 224px)}header{height:72px;border-bottom:1px solid var(--line);background:var(--panel);display:flex;justify-content:space-between;align-items:center;padding:0 36px}header>span{color:var(--muted)}header>div{display:flex;gap:10px}main{padding:34px 36px;max-width:1600px;margin:auto}.heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.heading .eyebrow{margin-top:0}.subtitle{color:var(--muted);margin-top:10px}.button{display:inline-flex;border:1px solid var(--line);border-radius:5px;padding:9px 14px;background:var(--panel);text-decoration:none;white-space:nowrap;color:var(--text)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:26px}.metrics article,.panel,.room-card{background:var(--panel);border:1px solid var(--line);border-radius:6px}.metrics article{padding:24px}.metrics p,small{color:var(--muted)}.metrics strong{display:block;font-size:36px;font-weight:600;margin:10px 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.panel-head{padding:22px;display:flex;justify-content:space-between;align-items:center;gap:14px}.panel-head button{border:0;padding:0;font-size:13px;color:var(--blue);background:none}.row{padding:20px 22px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.row p{font-weight:600;overflow-wrap:anywhere}.row small{display:block;margin-top:6px}.row .button{font-size:13px;padding:7px 11px}.tag{display:inline-block;font-size:12px;padding:3px 7px;background:var(--soft);color:var(--blue);border-radius:4px;margin-top:10px}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.room-card{padding:24px}.room-card h2{overflow-wrap:anywhere}.room-card small{display:block;margin:20px 0}.room-card .button{margin-top:8px}.search{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:13px;max-width:440px;margin-bottom:22px}.search input{border:1px solid var(--line);border-radius:5px;padding:11px 14px;background:var(--panel);color:var(--text);width:100%}.search-form{display:flex;align-items:flex-end;gap:12px;margin-bottom:22px}.search-form .search{flex:1;margin:0}.search-form button{height:44px}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:20px;margin:20px 0}.pagination span{color:var(--muted);font-size:13px}.empty{padding:35px 22px;color:var(--muted)}.notice{border:1px solid var(--line);padding:16px 20px;background:var(--panel);margin-bottom:24px;border-radius:5px}.notice a{margin-left:12px}footer{color:var(--muted);font-size:12px;max-width:800px;margin-top:36px}#record-list[aria-busy=true]{opacity:.6}@media(max-width:1100px){.grid{grid-template-columns:1fr}.room-grid{grid-template-columns:1fr 1fr}main{padding:28px 24px}.heading{align-items:flex-start;flex-direction:column}}@media(max-width:700px){aside{position:static;width:100%;padding:18px}.shell{display:block}.content{margin:0;width:100%}nav{grid-template-columns:repeat(3,1fr);margin-top:15px}nav button{text-align:center;font-size:13px;padding:10px 4px}aside>.eyebrow,.aside-bottom{display:none}header{height:60px;padding:0 18px}header>span{font-size:13px}header button{font-size:12px;padding:7px 9px}main{padding:24px 18px}h1{font-size:26px}.metrics{grid-template-columns:1fr;gap:10px}.metrics article{padding:18px;display:grid;grid-template-columns:1fr auto}.metrics strong{margin:0;grid-column:2;grid-row:1 / 3;font-size:28px}.room-grid{grid-template-columns:1fr}.row{padding:18px;gap:12px}.row .button{flex-shrink:0}.panel-head{padding:18px}.pagination{gap:12px;justify-content:space-between}}

.search select{font:inherit;font-size:15px;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:5px;padding:10px 12px;height:44px}.search-form{flex-wrap:wrap}#scope-label{flex:0 0 190px}@media(max-width:700px){#scope-label{flex:1 1 100%}}
.workspace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.workspace-toolbar>p{color:var(--muted)}.workspace-toolbar .search{margin:0}.entity-actions{display:flex;flex-shrink:0;gap:8px}.entity-actions button{font-size:13px}.room-card .entity-actions{margin-top:24px}.member-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.member-list span{font-size:13px;background:var(--soft);padding:4px 8px;border-radius:4px}dialog{width:560px;max-width:calc(100% - 32px);max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);padding:28px}dialog::backdrop{background:#0b1223aa}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.dialog-heading button{font-size:23px;padding:2px 10px}dialog label{display:flex;flex-direction:column;gap:7px;margin:16px 0;font-size:14px}dialog input,dialog select,dialog textarea{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--text);padding:10px 12px;border-radius:4px;width:100%}dialog textarea{resize:vertical;min-height:85px}dialog fieldset{border:1px solid var(--line);border-radius:4px;margin-top:20px;max-height:230px;overflow:auto}dialog .check-row{flex-direction:row;align-items:center;margin:10px 0}dialog .check-row input{width:18px;height:18px}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-hint{color:var(--muted);font-size:13px;margin-top:14px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}#submit-dialog{background:var(--blue);color:var(--panel);border-color:var(--blue)}#form-error{color:#d45c50;font-size:14px;margin-top:15px}@media(max-width:700px){nav{grid-template-columns:repeat(3,1fr)}.workspace-toolbar{align-items:flex-start;flex-direction:column}.row:has(.entity-actions){flex-wrap:wrap}.form-columns{grid-template-columns:1fr;gap:0}dialog{padding:20px}}
.upcoming-panel{margin-top:24px}

.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.calendar-toolbar>div{display:flex;gap:7px}.calendar-toolbar h2{font-size:23px;letter-spacing:-.4px}.calendar-hint{font-size:13px;color:var(--muted);margin-bottom:18px}.calendar-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:5px;background:var(--panel)}.calendar{min-width:630px}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{border-bottom:1px solid var(--line);background:var(--bg)}.calendar-weekdays span{padding:12px 14px;font-size:12px;font-weight:600;color:var(--muted)}.calendar-day{min-height:156px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px;position:relative}.calendar-day:nth-child(7n){border-right:0}.calendar-day:nth-last-child(-n+7){border-bottom:0}.calendar-day.outside-month{background:var(--bg)}.outside-month .calendar-add{color:var(--muted)}.calendar-add{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;border-radius:3px;background:transparent;padding:3px 5px;min-height:32px;font-size:13px;text-align:left}.is-today .calendar-add>span:first-child{background:var(--blue);color:var(--panel);min-width:27px;line-height:27px;text-align:center;border-radius:3px}.day-plus{color:var(--muted);font-size:17px}.calendar-events{display:grid;gap:6px;margin-top:7px}.calendar-event{display:block;width:100%;text-align:left;white-space:normal;padding:8px;border-radius:3px;background:var(--soft);border:1px solid var(--line);font-size:12px;line-height:1.4;overflow-wrap:anywhere}.calendar-event.individual{background:var(--bg)}.calendar-event strong{display:block;font-weight:600;margin:4px 0}.calendar-event .event-time{font-variant-numeric:tabular-nums;display:block;color:var(--blue)}.event-time small{font-size:10px}.event-audience{display:block;color:var(--muted);font-size:11px}.time-fields{margin:16px 0 0;padding:8px 12px 12px;overflow:visible}.time-selects{display:flex;align-items:center;gap:8px}.time-selects select{flex:1;min-width:0;max-height:44px;font-variant-numeric:tabular-nums}.time-selects span{color:var(--muted)}button:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:2px}@media(max-width:1100px){.calendar-day{min-height:132px;padding:6px}.calendar-event{padding:6px}}@media(max-width:700px){.calendar-toolbar h2{font-size:19px}.calendar-toolbar button{padding:7px 10px}.calendar-day{min-height:120px}.calendar-scroll{margin-right:-4px}.calendar-hint{max-width:340px}.time-fields{margin-bottom:6px}}

.notification-channel{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:18px 0}.notification-channel h3{font-size:15px;margin:0 0 4px}.notification-channel p{color:var(--muted);font-size:13px;margin:0}.notification-channel button{font-size:13px;flex-shrink:0}#notification-error{color:#d45c50;font-size:14px;margin-top:16px}#notification-refresh{margin-top:20px}#notification-connect p{font-size:14px;margin:18px 0 12px}#notification-link{font-size:12px}.reminder-page{max-width:640px;margin:50px auto;padding:24px}.reminder-page h1{margin-top:35px}.reminder-page .subtitle{margin-bottom:20px}header>div{flex-wrap:wrap}@media(max-width:700px){header{height:auto;min-height:70px;gap:10px;padding-top:10px;padding-bottom:10px}header>div{justify-content:flex-end;gap:6px}.reminder-page{margin:10px auto}}

.reminder-steps{padding-left:22px;margin:22px 0}.reminder-steps li{padding-left:4px;margin:14px 0;font-size:14px}#reminder-onboarding .dialog-actions{flex-wrap:wrap}#reminder-onboarding-connect{background:var(--soft);color:var(--blue)}#reminder-onboarding-error{font-size:13px;color:#d45c50}
@media(max-width:700px){nav{grid-template-columns:repeat(3,minmax(0,1fr))}nav button{min-width:0;overflow-wrap:anywhere}input,select,textarea{min-width:0}.notification-channel{flex-wrap:wrap}.calendar-toolbar{flex-wrap:wrap}.calendar-toolbar>div{flex-wrap:wrap}dialog{max-height:90vh;max-height:90dvh}}
@media(max-width:380px){nav{grid-template-columns:repeat(2,minmax(0,1fr))}}
#reminder-onboarding-title:focus{outline:none}
.start-lesson{background:var(--soft);color:var(--blue);border:1px solid var(--line);font-weight:600}aside nav .start-lesson{background:var(--soft);color:var(--blue);border:1px solid var(--line)}
