:root{--purple:#6b4eff;--ink:#20243b;--muted:#73788e;--line:#e9ebf2;--bg:#f7f8fc;--green:#14846a;--radius:18px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}aside{width:244px;position:fixed;inset:0 auto 0 0;background:white;border-right:1px solid var(--line);padding:28px 20px;display:flex;flex-direction:column;z-index:30}.brand{font-size:27px;font-weight:750;display:flex;align-items:center;gap:10px;letter-spacing:-1px}.brandmark{background:var(--purple);color:white;border-radius:11px;width:36px;height:36px;text-align:center;font-size:32px;line-height:33px}.pro{font-size:10px;background:#f0edff;color:var(--purple);padding:3px 6px;letter-spacing:1px;border-radius:5px}.workspace{display:flex;gap:10px;padding:24px 0;margin-bottom:8px;border-bottom:1px solid var(--line);font-size:14px}small{display:block;color:var(--muted);font-size:13px}.avatar{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;background:#eee9ff;color:var(--purple);border-radius:13px;font-weight:650;font-size:14px}.small{width:34px;height:34px;border-radius:50%}nav{display:grid;gap:5px}nav a{padding:11px 13px;display:flex;align-items:center;gap:12px;color:#666d83;font-size:14px;border-radius:10px}nav a.active{background:#efebff;color:var(--purple);font-weight:650}svg.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sidebar-bottom{margin-top:auto;padding-top:24px}.plan{font-size:13px;background:#f7f5ff;padding:14px;border-radius:12px;font-weight:600}.plan small{margin-top:5px;font-weight:400;font-size:12px}.portal-link{display:block;font-size:14px;margin:18px 0}.shell{margin-left:244px}header{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:12px}.breadcrumb{font-size:14px;color:var(--muted)}.breadcrumb span{padding:0 12px;color:#b5b9c8}.breadcrumb b{color:var(--ink);font-weight:500}.header-right{display:flex;align-items:center;gap:18px}.demo-badge{font-size:12px;border:1px solid var(--line);border-radius:30px;padding:5px 10px;color:var(--muted)}main{max-width:1500px;margin:auto;padding:34px 38px;min-height:calc(100vh - 132px)}h1{font-size:29px;line-height:1.25;letter-spacing:-.7px;margin:0 0 9px}h2{font-size:18px;margin:0;font-weight:650}h3{font-size:16px;margin:0}p{color:var(--muted);margin:0}.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.page-head p{font-size:14px}.button{border:0;border-radius:10px;background:var(--purple);color:white;padding:11px 17px;font-weight:600;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.button.secondary{background:white;color:var(--ink);border:1px solid var(--line)}.button.danger{color:#c74852;background:#fff0f0}.button:hover{filter:brightness(.97)}.icon-button{background:none;border:0;font-size:20px;color:var(--muted);padding:8px}#menu{display:none}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:25px}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px}.stat{padding:21px 23px}.stat-label{font-size:14px;color:var(--muted);display:flex;justify-content:space-between}.stat-value{font-size:30px;letter-spacing:-1px;font-weight:700;margin:10px 0 6px}.stat small{font-size:12px}.positive{color:var(--green)}.grid{display:grid;grid-template-columns:1.65fr 1fr;gap:22px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.link{color:var(--purple);font-size:14px;cursor:pointer;border:0;background:none;padding:0}.lesson{display:flex;align-items:center;gap:14px;padding:17px 0;border-top:1px solid var(--line)}.time{width:55px;flex-shrink:0;font-weight:650;font-size:14px}.time small{font-size:12px;font-weight:400}.lesson-body{flex:1;min-width:0}.lesson-body strong{font-size:14px}.lesson-body small{margin-top:3px}.pill{display:inline-flex;padding:4px 9px;border-radius:7px;background:#edf9f4;color:var(--green);font-size:12px;white-space:nowrap}.pill.orange{background:#fff5e7;color:#a16b11}.pill.purple{background:#efebff;color:var(--purple)}.pill.gray{background:#f1f2f6;color:var(--muted)}.tip{background:#eeebff;border:0;margin-top:22px}.tip p{font-size:14px;margin-top:9px;color:#686287}.chart{display:flex;align-items:flex-end;gap:13px;height:165px;padding-top:15px}.bar-group{flex:1;text-align:center;font-size:12px;color:var(--muted)}.bar{background:#ddd5ff;border-radius:6px 6px 0 0;min-height:5px;margin-bottom:10px}.bar-group:last-child .bar{background:var(--purple)}.progress{height:7px;background:#efedf6;border-radius:10px;margin:12px 0;overflow:hidden}.progress i{display:block;height:100%;background:var(--purple);border-radius:10px}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;align-items:center}.toolbar input{flex:1;min-width:180px}.field,input,select,textarea{border:1px solid #dfe2ec;border-radius:9px;padding:10px 12px;background:white;color:var(--ink);min-width:0}textarea{resize:vertical;min-height:100px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{font-weight:500;color:var(--muted);background:#fafbfe;font-size:12px;padding:13px 16px;white-space:nowrap}td{padding:17px 16px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border:0}.person{display:flex;align-items:center;gap:12px}.person a{font-weight:600}.person a:hover{color:var(--purple)}.actions{display:flex;gap:8px;flex-wrap:wrap}.student-grid{display:grid;grid-template-columns:300px 1fr;gap:22px}.profile{text-align:center}.profile .avatar{width:72px;height:72px;font-size:24px;margin-bottom:15px}.profile h2{margin-bottom:6px}.profile-details{text-align:left;margin-top:25px;font-size:14px}.profile-details p{margin-bottom:15px}.tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin-bottom:22px}.tabs a{padding:0 0 13px;color:var(--muted);font-size:14px}.tabs a.active{color:var(--purple);border-bottom:2px solid var(--purple)}label{display:grid;gap:6px;font-size:14px;font-weight:500}form .fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}label.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-grid form{margin-top:22px}.check{display:flex;gap:10px;align-items:center;margin:15px 0}.check input{accent-color:var(--purple);width:18px;height:18px}.week{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:8px;min-width:930px}.day-head{text-align:center;padding:12px;font-size:12px;color:var(--muted)}.day-head b{display:block;font-size:20px;color:var(--ink);margin-top:3px}.day-head.today{background:#efebff;border-radius:12px;color:var(--purple)}.day-head.today b{color:var(--purple)}.day-column{min-height:340px;background:#fafbfe;border-radius:12px;padding:8px}.calendar-event{background:#eeeaff;color:#5340ad;border-left:3px solid var(--purple);padding:11px 8px;border-radius:8px;margin-bottom:12px;text-align:left;width:100%;font-size:12px;cursor:pointer;border-top:0;border-right:0;border-bottom:0}.calendar-event strong{display:block;margin:5px 0}.calendar-event.green{background:#e9f6f0;color:#24765d;border-left-color:#3cad87}.schedule-row{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.schedule-row strong{min-width:125px;font-size:14px}.schedule-row input[type=time]{max-width:130px}.switch{accent-color:var(--purple);width:20px;height:20px}.empty{text-align:center;padding:40px;color:var(--muted)}.banner{background:#24203e;color:white;border:0;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.banner p{color:#c5bfdc;font-size:14px;margin-top:7px}.banner .button{background:#fff;color:#4a368e}.notes{margin-top:20px}.notes p{font-size:14px;margin-top:10px}.metric-icon{color:var(--purple)}footer{padding:15px 38px;border-top:1px solid var(--line);font-size:12px;color:#9296aa;display:flex;justify-content:space-between}dialog{border:0;border-radius:20px;width:540px;max-width:calc(100% - 28px);padding:26px;box-shadow:0 20px 80px #20243b33}dialog::backdrop{background:#20243b66;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}#toast{position:fixed;right:24px;bottom:24px;background:var(--ink);color:white;border-radius:12px;padding:13px 20px;z-index:100;box-shadow:0 5px 25px #20243b33;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;font-size:14px}#toast.show{opacity:1;transform:none}.summary-line{display:flex;justify-content:space-between;margin:15px 0;font-size:14px}.home-date{font-size:13px;color:var(--muted)}@media(max-width:1150px){aside{width:215px;padding:25px 14px}.shell{margin-left:215px}main{padding:28px 24px}header{padding:0 24px}.stats{gap:12px}.stat{padding:17px}.grid{grid-template-columns:1.4fr 1fr}.stat-value{font-size:26px}}@media(max-width:900px){.grid,.settings-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.student-grid{grid-template-columns:1fr}.profile{text-align:left}.profile-details{display:flex;flex-wrap:wrap;gap:20px}.profile-details p{margin:0}.banner{align-items:flex-start}}@media(max-width:700px){aside{transform:translateX(-100%);transition:.2s;width:244px;box-shadow:20px 0 100px #20243b22}body.menu-open aside{transform:none}.shell{margin-left:0}#menu{display:block}header{padding:0 16px;height:66px}.breadcrumb{flex:1;font-size:12px}.breadcrumb>span{padding:0 5px}.header-right{gap:8px}.demo-badge{display:none}main{padding:24px 16px}.page-head{align-items:flex-start;flex-wrap:wrap;margin-bottom:22px}h1{font-size:25px}.card{padding:19px}.stats{gap:10px}.stat{padding:15px}.stat-label{font-size:12px}.stat-value{font-size:25px}.lesson{gap:10px}.lesson>.pill{display:none}.lesson .avatar{display:none}.button{padding:10px 13px}.banner{flex-direction:column}form .fields{grid-template-columns:1fr}label.full{grid-column:auto}.schedule-row{gap:8px;flex-wrap:wrap}.schedule-row strong{min-width:110px}.schedule-row input[type=time]{width:100px;padding:8px}.tabs{gap:14px;overflow:auto;white-space:nowrap}.profile-details{display:block}.profile-details p{margin-bottom:12px}footer{padding:15px 16px}footer span{display:none}.card-head{flex-wrap:wrap}.toolbar input{width:100%}.header-right .avatar{width:30px;height:30px}.chart{height:145px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.grid>* , .student-grid>* , .settings-grid>*{min-width:0}.table-wrap{max-width:100%}.breadcrumb{min-width:0}@media(max-width:700px){.breadcrumb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-body{overflow-wrap:anywhere}.page-head>div{min-width:0}h1{overflow-wrap:anywhere}.card-head h2{min-width:0}}
/* v2: workspaces, roles, scheduling and finance */
.workspace{display:block;padding:20px 0}.workspace-label{color:var(--muted);font-size:12px}.workspace-label select{width:100%;margin-top:3px;font-size:14px;font-weight:600;color:var(--ink);background:#f8f9fc}.header-right select{font-size:12px;padding:7px 9px;max-width:210px}.profile-details strong{display:block;color:var(--ink);overflow-wrap:anywhere}.body-copy{font-size:14px;margin:14px 0 20px;line-height:1.65}.busy-row{display:flex;gap:12px;align-items:center;padding:14px 0;border-top:1px solid var(--line);font-size:14px}.busy-row svg{color:var(--muted)}.negative{color:#bc3d4c}.tab{border:0;background:none;color:var(--muted);padding:0 0 13px;font-size:14px;cursor:pointer}.tab.active{border-bottom:2px solid var(--purple);color:var(--purple);font-weight:600}.form-hint{font-size:13px;color:var(--muted);margin:17px 0 0;line-height:1.65}.zone-label{margin:18px 0}.notice{background:#f3f2fb;padding:14px;border-radius:10px;font-size:14px;line-height:1.6;margin:15px 0}.error-notice{background:#fff1ed;color:#a1442e;border:1px solid #f7d8cd}.notice div+div{margin-top:7px}.event-preview{background:#f5f3ff;border:1px solid #e8e2ff;border-radius:13px;padding:16px;margin-top:18px;font-size:14px}.event-preview>div:first-child{display:flex;justify-content:space-between;gap:12px}.event-preview p{color:var(--ink);margin:10px 0;line-height:1.6}.event-preview .summary-line{flex-wrap:wrap;gap:10px}.event-types{display:flex;gap:5px;background:#f3f4f9;border-radius:11px;padding:5px;margin-bottom:20px}.type-button{flex:1;border:0;background:transparent;padding:10px;color:var(--muted);border-radius:8px;font-size:14px;font-weight:600}.type-button.active{background:white;color:var(--purple);box-shadow:0 2px 6px #20243b0a}.type-button:disabled{opacity:.4;cursor:default}.selected{color:var(--purple)!important;border-color:#c7baff!important;background:#f2efff!important}.calendar-toolbar strong{font-size:16px}.calendar-toolbar{justify-content:space-between}.toolbar label{font-size:12px;color:var(--muted)}.toolbar select{font-size:14px}.legend{display:flex;gap:16px;font-size:12px;margin-left:auto;flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:9px;height:9px;border-radius:3px;display:inline-block}.lesson-dot{background:var(--purple)}.block-dot{background:#8993a8}.vacation-dot{background:#df9b38}.calendar-card{padding:0;overflow:hidden}.time-calendar{min-width:910px}.time-calendar.single-day{min-width:350px}.calendar-heads,.calendar-time-body{display:grid;grid-template-columns:55px repeat(var(--days),minmax(0,1fr))}.calendar-heads{border-bottom:1px solid var(--line);background:white;position:sticky;top:0;z-index:2}.time-zone-label{align-self:center;color:var(--muted);font-size:10px;text-align:center}.calendar-time-body{height:var(--calendar-height);margin-top:10px}.hours{position:relative;font-size:11px;color:var(--muted)}.hours span{position:absolute;left:8px;transform:translateY(-7px)}.time-column{height:var(--calendar-height);position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 14px,#f6f7fb 14px,#f6f7fb 15px,transparent 15px,transparent 59px,#e9ebf2 59px,#e9ebf2 60px);touch-action:pan-x;user-select:none}.timed-event{position:absolute;left:5px;right:5px;z-index:1;overflow:hidden;text-align:left;line-height:1.35;border:0;border-left:3px solid var(--purple);border-radius:7px;padding:5px 7px;font-size:12px;background:#eeeaff;color:#5745ad;min-height:22px}.timed-event small{font-size:11px;color:inherit}.timed-event strong,.timed-event span{display:block;font-size:12px}.timed-event strong{margin-top:3px;font-weight:650}.timed-event.block-event,.timed-event.private-event{background:#eef0f5;border-left-color:#9299ab;color:#657089}.timed-event.vacation-event{background:#fff2df;border-left-color:#df9b38;color:#946a30}.timed-event.attention-event{outline:2px solid #e79e53}.drag-selection{position:absolute;left:3px;right:3px;background:#6b4eff22;border:1px dashed var(--purple);z-index:5;color:var(--purple);font-size:12px;padding:3px;pointer-events:none;border-radius:5px}.month-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;border-bottom:1px solid var(--line);padding:14px 0;font-size:12px;color:var(--muted)}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));user-select:none}.month-cell{min-height:115px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 7px;touch-action:pan-x;min-width:0}.month-cell>b{font-size:13px}.month-cell.today>b{display:inline-block;background:var(--purple);color:white;border-radius:50%;width:23px;text-align:center}.month-cell.outside{background:#fafbfe;color:#a5aab7}.month-cell.selecting{background:#efeaff}.month-event{width:100%;display:block;border:0;border-radius:5px;background:#eeeaff;color:#5a46b1;font-size:11px;text-align:left;padding:4px 5px;margin-top:5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.month-event.muted{background:#eef0f5;color:#657089}.homework{align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line);font-weight:400}.slot-grid{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}dialog{max-height:90vh;overflow-y:auto}dialog form label{font-weight:500}#event-preview:empty,#event-error:empty{display:none}
@media(max-width:1100px){.legend{margin-left:0}.calendar-toolbar{align-items:flex-start}.header-right select{max-width:180px}}@media(max-width:700px){.header-right select{max-width:150px;font-size:11px}.calendar-toolbar strong{width:100%;font-size:14px}.legend{gap:12px}.month-cell{min-height:85px;padding:7px 3px}.month-cell>b{font-size:12px}.month-event{font-size:10px;padding:3px 2px}.event-preview>div:first-child{flex-wrap:wrap}.tabs{gap:17px}.tab{white-space:nowrap}.toolbar>label{max-width:100%}.calendar-card .day-head{padding:10px 5px}.time-calendar.single-day{min-width:300px}.page-head .actions{max-width:100%}.banner .avatar{display:none}.schedule-row strong{min-width:115px}dialog{padding:20px}h2{overflow-wrap:anywhere}}
.stats:has(> .stat:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.notes p{white-space:pre-line}@media(max-width:900px){.stats:has(> .stat:nth-child(3):last-child){grid-template-columns:1fr 1fr}}@media(max-width:700px){aside{visibility:hidden}body.menu-open aside{visibility:visible}}
.month-event.vacation{background:#fff2df;color:#946a30}
/* Fit the full 24-hour calendar to the available viewport; event geometry uses percentages. */
.calendar-page .shell{height:100dvh;display:flex;flex-direction:column;min-height:0}
.calendar-page header{height:58px;flex:0 0 58px}
.calendar-page main{width:100%;max-width:none;flex:1;min-height:0;padding:16px 24px 12px;display:flex;flex-direction:column;gap:10px}
.calendar-page footer{display:none}
.calendar-page .page-head{margin:0;gap:12px}
.calendar-page h1{font-size:24px;margin-bottom:3px}
.calendar-page .page-head p{font-size:13px}
.calendar-page .toolbar{margin:0;gap:10px;flex-shrink:0}
.calendar-page .button{padding:8px 12px;border-radius:8px}
.calendar-page .toolbar label{display:flex;align-items:center;gap:8px}
.calendar-page .toolbar select{padding:7px 9px;font-size:13px}
.calendar-page .calendar-toolbar strong{font-size:14px}
.calendar-page .calendar-card{flex:1;min-height:0;display:flex;border-radius:12px}
.calendar-page .calendar-card>.table-wrap{width:100%;height:100%;overflow-y:hidden}
.calendar-page .time-calendar{height:100%;display:flex;flex-direction:column;min-width:700px}
.calendar-page .time-calendar.single-day{min-width:0}
.calendar-page .calendar-heads{flex:0 0 43px;min-height:43px}
.calendar-page .calendar-heads .day-head{padding:3px 5px;border-radius:7px;font-size:11px;line-height:1.25}
.calendar-page .day-head b{font-size:17px;margin-top:1px}
.calendar-page .calendar-time-body{flex:1;min-height:0;height:auto;margin:7px 0 6px}
.calendar-page .time-column{height:100%;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(100% / var(--booking-hours,24) - 1px),#e9ebf2 calc(100% / var(--booking-hours,24) - 1px),#e9ebf2 calc(100% / var(--booking-hours,24)))}
.calendar-page .hours span{font-size:10px;line-height:1;transform:translateY(-50%)}
.calendar-page .hours .last-hour{transform:translateY(-100%)}
.calendar-page .timed-event{min-height:12px;border-radius:4px;left:3px;right:3px;padding:0 4px;display:flex;align-items:center;gap:4px;font-size:12px;line-height:1.1}
.calendar-page .timed-event strong{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.calendar-page .timed-event>small,.calendar-page .timed-event>span{display:none}
.calendar-page .drag-selection{padding:0 3px;font-size:11px;white-space:nowrap;overflow:hidden;min-height:5px}
.calendar-page .calendar-hint{margin:0;font-size:12px;line-height:1.3;flex-shrink:0}
.calendar-page .calendar-card:has(.month-grid){display:flex;flex-direction:column}
.calendar-page .month-weekdays{padding:6px 0;flex-shrink:0}
.calendar-page .month-grid{flex:1;min-height:0;grid-template-rows:repeat(6,minmax(0,1fr))}
.calendar-page .month-cell{min-height:0;padding:5px;overflow:auto}
@media(max-height:750px){.calendar-page main{padding-top:10px;gap:7px}.calendar-page .page-head p{display:none}.calendar-page .calendar-hint{display:none}.calendar-page .hours .odd-hour{visibility:hidden}.calendar-page .legend{font-size:11px}}
@media(max-width:900px){.calendar-page .legend{display:none}.calendar-page .calendar-toolbar{align-items:center}.calendar-page .calendar-toolbar strong{max-width:100%}}
@media(max-width:700px){.calendar-page header{height:50px;flex-basis:50px}.calendar-page main{padding:10px 12px;gap:8px}.calendar-page h1{font-size:21px}.calendar-page .page-head{flex-wrap:nowrap}.calendar-page .page-head p{display:none}.calendar-page .button{font-size:12px;padding:7px 9px;min-height:32px}.calendar-page .calendar-toolbar{gap:7px}.calendar-page .calendar-toolbar .actions{gap:5px}.calendar-page .calendar-toolbar strong{width:auto;font-size:12px}.calendar-page .toolbar label{font-size:11px;gap:4px}.calendar-page .toolbar select{font-size:12px;padding:6px;max-width:160px}.calendar-page .calendar-hint{display:none}.calendar-page .calendar-heads,.calendar-page .calendar-time-body{grid-template-columns:40px repeat(var(--days),minmax(0,1fr))}.calendar-page .hours span{left:4px}.calendar-page .hours .odd-hour{visibility:hidden}.calendar-page .time-calendar.single-day{min-width:0}}
/* Unified translucent dropdowns; native selects still supply form values. */
.dropdown{position:relative;display:inline-flex;min-width:0;max-width:100%;vertical-align:middle}
select.dropdown-native{position:absolute!important;inset:0 auto auto 0!important;width:1px!important;height:1px!important;padding:0!important;margin:0!important;opacity:0!important;clip-path:inset(50%)!important;pointer-events:none!important}
.dropdown-trigger{font:inherit;font-size:14px;line-height:1.4;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;width:100%;min-height:40px;padding:9px 12px;border:0;border-radius:13px;background:rgba(255,255,255,.66);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);text-align:left;cursor:pointer;transition:background .15s,box-shadow .15s}
.dropdown-trigger:hover{background:rgba(239,235,255,.82)}
.dropdown-trigger:focus-visible{outline:2px solid #a896f3;outline-offset:3px}
.dropdown.is-open .dropdown-trigger{background:rgba(237,231,255,.83);color:#5740b8}
.dropdown-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dropdown-chevron{flex-shrink:0;display:flex;color:#8c85a5}.dropdown-chevron svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}.is-open .dropdown-chevron svg{transform:rotate(180deg)}
.dropdown-trigger:disabled{cursor:default;color:#85869a;background:rgba(237,237,246,.55)}
.dropdown-popup{position:fixed;inset:auto;margin:0;padding:7px;box-sizing:border-box;overflow-y:auto;border:0;border-radius:17px;background:rgba(255,255,255,.86);color:var(--ink);backdrop-filter:blur(22px) saturate(145%);-webkit-backdrop-filter:blur(22px) saturate(145%);box-shadow:0 14px 45px #36305f1c,0 3px 12px #36305f0a;z-index:150;scrollbar-width:thin;scrollbar-color:#c9c0e9 transparent}
.dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;min-height:40px;border-radius:11px;cursor:pointer;font-size:14px;line-height:1.45;overflow-wrap:anywhere;transition:background .12s}
.dropdown-option.is-highlighted{background:rgba(231,224,255,.68)}
.dropdown-option[aria-selected=true]{color:#6044cf;font-weight:600;background:rgba(235,229,255,.74)}
.dropdown-option.is-disabled{opacity:.45;cursor:default}.dropdown-check{color:var(--purple);flex-shrink:0;font-size:15px}
.dropdown-invalid .dropdown-trigger{box-shadow:0 0 0 2px #d68181}
label>.dropdown,form .dropdown,.workspace-label>.dropdown{width:100%}
.workspace-label .dropdown-trigger{background:rgba(239,236,250,.7);font-weight:600;font-size:14px}
.header-right .dropdown{max-width:210px}.header-right .dropdown-trigger{font-size:12px;min-height:34px;background:rgba(242,240,250,.7)}
.toolbar .dropdown-trigger{font-size:14px}.calendar-page .toolbar .dropdown-trigger{font-size:13px;min-height:34px;padding:7px 10px;border-radius:11px}
.calendar-page .toolbar label>.dropdown{width:auto}.calendar-page .toolbar .dropdown{max-width:190px}
@media(max-width:700px){.dropdown-trigger{min-height:40px}.header-right .dropdown{max-width:150px}.header-right .dropdown-trigger{font-size:11px;padding:7px 8px;gap:6px}.calendar-page .toolbar .dropdown{max-width:170px}.calendar-page .toolbar .dropdown-trigger{font-size:12px;padding:6px 9px;min-height:32px}.dropdown-option{min-height:44px}.dropdown-popup{border-radius:16px}}

/* Quiet, distinct tag colors with readable dark text. */
.tag-list{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;max-width:100%}
.student-tag{display:inline-flex;align-items:center;padding:5px 9px;border:0;border-radius:9px;background:hsl(var(--tag-hue) 50% 85% / .72);color:hsl(var(--tag-hue) 28% 22%);font-size:12px;font-weight:600;line-height:1.45;letter-spacing:.01em;white-space:normal;overflow-wrap:anywhere;max-width:100%;text-transform:none}
.tag-preview{display:block;min-width:0}.tag-preview:empty{display:none}
.profile>.tag-list{justify-content:center;margin-top:14px}.dropdown-option .tag-list{margin-top:5px}.dropdown-option .student-tag{font-size:11px;padding:4px 8px}
@media(max-width:600px){.student-tag{padding:5px 8px}.person .tag-list{max-width:220px}}

/* Separate fixed labels from editable values in student and event cards. */
dialog.editable-card{--field-text:#858995}
dialog.editable-card h2,dialog.editable-card label{color:#171923}
dialog.editable-card input:not([type=checkbox]):not([type=radio]):not(:disabled):not([readonly]),
dialog.editable-card textarea:not(:disabled):not([readonly]),
dialog.editable-card select:not(:disabled),
dialog.editable-card .dropdown-trigger:not(:disabled){color:var(--field-text);-webkit-text-fill-color:var(--field-text)}
dialog.editable-card input::placeholder,dialog.editable-card textarea::placeholder{color:#797e8a;opacity:1}
.dropdown-popup.editable-card-options .dropdown-option:not(.is-disabled){color:#858995}

.city-picker{min-width:0}.city-picker>label{display:block;font-size:13px;font-weight:600;margin-bottom:8px}.city-search{width:100%}.city-results{display:flex;flex-direction:column;gap:4px;max-height:250px;overflow:auto;margin-top:7px;padding:7px;border-radius:15px;background:rgba(247,245,255,.9);box-shadow:0 8px 25px #36305f12}.city-results[hidden]{display:none}.city-results button{display:flex;flex-direction:column;gap:3px;text-align:left;flex-shrink:0;border:0;border-radius:10px;padding:10px 12px;background:transparent;color:#626775;cursor:pointer;font:inherit}.city-results button:hover,.city-results button[aria-selected=true]{background:#e9e3fa}.city-results button strong{color:#343340;font-size:13px}.city-results button span,.city-results button small{font-size:12px;color:#717181}.city-results p{padding:8px;font-size:13px;line-height:1.6}.city-clock{display:flex;flex-direction:column;gap:5px;padding:13px 15px;margin-top:10px;border-radius:13px;background:#f5f3fc}.city-clock strong{font-size:14px;color:#292733}.city-clock span,.city-clock small{font-size:12px;color:#747182;line-height:1.5}.city-hint{font-size:12px;color:#777583;line-height:1.6;margin:8px 0}.city-manual{margin-top:10px}.city-manual summary{font-size:12px;color:#75698d;cursor:pointer}.city-manual label{display:block;margin-top:10px;font-size:12px}.city-manual .dropdown{width:100%}.city-manual .dropdown-trigger{margin-top:6px}

.fields>.city-picker,.fields>#event-student-location{grid-column:1/-1}

.device-time-note{display:inline-flex;align-items:center;padding:8px 11px;border-radius:11px;background:#f1eef9;color:#706581;font-size:12px;line-height:1.4}.device-time-settings{grid-column:1/-1;display:flex;flex-direction:column;gap:9px}.device-time-settings>strong{font-size:13px;font-weight:600}.calendar-page .toolbar .device-time-note{padding:7px 10px}.card-head .device-time-note{max-width:100%}

.dropdown-searchbar{position:sticky;top:-7px;z-index:1;padding:5px 3px 9px;background:rgba(250,249,255,.96);border-radius:12px}.dropdown-search-input{width:100%;min-height:38px;padding:9px 11px;border:0!important;border-radius:10px;background:rgba(234,229,248,.7);color:#626775;font:inherit;font-size:13px}.dropdown-search-input:focus{outline:2px solid #b3a4ed;outline-offset:-2px}.dropdown-empty{margin:0;padding:14px 12px;font-size:13px;color:#85818e}.dropdown-empty[hidden],.dropdown-option[hidden]{display:none}.dst-choice{margin-top:10px}

.student-space .portal-link{display:none}.learner-teachers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}.learner-teachers .person h2{font-size:18px;margin:0}.learner-teachers .person p{margin:5px 0;color:var(--muted);font-size:13px}.learner-task{display:flex;align-items:center;gap:14px;padding:18px 0;border-bottom:1px solid var(--border)}.learner-task:last-child{border-bottom:0}.learner-task .homework{flex:1;margin:0}.learner-task .homework small{display:block;margin-top:7px;color:var(--muted);line-height:1.6}.student-space .header-right .dropdown{max-width:220px}@media(max-width:700px){.learner-task{align-items:flex-start;flex-wrap:wrap}.learner-task .homework{flex-basis:100%}.student-space .header-right .dropdown{max-width:165px}.learner-teachers{gap:14px}}
.student-space .legend span:not(:first-child){display:none}

/* One card pattern for the teacher, school and student dashboards. */
.dashboard-card{display:flex;flex-direction:column;min-height:145px;text-decoration:none;color:var(--ink);transition:transform .16s,box-shadow .16s,border-color .16s;cursor:pointer}.dashboard-card .stat-label{gap:12px;align-items:flex-start}.dashboard-card .metric-icon{flex-shrink:0;color:var(--purple)}.dashboard-card .stat-value{margin:18px 0 10px}.dashboard-card small{color:var(--muted);margin-top:auto;line-height:1.5}.dashboard-card:hover{transform:translateY(-2px);border-color:#c7bbef;box-shadow:0 9px 24px #6751a512}.dashboard-card:focus-visible{outline:3px solid #a18be8;outline-offset:3px}.dashboard-agenda{flex:1;min-height:0;overflow-y:auto}.dashboard-agenda h2{margin-bottom:15px}@media(max-width:700px){.dashboard-card{min-height:145px}.dashboard-card .stat-label{font-size:12px;gap:6px}.dashboard-card .stat-value{font-size:25px;margin:13px 0 8px}.dashboard-card small{font-size:11px}}@media(prefers-reduced-motion:reduce){.dashboard-card{transition:none}.dashboard-card:hover{transform:none}}

.calendar-page .timed-event>.event-status-icon,.event-status-icon{display:flex;align-items:center;justify-content:center;position:absolute;right:1px;top:1px;width:15px;height:15px;border-radius:5px;cursor:pointer;z-index:2}.event-status-icon svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.status-scheduled{background:#fff0d9;color:#a57328}.status-completed{background:#e1f2e6;color:#467b54}.status-cancelled,.status-cancelled_charged{background:#fae0e4;color:#aa5961}.event-status-icon:focus-visible{outline:2px solid #947de1;outline-offset:1px}.timed-event:has(.event-status-icon){padding-right:19px;min-height:17px;cursor:grab;touch-action:none}.timed-event:has(.status-cancelled),.timed-event:has(.status-cancelled_charged){background:#fcf0f2;border-left-color:#d3979e}.month-event{position:relative;padding-right:22px}.calendar-status-menu{position:fixed;inset:auto;margin:0;padding:7px;border:0;border-radius:14px;background:rgba(255,255,255,.92);backdrop-filter:blur(20px);box-shadow:0 10px 35px #38305225;z-index:300}.status-menu-option{display:block;width:100%;padding:10px 12px;border:0;border-radius:9px;text-align:left;background:transparent;color:#696574;font:inherit;font-size:13px;cursor:pointer}.status-menu-option:hover,.status-menu-option:focus-visible{background:#f0eafa;outline:none}.status-menu-option[aria-checked=true]{color:#694dc1;background:#f3eefb}.calendar-dragging{opacity:.25;pointer-events:none}.calendar-drag-preview{position:fixed;width:180px;padding:12px;border-radius:12px;background:rgba(239,232,255,.96);box-shadow:0 8px 25px #57437d25;pointer-events:none;font-size:13px;color:#6347b0;z-index:400}

.event-open{display:flex;align-items:center;gap:4px;width:100%;height:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:inherit;overflow:hidden}.event-open>small,.event-open>span{display:none}.event-status-icon{padding:0;border:0}.event-open:focus-visible{outline:2px solid #9079d5;outline-offset:-2px}.month-event .event-open{display:block;text-overflow:ellipsis;white-space:nowrap}

/* Precise outline while dragging, and an icon-only status palette above the badge. */
.calendar-drag-preview{padding:0;box-sizing:border-box;border:2px dashed #969aa3;border-radius:4px;background:transparent;box-shadow:none}.calendar-status-menu{display:flex;align-items:center;gap:6px;padding:7px}.calendar-status-menu .status-menu-option{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;padding:0;border-radius:8px}.status-menu-option svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.calendar-status-menu .status-completed{background:#e1f2e6;color:#467b54}.calendar-status-menu .status-cancelled,.calendar-status-menu .status-cancelled_charged{background:#fae0e4;color:#aa5961}.calendar-status-menu .status-scheduled{background:#fff0d9;color:#a57328}.calendar-status-menu .status-menu-option[aria-checked=true]{box-shadow:inset 0 0 0 1.5px #947ed0}.calendar-status-menu .status-menu-option:hover,.calendar-status-menu .status-menu-option:focus-visible{outline:2px solid #aa96df;outline-offset:1px}

span.event-status-icon{cursor:default}.calendar-status-menu:has(.status-menu-option:nth-child(2):last-child){width:82px!important}

.personal-finance-stats{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:700px){.personal-finance-stats{grid-template-columns:1fr}}

/* Student booking calendar: occupancy across all teacher workspaces, without details. */
dialog.booking-calendar{width:min(1160px,calc(100vw - 32px));max-width:1160px;max-height:calc(100dvh - 32px);padding:22px 26px}.booking-summary{display:flex;gap:13px;align-items:center;margin-bottom:14px}.booking-summary strong{font-size:16px}.booking-summary p{margin:5px 0 0;font-size:12px;color:var(--muted)}.booking-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.booking-controls label{font-size:12px;display:flex;align-items:center;gap:8px}.booking-controls .dropdown-trigger{min-height:34px;font-size:12px}.booking-legend{display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;color:var(--muted);margin-bottom:14px}.booking-key{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}.free-key{background:#d5e9de}.busy-key{background:#d6d9e1}.booking-week-scroll{overflow-x:auto;border:1px solid #eeedf5;border-radius:14px}.booking-week{min-width:680px}.booking-days{display:grid;grid-template-columns:48px repeat(7,1fr);height:48px;background:#faf9fd}.booking-days>div{text-align:center;padding:6px;font-size:11px;color:#8b8798}.booking-days strong{display:block;margin-top:2px;font-size:15px;color:var(--ink)}.booking-days .booking-today{background:#f0eafa;border-radius:10px}.booking-week-body{height:clamp(250px,calc(100dvh - 340px),570px);display:grid;grid-template-columns:48px repeat(7,1fr)}.booking-hours,.booking-day-column{position:relative}.booking-hours span{position:absolute;font-size:9px;color:#92909e;right:6px;transform:translateY(-50%)}.booking-hours span:first-child{transform:none}.booking-hours span:last-child{transform:translateY(-100%)}.booking-day-column{border-left:1px solid #eeedf5;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(100% / var(--booking-hours,24) - 1px),#f0eff5 calc(100% / var(--booking-hours,24) - 1px),#f0eff5 calc(100% / var(--booking-hours,24)))}.booking-free{position:absolute;left:3px;right:3px;border:0;border-radius:3px;background:#dfeee5;color:#587563;font-size:9px;line-height:1;min-height:3px;padding:0;overflow:hidden;cursor:pointer;z-index:1}.booking-free:hover,.booking-free:focus-visible{background:#b7d7c4;z-index:3;min-height:17px;outline:2px solid #8fb59e}.booking-busy{position:absolute;left:3px;right:3px;min-height:14px;padding:2px 5px;border-radius:4px;background:#e0e2e8;color:#7d8090;overflow:hidden;font-size:10px;z-index:2;pointer-events:none}.booking-note{margin:13px 0 0;font-size:12px;line-height:1.6;color:var(--muted)}@media(max-width:700px){dialog.booking-calendar{padding:16px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.booking-controls{align-items:flex-start;flex-wrap:wrap}.booking-controls .actions{gap:5px;flex-wrap:wrap}.booking-controls strong{font-size:12px}.booking-legend{gap:8px}.booking-week-body{height:clamp(230px,calc(100dvh - 395px),570px)}}

.booking-free-label{display:none}.booking-free:hover .booking-free-label,.booking-free:focus-visible .booking-free-label{display:inline}.booking-controls label{white-space:nowrap}.booking-controls label .dropdown{min-width:115px}

.booking-drag-help{font-size:12px;color:var(--muted)}.booking-week-body{user-select:none}.booking-day-column{touch-action:none;cursor:crosshair}.booking-free{pointer-events:none}.booking-selection{position:absolute;left:3px;right:3px;box-sizing:border-box;border:2px dashed #9896a7;background:rgba(230,223,247,.7);border-radius:4px;z-index:5;pointer-events:none;color:#68598b;font-size:10px;padding:3px;min-height:18px}.form-actions button:disabled{opacity:.5;cursor:not-allowed}

.receipt-card{position:relative}.receipt-finance-link{display:block;color:inherit;text-decoration:none}.receipt-period{border:0;background:#f1edf9;color:#7455bd;border-radius:10px;padding:6px 10px;margin-top:14px;font:inherit;font-size:13px;cursor:pointer}.receipt-month-menu{position:fixed;margin:0;border:0;border-radius:18px;padding:14px;background:rgba(250,248,255,.96);backdrop-filter:blur(20px);box-shadow:0 12px 40px #38304b26;width:238px}.receipt-year{color:var(--muted);font-size:12px;margin-bottom:10px}.receipt-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;touch-action:none;user-select:none}.receipt-month-grid button{border:0;border-radius:10px;padding:10px 6px;background:transparent;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}.receipt-month-grid button:hover{background:#eae4f7}.receipt-month-grid button.selected{background:#ded3f5;color:#6244a5}.workweek-chart{display:flex;gap:14px;height:220px;padding-top:32px;margin-top:12px}.workweek-day{flex:1;min-width:0;text-align:center;font-size:12px;color:var(--muted)}.workweek-track{height:150px;display:flex;align-items:flex-end;border-bottom:1px solid #ece9f2}.workweek-bar{position:relative;width:100%;background:#e4ddf5;border-radius:8px 8px 0 0;min-height:2px}.workweek-bar strong{position:absolute;top:-26px;left:0;right:0;color:var(--ink);font-size:14px}.workweek-day.current .workweek-bar{background:#ad96df}.workweek-day>span{display:block;margin-top:12px}.personal-metrics .stat{min-height:160px}.personal-home-grid .card-head{flex-wrap:wrap;gap:8px}@media(max-width:700px){.workweek-chart{gap:10px}.receipt-month-menu{max-width:calc(100vw - 24px)}}

.receipt-card{padding:0!important;perspective:1000px;min-height:210px!important;background:transparent!important;border:0!important;box-shadow:none!important}.receipt-flipper{position:relative;width:100%;height:100%;min-height:210px;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.75,.25,1)}.receipt-card.flipped .receipt-flipper{transform:rotateY(180deg)}.receipt-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid #eeedf5;border-radius:22px;background:#fff;padding:22px}.receipt-front{display:flex;flex-direction:column;justify-content:space-between}.receipt-back{transform:rotateY(180deg);background:rgba(248,245,255,.97);padding:12px 16px}.receipt-back-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.receipt-back-head .receipt-year{margin:0}.receipt-back-head button{border:0;border-radius:8px;background:#ebe4f7;color:#7455bd;cursor:pointer;font-size:18px;padding:2px 8px}.receipt-back .receipt-month-grid{gap:3px}.receipt-back .receipt-month-grid button{padding:6px 2px;font-size:12px}.lesson-row-status{border:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:11px;white-space:nowrap}.lesson-row-status.status-completed{background:#e7f3ec;color:#51806a}.lesson-row-status.status-scheduled{background:#fff0dc;color:#a77b3c}.lesson-row-status.status-cancelled,.lesson-row-status.status-cancelled_charged{background:#fbe8e8;color:#b27171}@media(prefers-reduced-motion:reduce){.receipt-flipper{transition:none}}

.personal-repeat-row{margin-bottom:16px;align-items:start}.personal-repeat-row>div{position:relative}.repeat-label{display:block;font-size:13px;margin-bottom:8px}.repeat-trigger{width:100%;text-align:left;padding:12px;border:0;border-radius:12px;background:#f1edf8;color:#858995;font:inherit}.repeat-days-menu{position:absolute;z-index:10;left:0;right:0;top:100%;padding:12px;background:rgba(248,245,255,.97);backdrop-filter:blur(18px);border-radius:14px;box-shadow:0 12px 28px #40305b20}.repeat-days-menu[hidden]{display:none}.repeat-days-menu label{display:flex;flex-direction:row;align-items:center;gap:10px;margin:6px 0}.repeat-days-menu input{width:auto}.personal-repeat-row label{margin:0}

#modal.editable-card #modal-form>#event-specific{margin-top:20px}#modal.editable-card #modal-form .fields{row-gap:20px}#event-student-location:empty{display:none}

.calendar-page .calendar-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.calendar-date-center{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;text-align:center}.calendar-view-switch{justify-self:end}.calendar-date-center .device-time-note{margin:0}@media(max-width:1100px){.calendar-page .calendar-toolbar{grid-template-columns:auto 1fr auto}.calendar-date-center{gap:5px}.calendar-date-center .device-time-note{font-size:10px}}@media(max-width:700px){.calendar-page .calendar-toolbar{grid-template-columns:1fr 1fr}.calendar-date-center{grid-row:2;grid-column:1/-1;flex-wrap:nowrap}.calendar-view-switch{grid-column:2;grid-row:1}}

.calendar-page .calendar-toolbar{grid-template-columns:auto 1fr auto;column-gap:16px}.calendar-date-center{justify-content:flex-start;text-align:left;justify-self:start}@media(max-width:700px){.calendar-page .calendar-toolbar{grid-template-columns:1fr auto;column-gap:8px}.calendar-date-center{grid-row:2;grid-column:1/-1;justify-self:start;justify-content:flex-start}}

#event-error .error-notice{background:#fff0f1;border-color:#f5dadd;color:#ae5963}

.lesson-students-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.lesson-students-heading button{border:0;background:#f0ebfa;border-radius:10px;color:#7958bf;padding:6px;display:flex}.lesson-students-heading svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.lesson-extra-student{display:flex;align-items:end;gap:8px;margin-top:16px}.lesson-extra-student label{flex:1;min-width:0}#lesson-extra-students:empty{display:none}

#lesson-extra-students{margin-top:-12px}.lesson-extra-student{display:block;position:relative;margin-top:10px}.lesson-extra-student:first-child{margin-top:0}.lesson-extra-student label{display:flex;width:100%}.lesson-extra-student>.icon-button{position:absolute;right:0;top:-3px;width:24px;height:24px;padding:0;font-size:17px}.student-tag{font-size:10px;padding:3px 6px;border-radius:6px}.dropdown-option .student-tag{font-size:10px;padding:2px 5px}.dropdown-option .tag-list{margin-top:3px;gap:4px}@media(max-width:600px){.student-tag{padding:3px 6px}}
#lesson-extra-students{grid-column:1/-1;width:100%}.lesson-extra-student{width:100%}.lesson-extra-student label{display:block!important;width:100%!important}.lesson-extra-student .dropdown{display:block;width:100%;margin-top:8px}.lesson-extra-student .dropdown-trigger{width:100%}
.lesson-students-heading{height:32px;margin-bottom:8px}.lesson-students-heading+.dropdown{margin-top:0!important}.lesson-extra-student label{display:flex!important;flex-direction:column!important;gap:8px!important;line-height:32px}.lesson-extra-student .dropdown{margin-top:0!important;line-height:normal}.lesson-extra-student>.icon-button{top:4px}
#event-specific label:has(>.lesson-students-heading){gap:0!important}

.lesson-time-range{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;width:100%}.lesson-time-range input{min-width:0;width:100%}.lesson-time-separator{color:var(--muted)}

.lesson-date-label,.lesson-time-label{min-width:0}.lesson-time-range{gap:6px}.lesson-time-range input{padding-left:8px;padding-right:8px}

.repeat-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px}.repeat-arrow{margin-left:auto;flex-shrink:0}.repeat-days-menu label{color:#858995}
#modal.editable-card #modal-form .repeat-days-menu label{color:#858995}

.lesson-time-input{position:relative;min-width:0}.lesson-time-input input{padding-right:28px}.lesson-time-input input::-webkit-calendar-picker-indicator{display:none}.lesson-clock-button{position:absolute;right:4px;top:50%;transform:translateY(-50%);padding:3px;border:0;background:transparent;color:#858995;display:flex}.lesson-clock-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.lesson-time-picker{position:fixed;inset:auto;margin:0;width:270px;padding:14px;border:0;border-radius:16px;background:rgba(248,245,255,.96);backdrop-filter:blur(18px);box-shadow:0 12px 34px #40305b26}.time-picker-title{display:block;font-size:12px;color:#858995;margin:6px 0}.time-picker-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.time-picker-grid button{border:0;border-radius:8px;padding:6px 2px;background:transparent;color:#858995;font-size:12px}.time-picker-grid button:hover{background:#e9e1f8}

.wheel-time-picker{width:240px}.time-wheel-labels{display:grid;grid-template-columns:1fr 1fr;text-align:center;color:#858995;font-size:12px;margin-bottom:6px}.time-wheels{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:12px}.time-wheels:before{content:"";position:absolute;left:0;right:0;top:72px;height:36px;background:#e9e2f5;border-radius:10px;pointer-events:none}.time-wheel{height:180px;overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;padding:72px 0;overscroll-behavior:contain;position:relative}.time-wheel::-webkit-scrollbar{display:none}.time-wheel button{display:block;width:100%;height:36px;padding:0;border:0;background:transparent;color:#a2a0ad;font-size:16px;scroll-snap-align:center}.time-wheel button.wheel-selected{color:#7152b0;font-weight:600;font-size:20px}.time-wheel-done{width:100%;margin-top:10px;border:0;border-radius:10px;padding:8px;background:#e9e2f5;color:#7152b0;font-size:13px}

.wheel-time-picker{width:168px;padding:10px;border-radius:12px}.time-wheel-labels{font-size:9px;margin-bottom:4px}.time-wheels{gap:8px}.time-wheels:before{top:50.4px;height:25.2px;border-radius:7px}.time-wheel{height:126px;padding:50.4px 0}.time-wheel button{height:25.2px;font-size:11px}.time-wheel button.wheel-selected{font-size:14px}.time-wheel-done{font-size:10px;padding:6px;margin-top:7px;border-radius:7px}
#modal.editable-card #modal-form .repeat-days-menu{padding:10px;border:0;border-radius:12px;background:rgba(248,245,255,.96);backdrop-filter:blur(18px);box-shadow:0 12px 34px #40305b26}#modal.editable-card #modal-form .repeat-days-menu label{font-family:inherit;font-size:11px;font-weight:400;color:#a2a0ad;padding:5px 6px;margin:0;gap:8px;border-radius:7px;line-height:1.5}#modal.editable-card #modal-form .repeat-days-menu label:has(input:checked){color:#7152b0;font-weight:600;background:#e9e2f5}#modal.editable-card #modal-form .repeat-days-menu input{accent-color:#7152b0;width:12px;height:12px;margin:0}

.lesson-date-input{position:relative;display:block;width:100%}.lesson-date-input input{width:100%;padding-right:32px}.lesson-date-input input::-webkit-calendar-picker-indicator{display:none}.lesson-date-button{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;padding:3px;color:#858995;display:flex}.lesson-date-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.lesson-date-picker{position:fixed;inset:auto;margin:0;width:250px;padding:10px;border:0;border-radius:12px;background:rgba(248,245,255,.96);backdrop-filter:blur(18px);box-shadow:0 12px 34px #40305b26;font-family:inherit;font-size:11px;color:#a2a0ad}.date-picker-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:#858995}.date-picker-head button{border:0;background:transparent;color:#7152b0;border-radius:7px;font-size:18px;width:26px;height:26px;padding:0}.date-picker-weekdays,.date-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.date-picker-weekdays{margin-bottom:5px}.date-picker-grid button{height:27px;border:0;background:transparent;border-radius:7px;font-size:11px;color:#a2a0ad;padding:0}.date-picker-grid button:hover,.date-picker-head button:hover{background:#e9e2f5}.date-picker-grid button.chosen{background:#e9e2f5;color:#7152b0;font-weight:600}

.dropdown-popup,.city-results{background:rgba(248,245,255,.96)!important;backdrop-filter:blur(18px);border:0!important;border-radius:12px!important;box-shadow:0 12px 34px #40305b26!important}.dropdown-popup .dropdown-option,.dropdown-popup.editable-card-options .dropdown-option,.city-results [role=option]{font-family:inherit;font-size:11px;color:#a2a0ad}.dropdown-popup .dropdown-option[aria-selected=true],.dropdown-popup .dropdown-option:hover,.city-results [role=option]:hover{background:#e9e2f5;color:#7152b0}.schedule-row .lesson-time-input{flex:0 1 120px;width:120px}.lesson-time-input{display:inline-block;width:100%}

.timed-event.group-lesson-event,.month-event.group-lesson-event{background:#eaf0ff;color:#4562ad}.timed-event.group-lesson-event{border-left-color:#4e7bff}

.student-more-lessons summary{cursor:pointer;list-style:none;margin-top:16px;font-size:13px}.student-more-lessons summary::-webkit-details-marker{display:none}.student-more-lessons .hide-all{display:none}.student-more-lessons[open] .show-all{display:none}.student-more-lessons[open] .hide-all{display:inline}

.student-top-cards{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:22px;align-items:start}.student-top-cards>.card{min-width:0}.student-balance-card .stat-value{font-size:28px;margin:10px 0}.student-balance-card .summary-line{flex-wrap:wrap;font-size:12px;gap:8px}.student-balance-card table{font-size:12px}.student-balance-card th,.student-balance-card td{padding:10px 7px}@media(max-width:1100px){.student-top-cards{grid-template-columns:1fr}}

.student-balance-card{position:relative;min-height:180px;display:flex;align-items:center;justify-content:center;padding-top:54px}.balance-topup{position:absolute;top:16px;right:16px;font-size:12px}.balance-amount{border:0;background:none;cursor:pointer;padding:12px;font-weight:700}.balance-amount:hover{background:#f4f0fb;border-radius:12px}

.student-balance-card{aspect-ratio:1/1;min-height:0;width:100%;padding:54px 20px 20px}.balance-title{position:absolute;top:20px;left:20px;margin:0}.student-balance-card .balance-amount{color:hsl(140 50% 85% / .72)}
.student-top-cards{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.student-balance-card{aspect-ratio:1/1;width:100%;height:auto;align-self:start}@media(max-width:1100px){.student-top-cards{grid-template-columns:1fr}}
.layout-controls{display:flex;gap:10px;margin:0 0 18px}.layout-controls [hidden]{display:none}.student-grid .layout-resizable{resize:both;overflow:auto;min-width:180px;min-height:120px;max-width:100%;aspect-ratio:auto;outline:1px dashed #b3a0d7;outline-offset:3px}

.student-balance-card{justify-self:end}.balance-topup{border:0;background:transparent;color:var(--purple);font-size:32px;font-weight:400;line-height:1;width:34px;height:34px;padding:0;cursor:pointer;border-radius:9px}.balance-topup:hover{background:#f0ebff}
.layout-editable-card{position:relative}.layout-handle{display:none;position:absolute;z-index:25;touch-action:none}.layout-resizable{overflow:visible!important;resize:none!important;outline:1px dashed #b3a0d7;outline-offset:3px}.layout-resizable>.layout-handle{display:block}.handle-n,.handle-s{left:12px;right:12px;height:10px;cursor:ns-resize}.handle-n{top:-5px}.handle-s{bottom:-5px}.handle-e,.handle-w{top:12px;bottom:12px;width:10px;cursor:ew-resize}.handle-e{right:-5px}.handle-w{left:-5px}.handle-ne,.handle-nw,.handle-se,.handle-sw{width:12px;height:12px;background:#ad96df;border:2px solid white;border-radius:4px}.handle-ne{top:-6px;right:-6px;cursor:nesw-resize}.handle-nw{top:-6px;left:-6px;cursor:nwse-resize}.handle-se{bottom:-6px;right:-6px;cursor:nwse-resize}.handle-sw{bottom:-6px;left:-6px;cursor:nesw-resize}
.student-goals-card.fitted-goals{overflow-wrap:anywhere;min-width:0}.student-goals-card.fitted-goals .body-copy{margin:10px 0;line-height:1.4}.student-goals-card.fitted-goals .notes{margin-top:10px;padding-top:10px}.student-goals-card.fitted-goals .notes p{margin:6px 0;line-height:1.4}.student-goals-card.fitted-goals h3{margin:0;line-height:1.4}
.student-top-cards{align-items:stretch}.student-top-cards>.student-goals-card,.student-top-cards>.student-balance-card{transform:none!important;width:100%!important;max-width:100%!important;height:auto!important;align-self:stretch;aspect-ratio:auto}.student-goals-card.fitted-goals{padding:22px;text-align:left}.student-goals-card.fitted-goals h2,.student-goals-card.fitted-goals h3,.student-goals-card.fitted-goals p{margin-left:0;margin-right:0}.student-balance-card{min-height:0;justify-self:stretch}.student-top-cards{transform:none}
.student-tag,.dropdown-option .student-tag{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;color:#73788e!important;font-size:10px!important;font-weight:500!important}@media(min-width:1101px){.student-top-cards{grid-template-columns:minmax(0,1fr) auto}.student-top-cards>.student-balance-card{width:var(--balance-square,200px)!important;max-width:none!important;justify-self:end}}
@media(min-width:1101px){.student-top-cards>.student-balance-card{height:var(--balance-square,200px)!important}}
.student-balance-card .balance-amount{color:var(--green)}
.student-balance-card .balance-amount{color:#14846a!important;opacity:1}
.student-goals-card.fitted-goals h2,.student-goals-card.fitted-goals h3{margin-bottom:0}.student-goals-card.fitted-goals .body-copy,.student-goals-card.fitted-goals .notes p{margin-top:10px;margin-bottom:0}

.status-cancelled_charged,.pill.status-cancelled_charged,.lesson-row-status.status-cancelled_charged,.calendar-status-menu .status-cancelled_charged{background:#fbe8e8!important;color:#b27171!important}
.card:has(#availability-form){padding:18px}.card:has(#availability-form)>h2{margin-bottom:10px}#availability-form .zone-label{margin:8px 0 12px;font-size:12px}#availability-form .zone-label .dropdown-trigger{min-height:34px;padding:7px 10px}#availability-form .schedule-row{padding:7px 0;gap:10px;flex-wrap:nowrap}#availability-form .schedule-row strong{min-width:105px;font-size:12px}#availability-form .schedule-row .lesson-time-input{flex:1;min-width:75px;width:auto}#availability-form .schedule-row input[type=time]{max-width:none;width:100%;padding:7px 26px 7px 8px;font-size:12px;height:34px}#availability-form .switch{flex-shrink:0}#availability-form .form-hint{font-size:11px;margin-top:10px}#availability-form .form-actions{margin-top:12px;padding-top:10px}#availability-form .form-actions .button{padding:8px 12px;font-size:12px}@media(max-width:600px){#availability-form .schedule-row{gap:5px}#availability-form .schedule-row strong{min-width:85px;font-size:11px}}

.extra-hours-title{display:block;font-size:13px;margin-bottom:8px}.extra-hours-field .lesson-time-range{gap:14px}.extra-hours-field input[type=time]{height:46px;border-radius:12px;font-size:16px;padding-left:12px}.extra-hours-field .lesson-clock-button{right:10px}.extra-hours-field .lesson-clock-button svg{width:20px;height:20px}.extra-hours-field .lesson-time-separator{font-size:22px}

#modal{border:1px solid #eeedf5;border-radius:22px;background:#fff;padding:26px;box-shadow:0 20px 65px #302b4426}#modal .dialog-head{align-items:center;margin-bottom:22px}#modal .dialog-head h2{font-size:20px;font-weight:650;line-height:1.4;margin:0}#modal-form .fields{column-gap:18px;row-gap:20px}#modal-form>p,#modal-form .form-hint{font-size:12px;line-height:1.5;color:#73788e}#modal-form .form-actions{gap:10px;margin-top:20px}#modal-form .button{border-radius:11px;font-size:13px}#modal input:not([type=checkbox]):not([type=radio]),#modal textarea,#modal .dropdown-trigger{border-radius:12px}#modal .notice,#modal .event-preview{border-radius:13px}#modal.booking-calendar{width:min(1160px,calc(100vw - 32px))}@media(max-width:600px){#modal{padding:20px;max-width:calc(100vw - 24px)}}
#modal-form .dropdown:has(select[name=type])>.dropdown-trigger{border:1px solid #dfe1eb;background:#fff}
#modal-form .dropdown:has(select[name=type])>.dropdown-trigger{border-color:#dfe2ec}
#modal{--dialog-label-size:13px;--dialog-label-color:#171923}#modal-form label:not(.check),#modal-form .repeat-label,#modal-form .lesson-time-label>span:first-child,#modal-form .extra-hours-title,#modal-form .lesson-students-heading>span{font-family:inherit;font-size:var(--dialog-label-size);font-weight:500;line-height:1.5;letter-spacing:normal;color:var(--dialog-label-color)}#modal-form .repeat-label,#modal-form .extra-hours-title{margin-bottom:8px}#modal-form .fields>label{gap:8px}#modal-form h3{font-family:inherit;font-size:13px;font-weight:500;line-height:1.5;letter-spacing:normal;color:#171923}#modal-form .city-picker>label{font-family:inherit;font-size:13px;font-weight:500;line-height:1.5;color:#171923}#modal-form .repeat-days-menu label{font-size:11px!important;font-weight:400;color:#a2a0ad}#modal-form .repeat-days-menu label:has(input:checked){font-weight:600;color:#7152b0}
.student-balance-card .balance-topup{position:absolute;top:16px;right:16px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;box-sizing:border-box;padding:0;border:0;border-radius:9px;line-height:1;background:#f0ebff;color:var(--purple);font-size:28px;font-weight:400;flex-shrink:0}.student-balance-card .balance-topup:hover{background:#e9e2ff}
.calendar-card{padding-top:8px;padding-bottom:8px}
.calendar-card{padding-top:0}

.exception-add{display:flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;padding:0;border:0;border-radius:9px;background:#f0ebff;color:var(--purple);cursor:pointer}.exception-add:hover{background:#e9e2ff}
.shell>header{display:none!important}.calendar-page .shell>header{height:0;flex-basis:0}
@media(max-width:900px){.shell>#menu{display:flex;position:fixed;top:10px;right:12px;z-index:45;background:#fff;border-radius:10px;box-shadow:0 3px 12px #302b4412}.page-head{padding-right:40px}}
#app>.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 24px}#app>.page-head h1{font-family:inherit;font-size:28px;font-weight:700;line-height:1.25;letter-spacing:-.4px;margin:0}#app>.page-head p{font-family:inherit;font-size:13px;line-height:1.5;margin:8px 0 0;color:var(--muted)}#app>.page-head>.actions{display:flex;align-items:center;gap:10px}#app .button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 16px;border-radius:11px;font-family:inherit;font-size:13px;font-weight:600;line-height:20px}#app .card h2{font-family:inherit;font-size:18px;font-weight:650;line-height:1.4;letter-spacing:normal}#app .card-head{align-items:center}.calendar-page #app>.page-head h1{font-size:28px}.calendar-page #app>.page-head{margin-bottom:12px}.calendar-page #app .button{min-height:40px;font-size:13px;padding:9px 16px}@media(max-width:700px){#app>.page-head{gap:12px;margin-bottom:18px;flex-wrap:wrap}#app>.page-head h1,.calendar-page #app>.page-head h1{font-size:24px}#app .button,.calendar-page #app .button{min-height:36px;padding:7px 12px;font-size:12px}#app .card h2{font-size:17px}}
#app>.page-head{align-items:flex-start}#app>.page-head>div:first-child{padding:0;margin:0}#app>.page-head h1{margin:0;padding:0;font-size:28px;line-height:35px;font-weight:700}#app>.page-head>.actions{align-self:flex-start}@media(max-width:700px){#app>.page-head h1{font-size:24px;line-height:30px}}
.calendar-card>.table-wrap,.calendar-card>.month-weekdays,.calendar-card>.month-grid{zoom:.95}
.personal-home-grid>section.card:first-child{display:flex;flex-direction:column}.personal-home-grid>section.card:first-child>a[href="#calendar/allToday"]{align-self:flex-start;margin-top:auto;padding-top:16px}
.personal-home-grid>section.card:first-child>.empty{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px}

.calendar-unavailable{position:absolute;left:0;right:0;background:rgba(225,228,235,.55);z-index:0;cursor:not-allowed}.time-column{isolation:isolate}
.calendar-page .calendar-card{min-height:0;overflow:hidden}.calendar-card>.calendar-inner-scroll{height:clamp(320px,calc(100dvh - 255px),900px);overflow:auto;overscroll-behavior:contain}.calendar-inner-scroll .calendar-heads{position:sticky;top:0;z-index:10}.calendar-inner-scroll .calendar-time-body{flex:none}.calendar-inner-scroll .time-column{height:100%}
.personal-finance-stats>.stat:not(.receipt-card){padding:22px;display:flex;flex-direction:column;min-height:210px}.personal-finance-stats>.stat:not(.receipt-card) .stat-label{min-height:24px}.personal-finance-stats>.stat:not(.receipt-card) .stat-value{margin-top:22px}
.personal-finance-stats>.stat:not(.receipt-card) .stat-value{margin-top:20.5px}

.student-group-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;background:#f1edf8;border-radius:12px;padding:4px;margin-bottom:22px}.student-group-slider{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:9px;background:#fff;box-shadow:0 2px 7px #40305b12;transition:transform .25s}.group-active .student-group-slider{transform:translateX(100%)}.student-group-switch button{position:relative;z-index:1;border:0;background:transparent;padding:9px;color:#858995;font-size:13px;border-radius:9px}.student-group-switch button[aria-selected=true]{color:#7152b0;font-weight:600}.group-members-title{display:block;font-size:13px;margin-bottom:8px}.group-member-list{max-height:260px;overflow:auto;margin-top:12px}.group-member-option{display:flex!important;flex-direction:row!important;align-items:center;gap:10px!important;padding:10px;border-radius:10px}.group-member-option[hidden]{display:none!important}.group-member-option:has(input:checked){background:#f0ebfa}.group-member-option input{width:15px!important;accent-color:#7152b0}.group-member-option .tag-list{margin-top:3px}.student-groups-card{margin-top:22px}

#modal-form .full:has(#group-student-picker)>.dropdown{display:block;width:100%}#modal-form .full:has(#group-student-picker) .dropdown-trigger{width:100%}.dropdown-searchbar,.dropdown-search-input{width:100%;box-sizing:border-box}.group-selected-member{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.group-selected-member .tag-list{margin-top:3px}
#modal-form .fields>.full:has(#group-student-picker){min-width:0;width:100%;grid-column:1/-1}#modal-form .fields>.full:has(#group-student-picker)>.dropdown{display:block;width:100%!important;max-width:none}#modal-form .fields>.full:has(#group-student-picker)>.dropdown>.dropdown-trigger{display:flex;width:100%!important;box-sizing:border-box}

.student-table-tabs{margin-bottom:20px}.student-table-tabs .tab{display:inline-block}
input[name=groupPrice]{appearance:textfield;-moz-appearance:textfield}input[name=groupPrice]::-webkit-inner-spin-button,input[name=groupPrice]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.groups-table tbody .person{min-height:50px}
.groups-table th:nth-child(4),.groups-table td:nth-child(4){text-align:center}

.group-members-card th:nth-child(3),.group-members-card td:nth-child(3){text-align:center}.group-member-price{border:0;background:transparent;color:inherit;font:inherit;padding:6px 10px;border-radius:8px;cursor:pointer}.group-member-price:hover{background:#f0ebfa}

.group-member-price-input{width:130px;text-align:center;border:1px solid #cfc2eb;border-radius:8px;padding:6px 10px;font:inherit;color:#858995;background:#faf8ff;appearance:textfield}.group-member-price-input::-webkit-inner-spin-button,.group-member-price-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

.lesson-students-heading button:disabled{opacity:.45;cursor:default}

.students-table table,.groups-table table{width:100%;table-layout:fixed}.students-table th:nth-child(1),.groups-table th:nth-child(1){width:30%}.students-table th:nth-child(2),.groups-table th:nth-child(2){width:23%}.students-table th:nth-child(3),.groups-table th:nth-child(3){width:23%}.students-table th:nth-child(4),.groups-table th:nth-child(4){width:14%}.students-table th:last-child,.groups-table th:last-child{width:10%}.students-table th,.groups-table th{font:500 12px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}.students-table td,.groups-table td{font:400 14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;overflow-wrap:anywhere}.students-table th,.students-table td,.groups-table th,.groups-table td{padding:17px 16px}.students-table td:last-child,.groups-table td:last-child{text-align:right;white-space:nowrap}.students-table td:last-child .link,.groups-table td:last-child .link{font-size:13px;font-weight:500}

#app>.page-head .button[data-action=newStudent]{background:var(--purple);color:#fff;min-height:40px;padding:9px 16px;border-radius:11px;font:600 13px/20px -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;border:1px solid var(--purple)}

.time-column.current-day-column{box-shadow:inset 1px 0 0 #b8a7eb,inset -1px 0 0 #b8a7eb,inset 0 -1px 0 #b8a7eb}.calendar-heads .day-head.today{box-shadow:inset 1px 0 0 #b8a7eb,inset -1px 0 0 #b8a7eb,inset 0 1px 0 #b8a7eb}
.calendar-heads .day-head.today{box-shadow:none}
.time-column.current-day-column{box-shadow:none;background-color:#efebff}
.timed-event.lesson-event:not(.group-lesson-event){background:#eafff1;color:#457d5b;border-left-color:#4eb57c}.month-event:not(.muted):not(.vacation):not(.group-lesson-event){background:#eafff1;color:#457d5b}
.timed-event.lesson-event:not(.group-lesson-event){background:#e9f0f5;color:#526d80;border-left-color:#799caf}.month-event:not(.muted):not(.vacation):not(.group-lesson-event){background:#e9f0f5;color:#526d80}
.timed-event.lesson-event:not(.group-lesson-event){background:#edf3ff;color:#536d9e;border-left-color:#809acb}.month-event:not(.muted):not(.vacation):not(.group-lesson-event){background:#edf3ff;color:#536d9e}
.timed-event.group-lesson-event,.month-event.group-lesson-event{background:#f4efd9;color:#827440}.timed-event.group-lesson-event{border-left-color:#b8a15d}
/* Lesson type colors are independent of status colors. */
.timed-event.lesson-event:not(.group-lesson-event),.month-event:not(.muted):not(.vacation):not(.group-lesson-event){background:#e4eefc;color:#48618a;border-left-color:#819bc4}.timed-event.group-lesson-event,.month-event.group-lesson-event{background:#ece7db;color:#75664d;border-left-color:#ab9878}
.timed-event.group-lesson-event,.month-event.group-lesson-event{background:#dbecE9;color:#4d756e;border-left-color:#78aba1}
.timed-event.group-lesson-event,.month-event.group-lesson-event{background:#d8f0ee;color:#397c78;border-left-color:#81d8d0}
.timed-event.lesson-event:has(.status-cancelled),.month-event:has(.status-cancelled){background:#fae0e4;color:#aa5961;border-left-color:#d3979e}.timed-event.lesson-event:has(.status-cancelled_charged),.month-event:has(.status-cancelled_charged){background:#fbe8e8;color:#b27171;border-left-color:#d3979e}

.lesson-given-name,.lesson-family-name{display:block;white-space:normal}.timed-event strong .lesson-given-name,.timed-event strong .lesson-family-name{font-size:inherit;font-weight:inherit;line-height:1.2}.month-event:has(.lesson-family-name){white-space:normal}.month-lesson-name{display:inline-block;vertical-align:top}

.legend .lesson-dot{background:#e4eefc;border:1px solid #819bc4}.legend .group-lesson-dot{background:#d8f0ee;border:1px solid #81d8d0}.legend .lesson-legend-slash{color:var(--muted);font-size:11px}
.calendar-heads .day-head.today{background:transparent;border-radius:0;box-shadow:none;color:inherit}.calendar-heads .day-head.today b{color:inherit}
.calendar-heads .day-head.today{background:var(--purple);color:#fff;border-radius:12px}.calendar-heads .day-head.today b{color:#fff}
.students-table th:nth-last-child(2),.students-table td:nth-last-child(2){text-align:right}

.students-table th:last-child,.groups-table th:last-child{width:24%}.students-table th:nth-child(1),.groups-table th:nth-child(1){width:30%}.students-table th:nth-child(2),.groups-table th:nth-child(2){width:23%}.students-table th:nth-child(3),.groups-table th:nth-child(3){width:23%}.students-table th:last-child,.students-table td:last-child{text-align:right}.students-table th:nth-last-child(2),.students-table td:nth-last-child(2){text-align:left}.groups-table th:last-child,.groups-table td:last-child{text-align:center}
.students-table table,.groups-table table{table-layout:fixed;width:100%}.students-table th:nth-child(1),.groups-table th:nth-child(1){width:30%}.students-table th:nth-child(2),.groups-table th:nth-child(2){width:23%}.students-table th:nth-child(3),.groups-table th:nth-child(3){width:23%}.students-table th:nth-child(4),.groups-table th:nth-child(4){width:24%}
.students-table th:last-child,.students-table td:last-child{text-align:center}

.group-members-card th:last-child,.group-members-card td:last-child{text-align:center}.group-member-student-link{font-size:14px;font-weight:600;line-height:1.5}.group-member-student-link:hover{color:var(--purple)}

#event-specific .participant-time-hint{min-width:0}

#event-specific .participant-time-hint{grid-column:1/-1;width:100%;min-width:0}#event-specific .participant-time-hint .event-preview{width:100%;padding:16px;margin-top:18px}
#event-specific .participant-time-hint .event-preview{margin-top:0}
#app table .money-column,#modal table .money-column{text-align:right!important}table .money-column input,table .money-column button{text-align:right}

#app table td.balance-negative,#modal table td.balance-negative{color:#bc3d4c}#app table td.balance-positive,#modal table td.balance-positive{color:var(--green)}

#app table .state-column,#modal table .state-column{text-align:right}

.exception-date-caption{display:block;font-size:13px;font-weight:500;color:#171923;margin-bottom:8px}.exception-date-range.is-range{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:center}.exception-date-range input{width:100%;min-width:0}.exception-date-divider{font-size:22px;color:var(--muted)}.extra-hours-field[hidden],.exception-date-range [hidden]{display:none!important}

.school-role-label{display:block;margin-top:12px;font-size:12px;color:var(--muted)}.school-role-label .dropdown{display:block;margin-top:5px;width:100%}.group-member-price:disabled{cursor:default;color:inherit}

/* Shared financial ledger typography and column semantics across all roles. */
#app .finance-table,#modal .finance-table{width:100%;border-collapse:collapse;table-layout:auto;font-size:14px;line-height:1.5;color:var(--ink)}
#app .finance-table th,#modal .finance-table th{padding:13px 16px;text-align:left;vertical-align:middle;background:#fafbfe;color:var(--muted);font-size:12px;font-weight:500;line-height:1.5;border-bottom:1px solid var(--line)}
#app .finance-table td,#modal .finance-table td{padding:17px 16px;text-align:left;vertical-align:middle;color:var(--ink);font-size:14px;font-weight:400;line-height:1.5}
#app .finance-table td strong,#modal .finance-table td strong{font:inherit;color:inherit}
#app .finance-table td a,#modal .finance-table td a{color:inherit;font-size:inherit;font-weight:500;text-decoration:none}
#app .finance-table td a:hover,#modal .finance-table td a:hover{color:var(--purple)}
#app .finance-table td small,#modal .finance-table td small{display:block;margin-top:4px;font-size:12px;line-height:1.5;font-weight:400;color:var(--muted)}
#app .finance-table [data-finance-column=identity],#modal .finance-table [data-finance-column=identity]{min-width:180px}
#app .finance-table th:first-child,#modal .finance-table th:first-child{width:30%}
#app .finance-table [data-finance-column=date],#modal .finance-table [data-finance-column=date]{white-space:nowrap;min-width:130px}
#app .finance-table td[data-finance-column=date],#modal .finance-table td[data-finance-column=date],#app .finance-table td[data-finance-column=comment],#modal .finance-table td[data-finance-column=comment]{color:var(--muted)}
#app .finance-table .money-column,#modal .finance-table .money-column{white-space:nowrap;text-align:right!important;font-variant-numeric:tabular-nums;min-width:130px}
#app .finance-table td[data-finance-column=debt],#modal .finance-table td[data-finance-column=debt],#app .finance-table td.balance-negative,#modal .finance-table td.balance-negative{color:#bc3d4c}
#app .finance-table td.balance-positive,#modal .finance-table td.balance-positive{color:var(--green)}
#app .finance-table [data-finance-column=actions],#modal .finance-table [data-finance-column=actions],#app .finance-table [data-finance-column=state],#modal .finance-table [data-finance-column=state]{text-align:right;white-space:nowrap}
#app .finance-table .button,#modal .finance-table .button{font-size:13px;font-weight:500;min-height:36px;padding:8px 13px}
@media(max-width:700px){#app .finance-table th,#modal .finance-table th,#app .finance-table td,#modal .finance-table td{padding:12px}#app .finance-table,#modal .finance-table{min-width:560px}}
#app .finance-table td[data-finance-column=identity],#modal .finance-table td[data-finance-column=identity]{font-weight:500}
#app .finance-table [data-finance-column=state] .pill.orange{background:#fbe7e9;color:#bc3d4c}
/* Site-wide table rhythm, shared by pages and dialogs. */
:root{--table-row-height:76px;--table-head-height:46px;--table-cell-padding:12px 16px}
#app table,#modal table{width:100%;border-collapse:collapse;font-family:inherit;font-size:14px;line-height:21px}
#app table th,#modal table th{height:var(--table-head-height)!important;padding:var(--table-cell-padding)!important;vertical-align:middle!important;font-family:inherit!important;font-size:12px!important;font-weight:500!important;line-height:18px!important}
#app table td,#modal table td{height:var(--table-row-height)!important;padding:var(--table-cell-padding)!important;vertical-align:middle!important;font-family:inherit!important;font-size:14px!important;font-weight:400!important;line-height:21px!important}
#app table td a,#modal table td a,#app table td .person a,#modal table td .person a{font-family:inherit!important;font-size:14px!important;font-weight:500!important;line-height:21px!important}
#app table td strong,#modal table td strong{font-family:inherit;font-size:14px!important;font-weight:500!important;line-height:21px!important}
#app table td small,#modal table td small{display:block;font-family:inherit!important;font-size:12px!important;font-weight:400!important;line-height:18px!important;margin-top:4px!important}
#app table td .person,#modal table td .person{gap:12px;align-items:center}
#app table td .avatar,#modal table td .avatar{width:36px;height:36px;min-width:36px;font-size:13px}
#app table td .button,#modal table td .button{min-height:36px;font-family:inherit;font-size:13px!important;font-weight:500;line-height:18px;padding:8px 13px}
#app table td input,#modal table td input,#app table td .group-member-price,#modal table td .group-member-price{font-family:inherit!important;font-size:14px!important;line-height:21px!important}
#app table .money-column,#modal table .money-column{font-variant-numeric:tabular-nums}

/* Keep lesson dates beside totals; give the lesson description the remaining width. */
#app .lesson-charges-table{table-layout:fixed}
#app .lesson-charges-table th:first-child{width:auto}
#app .lesson-charges-table th[data-finance-column=date]{width:180px}
#app .lesson-charges-table th.money-column{width:190px;white-space:normal}
#app .lesson-charges-table td:first-child{overflow-wrap:anywhere}
@media(max-width:700px){#app .lesson-charges-table{min-width:650px}#app .lesson-charges-table th[data-finance-column=date]{width:150px}#app .lesson-charges-table th.money-column{width:160px}}

.linked-learner .workspace,.linked-learner .header-right,.linked-learner .portal-link{display:none!important}

.student-duration-field{position:relative;min-width:0}.student-duration-field>label{display:block;margin-bottom:8px;font-size:13px;font-weight:500;color:#171923}.student-duration-control{position:relative}.student-duration-control input{width:100%;padding-right:38px;appearance:textfield;-moz-appearance:textfield}.student-duration-control input::-webkit-inner-spin-button,.student-duration-control input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.student-duration-control button{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#a2a0ad;width:28px;height:28px;cursor:pointer}.student-duration-options{position:absolute;top:100%;left:0;right:0;margin-top:6px;padding:6px;z-index:50;border:0;border-radius:14px;background:rgba(248,247,252,.96);backdrop-filter:blur(18px);box-shadow:0 12px 35px #27213c1a}.student-duration-options[hidden]{display:none}.student-duration-options button{display:block;width:100%;border:0;border-radius:9px;background:transparent;text-align:left;font-family:inherit;font-size:11px;font-weight:400;color:#a2a0ad;padding:9px 12px;cursor:pointer}.student-duration-options button:hover,.student-duration-options button:focus-visible,.student-duration-options button[aria-selected=true]{background:#eee9f8;color:#827297}

/* One lightweight chevron for all dropdown controls. */
.ui-menu-chevron,.dropdown-chevron svg{display:block;width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease,color .18s ease}
.dropdown-chevron,.repeat-arrow,#duration-toggle{color:#9691a8;display:inline-flex;align-items:center;justify-content:center}
.repeat-arrow{width:16px;height:16px}.repeat-trigger[aria-expanded=true] .ui-menu-chevron,#duration-toggle[aria-expanded=true] .ui-menu-chevron{transform:rotate(180deg)}
.lesson-row-status>span{display:inline-flex;align-items:center;justify-content:center}.lesson-row-status .ui-menu-chevron{width:14px;height:14px}

#app table td.lesson-remainder{text-align:right!important;font-variant-numeric:tabular-nums}#app table td.lesson-remainder.negative{color:#bc3d4c}#app table td.lesson-remainder.positive{color:var(--green)}

#app table td.lesson-remainder{font-size:18px!important;font-weight:700!important;line-height:24px!important}

.student-balance-card .balance-lesson-count{position:absolute;left:16px;right:16px;bottom:18px;text-align:center;font-size:13px;line-height:18px;color:var(--muted)}
.student-balance-card .balance-amount{position:relative;top:-16px}

.payment-comment-field{position:relative;min-width:0}.payment-comment-field>label{display:block;margin-bottom:8px;font-size:13px;font-weight:500;color:#171923}#payment-comment{width:100%;padding-right:38px}#payment-comment-toggle{display:inline-flex;align-items:center;justify-content:center;color:#9691a8}
#modal-form .fields>.payment-comment-field{grid-column:1/-1;width:100%;min-width:0}#modal-form .payment-comment-field .student-duration-control,#modal-form .payment-comment-field input{display:block;width:100%;max-width:none}

.debt-summary-card{position:relative;padding-bottom:52px!important}.debt-lesson-count{position:absolute;left:16px;right:16px;bottom:18px;text-align:center;font-size:13px;line-height:18px;color:var(--muted);font-weight:400}

.payment-amount-control{position:relative;min-width:0}.payment-amount-control input{width:100%;padding-right:82px!important;appearance:textfield;-moz-appearance:textfield}.payment-amount-control input::-webkit-inner-spin-button,.payment-amount-control input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.payment-lesson-controls{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:10px}.payment-lesson-arrows{display:flex;flex-direction:column;gap:0}.payment-lesson-arrows button{display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:5px;background:transparent;color:#9691a8;width:24px;height:17px;cursor:pointer}.payment-lesson-arrows button:hover{background:#eee9f8;color:var(--purple)}.payment-lesson-arrows button:first-child svg{transform:rotate(180deg)}.payment-lesson-controls output{min-width:24px;text-align:center;color:#858995;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.payment-lesson-arrows button:disabled{opacity:.4;cursor:default}
.page-heading-group{display:flex;align-items:center;gap:18px;min-width:0}.page-back{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0;min-height:38px;padding:8px 12px;border:0;border-radius:12px;background:#eee9fb;color:#7254cb;font-family:inherit;font-size:13px;font-weight:500;line-height:20px;cursor:pointer;transition:background .15s,color .15s}.page-back svg{width:17px;height:17px}.page-back:hover{background:#e4dcfa;color:#5c3eb9}.page-back:focus-visible{outline:2px solid var(--purple);outline-offset:3px}@media(max-width:700px){.page-heading-group{gap:10px}.page-back{padding:8px;gap:5px}}

.page-head .page-heading-group{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px}
.page-head .page-back{min-height:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--muted);font-family:inherit;font-size:14px;font-weight:400;line-height:21px;gap:6px;box-shadow:none}
.page-head .page-back svg{width:15px;height:15px;stroke-width:1.6}
.page-head .page-back:hover{background:transparent;color:var(--purple)}

.receipt-back-head .year-toggle{border:0;background:transparent;color:inherit;font:inherit;font-size:13px;font-weight:500;padding:3px 7px;border-radius:8px;cursor:pointer}.receipt-back-head .year-toggle:hover{background:#e9e2f7;color:var(--purple)}.financial-year-picker[hidden],.receipt-month-grid[hidden]{display:none!important}.year-paging{display:flex;align-items:center;justify-content:space-between;margin-top:6px;color:var(--muted);font-size:11px}.year-paging button{border:0;border-radius:7px;background:transparent;color:var(--purple);font-size:18px;width:25px;cursor:pointer}

.sidebar-device-time{margin-top:18px;padding:12px 13px;border-radius:13px;background:#f3f0fa;color:var(--muted)}.sidebar-device-time[hidden]{display:none}.sidebar-device-time .device-time-note{display:block;margin:0;padding:0;border:0;background:transparent;font-size:12px;line-height:19px;white-space:normal;overflow-wrap:anywhere}.student-space #nav{margin-top:26px}.student-space #app .device-time-note{display:none}

.calendar-school-toggle{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);cursor:pointer;white-space:nowrap}.calendar-school-toggle input{appearance:none;width:34px;height:20px;min-width:34px;padding:0;border:0;border-radius:20px;background:#dedbe9;position:relative;cursor:pointer;transition:background .18s}.calendar-school-toggle input:before{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:white;box-shadow:0 1px 3px #20243b20;transition:transform .18s}.calendar-school-toggle input:checked{background:var(--purple)}.calendar-school-toggle input:checked:before{transform:translateX(14px)}
.school-availability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.school-availability-grid h2{font-size:17px}.school-working-days>div{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.school-working-days strong{font-weight:500;color:var(--muted)}.school-exception-list{margin-top:20px}.school-exception-list h3{font-size:14px}.school-conflict-lessons{display:grid;gap:14px;margin-top:16px}.school-conflict-lesson{padding:16px;border-radius:14px;background:#f8f7fc}.school-conflict-lesson>strong{font-size:14px}.school-conflict-lesson>p{font-size:12px;color:var(--muted);margin:4px 0 12px}.school-manual-move{margin-top:14px}.school-manual-move[hidden]{display:none}.school-move-preview{font-size:12px;color:var(--muted);margin-top:8px}@media(max-width:900px){.school-availability-grid{grid-template-columns:1fr}}

.school-availability-table th:first-child{width:50%}.school-availability-table th:last-child{width:120px}.school-availability-table td:last-child{text-align:right}.availability-open-link{color:var(--purple);white-space:nowrap}.availability-teacher-zone{display:flex;flex-direction:column;gap:4px;margin:18px 0;padding:13px 15px;background:#f7f5fc;border-radius:12px;font-size:13px;color:var(--muted)}.availability-teacher-zone strong{font-weight:500;color:var(--ink)}.school-teacher-availability .school-exception-list{margin-top:0}

.date-picker-grid button.picker-today{background:var(--purple);color:#fff;font-weight:600}.date-picker-grid button.picker-today:hover{background:#5c40e0}.date-picker-grid button.picker-today.chosen{box-shadow:0 0 0 2px #d9cffb}
.day-head[data-absence-date]{cursor:crosshair;user-select:none;touch-action:none}.day-head.absence-date-selected,.month-cell.absence-date-selected{background:#e9e2fb!important;box-shadow:inset 0 0 0 1px #b9a7ee}.day-head.absence-date-selected b{color:#6b4eff}

/* Lesson status badges share the calendar palette across pages and dialogs. */
.pill.status-scheduled,.event-status-icon.status-scheduled,.lesson-row-status.status-scheduled,.calendar-status-menu .status-scheduled{background:#fff0dc!important;color:#a77b3c!important}
.pill.status-completed,.event-status-icon.status-completed,.lesson-row-status.status-completed,.calendar-status-menu .status-completed{background:#e7f3ec!important;color:var(--green)!important}
.pill.status-cancelled,.event-status-icon.status-cancelled,.lesson-row-status.status-cancelled,.calendar-status-menu .status-cancelled{background:#fae0e4!important;color:#aa5961!important}
.pill.status-cancelled_charged,.event-status-icon.status-cancelled_charged,.lesson-row-status.status-cancelled_charged,.calendar-status-menu .status-cancelled_charged{background:#fbe8e8!important;color:#b27171!important}
#modal-title{display:flex;align-items:center;gap:8px}.calendar-activity-control{position:relative;display:inline-flex;align-items:center}.calendar-activity-toggle{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:9px;background:transparent;color:#9691a8;cursor:pointer}.calendar-activity-toggle:hover{background:#eee9f8;color:var(--purple)}.calendar-activity-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.calendar-activity-menu{position:absolute;top:calc(100% + 8px);left:0;width:258px;max-width:calc(100vw - 70px);padding:8px;border:0;border-radius:20px;background:rgba(248,244,255,.97);backdrop-filter:blur(18px);box-shadow:0 15px 40px #29213d1f;z-index:100}.calendar-activity-menu[hidden]{display:none}.calendar-activity-menu>button{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:13px 14px;border:0;border-radius:13px;background:transparent;color:#858995;font-family:inherit;font-size:14px;font-weight:400;line-height:21px;text-align:left;cursor:pointer}.calendar-activity-menu>button[aria-selected=true],.calendar-activity-menu>button:hover,.calendar-activity-menu>button:focus-visible{background:#e9e2f5}.calendar-activity-menu>button[aria-selected=true]{font-weight:600}.activity-check{color:var(--purple);font-size:19px}
@media(max-width:700px){.calendar-activity-menu{left:auto;right:-30px;width:250px}}
#modal-form .calendar-activity-type-field{display:none!important}.calendar-absence-label{position:sticky;top:6px;display:block;padding:6px 8px;color:#8c8d9b;font-size:11px;line-height:16px;font-weight:500;overflow-wrap:anywhere}
/* Shared dropdown surface and option states; status palettes remain semantic. */
:root{--menu-surface:rgba(248,245,255,.96);--menu-ink:#a2a0ad;--menu-selected:#e9e2f5;--menu-selected-ink:#7152b0;--menu-shadow:0 12px 34px #40305b26}
.student-duration-options,.calendar-activity-menu{background:var(--menu-surface);border:0;border-radius:12px;box-shadow:var(--menu-shadow);backdrop-filter:blur(18px)}
.calendar-activity-menu>button,.student-duration-options button{font-family:inherit;font-size:11px;line-height:1.5;font-weight:400;color:var(--menu-ink);border-radius:9px}
.calendar-activity-menu>button[aria-selected=true],.calendar-activity-menu>button:hover,.calendar-activity-menu>button:focus-visible,.student-duration-options button:hover,.student-duration-options button:focus-visible,.student-duration-options button[aria-selected=true]{background:var(--menu-selected);color:var(--menu-selected-ink)}
.calendar-activity-menu>button[aria-selected=true],.student-duration-options button[aria-selected=true]{font-weight:600}

body.standalone-teacher #sidebar .workspace{display:none}
body.standalone-teacher #nav{margin-top:28px}
.school-onboarding-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.school-onboarding-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:15px;background:#eee9fb;color:var(--purple);margin-bottom:18px}.school-onboarding-icon svg{width:26px;height:26px}.school-create-card .body-copy{margin:12px 0 24px;max-width:460px}.school-invitations-empty{padding:40px 12px;text-align:center;font-size:14px;color:var(--muted)}.school-invitations-empty p{font-size:13px;margin-top:7px}.school-invitation{padding:18px 0;border-top:1px solid var(--line)}.school-invitation .body-copy{margin:8px 0 14px}@media(max-width:900px){.school-onboarding-grid{grid-template-columns:1fr}}

/* Hide the school email example while entering an address. */
input[name="schoolEmail"]:focus::placeholder{color:transparent}

.school-membership-panels{display:grid;gap:20px;margin-top:20px}.teacher-schools .actions{flex-wrap:wrap;justify-content:flex-end}.teacher-schools .lesson{flex-wrap:wrap}

.external-calendars{margin-top:20px}.external-calendars>.body-copy{margin-bottom:20px}.external-provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.external-provider{display:flex;align-items:center;flex-wrap:wrap;gap:14px;background:#f8f7fc;padding:18px;border-radius:14px}.external-provider-mark{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:#eee9fa;color:#7963ac;border-radius:12px;font-size:22px;font-weight:650}.external-provider-body{flex:1;min-width:150px}.external-provider strong{font-size:14px}.external-provider small{font-size:11px;margin-top:4px}.external-event-list{max-height:46vh;overflow:auto}.external-event-list .lesson{flex-wrap:wrap}.external-event-list .actions{flex-wrap:wrap}@media(max-width:1000px){.external-provider-grid{grid-template-columns:1fr}}
.subscription-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.subscription-price{font-size:42px;font-weight:750;margin:24px 0;color:var(--ink)}.subscription-price small{font-size:13px;font-weight:400}.subscription-plan .profile-details{margin-bottom:20px}.subscription-plan .body-copy{max-width:520px}.billing-method{margin:22px 0}.billing-method small{margin-top:8px;color:var(--green)}.billing-seat-summary,.billing-history,.billing-demo,.billing-teachers-table{margin-top:20px}.billing-seat-counts{display:flex;gap:48px;margin:22px 0;flex-wrap:wrap}.billing-seat-counts strong{font-size:30px;color:var(--ink)}.billing-seat-counts small{font-size:12px;max-width:190px}.billing-history td:last-child{white-space:nowrap;text-align:right;font-weight:650}.billing-demo summary{font-size:13px;color:var(--muted);cursor:pointer}.billing-demo .actions{margin-top:15px;flex-wrap:wrap}.subscription-readonly-banner{margin-bottom:20px}.subscription-readonly #event-save{display:none}.subscription-readonly [disabled]{cursor:default;opacity:.6}.billing-teachers-table td:last-child{text-align:right}.subscription-readonly.calendar-page .subscription-readonly-banner{font-size:12px;margin:0;padding:8px 12px}.subscription-readonly #modal input:disabled,.subscription-readonly #modal textarea:disabled{opacity:1}@media(max-width:800px){.subscription-grid{grid-template-columns:1fr}.billing-seat-counts{gap:24px}.subscription-price{font-size:34px}.billing-teachers-table{overflow:auto}}

#sidebar{overflow-y:auto}.billing-history .table-wrap{overflow-x:auto}.billing-history td{white-space:normal}

.school-teacher-overview{grid-template-columns:1fr}.school-access-status{display:flex;flex-direction:column;align-items:center;gap:4px}.school-access-status small{font-size:11px;white-space:nowrap}.teacher-schools .actions{align-items:center}

.school-remove-teacher{color:#b27171!important;white-space:nowrap}.school-remove-teacher:hover{background:#fbe8e8!important}.billing-teachers-table td:last-child{white-space:nowrap}

/* Флоу brand monogram. */
.brandmark{font-size:27px;line-height:36px;font-weight:650}

.workweek-swipe-card{touch-action:pan-y;user-select:none}.workweek-swipe-card:focus-visible{outline:2px solid #ad96df;outline-offset:3px}.workweek-navigation{display:flex;align-items:center;gap:5px;margin-left:auto}.workweek-navigation button{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border:0;border-radius:9px;background:#f1edf9;color:#79669e;font:inherit;font-size:20px;cursor:pointer}.workweek-navigation [data-week-current]{font-size:11px}.workweek-navigation button:disabled{opacity:.5;cursor:default}.workweek-navigation button:hover:not(:disabled){background:#e8e0f5}.workweek-period{margin-top:4px}.workweek-swipe-card .workweek-chart{cursor:grab}.workweek-swipe-card .workweek-chart:active{cursor:grabbing}

.workweek-viewport{position:relative;overflow:hidden;margin:0 -2px;padding:0 2px;isolation:isolate}.workweek-slide{width:100%;box-sizing:border-box;will-change:transform,opacity}.workweek-slide-incoming{position:absolute;top:0;left:2px;width:calc(100% - 4px)}

/* Keep the subject aligned with single-line values in the student row. */
.students-table .student-subject{position:relative}.students-table .student-subject>small{position:absolute;top:100%;left:0;right:0}
