:root{color:#17343a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#292b31;font-family:Segoe UI,Trebuchet MS,Gill Sans,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth;background:#292b31}body{background:#292b31;min-width:320px;margin:0}#root{background:inherit;background-color:inherit;min-height:100vh}button,input,select{font:inherit}h1,h2,h3,h4,p{margin:0}.crm-shell{--bg-main:#23252c;--bg-surface:#292c34c7;--bg-card:#2e3139e6;--bg-soft:#ffffff0b;--text-main:#f5f6f8;--text-muted:#9ea5b4;--border:#ffffff12;--accent:#23c7a4;--accent-soft:#7ea6ff;--danger:#ff8181;--warning:#ffb86b;--shadow:0 24px 60px #00000047;height:100vh;min-height:100vh;color:var(--text-main);background:radial-gradient(circle at 15% 18%,#ffffff0d,#0000 24%),radial-gradient(circle at 84% 8%,#b5bbc60f,#0000 20%),linear-gradient(#292b31 0%,#1f2127 100%);grid-template-columns:292px 1fr;display:grid;position:relative;overflow:hidden}.crm-shell.auth-screen{grid-template-columns:1fr}.crm-shell.student-portal-screen{min-height:100vh;overflow:hidden auto}.auth-screen-theme-switch{z-index:2;position:absolute;top:24px;right:24px}.theme-light{--bg-main:#edf3ff;--bg-surface:#ffffffad;--bg-card:#ffffffeb;--bg-soft:#0b172e0d;--text-main:#162137;--text-muted:#66738d;--border:#101f3f17;--accent:#1ac6a4;--accent-soft:#507dff;--danger:#d85b5b;--warning:#d08f32;--shadow:0 24px 60px #3d55831f;background:radial-gradient(circle at 15% 20%,#507dff2e,#0000 20%),radial-gradient(circle at 80% 10%,#1ac6a41f,#0000 18%),linear-gradient(#f3f7ff 0%,#e9eefc 100%)}.ambient{filter:blur(80px);opacity:.35;pointer-events:none;border-radius:999px;width:380px;height:380px;position:absolute}.ambient-left{background:#ffffff14;bottom:-120px;left:-120px}.ambient-right{background:#787f8c1f;top:-100px;right:-80px}.glass-card,.panel,.student-card,.teacher-card,.schedule-card,.journal-card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.sidebar{z-index:1;border-radius:28px;flex-direction:column;gap:28px;height:calc(100vh - 36px);margin:18px;padding:22px;display:flex;position:sticky;top:18px;overflow-y:auto}.sidebar-mobile-head,.mobile-sidebar-toggle,.sidebar-overlay{display:none}.auth-shell{z-index:1;place-items:center;width:100%;min-height:100vh;padding:24px;display:grid;position:relative}.auth-card{border-radius:28px;gap:22px;width:min(440px,100vw - 32px);padding:26px;display:grid;position:relative}.auth-copy{text-align:center;justify-items:center;gap:12px;display:grid}.auth-logo{margin:0 auto}.auth-copy h2,.auth-copy p,.auth-note,.auth-error{margin:0}.auth-form{gap:14px;display:grid}.auth-form label{color:var(--text-muted);gap:8px;display:grid}.auth-password-control{position:relative}.auth-form input{border:1px solid var(--border);background:linear-gradient(180deg, #ffffff0a, #ffffff05), var(--bg-surface);width:100%;color:var(--text-main);font:inherit;border-radius:16px;padding:13px 14px;transition:border-color .16s,box-shadow .16s,background-color .16s;box-shadow:inset 0 1px #ffffff0a,0 10px 24px #00000024}.auth-password-control input{padding-right:54px}.theme-light .auth-form input{background:linear-gradient(180deg, #ffffffd1, #ffffffb3), var(--bg-surface);box-shadow:inset 0 1px #ffffffe6,0 10px 24px #3d55831a}.auth-form input::placeholder{color:color-mix(in srgb, var(--text-muted) 82%, transparent)}.auth-form input:hover{border-color:#68a8ff3d}.auth-form input:focus{border-color:#68a8ff9e;outline:none;box-shadow:inset 0 1px #ffffff0f,0 0 0 4px #68a8ff24,0 12px 28px #0000002e}.theme-light .auth-form input:focus{box-shadow:inset 0 1px #fffffff2,0 0 0 4px #507dff1f,0 12px 28px #3d55831f}.auth-password-toggle{color:#fff;width:38px;height:38px;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;transition:none;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.auth-password-toggle,.auth-password-toggle:hover,.auth-password-toggle:active,.auth-password-toggle:focus{transform:translateY(-50%)!important}.auth-password-toggle:hover{color:#fff;background:0 0;border-color:#0000}.theme-light .auth-password-toggle,.theme-light .auth-password-toggle:hover{color:#111827}.auth-form .primary-button{width:100%;margin-top:6px}.auth-note{color:var(--text-muted)}.auth-error{color:var(--danger)}.auth-choice-list{gap:12px;display:grid}.auth-choice-button{border:1px solid var(--border);background:var(--bg-soft);width:100%;color:inherit;text-align:left;cursor:pointer;border-radius:18px;gap:6px;padding:16px 18px;display:grid}.auth-choice-button strong{font-size:1rem}.auth-choice-button span,.auth-choice-back{color:var(--text-muted)}.auth-choice-button:hover,.auth-choice-button:focus-visible{background:#68a8ff1a;border-color:#68a8ff57}.auth-choice-back{justify-self:start}.student-portal-shell{z-index:1;grid-auto-rows:max-content;align-content:start;gap:18px;width:min(1180px,100vw - 36px);margin:24px auto;display:grid;position:relative}.student-portal-topbar,.student-portal-hero{border-radius:28px;justify-content:space-between;align-items:center;gap:18px;padding:20px 24px;display:flex}.portal-topbar{z-index:1300;align-self:start;min-height:64px;padding:12px 18px 12px 16px;position:relative}.portal-topbar-logo{width:170px;height:auto;margin:0}.portal-topbar-menu{z-index:1310;margin-left:auto;position:relative}.portal-menu-trigger{border-radius:14px}.portal-menu-trigger svg circle{fill:currentColor;stroke:none}.portal-menu-popover{z-index:1320;border:1px solid var(--border);background:linear-gradient(180deg, #ffffff0e, #ffffff06), color-mix(in srgb, var(--bg-card) 96%, #111827);width:280px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:18px;gap:8px;padding:10px;display:grid;position:absolute;top:calc(100% + 10px);right:0}.portal-menu-title{color:#fff;padding:4px 6px 2px;font-size:.86rem;font-weight:800}.theme-light .portal-menu-title{color:#111827}.portal-menu-row,.portal-menu-action{width:100%;min-height:36px;color:var(--text-main);background:0 0;border:1px solid #0000;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:6px 8px;display:flex}.portal-menu-action{font:inherit;cursor:pointer;justify-content:flex-start;font-weight:600}.portal-menu-action:hover,.portal-menu-action:focus-visible{border-color:color-mix(in srgb, var(--accent) 34%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--bg-soft));outline:none}.portal-menu-action svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.portal-menu-action.danger{color:var(--danger)}.portal-menu-theme-switch{flex:none}.portal-password-backdrop{z-index:3000;width:100vw;min-height:100dvh;padding:24px;position:fixed;inset:0}.portal-password-modal{border-radius:24px;gap:20px;width:min(460px,100vw - 32px);padding:24px;display:grid;position:relative}.portal-password-modal .section-heading{align-items:flex-start;padding-right:42px}.portal-password-modal .section-heading h3,.portal-password-modal .section-heading p{margin:0}.portal-password-modal .modal-close-button{position:absolute;top:14px;right:14px}.portal-password-form{gap:16px;width:100%}.portal-password-actions{grid-template-columns:minmax(110px,.34fr) minmax(0,1fr);gap:12px;display:grid}.portal-password-actions button{width:100%}.portal-back-button{justify-self:start;align-items:center;gap:8px;display:inline-flex}.portal-back-button span{font-size:1.1rem;line-height:1}.portal-reset-password-button{color:var(--danger);border-color:#ff818138;justify-self:start}.portal-reset-password-button:hover:not(:disabled){background:#ff81811f;border-color:#ff818152}.portal-settings-page{align-self:start;width:100%}.portal-settings-grid{grid-template-columns:minmax(260px,.75fr) minmax(320px,1.25fr);align-items:start;gap:14px;display:grid}.portal-settings-card{gap:14px;display:grid}.portal-settings-card>div{gap:4px;display:grid}.portal-settings-card p{color:var(--text-muted);margin:0}.portal-settings-password-card{align-content:start}.portal-password-management-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.portal-password-management-actions button{width:100%}.portal-settings-card>.theme-switch{justify-self:start}.student-portal-hero{align-items:flex-end}.student-portal-hero h2,.student-portal-hero p{margin:0}.student-portal-student-switcher{flex-wrap:wrap;align-items:center;gap:10px 12px;margin-top:6px;display:flex}.student-portal-student-name{align-items:baseline;gap:12px;display:inline-flex}.student-portal-student-switcher button{color:var(--text-muted);font:inherit;letter-spacing:0;cursor:pointer;background:0 0;border:0;padding:0;font-size:1.25rem;font-weight:700;line-height:1.12}.student-portal-student-switcher button.active{color:#fff}.student-portal-student-switcher button:hover,.student-portal-student-switcher button:focus-visible{color:var(--text)}.student-portal-student-switcher button.active:hover,.student-portal-student-switcher button.active:focus-visible{color:#fff}.student-portal-student-switcher button:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:4px}.student-portal-student-separator{color:var(--text-muted);font-size:1.25rem;font-weight:700;line-height:1}.student-portal-hero-summary{flex-wrap:wrap;justify-content:flex-end;gap:10px;max-width:460px;display:flex}.student-portal-hero-summary>div{border:1px solid var(--border);background:var(--bg-soft);border-radius:18px;gap:5px;min-width:190px;padding:12px 14px;display:grid}.student-portal-hero-summary span{color:var(--text-muted);font-size:.82rem}.student-portal-hero-summary strong{font-size:1.05rem}.student-portal-hero-meta{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.student-portal-metrics{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;display:grid}.student-portal-metrics .stat-card strong{font-size:1rem}.teacher-portal-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.student-portal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.teacher-portal-salary-section{grid-column:1/-1}.teacher-salary-periods{width:100%}.student-portal-section{align-content:start;gap:18px;display:grid}.student-portal-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.student-portal-details>div,.student-portal-note,.student-portal-list-card,.student-portal-transaction-card{border:1px solid var(--border);background:var(--bg-soft);border-radius:18px;padding:14px 16px}.student-portal-details span,.student-portal-days>span,.student-portal-note span,.student-portal-list-card span,.student-portal-transaction-card span{color:var(--text-muted)}.student-portal-details strong,.student-portal-list-card strong,.student-portal-transaction-card strong{display:block}.student-portal-details strong,.student-portal-details span,.student-portal-note p{margin:0}.student-portal-days,.student-portal-note,.student-portal-subsection{gap:10px;display:grid}.student-portal-calendar-wrap{justify-items:center;display:grid}.student-portal-calendar-wrap .student-portal-days{justify-self:start;width:100%;margin-top:10px}.student-portal-calendar-wrap .student-portal-days .chip-grid{justify-content:flex-start}.student-portal-calendar-wrap .student-portal-days .chip{color:#fff;background:#ffffff1f;border-color:#ffffffc7}.student-portal-schedule-layout{grid-template-columns:minmax(320px,320px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.student-portal-schedule-side{align-content:start;gap:18px;display:grid}.student-portal-schedule-picker{justify-self:center}.student-portal-stack{align-content:start;align-items:start;gap:10px;display:grid}.student-portal-list-card p,.student-portal-transaction-card p{margin:4px 0}.student-portal-list-card-accent{background:#8b5cf61f;border-color:#8b5cf638}.theme-light .student-portal-list-card-accent{background:#7c3aed14;border-color:#7c3aed29}.teacher-schedule-groups{width:100%}.teacher-week-picker{grid-template-columns:44px minmax(150px,1fr) max-content 44px;align-items:center;gap:10px;display:grid;position:relative}.teacher-week-nav-button,.teacher-week-date-button,.teacher-week-today-button{border:1px solid color-mix(in srgb, var(--border) 78%, transparent);color:#fff;background:color-mix(in srgb, var(--bg-soft) 84%, transparent);min-height:44px;font:inherit;cursor:pointer;border-radius:16px;font-weight:700}.teacher-week-nav-button{place-items:center;width:44px;font-size:1.2rem;display:inline-grid}.teacher-week-date-button{justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:0 16px;display:flex}.teacher-week-date-button svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:17px;height:17px}.teacher-week-today-button{white-space:nowrap;padding:0 18px}.teacher-week-nav-button:hover,.teacher-week-date-button:hover,.teacher-week-today-button:hover{border-color:color-mix(in srgb, var(--accent) 38%, var(--border));background:color-mix(in srgb, var(--accent) 12%, var(--bg-soft))}.teacher-week-popover{z-index:30;width:min(330px,100vw - 48px);position:absolute;top:calc(100% + 10px);left:54px}.teacher-week-calendar{width:100%;box-shadow:var(--shadow)}.teacher-schedule-day{gap:12px;width:100%;display:grid}.teacher-schedule-toggle{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:14px;padding:0;display:flex}.teacher-schedule-toggle>span:first-child{gap:3px;min-width:0;display:grid}.teacher-schedule-day>.teacher-schedule-toggle strong{color:#fff}.theme-light .teacher-schedule-day>.teacher-schedule-toggle strong{color:#111827}.teacher-schedule-lesson-title{color:#fff;flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.teacher-schedule-lesson-title>span:first-child{color:#fff}.theme-light .teacher-schedule-lesson-title,.theme-light .teacher-schedule-lesson-title>span:first-child{color:#111827}.teacher-schedule-lesson-title>.teacher-schedule-substitution-label{color:#fbbf24}.teacher-schedule-toggle small,.teacher-schedule-student span{color:var(--text-muted);font-size:.82rem}.teacher-schedule-lesson-toggle small{color:#cfe0ff}.teacher-schedule-lesson-toggle{grid-template-columns:32px minmax(0,1fr);display:grid}.teacher-schedule-lesson-toggle>.teacher-schedule-lesson-copy{gap:3px;min-width:0;display:grid}.teacher-schedule-lesson-toggle>.teacher-schedule-lesson-number{color:#fff;background:#475569;border-radius:8px;align-self:center;place-items:center;width:27px;height:27px;font-size:.9rem;font-weight:600;line-height:1;display:inline-grid;box-shadow:inset 0 1px #ffffff14}.teacher-salary-lesson>.teacher-schedule-lesson-number{color:#fff;background:#475569;border-radius:8px;place-items:center;width:27px;height:27px;font-size:.9rem;font-weight:600;line-height:1;display:inline-grid;box-shadow:inset 0 1px #ffffff14}.teacher-salary-lesson-toggle>.teacher-salary-lesson-number{color:#fff;background:#475569;border-radius:8px;align-self:center;place-items:center;width:27px;height:27px;font-size:.9rem;font-weight:600;line-height:1;display:inline-grid}.theme-light .teacher-schedule-lesson-toggle>.teacher-schedule-lesson-number,.theme-light .teacher-salary-lesson>.teacher-schedule-lesson-number{background:#6b7280}.teacher-schedule-caret{width:28px;height:28px;color:var(--text-muted);background:color-mix(in srgb, var(--text-muted) 10%, transparent);border-radius:999px;flex:0 0 28px;place-items:center;transition:transform .16s,color .16s,background .16s;display:none}.teacher-schedule-day.expanded>.teacher-schedule-toggle .teacher-schedule-caret,.teacher-schedule-lesson.expanded>.teacher-schedule-toggle .teacher-schedule-caret{color:var(--text);background:color-mix(in srgb, var(--accent) 20%, transparent);transform:rotate(90deg)}.teacher-schedule-lessons,.teacher-schedule-students{gap:8px;display:grid}.teacher-schedule-lessons{padding-top:2px}.teacher-schedule-lesson{border:1px solid color-mix(in srgb, var(--border) 76%, transparent);background:color-mix(in srgb, var(--bg-card) 50%, transparent);border-radius:14px;gap:10px;padding:12px;display:grid}.teacher-schedule-lesson.substitution{border-color:#fbbf24c7}.teacher-schedule-students{background:0 0;border-radius:12px;padding:10px 0 4px}.teacher-schedule-student{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;grid-template-columns:8px minmax(0,1fr) max-content;align-items:center;gap:12px;padding:6px 8px;transition:background .18s,color .18s;display:grid}.teacher-schedule-student:hover{background:color-mix(in srgb, var(--bg-soft) 72%, transparent)}.teacher-schedule-student:before{content:"";background:#fff;border-radius:999px;width:6px;height:6px}.teacher-schedule-student.absent{background:color-mix(in srgb, var(--danger) 20%, transparent)}.teacher-schedule-student.absent:before{background:var(--danger)}.teacher-schedule-students-title{color:#aeb8ca;margin-bottom:8px;font-size:.9rem;display:block}.teacher-schedule-substitution-badge{color:#fff;flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.teacher-schedule-substitution-badge>span{color:#fff}.teacher-schedule-substitution-badge>.teacher-schedule-substitution-original{color:#fbbf24}.teacher-schedule-student strong{color:#f5f7fb;overflow-wrap:anywhere;min-width:0;font-size:.92rem;font-weight:600}.teacher-schedule-student.absent strong{color:var(--danger)}.teacher-schedule-student-status{color:var(--danger);white-space:nowrap;font-size:.76rem;font-weight:500}.teacher-salary-period{gap:12px;width:100%;display:grid}.teacher-salary-toggle,.teacher-salary-day-toggle{grid-template-columns:minmax(0,1fr) max-content;align-items:center;display:grid}.teacher-salary-toggle strong,.teacher-salary-day-toggle strong{color:#fff}.teacher-salary-toggle .teacher-salary-period-title.paid{color:#34d399}.teacher-salary-toggle .teacher-salary-period-title.pending{color:#fbbf24}.theme-light .teacher-salary-toggle strong,.theme-light .teacher-salary-day-toggle strong{color:#111827}.theme-light .teacher-salary-toggle .teacher-salary-period-title.paid{color:#059669}.theme-light .teacher-salary-toggle .teacher-salary-period-title.pending{color:#b45309}.teacher-salary-total{color:#fff;white-space:nowrap;font-weight:700}.teacher-salary-total.paid,.teacher-salary-lesson-amount.paid{color:#34d399}.teacher-salary-total.pending,.teacher-salary-lesson-amount.pending{color:#fbbf24}.teacher-salary-total.inner{color:#fff;font-size:.9rem;font-weight:600}.teacher-salary-lesson-amount.bonus,.teacher-salary-adjustment.bonus .teacher-salary-adjustment-title,.teacher-salary-adjustment.bonus .teacher-salary-adjustment-amount{color:#34d399}.teacher-salary-lesson-amount.penalty,.teacher-salary-adjustment.penalty .teacher-salary-adjustment-title,.teacher-salary-adjustment.penalty .teacher-salary-adjustment-amount{color:#fb7185}.theme-light .teacher-salary-lesson-amount.bonus,.theme-light .teacher-salary-adjustment.bonus .teacher-salary-adjustment-title,.theme-light .teacher-salary-adjustment.bonus .teacher-salary-adjustment-amount{color:#059669}.theme-light .teacher-salary-lesson-amount.penalty,.theme-light .teacher-salary-adjustment.penalty .teacher-salary-adjustment-title,.theme-light .teacher-salary-adjustment.penalty .teacher-salary-adjustment-amount{color:#dc2626}.teacher-salary-period.expanded>.teacher-salary-toggle .teacher-schedule-caret,.teacher-salary-day.expanded>.teacher-salary-day-toggle .teacher-schedule-caret{color:var(--text);background:color-mix(in srgb, var(--accent) 20%, transparent);transform:rotate(90deg)}.teacher-salary-days,.teacher-salary-lessons{gap:8px;display:grid}.teacher-salary-day{border:1px solid color-mix(in srgb, var(--border) 76%, transparent);background:color-mix(in srgb, var(--bg-card) 50%, transparent);border-radius:14px;gap:10px;padding:12px;display:grid}.teacher-salary-adjustment{border:1px solid color-mix(in srgb, var(--border) 76%, transparent);background:color-mix(in srgb, var(--bg-card) 50%, transparent);border-radius:14px;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:12px;padding:12px;display:grid}.teacher-salary-adjustment-copy{gap:4px;min-width:0;display:grid}.teacher-salary-adjustment-copy small{color:#cfe0ff;font-size:.82rem}.teacher-salary-adjustment-title,.teacher-salary-adjustment-amount{font-weight:700}.teacher-salary-adjustment-amount{white-space:nowrap}.teacher-salary-lesson{border:1px solid color-mix(in srgb, var(--border) 58%, transparent);background:color-mix(in srgb, var(--bg-soft) 70%, transparent);border-radius:14px;gap:10px;padding:12px;display:grid}.teacher-salary-lesson-toggle{grid-template-columns:32px minmax(0,1fr) max-content;align-items:center;display:grid}.teacher-salary-lesson.expanded>.teacher-salary-lesson-toggle .teacher-schedule-caret{color:var(--text);background:color-mix(in srgb, var(--accent) 20%, transparent);transform:rotate(90deg)}.teacher-salary-lesson-copy{gap:4px;min-width:0;display:grid}.teacher-salary-lesson-copy small,.teacher-salary-lesson-copy>span{color:#cfe0ff;font-size:.82rem}.teacher-salary-lesson-copy small span{color:#cfe0ff}.teacher-salary-lesson-copy small .teacher-salary-status.paid{color:#34d399}.teacher-salary-lesson-copy small .teacher-salary-status.pending{color:#fbbf24}.teacher-salary-lesson-amount{color:#fff;white-space:nowrap;font-size:.86rem;font-weight:600}.teacher-salary-students{gap:8px;padding:10px 0 4px 44px;display:grid}.student-portal-transaction-card{flex-direction:row;justify-content:space-between;align-self:start;align-items:flex-start;gap:8px;height:fit-content;display:flex}.student-portal-calendar-day{cursor:default}.student-portal-calendar-day.selected{border-color:#ffffffeb;outline:0}.student-portal-debt-preview{border:1px solid color-mix(in srgb, var(--border) 62%, transparent);background:color-mix(in srgb, var(--bg-soft) 70%, transparent);border-radius:10px;grid-template-columns:1fr auto;align-items:center;width:100%;margin-top:10px;padding:9px 10px;display:grid}.student-portal-debt-preview small{color:var(--text-muted)}.student-portal-debt-preview span{color:#fff}.student-portal-debt-preview strong{color:#37f0c2;font-size:.96rem}.student-portal-debt-preview small{grid-column:1/-1;margin-top:2px;font-size:.78rem}.student-portal-debt-preview.has-debt{background:#ff6b811f;border-color:#ff6b817a}.student-portal-debt-preview.has-debt strong{color:#ff6b81}.theme-light .student-portal-debt-preview strong{color:#047857}.theme-light .student-portal-debt-preview.has-debt{background:#ff6b8126}.theme-light .student-portal-debt-preview.has-debt strong{color:#9f1239}.student-portal-calendar-lessons{border-top:1px solid color-mix(in srgb, var(--border) 70%, transparent);gap:10px;width:100%;margin-top:12px;padding-top:12px;display:grid;position:relative}.student-portal-calendar-lessons-close{box-shadow:none;background:0 0;border:0;position:absolute;top:6px;right:0}.student-portal-calendar-lessons>strong{color:#fff;padding-right:34px;font-size:.9rem}.student-portal-calendar-lessons>div{gap:8px;display:grid}.student-portal-calendar-lessons article{border:1px solid color-mix(in srgb, var(--border) 58%, transparent);background:color-mix(in srgb, var(--bg-soft) 68%, transparent);border-radius:12px;grid-template-columns:52px minmax(0,1fr);align-items:start;gap:10px;padding:9px 10px;display:grid}.student-portal-calendar-lessons article.substitution{border-color:#fbbf24c7}.student-portal-calendar-lessons article.occurred{background:#37f0c22e;border-color:#37f0c2c2}.student-portal-calendar-lessons article.replaced{background:#b99cff29;border-color:#b99cffc7}.student-portal-calendar-lessons article.cancelled{background:#f8717129;border-color:#f87171c7}.student-portal-calendar-lessons article.upcoming{border-color:#ffffffd1}.student-portal-calendar-lessons article.substitution.upcoming{background:#ffb86b2e;border-color:#fbbf24c7}.student-portal-calendar-lessons article>span{color:#cfe0ff;font-weight:700}.student-portal-calendar-lessons article div{gap:3px;min-width:0;display:grid}.student-portal-calendar-lessons article strong{color:#fff;overflow-wrap:anywhere;font-size:.9rem}.student-portal-calendar-lessons article .teacher-schedule-substitution-label{color:#fbbf24}.student-portal-calendar-lessons article small,.student-portal-calendar-lessons p{color:var(--text-muted);margin:0;font-size:.82rem}.student-portal-calendar-lessons article .student-portal-calendar-lesson-status{color:#fff}.student-portal-substitution-card{cursor:default}.student-portal-substitution-card .lesson-card-head{grid-template-columns:1fr}.student-portal-substitution-date,.student-portal-substitution-text{margin:0}.student-portal-substitution-date{color:var(--text-muted);margin-bottom:6px;display:block}.student-portal-transaction-content{flex:auto;gap:4px;width:100%;min-width:0;display:grid}.student-portal-transaction-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.student-portal-transaction-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-left:auto;display:flex}.student-portal-transaction-title-row .positive{white-space:nowrap}.student-portal-transaction-title-row{justify-content:flex-start}.student-portal-transaction-content{align-items:flex-start}.brand-block{justify-content:center;align-items:center;gap:14px;display:flex}.brand-link{cursor:pointer;background:0 0;border:0;justify-content:center;width:100%;padding:0;display:flex}.brand-logo{flex-shrink:0;width:170px;max-width:100%;height:auto;display:block}.brand-logo-icon{object-fit:contain;flex:none;width:28px;height:28px;display:none}.brand-kicker,.eyebrow,.sidebar-card p,.section-heading p,.student-card p,.journal-card span,.teacher-card span,.schedule-card span{color:var(--text-muted)}.sidebar-nav,.sidebar-bottom-nav,.page-grid,.page-stack,.stack-list,.student-cards,.teacher-grid,.journal-list,.day-stack{gap:16px;display:grid}.nav-item,.ghost-button,.primary-button,.chip,.action-row{transition:transform .16s,background-color .16s,border-color .16s}.nav-item{color:inherit;text-align:left;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:18px;align-items:center;gap:8px;padding:10px 12px;display:flex;position:relative}.nav-label{text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.nav-badge{background:color-mix(in srgb, #f59e0b 24%, var(--bg-soft));color:#ffcf6b;border:1px solid #f59e0ba3;border-radius:999px;flex:none;justify-content:center;align-items:center;min-width:24px;height:24px;margin-left:auto;padding:0 7px;font-size:.78rem;font-weight:800;line-height:1;display:inline-flex}.nav-icon{background:var(--bg-soft);border-radius:9px;place-items:center;width:26px;height:26px;transition:background-color .16s,color .16s,transform .16s;display:grid}.nav-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.nav-item.active,.nav-item:hover,.chip.active,.chip:hover{background:#37f0c21f;border-color:#37f0c22e;transform:translateY(-1px)}.nav-item:hover:not(.active){background:linear-gradient(90deg,#ffb86b33,#ff7fb724 48%,#68a8ff29),#ffffff0d;border-color:#0000;transform:translate(3px)}.nav-item.active{background:linear-gradient(90deg,#ffb86b33,#ff7fb724 48%,#68a8ff29),#ffffff0d;border-color:#0000}.nav-item:hover:not(.active) .nav-icon{color:#ffcf6b;background:linear-gradient(135deg,#ffb86b3d,#ff7fb733);transform:translate(2px)}.nav-item.active .nav-icon{color:#ffcf6b;background:linear-gradient(135deg,#ffb86b3d,#ff7fb733)}.theme-light .nav-item:hover:not(.active),.theme-light .nav-item.active{background:linear-gradient(90deg,#d08f322e,#d85b5b1c 48%,#507dff21),#0b172e0a;border-color:#0000}.theme-light .nav-item:hover:not(.active) .nav-icon,.theme-light .nav-item.active .nav-icon{color:#b87722;background:linear-gradient(135deg,#d08f3233,#d85b5b24)}.sidebar-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:22px;margin-top:auto;padding:18px}.sidebar-bottom{gap:16px;margin-top:auto;display:grid}.sidebar-bottom-nav{margin-top:0}.sidebar-bottom-actions{gap:16px;display:grid}.sidebar-logout-button{color:var(--danger);border-color:#ff81812e}.sidebar-logout-button .nav-icon{color:inherit;background:#ff81811f}.sidebar-logout-button:hover:not(.active){background:#ff81811f;border-color:#ff81813d}.theme-light .sidebar-logout-button:hover:not(.active){background:#d92d2014;border-color:#d92d202e}.sidebar-card strong,.stat-card strong,.student-metrics strong,.journal-meta strong{font-size:1.5rem}.content-area{z-index:1;min-height:0;padding:24px 24px 24px 6px;overflow-y:auto}.topbar,.topbar-actions,.section-heading,.filters-bar,.form-columns,.card-actions,.student-card-head,.student-metrics,.date-range,.chart-area,.journal-card,.journal-meta{gap:16px;display:flex}.topbar,.section-heading,.student-card-head,.journal-card{justify-content:space-between}.journal-card-income{--journal-accent:#39e56f;--journal-accent-soft:#39e56f38;background:linear-gradient(90deg, #37f0c224, transparent 34%), var(--bg-card)}.journal-card-expense{--journal-accent:#ff4b55;--journal-accent-soft:#ff4b5538;background:linear-gradient(90deg, #ff818124, transparent 34%), var(--bg-card)}.journal-card-salary-payout{--journal-accent:#ff9c37;--journal-accent-soft:#ff9c3738;background:linear-gradient(90deg, #7eb1ff29, transparent 34%), var(--bg-card)}.journal-card-salary-accrual{--journal-accent:#4ea1ff;--journal-accent-soft:#4ea1ff38;background:linear-gradient(90deg, #7eb1ff29, transparent 34%), var(--bg-card)}.journal-card-refund{--journal-accent:#8b5cf6;--journal-accent-soft:#8b5cf63d;background:linear-gradient(90deg, #8b5cf629, transparent 34%), var(--bg-card)}.journal-card-avatar-income{--journal-accent:#39e56f}.journal-card-avatar-expense{--journal-accent:#ff4b55}.journal-card-avatar-salary-payout{--journal-accent:#ff9c37}.journal-card-avatar-salary-accrual{--journal-accent:#4ea1ff}.journal-card-avatar-refund{--journal-accent:#8b5cf6}.journal-card{cursor:pointer;align-items:center;gap:18px;padding:18px 20px}.journal-card-main{flex:auto;align-items:center;gap:16px;min-width:0;display:flex}.journal-card-avatar{background:linear-gradient(135deg, var(--journal-accent), var(--journal-accent));border-radius:22px;flex:none;place-items:center;width:72px;height:72px;display:grid;box-shadow:inset 0 1px #ffffff2e}.journal-card-avatar-core{width:46px;height:46px;color:var(--journal-accent);background:#f6f7fb;border-radius:16px;place-items:center;display:grid}.journal-card-avatar-core svg{fill:none;stroke:currentColor;stroke-width:2.7px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.journal-card-copy{min-width:0}.journal-card-title{margin:0;font-size:1.45rem;font-weight:700;line-height:1.1}.journal-card-subtitle{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 0;font-size:1rem;line-height:1.25;display:-webkit-box;overflow:hidden}.journal-category{color:var(--text-muted)}.journal-card .journal-category-label{color:#d6deef;font-weight:600}.theme-light .journal-card .journal-category-label{color:#3f4d68}.journal-note-date{color:#ffcf6b;background:#ffcf6b38;border-radius:6px;padding:1px 3px;font-weight:900}.theme-light .journal-note-date{color:#7c4a03;background:#ffb86b57}.journal-delete-button{flex:none}.journal-amount{white-space:nowrap}.journal-meta{text-align:right;flex:none;place-items:center end;gap:12px;margin-left:auto;display:grid}.modal-card-journal-transaction{width:min(100%,640px);padding:26px}.journal-transaction-modal-close{justify-content:flex-end;margin-bottom:6px;display:flex}.journal-transaction-modal-top{text-align:center;justify-items:center;gap:18px;display:grid}.journal-transaction-modal-top .journal-card-avatar{background:linear-gradient(145deg, var(--journal-accent), color-mix(in srgb, var(--journal-accent) 82%, #fff));width:78px;height:78px;box-shadow:inset 0 1px 0 #ffffff38, 0 14px 28px color-mix(in srgb, var(--journal-accent) 26%, #00000029);border:0;border-radius:22px}.journal-transaction-modal-top .journal-card-avatar-core{width:48px;height:48px;color:color-mix(in srgb, var(--text-muted) 84%, #8fa0bf);background:#f8f9fd;border-radius:15px;box-shadow:inset 0 1px #ffffffe6,0 8px 18px #121d3424}.journal-transaction-modal-top .journal-card-avatar-core svg{stroke-width:2.4px;width:22px;height:22px}.journal-transaction-modal-copy h3{margin:0;font-size:2rem}.journal-transaction-modal-copy p{color:var(--text-muted);margin:10px 0 0;font-size:1.1rem;line-height:1.35}.journal-transaction-modal-top strong{font-size:clamp(1.75rem,4vw,2.45rem);line-height:1}.journal-transaction-modal-details{border:1px solid var(--border);background:var(--bg-soft);border-radius:28px;margin-top:28px;overflow:hidden}.journal-transaction-modal-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:20px;padding:22px 24px;display:grid}.journal-transaction-modal-row+.journal-transaction-modal-row{border-top:1px solid var(--border)}.journal-transaction-modal-row span{color:var(--text-muted)}.journal-transaction-modal-row strong{text-align:right;font-size:1rem;line-height:1.35}.journal-transaction-delete-button{width:fit-content;color:var(--danger);font:inherit;cursor:pointer;background:#ffffff0f;border:0;border-radius:18px;margin-top:18px;margin-left:auto;margin-right:auto;padding:16px 20px;font-weight:800;transition:background-color .16s,border-color .16s,transform .16s;display:block}.journal-transaction-delete-button:hover{background:#ff81811a;transform:translateY(-1px)}.theme-light .journal-transaction-delete-button{background:#0f172a0f}.theme-light .journal-transaction-delete-button:hover{background:#d92d2014}.journal-day-group,.journal-day-items{gap:14px;display:grid}.page-stack>.panel:has(+.journal-list){z-index:45;align-self:start;position:sticky;top:0}.journal-day-heading{z-index:40;border:1px solid color-mix(in srgb, var(--border) 62%, transparent);background:var(--bg-card);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:14px;justify-content:space-between;align-self:start;align-items:center;gap:12px;margin:0;padding:8px 12px;display:flex;position:sticky;top:122px}.journal-day-heading span:first-child{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.82rem;font-weight:700}.topbar{margin-bottom:22px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center}.theme-switch{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-main);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:6px;display:inline-flex}.theme-switch-track{border:1px solid var(--border);background:#ffffff1f;border-radius:999px;width:58px;height:32px;padding:3px}.theme-light .theme-switch-track{background:#ffffffd1;border-color:#0f172a29}.theme-switch-thumb{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-soft) 100%);border-radius:999px;width:24px;height:24px;transition:transform .18s;display:block}.theme-light .theme-switch-thumb{background:#2f3645;transform:translate(26px)}.theme-switch-icon{width:26px;height:26px;color:var(--accent);place-items:center;display:grid}.theme-switch-icon svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.ghost-button,.primary-button{font:inherit;cursor:pointer;border-radius:16px;padding:12px 16px}.ghost-button{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-main)}.ghost-button.active{background:#37f0c21f}.ghost-button:hover{background:#8b5cf629;border-color:#8b5cf647;transform:translateY(-1px)}.theme-light .ghost-button:hover{background:#7c3aed1f;border-color:#7c3aed33}.ghost-button.icon-button.auth-password-toggle,.ghost-button.icon-button.auth-password-toggle:hover,.ghost-button.icon-button.auth-password-toggle:active,.ghost-button.icon-button.auth-password-toggle:focus,.ghost-button.icon-button.auth-password-toggle:focus-visible{box-shadow:none;background:0 0;border-color:#0000}.danger-button{color:var(--danger);border-color:#ff81812e}.success-button{color:var(--accent);border-color:#37f0c238}.primary-button{color:#f8fbff;background:linear-gradient(135deg,#3478ff 0%,#8b5cf6 100%);border:0;font-weight:700;box-shadow:0 14px 30px #5372ff38}.primary-button:hover:not(:disabled){background:linear-gradient(135deg,#4f8cff 0%,#9b72ff 100%);transform:translateY(-1px);box-shadow:0 16px 34px #5372ff52}.primary-button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.settings-backup-button{align-items:center;gap:8px;display:inline-flex}.settings-backup-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.settings-backup-card{justify-content:space-between;align-items:center;gap:16px;display:flex}.settings-backup-card p{color:var(--text-muted);margin-top:4px}.status-pill,.badge,.student-tags span{border:1px solid var(--border);background:var(--bg-soft);border-radius:999px;padding:9px 14px}.balance-indicator{border:1px solid var(--border);background:var(--bg-soft);border-radius:18px;min-width:220px;padding:12px 16px}.balance-indicator span{color:var(--text-muted);margin-bottom:8px;display:block}.balance-positive{background:#37f0c21a;box-shadow:inset 0 0 0 1px #37f0c238}.balance-positive strong{color:var(--accent)}.balance-negative{background:#ff81811a;box-shadow:inset 0 0 0 1px #ff818138}.balance-negative strong{color:var(--danger)}.dashboard-layout{grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;display:grid}.hero-card,.chart-card{border-radius:28px;padding:24px}.hero-card{z-index:5;grid-column:span 12;justify-content:flex-start;align-items:flex-start;gap:20px;display:flex;position:relative;overflow:visible}:is(.hero-card:has(.date-range-popover),.panel:has(.date-range-popover),.journal-filter-panel:has(.date-range-popover)){z-index:120}.hero-copy{max-width:640px}.hero-copy h3{font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.12}.hero-copy p{max-width:520px;font-size:.96rem}.stats-grid{grid-column:span 12;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;display:grid}.dashboard-stats-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.stat-card,.panel,.student-card,.teacher-card,.day-column,.journal-card{border-radius:24px;padding:20px}.stat-card{border-color:var(--stat-border,var(--border));align-items:center;display:flex}.dashboard-stat-card{--dashboard-card-accent:#3da9ff;--dashboard-card-surface:#1b2028;background:linear-gradient(145deg, color-mix(in srgb, var(--dashboard-card-accent) 7%, var(--dashboard-card-surface)), var(--dashboard-card-surface) 58%), var(--dashboard-card-surface);border-color:#ffffff09;grid-template-rows:auto 1fr;align-items:stretch;gap:12px;min-height:118px;padding:14px 16px;display:grid;box-shadow:inset 0 1px #ffffff0a,0 14px 28px #0003}.dashboard-stat-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dashboard-stat-card-title{align-items:center;gap:10px;min-width:0;display:flex}.dashboard-stat-card-title span{color:#ffffff9e;margin:0;font-size:.84rem;line-height:1.2}.dashboard-stat-card .stat-icon{width:34px;height:34px;color:var(--dashboard-card-accent);background:color-mix(in srgb, var(--dashboard-card-accent) 20%, transparent);border:1px solid color-mix(in srgb, var(--dashboard-card-accent) 15%, transparent);border-radius:12px;box-shadow:inset 0 1px #ffffff0d}.dashboard-stat-card .stat-icon svg{stroke-width:2.15px;width:16px;height:16px}.dashboard-stat-card-footer{justify-content:space-between;align-items:flex-end;gap:10px;display:flex}.dashboard-stat-card-footer-single{justify-content:flex-start}.stat-card.dashboard-stat-card strong{letter-spacing:-.03em;color:#fff;margin:0;font-size:clamp(1.25rem,1.5vw,1.7rem);line-height:.98}.dashboard-stat-card-comparison{text-align:right;align-self:end;justify-items:end;gap:4px;display:grid}.dashboard-stat-card-delta,.dashboard-stat-card-caption{margin:0}.dashboard-stat-card-delta{font-size:.78rem;font-weight:700;line-height:1}.stat-card.dashboard-stat-card .dashboard-stat-card-delta.positive{color:#35d48d}.stat-card.dashboard-stat-card .dashboard-stat-card-delta.negative{color:#ff5f6d}.stat-card.dashboard-stat-card .dashboard-stat-card-delta.neutral{color:#ffffff80}.dashboard-stat-card-caption{color:#ffffff7a;font-size:.68rem;line-height:1.1}.dashboard-stat-card.income{--dashboard-card-accent:#35d48d;--dashboard-card-surface:#1b231f}.dashboard-stat-card.expense{--dashboard-card-accent:#ff5f6d;--dashboard-card-surface:#251d20}.dashboard-stat-card.net{--dashboard-card-accent:#3da9ff;--dashboard-card-surface:#1b2028}.dashboard-stat-card.debt{--dashboard-card-accent:#eb4eb3;--dashboard-card-surface:#231d29}.dashboard-stat-card.students-total{--dashboard-card-accent:#ffbf1f;--dashboard-card-surface:#24211c}.dashboard-stat-card.teachers-total{--dashboard-card-accent:#8b7cff;--dashboard-card-surface:#20202b}.student-metrics span{color:var(--text-muted);margin-bottom:8px;display:block}.stat-card span:not(.stat-icon){color:var(--text-muted);margin-bottom:0}.stat-card-top{align-items:center;gap:12px;width:100%;display:flex}.stat-card-top>div{min-width:0}.stat-card-top span{margin-bottom:0}.stat-card strong{color:var(--stat-color,var(--text-main));display:block}.stat-card-subvalue{color:var(--text-muted);margin-top:4px;font-size:.98rem;font-weight:700;display:block}.student-next-payment-metric.only-amount .stat-card-subvalue{color:#fff}.theme-light .student-next-payment-metric.only-amount .stat-card-subvalue{color:var(--text-main)}.stat-card strong.positive{color:var(--accent)}.stat-card strong.negative{color:var(--danger)}.stat-card strong.warning{color:var(--warning)}.stat-icon{width:46px;height:46px;color:var(--stat-icon-color,var(--stat-color,var(--accent)));flex:none;place-items:center;line-height:0;display:grid}.stat-icon svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;place-self:center;width:32px;height:32px;display:block}.income{--stat-color:#37f0c2;--stat-icon-color:#37f0c29e;--stat-bg:#37f0c221;--stat-border:#37f0c23d}.expense{--stat-color:#ff8181;--stat-icon-color:#ff81819e;--stat-bg:#ff818121;--stat-border:#ff81813d}.net{--stat-color:#68a8ff;--stat-icon-color:#68a8ff9e;--stat-bg:#68a8ff21;--stat-border:#68a8ff3d}.debt{--stat-color:#ff7fb7;--stat-icon-color:#ff7fb79e;--stat-bg:#ff7fb721;--stat-border:#ff7fb73d}.students-total{--stat-color:#ffb86b;--stat-icon-color:#ffb86b9e;--stat-bg:#ffb86b24;--stat-border:#ffb86b42}.teachers-total{--stat-color:#b99cff;--stat-icon-color:#b99cff9e;--stat-bg:#b99cff21;--stat-border:#b99cff3d}.chart-card{grid-column:span 6}.trend-chart{width:100%;height:var(--chart-plot-height,280px);box-sizing:border-box;background:radial-gradient(circle at 18% 16%, #37f0c22e, transparent 24%), linear-gradient(180deg, #68a8ff1a, transparent), var(--bg-soft);border:1px solid var(--border);padding:var(--chart-plot-pad-top,14px) 14px var(--chart-plot-pad-bottom,14px);border-radius:28px;display:block;overflow:visible}.chart-shell{--chart-plot-height:520px;--chart-plot-pad-top:14px;--chart-plot-pad-bottom:14px;grid-template-columns:96px minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width>=2000px){.chart-shell{--chart-plot-height:680px}}.chart-y-axis{color:var(--text-muted);min-height:calc(var(--chart-plot-height) - var(--chart-plot-pad-top) - var(--chart-plot-pad-bottom));margin-block:var(--chart-plot-pad-top) var(--chart-plot-pad-bottom);font-size:.84rem;position:relative}.chart-y-axis span{white-space:nowrap;position:absolute;right:0;transform:translateY(-50%)}.chart-main{align-content:start;gap:12px;min-width:0;display:grid}.chart-grid-line{stroke:#ffffff1a;stroke-width:.5px;stroke-dasharray:1.5 2.5}.theme-light .chart-grid-line{stroke:#101f3f1f}.chart-area-fill{fill:url(#areaGradient)}.chart-line{fill:none;stroke:url(#lineGradient);stroke-width:.7px;stroke-linecap:round;stroke-linejoin:round;filter:url(#chartGlow)}.chart-point-hit{fill:#0000;cursor:pointer;pointer-events:all}.chart-x-axis{color:var(--text-muted);justify-content:space-between;gap:8px;padding-inline:4px;font-size:.8rem;display:flex}.chart-x-axis span{white-space:nowrap;min-width:0}.list-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.dashboard-wide-panel .list-row p{color:var(--text-muted)}.list-meta{justify-items:end;gap:6px;display:grid}.recent-transaction-card{border:1px solid var(--border);background:var(--bg-soft);border-radius:18px;padding:16px}.recent-transaction-top strong{margin-bottom:4px;display:block}.recent-transaction-top p{color:var(--text-muted)}.panel{gap:14px;display:grid}.dashboard-side-panel{grid-column:span 6;grid-template-rows:auto minmax(0,1fr);align-content:stretch;align-self:stretch;align-items:stretch;min-height:0}.dashboard-wide-panel{grid-column:span 12}.dashboard-teacher-panel,.dashboard-recent-panel{grid-column:span 6;align-content:start}.dashboard-teacher-panel:has(.searchable-select-popover){z-index:130}.dashboard-teacher-filter{max-width:360px}.dashboard-teacher-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.dashboard-teacher-summary>div{border:1px solid var(--border);background:var(--bg-soft);border-radius:16px;min-width:0;padding:12px}.dashboard-teacher-summary span,.dashboard-teacher-lesson-metrics span{color:var(--text-muted);gap:5px;font-size:.78rem;line-height:1.2;display:grid}.dashboard-teacher-summary strong,.dashboard-teacher-lesson-metrics strong{color:var(--text-main);font-size:.98rem;line-height:1.1}.dashboard-teacher-summary>div:first-child strong,.dashboard-teacher-lesson-metrics span:first-child strong{color:var(--accent)}.dashboard-teacher-summary>div:nth-child(2) strong,.dashboard-teacher-lesson-metrics span:nth-child(2) strong{color:var(--danger)}.dashboard-teacher-summary strong.positive,.dashboard-teacher-lesson-metrics strong.positive{color:var(--accent)}.dashboard-teacher-summary strong.negative,.dashboard-teacher-lesson-metrics strong.negative{color:var(--danger)}.dashboard-teacher-summary>div:nth-child(3) strong,.dashboard-teacher-lesson-metrics span:nth-child(3) strong{color:var(--text-main)}.dashboard-teacher-lessons{overflow-anchor:none;flex-direction:column;gap:10px;max-height:none;display:flex;overflow:visible}.dashboard-teacher-lesson-card{overflow-anchor:none;border:1px solid var(--border);background:var(--bg-soft);border-radius:18px;align-self:start;width:100%;min-width:0;display:block;overflow:hidden}.dashboard-teacher-lesson-card.expanded{background:linear-gradient(180deg, #68a8ff14, transparent), var(--bg-soft);border-color:#68a8ff47}.dashboard-teacher-lesson-button{width:100%;min-height:86px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) minmax(300px,1.25fr);align-items:stretch;gap:14px;padding:14px;display:grid}.dashboard-teacher-lesson-title{align-content:center;gap:5px;min-width:0;display:grid}.dashboard-teacher-lesson-title strong,.dashboard-teacher-lesson-title span{overflow-wrap:anywhere}.dashboard-teacher-lesson-title span{color:var(--text-muted);font-size:.84rem;line-height:1.3}.dashboard-teacher-lesson-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.dashboard-teacher-lesson-metrics span{border:1px solid var(--border);background:#ffffff09;border-radius:14px;align-content:center;min-height:58px;padding:9px 10px}.theme-light .dashboard-teacher-lesson-metrics span{background:#ffffff94}.dashboard-teacher-student-list{overflow-anchor:none;padding:0 14px 14px;display:grid;position:static}.dashboard-teacher-student-list p{color:var(--text-muted)}.dashboard-teacher-student-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.dashboard-teacher-student-row:first-child{padding-top:10px}.dashboard-teacher-student-row span{overflow-wrap:anywhere;min-width:0}.dashboard-teacher-student-row strong{white-space:nowrap;flex:none}.dashboard-teacher-empty{color:var(--text-muted);text-align:center;justify-content:center}.modal-card-lesson .card-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.modal-card-lesson .card-actions button{width:100%}.problem-list{--problem-card-height:74px;--problem-card-preview:34px;min-height:0;max-height:calc(var(--problem-card-height) * 10 + 14px * 10 + var(--problem-card-preview));grid-template-columns:1fr;align-content:start;align-items:start;gap:14px;padding-right:4px;display:grid;overflow-y:auto}.problem-card{height:var(--problem-card-height);border:1px solid var(--border);background:var(--bg-soft);color:inherit;text-align:left;cursor:pointer;border-radius:18px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.problem-card-top strong{margin-bottom:4px;display:block}.problem-card-top p{color:var(--text-muted)}.problem-card-meta{flex-direction:column;align-items:flex-end;gap:4px;font-size:.95rem;display:flex}.problem-list-toggle,.recent-transactions-toggle{display:none}.split{grid-template-columns:minmax(310px,380px) 1fr}.split-wide{grid-template-columns:390px minmax(0,1fr)}.page-stack{align-content:start}.form-panel{align-self:start}.filters-bar,.inline-form{flex-wrap:wrap;align-items:end}.filters-bar .primary-button{align-self:end}.search-field{flex:1}.searchable-select{min-width:0;position:relative}.searchable-select-shell{isolation:isolate;position:relative;overflow:visible}.searchable-select:has(.searchable-select-popover){z-index:210}.searchable-select-trigger{border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-main);text-align:left;font:inherit;cursor:pointer;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;transition:border-color .16s,box-shadow .16s,background-color .16s;display:flex}.searchable-select-trigger:hover{border-color:#68a8ff3d}.searchable-select-trigger:focus-visible,.searchable-select-trigger.open{border-color:#68a8ff9e;outline:none;box-shadow:inset 0 1px #ffffff0f,0 0 0 4px #68a8ff24,0 12px 28px #0000002e}.searchable-select-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.searchable-select-value.placeholder,.searchable-select-caret{color:var(--text-muted)}.searchable-select-caret{flex:none;font-size:.8rem;transition:transform .16s}.searchable-select-caret.open{transform:rotate(180deg)}.searchable-select-popover{z-index:220;border:1px solid var(--border);background:var(--bg-card);width:max(100%,320px);max-width:min(420px,100vw - 28px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:18px;gap:10px;padding:10px;display:grid;position:absolute;top:calc(100% + 10px);left:0;right:auto}:is(.panel:has(.searchable-select-popover),.modal-card:has(.searchable-select-popover),.modal-card-student:has(.searchable-select-popover),.modal-card-substitution:has(.searchable-select-popover),.modal-card-lesson:has(.searchable-select-popover),.modal-card-attendance:has(.searchable-select-popover),.modal-card-payment:has(.searchable-select-popover)){z-index:210;overflow:visible}.searchable-select-options{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;gap:6px;max-height:220px;display:grid;overflow-y:auto}.searchable-select-option{width:100%;color:var(--text-main);text-align:left;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.searchable-select-option:hover,.searchable-select-option:focus-visible,.searchable-select-option.selected{background:#68a8ff1a;border-color:#68a8ff4d;outline:none}.searchable-select-check{color:var(--accent);font-weight:700}.searchable-select-empty{color:var(--text-muted);padding:10px 12px;font-size:.9rem}.search-input-wrap{position:relative}.search-field-icon,.search-field-placeholder{color:color-mix(in srgb, var(--text-muted) 82%, transparent);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-field-icon{justify-content:center;align-items:center;display:inline-flex;left:14px}.search-field-placeholder{align-items:center;max-width:calc(100% - 67px);font-size:.92rem;line-height:1;display:inline-flex;left:39px}.search-field-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:17px;height:17px}.search-field-placeholder span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.search-input-wrap-has-value .search-field-placeholder,.search-input-wrap input:not(:placeholder-shown)+.search-field-placeholder{display:none}.searchable-select-search{border:1px solid var(--border);background:linear-gradient(180deg, #ffffff0a, #ffffff05), var(--bg-surface);width:100%;color:var(--text-main);font:inherit;border-radius:14px;padding:12px 14px;transition:border-color .16s,box-shadow .16s,background-color .16s;box-shadow:inset 0 1px #ffffff0a,0 10px 24px #0000001f}.searchable-select-search::placeholder{color:color-mix(in srgb, var(--text-muted) 82%, transparent)}.searchable-select-search:hover{border-color:#68a8ff3d}.searchable-select-search:focus{border-color:#68a8ff9e;outline:none;box-shadow:inset 0 1px #ffffff0f,0 0 0 4px #68a8ff24,0 12px 28px #0000002e}.theme-light .searchable-select-search{background:linear-gradient(180deg, #ffffffd1, #ffffffb3), var(--bg-surface);box-shadow:inset 0 1px #ffffffe6,0 10px 24px #3d55831a}.theme-light .searchable-select-search:focus{box-shadow:inset 0 1px #fffffff2,0 0 0 4px #507dff1f,0 12px 28px #3d55831f}.search-input-wrap input,.filters-bar .search-field .search-input-wrap input{padding-left:42px;padding-right:54px}.search-clear-button{width:20px;height:20px;color:var(--text-muted);box-shadow:none;cursor:pointer;background:0 0;border:0;padding:0;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.search-clear-button,.search-clear-button:hover,.search-clear-button:active,.search-clear-button:focus,.search-clear-button:focus-visible{box-shadow:none;background:0 0;transform:translateY(-50%)!important}.search-clear-button:hover{color:var(--text-main)}.crm-form,.day-picker{gap:14px;display:grid}.crm-form label,.crm-form .searchable-select,.date-range label,.filters-bar label,.filters-bar .searchable-select,.schedule-week-picker label{color:var(--text-muted);gap:8px;display:grid}.crm-form input,.crm-form select,.crm-form textarea,.crm-form .searchable-select-trigger,.crm-form .searchable-select-search,.date-range input,.filters-bar input,.filters-bar select,.filters-bar .searchable-select-trigger,.filters-bar .searchable-select-search,.schedule-week-picker input{border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-main);border-radius:16px;padding:13px 14px}.filters-bar .searchable-select .searchable-select-option,.filters-bar .searchable-select .searchable-select-trigger,.filters-bar .searchable-select .search-clear-button,.crm-form .searchable-select .searchable-select-option,.crm-form .searchable-select .searchable-select-trigger,.crm-form .searchable-select .search-clear-button{justify-content:space-between}.filters-bar .searchable-select .searchable-select-trigger,.crm-form .searchable-select .searchable-select-trigger{min-height:47px;font-size:inherit;border-radius:16px;padding:13px 14px}.filters-bar .searchable-select .searchable-select-option,.crm-form .searchable-select .searchable-select-option{min-height:auto;font-size:inherit;white-space:normal;border-radius:12px;padding:10px 12px}.filters-bar .searchable-select .search-clear-button,.crm-form .searchable-select .search-clear-button{border-radius:0;width:20px;height:20px;min-height:20px;padding:0}.date-range-picker{--date-range-accent:#8b5cf6;--date-range-accent-soft:#7ea6ff;--date-range-accent-contrast:#fff;width:max-content;min-width:0;color:var(--text-muted);z-index:1;gap:8px;display:inline-grid;position:relative}.date-range-picker>span{font-size:.92rem;font-weight:700}.date-range-picker:has(.date-range-popover){z-index:130}.filters-bar .date-range-picker{flex:none}.date-range-trigger{border:1px solid var(--border);background:linear-gradient(180deg, #ffffff0b, #ffffff05), var(--bg-surface);width:max-content;max-width:min(100%,280px);min-height:47px;color:var(--text-main);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:16px;padding:13px 14px;transition:border-color .16s,background-color .16s,box-shadow .16s;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 10px 24px #0000001f}.date-range-trigger:hover,.date-range-trigger[aria-expanded=true]{border-color:color-mix(in srgb, var(--date-range-accent) 46%, var(--border));background:color-mix(in srgb, var(--date-range-accent) 13%, var(--bg-surface));box-shadow:inset 0 1px #ffffff12,0 12px 28px #0000002e}.date-range-trigger:focus-visible{border-color:#7eb1ffb3;outline:none;box-shadow:inset 0 1px #ffffff12,0 0 0 4px #7eb1ff29,0 12px 28px #0000002e}.date-range-popover{z-index:140;position:absolute;top:calc(100% + 10px);right:0}.date-range-calendar{background:linear-gradient(180deg, #ffffff0b, transparent 34%), var(--bg-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:20px;width:320px;max-width:calc(100vw - 28px);box-shadow:0 24px 60px #00000061,inset 0 1px #ffffff0d}.theme-light .date-range-calendar{background:linear-gradient(180deg, #ffffffe0, #ffffffbd), var(--bg-card)}.attendance-picker.date-range-calendar{background:linear-gradient(180deg, #ffffff0b, transparent 34%), var(--bg-card);border-color:color-mix(in srgb, var(--date-range-accent) 18%, var(--border));gap:9px;padding:10px}.theme-light .attendance-picker.date-range-calendar{background:linear-gradient(180deg, #ffffffe6, #ffffffbd), var(--bg-card);border-color:color-mix(in srgb, var(--date-range-accent) 18%, var(--border))}.date-range-calendar .attendance-picker-head{grid-template-columns:38px minmax(0,1fr) 38px;gap:10px}.date-range-calendar .attendance-picker-head strong{color:var(--text-muted);text-align:center;font-size:.98rem}.date-range-calendar .attendance-picker-head .icon-button{background:linear-gradient(180deg, #ffffff0f, #ffffff06), var(--bg-soft);border-color:var(--border);width:38px;min-width:38px;height:38px;color:var(--text-main);border-radius:16px}.theme-light .date-range-calendar .attendance-picker-head .icon-button{background:var(--bg-soft);border-color:var(--border)}.date-range-presets{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.date-range-presets button{border:1px solid color-mix(in srgb, var(--date-range-accent) 22%, var(--border));background:color-mix(in srgb, var(--date-range-accent) 8%, var(--bg-soft));min-width:0;min-height:26px;color:color-mix(in srgb, var(--text-main) 76%, var(--text-muted));font:inherit;cursor:pointer;white-space:nowrap;border-radius:8px;padding:4px 5px;font-size:.61rem;font-weight:650;line-height:1}.date-range-presets button:hover,.date-range-presets button.active{border-color:color-mix(in srgb, var(--date-range-accent) 58%, var(--border));background:color-mix(in srgb, var(--date-range-accent) 20%, var(--bg-soft));color:var(--date-range-accent-contrast)}.theme-light .date-range-presets button{border-color:color-mix(in srgb, var(--date-range-accent) 28%, var(--border));background:color-mix(in srgb, var(--date-range-accent) 8%, #fff);color:#44516d}.theme-light .date-range-presets button:hover,.theme-light .date-range-presets button.active{background:color-mix(in srgb, var(--date-range-accent) 18%, #fff);color:#4c1d95}.date-range-calendar .attendance-weekdays,.date-range-calendar .attendance-calendar{gap:5px}.date-range-calendar .attendance-weekdays span{color:var(--text-muted);font-size:.72rem}.date-range-calendar .attendance-day{background:var(--bg-surface);border-color:var(--border);border-radius:8px;font-size:.82rem;transition:border-color .15s,background-color .15s,transform .15s}.date-range-calendar .attendance-day:hover{border-color:color-mix(in srgb, var(--date-range-accent) 52%, var(--border));background:color-mix(in srgb, var(--date-range-accent) 12%, var(--bg-surface));transform:translateY(-1px)}.theme-light .date-range-calendar .attendance-day{background:var(--bg-surface);border-color:var(--border)}.date-range-day.in-range{border-color:color-mix(in srgb, var(--date-range-accent) 42%, var(--border));background:color-mix(in srgb, var(--date-range-accent) 16%, var(--bg-surface));color:color-mix(in srgb, var(--date-range-accent) 72%, #fff)}.date-range-day.range-start,.date-range-day.range-end{border-color:color-mix(in srgb, var(--date-range-accent) 76%, #fff);background:linear-gradient(135deg, var(--date-range-accent-soft), var(--date-range-accent));color:var(--date-range-accent-contrast);box-shadow:0 8px 18px color-mix(in srgb, var(--date-range-accent) 26%, transparent);font-weight:900}.date-range-day.range-start.today,.date-range-day.range-end.today{border-color:#ffffffe0}.theme-light .date-range-day.in-range{background:color-mix(in srgb, var(--date-range-accent) 14%, #fff);color:#5b21b6}.theme-light .date-range-day.range-start,.theme-light .date-range-day.range-end{color:#fff}.date-range-hint{color:var(--text-muted);text-align:center;margin:2px 0 0;font-size:.78rem}.panel-nested{background:var(--bg-soft);border:1px solid var(--border);border-radius:20px;padding:16px}.settings-staff-grid{align-items:start}.staff-directory{align-content:start}.staff-directory-list{gap:12px;display:grid}.staff-directory-card{border:1px solid var(--border);background:var(--bg-surface);border-radius:18px;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.staff-directory-card p{color:var(--text-muted);margin-top:4px}.staff-directory-meta{justify-items:end;gap:10px;display:grid}.staff-directory-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.staff-directory-category-row{justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.staff-settings-button{border-radius:12px;place-items:center;width:34px;min-width:34px;height:34px;padding:0;display:inline-grid}.staff-settings-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.staff-directory-password{color:var(--text-muted);text-align:right;font-size:.88rem}.student-form-layout{grid-template-columns:minmax(280px,320px) minmax(320px,360px);justify-self:start;align-items:start;gap:20px;width:fit-content;max-width:100%;display:grid}.student-form-column{gap:14px;min-width:0;display:grid}.student-form-heading{justify-content:space-between;align-items:flex-start;width:100%}.student-form,.student-form .form-columns{width:100%}.student-form .form-columns>label,.student-form .form-columns>fieldset{flex:1 1 0;min-width:0}.student-status-switch{border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-main);cursor:pointer;border-radius:999px;justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;display:inline-flex}.student-status-switch-label{color:var(--text-muted);font-size:.92rem;font-weight:600;transition:color .16s}.student-status-switch-label.active{color:var(--text-main)}.student-status-switch-track{border:1px solid var(--border);background:#ffffff1f;border-radius:999px;flex:none;width:58px;height:32px;padding:3px}.theme-light .student-status-switch-track{background:#ffffffd1;border-color:#0f172a29}.student-status-switch-thumb{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-soft) 100%);border-radius:999px;width:24px;height:24px;transition:transform .18s;display:block;transform:translate(26px)}.student-status-switch.paused .student-status-switch-thumb{transform:translate(0)}.theme-light .student-status-switch.paused .student-status-switch-thumb{background:#2f3645}.student-assignment-row{grid-template-columns:minmax(210px,1.45fr) minmax(150px,1fr) minmax(120px,.9fr) minmax(72px,.45fr);align-items:start;gap:16px;display:grid}.student-assignment-row>label{min-width:0}.student-phone-field{flex:none}.student-phone-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.student-phone-input{max-width:100%;width:210px!important}.student-phone-add{flex:none}.student-phone-add span{font-size:1.35rem;line-height:1}.student-form-inline-fields{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.student-form-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.student-form-actions button{width:100%}.chip-grid{flex-wrap:wrap;gap:10px;display:flex}.chip{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-main);cursor:pointer;border-radius:999px;padding:10px 14px}.readonly-chip{cursor:default}.student-day-chip.active,.student-day-chip:hover{color:#d8c8ff;background:#b99cff38;border-color:#b99cff57}.theme-light .student-day-chip.active,.theme-light .student-day-chip:hover{color:#6d28d9;background:#7c3aed29;border-color:#7c3aed3d}.student-cards{grid-template-columns:1fr}.student-list-card{z-index:1;background:var(--bg-card);border-left:5px solid var(--student-group-bg,transparent);gap:12px;padding:16px 18px;transition:transform .16s,background-color .16s,border-color .16s,box-shadow .16s;position:relative;overflow:visible}.student-list-card:hover{border-color:#68a8ff3d;border-left-color:color-mix(in srgb, var(--student-group-bg,transparent) 82%, white);background:var(--bg-card);transform:translateY(-2px);box-shadow:0 26px 70px #00000057}.theme-light .student-list-card:hover{border-color:#507dff2e;border-left-color:color-mix(in srgb, var(--student-group-bg,transparent) 88%, white);background:var(--bg-card);box-shadow:0 24px 58px #3d55832e}.student-card.menu-open{z-index:20}.student-search-panel{z-index:46;align-self:start;position:sticky;top:0}.student-table-header{border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--text-muted);text-align:center;z-index:34;background:var(--bg-card);border-radius:24px;grid-template-columns:minmax(210px,1.15fr) repeat(4,minmax(110px,.78fr)) minmax(220px,1.3fr) minmax(180px,1fr);align-items:center;gap:12px;padding:12px 18px;font-size:.82rem;font-weight:700;display:grid;position:sticky;top:118px}.student-table-header span:first-child{text-align:left}.student-search-panel .student-table-header{z-index:auto;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;padding:10px 0 0;position:static;top:auto}.student-list-row{grid-template-columns:minmax(210px,1.15fr) repeat(4,minmax(110px,.78fr)) minmax(220px,1.3fr) minmax(180px,1fr);align-items:center;gap:12px;display:grid}.student-metrics{flex-wrap:wrap;gap:10px}.student-metrics.compact{display:contents}.student-title{text-align:left;min-width:0}.student-metrics>div{background:var(--bg-soft);border:1px solid var(--border);border-radius:16px;flex:140px;padding:10px 12px}.student-metrics.compact>div{background:0 0;border-color:#0000}.student-metrics.compact>.metrics-tail{background:var(--bg-soft);border-color:var(--border)}.student-metrics strong{font-size:1.1rem}.student-metrics.compact>div{text-align:center;place-items:center;padding:8px 10px;display:grid}.student-metrics.compact span{margin-bottom:4px;font-size:.8rem}.student-metrics.compact strong{font-size:.98rem}.student-metric-subvalue{color:var(--text-muted);margin-top:4px;font-size:.98rem;font-weight:700;display:block}.student-metrics.compact>div:nth-child(-n+3) strong{font-size:1.22rem}.student-metrics.compact>div.student-next-payment-metric strong,.student-metrics.compact>div.student-next-payment-metric .student-metric-subvalue{font-size:.98rem}.student-metrics.compact>div.student-next-payment-metric.only-amount .student-metric-subvalue{color:#fff}.theme-light .student-metrics.compact>div.student-next-payment-metric.only-amount .student-metric-subvalue{color:var(--text-main)}.student-note{min-height:0;font-size:.95rem}.metric-control{align-items:center;gap:10px;display:flex}.metric-stepper{border:1px solid var(--border);background:var(--bg-surface);width:28px;height:28px;color:var(--text-main);cursor:pointer;border-radius:999px}.metrics-tail{text-align:center;justify-items:center;gap:6px;display:grid}.metrics-tail span{color:var(--text-muted);font-size:.92rem}.archive-student-card{cursor:pointer}.archive-student-metrics-tail{text-align:left;justify-items:start}.student-head-actions{justify-content:flex-end;justify-self:end;align-items:center;gap:12px;min-width:max-content;display:flex}.student-menu-wrap{position:relative}.menu-trigger{justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;padding-inline:0;display:inline-flex}.menu-trigger svg{fill:currentColor;width:18px;height:18px}.student-menu-dropdown{background:var(--bg-card);border:1px solid var(--border);min-width:170px;box-shadow:var(--shadow);z-index:999;border-radius:16px;gap:6px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.student-card-menu-dropdown{background:#2e3139;top:50%;right:calc(100% + 10px);transform:translateY(calc(30px - 100%))}.theme-light .student-card-menu-dropdown{background:#fff}.menu-item{color:var(--text-main);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;padding:10px 12px}.menu-item:hover{background:var(--bg-soft)}.badge.ok{color:var(--accent)}.badge.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 52%, var(--border));background:color-mix(in srgb, var(--danger) 12%, var(--bg-soft))}.badge.warning{color:#f59e0b;border-color:color-mix(in srgb, #f59e0b 56%, var(--border));background:color-mix(in srgb, #f59e0b 14%, var(--bg-soft))}.badge.debt,.negative{color:var(--danger)}.positive{color:var(--accent)}.warning{color:var(--warning)}.student-tags{flex-wrap:wrap;gap:10px;display:flex}.teacher-grid{grid-template-columns:1fr;position:relative;overflow:visible}.teacher-card{z-index:1;background:var(--bg-card);border:none;align-items:center;gap:18px;transition:transform .16s,background-color .16s,box-shadow .16s;display:flex;position:relative;overflow:visible}.teacher-card:after,.salary-teacher-card:after{content:"";border-radius:inherit;background:linear-gradient(180deg, hsl(var(--teacher-card-accent,210 100% 50%) / 1) 0%, hsl(var(--teacher-card-gradient-end,var(--teacher-card-accent,210 100% 50%)) / 1) 100%);pointer-events:none;z-index:0;clip-path:inset(0 calc(100% - 22px) 0 0);-webkit-mask-composite:xor;padding:1px 0 1px 5px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.teacher-card:hover:after,.salary-teacher-card:hover:after,.salary-teacher-card.expanded:after{background:linear-gradient(180deg, color-mix(in srgb, hsl(var(--teacher-card-accent,210 100% 50%) / 1) 82%, white) 0%, color-mix(in srgb, hsl(var(--teacher-card-gradient-end,var(--teacher-card-accent,210 100% 50%)) / 1) 86%, white) 100%)}.teacher-card>*,.salary-teacher-card>*{z-index:1;position:relative}.teacher-card:hover{background:var(--bg-card);transform:translateY(-2px);box-shadow:0 26px 70px #00000057}.theme-light .teacher-card:hover{background:var(--bg-card);box-shadow:0 24px 58px #3d55832e}.theme-light .teacher-card:hover:after,.theme-light .salary-teacher-card:hover:after,.theme-light .salary-teacher-card.expanded:after{background:linear-gradient(180deg, color-mix(in srgb, hsl(var(--teacher-card-accent,210 100% 50%) / 1) 88%, white) 0%, color-mix(in srgb, hsl(var(--teacher-card-gradient-end,var(--teacher-card-accent,210 100% 50%)) / 1) 90%, white) 100%)}.salary-teacher-card{background:var(--bg-card);border:none;transition:transform .16s,background-color .16s,box-shadow .16s}.salary-teacher-card:hover{background:var(--bg-card);transform:translateY(-2px);box-shadow:0 26px 70px #00000057}.salary-teacher-card.expanded{background:var(--bg-card);box-shadow:0 26px 70px #00000057}.theme-light .salary-teacher-card:hover{background:var(--bg-card);transform:translateY(-2px);box-shadow:0 24px 58px #3d55832e}.theme-light .salary-teacher-card.expanded{background:var(--bg-card);box-shadow:0 24px 58px #3d55832e}.teacher-card.menu-open{z-index:260}.teacher-menu-wrap{z-index:270;position:relative}.teacher-menu-dropdown{border:1px solid var(--border);min-width:170px;box-shadow:var(--shadow);z-index:320;background:#2e3139;border-radius:16px;gap:6px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.theme-light .teacher-menu-dropdown{background:#fff}.teacher-card.menu-open .teacher-card-head{z-index:340}.teacher-card.menu-open .teacher-rates{z-index:1}.teacher-card-head{flex-direction:column;flex:360px;align-items:stretch;gap:16px;min-width:360px;display:flex}.teacher-card-summary{align-items:center;gap:16px;display:flex}.teacher-card-summary>div:first-child{flex:auto;min-width:0}.teacher-card-head h3,.teacher-card-head p{overflow-wrap:anywhere}.teacher-head-actions{flex:none;align-items:center;gap:12px;margin-left:auto;display:flex}.teacher-head-actions .badge{white-space:normal;overflow-wrap:anywhere;text-align:left}.teacher-rates{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:flex}.teacher-rates>div{background:var(--bg-soft);border:1px solid var(--border);border-radius:16px;flex:1 1 0;padding:12px}.teacher-rates span{color:var(--text-muted);margin-bottom:6px;font-size:.84rem;display:block}.schedule-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;display:grid}.schedule-week-picker{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:10px;display:flex}.schedule-week-picker label{min-width:180px;font-size:.86rem}.week-nav-button{min-height:44px;padding-inline:14px}.schedule-filter-panel,.schedule-week-panel{overflow:visible}.day-column{background:var(--bg-soft);border:1px solid var(--border);position:relative;overflow:visible}.day-column.today-column{border-color:#ffffff61;box-shadow:inset 0 1px #ffffff2e}.theme-light .day-column.today-column{border-color:#ffffffd1}.day-column h4{gap:4px;margin-bottom:14px;display:grid}.day-column-header{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin-bottom:14px;padding:0;display:block}.day-column-header h4{margin-bottom:0}.day-column-header-indicator{display:none}.day-column h4 small{color:var(--text-muted);font-size:.78rem;font-weight:500}.day-column.drag-target{background:linear-gradient(180deg, #37f0c21a, transparent), var(--bg-soft);border-color:#37f0c261}.schedule-card{z-index:1;border-radius:20px;padding:16px;position:relative;overflow:visible}.lesson-card{cursor:pointer;gap:12px;transition:transform .16s,border-color .16s,background-color .16s;display:grid}.regular-lesson-card{background:linear-gradient(180deg, #090c14f5, #0d111eeb) padding-box, linear-gradient(135deg, hsl(var(--lesson-accent) / .98) 0%, hsl(var(--lesson-accent-gradient-end,var(--lesson-accent-light,var(--lesson-accent))) / .96) 100%) border-box;box-shadow:0 20px 48px #00000042, 0 0 0 1px hsl(var(--lesson-accent) / .1);border:1px solid #0000;border-top-width:5px}.lesson-card:active{cursor:grabbing}.regular-lesson-card:hover,.regular-lesson-card:focus-visible,.regular-lesson-card.expanded{background:linear-gradient(180deg, #0c101bfa, #0f1422f2) padding-box, linear-gradient(135deg, color-mix(in srgb, hsl(var(--lesson-accent) / 1) 82%, white) 0%, color-mix(in srgb, hsl(var(--lesson-accent-gradient-end,var(--lesson-accent-light,var(--lesson-accent))) / 1) 86%, white) 100%) border-box;box-shadow:0 26px 70px #00000057, 0 0 0 1px hsl(var(--lesson-accent) / .18)}.lesson-card:focus-visible{outline:2px solid hsl(var(--lesson-accent) / .7);outline-offset:3px}.lesson-card.menu-open{z-index:50}.substitution-lesson-card{--special-lesson-border-start:#ffcf6b;--special-lesson-border-end:#f59e0b;--special-lesson-border-start-hover:#ffd783;--special-lesson-border-end-hover:#f6ac2d;--special-lesson-top-border-width:9px;--special-lesson-side-border-width:1px;background:#ffcf6b1a;border:0;padding-top:30px;box-shadow:0 20px 48px #00000042,0 0 0 1px #ffcf6b1f}.substitution-lesson-card:hover,.substitution-lesson-card:focus-visible,.substitution-lesson-card.expanded{background:#ffcf6b24;box-shadow:0 26px 70px #00000057,0 0 0 1px #ffcf6b33}.substitution-lesson-card:after,.inactive-lesson-card:after{content:"";border-radius:inherit;padding:var(--special-lesson-top-border-width) var(--special-lesson-side-border-width) var(--special-lesson-side-border-width) var(--special-lesson-side-border-width);background:linear-gradient(135deg, var(--special-lesson-border-start) 0%, var(--special-lesson-border-end) 100%);pointer-events:none;z-index:0;-webkit-mask-composite:xor;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.substitution-lesson-card:hover:after,.substitution-lesson-card:focus-visible:after,.substitution-lesson-card.expanded:after,.inactive-lesson-card:hover:after,.inactive-lesson-card:focus-visible:after,.inactive-lesson-card.expanded:after{background:linear-gradient(135deg, var(--special-lesson-border-start-hover) 0%, var(--special-lesson-border-end-hover) 100%)}.substitution-lesson-card:before{content:"Заміна";color:#3b2b00;text-align:center;text-transform:uppercase;letter-spacing:.04em;z-index:2;background:#ffcf6b;border-radius:0 0 10px 10px;min-width:74px;padding:3px 9px 4px;font-size:.68rem;font-weight:800;line-height:1;position:absolute;top:6px;left:14px}.inactive-lesson-card{--special-lesson-border-start:#ff5f5f;--special-lesson-border-end:#f43f5e;--special-lesson-border-start-hover:#ff7979;--special-lesson-border-end-hover:#f65a75;--special-lesson-top-border-width:9px;--special-lesson-side-border-width:1px;background:#94a3b829;border:0;padding-top:30px;box-shadow:0 20px 48px #00000042,0 0 0 1px #ff5f5f1f}.inactive-lesson-card:hover,.inactive-lesson-card:focus-visible,.inactive-lesson-card.expanded{background:#94a3b833;box-shadow:0 26px 70px #00000057,0 0 0 1px #ff5f5f33}.inactive-lesson-card:before{color:#fff;text-align:center;text-transform:uppercase;letter-spacing:.04em;z-index:2;background:#ff5f5f;border-radius:0 0 10px 10px;min-width:74px;padding:3px 9px 4px;font-size:.68rem;font-weight:800;line-height:1;position:absolute;top:6px;left:14px}.cancelled-lesson-card:before{content:"Відмінено"}.replaced-lesson-card:before{content:"Замінено"}.replaced-lesson-card{--special-lesson-border-start:#a78bfa;--special-lesson-border-end:#4f7cff;--special-lesson-border-start-hover:#b59efb;--special-lesson-border-end-hover:#688eff}.substitution-lesson-card>*,.inactive-lesson-card>*{z-index:1;position:relative}.replaced-lesson-card:hover,.replaced-lesson-card:focus-visible,.replaced-lesson-card.expanded{box-shadow:0 26px 70px #00000057,0 0 0 1px #a88bfa33}.replaced-lesson-card:before{color:#1f1147;background:#a78bfa}.replaced-lesson-note{color:#e9ddff;border-top:1px solid #a88bfa47;margin:0;padding-top:10px;font-size:.78rem;font-weight:700}.substitution-origin-note{color:#fff4cf;border-top:1px solid #ffcf6b52;margin:0;padding-top:10px;font-size:.78rem;font-weight:700}.lesson-link-note-action{cursor:pointer}.lesson-link-note-action:focus-visible{outline-offset:4px;outline:2px solid}.lesson-link-note-button{color:inherit;font-weight:inherit;text-decoration:none}.replaced-lesson-note .lesson-link-note-button{color:#e9ddff}.substitution-origin-note .lesson-link-note-button{color:#fff4cf}.lesson-card.lesson-card-flash{animation:.36s ease-in-out 2 lesson-card-flash;box-shadow:0 0 0 3px #ffffffeb,0 0 26px #ffffff6b}@keyframes lesson-card-flash{0%,to{filter:brightness();transform:translateY(0)scale(1)}45%{filter:brightness(1.45);transform:translateY(-2px)scale(1.018)}}.substitution-lesson-card .substitution-label{color:#ffcf6b;font-weight:inherit}.substitution-teacher-swap{gap:3px;display:grid}.substitution-lesson-card:before{content:"Заміна";display:block}.substitution-teacher-swap .substitution-teacher-current{color:#ffcf6b}.substitution-teacher-swap .substitution-teacher-next{color:#fff;font-weight:inherit}.lesson-card-head,.lesson-card-meta,.lesson-students{gap:6px;display:grid}.lesson-card-details{gap:12px;display:grid}.lesson-card-head{grid-template-columns:1fr auto;align-items:start}.lesson-time{color:var(--text-muted);font-weight:700;font:inherit;cursor:text;text-align:left;background:0 0;border:0;margin-bottom:6px;padding:0;display:block}.lesson-time:hover,.lesson-time:focus-visible{color:#fff;outline:0}.form-derived-value{border:1px solid var(--border);background:var(--bg-soft);width:100%;min-height:47px;color:var(--text-main);border-radius:16px;align-items:center;padding:12px 14px;display:grid}.lesson-time-input{border:1px solid hsl(var(--lesson-accent) / .48);color:#fff;width:100%;max-width:118px;font:inherit;background:#ffffff1a;border-radius:10px;margin-bottom:6px;padding:6px 8px;font-weight:700}.lesson-settings-wrap{grid-template-columns:repeat(2,34px);place-self:start end;place-items:center;gap:8px;display:grid}.lesson-action-row{grid-column:1/-1;justify-content:flex-end;justify-self:end;align-items:center;gap:8px;width:100%;display:flex}.substitution-settings-wrap{grid-template-columns:34px}.substitution-settings-wrap .lesson-action-row{grid-area:2/1}.substitution-settings-wrap .lesson-substitution-trigger{grid-area:1/1}.lesson-substitution-trigger{background:0 0;border-color:#0000;grid-area:2/2;justify-content:center;justify-self:center;align-items:center;width:34px;min-width:34px;height:34px;padding:0;display:inline-flex}.lesson-substitution-trigger:hover,.lesson-substitution-trigger:focus-visible{background:0 0;border-color:#0000}.lesson-settings-trigger{grid-area:2/2;justify-self:center}.lesson-cancel-trigger{color:#fff;background:0 0;border-color:#0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.lesson-cancel-trigger:hover,.lesson-cancel-trigger:focus-visible,.lesson-cancel-trigger.active{color:#fff;background:0 0;border-color:#0000}.lesson-restore-trigger{color:#fff;justify-content:center;align-items:center;padding:0;display:inline-flex}.lesson-restore-trigger svg{stroke-width:2.2px}.lesson-substitution-trigger svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;display:block}.lesson-cancel-trigger svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.lesson-menu-trigger{border-radius:12px;width:34px;min-width:34px;height:34px}.lesson-menu-trigger:disabled{cursor:default;opacity:.45;transform:none}.lesson-menu-trigger:disabled:hover,.lesson-menu-trigger:disabled:focus-visible{background:0 0;border-color:#0000;transform:none}.lesson-menu-trigger svg{width:15px;height:15px}.lesson-card-meta{background:linear-gradient(135deg, hsl(var(--lesson-accent) / .34), #ffffff14);border:1px solid hsl(var(--lesson-accent) / .42);border-radius:16px;padding:10px 12px}.lesson-card-meta span:first-child{color:#fff;font-weight:700}.lesson-card-meta span.lesson-language{color:#ffffff9e;font-weight:400}.lesson-card-meta .lesson-type{color:#fff;font-weight:800}.lesson-card-meta span:last-child{color:hsl(var(--lesson-accent-light,var(--lesson-accent)) / 1);font-weight:800}.theme-light .lesson-card-meta span:first-child{color:#0f172a}.theme-light .lesson-card-meta span.lesson-language{color:#64748b}.theme-light .lesson-card-meta .lesson-type{color:#0f172a}.theme-light .lesson-card-meta span:last-child{color:hsl(var(--lesson-accent) / 1)}.lesson-note,.lesson-students p,.lesson-students ul{color:var(--text-muted);margin:0}.lesson-students ul{color:#fff;gap:6px;padding-left:18px;display:grid}.lesson-students li{color:#fff}.theme-light .lesson-students ul,.theme-light .lesson-students li{color:var(--text-main)}.lesson-card-actions{justify-content:flex-end;display:flex}.salary-summary-head,.salary-row,.salary-row-meta,.salary-total-row{align-items:center;gap:16px;display:flex}.salary-summary-head,.salary-row-meta,.salary-total-row{margin-left:auto}.salary-summary-head{flex-wrap:nowrap;justify-content:flex-end}.salary-summary-actions{align-items:center;gap:16px;display:flex}.salary-list{gap:12px;display:grid}.salary-teacher-head{cursor:pointer}.salary-period-line{margin-top:10px}.salary-row{background:var(--bg-soft);border:1px solid var(--border);cursor:pointer;border-radius:18px;gap:12px;padding:14px 16px;display:grid}.salary-row.expanded{border-color:#37f0c233}.salary-lesson-title{color:#fff}.salary-substitution-badge{color:#ffcf6b}.salary-adjustment-title{color:var(--accent)}.salary-adjustment-title.penalty{color:var(--danger)}.salary-row-main{justify-content:space-between;align-items:center;gap:16px;display:flex}.salary-row-main p,.salary-row-students p{color:var(--text-muted);margin:4px 0 0}.salary-row-details{gap:12px;display:grid}.salary-lesson-list{gap:10px;display:grid}.salary-lesson-card{cursor:pointer;background:#ffffff08;border:1px solid #ffffff0f;border-radius:14px;gap:10px;padding:12px 14px;display:grid}.theme-light .salary-lesson-card{background:#507dff0a;border-color:#507dff1f}.salary-lesson-card.expanded{background:#94a3b81f;border-color:#0000}.theme-light .salary-lesson-card.expanded{background:#64748b1a}.salary-lesson-card-main,.salary-lesson-card-meta{align-items:center;gap:12px;display:flex}.salary-lesson-card-main{grid-template-columns:28px minmax(0,1fr) auto;justify-content:stretch;align-items:center;display:grid}.salary-lesson-card-index{color:#fff;background:#ffffff14;border-radius:8px;flex:0 0 28px;align-self:center;place-items:center;width:28px;height:28px;display:grid}.salary-lesson-card-meta{white-space:nowrap;align-self:center;margin-left:auto}.salary-lesson-card-meta strong{align-items:center;min-height:38px;line-height:1;display:inline-flex}.salary-delete-button{align-self:center}.salary-row-students ul{color:var(--text-main);margin:8px 0 0;padding-left:18px}.salary-row-students li+li{margin-top:4px}.salary-row-students span{color:var(--text-muted);margin-top:8px;display:inline-block}.salary-lesson-card-total{border-top:1px solid #ffffff14;justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;padding-top:12px;line-height:1;display:flex}.salary-lesson-card-total span,.salary-lesson-card-total strong{align-items:center;min-height:20px;margin-top:0;line-height:1;display:inline-flex}.theme-light .salary-lesson-card-total{border-top-color:#507dff1f}.salary-row-calculations{border-top:1px solid #ffffff14;grid-template-columns:auto auto;justify-content:end;place-items:center end;gap:8px 16px;padding-top:12px;display:grid}.theme-light .salary-row-calculations{border-top-color:#507dff1f}.salary-delete-button{padding:9px}.restore-button{color:var(--accent);padding:9px}.icon-button{place-items:center;width:38px;height:38px;padding:9px;line-height:0;display:grid}.icon-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.icon-button.search-clear-button{width:20px;height:20px;padding:0}.icon-button.search-clear-button svg{width:16px;height:16px}.student-portal-calendar-lessons .ghost-button.icon-button.student-portal-calendar-lessons-close,.student-portal-calendar-lessons .ghost-button.icon-button.student-portal-calendar-lessons-close:hover,.student-portal-calendar-lessons .ghost-button.icon-button.student-portal-calendar-lessons-close:focus,.student-portal-calendar-lessons .ghost-button.icon-button.student-portal-calendar-lessons-close:active{box-shadow:none;background:0 0;border:0;transform:none}.salary-row p,.empty-state-text{color:var(--text-muted);margin:4px 0 0}.salary-lesson-meta{color:#cfe0ff;font-weight:500}.salary-lesson-time{color:#cfe0ff;margin:0 0 3px;font-weight:700}.salary-lesson-group-title{display:block}.salary-lesson-type,.salary-lesson-day,.salary-lesson-count,.salary-lesson-rate{color:#cfe0ff}.salary-lesson-count,.salary-lesson-rate{font-weight:700}.theme-light .salary-lesson-meta{color:#475569eb}.theme-light .salary-lesson-count,.theme-light .salary-lesson-rate{color:#0f172a}.salary-total-row{justify-content:flex-end;padding-top:16px}.journal-list{grid-template-columns:1fr}.attendance-page-layout{grid-template-columns:minmax(320px,410px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.attendance-page-side,.attendance-student-panel,.attendance-student-summary,.attendance-student-metrics,.attendance-student-legend{gap:12px;display:grid}.attendance-student-panel{align-self:start}.attendance-student-summary,.attendance-student-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-student-info-card,.attendance-student-metric{border:1px solid var(--border);background:var(--bg-soft);border-radius:16px;gap:4px;padding:14px 16px;display:grid}.attendance-student-info-card span,.attendance-student-metric span{color:var(--text-muted);font-size:.82rem}.attendance-student-info-card strong,.attendance-student-metric strong{font-size:1.05rem}.attendance-student-info-card p{color:var(--text-muted);margin:0}.attendance-student-calendar{width:100%}.attendance-student-day{cursor:default;box-shadow:none;border-width:1px;border-radius:10px}.attendance-student-day span{border-radius:inherit;width:100%;height:100%;font-weight:800}.attendance-day.attendance-student-day-scheduled{color:#d8c8ff;background:#b99cff3d;border-color:#b99cffc7;font-weight:700}.attendance-day.attendance-student-day-completed{color:#37f0c2;background:#37f0c22e;border-color:#37f0c2b8;font-weight:800}.attendance-day.attendance-student-day-transfer{color:#ffcf6b;background:#ffcf6b38;border-color:#ffcf6bc2;font-weight:800}.attendance-day.attendance-student-day-refund{color:#ff9c4d;background:#ff9c4d38;border-color:#ff9c4dc7;font-weight:800}.attendance-day.attendance-student-day-absent{color:#ff6b81;background:#ff6b812e;border-color:#ff6b81d1;font-weight:800}.attendance-day.attendance-student-day-scheduled span,.attendance-day.attendance-student-day-completed span,.attendance-day.attendance-student-day-transfer span,.attendance-day.attendance-student-day-refund span,.attendance-day.attendance-student-day-absent span{background:0 0}.attendance-day.attendance-student-day.today{border-color:#ffffffdb;box-shadow:inset 0 0 0 1px #ffffff4d}.attendance-day.attendance-student-day.today span{color:inherit}.attendance-day.attendance-student-day:not(.attendance-student-day-scheduled):not(.attendance-student-day-completed):not(.attendance-student-day-refund):not(.attendance-student-day-absent).today{color:#fff;background:#ffffff1f;border-color:#ffffffdb}.attendance-legend-item{color:var(--text-muted);align-items:center;gap:10px;font-size:.88rem;display:flex}.attendance-legend-dot{border:1px solid #0000;border-radius:999px;flex-shrink:0;width:12px;height:12px}.attendance-legend-dot.scheduled{background:#b99cff3d;border-color:#b99cffc7}.attendance-legend-dot.completed{background:#37f0c27a;border-color:#37f0c2b8}.attendance-legend-dot.transfer{background:#ffcf6b85;border-color:#ffcf6bc2}.attendance-legend-dot.refund{background:#ff9c4d8f;border-color:#ff9c4dc7}.attendance-legend-dot.absent{background:#ff6b817a;border-color:#ff6b81d1}.attendance-student-empty{min-height:160px}.theme-light .attendance-day.attendance-student-day-scheduled{color:#6d28d9;background:#7c3aed2e}.theme-light .attendance-day.attendance-student-day-scheduled.muted{color:#6d28d994;background:#7c3aed0f;border-color:#7c3aed3d}.theme-light .attendance-day.attendance-student-day-completed{color:#047857;background:#14b8a63d}.theme-light .attendance-day.attendance-student-day-transfer{color:#7c4a03;background:#ffb86b57}.theme-light .attendance-day.attendance-student-day-completed.muted{color:#04785794;background:#14b8a60f;border-color:#14b8a638}.theme-light .attendance-day.attendance-student-day-refund{color:#9a3412;background:#ff9c4d47}.theme-light .attendance-day.attendance-student-day-transfer.muted{color:#7c4a0399;background:#ffb86b14;border-color:#ffb86b3d}.theme-light .attendance-day.attendance-student-day-refund.muted{color:#9a341299;background:#ff9c4d14;border-color:#ff9c4d3d}.theme-light .attendance-day.attendance-student-day-absent{color:#9f1239;background:#ff6b8142}.theme-light .attendance-day.attendance-student-day-absent.muted{color:#9f123999;background:#ff6b8114;border-color:#ff6b813d}.theme-light .attendance-day.attendance-student-day.today{border-color:#94a3b8b3;box-shadow:inset 0 0 0 1px #94a3b847}.theme-light .attendance-day.attendance-student-day.today.muted{border-color:#94a3b84d;box-shadow:inset 0 0 0 1px #94a3b814}.theme-light .attendance-day.attendance-student-day:not(.attendance-student-day-scheduled):not(.attendance-student-day-completed):not(.attendance-student-day-refund):not(.attendance-student-day-absent).today{color:#0f172a;background:#fffc;border-color:#94a3b8b3}.attendance-list{gap:12px;display:grid}.attendance-card,.attendance-card-meta,.attendance-picker-head,.attendance-weekdays{align-items:center;gap:12px;display:flex}.attendance-card{border-radius:24px;justify-content:space-between;padding:18px 20px}.attendance-card>div:first-child{min-width:0}.attendance-card-pending{border-color:#f59e0bb8;box-shadow:0 18px 38px #f59e0b29}.attendance-card p{color:var(--text-muted);margin:4px 0 0}.attendance-card-teacher-pending{color:#f59e0b}.attendance-card-title-row{align-items:center;gap:10px;min-width:0;display:flex}.attendance-card-title-row h3{min-width:0}.attendance-card-meta{flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.attendance-card-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.attendance-card-actions button,.attendance-card-meta>.ghost-button:not(.icon-button){white-space:nowrap;border-radius:14px;min-height:38px;padding:9px 13px}.attendance-picker{background:var(--bg-soft);border:1px solid var(--border);border-radius:16px;gap:8px;width:320px;max-width:100%;padding:10px;display:grid}.substitution-picker{justify-self:center;width:320px;max-width:100%}.student-start-date-field{color:var(--text-muted);gap:8px;display:grid}.student-start-picker{justify-self:start}.attendance-day.student-start-lesson-day{color:#d8c8ff;background:#b99cff3d;border-color:#b99cffc7;font-weight:900}.attendance-day.student-start-debt-day{color:#ff6b81;background:#ff6b8147;border-color:#ff6b81d1;font-weight:900}.theme-light .attendance-day.student-start-lesson-day{color:#6d28d9;background:#7c3aed2e}.theme-light .attendance-day.student-start-debt-day{color:#9f1239;background:#ff6b8147}.attendance-day.student-start-debt-day small{color:#fff;background:#ff6b81}.student-start-date-summary{gap:4px;font-size:.9rem;line-height:1.35;display:grid}.student-start-date-summary strong{color:var(--text-main)}.student-start-date-summary-debt strong{color:#ff6b81}.student-start-date-summary-clear strong{color:#37f0c2}.substitution-picker .attendance-day{font-size:.78rem}.substitution-compact-field{justify-self:center;width:320px;max-width:100%}.substitution-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-self:center;gap:10px;width:320px;max-width:100%;display:grid}.substitution-actions button{width:100%}.attendance-modal-name{color:#fff;margin:4px 0 0;font-size:1.35rem;font-weight:800}.theme-light .attendance-modal-name{color:var(--text-main)}.attendance-picker-head{justify-content:space-between}.attendance-picker-head .icon-button{justify-content:center;align-items:center;padding:0;display:flex}.attendance-picker-head .icon-button span{text-align:center;justify-content:center;align-items:center;width:100%;font-size:1.4rem;line-height:1;display:flex}.attendance-weekdays,.attendance-calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.attendance-weekdays span{color:var(--text-muted);text-align:center;font-size:.74rem;font-weight:700}.attendance-day{aspect-ratio:1;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-main);cursor:pointer;border-radius:8px;place-items:center;min-width:0;padding:0;font-size:.82rem;display:grid;position:relative}.attendance-day span{text-align:center;z-index:1;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.attendance-day small{color:#111827;background:#ffffffe6;border-radius:999px;place-items:center;min-width:14px;height:14px;font-size:.62rem;font-weight:900;line-height:1;display:grid;position:absolute;bottom:3px;right:4px}.attendance-day.muted{opacity:.42}.attendance-day.attendance-student-day-scheduled.muted,.attendance-day.attendance-student-day-completed.muted,.attendance-day.attendance-student-day-transfer.muted,.attendance-day.attendance-student-day-refund.muted,.attendance-day.attendance-student-day-absent.muted{opacity:1}.attendance-day.attendance-student-day-scheduled.muted{color:#d8c8ff9e;background:#b99cff14;border-color:#b99cff57}.attendance-day.attendance-student-day-completed.muted{color:#37f0c29e;background:#37f0c212;border-color:#37f0c247}.attendance-day.attendance-student-day-transfer.muted{color:#ffcf6ba3;background:#ffcf6b14;border-color:#ffcf6b52}.attendance-day.attendance-student-day-refund.muted{color:#ff9c4da8;background:#ff9c4d14;border-color:#ff9c4d57}.attendance-day.attendance-student-day-absent.muted{color:#ff6b81a3;background:#ff6b8114;border-color:#ff6b8157}.attendance-day.attendance-student-day.today.muted{border-color:#ffffff57;box-shadow:inset 0 0 0 1px #ffffff1a}.attendance-day.study-day{color:#d8c8ff;background:#b99cff3d;border-color:#b99cffc7;font-weight:800}.theme-light .attendance-day.study-day{color:#6d28d9;background:#7c3aed2e}.attendance-day.transfer-day{color:#ffcf6b;background:#ffb86b3d;border-color:#ffb86b8f}.attendance-day.attendance-past-lesson-day{color:#37f0c2;background:#37f0c238;border-color:#37f0c2b8;font-weight:900}.theme-light .attendance-day.attendance-past-lesson-day{color:#047857;background:#14b8a63d}.attendance-day.attendance-replaced-lesson-day{color:#d8c8ff;background:#b99cff47;border-color:#b99cffd1;font-weight:900}.theme-light .attendance-day.attendance-replaced-lesson-day{color:#6d28d9;background:#7c3aed38}.attendance-day.attendance-upcoming-lesson-day,.theme-light .attendance-day.attendance-upcoming-lesson-day{color:#fff;background:0 0;border-color:#ffffffc7;font-weight:800}.attendance-day.attendance-upcoming-lesson-day span,.theme-light .attendance-day.attendance-upcoming-lesson-day span{color:#fff}.attendance-day.attendance-substitution-lesson-day{color:#ffcf6b;background:#ffb86b4d;border-color:#ffcf6bd1;font-weight:900}.theme-light .attendance-day.attendance-substitution-lesson-day{color:#7c4a03;background:#ffb86b61}.attendance-day.attendance-past-substitution-day{color:#37f0c2;background:#37f0c23d;border-color:#37f0c2c2;font-weight:900}.theme-light .attendance-day.attendance-past-substitution-day{color:#047857;background:#14b8a642}.teacher-portal-graph-section .attendance-day.teacher-calendar-day-completed{color:#34d399;background:#34d39942;border-color:#34d399d1;font-weight:900}.theme-light .teacher-portal-graph-section .attendance-day.teacher-calendar-day-completed{color:#047857;background:#0596692e;border-color:#05966970}.teacher-portal-graph-section .attendance-day.teacher-calendar-day-upcoming{color:#fff;background:0 0;border-color:#ffffffdb;font-weight:900}.theme-light .teacher-portal-graph-section .attendance-day.teacher-calendar-day-upcoming{color:#111827;background:0 0;border-color:#111827b8}.teacher-portal-graph-section .attendance-day.teacher-calendar-day-upcoming-substitution{color:#fbbf24;background:#fbbf2452;border-color:#ffffffe6;font-weight:900}.theme-light .teacher-portal-graph-section .attendance-day.teacher-calendar-day-upcoming-substitution{color:#92400e;background:#fbbf244d;border-color:#111827b8}.teacher-portal-graph-section .attendance-day.teacher-calendar-day-replaced{color:#d8c8ff;background:#8b5cf647;border-color:#b99cffdb;font-weight:900}.theme-light .teacher-portal-graph-section .attendance-day.teacher-calendar-day-replaced{color:#6d28d9;background:#7c3aed33;border-color:#7c3aed70}.teacher-portal-graph-section .attendance-day.teacher-calendar-day-cancelled{color:#fca5a5;background:#f871713d;border-color:#f87171d6;font-weight:900}.theme-light .teacher-portal-graph-section .attendance-day.teacher-calendar-day-cancelled{color:#b91c1c;background:#dc26262e;border-color:#dc26266b}.attendance-day.today{border-color:#ffffffdb;box-shadow:inset 0 0 0 1px #ffffff6b}.attendance-day.selected{color:#fff;font-weight:900}.attendance-day.selected span{color:#fff}.student-portal-schedule-picker .attendance-day.student-portal-calendar-day.selected{border-color:#ffffffeb}.student-portal-schedule-picker .attendance-day.student-portal-calendar-day.selected span{color:#fff}.attendance-day.selection-1{background:#68a8ff3d;border-color:#68a8ffb3}.attendance-day.selection-2{background:#37f0c242;border-color:#37f0c2b8}.attendance-day.selection-3{background:#ffb86b47;border-color:#ffb86bbd}.attendance-day.selection-4{background:#ff7fb747;border-color:#ff7fb7c2}.attendance-day.selection-5{background:#b99cff4d;border-color:#b99cffc7}.attendance-day.student-start-debt-day,.attendance-day.student-start-debt-day.selected,.attendance-day.student-start-debt-day.muted{color:#ff6b81;background:#ff6b8152;border-color:#ff6b81e6;font-weight:900}.attendance-day.student-start-debt-day span,.attendance-day.student-start-debt-day.selected span{color:#fff}.theme-light .attendance-day.student-start-debt-day,.theme-light .attendance-day.student-start-debt-day.selected,.theme-light .attendance-day.student-start-debt-day.muted{color:#9f1239;background:#ff6b814d}.theme-light .attendance-day.student-start-debt-day span,.theme-light .attendance-day.student-start-debt-day.selected span{color:#9f1239}.attendance-day.student-start-substitution-day,.attendance-day.student-start-substitution-day.selected,.attendance-day.student-start-substitution-day.muted{color:#ffcf6b;background:#ffb86b57;border-color:#ffb86be0;font-weight:900}.attendance-day.student-start-substitution-day span,.attendance-day.student-start-substitution-day.selected span{color:#fff}.attendance-day.student-start-substitution-day small{color:#281600;background:#ffcf6b}.theme-light .attendance-day.student-start-substitution-day,.theme-light .attendance-day.student-start-substitution-day.selected,.theme-light .attendance-day.student-start-substitution-day.muted{color:#92400e;background:#ffb86b57}.theme-light .attendance-day.student-start-substitution-day span,.theme-light .attendance-day.student-start-substitution-day.selected span{color:#92400e}.attendance-day:disabled{cursor:not-allowed}.attendance-status-field .chip-grid,.attendance-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.attendance-status-field .chip,.attendance-actions button{text-align:center;justify-content:center;width:100%}.trash-list{gap:12px;display:grid}.trash-card,.empty-panel{justify-content:space-between;align-items:center;gap:16px;display:flex}.trash-card-actions{justify-content:flex-end;align-items:center;gap:10px;margin-left:auto;display:flex}.journal-meta{text-align:right;justify-content:flex-end;align-items:center;margin-left:auto}.loading-screen{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#292b31;place-items:center;display:grid;position:fixed;inset:0}.loading-spinner{border:4px solid #8b5cf6;border-color:#8b5cf6 #3478ff #ffffff29 #ffffff29;border-radius:999px;width:58px;height:58px;animation:.82s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:#04081299;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.app-toast-stack{z-index:90;pointer-events:none;flex-direction:column-reverse;gap:10px;width:min(388px,100vw - 24px);display:flex;position:fixed;bottom:20px;right:20px}.app-toast{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;pointer-events:none;background:#121928f7;border:1px solid #ffb86b38;border-radius:18px;width:100%;padding:15px 16px;transition:opacity .22s,transform .22s;transform:translateY(14px);box-shadow:0 18px 40px #00000047,inset 0 1px #ffffff0a}.app-toast-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.app-toast-content{align-items:flex-start;gap:12px;display:flex}.app-toast-icon{color:#ffb86b;background:#ffb86b24;border-radius:12px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.app-toast-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.app-toast-copy{flex:1;min-width:0}.app-toast-copy strong{margin-bottom:4px;font-size:.96rem;display:block}.app-toast-copy p{color:var(--text-muted);margin:0;line-height:1.45}.app-toast-close{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.app-toast-close:hover{color:var(--text-main)}.app-toast-close span{font-size:1rem;line-height:1}@media (width<=640px){.app-toast-stack{gap:8px;width:min(320px,100vw - 24px);bottom:12px;right:12px}.app-toast{border-radius:15px;padding:12px 13px}.app-toast-content{gap:9px}.app-toast-icon{border-radius:10px;width:29px;height:29px}.app-toast-icon svg{width:16px;height:16px}.app-toast-copy strong{margin-bottom:2px;font-size:.88rem}.app-toast-copy p{font-size:.82rem;line-height:1.35}}.modal-card{border-radius:28px;width:min(100%,520px);padding:22px}.modal-card-wide{width:min(100%,760px)}.modal-card-student{width:min(710px,100vw - 40px)}.modal-card-attendance{width:min(100%,368px)}.modal-card-teacher{width:min(100%,520px)}.teacher-rate-fields{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.teacher-contact-fields{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);display:grid}.teacher-form-content{gap:16px;display:grid}.teacher-form-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.teacher-form-actions button{justify-content:center;width:100%}.modal-card-payment{width:min(100%,368px)}.modal-card-staff-settings{width:min(100%,560px)}.modal-card-payment .section-heading,.payment-form{width:320px;max-width:100%;margin-inline:auto}.payment-modal-name{color:#fff;margin:4px 0 0;font-size:1.38rem;font-weight:900}.theme-light .payment-modal-name{color:var(--text-main)}.payment-form .card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.payment-form .card-actions button{width:100%}.payment-calendar-field{color:var(--text-muted);gap:8px;display:grid}.payment-note-field{color:var(--text-muted);gap:8px;padding-block:8px;display:grid}.payment-note-preview{color:var(--text-muted);font-size:.95rem;line-height:1.35}.payment-note-preview mark{border-radius:6px;padding:1px 3px;font-weight:900}.payment-note-date-yellow{color:#ffcf6b;background:#ffcf6b38}.payment-note-date-green{color:#37f0c2;background:#37f0c22e}.payment-note-date-purple{color:#d8c8ff;background:#b99cff38}.payment-note-date-red{color:#ff6b81;background:#ff6b812e}.theme-light .payment-note-date-yellow{color:#7c4a03;background:#ffb86b57}.theme-light .payment-note-date-green{color:#047857;background:#14b8a63d}.theme-light .payment-note-date-purple{color:#6d28d9;background:#7c3aed2e}.theme-light .payment-note-date-red{color:#9f1239;background:#ff6b8142}.payment-picker{justify-self:center}.payment-month-preview-line{color:var(--text-muted);gap:2px;margin:0 0 8px;padding-inline:8px;font-size:.92rem;line-height:1.45;display:grid}.payment-month-preview-line span{display:block}.payment-month-preview-line mark{border-radius:6px;align-items:center;padding:1px 8px;display:inline-flex}.attendance-day.payment-paid-day{color:#37f0c2;background:#37f0c238;border-color:#37f0c2b8;font-weight:900}.attendance-day.payment-paid-day.selected{color:#052e2b;box-shadow:inset 0 0 0 1px #ffffff57,0 0 0 1px #37f0c24d}.attendance-day.payment-paid-day small{color:#052e2b;background:#37f0c2}.theme-light .attendance-day.payment-paid-day{color:#047857;background:#14b8a63d}.attendance-day.payment-past-paid-day{color:#37f0c2;background:#37f0c238;border-color:#37f0c2b8;font-weight:900}.attendance-day.payment-past-paid-day.selected{color:#052e2b;box-shadow:inset 0 0 0 1px #ffffff57,0 0 0 1px #37f0c24d}.attendance-day.payment-past-paid-day small{color:#052e2b;background:#37f0c2}.theme-light .attendance-day.payment-past-paid-day{color:#047857;background:#14b8a63d}.attendance-day.payment-balance-day{color:#37f0c2;background:#37f0c233;border-color:#37f0c2b8;font-weight:900}.attendance-day.payment-balance-day.selected{color:#052e2b;box-shadow:inset 0 0 0 1px #ffffff57,0 0 0 1px #37f0c247}.attendance-day.payment-balance-day small{color:#052e2b;background:#37f0c2}.theme-light .attendance-day.payment-balance-day{color:#047857;background:#14b8a63d}.attendance-day.payment-paid-upcoming-day,.theme-light .attendance-day.payment-paid-upcoming-day{border-color:#ffffffd1}.attendance-day.payment-debt-day{color:#ff6b81;background:#ff6b813d;border-color:#ff6b81c7;font-weight:900}.attendance-day.payment-debt-day.selected{color:#fff;box-shadow:inset 0 0 0 1px #ffffff57,0 0 0 1px #ff6b8152}.attendance-day.payment-debt-day small{color:#fff;background:#ff6b81}.theme-light .attendance-day.payment-debt-day{color:#9f1239;background:#ff6b8147}.attendance-day.payment-upcoming-day,.theme-light .attendance-day.payment-upcoming-day{color:#fff;background:0 0;border-color:#ffffffc7;font-weight:800}.attendance-day.payment-upcoming-day span,.theme-light .attendance-day.payment-upcoming-day span{color:#fff}.attendance-day.payment-upcoming-day.selected{color:#fff;background:#68a8ff3d;border-color:#68a8ffb3}.attendance-day.payment-paid-day.payment-upcoming-day{color:#37f0c2;background:#37f0c238;border-color:#37f0c2b8}.theme-light .attendance-day.payment-paid-day.payment-upcoming-day{color:#047857;background:#14b8a63d}.attendance-day.payment-paid-upcoming-day,.theme-light .attendance-day.payment-paid-upcoming-day,.attendance-day.payment-paid-day.payment-upcoming-day,.theme-light .attendance-day.payment-paid-day.payment-upcoming-day{border-color:#ffffffd1}.attendance-day.payment-substitution-day{color:#ffcf6b;background:#ffb86b4d;border-color:#ffcf6bd1;font-weight:900}.attendance-day.payment-substitution-day.selected{color:#111827;box-shadow:inset 0 0 0 1px #ffffff61,0 0 0 1px #ffcf6b57}.attendance-day.payment-substitution-day small{color:#111827;background:#ffcf6b}.theme-light .attendance-day.payment-substitution-day{color:#7c4a03;background:#ffb86b61}.attendance-day.payment-past-substitution-day{color:#37f0c2;background:#37f0c23d;border-color:#37f0c2c2;font-weight:900}.attendance-day.payment-past-substitution-day.selected{color:#052e2b;box-shadow:inset 0 0 0 1px #ffffff57,0 0 0 1px #37f0c24d}.attendance-day.payment-past-substitution-day small{color:#052e2b;background:#37f0c2}.theme-light .attendance-day.payment-past-substitution-day{color:#047857;background:#14b8a642}.modal-card-substitution{width:min(100%,364px)}.modal-card-substitution .section-heading{width:320px;max-width:100%;margin-inline:auto}.substitution-form{gap:12px}.modal-card-attendance .crm-form{margin-top:14px}.modal-card-lesson{width:min(100%,520px)}.lesson-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.modal-card-small{width:min(100%,420px)}.modal-text{color:var(--text-muted);margin-bottom:18px}fieldset{border:0;margin:0;padding:0}legend{color:var(--text-muted);margin-bottom:12px}@media (width>=761px){.filters-bar>.searchable-select{flex:0 0 260px;width:260px}}@media (width<=1500px){.crm-shell{grid-template-columns:1fr;height:auto;overflow-x:hidden}.content-area{min-height:auto;padding:84px 18px 18px;overflow:visible}.sidebar{z-index:70;border-radius:0 28px 28px 0;width:min(340px,100vw - 28px);height:100vh;margin:0;transition:transform .22s;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(calc(-100% - 24px))}.sidebar-mobile-open{transform:translate(0)}.sidebar-mobile-head{justify-content:flex-end;display:flex}.sidebar-close-button{flex:none}.sidebar-close-button svg,.mobile-sidebar-toggle svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.mobile-sidebar-toggle{z-index:65;border:1px solid var(--border);background:var(--bg-card);color:var(--text-main);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:999px;align-items:center;gap:10px;padding:12px 16px;display:inline-flex;position:fixed;top:18px;right:18px}.mobile-sidebar-toggle.hidden{opacity:0;pointer-events:none}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:60;background:#060a127a;border:0;padding:0;display:block;position:fixed;inset:0}.student-table-header,.student-list-row{grid-template-columns:minmax(210px,1.05fr) repeat(4,minmax(100px,.72fr)) minmax(320px,1.9fr) minmax(120px,.7fr)}.stats-grid,.split,.split-wide{grid-template-columns:1fr}.student-portal-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.student-portal-grid{grid-template-columns:1fr}.student-portal-details{grid-template-columns:repeat(2,minmax(0,1fr))}.student-portal-schedule-layout{grid-template-columns:1fr}.chart-card,.dashboard-layout>.panel,.dashboard-side-panel,.dashboard-wide-panel{grid-column:span 12}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-stats-grid{grid-template-columns:1fr}.journal-day-heading{top:132px}.student-head-actions{grid-template-columns:repeat(2,minmax(44px,max-content));justify-content:end;align-items:center;display:grid}.student-payment-button{grid-column:1/-1;width:100%}}@media (width>=768px) and (width<=991px){.content-area{padding:88px 24px 24px}.mobile-sidebar-toggle{min-height:44px;padding:11px 16px;top:22px;right:24px}.sidebar{grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;width:min(360px,100vw - 48px);height:100dvh;padding:22px;display:grid}.sidebar-mobile-head{display:none}.sidebar-nav{align-content:start;min-height:0;padding-right:2px;overflow-y:auto}.sidebar-bottom{align-self:end;margin-top:0}.topbar{align-items:flex-start;gap:14px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;margin-left:auto}.hero-card,.chart-card,.panel,.student-card,.teacher-card,.schedule-card,.journal-card{border-radius:22px}.hero-card,.chart-card,.panel{padding:20px}.hero-card{flex-wrap:wrap;align-items:flex-start}.hero-card .date-range{margin-left:0}.dashboard-layout{gap:16px}.dashboard-layout>.dashboard-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card{min-height:128px;padding:14px}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card-title{gap:9px}.dashboard-layout>.dashboard-stats-grid .stat-icon{width:34px;height:34px}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card-title span{font-size:.78rem}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card strong{font-size:1.12rem;line-height:1.1}.dashboard-layout .chart-shell{--chart-plot-height:320px;grid-template-columns:72px minmax(0,1fr);gap:12px}.dashboard-layout .dashboard-teacher-lesson-button{grid-template-columns:minmax(0,1fr)}.dashboard-layout .dashboard-teacher-lesson-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.student-search-panel .filters-bar,.teacher-filter-panel .filters-bar,.schedule-filter-panel .filters-bar,.salary-filter-panel .filters-bar,.attendance-filter-panel .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px;display:grid}.page-stack>.panel:has(+.journal-list) .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px;display:grid}.student-search-panel .search-field,.teacher-filter-panel .search-field,.schedule-filter-panel .search-field,.salary-filter-panel .search-field,.attendance-filter-panel .search-field,.salary-filter-panel .balance-indicator,.attendance-filter-panel .balance-indicator{grid-column:1/-1}.page-stack>.panel:has(+.journal-list) .search-field{grid-column:1/-1}.student-search-panel .filters-bar>*,.teacher-filter-panel .filters-bar>*,.schedule-filter-panel .filters-bar>*,.salary-filter-panel .filters-bar>*,.attendance-filter-panel .filters-bar>*{width:100%;min-width:0}.page-stack>.panel:has(+.journal-list) .filters-bar>*{width:100%;min-width:0}.page-stack>.panel:has(+.journal-list) .filters-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.page-stack>.panel:has(+.journal-list) .search-field{grid-column:1/-1}.page-stack>.panel:has(+.journal-list) .date-range-picker{grid-column:span 1}.page-stack>.panel:has(+.journal-list) .filters-bar>label:not(.search-field){grid-column:span 1}.page-stack>.panel:has(+.journal-list) .filters-bar>button{grid-column:span 1}.student-table-header{display:none}.student-list-card{border-radius:18px;padding:12px 14px}.student-list-row{grid-template-columns:minmax(128px,1.35fr) repeat(4,minmax(58px,.56fr)) minmax(126px,.82fr);align-items:center;gap:8px}.student-metrics.compact>div:first-child,.student-metrics.compact>div:nth-child(2),.student-metrics.compact>.student-next-payment-metric,.student-metrics.compact>div:nth-child(4){grid-column:span 1}.student-metrics.compact>.metrics-tail{display:none}.student-metrics.compact>div{background:0 0;border-color:#0000;border-radius:0;min-width:0;min-height:54px;padding:7px 6px}.student-title h3{font-size:.92rem;line-height:1.12}.student-title p{margin-top:3px;font-size:.7rem;line-height:1.18}.student-metrics.compact span,.metrics-tail span{font-size:.66rem;line-height:1.15}.student-metrics.compact strong,.student-metrics.compact>div:nth-child(-n+3) strong,.student-metrics.compact>div.student-next-payment-metric strong,.student-metrics.compact>div.student-next-payment-metric .student-metric-subvalue{font-size:.8rem;line-height:1.1}.student-metrics.compact>div:nth-child(4) strong{font-size:.68rem;line-height:1.15}.student-head-actions{grid-template-columns:minmax(54px,1fr) 34px 34px;justify-self:stretch;gap:6px;min-width:0;display:grid}.student-payment-button{border-radius:12px;grid-area:auto;justify-content:center;width:100%;height:34px;min-height:34px;padding:8px 6px;font-size:.72rem;line-height:1}.student-head-actions .icon-button,.student-head-actions .menu-trigger{border-radius:12px;grid-area:auto;place-items:center;width:100%;min-width:0;height:34px;padding:8px;display:grid}.student-menu-wrap{grid-area:auto;min-width:0}.teacher-card{flex-direction:column;align-items:stretch}.teacher-card-head{flex-basis:auto;min-width:0}.teacher-head-actions{flex-wrap:wrap;justify-content:flex-start;width:100%;margin-left:0}.teacher-rates{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.attendance-page-layout{grid-template-columns:1fr}.attendance-student-panel{grid-template-columns:max-content max-content minmax(0,1fr);align-items:start;column-gap:24px}.attendance-student-panel>.section-heading,.attendance-student-panel>.attendance-student-select,.attendance-student-panel>.attendance-student-summary,.attendance-student-panel>.attendance-student-metrics,.attendance-student-panel>.attendance-student-empty{grid-column:1/-1}.attendance-student-summary,.attendance-student-metrics,.attendance-student-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-student-calendar{grid-column:1;min-width:0}.attendance-student-legend{text-align:left;grid-column:2;grid-template-columns:1fr;align-content:start;place-self:start;width:max-content}.attendance-student-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.schedule-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.schedule-week-panel .section-heading{align-items:flex-start}.schedule-week-picker{justify-content:flex-start;width:100%}.salary-teacher-head{grid-template-columns:minmax(0,1fr) auto;gap:12px;display:grid}.salary-summary-head{display:contents}.salary-summary-total{white-space:nowrap;grid-column:2;justify-self:end}.salary-summary-actions{grid-column:1/-1;width:100%}.salary-summary-actions .ghost-button,.salary-summary-actions .primary-button{flex:1 1 0;justify-content:center}.salary-row-main,.salary-lesson-card-main,.salary-lesson-card-meta{align-items:flex-start}.journal-card{align-items:center}.modal-card{max-height:calc(100vh - 40px);overflow-y:auto}}@media (width>=992px) and (width<=1199px){.content-area{padding:88px 24px 24px}.mobile-sidebar-toggle{top:22px;right:24px}.hero-card,.chart-card,.panel{border-radius:24px;padding:20px}.dashboard-layout{gap:16px}.dashboard-layout .hero-card{align-items:center;padding:22px 24px}.dashboard-layout .hero-copy{max-width:560px}.dashboard-layout .date-range{margin-left:auto}.dashboard-layout>.dashboard-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card{min-height:116px;padding:14px}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card strong{font-size:1.22rem}.dashboard-layout>.chart-card:not(.dashboard-side-panel){grid-column:span 7}.dashboard-layout>.dashboard-side-panel{grid-column:span 5}.dashboard-layout>.dashboard-teacher-panel,.dashboard-layout>.dashboard-recent-panel{grid-column:span 6}.dashboard-layout .chart-shell{--chart-plot-height:340px;grid-template-columns:74px minmax(0,1fr);gap:12px}.dashboard-layout .section-heading{gap:12px}.dashboard-layout .section-heading h3{font-size:1.08rem}.dashboard-layout .section-heading p{font-size:.86rem}.dashboard-layout .problem-list{--problem-card-height:70px;max-height:calc(var(--problem-card-height) * 5 + 14px * 4)}.dashboard-layout .problem-card{padding:14px}.dashboard-layout .problem-card-meta,.dashboard-layout .list-meta{font-size:.84rem}.dashboard-layout .dashboard-teacher-filter{max-width:320px}.dashboard-layout .dashboard-teacher-summary{gap:8px}.dashboard-layout .dashboard-teacher-summary>div{padding:10px}.dashboard-layout .dashboard-teacher-summary span,.dashboard-layout .dashboard-teacher-lesson-metrics span{font-size:.72rem}.dashboard-layout .dashboard-teacher-summary strong,.dashboard-layout .dashboard-teacher-lesson-metrics strong{font-size:.88rem}.dashboard-layout .dashboard-teacher-lesson-button{grid-template-columns:minmax(0,1fr);gap:10px;min-height:0;padding:12px}.dashboard-layout .dashboard-teacher-lesson-metrics{gap:6px}.dashboard-layout .dashboard-teacher-lesson-metrics span{min-height:50px;padding:8px}.dashboard-layout .recent-transaction-card{padding:14px}.schedule-filter-panel .filters-bar{grid-template-columns:minmax(280px,1fr) minmax(220px,260px) minmax(150px,max-content);align-items:end;gap:12px;display:grid}.schedule-filter-panel .filters-bar>*{width:100%;min-width:0}.schedule-filter-panel .filters-bar .primary-button{white-space:nowrap;justify-content:center;min-height:47px}.schedule-week-panel .section-heading{align-items:center;gap:16px}.schedule-week-picker{flex-wrap:nowrap;gap:8px}.schedule-week-picker label{min-width:154px}.schedule-week-picker .week-nav-button{white-space:nowrap;min-height:40px;padding-inline:12px}.schedule-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.day-column{border-radius:20px;padding:14px}.day-column h4{margin-bottom:12px}.schedule-card{border-radius:18px;padding:13px}.substitution-lesson-card,.inactive-lesson-card{padding-top:28px}.lesson-card{gap:10px}.lesson-card-head{gap:8px}.lesson-time,.lesson-card-head strong{line-height:1.15}.lesson-card-head p,.lesson-card-meta,.lesson-students{font-size:.82rem}.lesson-settings-wrap{grid-template-columns:repeat(2,32px);gap:6px}.substitution-settings-wrap{grid-template-columns:32px}.lesson-menu-trigger,.lesson-substitution-trigger{border-radius:11px;width:32px;min-width:32px;height:32px}.lesson-card-meta{border-radius:14px;padding:9px 10px}.settings-staff-grid{grid-template-columns:minmax(300px,.88fr) minmax(0,1.12fr);align-items:start;gap:14px}.settings-staff-grid>.panel-nested,.settings-staff-grid .staff-directory{border-radius:20px;padding:16px}.settings-staff-grid .crm-form{gap:12px}.settings-staff-grid .form-columns{flex-direction:column;gap:10px}.settings-staff-grid .crm-form label{gap:6px;font-size:.84rem}.settings-staff-grid .crm-form input,.settings-staff-grid .crm-form select{border-radius:14px;min-height:42px;padding:10px 12px;font-size:.9rem}.settings-staff-grid .crm-form .primary-button{justify-content:center;width:100%}.staff-directory .section-heading{align-items:center;gap:12px}.staff-directory-card{border-radius:16px;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px;display:grid}.staff-directory-card strong,.staff-directory-card p{overflow-wrap:anywhere}.staff-directory-meta{gap:8px}.staff-directory-actions{justify-content:flex-end;gap:6px}.staff-directory-actions .ghost-button{border-radius:12px;min-height:36px;padding:8px 10px;font-size:.78rem}.staff-directory-password{font-size:.78rem;line-height:1.2}}@media (width>=768px) and (width<=1199px) and (orientation:landscape){.sidebar{border-radius:0 20px 20px 0;grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch;gap:11px;width:min(238px,100vw - 64px);height:100dvh;padding:12px;display:grid}.brand-logo{width:128px}.sidebar-mobile-head{display:none}.nav-item{border-radius:14px;gap:6px;min-height:32px;padding:6px 8px;font-size:.76rem;line-height:1.12}.nav-icon{border-radius:8px;width:22px;height:22px}.nav-icon svg{width:12px;height:12px}.sidebar-nav,.sidebar-bottom-nav,.sidebar-bottom-actions,.sidebar-bottom{gap:6px}.sidebar-nav{align-content:start;min-height:0;padding-right:2px;overflow-y:auto}.sidebar-bottom{align-self:end;margin-top:0}.sidebar-card{border-radius:14px;padding:10px}.sidebar-card strong{font-size:1rem}.sidebar-card p{font-size:.7rem;line-height:1.25}.mobile-sidebar-toggle{min-height:36px;padding:8px 12px;font-size:.8rem}}@media (width>=1200px) and (width<=1500px){.crm-shell{grid-template-columns:68px minmax(0,1fr);height:100vh;overflow:hidden}.sidebar{z-index:80;border-radius:0 24px 24px 0;gap:8px;width:68px;height:100vh;margin:0;padding:8px 7px;transition:width .18s,padding .18s,box-shadow .18s;position:sticky;top:0;left:auto;overflow:hidden auto;transform:none}.sidebar:hover{border-radius:0 28px 28px 0;width:250px;padding:12px;box-shadow:0 24px 70px #00000061,inset 0 1px #ffffff0a}.sidebar:has(.brand-link:focus-visible){border-radius:0 28px 28px 0;width:250px;padding:12px;box-shadow:0 24px 70px #00000061,inset 0 1px #ffffff0a}.sidebar:has(.nav-item:focus-visible){border-radius:0 28px 28px 0;width:250px;padding:12px;box-shadow:0 24px 70px #00000061,inset 0 1px #ffffff0a}.mobile-sidebar-toggle,.sidebar-overlay,.sidebar-mobile-head{display:none}.sidebar-mobile-open{transform:none}.brand-block{opacity:1;pointer-events:auto;height:auto;min-height:32px;overflow:visible}.brand-link{align-items:center;width:34px;height:34px;margin-inline:auto;transition:width .18s,height .18s;overflow:hidden}.brand-logo{width:170px;min-width:170px;transition:width .18s;display:none}.brand-logo-icon{display:block}.sidebar:hover .brand-link{width:100%;height:auto;margin-inline:0}.sidebar:has(.brand-link:focus-visible) .brand-link{width:100%;height:auto;margin-inline:0}.sidebar:has(.nav-item:focus-visible) .brand-link{width:100%;height:auto;margin-inline:0}.sidebar:hover .brand-logo{width:170px;display:block}.sidebar:has(.brand-link:focus-visible) .brand-logo{width:170px;display:block}.sidebar:has(.nav-item:focus-visible) .brand-logo{width:170px;display:block}.sidebar:hover .brand-logo-icon{display:none}.sidebar:has(.brand-link:focus-visible) .brand-logo-icon{display:none}.sidebar:has(.nav-item:focus-visible) .brand-logo-icon{display:none}.sidebar-nav,.sidebar-bottom-nav,.sidebar-bottom-actions{justify-items:center;gap:4px}.sidebar-bottom{gap:5px}.nav-item{white-space:nowrap;color:#0000;justify-content:center;gap:0;width:38px;min-height:38px;padding:5px;font-size:0;overflow:hidden}.nav-badge{color:#1f1300;background:#ffcf6b;border-width:0;min-width:17px;height:17px;padding:0 4px;font-size:.58rem;position:absolute;top:2px;right:2px;box-shadow:0 6px 14px #f59e0b47}.nav-icon{width:28px;height:28px;color:var(--text-main);flex:0 0 28px}.sidebar-logout-button .nav-icon{color:var(--danger)}.nav-item.active .nav-icon,.nav-item:hover:not(.active) .nav-icon{color:#ffcf6b}.theme-light .nav-item.active .nav-icon,.theme-light .nav-item:hover:not(.active) .nav-icon{color:#b87722}.sidebar:hover .nav-item{width:100%;min-height:32px;color:inherit;justify-content:flex-start;gap:6px;padding:5px 7px;font-size:.7rem;line-height:1.08}.sidebar:has(.brand-link:focus-visible) .nav-item{width:100%;min-height:32px;color:inherit;justify-content:flex-start;gap:6px;padding:5px 7px;font-size:.7rem;line-height:1.08}.sidebar:has(.nav-item:focus-visible) .nav-item{width:100%;min-height:32px;color:inherit;justify-content:flex-start;gap:6px;padding:5px 7px;font-size:.7rem;line-height:1.08}.sidebar:hover .nav-badge{background:color-mix(in srgb, #f59e0b 24%, var(--bg-soft));color:#ffcf6b;min-width:21px;height:21px;box-shadow:none;border:1px solid #f59e0ba3;margin-left:auto;padding:0 6px;font-size:.68rem;position:static}.sidebar:has(.brand-link:focus-visible) .nav-badge{background:color-mix(in srgb, #f59e0b 24%, var(--bg-soft));color:#ffcf6b;min-width:21px;height:21px;box-shadow:none;border:1px solid #f59e0ba3;margin-left:auto;padding:0 6px;font-size:.68rem;position:static}.sidebar:has(.nav-item:focus-visible) .nav-badge{background:color-mix(in srgb, #f59e0b 24%, var(--bg-soft));color:#ffcf6b;min-width:21px;height:21px;box-shadow:none;border:1px solid #f59e0ba3;margin-left:auto;padding:0 6px;font-size:.68rem;position:static}.sidebar:hover .sidebar-nav,.sidebar:hover .sidebar-bottom-nav,.sidebar:hover .sidebar-bottom-actions{justify-items:stretch}.sidebar:has(.brand-link:focus-visible) .sidebar-nav{justify-items:stretch}.sidebar:has(.brand-link:focus-visible) .sidebar-bottom-nav{justify-items:stretch}.sidebar:has(.brand-link:focus-visible) .sidebar-bottom-actions{justify-items:stretch}.sidebar:has(.nav-item:focus-visible) .sidebar-nav{justify-items:stretch}.sidebar:has(.nav-item:focus-visible) .sidebar-bottom-nav{justify-items:stretch}.sidebar:has(.nav-item:focus-visible) .sidebar-bottom-actions{justify-items:stretch}.sidebar:hover .sidebar-logout-button{color:var(--danger)}.sidebar:has(.brand-link:focus-visible) .sidebar-logout-button{color:var(--danger)}.sidebar:has(.nav-item:focus-visible) .sidebar-logout-button{color:var(--danger)}.content-area{min-height:0;padding:24px;overflow-y:auto}.dashboard-layout{gap:16px}.dashboard-layout .hero-card{align-items:center;padding:22px 24px}.dashboard-layout .hero-copy{max-width:560px}.dashboard-layout .date-range{margin-left:auto}.dashboard-layout>.dashboard-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card{min-height:112px}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card strong{font-size:clamp(1.2rem,1.25vw,1.45rem)}.dashboard-layout>.chart-card:not(.dashboard-side-panel){grid-column:span 7}.dashboard-layout>.dashboard-side-panel{grid-column:span 5}.dashboard-layout>.dashboard-teacher-panel,.dashboard-layout>.dashboard-recent-panel{grid-column:span 6}.dashboard-layout .chart-shell{--chart-plot-height:360px;grid-template-columns:76px minmax(0,1fr);gap:12px}.dashboard-layout .chart-card,.dashboard-layout .panel{padding:20px}.dashboard-layout .section-heading{gap:12px}.dashboard-layout .section-heading h3{font-size:1.08rem}.dashboard-layout .section-heading p{font-size:.86rem}.dashboard-layout .problem-list{--problem-card-height:70px;max-height:calc(var(--problem-card-height) * 5 + 14px * 4)}.dashboard-layout .problem-card{padding:14px}.dashboard-layout .problem-card-meta,.dashboard-layout .list-meta{font-size:.86rem}.dashboard-layout .dashboard-teacher-filter{max-width:320px}.dashboard-layout .dashboard-teacher-summary{gap:8px}.dashboard-layout .dashboard-teacher-summary>div{padding:10px}.dashboard-layout .dashboard-teacher-lesson-button{grid-template-columns:minmax(0,.9fr) minmax(260px,1.2fr);gap:10px;min-height:78px;padding:12px}.dashboard-layout .dashboard-teacher-lesson-metrics{gap:6px}.dashboard-layout .dashboard-teacher-lesson-metrics span{min-height:54px;padding:8px}}@media (width>=768px) and (width<=1500px) and (orientation:landscape){.modal-backdrop{padding:12px;overflow-y:auto}.modal-card,.modal-card-wide,.modal-card-student,.modal-card-attendance,.modal-card-teacher,.modal-card-payment,.modal-card-staff-settings,.modal-card-substitution,.modal-card-lesson,.modal-card-small,.modal-card-journal-transaction{border-radius:14px;max-height:calc(100dvh - 24px);padding:10px;font-size:.82rem;overflow-y:auto}.modal-card{width:min(480px,100vw - 32px)}.modal-card-wide{width:min(700px,100vw - 32px)}.modal-card-student{width:min(640px,100vw - 32px);padding:8px}.modal-card-teacher,.modal-card-lesson,.modal-card-staff-settings{width:min(500px,100vw - 32px)}.modal-card-payment,.modal-card-attendance,.modal-card-substitution{width:min(350px,100vw - 32px)}.modal-card-small{width:min(380px,100vw - 32px)}.modal-card-journal-transaction{width:min(640px,100vw - 32px)}.modal-card .section-heading{gap:6px}.modal-card .section-heading h3{font-size:.84rem;line-height:1.15}.modal-card .section-heading p{font-size:.62rem;line-height:1.25}.modal-card .crm-form,.payment-form,.substitution-form,.lesson-form,.teacher-form-content{gap:5px}.modal-card label,.modal-card legend,.modal-card .searchable-select,.payment-form label,.substitution-form label,.lesson-form label{gap:3px;font-size:.64rem}.modal-card input,.modal-card select,.modal-card textarea,.modal-card .searchable-select-trigger,.modal-card .searchable-select-search,.modal-card .form-derived-value,.payment-form input,.payment-form select,.payment-form textarea,.payment-form .searchable-select-trigger,.payment-form .searchable-select-search,.substitution-form input,.substitution-form select,.substitution-form textarea,.substitution-form .searchable-select-trigger,.substitution-form .searchable-select-search,.lesson-form input,.lesson-form select,.lesson-form textarea,.lesson-form .searchable-select-trigger,.lesson-form .searchable-select-search{border-radius:7px;min-height:26px;padding:4px 6px;font-size:.68rem}.modal-card textarea,.lesson-form textarea{min-height:34px}.modal-card .primary-button,.modal-card .ghost-button,.payment-form .card-actions button,.teacher-form-actions button,.attendance-actions button{border-radius:7px;min-height:26px;padding:4px 6px;font-size:.66rem;line-height:1.12}.payment-form,.modal-card-payment .section-heading,.modal-card-substitution .section-heading{width:100%;margin-inline:0}.modal-card-student .student-form-layout{border-radius:9px;gap:4px;padding:4px}.modal-card-student .section-heading h3{font-size:.78rem}.modal-card-student .section-heading p{font-size:.58rem}.modal-card-student .student-form-column,.modal-card-student .student-form-inline-fields,.modal-card-student .student-form-actions{gap:3px}.modal-card-student .crm-form label,.modal-card-student .student-start-date-field,.modal-card-student legend{gap:2px;font-size:.58rem}.modal-card-student .crm-form input,.modal-card-student .crm-form select,.modal-card-student .crm-form textarea,.modal-card-student .crm-form .searchable-select-trigger,.modal-card-student .crm-form .searchable-select-search,.modal-card-student .form-derived-value{border-radius:7px;min-height:24px;padding:4px 6px;font-size:.62rem}.modal-card-student .crm-form textarea{height:32px;min-height:32px}.modal-card-student .student-assignment-row{gap:4px}.modal-card-student .chip-grid{gap:3px}.modal-card-student .chip,.modal-card-student .primary-button,.modal-card-student .ghost-button{border-radius:7px;min-height:24px;padding:4px 6px;font-size:.62rem}}@media (width>=1200px) and (width<=1500px){.modal-card-journal-transaction{border-radius:24px;width:min(400px,100vw - 48px);max-height:calc(100dvh - 48px);padding:22px;overflow-y:auto}.journal-transaction-modal-close{margin-bottom:2px}.journal-transaction-modal-top{text-align:center;grid-template-columns:minmax(0,1fr);place-items:center;gap:16px}.journal-transaction-modal-top .journal-card-avatar{border-radius:19px;width:64px;height:64px}.journal-transaction-modal-top .journal-card-avatar-core{border-radius:13px;width:40px;height:40px}.journal-transaction-modal-copy{min-width:0}.journal-transaction-modal-copy h3{font-size:1.55rem;line-height:1.12}.journal-transaction-modal-copy p{margin-top:6px;font-size:.92rem}.journal-transaction-modal-top strong{white-space:nowrap;justify-self:center;font-size:1.75rem}.journal-transaction-modal-details{border-radius:22px;margin-top:22px}.journal-transaction-modal-row{gap:16px;padding:16px 18px}}@media (width>=768px) and (width<=1199px){.modal-backdrop:has(.modal-card-journal-transaction){padding:16px}.modal-card-journal-transaction{border-radius:22px;width:min(400px,100vw - 40px);max-height:calc(100dvh - 32px);padding:18px;overflow-y:auto}.journal-transaction-modal-close{margin-bottom:0}.journal-transaction-modal-top{text-align:center;grid-template-columns:minmax(0,1fr);place-items:center;gap:14px}.journal-transaction-modal-top .journal-card-avatar{border-radius:17px;width:58px;height:58px}.journal-transaction-modal-top .journal-card-avatar-core{border-radius:12px;width:36px;height:36px}.journal-transaction-modal-top .journal-card-avatar-core svg{width:18px;height:18px}.journal-transaction-modal-copy{min-width:0}.journal-transaction-modal-copy h3{font-size:1.34rem;line-height:1.14}.journal-transaction-modal-copy p{margin-top:5px;font-size:.84rem}.journal-transaction-modal-top strong{white-space:nowrap;justify-self:center;font-size:1.42rem}.journal-transaction-modal-details{border-radius:18px;margin-top:18px}.journal-transaction-modal-row{grid-template-columns:minmax(120px,.45fr) minmax(0,1fr);gap:12px;padding:13px 15px}.journal-transaction-modal-row strong{overflow-wrap:anywhere}.journal-transaction-delete-button{border-radius:14px;margin-top:14px;padding:12px 16px;font-size:.9rem}}@media (width>=768px) and (width<=1199px) and (orientation:portrait){.modal-card-journal-transaction{width:min(400px,100vw - 40px)}}@media (width<=760px){.crm-shell.auth-screen{height:100dvh;min-height:100dvh;overflow-y:auto}.auth-shell{justify-content:center;align-items:center;min-height:100dvh;padding:16px;display:flex}.auth-card{border-radius:22px;width:100%;max-width:332px;margin-inline:auto;padding:20px}.auth-screen-theme-switch{top:16px;right:16px}.content-area>.topbar{align-items:stretch;gap:12px;margin-bottom:14px}.content-area>.topbar h2{font-size:1.35rem;line-height:1.15}.topbar-actions{justify-content:space-between;gap:10px;width:100%}.topbar-actions .status-pill{flex:auto;min-width:0;padding:8px 12px;font-size:.82rem;line-height:1.15}.topbar-actions .theme-switch{flex:none}.attendance-page-layout{grid-template-columns:1fr;gap:12px}.attendance-student-summary{grid-template-columns:1fr}.attendance-student-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-student-panel,.attendance-filter-panel{border-radius:18px;padding:12px}.attendance-student-panel .section-heading{gap:8px}.attendance-student-panel .section-heading h3{font-size:1rem}.attendance-student-panel .section-heading p{font-size:.78rem;line-height:1.35}.attendance-student-select,.attendance-student-panel .searchable-select-trigger,.attendance-student-panel .searchable-select-search{min-width:0;font-size:.86rem}.attendance-student-info-card,.attendance-student-metric{border-radius:14px;padding:10px 12px}.attendance-student-info-card span,.attendance-student-metric span,.attendance-legend-item{font-size:.76rem}.attendance-student-info-card strong,.attendance-student-metric strong{font-size:.94rem;line-height:1.18}.attendance-student-info-card p{font-size:.78rem;line-height:1.3}.attendance-student-calendar{border-radius:12px;gap:5px;padding:6px}.attendance-student-calendar .attendance-picker-head{gap:8px}.attendance-student-calendar .attendance-picker-head strong{text-align:center;font-size:.86rem}.attendance-student-calendar .attendance-picker-head .icon-button{border-radius:10px;width:30px;min-width:30px;height:30px}.attendance-student-calendar .attendance-weekdays,.attendance-student-calendar .attendance-calendar{gap:3px}.attendance-student-calendar .attendance-weekdays span{font-size:.58rem}.attendance-student-calendar .attendance-day{border-radius:7px;font-size:.66rem}.attendance-student-calendar .attendance-day small{min-width:10px;height:10px;font-size:.44rem;bottom:2px;right:2px}.attendance-student-legend{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}.attendance-legend-dot{width:10px;height:10px}.attendance-filter-panel .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.attendance-filter-panel .search-field,.attendance-filter-panel .balance-indicator{grid-column:1/-1}.attendance-filter-panel .search-field,.attendance-filter-panel .searchable-select,.attendance-filter-panel .date-range-picker,.attendance-filter-panel .balance-indicator{width:100%;min-width:0}.attendance-filter-panel .filters-bar label,.attendance-filter-panel .filters-bar .searchable-select{gap:5px;font-size:.78rem}.attendance-filter-panel .filters-bar input,.attendance-filter-panel .filters-bar select,.attendance-filter-panel .filters-bar .searchable-select-trigger,.attendance-filter-panel .filters-bar .searchable-select-search,.attendance-filter-panel .date-range-trigger{border-radius:12px;min-height:38px;padding:9px 10px;font-size:.86rem}.attendance-filter-panel .date-range-trigger{width:100%}.attendance-filter-panel .balance-indicator{border-radius:14px;padding:10px 12px}.attendance-filter-panel .balance-indicator span{margin-bottom:4px;font-size:.74rem}.attendance-filter-panel .balance-indicator strong{font-size:.95rem}.attendance-card{border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 14px 16px 20px;display:grid}.attendance-card>div:first-child{min-width:0}.attendance-card h3{font-size:.89rem;line-height:1.15}.attendance-card-title-row{align-items:center;gap:8px}.attendance-card-title-row h3{overflow-wrap:anywhere;flex:0 auto}.attendance-card-title-row .badge{white-space:nowrap;flex:none;min-height:30px;padding:7px 12px;font-size:.76rem;line-height:1}.attendance-card p{font-size:.78rem;line-height:1.32}.attendance-card-meta{grid-template-columns:minmax(0,max-content) 38px;place-self:center end;place-items:center end;gap:8px;width:auto;margin-left:0;display:grid}.attendance-card-meta-has-rollback{grid-template-columns:minmax(0,max-content) repeat(2,38px)}.attendance-card:not(.attendance-card-pending) .attendance-card-meta{column-gap:12px}.attendance-card:not(.attendance-card-pending) .attendance-card-meta .icon-button:last-child{margin-left:4px}.attendance-card-pending{grid-template-columns:1fr;align-items:stretch}.attendance-card-pending .attendance-card-meta{justify-content:flex-end;justify-self:stretch;width:100%;display:flex}.attendance-card-pending .attendance-card-actions{grid-template-columns:repeat(2,minmax(98px,max-content));width:auto}.attendance-card-meta strong{text-align:center;white-space:nowrap;grid-area:1/1;justify-self:center;font-size:.94rem;font-weight:800}.attendance-card-meta .icon-button{border-radius:999px;grid-row:1;width:38px;min-width:38px;height:38px}.attendance-card-actions{grid-template-columns:repeat(2,minmax(96px,1fr));width:min(100%,260px);display:grid}.attendance-card-actions button{min-height:38px;padding:9px 10px;font-size:.78rem}.searchable-select-popover{width:auto;max-width:none;left:0;right:0}.search-input-wrap input{padding-right:34px}.search-clear-button{right:4px}.schedule-filter-panel,.schedule-week-panel{border-radius:18px;padding:12px}.schedule-filter-panel .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px;display:grid}.schedule-filter-panel .search-field{grid-column:1/-1}.schedule-filter-panel .filters-bar label,.schedule-filter-panel .filters-bar .searchable-select{gap:5px;min-width:0;font-size:.78rem}.schedule-filter-panel .filters-bar input,.schedule-filter-panel .filters-bar select,.schedule-filter-panel .filters-bar .searchable-select-trigger,.schedule-filter-panel .filters-bar .searchable-select-search{border-radius:12px;min-height:38px;padding:9px 10px;font-size:.86rem}.schedule-filter-panel .filters-bar .primary-button{white-space:nowrap;border-radius:12px;justify-content:center;width:100%;min-height:38px;padding:10px 8px;font-size:.78rem}.schedule-filter-panel .filters-bar .search-clear-button{border-radius:0;justify-content:center;width:20px;height:20px;min-height:20px;padding:0;right:4px}.schedule-week-panel .section-heading{align-items:stretch;gap:12px}.schedule-week-panel .section-heading h3{font-size:1rem}.schedule-week-panel .section-heading p{font-size:.8rem}.schedule-week-picker{flex-wrap:nowrap;justify-content:space-between;align-items:end;gap:6px;width:100%;display:flex}.schedule-week-picker label{flex:0 132px;gap:3px;min-width:0;font-size:.68rem}.schedule-week-picker input{border-radius:12px;min-height:34px;padding:7px 8px;font-size:.8rem}.schedule-week-picker .week-nav-button{white-space:nowrap;border-radius:12px;flex:none;width:auto;min-width:34px;min-height:34px;padding:7px 10px;font-size:.74rem}.salary-filter-panel,.salary-teacher-card{border-radius:18px;padding:12px}.salary-filter-panel .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px;display:grid}.salary-filter-panel .search-field,.salary-filter-panel .balance-indicator{grid-column:1/-1}.salary-filter-panel .filters-bar label,.salary-filter-panel .filters-bar .searchable-select{gap:5px;min-width:0;font-size:.78rem}.salary-filter-panel .filters-bar input,.salary-filter-panel .filters-bar select,.salary-filter-panel .filters-bar .searchable-select-trigger,.salary-filter-panel .filters-bar .searchable-select-search{border-radius:12px;min-height:38px;padding:9px 10px;font-size:.86rem}.salary-filter-panel .balance-indicator{border-radius:12px;min-height:38px;padding:10px 12px}.salary-teacher-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px;display:grid}.salary-teacher-head>div:first-child{min-width:0}.salary-row-main{flex-direction:row;justify-content:space-between;align-items:center}.salary-total-row{width:100%;margin-left:0}.salary-row-meta{text-align:right;justify-content:flex-end;width:auto;margin-left:auto}.salary-summary-head{width:auto;margin-left:0;display:contents}.salary-summary-total{white-space:nowrap;grid-area:1/2;place-self:center end}.salary-summary-head>strong{flex:none;width:auto}.salary-summary-actions{grid-area:2/1/auto/-1;gap:8px;width:100%;display:flex}.salary-summary-head .ghost-button,.salary-summary-head .primary-button{white-space:nowrap;border-radius:12px;flex:1 1 0;justify-content:center;min-width:0;min-height:38px;padding:10px 6px;font-size:.74rem}.salary-total-row{justify-content:flex-end;align-items:center}.salary-row-calculations{grid-template-columns:1fr auto;width:100%}.salary-row{gap:10px;padding:12px}.salary-lesson-title,.salary-lesson-card-main strong:not(.salary-lesson-card-index),.salary-row-meta strong,.salary-lesson-card-meta strong{font-size:.9rem}.salary-row-main p,.salary-lesson-meta,.salary-lesson-time,.salary-row-students p,.salary-row-students li,.salary-row-students span,.salary-row-calculations{font-size:.78rem}.salary-lesson-card{gap:8px;padding:10px}.salary-lesson-card-main,.salary-lesson-card-meta{gap:8px}.salary-lesson-card-main{justify-content:flex-start}.salary-lesson-card-meta{text-align:right;flex-direction:row;justify-content:flex-end;align-self:center;align-items:center;min-width:auto;margin-left:auto}.salary-lesson-card-index{flex-basis:24px;width:24px;height:24px;font-size:.78rem}.salary-lesson-card .ghost-button.danger-button.icon-button.salary-delete-button{justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;margin:0;padding:7px;display:flex}.salary-lesson-card .ghost-button.danger-button.icon-button.salary-delete-button svg{margin:auto;display:block}.teacher-filter-panel,.teacher-card{border-radius:18px;padding:12px}.teacher-filter-panel .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px;display:grid}.teacher-filter-panel .search-field{grid-column:1/-1}.teacher-filter-panel .filters-bar label{gap:5px;min-width:0;font-size:.78rem}.teacher-filter-panel .filters-bar input,.teacher-filter-panel .filters-bar select{border-radius:12px;min-height:38px;padding:9px 10px;font-size:.86rem}.teacher-filter-panel .filters-bar .primary-button{border-radius:12px;justify-content:center;width:100%;min-height:38px;padding:10px 8px;font-size:.78rem}.teacher-card{flex-direction:column;align-items:stretch;gap:12px}.teacher-card.menu-open{z-index:900}.teacher-card-head{flex-basis:auto;gap:12px;min-width:0}.teacher-card-summary{align-items:flex-start}.teacher-menu-wrap{z-index:920}.teacher-menu-dropdown{z-index:1200;width:min(220px,100vw - 48px);min-width:0;position:fixed;top:50%;left:50%;right:auto;transform:translate(-50%,-50%)}.teacher-head-actions{flex-wrap:wrap;justify-content:flex-start;gap:8px;width:100%;margin-left:0}.teacher-head-actions .badge{flex:calc(50% - 4px);min-width:0;padding:8px 12px;font-size:.85rem}.teacher-rates{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;display:grid}.teacher-rates>div{border-radius:12px;padding:10px}.teacher-rates span{margin-bottom:4px;font-size:.76rem}.page-stack>.panel:has(+.journal-list){z-index:55;border-radius:18px;padding:12px;position:sticky;top:0}.page-stack>.panel:has(+.journal-list) .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.page-stack>.panel:has(+.journal-list) .search-field{grid-column:1/-1}.page-stack>.panel:has(+.journal-list) .filters-bar label{gap:5px;font-size:.78rem}:is(.page-stack>.panel:has(+.journal-list) .filters-bar input,.page-stack>.panel:has(+.journal-list) .filters-bar select){border-radius:12px;min-height:38px;padding:9px 10px;font-size:.86rem}.page-stack>.panel:has(+.journal-list) .date-range-picker{grid-column:1/-1}.date-range-picker{width:max-content;min-width:0}.date-range-trigger{border-radius:12px;min-height:38px;padding:9px 10px;font-size:.86rem}.date-range-popover{left:0;right:auto}.date-range-calendar{width:min(300px,100vw - 28px)}.page-stack>.panel:has(+.journal-list) .filters-bar>button{white-space:nowrap;border-radius:12px;align-self:end;width:100%;min-height:38px;padding:10px 8px;font-size:.78rem}.page-stack>.panel:has(+.journal-list) .date-range-calendar .attendance-picker-head{grid-template-columns:34px minmax(0,1fr) 34px;gap:8px;display:grid}.page-stack>.panel:has(+.journal-list) .date-range-calendar .attendance-picker-head .icon-button{border-radius:12px;width:34px;min-width:34px;height:34px;padding:0}.page-stack>.panel:has(+.journal-list) .date-range-presets{gap:4px}.page-stack>.panel:has(+.journal-list) .date-range-presets button{white-space:nowrap;border-radius:8px;width:100%;min-height:28px;padding:4px 3px;font-size:.6rem;line-height:1.05}.journal-day-heading{z-index:50;border-radius:14px;gap:8px;padding:7px 10px;position:sticky;top:168px}.journal-day-heading span:first-child{font-size:.72rem}.journal-day-heading .badge{min-height:24px;padding:5px 9px;font-size:.72rem}.student-portal-shell{width:calc(100vw - 24px);margin:12px auto 18px}.student-portal-topbar,.student-portal-hero,.student-portal-transaction-card{flex-direction:column;align-items:stretch}.student-portal-hero-meta{justify-content:flex-start}.student-portal-hero-summary{justify-content:flex-start;max-width:none}.student-portal-hero-summary>div{flex:190px}.student-portal-metrics,.student-portal-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.student-portal-metrics .stat-card,.student-portal-details>div{border-radius:16px;min-width:0;padding:12px}.student-portal-metrics .stat-card span{font-size:.84rem;line-height:1.25}.student-portal-details span{font-size:.76rem;line-height:1.25}.student-portal-metrics .stat-card strong,.student-portal-metrics .stat-card-subvalue{overflow-wrap:anywhere;font-size:1.08rem;line-height:1.2}.student-portal-details strong{overflow-wrap:anywhere;font-size:.92rem;line-height:1.2}.hero-card,.topbar,.section-heading,.chart-shell,.filters-bar,.form-columns,.staff-directory-card,.student-card-head,.student-head-actions,.date-range{flex-direction:column}.staff-directory-meta{justify-items:start}.staff-directory-actions{justify-content:flex-start}.staff-directory-password{text-align:left}.settings-staff-grid{gap:12px}.settings-staff-grid>.panel-nested,.staff-directory{border-radius:18px;padding:12px}.settings-staff-grid .crm-form{gap:10px}.settings-staff-grid .crm-form p{margin:0;font-size:.78rem;line-height:1.35}.settings-staff-grid .form-columns{gap:10px;width:100%}.settings-staff-grid .form-columns>label{gap:5px;width:100%;font-size:.78rem}.settings-staff-grid .crm-form input,.settings-staff-grid .crm-form select{border-radius:12px;min-height:38px;padding:9px 10px;font-size:.86rem}.settings-staff-grid .crm-form .primary-button{border-radius:12px;justify-content:center;width:100%;min-height:40px;padding:10px 12px;font-size:.86rem}.staff-directory .section-heading{flex-direction:row;align-items:center;gap:10px}.staff-directory .section-heading h3{font-size:1rem}.staff-directory .status-pill{padding:7px 10px;font-size:.76rem;line-height:1.1}.staff-directory-list{gap:10px}.staff-directory-card{border-radius:16px;grid-template-columns:1fr;align-items:start;gap:10px;padding:14px;display:grid}.staff-directory-card strong{font-size:.96rem;line-height:1.18}.staff-directory-card p{margin-top:3px;font-size:.78rem;line-height:1.3}.staff-directory-meta{justify-items:stretch;gap:8px;width:100%}.staff-directory-category-row{justify-content:space-between;gap:8px;width:100%}.staff-settings-button{border-radius:11px;width:34px;min-width:34px;height:34px}.staff-directory-password{font-size:.76rem;line-height:1.3}.staff-directory-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.staff-directory-actions .ghost-button{border-radius:12px;justify-content:center;width:100%;min-height:38px;padding:8px;font-size:.78rem;line-height:1.15}.student-search-panel{border-radius:18px;padding:12px}.modal-card-lesson{border-radius:20px;width:calc(100vw - 40px);padding:14px}.modal-card-substitution,.modal-card-payment{border-radius:20px;width:calc(100vw - 52px);padding:14px}.modal-backdrop:has(.modal-card-teacher){place-items:center;padding:12px;display:grid;overflow-y:auto}.modal-card-teacher{border-radius:18px;place-self:center;width:min(358px,100vw - 24px);max-height:calc(100dvh - 24px);margin:auto;padding:12px;overflow-y:auto}.modal-card-teacher .section-heading{flex-direction:row;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.modal-card-teacher .section-heading h3{font-size:1rem;line-height:1.15}.modal-card-teacher .section-heading p{margin-top:3px;font-size:.72rem;line-height:1.25}.modal-card-teacher .crm-form{gap:10px}.modal-card-teacher .form-columns{gap:8px}.modal-card-teacher .teacher-contact-fields{grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);display:grid}.modal-card-teacher .teacher-rate-fields{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.modal-card-teacher .crm-form label{gap:5px;font-size:.78rem}.modal-card-teacher .crm-form input,.modal-card-teacher .crm-form select{border-radius:11px;min-height:36px;padding:8px 10px;font-size:.84rem}.modal-card-teacher .panel-nested{border-radius:14px;padding:10px}.modal-card-teacher .panel-nested .section-heading{margin-bottom:6px}.modal-card-teacher .panel-nested .section-heading h3{font-size:.88rem}.modal-card-teacher .panel-nested .section-heading p{font-size:.68rem}.modal-card-teacher .primary-button{border-radius:12px;justify-content:center;width:100%;min-height:38px;padding:9px 12px;font-size:.84rem}.modal-backdrop:has(.modal-card-attendance){place-items:center;padding:12px;display:grid;overflow-y:auto}.modal-card-attendance{border-radius:18px;place-self:center;width:min(342px,100vw - 24px);max-height:calc(100dvh - 24px);margin:auto;padding:12px;overflow-y:auto}.modal-card-attendance .section-heading{flex-direction:row;justify-content:space-between;align-items:center;gap:10px;width:100%;margin-bottom:8px}.modal-card-attendance .section-heading h3{font-size:.98rem;line-height:1.15}.modal-card-attendance .attendance-modal-name{margin-top:3px;font-size:.82rem;line-height:1.2}.modal-card-attendance .crm-form{gap:9px;width:100%}.modal-card-attendance .attendance-picker{border-radius:12px;gap:4px;width:100%;padding:6px}.modal-card-attendance .attendance-picker-head{gap:6px}.modal-card-attendance .attendance-picker-head strong{text-align:center;font-size:.74rem;line-height:1.15}.modal-card-attendance .attendance-picker-head .icon-button{border-radius:9px;width:26px;min-width:26px;height:26px}.modal-card-attendance .attendance-picker-head .icon-button span{font-size:.94rem}.modal-card-attendance .attendance-weekdays,.modal-card-attendance .attendance-calendar{gap:3px}.modal-card-attendance .attendance-weekdays span{font-size:.5rem}.modal-card-attendance .attendance-day{border-radius:6px;font-size:.6rem}.modal-card-attendance .attendance-day small{min-width:9px;height:9px;font-size:.38rem;bottom:2px;right:2px}.modal-card-attendance .panel-nested{border-radius:12px;padding:8px 10px}.modal-card-attendance .panel-nested h4{margin:0;font-size:.78rem;line-height:1.2}.modal-card-attendance .empty-state-text{font-size:.72rem;line-height:1.3}.modal-card-attendance .attendance-status-field legend{margin-bottom:6px;font-size:.72rem}.modal-card-attendance .attendance-status-field .chip-grid,.modal-card-attendance .attendance-actions{gap:7px}.modal-card-attendance .attendance-status-field .chip,.modal-card-attendance .attendance-actions button{border-radius:10px;min-height:34px;padding:7px;font-size:.74rem;line-height:1.12}.modal-backdrop:has(.modal-card-staff-settings){place-items:center;padding:16px;display:grid;overflow-y:auto}.modal-card-staff-settings{border-radius:20px;place-self:center;width:min(360px,100vw - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:14px;overflow-y:auto}.modal-card-staff-settings .section-heading{flex-direction:row;align-items:center;gap:10px}.modal-card-staff-settings .section-heading h3{font-size:1rem}.modal-card-staff-settings .section-heading p{font-size:.78rem}.modal-card-staff-settings .crm-form{gap:10px}.modal-card-staff-settings .crm-form label{gap:5px;font-size:.78rem}.modal-card-staff-settings .crm-form input,.modal-card-staff-settings .crm-form select{border-radius:12px;min-height:38px;padding:9px 10px;font-size:.86rem}.modal-card-staff-settings .card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.modal-card-staff-settings .card-actions button{border-radius:12px;justify-content:center;width:100%;min-height:38px;padding:8px;font-size:.82rem}.modal-card-payment .section-heading{margin-inline:0;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;width:100%;margin-bottom:8px}.modal-card-payment .section-heading h3{font-size:1rem}.modal-card-payment .payment-modal-name{font-size:.82rem;line-height:1.2}.payment-form{gap:10px;width:276px}.payment-form label,.payment-calendar-field,.payment-note-field{gap:6px;font-size:.78rem}.payment-form>label,.payment-calendar-field,.payment-note-field{justify-self:center;width:276px;max-width:100%}.payment-form input,.payment-form select,.payment-form textarea,.payment-form .searchable-select-trigger,.payment-form .searchable-select-search{border-radius:12px;padding:9px 10px;font-size:.82rem}.payment-form .attendance-picker{border-radius:12px;gap:5px;width:276px;padding:6px}.payment-form .attendance-picker-head{gap:6px}.payment-form .attendance-picker-head strong{font-size:.72rem}.payment-form .attendance-picker-head .icon-button{border-radius:10px;width:24px;min-width:24px;height:24px}.payment-form .attendance-picker-head .icon-button span{font-size:.92rem}.payment-form .attendance-weekdays,.payment-form .attendance-calendar{gap:3px}.payment-form .attendance-weekdays span{font-size:.52rem}.payment-form .attendance-day{border-radius:6px;font-size:.64rem}.payment-note-preview{font-size:.78rem}.modal-card-substitution .section-heading{margin-inline:0;flex-direction:row;justify-content:space-between;align-items:center;gap:10px;width:100%;margin-bottom:8px}.modal-card-substitution .section-heading h3{font-size:1rem}.modal-card-substitution .section-heading p{font-size:.74rem}.substitution-form{gap:10px}.substitution-form label,.substitution-form .searchable-select,.substitution-form .attendance-picker{font-size:.78rem}.substitution-form .substitution-compact-field,.substitution-form .searchable-select.substitution-compact-field{justify-self:center;width:276px;max-width:100%}.substitution-form input,.substitution-form select,.substitution-form textarea,.substitution-form .searchable-select-trigger,.substitution-form .searchable-select-search{border-radius:14px;padding:10px 11px;font-size:.86rem}.substitution-form .attendance-picker{border-radius:12px;gap:5px;width:276px;padding:6px}.substitution-form .attendance-picker-head{gap:6px}.substitution-form .attendance-picker-head strong{font-size:.72rem}.substitution-form .attendance-picker-head .icon-button{border-radius:10px;width:24px;min-width:24px;height:24px}.substitution-form .attendance-picker-head .icon-button span{font-size:.92rem}.substitution-form .attendance-weekdays,.substitution-form .attendance-calendar{gap:3px}.substitution-form .attendance-weekdays span{font-size:.52rem}.substitution-form .attendance-day{border-radius:6px;font-size:.64rem}.modal-card-lesson .section-heading{flex-direction:row;justify-content:space-between;align-items:center;gap:12px}.lesson-form{gap:10px}.lesson-form .section-heading h3,.modal-card-lesson .section-heading h3{font-size:1.05rem}.lesson-form .section-heading p,.modal-card-lesson .section-heading p{font-size:.78rem}.lesson-form label{gap:6px;font-size:.78rem}.lesson-form input,.lesson-form select,.lesson-form textarea,.lesson-form .searchable-select-trigger,.lesson-form .searchable-select-search{border-radius:14px;padding:10px 11px;font-size:.86rem}.lesson-form textarea{min-height:78px}.lesson-form-row.lesson-form-row-compact{flex-direction:row;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.student-search-panel .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px;display:grid}.student-search-panel .search-field{grid-column:1/-1}.student-search-panel .balance-indicator,.student-search-panel .filters-bar label:not(.search-field){grid-column:span 1}.student-search-panel .filters-bar label,.student-search-panel .filters-bar .searchable-select{gap:5px;min-width:0;font-size:.78rem}.student-search-panel .filters-bar input,.student-search-panel .filters-bar select,.student-search-panel .filters-bar .searchable-select-trigger,.student-search-panel .filters-bar .searchable-select-search{border-radius:12px;min-height:38px;padding:9px 10px;font-size:.86rem}.student-search-panel .balance-indicator{border-radius:14px;min-width:0;padding:10px 12px}.student-search-panel .balance-indicator span{margin-bottom:4px;font-size:.74rem}.student-search-panel .balance-indicator strong{font-size:.95rem}.student-search-panel .filters-bar button{white-space:nowrap;border-radius:12px;justify-content:center;width:100%;min-height:38px;padding:10px 8px;font-size:.78rem}.student-search-panel .filters-bar .search-clear-button{border-radius:0;justify-content:center;width:20px;height:20px;min-height:20px;padding:0;right:4px}.page-stack>.panel:has(+.journal-list) .filters-bar .search-clear-button{border-radius:0;justify-content:center;width:20px;height:20px;min-height:20px;padding:0;right:4px}.modal-backdrop-student{padding:8px}.modal-card-student{border-radius:14px;width:min(380px,100vw - 16px);padding:7px;font-size:.58rem;transform:none}.modal-card-student .section-heading{flex-direction:row;align-items:flex-start;gap:7px}.modal-card-student .section-heading h3{font-size:.66rem}.modal-card-student .section-heading p{font-size:.5rem}.modal-card-student .form-columns{flex-direction:row;align-items:flex-start;gap:6px}.modal-card-student .student-form-layout{border-radius:11px;grid-template-columns:minmax(142px,1fr) minmax(166px,1fr);gap:7px;width:100%;padding:6px}.modal-card-student .student-assignment-row{grid-template-columns:minmax(106px,1.45fr) minmax(78px,1fr) minmax(62px,.9fr) minmax(36px,.45fr);gap:6px}.modal-card-student .student-phone-input{width:106px!important}.modal-card-student .student-form-inline-fields,.modal-card-student .student-form-actions{gap:4px}.modal-card-student .crm-form,.modal-card-student .student-form-column{gap:5px}.modal-card-student .crm-form label,.modal-card-student .student-start-date-field,.modal-card-student legend{gap:3px;font-size:.52rem}.modal-card-student .crm-form input,.modal-card-student .crm-form select,.modal-card-student .crm-form textarea,.modal-card-student .crm-form .searchable-select-trigger,.modal-card-student .crm-form .searchable-select-search,.modal-card-student .form-derived-value{border-radius:8px;min-height:24px;padding:5px 6px;font-size:.55rem}.modal-card-student .crm-form textarea{height:40px;min-height:40px}.modal-card-student .student-status-switch{gap:4px;min-height:24px;padding:2px 5px}.modal-card-student .student-status-switch-label{font-size:.51rem}.modal-card-student .student-status-switch-track{width:29px;height:17px;padding:3px}.modal-card-student .student-status-switch-thumb{width:10px;height:10px;transform:translate(13px)}.modal-card-student .student-start-date-summary{gap:3px;font-size:.48rem;line-height:1.35}.modal-card-student .attendance-picker{border-radius:10px;gap:3px;width:166px;padding:4px}.modal-card-student .attendance-picker-head{gap:6px}.modal-card-student .attendance-picker-head strong{font-size:.55rem}.modal-card-student .attendance-picker-head .icon-button{width:20px;min-width:20px;height:20px}.modal-card-student .attendance-picker-head .icon-button span{font-size:.66rem}.modal-card-student .attendance-weekdays,.modal-card-student .attendance-calendar{gap:2px}.modal-card-student .attendance-weekdays span{font-size:.42rem}.modal-card-student .attendance-day{border-radius:5px;font-size:.46rem}.modal-card-student .attendance-day small{min-width:8px;height:8px;font-size:.38rem;bottom:2px;right:3px}.modal-card-student .chip-grid{gap:4px}.modal-card-student .chip,.modal-card-student .primary-button,.modal-card-student .ghost-button{border-radius:8px;min-height:24px;padding:5px 8px;font-size:.55rem}.student-table-header{display:none}.student-list-card{background:var(--bg-card);border-radius:18px;padding:14px}.student-list-row{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:8px;display:grid}.student-title,.student-head-actions{grid-column:1/-1}.student-metrics.compact>div:first-child,.student-metrics.compact>div:nth-child(2),.student-metrics.compact>.student-next-payment-metric,.student-metrics.compact>div:nth-child(4){grid-column:span 1}.student-title h3{font-size:1rem;line-height:1.15}.student-title p{margin-top:4px;font-size:.78rem}.student-metrics.compact>div{background:var(--bg-soft);border-color:var(--border);border-radius:14px;place-items:center;min-width:0;padding:9px 10px}.student-metrics.compact strong,.student-metrics.compact>div:nth-child(-n+3) strong,.student-metrics.compact>div.student-next-payment-metric strong,.student-metrics.compact>div.student-next-payment-metric .student-metric-subvalue{font-size:.9rem}.student-metrics.compact>div:nth-child(4) strong{font-size:.78rem;line-height:1.15}.student-metrics.compact span{font-size:.74rem}.student-metrics.compact>.metrics-tail{display:none}.metrics-tail span{font-size:.78rem}.student-head-actions{grid-template-columns:minmax(0,1fr) 44px 44px;justify-self:stretch;gap:8px;min-width:0;display:grid}.student-payment-button{grid-area:auto/1;justify-content:center;align-items:center;width:100%;height:40px;min-height:40px;padding-block:0;line-height:1;display:flex}.student-head-actions>.icon-button{grid-area:auto/2}.student-head-actions .icon-button,.student-head-actions .menu-trigger{border-radius:14px;width:100%;min-width:0;height:40px}.student-menu-wrap{grid-area:auto/3}.student-menu-dropdown{min-width:min(220px,100vw - 56px);left:auto;right:0}.student-card-menu-dropdown{min-width:min(190px,100vw - 72px);top:50%;left:auto;right:calc(100% + 8px);transform:translateY(calc(30px - 100%))}.student-note{margin-top:10px;font-size:.82rem}.journal-card{flex-direction:row;align-items:center}.journal-card-main{gap:14px}.journal-card-avatar{border-radius:15px;width:48px;height:48px}.journal-card-avatar-core{border-radius:11px;width:32px;height:32px}.journal-card-avatar-core svg{stroke-width:2.4px;width:16px;height:16px}.journal-card-title{font-size:1rem}.journal-card-subtitle{font-size:.78rem}.journal-meta{gap:10px}.journal-meta strong{font-size:1rem}.journal-card{gap:12px;padding:14px}.modal-backdrop:has(.modal-card-journal-transaction){place-items:center;padding:12px}.modal-card-journal-transaction{box-sizing:border-box;border-radius:20px;width:min(100%,100vw - 24px);max-height:calc(100dvh - 24px);margin-inline:auto;padding:14px;overflow-y:auto}.journal-transaction-modal-close{margin-bottom:0}.journal-transaction-modal-top{text-align:center;grid-template-columns:minmax(0,1fr);place-items:center;gap:12px}.journal-transaction-modal-top .journal-card-avatar{border-radius:19px;width:64px;height:64px}.journal-transaction-modal-top .journal-card-avatar-core{border-radius:13px;width:40px;height:40px}.journal-transaction-modal-top .journal-card-avatar-core svg{stroke-width:2.3px;width:18px;height:18px}.journal-transaction-modal-copy{min-width:0}.journal-transaction-modal-copy h3{font-size:1.48rem;line-height:1.15}.journal-transaction-modal-copy p{margin-top:7px;font-size:.88rem;line-height:1.3}.journal-transaction-modal-top strong{grid-column:auto;justify-self:center;font-size:1.74rem}.journal-transaction-modal-details{border-radius:16px;margin-top:14px}.journal-transaction-modal-row{grid-template-columns:1fr;gap:4px;padding:11px 12px}.journal-transaction-modal-row span{font-size:.76rem}.journal-transaction-modal-row strong{text-align:left;overflow-wrap:anywhere;font-size:.86rem}.journal-transaction-delete-button{border-radius:13px;width:100%;margin-top:12px;padding:11px 14px;font-size:.88rem}.content-area{padding:76px 14px 14px}.sidebar{padding:18px}.student-cards,.teacher-grid,.schedule-grid,.problem-list{grid-template-columns:1fr}.day-column-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:0;display:flex}.day-column-header-indicator{border:1px solid var(--border);background:var(--bg-surface);width:32px;height:32px;color:var(--text-main);border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;display:inline-flex}.day-column-open .day-column-header{margin-bottom:14px}.day-stack.day-stack-mobile-collapsed{display:none}.dashboard-layout>.dashboard-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card{border-radius:18px;min-height:138px;padding:14px}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card-title{gap:10px}.dashboard-layout>.dashboard-stats-grid .stat-icon{border-radius:12px;width:38px;height:38px}.dashboard-layout>.dashboard-stats-grid .stat-icon svg{stroke-width:1.9px;width:18px;height:18px}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card-title span{font-size:.76rem}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card strong{font-size:1rem;line-height:1.15}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card-delta{font-size:.82rem}.dashboard-layout>.dashboard-stats-grid .dashboard-stat-card-caption{font-size:.72rem}.teacher-rates{flex-direction:column}.chart-shell,.problem-card{flex-direction:column;grid-template-columns:1fr;align-items:flex-start}.problem-list{gap:10px;max-height:none;padding-right:0;overflow:visible}.problem-list.problem-list-mobile-collapsed .problem-card:nth-child(n+5),.recent-transactions-list.recent-transactions-list-mobile-collapsed .list-row:nth-child(n+5){display:none}.recent-transaction-card{align-items:center;gap:12px;padding:14px}.recent-transaction-top{flex:auto;min-width:0}.recent-transaction-top strong{margin-bottom:3px;font-size:.98rem;line-height:1.25}.recent-transaction-top p{font-size:.82rem}.recent-transaction-card .list-meta{white-space:nowrap;flex:none;gap:8px;width:auto;font-size:.82rem}.dashboard-teacher-filter,.dashboard-teacher-filter .searchable-select{width:100%;max-width:none}.dashboard-teacher-lesson-button{grid-template-columns:1fr}.dashboard-teacher-summary,.dashboard-teacher-lesson-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-teacher-lessons{max-height:none;padding-right:0;overflow:visible}.dashboard-teacher-lesson-button{gap:12px}.problem-card{flex-direction:row;justify-content:space-between;align-items:center;gap:12px;width:100%;height:auto;padding:14px}.problem-card-top{flex:auto;min-width:0}.problem-card-top strong{margin-bottom:3px;font-size:.98rem;line-height:1.25}.problem-card-top p{font-size:.82rem}.problem-card-meta{white-space:nowrap;border-top:0;flex-direction:column;flex:none;justify-content:center;align-items:flex-end;gap:4px;width:auto;padding-top:0;font-size:.82rem}.problem-card-meta .negative{text-align:right;order:0;margin-left:0}.problem-list-toggle,.recent-transactions-toggle{justify-content:center;width:100%;margin-top:2px;display:inline-flex}.chart-card .chart-shell{--chart-plot-height:210px;--chart-plot-pad-top:10px;--chart-plot-pad-bottom:10px;grid-template-columns:60px minmax(0,1fr);align-items:stretch;gap:10px}.chart-card .trend-chart{border-radius:22px;padding-inline:10px}.chart-card .chart-y-axis{font-size:.72rem}.chart-card .chart-main{gap:8px}.chart-card .chart-x-axis{gap:6px;padding-inline:2px;font-size:.7rem}.schedule-week-picker,.schedule-week-picker label{width:100%}}@media (width>=1200px) and (width<=1500px){.teacher-portal-shell{width:min(1180px,100vw - 48px)}.teacher-portal-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.teacher-portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=761px) and (width<=1199px){.teacher-portal-shell{width:min(920px,100vw - 36px)}.teacher-portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-portal-grid{grid-template-columns:1fr}.teacher-portal-shell .student-portal-topbar,.teacher-portal-shell .student-portal-hero{align-items:flex-start}.teacher-portal-shell .student-portal-schedule-picker{width:min(360px,100%)}.teacher-week-picker{grid-template-columns:44px minmax(180px,1fr) max-content 44px}}@media (width<=760px){.teacher-portal-shell{gap:12px;width:calc(100vw - 24px);margin-block:12px 18px}.teacher-portal-shell *{min-width:0}.teacher-portal-shell .student-portal-topbar,.teacher-portal-shell .student-portal-hero{border-radius:20px;gap:12px;padding:16px}.teacher-portal-shell .student-portal-hero h2{font-size:1.35rem;line-height:1.16}.teacher-portal-shell .student-portal-hero p{font-size:.84rem;line-height:1.35}.teacher-portal-shell .student-portal-hero-meta{gap:8px}.teacher-portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.teacher-portal-metrics .stat-card{min-height:92px;padding:14px}.teacher-portal-metrics .stat-card strong{font-size:.95rem;line-height:1.16}.teacher-portal-grid{grid-template-columns:1fr;gap:12px}.teacher-portal-shell .student-portal-section{border-radius:18px;gap:14px;padding:14px}.teacher-portal-shell .section-heading{gap:6px}.teacher-portal-shell .section-heading h3{font-size:1rem;line-height:1.2}.teacher-portal-shell .section-heading p{font-size:.78rem;line-height:1.35}.teacher-portal-graph-section>.section-heading .badge{margin-inline:auto}.teacher-portal-shell .student-portal-schedule-picker{border-radius:14px;width:100%;padding:8px}.teacher-portal-shell .attendance-picker-head{grid-template-columns:34px minmax(0,1fr) 34px;gap:8px}.teacher-portal-shell .attendance-picker-head strong{text-align:center;font-size:.86rem}.teacher-portal-shell .attendance-picker-head .icon-button{border-radius:12px;width:34px;min-width:34px;height:34px;padding:0}.teacher-portal-shell .attendance-weekdays,.teacher-portal-shell .attendance-calendar{gap:4px}.teacher-portal-shell .attendance-weekdays span{font-size:.62rem}.teacher-portal-shell .attendance-day{border-radius:8px;font-size:.72rem}.teacher-portal-shell .attendance-day small{min-width:12px;height:12px;font-size:.5rem;bottom:2px;right:2px}.teacher-week-picker{grid-template-columns:42px minmax(0,1fr) 42px;gap:8px}.teacher-week-nav-prev{grid-area:1/1}.teacher-week-date-button{grid-area:1/2;min-height:42px;padding:0 12px}.teacher-week-nav-next{grid-area:1/3}.teacher-week-today-button{grid-area:2/1/auto/-1;min-height:42px}.teacher-week-popover{width:100%;left:0}.teacher-schedule-day,.teacher-schedule-lesson,.teacher-salary-period,.teacher-salary-day,.teacher-salary-lesson,.teacher-salary-adjustment{border-radius:14px}.teacher-schedule-toggle{gap:10px}.teacher-schedule-lesson-toggle{grid-template-columns:32px minmax(0,1fr);gap:10px}.teacher-salary-lesson-toggle{grid-template-columns:32px minmax(0,1fr) max-content;gap:10px}.teacher-salary-toggle,.teacher-salary-day-toggle{grid-template-columns:minmax(0,1fr) max-content;gap:10px}.teacher-salary-toggle .teacher-schedule-caret,.teacher-salary-day-toggle .teacher-schedule-caret,.teacher-salary-lesson-toggle .teacher-schedule-caret{display:none}.teacher-salary-total{justify-self:end}.teacher-salary-lesson-amount{grid-column:3;justify-self:end}.teacher-salary-adjustment{grid-template-columns:minmax(0,1fr) max-content;gap:12px}.teacher-salary-adjustment-amount{justify-self:end}.teacher-salary-students{padding-left:42px}}@media (width<=520px){.attendance-card{grid-template-columns:1fr;align-items:stretch;gap:12px;padding:16px}.attendance-card-title-row{flex-wrap:wrap}.attendance-card-title-row .badge{max-width:100%}.attendance-card-meta{grid-template-columns:minmax(0,1fr) 38px;justify-self:stretch;justify-items:end;width:100%}.attendance-card-meta-has-rollback{grid-template-columns:minmax(0,1fr) repeat(2,38px)}.attendance-card:not(.attendance-card-pending) .attendance-card-meta{column-gap:14px}.attendance-card:not(.attendance-card-pending) .attendance-card-meta .icon-button:last-child{margin-left:6px}.attendance-card-pending .attendance-card-meta{justify-content:flex-end;justify-self:stretch;width:100%;display:flex}.attendance-card-meta strong{justify-self:start}.attendance-card-actions{grid-template-columns:repeat(2,minmax(96px,max-content));justify-self:end;width:auto}.attendance-card-actions button{min-width:0;padding-inline:8px}}@media (width<=430px){.student-portal-shell{width:calc(100vw - 16px);margin-top:8px}.student-portal-topbar,.student-portal-hero{border-radius:20px;padding:14px}.student-portal-section{gap:12px}.student-portal-metrics,.student-portal-details{gap:8px}.student-portal-metrics .stat-card,.student-portal-details>div{border-radius:14px;padding:10px}.student-portal-metrics .stat-card span{font-size:.8rem}.student-portal-details span{font-size:.7rem}.student-portal-metrics .stat-card strong,.student-portal-metrics .stat-card-subvalue{font-size:1rem;line-height:1.18}.student-portal-details strong{font-size:.82rem}.teacher-schedule-student{grid-template-columns:8px minmax(0,1fr) max-content;gap:8px}.teacher-schedule-student-status{font-size:.7rem}.attendance-card-pending .attendance-card-meta{gap:6px}.attendance-card-pending .attendance-card-actions{grid-template-columns:repeat(2,minmax(86px,max-content));gap:6px}.attendance-card-pending .attendance-card-actions button{min-height:36px;padding-inline:7px;font-size:.72rem}.teacher-portal-metrics{grid-template-columns:1fr}.teacher-week-picker{grid-template-columns:40px minmax(0,1fr) 40px}.teacher-week-nav-button,.teacher-week-date-button,.teacher-week-today-button{border-radius:14px;min-height:40px;font-size:.88rem}.teacher-week-date-button{gap:10px;padding:0 10px}.teacher-portal-shell .attendance-day{font-size:.66rem}.student-portal-calendar-lessons article,.teacher-week-calendar-lessons article{grid-template-columns:46px minmax(0,1fr);padding:8px}.teacher-schedule-lesson-title{font-size:.92rem}.teacher-schedule-toggle small,.teacher-schedule-student span,.teacher-salary-lesson-copy small,.teacher-salary-lesson-copy>span{font-size:.76rem}}@media (width<=760px){.teacher-portal-graph-section .student-portal-schedule-picker{border-radius:16px;width:320px;max-width:100%;padding:10px}.teacher-portal-graph-section .attendance-picker-head{gap:12px}.teacher-portal-graph-section .attendance-picker-head strong{font-size:inherit}.teacher-portal-graph-section .attendance-picker-head .icon-button{width:38px;min-width:38px;height:38px;padding:9px}.teacher-portal-graph-section .attendance-weekdays,.teacher-portal-graph-section .attendance-calendar{gap:5px}.teacher-portal-graph-section .attendance-weekdays span{font-size:.74rem}.teacher-portal-graph-section .attendance-day{border-radius:8px;font-size:.82rem}.teacher-portal-graph-section .attendance-day small{min-width:14px;height:14px;font-size:.62rem;bottom:3px;right:4px}.portal-topbar{flex-direction:row;align-items:center;min-height:58px;padding:12px 14px 12px 12px}.portal-topbar-logo{width:min(170px,100vw - 92px)}.portal-menu-popover{width:min(300px,100vw - 32px)}.portal-settings-grid,.portal-password-management-actions{grid-template-columns:1fr}}@media (width<=430px){.portal-topbar-logo{width:min(150px,100vw - 86px)}.portal-menu-trigger{width:40px;height:40px;padding:8px}.portal-password-actions{grid-template-columns:1fr;display:grid}.portal-password-actions button{width:100%}}
