@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&display=swap");:root{--bg:#f7f7ff;--surface:#ffffff;--surface-soft:#f0f1ff;--primary:#595dff;--primary-dark:#3f43d9;--primary-light:#e7e8ff;--accent:#f99c6e;--text:#01050c;--muted:#6f728a;--line:#e3e5ff;--green:#2f9e44;--red:#d9480f;--blue:#595dff;--yellow:#ffa10a;--shadow:0 18px 45px rgba(89,93,255,0.10);--radius-lg:24px;--radius-md:18px;--radius-sm:12px}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);font-family:Nunito,Arial,sans-serif;color:var(--text)}button,input,select{font-family:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}button{transition:.2s ease}a{color:var(--primary);font-weight:800;text-decoration:none}.publicBookingPage{min-height:100vh;padding:28px 20px 56px;background:var(--bg)}.publicBookingPanel{width:min(680px,100%);margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.publicBookingSuccess{width:min(560px,100%);padding:42px 30px;text-align:center}.publicBookingSuccessIcon{display:inline-grid;width:52px;height:52px;margin-bottom:18px;place-items:center;border-radius:50%;color:#fff;background:var(--green)}.publicBookingHeader{display:flex;align-items:center;gap:14px;padding:22px 26px;border-bottom:1px solid var(--line)}.publicBookingHeader>div{min-width:0}.publicBookingHeader>div>p:last-child{margin:5px 0 0;color:var(--muted);font-size:14px;font-weight:700}.publicBookingAvatar{display:grid;width:48px;height:48px;flex:0 0 auto;place-items:center;border-radius:50%;color:var(--primary);background:var(--primary-light)}.publicBookingEyebrow{margin:0 0 3px;color:var(--primary);font-size:12px;font-weight:800;text-transform:uppercase}.publicBookingPanel h1{margin:0;font-size:22px;line-height:1.25;letter-spacing:0}.publicBookingLead,.publicBookingStatus{color:var(--muted);line-height:1.5}.publicBookingError{margin:18px 26px 0;padding:12px 14px;color:#b42318;background:#fff1f0;border:1px solid #ffd3ce;border-radius:8px;font-weight:700}.publicBookingStatus{padding:34px 26px;text-align:center}.publicBookingCalendarSection,.publicBookingForm,.publicBookingTimesSection{padding:26px;border-bottom:1px solid var(--line)}.publicBookingForm{display:grid;grid-gap:22px;gap:22px;border-bottom:0;scroll-margin-top:16px}.publicBookingSectionTitle{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.publicBookingSectionTitle>svg{color:var(--primary)}.publicBookingSectionTitle h2{margin:0;font-size:20px;letter-spacing:0}.publicBookingSectionTitle p:not(.publicBookingStep){margin:4px 0 0;color:var(--muted);font-size:14px;font-weight:700;text-transform:capitalize}.publicBookingStep{margin:0 0 3px;color:var(--primary);font-size:11px;font-weight:800;text-transform:uppercase}.publicBookingMonthBar{display:flex;align-items:center;justify-content:space-between;min-height:40px;margin-bottom:8px}.publicBookingMonthBar strong{font-size:16px}.publicBookingMonthActions{display:flex;gap:6px}.publicBookingMonthActions button{display:grid;width:36px;height:36px;padding:0;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--text);background:#fff;cursor:pointer}.publicBookingMonthActions button:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.publicBookingMonthActions button:disabled{color:#c8cada;background:#f8f8fc;cursor:not-allowed}.publicBookingCalendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:28px repeat(6,44px);grid-gap:4px;gap:4px}.publicBookingWeekday{display:grid;place-items:center;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.publicBookingDate{width:100%;height:44px;padding:0;border:0;border-radius:8px;color:var(--text);background:transparent;font-size:14px;font-weight:800;cursor:pointer}.publicBookingDate:hover:not(:disabled){color:var(--primary);background:var(--primary-light)}.publicBookingDate.active{color:#fff;background:var(--primary)}.publicBookingDate:disabled{color:#c8cada;cursor:default}.publicBookingDate.outside{opacity:.45}.publicBookingTimesSection{background:#fcfcff}.publicBookingTimeGroup+.publicBookingTimeGroup{margin-top:20px}.publicBookingTimeGroupHeader{display:flex;width:100%;align-items:center;justify-content:space-between;margin-bottom:10px;padding:0;border:0;color:var(--text);background:transparent;font-size:16px;font-weight:800;cursor:pointer}.publicBookingTimeGroupHeader svg{transition:transform .2s ease}.publicBookingTimeGroupHeader svg.collapsed{transform:rotate(-90deg)}.publicBookingTimes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.publicBookingTime{min-height:44px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:#f1f2f7;font-weight:800;cursor:pointer}.publicBookingTime.active,.publicBookingTime:hover{border-color:var(--primary);color:#fff;background:var(--primary)}.publicBookingSelection{display:grid;justify-items:end;color:var(--muted)}.publicBookingSelection strong{color:var(--primary);font-size:20px}.publicBookingSelection span{font-size:12px;font-weight:700;text-transform:capitalize}.publicBookingFields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.publicBookingFields label{display:grid;grid-gap:7px;gap:7px;color:var(--muted);font-size:13px;font-weight:800}.publicBookingFields input,.publicBookingFields select,.publicBookingFields textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:11px 12px;color:var(--text);font:inherit;resize:vertical}.publicBookingFields input:focus,.publicBookingFields select:focus,.publicBookingFields textarea:focus{outline:2px solid #c8caff;border-color:var(--primary)}.publicBookingWide{grid-column:1/-1}.publicBookingSubmit{min-height:50px;border:0;border-radius:8px;color:#fff;background:var(--primary);font-size:16px;font-weight:800;cursor:pointer}.publicBookingSubmit:disabled{cursor:not-allowed;opacity:.55}@media (max-width:620px){.publicBookingPage{padding:0}.publicBookingPanel{min-height:100vh;border-width:0;border-radius:0;box-shadow:none}.publicBookingCalendarSection,.publicBookingForm,.publicBookingHeader,.publicBookingTimesSection{padding:22px 18px}.publicBookingFields{grid-template-columns:1fr}.publicBookingWide{grid-column:auto}.publicBookingSelection{max-width:150px}}@media (max-width:390px){.publicBookingTimes{grid-template-columns:repeat(2,minmax(0,1fr))}.publicBookingCalendar{grid-template-rows:26px repeat(6,40px)}.publicBookingDate{height:40px}}.loginPage{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.loginPanel{width:min(440px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:26px}.loginPanel h1{margin:0 0 18px;font-size:32px;line-height:1.1;letter-spacing:0}.app{display:grid;grid-template-columns:280px 1fr;width:100%;min-height:100vh}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;background:var(--surface);border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;gap:24px}.brand{display:flex;align-items:center;gap:12px;padding:0 8px}.brand.large{padding:0;margin-bottom:22px}.brand-logo{width:44px;height:44px;border-radius:14px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;box-shadow:0 12px 25px rgba(89,93,255,.28)}.brand-title{line-height:1.1}.brand-title strong{display:block;font-size:16px;font-weight:800}.brand-title span{font-size:12px;color:var(--muted)}.nav{display:flex;flex-direction:column;gap:6px}.nav-title{margin:0 8px 8px;font-size:12px;font-weight:800;color:#8b8eb5;text-transform:uppercase;letter-spacing:.08em}.nav-item{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;border:0;border-radius:14px;background:transparent;color:var(--muted);text-decoration:none;font-size:15px;font-weight:700;cursor:pointer;text-align:left}.nav-item:hover{background:var(--surface-soft);color:var(--text)}.nav-item.active{background:var(--primary);color:#fff;box-shadow:0 12px 24px rgba(89,93,255,.24)}.nav-icon{width:22px;display:grid;place-items:center}.sidebar-card{margin-top:auto;padding:16px;border-radius:var(--radius-md);background:var(--surface-soft);border:1px solid #dfe1ff}.sidebar-card strong{display:block;margin-bottom:6px;font-size:14px}.sidebar-card p{margin:0 0 12px;font-size:13px;color:var(--muted);line-height:1.4}.sidebar-card button{width:100%;border:none;border-radius:var(--radius-sm);background:var(--primary);color:#fff;padding:10px 12px;font-weight:800;cursor:pointer}.main{min-width:0;padding:28px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.topbar-left{display:flex;gap:14px;align-items:center}.page-title h1{margin:0;font-size:34px;line-height:1.1;letter-spacing:0}.page-title p{margin:8px 0 0;color:var(--muted);font-size:16px}.top-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.search{position:relative;width:280px}.search input{width:100%;border:1px solid var(--line);background:#fff;border-radius:16px;padding:13px 16px 13px 42px;outline:none;font-size:14px;box-shadow:0 10px 25px rgba(69,43,24,.04)}.search span{position:absolute;top:50%;left:15px;transform:translateY(-50%);color:var(--muted);display:grid;place-items:center}.user-card{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);padding:8px 12px 8px 8px;border-radius:18px;box-shadow:0 10px 25px rgba(69,43,24,.04)}.avatar{width:38px;height:38px;border-radius:13px;background:#2f2f2f;color:#fff;display:grid;place-items:center;font-weight:800}.user-card strong{display:block;font-size:13px;line-height:1}.user-card span{color:var(--muted);font-size:12px}.icon-action,.mobile-menu-btn{border:none;background:var(--primary);color:#fff;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 25px rgba(89,93,255,.18)}.mobile-menu-btn{display:none}.notice,.statusText{margin:0 0 24px;padding:12px 14px;border-radius:16px;background:#fff;border:1px solid var(--line);color:var(--muted);font-size:14px;font-weight:700}.notice.error{color:var(--red);background:#fff0eb;border-color:#ffd7c9}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border-radius:999px;background:var(--primary-light);color:var(--primary-dark);padding:7px 12px;font-size:13px;font-weight:900}.status-pill.warning{background:#fff3e4;color:#c66a00}.quick-actions{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));grid-gap:12px;gap:12px;margin-bottom:24px}.quick-btn{border:1px solid var(--line);background:#fff;border-radius:18px;padding:14px 12px;cursor:pointer;font-weight:800;color:var(--text);display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 10px 25px rgba(69,43,24,.04)}.quick-btn:hover{transform:translateY(-2px);border-color:#b8bbff;box-shadow:0 16px 30px rgba(69,43,24,.08)}.primary,.quick-btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.primary{border:none;border-radius:14px}.neutral,.primary{padding:12px 16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center}.neutral{border:1px solid var(--line);border-radius:14px;background:#f7f8ff;color:var(--primary-dark)}.neutral:hover{border-color:#c9ccff;background:var(--primary-light)}.neutral.danger{border-color:#ffd6c9;background:#fff2ed;color:var(--red)}.neutral.danger:hover{border-color:#ffb59f;background:#ffe8df}.neutral:disabled,.primary:disabled{opacity:.58;cursor:not-allowed;transform:none}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:18px;gap:18px;margin-bottom:24px}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;width:110px;height:110px;border-radius:999px;right:-45px;top:-45px;background:var(--surface-soft)}.stat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:1}.stat-label{color:var(--muted);font-size:14px;font-weight:800}.stat-icon{width:42px;height:42px;border-radius:15px;display:grid;place-items:center;background:var(--primary-light);color:var(--primary-dark);font-size:15px;font-weight:800}.stat-value{margin:14px 0 8px;font-size:31px;line-height:1;font-weight:800;letter-spacing:0}.stat-note,.stat-value{position:relative;z-index:1}.stat-note{color:var(--muted);font-size:13px;font-weight:700}.dashboard-grid{display:grid;grid-template-columns:1.3fr .7fr;grid-gap:18px;gap:18px;align-items:start}.balanceAlertsPanel{margin-bottom:18px}.balanceAlertsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.balanceAlertsTitle{min-height:64px;display:grid;grid-template-columns:1fr auto;grid-gap:4px 12px;gap:4px 12px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:#fbfbff}.balanceAlertsTitle strong{font-size:18px;line-height:1.1}.balanceAlertsTitle span{color:var(--muted);font-size:13px;font-weight:800}.balanceAlertsTitle em{grid-row:1/3;grid-column:2;min-width:38px;height:38px;display:grid;place-items:center;border-radius:999px;font-style:normal;font-weight:900}.balanceAlertsTitle.danger em{background:#fff0f0;color:#d9480f}.balanceAlertsTitle.warning em{background:#fff4e6;color:#c77700}.balanceStudentsList{display:grid;grid-gap:8px;gap:8px;margin-top:10px}.balanceStudentRow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--line);border-radius:16px;background:#fff;padding:10px}.balanceStudentRow.zero{border-color:#ffd8d8}.balanceStudentRow.one{border-color:#ffe0b3}.balanceStudentMain{min-width:0;display:grid;grid-gap:3px;gap:3px;border:0;background:transparent;color:var(--text);padding:0;text-align:left;cursor:pointer}.balanceStudentMain strong{font-size:14px;line-height:1.2}.balanceStudentMain span{color:var(--muted);font-size:12px;font-weight:800;line-height:1.25}.sectionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px;align-items:start}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px;min-width:0}.panel.wide,.seniorTeamPanel{grid-column:1/-1}.panel-header{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px}.panel h2,.panel-header h2{margin:0;font-size:21px;letter-spacing:0}.panel h2{margin-bottom:16px}.panel p,.panel-header p{margin:4px 0 0;color:var(--muted);font-size:13px}.compactForm,.formStack{display:grid;grid-gap:12px;gap:12px}.compactForm{grid-template-columns:repeat(3,minmax(0,1fr))}.studentParentForm{display:grid;grid-gap:18px;gap:18px}.formGroup{border:1px solid var(--line);border-radius:var(--radius-md);background:#fbfbff;padding:16px}.formGroup h3{margin:0 0 12px;font-size:16px}.formGroupHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.formGroupHeader h3{margin:0}.formSubmit{justify-self:start}.addChildButton{width:-moz-fit-content;width:fit-content;min-height:44px;display:inline-flex;align-items:center;gap:8px;border:1px dashed #b8bbff;border-radius:14px;background:var(--primary-light);color:var(--primary-dark);padding:10px 14px;font-weight:900;cursor:pointer}.analyticsWorkspace{display:grid;grid-gap:18px;gap:18px}.analyticsHero{display:grid;grid-gap:16px;gap:16px}.analyticsFilters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:12px;gap:12px}.analyticsFilters label{display:grid;grid-gap:6px;gap:6px}.analyticsFilters span{color:var(--muted);font-size:12px;font-weight:900}.analyticsKpiGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px}.analyticsKpiCard{min-height:122px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);padding:18px;display:grid;align-content:center;grid-gap:8px;gap:8px;position:relative;overflow:hidden}.analyticsKpiCard:after{content:"";position:absolute;width:96px;height:96px;border-radius:999px;right:-40px;top:-40px;background:var(--surface-soft)}.analyticsKpiCard small,.analyticsKpiCard span,.analyticsKpiCard strong{position:relative;z-index:1}.analyticsKpiCard span{color:var(--muted);font-size:13px;font-weight:900}.analyticsKpiCard strong{color:var(--primary);font-size:30px;line-height:1;overflow-wrap:anywhere}.analyticsKpiCard small{color:var(--muted);font-size:12px;font-weight:800;line-height:1.25}.analyticsTabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.analyticsTabs button{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:10px 14px;font-weight:900;white-space:nowrap;cursor:pointer}.analyticsTabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.analyticsGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.analyticsGrid,.analyticsMiniPanel{display:grid;grid-gap:14px;gap:14px}.analyticsMiniPanel.warning{border-color:#ffd8a8;background:#fffaf0}.analyticsMetricList{display:grid;grid-gap:9px;gap:9px}.analyticsMetricList div{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;background:#fbfbff;padding:10px 12px}.analyticsMetricList span{color:var(--muted);font-size:13px;font-weight:900}.analyticsMetricList strong{font-size:16px;text-align:right}.analyticsBarsPanel{display:grid;grid-gap:14px;gap:14px}.analyticsBars{display:grid;grid-gap:10px;gap:10px}.analyticsBarRow{display:grid;grid-gap:7px;gap:7px}.analyticsBarRow div{display:flex;align-items:center;justify-content:space-between;gap:12px}.analyticsBarRow strong{min-width:0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analyticsBarRow span{color:var(--muted);font-size:12px;font-weight:900;white-space:nowrap}.analyticsBarRow em{height:10px;border-radius:999px;background:#eef0ff;overflow:hidden}.analyticsBarRow i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),#8ce99a)}.analyticsEmptyState{display:grid;grid-gap:14px;gap:14px}.analyticsTodoGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.analyticsTodoGrid span{border:1px dashed #b8bbff;border-radius:14px;background:#fbfbff;color:var(--muted);padding:14px;font-weight:900}.rfmOverviewPanel{display:grid;grid-gap:16px;gap:16px}.rfmOverviewPanel .panel-header{margin-bottom:0}.rfmOverviewPanel .panel-header>span{min-width:54px;min-height:42px;border-radius:14px;background:var(--primary-light);color:var(--primary);display:inline-flex;align-items:center;justify-content:center;font-weight:1000}.rfmStatsGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.rfmStatCard{min-height:92px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--text);padding:16px;text-align:left;display:grid;align-content:center;grid-gap:6px;gap:6px;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.rfmStatCard:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(35,39,75,.1);border-color:rgba(89,93,255,.42)}.rfmStatCard strong{color:var(--primary);font-size:28px;line-height:1}.rfmStatCard span{color:var(--muted);font-size:13px;font-weight:900}.rfmStatCard.low{background:#effbf3}.rfmStatCard.attention,.rfmStatCard.sleeping{background:#fff8ea}.rfmStatCard.high{background:#fff3ee}.rfmStatCard.critical{background:#fff0f2}.rfmStatCard.loyal,.rfmStatCard.new,.rfmStatCard.vip{background:#f2f2ff}.renewalPriorityPanel{border:1px solid var(--line);border-radius:18px;background:#fbfbff;padding:16px;display:grid;grid-gap:12px;gap:12px}.renewalPriorityHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.renewalPriorityHeader div{display:grid;grid-gap:4px;gap:4px}.renewalPriorityHeader strong{font-size:17px}.renewalPriorityHeader span{color:var(--muted);font-size:13px;font-weight:800}.renewalPriorityHeader em{min-width:34px;min-height:30px;border-radius:12px;background:var(--primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-weight:1000}.renewalPriorityList{display:grid;grid-gap:8px;gap:8px}.renewalPriorityList button{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.6fr) auto;align-items:center;grid-gap:12px;gap:12px;color:var(--text);text-align:left;cursor:pointer}.renewalPriorityList button:hover{border-color:rgba(89,93,255,.48);background:#f7f7ff}.renewalPriorityList em,.renewalPriorityList strong{font-weight:1000}.renewalPriorityList span{color:var(--muted);font-size:13px;font-weight:850}.renewalPriorityList em{color:var(--primary);font-style:normal}.collapsibleCreatePanel .panel-header{margin-bottom:0}.collapsibleCreatePanel .studentParentForm{margin-top:16px}.compactForm .fieldLabel,.formStack label{display:grid;grid-gap:6px;gap:6px;font-size:13px;font-weight:800;color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:16px;padding:13px 14px;outline:none;font-size:14px;color:var(--text)}textarea{min-height:104px;resize:vertical;font-family:inherit}input:focus,select:focus,textarea:focus{border-color:#b8bbff;box-shadow:0 0 0 4px rgba(89,93,255,.1)}.table-wrap{overflow-x:auto}.table-wrap.scrollRows{max-height:390px;overflow:auto;border-radius:14px}.table-wrap.scrollRows thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--surface)}tr.clickableRow{cursor:pointer}tr.clickableRow:focus-visible td,tr.clickableRow:hover td{background:var(--primary-light)}tr.clickableRow:focus-visible{outline:3px solid rgba(89,93,255,.24);outline-offset:-3px}.clickableMiniRow,.clickableStudentRow,.clickableText,.inlineStudentButton{cursor:pointer}.clickableText:hover,.inlineStudentButton:hover{color:var(--primary)}.inlineStudentButton{border:none;background:transparent;color:inherit;padding:0;font:inherit;font-weight:900}.clickableMiniRow:hover,.clickableStudentRow:hover{border-color:#c9ccff;background:var(--primary-light)}.table-action{border:none;background:var(--surface-soft);color:var(--primary-dark);font-weight:800;border-radius:10px;padding:8px 10px;cursor:pointer}.teamDirectoryPanel{overflow:hidden}.teamDirectoryHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.teamDirectoryHeader h2,.teamDirectoryHeader p{margin:0}.teamDirectoryHeader p{margin-top:4px;color:var(--muted);font-size:13px;font-weight:700}.teamDirectoryCount{display:grid;min-width:36px;height:36px;padding:0 10px;place-items:center;border-radius:8px;color:var(--primary-dark);background:var(--primary-light);font-weight:900}.teamStatusFilters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.teamStatusFilters button{min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:#fff;font-weight:800;cursor:pointer}.teamStatusFilters button.active,.teamStatusFilters button:hover{border-color:var(--primary);color:#fff;background:var(--primary)}.teamTeacherIdentity{display:flex;min-width:220px;align-items:center;gap:10px}.teamTeacherIdentity>span:last-child{display:grid;grid-gap:2px;gap:2px}.teamTeacherIdentity small{color:var(--muted);font-weight:700}.teamBookingLink{display:flex;min-width:250px;align-items:center;gap:8px}.teamBookingLink a{max-width:150px;overflow:hidden;color:var(--primary);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.teamBookingLink button{display:inline-flex;min-height:34px;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;color:var(--primary-dark);background:var(--surface-soft);font-weight:800;cursor:pointer}.teamBookingLink button:hover{border-color:var(--primary);color:#fff;background:var(--primary)}.teacherTelegramAction{display:inline-flex;align-items:center;gap:7px;background:#229ed9;color:#fff;text-decoration:none;box-shadow:0 10px 22px rgba(34,158,217,.2)}.teacherTelegramAction:hover{color:#fff;transform:translateY(-1px)}.teacherTelegramAction.disabled,.teacherTelegramAction:disabled{background:#d8dbea;color:#7b8099;box-shadow:none;cursor:not-allowed;transform:none}.leadsWorkspace{display:grid;grid-gap:16px;gap:16px}.leadsToolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:18px 20px}.leadsToolbar h2{margin:0;font-size:22px}.leadsToolbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.leadDrawerActions,.leadsActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.leadsTabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.leadsTabs button{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:14px;padding:10px 13px;font-weight:900;cursor:pointer;white-space:nowrap}.leadsTabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.leadCreateForm{align-items:end}.leadFormWide{grid-column:span 2}.leadsKanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,300px);grid-gap:12px;gap:12px;overflow-x:auto;min-height:560px;padding-bottom:8px}.leadColumn{min-width:0;background:#f7f8ff;border:1px solid var(--line);border-radius:var(--radius-md);display:grid;grid-template-rows:auto 1fr;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.leadColumn.dropTarget{background:#eef6ff;border-color:var(--primary);box-shadow:inset 0 0 0 2px rgba(89,93,255,.18)}.leadColumnHead{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:4px solid var(--primary);border-bottom:1px solid var(--line);padding:12px}.leadColumnHead strong{font-size:14px}.leadColumnHead span{min-width:28px;height:28px;border-radius:999px;background:#fff;display:grid;place-items:center;color:var(--muted);font-size:12px;font-weight:900}.leadColumnBody{display:grid;align-content:start;grid-gap:10px;gap:10px;padding:10px;overflow-y:auto}.leadCard{position:relative;display:grid;grid-gap:6px;gap:6px;width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);text-align:left;padding:12px;box-shadow:0 10px 24px rgba(89,93,255,.08);cursor:-webkit-grab;cursor:grab}.leadCard:hover{border-color:#c7caff;transform:translateY(-1px)}.leadCard:active{cursor:-webkit-grabbing;cursor:grabbing}.leadCard.dragging{opacity:.55;transform:rotate(1deg) scale(.98)}.leadCard strong{padding-right:12px;font-size:14px}.leadCard span{color:var(--muted);font-size:12px;line-height:1.35}.leadStatusDot{position:absolute;top:12px;right:12px;width:10px;height:10px;border-radius:999px}.leadLabels{display:flex;gap:6px;flex-wrap:wrap}.leadLabels em{border-radius:999px;background:var(--primary-light);color:var(--primary-dark);padding:4px 7px;font-size:11px;font-style:normal;font-weight:900}.leadDrawer{position:fixed;top:0;right:0;z-index:40;width:min(460px,100vw);height:100vh;background:var(--surface);border-left:1px solid var(--line);box-shadow:-20px 0 50px rgba(20,23,52,.12);display:grid;grid-template-rows:auto 1fr}.leadDrawerHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:20px;border-bottom:1px solid var(--line)}.leadDrawerHead h2{margin:0;font-size:22px}.leadDrawerHead p{margin:4px 0 0;color:var(--muted);font-size:13px}.leadDrawerBody{overflow-y:auto;padding:18px 20px 28px;display:grid;align-content:start;grid-gap:18px;gap:18px}.leadDrawerBody section{border-bottom:1px solid var(--line);padding-bottom:18px;display:grid;grid-gap:12px;gap:12px}.leadDrawerBody section:last-child{border-bottom:0}.leadDrawerBody h3{margin:0;font-size:16px}.leadFacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.leadFacts span{display:grid;grid-gap:3px;gap:3px;border:1px solid var(--line);border-radius:12px;padding:10px;color:var(--muted);font-size:12px}.leadFacts strong{color:var(--text);overflow-wrap:anywhere}.leadChatsWorkspace{display:grid;grid-gap:16px;gap:16px}.leadChatsShell{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);grid-gap:16px;gap:16px;height:min(720px,calc(100vh - 260px));min-height:520px}.leadChatPanel,.leadChatsList{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.leadChatsList{display:grid;grid-template-rows:auto auto 1fr;grid-gap:10px;gap:10px;padding:14px;min-width:0;min-height:0;overflow:hidden}.leadChatSearch{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:12px;font-weight:900}.leadChatSearch input,.leadChatSearchButton{width:100%}.leadChatItems{display:grid;align-content:start;grid-gap:8px;gap:8px;overflow-y:auto;min-height:0;padding-right:2px}.leadChatItem{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;grid-gap:10px;gap:10px;width:100%;border:1px solid transparent;border-radius:14px;background:#f7f8ff;color:var(--text);text-align:left;padding:10px;cursor:pointer}.leadChatItem.active,.leadChatItem:hover{border-color:var(--primary);background:var(--primary-light)}.leadChatItem span:not(.leadChatAvatar){display:grid;grid-gap:3px;gap:3px;min-width:0}.leadChatItem em,.leadChatItem small,.leadChatItem strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leadChatItem em,.leadChatItem small{color:var(--muted);font-size:12px;font-style:normal}.leadChatItem b{min-width:24px;height:24px;border-radius:999px;place-items:center;font-size:12px}.leadChatAvatar,.leadChatItem b{background:var(--primary);color:#fff;display:grid}.leadChatAvatar{width:42px;height:42px;border-radius:14px;place-items:center;font-weight:900}.leadChatPanel{display:grid;grid-template-rows:auto 1fr auto;min-width:0;min-height:0;overflow:hidden}.leadChatHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:16px}.leadChatHeader h3{margin:0;font-size:20px}.leadChatHeader p{margin:4px 0 0;color:var(--muted);font-size:13px}.leadChatMessages{display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding:16px;background:#fbfbff}.leadChatBubble{max-width:min(640px,82%);border:1px solid var(--line);border-radius:16px;padding:10px 12px;background:#fff;box-shadow:0 8px 18px rgba(89,93,255,.06)}.leadChatBubble.outgoing{align-self:flex-end;background:var(--primary);border-color:var(--primary);color:#fff}.leadChatBubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.leadChatBubble span{display:block;margin-top:6px;color:var(--muted);font-size:11px;font-weight:800}.leadChatBubble.outgoing span{color:rgba(255,255,255,.72)}.leadChatComposer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;grid-gap:10px;gap:10px;border-top:1px solid var(--line);padding:14px;background:var(--surface)}.leadChatComposer textarea{min-height:84px;resize:vertical}.leadChatEmpty{min-height:420px;display:grid;place-items:center;align-content:center;grid-gap:10px;gap:10px;color:var(--muted)}.checkboxLine{display:flex!important;align-items:center;gap:8px}.checkboxLine input{width:auto}.calendarControls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendarTeacherFilter{min-width:230px;height:42px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--text);font:inherit;font-weight:700;padding:0 12px}.selectedPayrollRow td{background:rgba(88,89,255,.08)}.payrollDashboardPanel{grid-column:1/-1;min-width:0}.payrollDashboardShell{display:grid;grid-gap:24px;gap:24px}.payrollTopbar{display:flex;align-items:center;justify-content:space-between;gap:24px}.payrollTitle h2{margin:0;font-size:21px;line-height:1.25}.payrollTitle p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.4;font-weight:700}.payrollHeaderActions{display:grid;justify-items:end;grid-gap:10px;gap:10px}.payrollPeriodControls{display:flex;align-items:center;justify-content:flex-end;gap:6px}.payrollMonthButton,.payrollMonthInput,.payrollMonthReset{min-height:40px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--text);font:inherit;font-weight:800}.payrollMonthButton{display:inline-flex;width:40px;align-items:center;justify-content:center;cursor:pointer}.payrollMonthReset{padding:0 14px;cursor:pointer}.payrollMonthInput{min-width:164px;padding:0 12px}.payrollActionsRow{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.payrollBtn{min-height:40px;font-size:14px;white-space:nowrap}.payrollBtn:hover:not(:disabled){transform:translateY(-1px)}.payrollBtn:disabled,.payrollSmallBtn:disabled{cursor:not-allowed;opacity:.5}.payrollBtnPrimary{background:var(--primary);color:#fff}.payrollBtnLight{border-color:#dfe3ff;background:#fff;color:var(--primary)}.payrollBtnGray{background:#f2f4f8;color:#4b5167}.payrollKpiGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:18px;gap:18px}.payrollKpi{min-width:0;min-height:158px}.payrollKpi:after{display:none}.payrollKpiFund{border-color:#cfd2ff}.payrollKpiIcon{display:inline-flex;width:38px;height:38px;flex:0 0 38px;align-items:center;justify-content:center;border-radius:8px;background:#f1f3f8;color:#687084}.payrollKpiPrimary .payrollKpiIcon{background:var(--primary);color:#fff}.payrollKpiGreen .payrollKpiIcon{background:#eaf8ef;color:#16803d}.payrollKpiBlue .payrollKpiIcon{background:#edf5ff;color:#2563eb}.payrollKpiOrange .payrollKpiIcon{background:#fff4df;color:#b95f00}.payrollKpiFund .payrollKpiIcon{background:#f7ebfb;color:#9638a7}.payrollKpi .stat-icon{border-radius:15px}.payrollKpi .stat-value{font-size:28px;white-space:nowrap}.payrollKpi .stat-note{line-height:1.35}.payrollStatusGrid{display:grid;grid-template-columns:1fr 1fr 2fr;grid-gap:16px;gap:16px}.payrollMiniCard,.payrollProgressCard{border:1px solid var(--line);border-radius:18px;background:#fbfcff;padding:16px}.payrollMiniCard span,.payrollProgressCard span{display:block;color:var(--muted);font-size:13px;font-weight:900}.payrollMiniCard strong{display:block;margin-top:8px;font-size:18px;line-height:1.25}.payrollProgressCard>div:first-child{display:flex;justify-content:space-between;gap:16px;margin-bottom:10px}.payrollProgressCard strong{color:var(--primary)}.payrollProgress{height:8px;overflow:hidden;border-radius:999px;background:var(--surface-soft)}.payrollProgress span{height:100%;border-radius:inherit;background:var(--primary)}.payrollReadinessBar{display:grid;grid-template-columns:minmax(180px,auto) minmax(260px,1fr) minmax(180px,auto);grid-gap:24px;gap:24px;align-items:center;padding:18px 20px}.payrollReadinessBonus,.payrollReadinessText{display:grid;grid-gap:3px;gap:3px}.payrollReadinessBonus span,.payrollReadinessProgress span,.payrollReadinessText span{color:var(--muted);font-size:12px;font-weight:800}.payrollReadinessBonus strong,.payrollReadinessText strong{font-size:17px}.payrollReadinessText small{color:#c36a00;font-size:12px;font-weight:800}.payrollReadinessProgress>div:first-child{display:flex;justify-content:space-between;margin-bottom:7px}.payrollReadinessProgress strong{color:var(--primary);font-size:13px}.payrollReadinessBonus{padding-left:24px;border-left:1px solid var(--line)}.payrollSectionHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.payrollSectionHeader h2{margin:0;font-size:21px}.payrollFilters{display:flex;flex-wrap:wrap;gap:6px}.payrollFilters button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#4b5167;padding:7px 10px;font:inherit;font-size:13px;font-weight:900;cursor:pointer}.payrollFilters button.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary)}.payrollFilters button span{display:inline-flex;min-width:21px;height:21px;align-items:center;justify-content:center;border-radius:7px;background:#eef0f5;color:#687084;font-size:11px}.payrollFilters button.active span{background:#fff;color:var(--primary)}.payrollTablePanel{overflow:hidden}.payrollTableCard{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff}.payrollTableWrap{overflow-x:auto}.payrollTableWrap table{width:100%;min-width:1180px;border-collapse:collapse}.payrollTableWrap thead{background:#f7f8ff}.payrollTableWrap th{padding:12px 14px;border-bottom:1px solid var(--line);color:#707791;font-size:12px;font-weight:900;text-align:left}.payrollTableWrap td{padding:14px;border-bottom:1px solid var(--line);font-size:14px;font-weight:800;vertical-align:middle}.payrollTableWrap tbody tr:hover{background:#fbfcff}.payrollTableWrap tbody tr:last-child td{border-bottom:none}.payrollTeacherCell{display:flex;align-items:center;gap:12px;min-width:200px;border:none;background:transparent;color:inherit;padding:0;text-align:left;cursor:pointer}.payrollTeacherCell small,.payrollTeacherCell strong{display:block}.payrollTeacherCell strong{line-height:1.25}.payrollTeacherCell small{margin-top:3px;color:var(--muted);font-size:12px;font-weight:800}.payrollAvatar{width:42px;height:42px;flex:0 0 42px;align-items:center;justify-content:center;border-radius:13px;background:var(--primary-light);color:var(--primary)}.payrollAvatar,.payrollRank{display:inline-flex;font-weight:900}.payrollRank{border-radius:12px;background:#f7f8fb;color:#4b5167;padding:7px 10px;font-size:13px}.payrollMoney{white-space:nowrap;font-weight:900}.payrollPlanCell{display:grid;grid-gap:4px;gap:4px}.payrollPlanCell small{color:var(--muted);font-size:12px;font-weight:800}.payrollBadge{display:inline-flex;align-items:center;border-radius:10px;padding:6px 10px;font-size:12px;font-weight:900;white-space:nowrap}.payrollBadge.green{background:#eaf8ef;color:#16a34a}.payrollBadge.orange{background:#fff4df;color:#d97706}.payrollBadge.blue{background:#edf5ff;color:#2563eb}.payrollBadge.gray{background:#f0f2f6;color:#687084}.payrollCalculationCell{display:grid;min-width:150px;justify-items:start;grid-gap:6px;gap:6px}.payrollCalculationCell small{color:var(--muted);font-size:11px;font-weight:800}.payrollInlineAction{border:0;background:transparent;color:var(--primary);padding:0;font:inherit;font-size:12px;font-weight:900;cursor:pointer}.payrollInlineAction:disabled{cursor:wait;opacity:.55}.payrollPaymentCell{display:grid;min-width:142px;grid-gap:9px;gap:9px}.payrollPaymentCell>div{display:grid;grid-gap:3px;gap:3px}.payrollPaymentCell strong,.payrollTotalCell strong{font-size:16px;white-space:nowrap}.payrollPaymentCell span,.payrollTotalCell span{color:#c36a00;font-size:11px;font-weight:800;white-space:nowrap}.payrollPaymentCell span.isPaid{color:#16803d}.payrollPaymentCell button{display:inline-flex;min-height:32px;align-items:center;justify-content:center;gap:6px;border:1px solid #bde9cc;border-radius:10px;background:#edfaf2;color:#16803d;padding:5px 9px;font:inherit;font-size:12px;font-weight:900;cursor:pointer}.payrollPaymentCellBonus button{border-color:#f4d9a8;background:#fff7e9;color:#a65300}.payrollPaymentCell button:disabled{border-color:#e3e5eb;background:#f4f5f8;color:#9298a8;cursor:not-allowed}.payrollTotalCell{display:grid;min-width:132px;grid-gap:5px;gap:5px}.payrollTotalCell span{color:var(--muted)}.payrollDetailsButton{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--primary);cursor:pointer}.payrollDetailsButton:hover{border-color:#c8cdff;background:var(--primary-light)}.payrollActionGroup{display:flex;flex-wrap:wrap;gap:8px;min-width:220px}.payrollActionGroup .table-action,.payrollSmallBtn{white-space:nowrap}.payrollSmallBtn{border:none;border-radius:11px;padding:8px 11px;font:inherit;font-size:13px;font-weight:900;cursor:pointer}.payrollSmallPrimary{background:var(--primary-light);color:var(--primary)}.payrollSmallGreen{background:#eaf8ef;color:#16a34a}.payrollSmallBonus{background:#fff4df;color:#c36a00}@media (max-width:1100px){.payrollKpiGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.payrollReadinessBar{grid-template-columns:1fr 1fr}.payrollReadinessProgress{grid-column:1/-1;grid-row:2}.payrollDetailsSummary{grid-template-columns:1fr}.payrollPayoutPanel{order:-1}}@media (max-width:1380px) and (min-width:1101px){.payrollKpiGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:720px){.payrollDashboardPanel{padding:0;border-radius:0}.payrollSectionHeader,.payrollTopbar{flex-direction:column;align-items:stretch}.payrollHeaderActions{justify-items:stretch}.payrollPeriodControls{justify-content:flex-start}.payrollMonthButton{flex:0 0 46px}.payrollMonthInput,.payrollMonthReset{flex:1 1}.payrollActionsRow,.payrollKpiGrid{grid-template-columns:1fr}.payrollActionsRow{display:grid}.payrollBtn{width:100%}.payrollFilters{gap:8px}.payrollReadinessBar{grid-template-columns:1fr;gap:12px}.payrollReadinessProgress{grid-column:auto;grid-row:auto}.payrollReadinessBonus{padding-top:12px;padding-left:0;border-top:1px solid var(--line);border-left:0}}.payrollTeacherDetails{width:min(1420px,calc(100vw - 32px));max-height:min(94vh,980px);overflow:hidden;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 32px 80px rgba(1,5,12,.28);padding:20px;display:flex;flex-direction:column}.payrollTeacherDetails h3{margin:0 0 6px;font-size:24px}.payrollTeacherDetails p{margin:0;color:var(--muted);font-weight:700}.payrollTeacherDetails .scrollRows{min-height:420px;max-height:min(64vh,700px);overflow:auto}.payrollDetailsSummary{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);grid-gap:16px;gap:16px;align-items:stretch;margin-bottom:16px}.payrollAnalyticsGrid{align-content:stretch;margin:0}.payrollPayoutPanel{display:grid;align-content:start;grid-gap:14px;gap:14px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,#fff,#fbfcff);padding:16px;box-shadow:0 18px 40px rgba(89,93,255,.08)}.payrollPayoutPanel h4{margin:0 0 4px;font-size:18px}.payrollPayoutPanel p{margin:0;color:var(--muted);font-size:13px;font-weight:800}.payrollPayoutList{display:grid;grid-gap:10px;gap:10px}.payrollPayoutRow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--line);border-radius:15px;background:#fff;padding:12px}.payrollPayoutRow span,.payrollPayoutRow strong{display:block}.payrollPayoutRow span{color:var(--muted);font-size:12px;font-weight:900}.payrollPayoutRow strong{margin-top:4px;font-size:20px;line-height:1.1}.table-action.iconOnly{width:42px;min-width:42px;padding-inline:0}.calendarGrid{display:grid;grid-template-columns:72px repeat(7,minmax(132px,1fr));height:620px;max-height:68vh;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;overscroll-behavior:contain}.calendarCorner,.calendarDayHead,.calendarTime{background:#fbfbff;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.calendarCorner{min-width:72px;height:64px;display:grid;place-items:center;color:var(--muted);font-size:12px;font-weight:800;position:-webkit-sticky;position:sticky;top:0;left:0;z-index:5}.calendarDayHead{min-width:132px;height:64px;display:grid;place-items:center;align-content:center;grid-gap:2px;gap:2px;position:-webkit-sticky;position:sticky;top:0;z-index:4}.calendarDayHead strong{font-size:15px}.calendarDayHead span{color:var(--muted);font-size:12px;font-weight:800}.calendarRow{display:contents}.calendarTime{min-width:72px;min-height:42px;padding:7px 10px;color:var(--muted);font-size:12px;font-weight:800;text-align:right;position:-webkit-sticky;position:sticky;left:0;z-index:3}.calendarCell{min-width:132px;min-height:42px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;color:var(--primary);cursor:pointer;padding:0;text-align:left;display:grid;grid-template-rows:1fr 1fr;overflow:visible;position:relative}.calendarCell:hover{background:var(--primary-light)}.calendarCell.hasEvent{background:#fff;color:var(--text)}.calendarHalf{min-height:21px;display:flex;align-items:flex-start;padding:2px 8px;overflow:visible;position:relative}.calendarHalf.top{border-bottom:1px dashed rgba(89,93,255,.16)}.calendarHalf:hover{background:var(--primary-light)}.calendarHalf.closed{background:#f4f5fb;color:#a0a3b8}.calendarHalf.closed:hover{background:#eef0ff}.calendarCell em{display:grid;place-items:center;width:24px;height:24px;border-radius:9px;background:var(--surface-soft);font-style:normal;font-weight:800}.availabilityWarning{margin:0;border:1px solid #fed7aa;border-radius:14px;background:#fff7ed;color:#c2410c;padding:10px 12px;font-weight:800}.calendarEvent{width:100%;min-height:18px;display:grid;grid-gap:2px;gap:2px;background:var(--primary);color:#fff;border-radius:10px;padding:3px 6px;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;box-shadow:inset 0 0 0 2px rgba(255,255,255,.22);overflow:hidden;position:relative;z-index:8}.calendarEvent.startsHalf{z-index:9}.calendarEvent.draggingSource{opacity:0}.calendarEvent:active{cursor:-webkit-grabbing;cursor:grabbing}.calendarEvent strong{font-size:11px;line-height:1.1;padding-right:56px}.calendarCoursePill,.calendarEvent strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendarCoursePill{position:absolute;top:3px;right:5px;max-width:54px;min-height:13px;display:inline-flex;align-items:center;justify-content:center;padding:1px 5px;border-radius:999px;background:rgba(255,255,255,.28);color:inherit;font-size:8px;font-weight:900;line-height:1}.calendarEvent small{color:currentColor;opacity:.78;font-size:9px;font-weight:800;line-height:1.1}.calendarDragPreview{position:fixed;display:grid;grid-gap:2px;gap:2px;border-radius:10px;background:var(--primary);color:#fff;padding:3px 6px;box-shadow:0 18px 34px rgba(89,93,255,.32);pointer-events:none;z-index:80;overflow:hidden}.calendarDragPreview strong{font-size:11px;line-height:1.1}.calendarDragPreview small{color:rgba(255,255,255,.78);font-size:9px;font-weight:800;line-height:1.1}.lessonPopoverLayer{position:fixed;inset:0;z-index:70;background:transparent}.lessonDetailsModal{position:fixed;width:min(440px,calc(100vw - 28px));aspect-ratio:4/3;max-height:min(78vh,330px);overflow-y:auto;border:1px solid rgba(231,234,242,.9);border-radius:20px;background:#fff;box-shadow:0 18px 56px rgba(20,28,52,.13);padding:14px 16px 16px}.lessonDetailsTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.lessonHeaderActions{display:flex;align-items:center;gap:8px}.lessonIconButton{width:32px;height:32px;display:grid;place-items:center;border:none;border-radius:11px;color:#4a5168;background:#fff;box-shadow:inset 0 0 0 1px #e7eaf2,0 6px 14px rgba(12,20,40,.04);cursor:pointer}.lessonIconButton svg{width:18px;height:18px}.lessonIconButton.closeLarge{background:#f5f6fa;box-shadow:none}.lessonIconButton.closeLarge svg{width:22px;height:22px}.lessonIconButton:disabled{cursor:not-allowed;opacity:.45}.lessonDetailsActions{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin-bottom:10px}.lessonDetailsActions .lessonCourseBadge{margin-right:auto}.lessonDetailsActions .closeLarge{width:42px;height:42px;border:none;border-radius:14px;color:var(--muted);background:var(--surface-soft)}.modalOverlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:rgba(16,18,32,.34);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.studentDetailsModal{position:relative;width:min(820px,calc(100vw - 32px));max-height:min(92vh,760px);overflow-y:auto;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 32px 80px rgba(1,5,12,.28);padding:18px 24px 24px}.modalSuccessToast{position:-webkit-sticky;position:sticky;top:10px;z-index:5;width:-moz-fit-content;width:fit-content;max-width:100%;margin:-4px 0 10px auto;border:1px solid rgba(47,158,68,.22);border-radius:14px;background:#ebfbee;color:var(--green);box-shadow:0 14px 34px rgba(47,158,68,.16);padding:10px 14px;font-size:13px;font-weight:900}.nestedOverlay{z-index:1200}.transferTeacherDialog{width:min(560px,calc(100vw - 28px));max-height:min(88vh,680px);overflow-y:auto;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 28px 76px rgba(1,5,12,.28);padding:20px}.transferStatsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;margin:16px 0}.transferStatsGrid>div{border:1px solid var(--line);border-radius:16px;background:var(--surface-soft);padding:14px}.transferStatsGrid span,.transferTeacherConfirmText,.transferTeacherForm label{color:var(--muted);font-size:13px;font-weight:800}.transferStatsGrid strong{display:block;margin-top:5px;color:var(--text);font-size:18px;font-weight:900}.warningNote{margin:12px 0;border:1px solid rgba(255,193,7,.28);border-radius:14px;background:#fff8e6;color:#9a6700;padding:11px 13px;font-size:13px;font-weight:900}.transferTeacherForm{grid-template-columns:1fr}.transferTeacherForm label{display:grid;grid-gap:7px;gap:7px}.teacherDetailsModal{width:min(960px,calc(100vw - 32px));max-height:min(92vh,820px);overflow-y:auto;border-radius:24px;background:#fff;border:1px solid var(--line);box-shadow:0 32px 80px rgba(1,5,12,.28);padding:18px 24px 24px}.studentDetailsHeader{display:grid;grid-template-columns:1fr;grid-gap:14px;gap:14px;align-items:start;margin-bottom:18px}.studentDetailsHeader h2{margin:0 0 5px;font-size:28px;line-height:1.1;letter-spacing:0}.studentDetailsHeader p{margin:0;color:var(--muted);font-weight:800}.studentRfmCard{border:1px solid var(--line);border-radius:18px;background:#fbfbff;padding:14px;display:grid;grid-gap:12px;gap:12px;margin-bottom:16px}.studentRfmBadge{border-radius:16px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#eef0ff;color:var(--text)}.studentRfmBadge span,.studentRfmBadge strong{overflow-wrap:anywhere}.studentRfmBadge strong{font-size:15px}.studentRfmBadge span{color:var(--muted);font-size:13px;font-weight:900}.studentRfmBadge.low{background:#e8f8ee}.studentRfmBadge.attention,.studentRfmBadge.sleeping{background:#fff4da}.studentRfmBadge.high{background:#fff0e8}.studentRfmBadge.critical{background:#ffe9ee}.studentRfmBadge.muted{background:#f0f1f7}.studentRfmMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px}.studentRfmMetrics div{min-height:66px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px;display:grid;grid-gap:4px;gap:4px;align-content:center}.studentRfmMetrics span{color:var(--muted);font-size:12px;font-weight:850}.studentRfmMetrics strong{font-size:14px;overflow-wrap:anywhere}.leadChildLine,.studentTitleLine{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.leadChildLine p{margin:0}.studentTitleLine h2{margin-bottom:0}.studentDetailsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:10px}.messengerActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.messengerActions.compact{flex:0 0 auto;gap:6px;margin-top:0}.messengerButton{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:14px;padding:10px 14px;color:#fff;font-size:14px;font-weight:900;cursor:pointer;text-decoration:none}.messengerActions.compact .messengerButton{width:38px;min-width:38px;min-height:38px;height:38px;gap:0;border-radius:12px;padding:0}.messengerActions.compact .messengerButton span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.messengerButton.telegram{background:#229ed9;box-shadow:0 10px 22px rgba(34,158,217,.2)}.messengerButton.whatsapp{background:#25d366;box-shadow:0 10px 22px rgba(37,211,102,.2)}.messengerButton.disabled{background:#d8dbea;color:#7b8099;cursor:not-allowed;box-shadow:none}.pendingPaymentLinkCard{display:grid;grid-gap:10px;gap:10px;margin-top:12px;padding:16px;border:1px solid rgba(34,158,217,.28);border-radius:16px;background:linear-gradient(135deg,rgba(34,158,217,.1),rgba(89,93,255,.08))}.pendingPaymentLinkCard>div:first-child{display:grid;grid-gap:4px;gap:4px}.pendingPaymentLinkCard em,.pendingPaymentLinkCard p,.pendingPaymentLinkCard span{color:var(--muted);font-size:14px;font-style:normal;font-weight:800;margin:0}.pendingPaymentLinkCard strong{color:#090b13;font-size:18px;font-weight:900}.pendingPaymentUrl{color:#0b82bd;font-size:13px;font-weight:800;overflow-wrap:anywhere;text-decoration:none}.pendingPaymentActions{display:flex;flex-wrap:wrap;gap:8px}.studentListFilters{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(190px,1fr) minmax(170px,.8fr) auto;grid-gap:10px;gap:10px;align-items:end;margin:4px 0 16px}.studentListFilters.teacherStudentFilters{grid-template-columns:repeat(2,minmax(220px,320px)) auto;justify-content:start}.studentListFilters.seniorTeamFilters{grid-template-columns:minmax(220px,1.2fr) minmax(190px,1fr) minmax(170px,.8fr) auto}.studentListFilters label{display:grid;grid-gap:6px;gap:6px}.studentListFilters span{color:var(--muted);font-size:13px;font-weight:900}.studentListFilters input,.studentListFilters select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);font:inherit;font-weight:800;padding:8px 12px;outline:none}.studentListFilters input:focus,.studentListFilters select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(89,93,255,.12)}.paginationFooter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 14px;color:var(--muted);font-size:13px;font-weight:900}.paginationFooter .secondaryButton{min-height:38px;padding:8px 14px}.studentDetailsGrid>div,.studentDetailsNotes>div{min-height:74px;border:1px solid var(--line);border-radius:16px;background:#fbfbff;padding:12px;display:grid;grid-gap:5px;gap:5px;align-content:start}.studentDetailsGrid span,.studentDetailsNotes span{color:var(--muted);font-size:12px;font-weight:800}.studentDetailsGrid strong,.studentDetailsNotes .detailLink,.studentDetailsNotes strong{font-size:14px;line-height:1.25;overflow-wrap:anywhere}.studentDetailsNotes .detailLink{color:var(--primary);font-weight:900;text-decoration:none}.studentDetailsNotes .detailLink:hover{text-decoration:underline}.detailRowContent{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.textButton{background:transparent;border:none;color:var(--primary);font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:0;font-size:14px}.textButton:hover{color:var(--primary-dark)}.textButton:disabled{opacity:.55;cursor:not-allowed}.dangerText{color:var(--red)!important}.dangerText:hover{color:#c92a2a!important}.textButton.tiny{font-size:11px}.textButton.tiny svg{width:12px;height:12px}.studentDetailsNotes{display:grid;grid-gap:10px;gap:10px;margin-top:10px}.studentEditForm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.studentEditForm input,.studentEditForm select,.studentEditForm textarea{min-height:40px;border-radius:12px;padding:9px 11px;font-size:13px}.studentEditField{display:grid;grid-gap:4px;gap:4px}.studentEditField span{color:var(--muted);font-size:11px;font-weight:900;padding-left:2px}.studentEditField select{width:100%}.studentStatusPicker{min-height:40px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px}.studentStatusPicker legend{color:var(--muted);font-size:11px;font-weight:900;padding:0 4px}.studentStatusPicker label{cursor:pointer}.studentStatusPicker input{position:absolute;opacity:0;pointer-events:none}.studentStatusPicker span{min-height:34px;border-radius:10px;background:var(--surface-soft);color:var(--muted);display:grid;place-items:center;padding:7px 8px;font-size:12px;font-weight:900;text-align:center}.studentStatusPicker input:checked+span{background:var(--primary);color:#fff;box-shadow:0 10px 22px rgba(89,93,255,.18)}.studentStatusSelectField{min-height:74px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px 10px;display:grid;grid-gap:6px;gap:6px}.studentStatusSelectField span{color:var(--muted);font-size:11px;font-weight:900}.studentStatusSelectField select{width:100%;min-height:42px;border-radius:999px;border:1px solid rgba(89,93,255,.22);background:var(--surface-soft);color:var(--text);font-size:14px;font-weight:900;padding:8px 14px}.studentEditFooter,.studentEditForm textarea{grid-column:1/-1}.studentEditForm textarea{min-height:78px}.teacherEditForm{margin-top:14px}.teacherDirectionPicker{grid-column:1/-1;border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px;display:grid;grid-gap:8px;gap:8px}.teacherDirectionPicker>span{color:var(--muted);font-size:11px;font-weight:900;padding-left:2px}.teacherDirectionPicker select{width:100%}.teacherDirectionTags{display:flex;flex-wrap:wrap;gap:8px;min-height:36px;align-items:center}.teacherDirectionTags button{min-height:34px;border:none;border-radius:999px;background:var(--surface-soft);color:var(--primary);display:inline-flex;align-items:center;gap:6px;padding:7px 10px;font-size:13px;font-weight:900}.teacherDirectionTags button:hover{background:#e8e7ff}.teacherDirectionTags em{color:var(--muted);font-size:13px;font-style:normal;font-weight:800}.studentActiveToggle{min-height:40px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px 11px;font-size:13px;font-weight:800}.studentActiveToggle input{width:auto}.readonlyField{min-height:52px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);padding:8px 11px;display:grid;grid-gap:4px;gap:4px}.readonlyField span{color:var(--muted);font-size:11px;font-weight:900}.readonlyField strong{font-size:16px}.studentEditFooter{display:flex;justify-content:flex-end;gap:10px}.studentScheduleBlock{margin-top:16px}.studentScheduleBlock h3{margin:0 0 10px;font-size:16px}.studentScheduleList{display:grid;grid-gap:8px;gap:8px}.studentScheduleList>div{display:grid;grid-gap:4px;gap:4px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:11px 12px}.studentScheduleList strong{font-size:14px}.studentScheduleList span{color:var(--muted);font-size:13px;font-weight:800}.studentInlineForm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:10px}.studentInlineForm input,.studentInlineForm select{min-height:40px;border-radius:12px;padding:9px 11px;font-size:13px}.studentInlineForm button{min-height:40px}.inlineSuccess{margin:8px 0 0;color:var(--green);font-size:13px;font-weight:800}.compactRateForm{grid-template-columns:1fr 160px 1fr auto}.teacherTabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;margin-bottom:6px}.teacherTabs button{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;background:#fbfbff;color:var(--muted);padding:9px 12px;font-size:13px;font-weight:900;cursor:pointer}.teacherTabs button.active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 10px 20px rgba(89,93,255,.18)}.teacherActionRow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;margin-top:14px}.teacherActionRow button,.teacherActionRow select{min-height:42px}.teacherActionRow button:disabled{cursor:not-allowed;opacity:.45}.teacherColumns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.scrollList{max-height:380px;overflow:auto;padding-right:4px}.teacherHero{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:18px;gap:18px;align-items:center;background:linear-gradient(135deg,rgba(89,93,255,.09),rgba(12,165,233,.08)),#fff}.teacherHero span{color:var(--primary);font-size:13px;font-weight:900}.teacherHero h2{margin:6px 0 8px;font-size:32px;line-height:1.08}.teacherHero p{max-width:560px;margin:0;color:var(--muted);font-weight:800}.teacherHeroBadge{min-width:132px;min-height:112px;border-radius:22px;background:#fff;border:1px solid var(--line);box-shadow:0 16px 34px rgba(89,93,255,.12);display:grid;place-items:center;align-content:center;grid-gap:4px;gap:4px}.teacherHeroBadge strong{font-size:36px;line-height:1}.teacherHeroBadge span{color:var(--muted);font-size:12px}.teacherLessonList{display:grid;grid-gap:10px;gap:10px}.teacherLessonItem{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;border:1px solid var(--line);border-radius:16px;background:#fbfbff;padding:12px}.teacherLessonItem strong{display:block;margin-bottom:4px;font-size:14px}.teacherLessonItem span{color:var(--muted);font-size:13px;font-weight:800}.teacherLessonActions{display:flex;gap:8px}.teacherLessonActions button{min-height:36px;border:none;border-radius:12px;background:#e9f9ef;color:#1b9b50;padding:8px 10px;font-size:12px;font-weight:900;cursor:pointer}.teacherLessonActions button.burned{background:#fff3e4;color:#e87900}.teacherPayGrid{grid-template-columns:1fr}.teacherPayrollActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.teacherPayrollActions button{flex:1 1 160px;min-height:44px}.previousPayrollBreakdown{margin:10px 0 14px}.previousPayrollPanel{min-height:100%}.previousPayrollPanel .status-pill{margin-top:0;white-space:nowrap}.previousPayrollAmount{color:var(--primary);font-size:34px;font-weight:950;line-height:1;margin:18px 0 10px}.previousPayrollMeta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.previousPayrollMeta span{border-radius:999px;background:#f3f4ff;color:var(--muted);font-size:13px;font-weight:900;padding:8px 10px}.previousPayrollButton{width:auto}.previousPayrollEmpty{min-height:190px;display:grid;align-content:center;grid-gap:8px;gap:8px}.previousPayrollEmpty h2,.previousPayrollEmpty p{margin:0}.previousPayrollEmpty p{color:var(--muted);font-weight:800}.teacherDashboard{display:grid;grid-gap:22px;gap:22px}.teacherStatsRow{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px}.teacherStatTile{min-height:108px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow);padding:15px;display:grid;align-content:center;grid-gap:5px;gap:5px}.teacherStatTile strong{color:var(--primary);font-size:clamp(23px,2vw,26px);line-height:1;font-weight:900;white-space:nowrap}.teacherStatTile span{color:var(--muted);font-size:12.5px;font-weight:800;line-height:1.25;min-height:32px;white-space:nowrap}.teacherDashboardGrid{grid-template-columns:2fr 1fr;align-items:start}.teacherDashColumn,.teacherDashboardGrid{display:grid;grid-gap:22px;gap:22px}.teacherDashCard{border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow);padding:22px}.teacherDashHeader{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.teacherDashHeader h2{margin:0;font-size:21px;line-height:1.15}.teacherDashHeader button{border:none;background:var(--primary-light);color:var(--primary);border-radius:12px;padding:9px 11px;font-size:13px;font-weight:900;cursor:pointer}.teacherLessonItem.detailed{grid-template-columns:78px minmax(0,1fr) auto;background:#fbfbff}.teacherLessonTime{color:var(--primary);font-size:17px;font-weight:900;line-height:1.2}.teacherStatus{display:inline-flex;width:-moz-fit-content;width:fit-content;margin-top:7px;border-radius:999px;padding:5px 9px;font-size:12px;font-style:normal;font-weight:900}.teacherStatus.planned{background:#e7f5ff;color:#0277bd}.teacherStatus.wait{background:#fff4e6;color:#c77700}.teacherStatus.low{background:#fff0ef;color:#c0392b}.teacherStatus.ok{background:#e9f9ef;color:#1b9b50}.teacherLessonActions button.neutral{background:#f2f4ff;color:var(--muted)}.teacherLessonActions button.done{background:#e9f9ef;color:#1b9b50}.teacherNotificationList,.teacherStudentList{display:grid;grid-gap:10px;gap:10px}.teacherNotificationList>div,.teacherStudentRow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;border:1px solid var(--line);border-radius:16px;background:#fbfbff;padding:14px}.teacherNotificationList>div{grid-template-columns:1fr}.teacherNotificationList strong,.teacherStudentRow strong{display:block;margin-bottom:4px;font-size:14px}.teacherNotificationList span,.teacherStudentRow span{color:var(--muted);font-size:13px;font-weight:800}.teacherSalaryBox{border:1px solid #dfe2ff;border-radius:20px;background:linear-gradient(135deg,#f0f2ff,#fff);padding:18px}.teacherSalaryBox>strong{display:block;margin-bottom:8px;color:var(--primary);font-size:34px;line-height:1;font-weight:900}.teacherSalaryGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:16px}.teacherSalaryGrid>div{border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px}.teacherSalaryGrid strong{display:block;font-size:18px}.teacherGradeRow,.teacherMuted,.teacherSalaryGrid span{color:var(--muted);font-size:13px;font-weight:800}.teacherGradeTitle{margin:0}.teacherProgress{height:10px;margin:14px 0;border-radius:999px;background:#e4e7ff;overflow:hidden}.teacherProgress span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.teacherGradeRow{display:flex;justify-content:space-between;gap:12px}.teacherQuickActions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.teacherQuickActions button{min-height:42px;border:none;border-radius:13px;background:var(--primary-light);color:var(--primary);font-weight:900;cursor:pointer}.teacherQuickActions button:first-child{background:var(--primary);color:#fff}.passwordChangeForm{max-width:760px}.passwordChangeForm label{font-weight:900}.passwordChangeForm label,.securityRules{display:grid;grid-gap:8px;gap:8px;color:var(--muted)}.securityRules{max-width:760px;margin-top:18px;border:1px solid var(--line);border-radius:18px;background:var(--surface-soft);padding:16px;font-weight:800}.securityRules strong{color:var(--text)}.teacherCalendar{min-width:0}.teacherCalendar.embedded{display:block}.teacherCalendarGrid{max-height:560px;overflow:auto;border:1px solid var(--line);border-radius:18px}.teacherCalendarGrid .calendarCell{cursor:default}.teacherCalendarGrid .calendarCell:hover,.teacherCalendarGrid .calendarHalf:hover{background:#fff}.teacherEvent{cursor:default;touch-action:auto}.teacherCalendarControls{justify-content:flex-end;margin-bottom:10px}.lessonCourseBadge{display:inline-flex;align-items:center;justify-content:center;max-width:110px;min-height:34px;padding:6px 10px;border:2px solid var(--primary);border-radius:12px;color:var(--primary-dark);background:var(--primary-light);font-size:13px;line-height:1.15;font-weight:800;overflow-wrap:anywhere;text-align:center}.lessonCourseBadge.large{max-width:82px;min-height:30px;border:0;border-radius:10px;padding:5px 9px;font-size:13px}.lessonDetailsBody{display:grid;grid-gap:9px;gap:9px}.lessonHero{display:grid;grid-gap:7px;gap:7px}.lessonDetailsBody h2{margin:0;color:#070d1d;font-size:22px;line-height:1.1;font-weight:900;letter-spacing:0}.lessonDateRow{display:grid;grid-template-columns:auto 1fr auto;grid-gap:9px;gap:9px;align-items:center}.lessonInfoIcon,.lessonRoundIcon{width:32px;height:32px;display:grid;place-items:center;border-radius:11px;color:#1067d8;background:#eef5ff}.lessonInfoIcon svg,.lessonRoundIcon svg{width:17px;height:17px}.lessonDateRow strong{display:block;color:#101728;font-size:12px;line-height:1.25;font-weight:900}.lessonDateRow p{margin:1px 0 0;color:#101728;font-size:13px;line-height:1.1}.lessonStatusPill{min-height:30px;display:inline-flex;align-items:center;gap:7px;border-radius:11px;background:#eaf3ff;color:#1473e6;padding:5px 8px;font-size:11px;font-weight:900;white-space:nowrap}.lessonMetaPills{display:flex;align-items:center;gap:6px;margin-left:41px;flex-wrap:wrap}.lessonMetaPills span{min-height:21px;display:inline-flex;align-items:center;border-radius:9px;padding:3px 7px;background:#edf5ff;color:#1a66c7;font-size:10px;font-weight:800}.lessonMetaPills span+span{background:#f5f3ff;color:#5a39b8}.lessonDetailsRows{display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px;border-top:1px solid #e8ebf3;border-bottom:1px solid #e8ebf3;padding:9px 0}.lessonDetailRow{display:grid;grid-template-columns:auto 1fr;grid-gap:8px;gap:8px;align-items:center}.lessonRoundIcon{color:#424a60;background:#f8f9fc;box-shadow:inset 0 0 0 1px #edf0f5}.lessonDetailsMain,.lessonDetailsMuted,.lessonDetailsRepeat,.lessonDetailsTime{margin:0}.lessonDetailsMain,.lessonDetailsRepeat,.lessonDetailsTime{color:#101728;font-size:12px;line-height:1.3;font-weight:800}.lessonDetailsMuted{color:#9aa0b3;font-size:10px;font-weight:800;margin-bottom:1px}.lessonDetailsButtons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:7px;gap:7px}.statusButton{border:none;min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:11px;padding:6px;font-size:10px;line-height:1.2;font-weight:900;cursor:pointer}.iconButton:disabled,.statusButton:disabled{cursor:not-allowed;opacity:.45}.statusButton.done{color:#0fa64b;background:#f0fbf2}.statusButton.burned{color:#f08a00;background:#fff6e4}.statusButton.delete{color:#f03818;background:#fff1ec}.lessonEditForm{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px}.lessonEditForm input,.lessonEditForm select{font-size:14px;padding:10px 12px;background:#fff}.lessonEditFooter{grid-column:1/-1;display:flex;justify-content:flex-end;gap:12px;margin-top:10px}.eventModalOverlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:22px;background:rgba(1,5,12,.42)}.eventModal{width:min(760px,100%);max-height:min(92vh,760px);overflow-y:auto;border-radius:28px;background:#fff;border:1px solid var(--line);box-shadow:0 32px 80px rgba(1,5,12,.28);padding:18px 30px 24px}.eventModalTop{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dragHandle{width:28px;height:18px;position:relative}.dragHandle:after,.dragHandle:before{content:"";position:absolute;left:0;width:28px;height:3px;border-radius:999px;background:#9aa0b8}.dragHandle:before{top:3px}.dragHandle:after{bottom:3px}.iconButton{width:42px;height:42px;display:grid;place-items:center;border:none;border-radius:14px;background:transparent;color:var(--muted);cursor:pointer}.iconButton:hover{background:var(--surface-soft);color:var(--text)}.eventForm{display:flex;flex-direction:column;gap:22px}.eventTitleSelect{border:0;border-bottom:5px solid #c7d4ff;border-radius:0;padding:6px 0 10px;font-size:38px;line-height:1.1;font-weight:700;color:var(--text);background:#fff;min-height:62px}.eventTitleSelect:focus{border-color:var(--primary);box-shadow:none}.lessonTypeTabs{display:flex;gap:12px;flex-wrap:wrap}.lessonTypeTabs label{cursor:pointer}.lessonTypeTabs input{position:absolute;opacity:0;pointer-events:none}.lessonTypeTabs span{display:inline-flex;min-height:48px;align-items:center;justify-content:center;border-radius:14px;padding:0 18px;color:var(--muted);font-size:17px;font-weight:800}.lessonTypeTabs input:checked+span{background:var(--primary);color:#fff;box-shadow:0 12px 24px rgba(89,93,255,.24)}.eventFormRows{display:flex;flex-direction:column;gap:14px}.eventFormRow{display:grid;grid-template-columns:34px 1fr;align-items:center;grid-gap:16px;gap:16px;color:var(--muted)}.eventFormRow strong{display:block;color:var(--text);font-size:19px;line-height:1.3}.eventFormRow span{display:block;margin-top:2px;color:var(--muted);font-size:15px;font-weight:700}.eventFormRow input,.eventFormRow select{border:0;border-radius:12px;background:#fbfbff;padding:13px 14px;font-size:17px}.eventFormRow input:focus,.eventFormRow select:focus{box-shadow:0 0 0 4px rgba(89,93,255,.1)}.eventModalFooter{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding-top:8px}.secondaryButton{border:none;background:transparent;color:var(--primary-dark);border-radius:12px;padding:12px 16px;font-weight:800;cursor:pointer}.secondaryButton:hover{background:var(--surface-soft)}.recurringModal{width:min(520px,100%);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:0 28px 70px rgba(89,93,255,.22);padding:26px}.recurringModal h2{margin:0;font-size:26px;line-height:1.1;font-weight:800;letter-spacing:0}.recurringHint{margin:8px 0 22px;color:var(--muted);font-size:14px;font-weight:700}.recurringOptions{display:flex;flex-direction:column;gap:10px}.recurringOptions label{display:grid;grid-template-columns:28px 1fr;align-items:center;grid-gap:14px;gap:14px;min-height:72px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fbfbff;color:var(--text);cursor:pointer}.recurringOptions label:has(input:checked){border-color:var(--primary);background:var(--primary-light);box-shadow:0 12px 26px rgba(89,93,255,.12)}.recurringOptions label.disabled{opacity:.62;cursor:not-allowed}.recurringOptions input{width:22px;height:22px;accent-color:var(--primary);cursor:pointer}.recurringOptions strong{display:block;font-size:15px;font-weight:800}.recurringOptions small{display:block;margin-top:3px;color:var(--muted);font-size:13px;font-weight:700;line-height:1.35}.recurringOptions label.disabled input{cursor:not-allowed}.recurringFooter{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:22px}.recurringFooter .secondaryButton{color:var(--primary)}.recurringFooter .primary{min-width:130px}.recurringFooter .dangerPrimary{background:linear-gradient(135deg,#ff6b4a,#f03818);box-shadow:0 14px 28px rgba(240,56,24,.22)}.availabilitySettingsModal{width:min(980px,96vw);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;gap:16px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:0 28px 70px rgba(89,93,255,.22);padding:22px;overflow:hidden}.availabilitySettingsModal .lessonDetailsTop{flex:0 0 auto}.availabilitySettingsModal .eventModalFooter{flex:0 0 auto;position:-webkit-sticky;position:sticky;bottom:0;z-index:8;margin:0 -22px -22px;padding:14px 22px 18px;background:linear-gradient(180deg,rgba(255,255,255,.86),#fff 42%);border-top:1px solid var(--line)}.availabilityTeacherSelect{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:13px;font-weight:900}.availabilityTeacherSelect select{min-height:48px;border:1px solid var(--line);border-radius:14px;background:#fbfbff;padding:10px 12px;color:var(--text);font-size:16px;font-weight:800}.availabilityWeekScroll{flex:1 1 auto;min-height:180px;max-height:calc(100dvh - 260px);overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.availabilityWeekGrid{display:grid;grid-template-columns:70px repeat(7,minmax(78px,1fr));min-width:760px}.availabilityRow{display:contents}.availabilityCorner,.availabilityDayHead,.availabilityTime{background:#fbfbff;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.availabilityCorner{min-width:70px;height:76px;display:grid;place-items:center;position:-webkit-sticky;position:sticky;top:0;left:0;z-index:5;color:var(--muted);font-size:12px;font-weight:900}.availabilityDayHead{min-width:78px;min-height:76px;display:grid;place-items:center;align-content:center;grid-gap:2px;gap:2px;position:-webkit-sticky;position:sticky;top:0;z-index:4}.availabilityDayHead strong{font-size:13px}.availabilityDayHead span{color:var(--muted);font-size:11px;font-weight:800}.availabilityCloseDay{border:1px solid #ffd7d0;background:#fff4f1;color:#c83a2d;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;line-height:1}.availabilityCloseDay.active{background:#c83a2d;border-color:#c83a2d;color:#fff}.availabilityCloseDay:disabled{opacity:.45}.availabilityTime{min-width:70px;min-height:34px;display:grid;place-items:center end;padding-right:10px;position:-webkit-sticky;position:sticky;left:0;z-index:3;color:var(--muted);font-size:12px;font-weight:900}.availabilityCell{min-width:78px;min-height:34px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;color:var(--primary);font-weight:900;cursor:pointer}.availabilityCell:hover{background:var(--primary-light)}.availabilityCell.active{background:#eafaf0;color:#15803d;box-shadow:inset 0 0 0 2px #86efac}.availabilityCell:disabled{cursor:not-allowed;background:#f7f8ff;color:#c6c8d8}table{width:100%;border-collapse:collapse;min-width:720px}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:12px 10px;border-bottom:1px solid var(--line)}td{padding:14px 10px;border-bottom:1px solid #f5eadf;font-size:14px;font-weight:700;vertical-align:middle;max-width:260px}tr:last-child td{border-bottom:none}.empty{color:var(--muted);font-weight:700}.alert-list,.mini-list{display:flex;flex-direction:column;gap:12px}.seniorTeamList{max-height:228px;overflow-y:auto;padding-right:6px;scrollbar-gutter:stable}.seniorTeamList .mini-row{min-height:64px;align-items:center}.alert-item{display:grid;grid-template-columns:40px 1fr;grid-gap:12px;gap:12px;padding:12px;border-radius:16px;background:#fbfbff;border:1px solid var(--line)}.alert-icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);font-weight:800}.alert-item strong{display:block;font-size:14px;margin-bottom:3px}.alert-item span{color:var(--muted);font-size:13px;line-height:1.35}.mini-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #f5eadf}button.mini-row{width:100%;border-left:0;border-right:0;border-top:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.mini-row.active{background:rgba(89,93,255,.08);border-radius:12px;padding-left:10px;padding-right:10px}.mini-row:last-child{border-bottom:none;padding-bottom:0}.mini-row strong{font-size:14px}.mini-row span{color:var(--muted);font-size:13px;font-weight:700}.amount{font-weight:800;white-space:nowrap}.plainList{margin:0;padding-left:20px;color:var(--muted);line-height:1.7;font-weight:700}@media (max-width:1180px){.quick-actions{grid-template-columns:repeat(4,minmax(120px,1fr))}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analyticsFilters{grid-template-columns:repeat(3,minmax(0,1fr))}.analyticsGrid,.analyticsKpiGrid,.teacherStatsRow{grid-template-columns:repeat(2,minmax(0,1fr))}.balanceAlertsGrid,.dashboard-grid,.teacherDashboardGrid{grid-template-columns:1fr}}@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:fixed;left:-300px;z-index:20;width:280px;transition:.25s ease}.sidebar.open{left:0}.mobile-menu-btn{display:grid}.main{padding:20px}.topbar{align-items:center}.page-title h1{font-size:28px}.search{width:100%;order:3}.top-actions{flex:1 1}.analyticsFilters,.analyticsGrid,.analyticsKpiGrid,.analyticsTodoGrid,.compactForm,.compactRateForm,.sectionGrid,.studentDetailsGrid,.studentEditForm,.studentInlineForm,.studentRfmMetrics,.teacherActionRow,.teacherColumns,.teacherHero,.teacherLessonItem,.teacherLessonItem.detailed,.teacherQuickActions,.teacherSalaryGrid,.teacherStatsRow,.teacherStudentRow{grid-template-columns:1fr}.teacherHeroBadge{width:100%}.rfmStatsGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.renewalPriorityList button{grid-template-columns:1fr}.studentRfmBadge{align-items:flex-start;flex-direction:column}.teacherLessonActions{width:100%}.teacherLessonActions button{flex:1 1}.lessonDetailsModal{left:14px!important;right:14px;width:auto;aspect-ratio:auto;border-radius:22px;padding:16px}.lessonDateRow,.lessonDetailRow{grid-template-columns:1fr}.lessonDetailsTop,.lessonHeaderActions{gap:12px}.lessonHeaderActions{flex-wrap:wrap}.lessonIconButton{width:42px;height:42px;border-radius:15px}.lessonMetaPills{margin-left:0}.lessonDetailsButtons{grid-template-columns:1fr;gap:10px}.statusButton{min-height:52px;font-size:14px}}@media (max-width:640px){.topbar{flex-direction:column;align-items:stretch}.top-actions{justify-content:stretch}.user-card{width:100%}.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:1fr}.quick-btn{min-height:58px}.panel{padding:16px}}.teacherFullPageOverlay{position:fixed;inset:0;z-index:120;background:#f5f6fa;overflow-y:auto;display:flex;flex-direction:column}.teacherFullPageInner{max-width:1200px;width:100%;margin:0 auto;padding:32px 32px 64px}.teacherFullPageHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:32px}.teacherFullPageMeta{display:flex;align-items:flex-start;gap:14px}.teacherFullPageMeta h1{margin:6px 0;font-size:34px;line-height:1.08;letter-spacing:-.5px}.teacherFullPageMeta p{margin:0;color:var(--muted);font-weight:800;font-size:15px}.teacherFullPageStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px;margin-bottom:32px}.teacherStatCard{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 6px 20px rgba(20,28,52,.06);padding:18px;display:grid;grid-gap:4px;gap:4px;align-content:start;transition:box-shadow .18s ease}.teacherStatCard:hover{box-shadow:0 12px 32px rgba(89,93,255,.12)}.teacherStatLabel{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.teacherStatValue{color:var(--primary);font-size:28px;font-weight:900;line-height:1.1}.teacherStatNote{color:var(--muted);font-size:12px;font-weight:700;font-style:normal}.teacherFullPageGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px}.teacherFullSection{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 4px 14px rgba(20,28,52,.05);padding:22px}.teacherFullSection h2{margin:0 0 16px;font-size:18px;line-height:1.2}@media (max-width:900px){.teacherFullPageStats{grid-template-columns:repeat(2,minmax(0,1fr))}.teacherFullPageGrid{grid-template-columns:1fr}.teacherFullPageInner{padding:20px 16px 48px}:root{--shadow:0 10px 26px rgba(89,93,255,0.08);--radius-lg:20px;--radius-md:16px}body,html{overflow-x:hidden}body{-webkit-text-size-adjust:100%}input,select,textarea{font-size:16px}.sidebar{width:min(320px,calc(100vw - 44px));left:calc(-1 * min(320px, calc(100vw - 44px)));padding:18px 14px calc(18px + env(safe-area-inset-bottom));box-shadow:22px 0 54px rgba(1,5,12,.18);overflow-y:auto}.sidebar.open:after{content:"";position:fixed;top:0;left:min(320px,calc(100vw - 44px));width:100vw;height:100vh;background:rgba(10,12,28,.26);pointer-events:none}.brand{min-height:52px}.nav-item{min-height:48px;padding:12px;border-radius:13px;font-size:16px}.main{width:100%;padding:16px clamp(12px,4vw,20px) calc(28px + env(safe-area-inset-bottom))}.leadChatsShell{grid-template-columns:1fr;height:auto;min-height:0}.leadChatsList{max-height:360px}.leadChatPanel{height:min(620px,calc(100vh - 180px));min-height:540px}.leadChatComposer{grid-template-columns:1fr}.leadChatBubble{max-width:92%}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:18;margin:-16px calc(-1 * clamp(12px, 4vw, 20px)) 14px;padding:calc(12px + env(safe-area-inset-top)) clamp(12px,4vw,20px) 12px;background:rgba(247,247,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(227,229,255,.82);align-items:flex-start;gap:12px}.topbar-left{min-width:0;flex:1 1}.page-title{min-width:0}.page-title h1{font-size:clamp(26px,7vw,34px);overflow-wrap:anywhere}.page-title p{font-size:15px;line-height:1.3}.top-actions{width:100%;display:grid;grid-template-columns:1fr auto auto;grid-gap:8px;gap:8px;align-items:center}.search{order:0;grid-column:1/-1}.search input{min-height:48px;border-radius:14px;box-shadow:none}.icon-action,.mobile-menu-btn{width:48px;height:48px;border-radius:14px;box-shadow:none}.user-card{min-height:48px;border-radius:14px;box-shadow:none}.user-card,.user-card div:not(.avatar){min-width:0}.user-card span,.user-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice,.statusText{margin-bottom:16px;border-radius:14px;line-height:1.35}.leadsTabs,.quick-actions,.teacherTabs{display:flex;gap:8px;overflow-x:auto;margin:0 calc(-1 * clamp(12px, 4vw, 20px)) 16px;padding:0 clamp(12px,4vw,20px) 6px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.leadsTabs button,.quick-btn,.teacherTabs button{flex:0 0 auto;min-height:44px;scroll-snap-align:start;white-space:nowrap}.quick-btn{min-width:148px;border-radius:14px;padding:11px 13px;box-shadow:none}.leadCard:hover,.quick-btn:hover,.teacherStatCard:hover{transform:none;box-shadow:var(--shadow)}.analyticsKpiGrid,.stats-grid,.teacherFullPageStats,.teacherStatsRow{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card,.teacherStatCard,.teacherStatTile{min-height:104px;padding:15px;border-radius:16px}.stat-card:after{width:82px;height:82px}.stat-value,.teacherStatTile strong,.teacherStatValue{font-size:clamp(22px,7vw,29px);overflow-wrap:anywhere}.balanceAlertsGrid,.dashboard-grid,.sectionGrid,.teacherColumns,.teacherDashboardGrid,.teacherFullPageGrid{grid-template-columns:1fr;gap:14px}.panel,.teacherDashCard,.teacherFullSection{padding:16px;border-radius:18px}.leadsToolbar,.panel-header,.teacherDashHeader{align-items:flex-start;flex-direction:column}.leadsToolbar h2,.panel h2,.panel-header h2,.teacherDashHeader h2{font-size:20px}.compactForm,.compactRateForm,.leadFacts,.rfmStatsGrid,.studentDetailsGrid,.studentEditForm,.studentInlineForm,.studentRfmMetrics,.teacherQuickActions,.teacherSalaryGrid{grid-template-columns:1fr}.formGroup,.leadFacts span,.studentDetailsGrid>div,.studentDetailsNotes>div,.studentScheduleList>div{border-radius:14px}.messengerButton,.neutral,.primary,.secondaryButton,.table-action{min-height:44px;border-radius:13px}.eventModalFooter,.leadDrawerActions,.leadsActions,.messengerActions,.recurringFooter,.studentEditFooter,.teacherLessonActions{display:grid;grid-template-columns:1fr;width:100%}.messengerActions.compact{display:flex;grid-template-columns:none;width:auto}.messengerActions.compact .messengerButton{min-height:38px;border-radius:12px}.eventModal,.payrollTeacherDetails,.recurringModal,.studentDetailsModal,.teacherDetailsModal{width:100%;max-height:none;height:auto;max-width:none;border-radius:22px 22px 0 0;padding:16px}.payrollTeacherDetails{height:min(92vh,820px)}.payrollTeacherDetails .panel-header{gap:12px}.payrollTeacherDetails .calendarControls{width:100%;justify-content:stretch}.payrollTeacherDetails .calendarControls .table-action:not(.iconOnly){flex:1 1}.payrollTeacherDetails .scrollRows{max-height:none;flex:1 1}.eventModalOverlay,.modalOverlay{align-items:end;place-items:end center;padding:12px 10px 0}.eventTitleSelect,.studentDetailsHeader h2,.teacherHero h2{font-size:clamp(26px,8vw,34px)}.studentStatusPicker{grid-template-columns:repeat(2,minmax(0,1fr))}.studentStatusPicker span{min-height:40px}.table-wrap{margin:0 -4px;overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:680px}td,th{padding:11px 9px}.table-action{padding:9px 11px;white-space:nowrap}.leadsToolbar{padding:16px}.leadsActions{grid-template-columns:repeat(2,minmax(0,1fr))}.leadsKanban{grid-auto-columns:minmax(82vw,1fr);min-height:420px;margin:0 calc(-1 * clamp(12px, 4vw, 20px));padding:0 clamp(12px,4vw,20px) 8px;scroll-snap-type:x mandatory}.leadColumn{scroll-snap-align:center;max-height:68vh}.leadDrawer{top:auto;bottom:0;left:0;right:0;width:100vw;height:min(88vh,760px);border-left:0;border-top:1px solid var(--line);border-radius:24px 24px 0 0;box-shadow:0 -20px 54px rgba(1,5,12,.18)}.leadDrawerHead{padding:16px}.leadDrawerBody{padding:14px 16px calc(24px + env(safe-area-inset-bottom))}.calendarGrid,.teacherCalendarGrid{grid-template-columns:58px repeat(7,minmax(124px,1fr));height:70vh;max-height:70vh;border-radius:16px;-webkit-overflow-scrolling:touch}.calendarCorner,.calendarTime{min-width:58px}.calendarCell,.calendarDayHead{min-width:124px}.calendarEvent{min-height:22px;padding:4px 6px}.calendarEvent strong{font-size:10px;padding-right:48px}.calendarCoursePill{max-width:46px}.availabilitySettingsModal{width:100%;max-height:calc(100dvh - 12px);padding:16px;border-radius:22px 22px 0 0;align-self:end}.availabilitySettingsModal .eventModalFooter{margin:0 -16px -16px;padding:12px 16px 16px}.availabilityWeekScroll{max-height:calc(100dvh - 250px);min-height:160px;-webkit-overflow-scrolling:touch}.availabilityWeekGrid{grid-template-columns:58px repeat(7,minmax(72px,1fr));min-width:640px}.availabilityCorner,.availabilityTime{min-width:58px}.availabilityCell,.availabilityDayHead{min-width:72px}.availabilityCloseDay{padding:5px 6px;font-size:9px}.lessonDetailsModal{bottom:0!important;top:auto!important;left:0!important;right:0!important;width:100%;max-height:82vh;border-radius:22px 22px 0 0}.lessonPopoverLayer{background:rgba(16,18,32,.2)}.teacherLessonItem,.teacherLessonItem.detailed,.teacherStudentRow{grid-template-columns:1fr}.teacherLessonActions button,.teacherQuickActions button{min-height:46px}.teacherFullPageHeader,.teacherFullPageMeta{flex-direction:column}}@media (max-width:640px){.loginPage{padding:12px;align-items:stretch}.loginPanel{align-self:center;padding:20px;border-radius:20px}.loginPanel h1{font-size:30px}.topbar{gap:10px}.top-actions{grid-template-columns:1fr auto}.top-actions .user-card{grid-column:1/-1;order:-1}.avatar{width:40px;height:40px;border-radius:12px}.stats-grid,.teacherFullPageStats,.teacherStatsRow{grid-template-columns:1fr}.stat-card,.teacherStatTile{min-height:auto}.stat-head{align-items:flex-start}.stat-icon{width:38px;height:38px;border-radius:13px}.previousPayrollAmount,.teacherSalaryBox>strong{font-size:clamp(28px,10vw,38px)}.leadCreateForm .leadFormWide{grid-column:auto}.leadsActions{grid-template-columns:1fr}.leadsKanban{grid-auto-columns:calc(100vw - 32px)}.eventModal,.recurringModal,.studentDetailsModal,.teacherDetailsModal{max-height:92vh;overflow-y:auto;padding:14px}.studentDetailsHeader h2{font-size:clamp(24px,9vw,32px)}.studentDetailsHeader p{font-size:14px;line-height:1.35}.studentStatusPicker{grid-template-columns:1fr}.eventForm{gap:16px}.eventFormRow,.lessonTypeTabs{grid-template-columns:1fr;gap:8px}.lessonTypeTabs{display:grid;grid-gap:8px}.lessonTypeTabs span{width:100%}.calendarControls,.teacherCalendarControls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.calendarTeacherFilter{grid-column:1/-1;min-width:0;width:100%}.calendarControls .table-action,.teacherCalendarControls .table-action{width:100%;padding-inline:6px}.calendarGrid,.teacherCalendarGrid{grid-template-columns:50px repeat(7,minmax(108px,1fr));height:68vh}.calendarCorner,.calendarTime{min-width:50px;font-size:10px;padding-inline:5px}.calendarCell,.calendarDayHead{min-width:108px}.calendarDayHead strong{font-size:13px}.calendarDayHead span{font-size:11px}.calendarEvent strong{padding-right:0;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.calendarCoursePill{position:static;max-width:100%;justify-self:start;margin-top:1px}.table-wrap.scrollRows{max-height:64vh}table{min-width:620px}.teacherFullPageInner{padding:16px 12px 42px}}@media (max-width:420px){.main{padding-left:10px;padding-right:10px}.leadsTabs,.quick-actions,.teacherTabs,.topbar{margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}.leadsToolbar,.panel,.teacherDashCard,.teacherFullSection{padding:14px}.quick-btn{min-width:132px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:900px){.topbar{flex-direction:row;align-items:flex-start;justify-content:space-between}.topbar-left{flex:1 1 auto;min-width:0}.top-actions{width:auto;flex:0 0 auto;display:flex;align-items:flex-start;justify-content:flex-end}}@media (max-width:640px){.topbar{flex-direction:row;align-items:flex-start}.top-actions{width:auto;display:flex;justify-content:flex-end}.top-actions .user-card{display:none}.studentListFilters{align-items:stretch}.studentListFilters,.studentListFilters.teacherStudentFilters{grid-template-columns:1fr}.paginationFooter{align-items:stretch;flex-direction:column}}