: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;--button-hover-bg:#23c7a429;--button-hover-border:#23c7a452;--button-active-bg:#23c7a438;--button-active-border:#23c7a46b;--button-active-text:#dcfff5;--regular-button-accent:#23c7a4;--button-hover-danger-bg:#ff818124;--button-hover-danger-border:#ff81814d;--primary-button-bg:linear-gradient(135deg, #3478ff 0%, #8b5cf6 100%);--primary-button-hover-bg:linear-gradient(135deg, #4f8cff 0%, #9b72ff 100%);--primary-button-shadow:#5372ff38;--primary-button-hover-shadow:#5372ff52;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;--button-hover-bg:#1ac6a421;--button-hover-border:#1ac6a447;--button-active-bg:#1ac6a42b;--button-active-border:#1ac6a457;--button-active-text:#047857;--regular-button-accent:#1ac6a4;--button-hover-danger-bg:#d85b5b1c;--button-hover-danger-border:#d85b5b3d;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%)}.primary-button-tone-green{--primary-button-bg:linear-gradient(135deg, #12b981 0%, #22c55e 100%);--primary-button-hover-bg:linear-gradient(135deg, #20c997 0%, #3ed66d 100%);--primary-button-shadow:#22c55e38;--primary-button-hover-shadow:#22c55e52}.primary-button-tone-purple{--primary-button-bg:linear-gradient(135deg, #7c3aed 0%, #c026d3 100%);--primary-button-hover-bg:linear-gradient(135deg, #8b5cf6 0%, #d946ef 100%);--primary-button-shadow:#a855f73b;--primary-button-hover-shadow:#a855f757}.primary-button-tone-rose{--primary-button-bg:linear-gradient(135deg, #f43f5e 0%, #ec4899 100%);--primary-button-hover-bg:linear-gradient(135deg, #fb7185 0%, #f472b6 100%);--primary-button-shadow:#f43f5e38;--primary-button-hover-shadow:#f43f5e54}.primary-button-tone-orange{--primary-button-bg:linear-gradient(135deg, #f97316 0%, #f59e0b 100%);--primary-button-hover-bg:linear-gradient(135deg, #fb923c 0%, #fbbf24 100%);--primary-button-shadow:#f9731638;--primary-button-hover-shadow:#f9731657}.primary-button-tone-cyan{--primary-button-bg:linear-gradient(135deg, #06b6d4 0%, #3b82f6 100%);--primary-button-hover-bg:linear-gradient(135deg, #22d3ee 0%, #60a5fa 100%);--primary-button-shadow:#06b6d438;--primary-button-hover-shadow:#06b6d457}.primary-button-tone-indigo{--primary-button-bg:linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);--primary-button-hover-bg:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--primary-button-shadow:#4f46e53b;--primary-button-hover-shadow:#4f46e557}.primary-button-tone-red{--primary-button-bg:linear-gradient(135deg, #ef4444 0%, #f97316 100%);--primary-button-hover-bg:linear-gradient(135deg, #f87171 0%, #fb923c 100%);--primary-button-shadow:#ef444438;--primary-button-hover-shadow:#ef444454}.primary-button-tone-gold{--primary-button-bg:linear-gradient(135deg, #eab308 0%, #f59e0b 100%);--primary-button-hover-bg:linear-gradient(135deg, #facc15 0%, #fbbf24 100%);--primary-button-shadow:#eab30838;--primary-button-hover-shadow:#eab30857}.primary-button-tone-slate{--primary-button-bg:linear-gradient(135deg, #475569 0%, #64748b 100%);--primary-button-hover-bg:linear-gradient(135deg, #64748b 0%, #94a3b8 100%);--primary-button-shadow:#4755693d;--primary-button-hover-shadow:#47556957}.regular-button-tone-blue{--regular-button-accent:#4f8cff;--button-hover-bg:#4f8cff26;--button-hover-border:#4f8cff52;--button-active-bg:#4f8cff38;--button-active-border:#4f8cff75;--button-active-text:#e6efff}.regular-button-tone-green{--regular-button-accent:#23c7a4;--button-hover-bg:#23c7a429;--button-hover-border:#23c7a452;--button-active-bg:#23c7a438;--button-active-border:#23c7a46b;--button-active-text:#dcfff5}.regular-button-tone-purple{--regular-button-accent:#a855f7;--button-hover-bg:#a855f726;--button-hover-border:#a855f752;--button-active-bg:#a855f738;--button-active-border:#a855f770;--button-active-text:#f3e8ff}.regular-button-tone-rose{--regular-button-accent:#f43f5e;--button-hover-bg:#f43f5e24;--button-hover-border:#f43f5e4f;--button-active-bg:#f43f5e36;--button-active-border:#f43f5e6e;--button-active-text:#ffe4ea}.regular-button-tone-orange{--regular-button-accent:#f97316;--button-hover-bg:#f9731626;--button-hover-border:#f9731652;--button-active-bg:#f9731638;--button-active-border:#f9731673;--button-active-text:#fff1df}.regular-button-tone-cyan{--regular-button-accent:#06b6d4;--button-hover-bg:#06b6d426;--button-hover-border:#06b6d452;--button-active-bg:#06b6d438;--button-active-border:#06b6d470;--button-active-text:#ddfbff}.regular-button-tone-indigo{--regular-button-accent:#6366f1;--button-hover-bg:#6366f126;--button-hover-border:#6366f154;--button-active-bg:#6366f138;--button-active-border:#6366f173;--button-active-text:#e8eaff}.regular-button-tone-red{--regular-button-accent:#ef4444;--button-hover-bg:#ef444424;--button-hover-border:#ef44444f;--button-active-bg:#ef444436;--button-active-border:#ef44446e;--button-active-text:#ffe2e2}.regular-button-tone-gold{--regular-button-accent:#eab308;--button-hover-bg:#eab30826;--button-hover-border:#eab30857;--button-active-bg:#eab3083b;--button-active-border:#eab30875;--button-active-text:#fff6cc}.regular-button-tone-slate{--regular-button-accent:#94a3b8;--button-hover-bg:#94a3b824;--button-hover-border:#94a3b84d;--button-active-bg:#94a3b833;--button-active-border:#94a3b866;--button-active-text:#f1f5f9}.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}.password-strength{color:var(--text-muted);gap:7px;margin-top:-6px;font-size:.84rem;line-height:1.35;display:grid}.password-strength-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.password-strength-heading strong{color:var(--text-main);font-size:.86rem}.password-strength-track{background:color-mix(in srgb, var(--border) 55%, transparent);border-radius:999px;height:7px;overflow:hidden}.password-strength-fill{border-radius:inherit;background:#94a3b8;height:100%;transition:width .18s,background-color .18s;display:block}.password-strength-weak .password-strength-heading strong{color:#fb7185}.password-strength-weak .password-strength-fill{background:#fb7185}.password-strength-medium .password-strength-heading strong{color:#f59e0b}.password-strength-medium .password-strength-fill{background:#f59e0b}.password-strength-strong .password-strength-heading strong{color:#34d399}.password-strength-strong .password-strength-fill{background:#34d399}.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}.auth-choice-logout{min-width:132px;color:var(--danger);text-align:center;justify-self:center}.auth-choice-logout:hover,.auth-choice-logout:focus-visible{color:var(--danger)}.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}.modal-backdrop.portal-password-backdrop{z-index:3000;width:100vw;min-height:100dvh;padding:24px;position:fixed;inset:0}.portal-password-modal{gap:18px;display:grid}.portal-password-modal .section-heading{align-items:flex-start}.portal-password-modal .section-heading h3,.portal-password-modal .section-heading p{margin:0}.portal-password-form{gap:16px;width:100%}.portal-password-actions{grid-template-columns:minmax(0,1fr) minmax(110px,.34fr);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-settings-password-card-compact{justify-self:stretch;gap:12px;width:100%;padding:16px}.portal-password-card-heading{align-items:flex-start;gap:4px}.portal-password-card-heading h3{color:var(--text-main);margin:0;font-size:1.05rem;line-height:1.2}.portal-password-card-heading p{color:#d7e4f7;margin:4px 0 0;font-size:.85rem}.portal-settings-password-card-compact .portal-password-management-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.portal-settings-password-card-compact .portal-password-management-actions button{white-space:nowrap;width:100%;min-width:0;min-height:38px;padding-inline:10px}.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-lesson-row{cursor:pointer}.student-portal-schedule-lesson-row.static{cursor:default}.student-portal-schedule-picker{justify-self:center}.student-portal-week-picker{width:100%}.student-portal-stack{align-content:start;align-items:start;gap:10px;display:grid}.student-portal-schedule-details{color:var(--text-muted);gap:6px;padding:2px 0 0 42px;font-size:.82rem;display:grid}.ghost-button.student-portal-absence-toggle{color:#ff9b9b;white-space:nowrap;background:#f871711a;border-color:#f871715c;border-radius:6px;place-self:center end;width:auto;min-width:74px;min-height:24px;padding:2px 9px;font-size:.68rem;font-weight:600;line-height:1.15}.ghost-button.student-portal-absence-toggle:not([aria-pressed=true]):hover,.ghost-button.student-portal-absence-toggle:not([aria-pressed=true]):focus-visible{color:#ffc0c0;background:#f871712e;border-color:#f871717a;transform:none}.ghost-button.student-portal-absence-toggle[aria-pressed=true]{color:#faa;background:#f8717124;border-color:#f871716b}.ghost-button.student-portal-absence-toggle[aria-pressed=true]:hover,.ghost-button.student-portal-absence-toggle[aria-pressed=true]:focus-visible{color:#ffc0c0;background:#f8717129;border-color:#f871716b;transform:none}.theme-light .ghost-button.student-portal-absence-toggle{color:#dc2626;background:#ef44440f;border-color:#ef44443d}.theme-light .ghost-button.student-portal-absence-toggle:not([aria-pressed=true]):hover,.theme-light .ghost-button.student-portal-absence-toggle:not([aria-pressed=true]):focus-visible{color:#b91c1c;background:#ef44441f;border-color:#ef444461}.theme-light .ghost-button.student-portal-absence-toggle[aria-pressed=true]{color:#b91c1c;background:#ef444414;border-color:#ef44444d}.theme-light .ghost-button.student-portal-absence-toggle[aria-pressed=true]:hover,.theme-light .ghost-button.student-portal-absence-toggle[aria-pressed=true]:focus-visible{color:#b91c1c;background:#ef44441f;border-color:#ef444457}.student-portal-schedule-details strong{color:#fff}.student-portal-schedule-detail-label{color:var(--text-muted);font-weight:400}.student-portal-schedule-status{font-weight:700}.student-portal-schedule-status.cancelled{color:#fca5a5}.student-portal-schedule-status.replaced{color:#d8c8ff}.student-portal-schedule-status.substitution{color:#fbbf24}.student-portal-schedule-status.refunded{color:#68a8ff}.theme-light .student-portal-schedule-details strong{color:#111827}.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-lesson-title>.teacher-schedule-cancelled-label{color:#fca5a5}.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-head{grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:10px;display:grid}.teacher-schedule-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.teacher-schedule-action{color:#fff;flex:0 0 32px;width:32px;min-width:32px;height:32px}.teacher-schedule-actions .lesson-substitution-trigger,.teacher-schedule-actions .lesson-cancel-trigger,.teacher-schedule-actions .lesson-restore-trigger{grid-area:auto;justify-self:auto}.teacher-schedule-actions .teacher-schedule-action:hover,.teacher-schedule-actions .teacher-schedule-action:focus-visible,.teacher-schedule-actions .teacher-schedule-action.active,.teacher-schedule-actions .teacher-schedule-action.active:hover,.teacher-schedule-actions .teacher-schedule-action.active:focus-visible{box-shadow:none;color:#fff;background:0 0;border-color:#0000;transform:none}.theme-light .teacher-schedule-actions .teacher-schedule-action:hover,.theme-light .teacher-schedule-actions .teacher-schedule-action:focus-visible,.theme-light .teacher-schedule-actions .teacher-schedule-action.active,.theme-light .teacher-schedule-actions .teacher-schedule-action.active:hover,.theme-light .teacher-schedule-actions .teacher-schedule-action.active:focus-visible{color:#111827}.teacher-schedule-lesson.substitution{background:linear-gradient(135deg, #fbbf2438, transparent 62%), color-mix(in srgb, var(--bg-card) 50%, transparent);border-color:#fbbf24c7}.teacher-schedule-lesson.substitution .teacher-schedule-lesson-number{color:#fff;background:#fbbf24}.teacher-schedule-lesson.substitution .teacher-schedule-lesson-toggle small{color:#fff4cf}.theme-light .teacher-schedule-lesson.substitution{background:linear-gradient(135deg, #fbbf242e, transparent 62%), color-mix(in srgb, var(--bg-card) 72%, transparent)}.theme-light .teacher-schedule-lesson.substitution .teacher-schedule-lesson-toggle small{color:#92400e}.teacher-schedule-lesson.refunded{background:linear-gradient(135deg, #68a8ff2e, transparent 62%), color-mix(in srgb, var(--bg-card) 50%, transparent);border-color:#68a8ffd1}.teacher-schedule-lesson.refunded .teacher-schedule-lesson-number{color:#fff;background:#68a8ff}.teacher-schedule-lesson.refunded .teacher-schedule-lesson-toggle small{color:#dbeafe}.theme-light .teacher-schedule-lesson.refunded{background:linear-gradient(135deg, #68a8ff26, transparent 62%), color-mix(in srgb, var(--bg-card) 72%, transparent)}.theme-light .teacher-schedule-lesson.refunded .teacher-schedule-lesson-toggle small{color:#1d4ed8}.teacher-schedule-lesson.replaced{background:linear-gradient(135deg, #8b5cf638, transparent 62%), color-mix(in srgb, var(--bg-card) 50%, transparent);border-color:#b99cffd1}.teacher-schedule-lesson.replaced .teacher-schedule-lesson-number{background:#6d5bd0}.teacher-schedule-lesson.replaced .teacher-schedule-lesson-toggle small{color:#d8c8ff}.theme-light .teacher-schedule-lesson.replaced{background:linear-gradient(135deg, #7c3aed29, transparent 62%), color-mix(in srgb, var(--bg-card) 72%, transparent)}.theme-light .teacher-schedule-lesson.replaced .teacher-schedule-lesson-toggle small{color:#6d28d9}.teacher-schedule-lesson.cancelled{background:linear-gradient(135deg, #f8717138, transparent 62%), color-mix(in srgb, var(--bg-card) 50%, transparent);border-color:#f87171d1}.teacher-schedule-lesson.cancelled .teacher-schedule-lesson-number{background:#b91c1c}.teacher-schedule-lesson.cancelled .teacher-schedule-lesson-toggle small{color:#fecaca}.theme-light .teacher-schedule-lesson.cancelled{background:linear-gradient(135deg, #f8717129, transparent 62%), color-mix(in srgb, var(--bg-card) 72%, transparent)}.theme-light .teacher-schedule-lesson.cancelled .teacher-schedule-lesson-toggle small{color:#991b1b}.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:disabled{cursor:default}.teacher-schedule-student:disabled:hover{background:color-mix(in srgb, var(--danger) 20%, 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-month-summary{grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:12px;padding:0;display:grid}.teacher-salary-month-picker{grid-template-columns:44px minmax(220px,max-content) max-content 44px;justify-self:start;align-items:center;gap:10px;min-width:0;display:grid;position:relative}.teacher-salary-month-date-button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.teacher-salary-month-range-button{min-width:max-content}.teacher-salary-month-summary .teacher-week-nav-button:hover,.teacher-salary-month-summary .teacher-week-date-button:hover,.teacher-salary-month-summary .teacher-week-today-button:hover{border-color:color-mix(in srgb, var(--text-muted) 30%, var(--border));background:color-mix(in srgb, var(--text-muted) 10%, var(--bg-soft))}.teacher-salary-month-popover{width:max-content;max-width:calc(100vw - 48px);left:54px}.teacher-salary-month-popover.open-up{top:auto;bottom:calc(100% + 10px)}.teacher-salary-month-calendar{width:max-content;max-width:100%;box-shadow:var(--shadow)}.teacher-salary-month-grid{grid-template-columns:repeat(3,max-content);gap:8px;min-width:0;display:grid}.teacher-salary-month-grid button{border:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:color-mix(in srgb, var(--bg-soft) 70%, transparent);min-width:92px;min-height:42px;color:var(--text-main);font:inherit;cursor:pointer;border-radius:12px;padding:8px 10px;font-size:.82rem;font-weight:700}.teacher-salary-month-grid button:hover,.teacher-salary-month-grid button.active{border-color:color-mix(in srgb, var(--text-muted) 32%, var(--border));background:color-mix(in srgb, var(--text-muted) 10%, var(--bg-soft));color:#fff}.teacher-salary-month-grid button.current{border-color:color-mix(in srgb, var(--text-muted) 32%, var(--border));box-shadow:0 0 0 1px color-mix(in srgb, var(--text-muted) 18%, transparent)}.teacher-salary-month-total{color:#34d399;white-space:nowrap;justify-self:end;font-weight:800}.theme-light .teacher-salary-month-grid button.active{color:#111827}.theme-light .teacher-salary-month-total{color:#059669}.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(--text-muted) 16%, 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(--text-muted) 16%, 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;display:grid}.student-portal-transaction-card{grid-template-columns:minmax(0,1fr) minmax(84px,max-content);align-self:start;align-items:flex-start;gap:10px;height:fit-content;display:grid}.student-portal-transaction-card>div{min-width:0}.student-portal-transaction-card>strong{text-align:right;white-space:nowrap;place-self:center end}.student-portal-transaction-note{grid-column:1/-1}.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-insights{gap:12px;margin-top:12px;display:grid}.student-portal-calendar-insights .student-portal-calendar-lessons{margin-top:0}.student-portal-calendar-metrics{width:100%}.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) max-content;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.refunded{background:#68a8ff29;border-color:#68a8ffd1}.student-portal-calendar-lessons article.absent{background:#ff6b8129;border-color:#ff6b81d1}.student-portal-calendar-lessons article.paid-upcoming{background:#37f0c224;border-color:#37f0c2c7}.student-portal-calendar-lessons article.debt{background:#37f0c22e;border-color:#37f0c2c2}.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-calendar-return{color:#fff;place-self:center end;width:32px;min-width:32px;height:32px}.student-portal-calendar-lessons article.refunded .student-portal-calendar-lesson-status{color:#68a8ff}.student-portal-calendar-lessons article.absent .student-portal-calendar-lesson-status{color:#ff6b81}.student-portal-calendar-lessons article.cancelled .student-portal-calendar-lesson-status{color:#fca5a5}.student-portal-calendar-lessons article.paid-upcoming .student-portal-calendar-lesson-status{color:#37f0c2}.student-portal-calendar-lessons article.debt .student-portal-calendar-lesson-status{color:#fff}.student-portal-calendar-lessons article .student-portal-calendar-lesson-debt-status{color:#ff6b81}.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;grid-column:1/-1;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-meta .badge{padding:5px 12px;font-size:.78rem;line-height:1.2}.student-portal-transaction-meta .badge.danger{border-color:#0000}.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}.student-portal-payment-details{gap:10px;display:grid}.student-portal-payment-row{border:1px solid var(--border);background:var(--bg-soft);border-radius:16px;grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:12px;padding:14px 16px;display:grid}.student-portal-payment-row>div{gap:4px;min-width:0;display:grid}.student-portal-payment-row span{color:var(--text-muted);font-size:.82rem}.student-portal-payment-row strong{color:var(--text-main);overflow-wrap:anywhere}.ghost-button.icon-button.student-portal-copy-button,.ghost-button.icon-button.student-portal-copy-button:hover,.ghost-button.icon-button.student-portal-copy-button:focus,.ghost-button.icon-button.student-portal-copy-button:focus-visible,.ghost-button.icon-button.student-portal-copy-button:active{color:#fff;width:38px;min-width:38px;height:38px;box-shadow:none!important;background:0 0!important;border:0!important}.student-portal-pay-button{text-decoration:none}#student-portal-overview.student-portal-metrics,#teacher-portal-overview.student-portal-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.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-link:hover,.brand-link:focus-visible{background:0 0;border-color:#0000}.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}.theme-light .nav-badge{color:#92400e;background:#ffedafe6;border-color:#f59e0b94}.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:color-mix(in srgb, var(--regular-button-accent) 24%, var(--bg-card));border-color:color-mix(in srgb, var(--regular-button-accent) 54%, var(--border));transform:translate(3px);box-shadow:inset 0 1px #ffffff0a}.nav-item.active{background:color-mix(in srgb, var(--regular-button-accent) 28%, var(--bg-card));border-color:color-mix(in srgb, var(--regular-button-accent) 58%, var(--border));box-shadow:inset 0 1px #ffffff0a}.nav-item:hover:not(.active) .nav-icon{background:color-mix(in srgb, var(--warning) 28%, var(--bg-soft));color:#ffcf6b;transform:translate(2px)}.nav-item.active .nav-icon{background:color-mix(in srgb, var(--warning) 28%, var(--bg-soft));color:#ffcf6b}.theme-light .nav-item:hover:not(.active){background:color-mix(in srgb, var(--regular-button-accent) 18%, #fff);border-color:color-mix(in srgb, var(--regular-button-accent) 44%, var(--border))}.theme-light .nav-item.active{background:color-mix(in srgb, var(--regular-button-accent) 22%, #fff);border-color:color-mix(in srgb, var(--regular-button-accent) 48%, var(--border))}.theme-light .nav-item:hover:not(.active) .nav-icon,.theme-light .nav-item.active .nav-icon{background:color-mix(in srgb, var(--warning) 22%, #fff);color:#b87722}.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),.theme-light .sidebar-logout-button:hover:not(.active){background:var(--button-hover-danger-bg);border-color:var(--button-hover-danger-border)}.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-card-avatar-student-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:19px;flex:none;place-items:center;width:60px;height:60px;display:grid;box-shadow:inset 0 1px #ffffff2e}.journal-card-avatar-core{width:38px;height:38px;color:var(--journal-accent);background:#f6f7fb;border-radius:13px;place-items:center;display:grid}.journal-card .journal-card-avatar-core{color:var(--journal-accent)}.journal-card-avatar-core svg{fill:none;stroke:currentColor;stroke-width:2.7px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.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:var(--journal-accent);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:hover,.theme-switch:focus,.theme-switch:focus-visible{background:var(--bg-surface);border-color:var(--border);box-shadow:none;outline:none;transform:none}.portal-settings-card:hover{background:var(--bg-soft);border-color:var(--border);box-shadow:none;transform:none}.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,#3478ff 0%,#8b5cf6 100%);border-radius:999px;width:24px;height:24px;transition:transform .18s;display:block}.theme-light .theme-switch-thumb{background:linear-gradient(135deg,#3478ff 0%,#8b5cf6 100%);transform:translate(26px)}.theme-switch-icon{color:#3478ff;place-items:center;width:26px;height:26px;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:var(--button-active-bg);border-color:var(--button-active-border);color:var(--button-active-text)}.ghost-button:hover{background:var(--button-hover-bg);border-color:var(--button-hover-border);transform:translateY(-1px)}.theme-light .ghost-button:hover{background:var(--button-hover-bg);border-color:var(--button-hover-border)}.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}.danger-button:hover:not(:disabled),.danger-button:focus-visible:not(:disabled){background:var(--button-hover-danger-bg);border-color:var(--button-hover-danger-border)}.success-button{color:var(--accent);border-color:#37f0c238}.primary-button{color:#f8fbff;background:var(--primary-button-bg);box-shadow:0 14px 30px var(--primary-button-shadow);border:0;font-weight:700}.primary-button:hover:not(:disabled){background:var(--primary-button-hover-bg);box-shadow:0 16px 34px var(--primary-button-hover-shadow);transform:translateY(-1px)}.primary-button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.settings-backup-button{align-items:center;gap:8px;display:inline-flex}.settings-staff-column{align-content:start;gap:14px;min-width:0;display:grid}.settings-staff-column .portal-settings-password-card-compact{box-sizing:border-box;justify-self:stretch;width:auto;max-width:none}.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}.settings-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.settings-overview-grid:not(:has(.settings-backup-panel)){grid-template-columns:repeat(3,minmax(0,1fr))}.settings-overview-grid>.panel{align-content:start;align-items:stretch;min-width:0;height:100%}.settings-overview-grid .section-heading{align-items:flex-start;gap:12px}.settings-overview-grid .section-heading h3{overflow-wrap:anywhere}.settings-overview-grid .panel-nested{border-radius:18px;align-self:start;padding:14px}.settings-overview-grid .crm-form{align-content:start}.settings-layout{grid-template-columns:210px minmax(0,760px);justify-content:start;align-items:start;gap:16px;display:grid}.settings-detail-area{width:min(760px,100%);min-width:0}.settings-detail-area>.panel,.settings-detail-area>.settings-tariffs-panel{width:100%}.settings-category-panel{padding:14px;position:sticky;top:18px}.settings-category-list{gap:10px;display:grid}.settings-category-button{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 74%, transparent);min-width:0;min-height:52px;color:var(--text-muted);font:inherit;text-align:left;cursor:pointer;border-radius:14px;padding:12px 14px;font-size:.92rem;font-weight:700;transition:background .16s,border-color .16s,color .16s}.settings-category-button:hover{background:var(--button-hover-bg);border-color:var(--button-hover-border);color:var(--text-main)}.settings-category-button.active{background:var(--button-active-bg);border-color:var(--button-active-border);color:var(--button-active-text)}.settings-detail-panel{min-width:0}.payment-details-settings-form input:disabled{opacity:.78;cursor:default}.portal-dashboard-layout{grid-template-columns:240px minmax(0,1fr);width:100%}.portal-category-panel{top:86px}.portal-detail-area{gap:18px;width:100%;display:grid}.portal-info-grid{grid-template-columns:1fr;width:100%}.portal-detail-area [hidden]{display:none!important}.portal-detail-area>.student-portal-metrics,.portal-info-grid>.student-portal-section{scroll-margin-top:24px}.settings-student-panel .student-settings-form{max-width:100%}.settings-student-panel .panel-nested{background:0 0;border:0;padding:0}.student-settings-card,.student-settings-toggle-row{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 72%, transparent);border-radius:16px;width:100%;display:grid}.student-settings-card{gap:8px;padding:16px 14px}.primary-button-tone-card>span:first-child{color:var(--text-main);font-size:.84rem;font-weight:500;line-height:1.3}.primary-button-tone-picker{grid-template-columns:repeat(5,minmax(0,max-content));gap:8px;display:grid}.primary-button-tone-option{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-card) 74%, transparent);min-height:36px;color:var(--text-main);cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:7px 10px;font-size:.82rem;font-weight:650;transition:background-color .16s,border-color .16s,transform .16s;display:inline-flex}.primary-button-tone-option:hover,.primary-button-tone-option:focus-visible,.primary-button-tone-option.active{border-color:color-mix(in srgb, var(--primary-button-option-start) 58%, var(--border));background:color-mix(in srgb, var(--primary-button-option-start) 14%, var(--bg-card))}.primary-button-tone-option:hover,.primary-button-tone-option:focus-visible{transform:translateY(-1px)}.primary-button-tone-option.active{box-shadow:0 0 0 3px color-mix(in srgb, var(--primary-button-option-start) 18%, transparent)}.primary-button-tone-swatch{background:linear-gradient(135deg, var(--primary-button-option-start), var(--primary-button-option-end));width:20px;height:20px;box-shadow:inset 0 1px 0 #ffffff59, 0 5px 12px color-mix(in srgb, var(--primary-button-option-start) 28%, transparent);border-radius:999px}.primary-button-tone-option-blue{--primary-button-option-start:#3478ff;--primary-button-option-end:#8b5cf6}.primary-button-tone-option-green{--primary-button-option-start:#12b981;--primary-button-option-end:#22c55e}.primary-button-tone-option-purple{--primary-button-option-start:#7c3aed;--primary-button-option-end:#c026d3}.primary-button-tone-option-rose{--primary-button-option-start:#f43f5e;--primary-button-option-end:#ec4899}.primary-button-tone-option-orange{--primary-button-option-start:#f97316;--primary-button-option-end:#f59e0b}.primary-button-tone-option-cyan{--primary-button-option-start:#06b6d4;--primary-button-option-end:#3b82f6}.primary-button-tone-option-indigo{--primary-button-option-start:#4f46e5;--primary-button-option-end:#7c3aed}.primary-button-tone-option-red{--primary-button-option-start:#ef4444;--primary-button-option-end:#f97316}.primary-button-tone-option-gold{--primary-button-option-start:#eab308;--primary-button-option-end:#f59e0b}.primary-button-tone-option-slate{--primary-button-option-start:#475569;--primary-button-option-end:#64748b}.student-settings-toggle-row{cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 14px}.student-settings-toggle-row>span:first-child{min-width:0;color:var(--text-main);font-size:.84rem;font-weight:500;line-height:1.3}.student-settings-toggle-row input{pointer-events:none;opacity:0;width:1px;height:1px;min-height:1px;margin:0;padding:0;position:absolute}.student-settings-switch{background:linear-gradient(135deg,#2ee35d,#22c95b);border:1px solid #41e15f6b;border-radius:999px;justify-content:flex-end;align-items:center;width:46px;height:26px;min-height:26px;padding:3px;display:flex;box-shadow:inset 0 0 0 1px #ffffff14}.student-settings-toggle-row.disabled .student-settings-switch{background:#363741;border-color:#ffffff14;justify-content:flex-start}.theme-light .student-settings-toggle-row.disabled .student-settings-switch{background:#d9dce4;border-color:#2228361f}.student-settings-switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;box-shadow:0 2px 7px #00000047}.settings-tariffs-panel .panel-nested{background:0 0;border:0;padding:0}.settings-tariffs-panel .section-heading{align-items:center}.tariff-add-button{border-radius:12px;min-height:38px;padding:9px 12px;font-size:.84rem}.settings-tariffs-stack{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.settings-tariffs-stack>.tariff-settings-card:first-child{grid-column:1/-1}.tariff-settings-card{gap:14px}.tariff-settings-card p{color:var(--text-muted);margin:4px 0 0;font-size:.84rem;line-height:1.35}.tariff-settings-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;display:grid}.tariff-settings-head>div{min-width:0}.tariff-settings-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tariff-settings-actions>.primary-button,.tariff-settings-actions>.ghost-button{border-radius:12px;min-height:38px;padding:9px 12px;font-size:.84rem}.speaking-club-card .tariff-settings-head{align-items:center}.tariff-settings-head .status-pill{padding:7px 10px;font-size:.78rem}.tariff-single-field{color:var(--text-muted);gap:6px;font-size:.82rem;display:grid}.tariff-single-field input{border:1px solid var(--border);background:var(--bg-surface);width:100%;min-width:0;height:40px;min-height:40px;color:var(--text-main);border-radius:12px;padding:8px 10px;font-size:.88rem}.tariff-single-field input::placeholder{color:var(--text-muted)}.tariff-single-field input:focus{border-color:var(--button-active-border);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.tariff-single-field input:disabled{background:color-mix(in srgb, var(--bg-soft) 72%, transparent);color:var(--text-muted);opacity:1}.tariff-date-range-field .date-range-picker,.tariff-date-range-field .date-range-trigger{width:100%}.tariff-date-range-field .date-range-popover{left:0;right:auto}.date-range-trigger:disabled{opacity:.58;cursor:not-allowed}@media (width<=640px){.speaking-club-card .tariff-settings-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.speaking-club-card .tariff-settings-actions{justify-content:stretch;display:contents}.speaking-club-card .tariff-settings-actions>.primary-button,.speaking-club-card .tariff-settings-actions>.ghost-button{grid-area:2/1/auto/-1;width:100%}.speaking-club-card .student-settings-toggle-row.compact{grid-area:1/2;justify-content:space-between;min-width:0}.tariff-date-range-field .date-range-calendar{width:min(320px,100vw - 56px)}}.tariff-settings-list{gap:8px;display:grid}.tariff-settings-row{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-soft) 72%, transparent);border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.tariff-settings-row>div:first-child{gap:3px;min-width:0;display:grid}.tariff-settings-row strong,.tariff-settings-card strong{color:var(--text-main)}.tariff-settings-row span{color:var(--text-muted);font-size:.84rem}.tariff-settings-row-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.tariff-settings-row-actions .icon-button{place-items:center;width:34px;min-width:34px;height:34px;min-height:34px;padding:0;line-height:0;display:grid}.tariff-settings-row-actions .icon-button svg{margin:0;display:block}.tariff-edit-button{color:var(--text-main)}.student-settings-toggle-row.compact{border-radius:14px;width:auto;min-width:118px;padding:8px 9px}.student-settings-toggle-row.compact>span:first-child{font-size:.78rem}.student-settings-toggle-row.compact .student-settings-switch{width:40px;height:24px;min-height:24px;padding:3px}.student-settings-toggle-row.compact .student-settings-switch:after{width:18px;height:18px}.tariff-plan-modal{gap:18px}.tariff-modal-form{gap:14px}.tariff-modal-form input{background:var(--bg-surface);border-color:var(--border);color:var(--text-main)}.tariff-modal-form input::placeholder{color:var(--text-muted)}.account-password-settings{gap:12px;margin-top:16px;display:grid}.account-password-heading{padding-top:4px}.account-password-control{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.account-password-selected{color:var(--text-muted);overflow-wrap:anywhere;margin:0;padding:0 2px;font-size:.86rem;line-height:1.35}.account-password-control>.ghost-button{justify-content:center;min-width:138px}.settings-passwords-grid{grid-template-columns:1fr;align-items:start;gap:12px;display:grid}.settings-passwords-grid>*{box-sizing:border-box;width:100%}@media (width<=640px){.tariff-settings-row,.tariff-settings-head{grid-template-columns:1fr}.tariff-settings-row-actions{justify-content:stretch}.student-settings-toggle-row.compact{width:100%}.account-password-control{grid-template-columns:1fr;align-items:stretch}.account-password-control>.ghost-button{width:100%}}.settings-backup-panel .section-heading,.settings-backup-card{flex-direction:column;justify-content:flex-start;align-items:flex-start}.settings-backup-panel .settings-backup-button{justify-content:center;width:100%}.settings-backup-panel .status-pill{width:fit-content}.settings-staff-add-button{border-radius:12px;min-height:38px;padding:9px 14px;font-size:.88rem}.settings-staff-list{gap:16px;display:grid}.staff-add-modal{gap:18px}.staff-add-form{gap:14px}.telegram-settings-form .form-columns{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 72%, transparent);border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:12px;display:grid}.telegram-settings-form .telegram-quiet-row{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto}.telegram-settings-form .telegram-balance-row{align-items:end}.telegram-settings-form .telegram-balance-negative-row{grid-template-columns:minmax(0,.75fr) minmax(76px,.85fr);column-gap:7px}.telegram-settings-form .telegram-balance-zero-row{grid-template-columns:minmax(0,1fr) auto}.settings-telegram-panel .telegram-setting-field{display:contents}.settings-telegram-panel .telegram-setting-control{gap:5px;width:100%;min-width:0;display:grid}.telegram-setting-field>span,.telegram-setting-heading{color:var(--text-main);grid-column:1/-2;align-self:center;font-size:.84rem;font-weight:700;line-height:1.3}.telegram-setting-control>span{color:var(--text-muted);grid-column:1/-1;font-size:.84rem;line-height:1.3}.settings-telegram-panel .telegram-setting-field>input,.settings-telegram-panel .telegram-setting-field>select,.settings-telegram-panel .telegram-balance-zero-row .telegram-setting-control{grid-area:2/1/auto/-1}.settings-telegram-panel .telegram-balance-negative-row .telegram-setting-control{grid-row:2}.settings-telegram-panel .telegram-quiet-controls{grid-area:2/1/auto/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;display:grid}.settings-telegram-panel .telegram-balance-negative-row .telegram-setting-control:first-of-type,.settings-telegram-panel .telegram-balance-negative-row .telegram-setting-control:nth-of-type(2){grid-row:2}.settings-telegram-panel .telegram-balance-negative-row .telegram-setting-control:first-of-type{grid-column:1/2}.settings-telegram-panel .telegram-balance-negative-row .telegram-setting-control:nth-of-type(2){grid-column:2/-1}.settings-telegram-panel .telegram-settings-form .telegram-settings-checkbox{grid-area:1/-2/auto/-1;align-self:center}.settings-telegram-panel .telegram-settings-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.settings-telegram-panel .crm-form label{gap:5px;font-size:.8rem;line-height:1.22}.settings-telegram-panel .crm-form input,.settings-telegram-panel .crm-form select{border-radius:12px;min-width:0;height:40px;min-height:40px;padding:8px 10px;font-size:.86rem}.theme-dark .settings-telegram-panel .crm-form input[type=time]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.settings-telegram-panel .crm-form input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:1}.theme-dark .settings-telegram-panel .crm-form input[type=time]::-webkit-calendar-picker-indicator{filter:invert()brightness(1.7);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2323272f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:14px 14px}.theme-light .settings-telegram-panel .crm-form input[type=time]::-webkit-calendar-picker-indicator{filter:none}.settings-telegram-panel .crm-form .telegram-settings-checkbox{cursor:pointer;background:linear-gradient(135deg,#2ee35d,#22c95b);border:1px solid #41e15f6b;border-radius:999px;justify-content:flex-end;justify-self:end;align-items:center;width:46px;height:26px;min-height:26px;padding:3px;display:flex;position:relative;box-shadow:inset 0 0 0 1px #ffffff14}.settings-telegram-panel .crm-form .telegram-settings-checkbox.disabled{background:#363741;border-color:#ffffff14;justify-content:flex-start}.theme-light .settings-telegram-panel .crm-form .telegram-settings-checkbox.disabled{background:#d9dce4;border-color:#2228361f}.settings-telegram-panel .crm-form .telegram-settings-checkbox input{pointer-events:none;opacity:0;width:1px;height:1px;min-height:1px;margin:0;padding:0;position:absolute}.settings-telegram-panel .crm-form .telegram-settings-checkbox span{color:#0000;white-space:nowrap;background:#fff;border-radius:50%;width:20px;height:20px;font-size:0;line-height:0;box-shadow:0 2px 7px #00000047}.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)}.student-balance-summary-card{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:320px;display:grid}.student-balance-summary-item{min-width:0}.student-balance-summary-item+.student-balance-summary-item{border-left:1px solid var(--border);padding-left:14px}.dashboard-layout{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;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{box-sizing:border-box;border:1px solid var(--border);background:var(--bg-soft);border-radius:18px;height:74px;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{order:1;grid-column:span 4;grid-template-rows:auto minmax(0,1fr);align-content:start;align-self:start;align-items:stretch;min-height:0}.dashboard-wide-panel{grid-column:span 12}.dashboard-teacher-panel,.dashboard-recent-panel{grid-column:span 4;align-content:start;align-self:start}.dashboard-recent-panel{order:2}.dashboard-teacher-panel{order:3}.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;grid-template-columns:1fr;align-content:start;align-items:start;gap:14px;min-height:0;max-height:none;display:grid;overflow:visible}.problem-balances-heading-actions{flex:none;align-items:center;display:flex}.problem-balances-export-button{white-space:nowrap;border-radius:13px;justify-content:center;align-items:center;gap:8px;width:fit-content;min-height:34px;padding:8px 12px;font-size:.84rem;line-height:1;display:inline-flex}.problem-balances-export-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.problem-balances-export-button:disabled{opacity:.45;cursor:not-allowed;transform:none}.problem-card{height:var(--problem-card-height);box-sizing:border-box;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}.dashboard-list-actions{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;margin-top:2px;display:flex}.problem-list-toggle,.recent-transactions-toggle{justify-content:center;width:fit-content;min-width:0;padding-inline:16px;display:inline-flex}.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{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{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:var(--accent);--date-range-accent-soft:color-mix(in srgb, var(--accent) 56%, var(--accent-soft));--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-popover.open-up{top:auto;bottom:calc(100% + 10px)}.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:0;gap:9px;padding:10px}.theme-light .attendance-picker.date-range-calendar{background:linear-gradient(180deg, #ffffffe6, #ffffffbd), var(--bg-card)}.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:var(--button-active-text)}.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:not(:disabled):not(.selected):not([aria-pressed=true]):not(.today):not(.in-range):not(.range-start):not(.range-end):hover{background:var(--bg-surface);color:#fff;border-color:#ffffffe6;transform:translateY(-1px)}.date-range-calendar .attendance-day:not(:disabled):not(.selected):not([aria-pressed=true]):not(.today):not(.in-range):not(.range-start):not(.range-end):hover span{color:#fff}.theme-light .date-range-calendar .attendance-day{background:var(--bg-surface);border-color:var(--border)}.theme-light .date-range-calendar .attendance-day.muted{opacity:1;color:#7a879d;background:#f8fbffeb;border-color:#4152761c}.theme-light .date-range-calendar .attendance-day.muted span{color:#7a879d}.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}.crm-shell.theme-dark .date-range-calendar button.date-range-day.range-start,.crm-shell.theme-dark .date-range-calendar button.date-range-day.range-end{border-color:#ffffffd1;box-shadow:inset 0 0 0 1px #ffffff24,0 8px 18px #0000003d;background:#ffffff29!important}.crm-shell.theme-dark .date-range-calendar:not(.teacher-week-calendar):not(.schedule-week-calendar) .date-range-presets button{color:#fff;background:0 0;border-color:#ffffff94}.crm-shell.theme-dark .attendance-picker.date-range-calendar:not(.teacher-week-calendar):not(.schedule-week-calendar){background:linear-gradient(#ffffff09,#0000 34%),#24272e}.crm-shell.theme-dark .date-range-calendar:not(.teacher-week-calendar):not(.schedule-week-calendar) .date-range-presets button:hover,.crm-shell.theme-dark .date-range-calendar:not(.teacher-week-calendar):not(.schedule-week-calendar) .date-range-presets button.active{color:#fff;background:0 0;border-color:#ffffffdb}.crm-shell.theme-dark .date-range-calendar:not(.teacher-week-calendar):not(.schedule-week-calendar) .attendance-day{color:#fff;background:#ffffff09;border-color:#ffffff0f}.crm-shell.theme-dark .date-range-calendar:not(.teacher-week-calendar):not(.schedule-week-calendar) .attendance-day span{color:#fff}.crm-shell.theme-dark .date-range-calendar:not(.teacher-week-calendar):not(.schedule-week-calendar) .attendance-day:not(:disabled):not(.selected):not([aria-pressed=true]):not(.today):not(.in-range):not(.range-start):not(.range-end):hover,.crm-shell.theme-dark .date-range-calendar:not(.teacher-week-calendar):not(.schedule-week-calendar) .date-range-day.in-range{color:#fff;box-shadow:none;border-color:#ffffffe0;background:#ffffff09!important}.crm-shell.theme-dark .date-range-calendar:not(.teacher-week-calendar):not(.schedule-week-calendar) .date-range-day.range-start,.crm-shell.theme-dark .date-range-calendar:not(.teacher-week-calendar):not(.schedule-week-calendar) .date-range-day.range-end{color:#fff;box-shadow:none;border-color:#ffffffe0;background:#ffffff29!important}.crm-shell.theme-dark .date-range-calendar:not(.teacher-week-calendar):not(.schedule-week-calendar) .attendance-day.muted{opacity:.42}.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{width:100%}.student-editor-page{width:100%;max-width:none;margin-inline:0}.student-form-panel-page{background:0 0;border:0;border-radius:0;gap:18px;padding:0;display:grid}.student-form-categories{gap:16px;display:grid}.student-editor-layout{grid-template-columns:210px minmax(0,760px);justify-content:start;align-items:start;gap:16px;width:100%;display:grid}.student-editor-detail-area{border-radius:24px;align-content:start;gap:16px;width:min(760px,100%);margin:0;padding:20px;display:grid}.student-editor-category-panel{width:100%;margin:0}.student-form-category{gap:14px;min-width:0;display:grid}.student-form-panel-page .student-form-categories{grid-template-columns:minmax(0,1fr);align-items:start}.student-form-category-wide,.student-form-category-schedule,.student-form-category-notes{grid-column:1/-1}.student-form-category-heading,.student-form-subcategory-heading{gap:3px;display:grid}.student-form-category-heading h4,.student-form-subcategory-heading h5{color:var(--text-main);margin:0;font-size:1rem;line-height:1.2}.student-form-subcategory-heading h5{font-size:.92rem}.student-form-panel-page .student-form-category{background:0 0;border:0;border-radius:0;padding:0}.student-form-category-payment{gap:16px;width:100%;min-width:0;container-type:inline-size}.student-editor-payment-summary{border:1px solid var(--border);background:var(--bg-soft);border-radius:18px;grid-template-columns:minmax(0,1fr) auto;justify-content:space-between;align-items:center;gap:14px;padding:16px;display:grid}.student-editor-payment-summary span{min-width:0;color:var(--text-muted);font-size:.86rem;font-weight:700}.student-editor-payment-summary strong{text-align:right;overflow-wrap:anywhere;min-width:0;font-size:1.22rem}.student-editor-payment-actions{grid-template-columns:repeat(2,minmax(min(150px,100%),1fr));align-items:end;gap:12px;display:grid}.student-editor-payment-actions button{white-space:normal;justify-content:center;width:100%;min-width:0;min-height:47px}.student-editor-transactions{gap:12px;display:grid}.student-editor-transaction-filter{grid-template-columns:minmax(0,1fr);min-width:0;padding:0;display:grid}.student-editor-transaction-filter .teacher-salary-month-picker{grid-template-columns:40px minmax(0,1fr) max-content 40px;justify-self:stretch;width:100%}.student-editor-transaction-filter .teacher-salary-month-date-button{min-width:0}.student-editor-transaction-filter .teacher-salary-month-popover{left:0}.student-editor-transaction-list{overscroll-behavior:contain;gap:10px;max-height:min(420px,58vh);padding-right:4px;display:grid;overflow-y:auto}.student-editor-transaction-card{background:var(--bg-soft);min-width:0;box-shadow:none;border-radius:17px;padding:14px 16px}.student-editor-transaction-card .journal-card-main,.student-editor-transaction-card .journal-card-copy{min-width:0}.student-editor-transaction-card .journal-card-main{gap:12px}.student-editor-transaction-card .journal-card-avatar{border-radius:14px;width:42px;height:42px}.student-editor-transaction-card .journal-card-avatar-core{border-radius:10px;width:29px;height:29px}.student-editor-transaction-card .journal-card-avatar-core svg{stroke-width:2.35px;width:14px;height:14px}.student-editor-transaction-card .journal-card-title{font-size:1rem;line-height:1.12}.student-editor-transaction-card .journal-card-subtitle{margin-top:4px;font-size:.82rem;line-height:1.2}.student-editor-transaction-card .journal-meta{flex:none;justify-content:flex-end;min-width:84px}.student-editor-transaction-card .journal-amount{font-size:.95rem;line-height:1.15}.student-editor-transaction-card:focus-visible{outline:2px solid color-mix(in srgb, var(--journal-accent) 62%, #fff);outline-offset:3px}@container (width<=560px){.student-editor-payment-actions{gap:10px}.student-editor-transaction-filter{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:8px}.student-editor-transaction-filter .teacher-salary-month-picker{grid-template-columns:36px minmax(0,1fr) max-content 36px;justify-self:stretch;gap:6px}.student-editor-transaction-filter .teacher-salary-month-date-button,.student-editor-transaction-filter .teacher-salary-month-range-button,.student-editor-transaction-filter .teacher-salary-month-nav-button{border-radius:11px;min-height:34px;padding:6px 8px;font-size:.76rem}.student-editor-transaction-filter .teacher-salary-month-popover{max-width:min(100%,100vw - 28px)}.student-editor-transaction-filter .teacher-salary-month-calendar{width:100%}.student-editor-transaction-filter .teacher-salary-month-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.student-editor-transaction-filter .teacher-salary-month-grid button{border-radius:10px;min-width:0;min-height:36px;padding:7px 8px;font-size:.76rem}.student-editor-transaction-card{gap:12px;padding:12px}.student-editor-transaction-card .journal-card-main{gap:10px}.student-editor-transaction-card .journal-card-avatar{border-radius:13px;width:38px;height:38px}.student-editor-transaction-card .journal-card-avatar-core{border-radius:9px;width:27px;height:27px}.student-editor-transaction-card .journal-card-avatar-core svg{stroke-width:2.4px;width:13px;height:13px}}@container (width<=430px){.student-editor-payment-summary{grid-template-columns:minmax(0,1fr);gap:6px;padding:14px}.student-editor-payment-summary strong{text-align:left;font-size:1.08rem}.student-editor-payment-actions{grid-template-columns:minmax(0,1fr)}.student-editor-transaction-filter .teacher-salary-month-picker{grid-template-columns:34px minmax(0,1fr) 34px;gap:6px}.student-editor-transaction-filter .teacher-salary-month-nav-button:first-child{grid-area:1/1}.student-editor-transaction-filter .teacher-salary-month-date-button{grid-area:1/2}.student-editor-transaction-filter .teacher-salary-month-nav-button:last-of-type{grid-area:1/3}.student-editor-transaction-filter .teacher-salary-month-range-button{grid-area:2/1/auto/-1;justify-content:center;justify-self:stretch;width:100%}.student-editor-transaction-card{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.student-editor-transaction-card .journal-card-main{width:100%}.student-editor-transaction-card .journal-meta{text-align:right;justify-content:flex-end;justify-items:end;width:auto;min-width:0}.student-editor-transaction-card .journal-amount{white-space:nowrap}}@container (width<=320px){.student-editor-transaction-filter .teacher-salary-month-picker{grid-template-columns:32px minmax(0,1fr) 32px}.student-editor-transaction-filter .teacher-salary-month-date-button,.student-editor-transaction-filter .teacher-salary-month-range-button,.student-editor-transaction-filter .teacher-salary-month-nav-button{min-height:32px;padding:5px 7px;font-size:.72rem}.student-editor-transaction-filter .teacher-salary-month-grid button{min-height:32px;padding:6px;font-size:.7rem}.student-editor-transaction-card{padding:12px}.student-editor-transaction-card .journal-card-main{gap:10px}.student-editor-transaction-card .journal-card-avatar{border-radius:11px;width:34px;height:34px}.student-editor-transaction-card .journal-card-avatar-core{border-radius:8px;width:24px;height:24px}.student-editor-transaction-card .journal-card-avatar-core svg{width:12px;height:12px}}.student-form-panel-page .student-form-layout,.student-form-panel-page .student-form-schedule-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.95fr);width:100%}.student-form-schedule-grid{align-items:start;gap:16px;display:grid}.student-form-panel-page .day-picker .student-start-date-summary{margin-top:12px}@media (width<=900px){.student-form-panel-page .student-form-categories,.student-form-panel-page .student-form-layout,.student-form-panel-page .student-form-schedule-grid{grid-template-columns:minmax(0,1fr)}.student-form-panel-page{border-radius:0;padding:0}}@media (width<=760px){.student-editor-page{gap:12px}.student-editor-detail-area{border-radius:22px;width:100%;padding:20px}.student-editor-category-panel{position:static}}@media (width<=520px){.student-editor-detail-area{border-radius:20px;padding:18px}.student-editor-detail-area .student-assignment-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.student-editor-detail-area .student-assignment-teacher,.student-editor-detail-area .student-assignment-row>label,.student-editor-detail-area .student-assignment-row>.searchable-select{width:100%;min-width:0}.student-editor-detail-area .student-assignment-teacher,.student-editor-detail-area .student-assignment-row>label:not(.student-assignment-format):not(.student-assignment-level){grid-column:1/-1}.student-editor-detail-area .student-assignment-format,.student-editor-detail-area .student-assignment-level{width:auto}.student-editor-detail-area .student-assignment-format{grid-column:1/2}.student-editor-detail-area .student-assignment-level{grid-column:2/3}.student-editor-detail-area .student-form-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.student-editor-detail-area .student-form-inline-fields,.student-editor-detail-area .student-tariff-picker-row{grid-template-columns:minmax(0,1fr)}.student-editor-detail-area .student-form-category-tariffs .student-tariff-picker-row,.student-editor-detail-area .student-form-category-tariffs .student-form-inline-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.student-editor-detail-area .student-phone-group{grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:10px;display:grid}.student-editor-detail-area .student-phone-item{grid-template-columns:minmax(0,1fr) 44px;align-items:center;display:grid}.student-editor-detail-area .student-phone-item-primary{grid-column:1/2;grid-template-columns:minmax(0,1fr)}.student-editor-detail-area .student-phone-item-secondary{grid-column:1/-1}.student-editor-detail-area .student-phone-input{width:100%!important}.student-editor-detail-area .student-phone-add{grid-area:1/2/auto/3;justify-self:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0}}.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:16px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:inline-flex}.student-status-switch:focus,.student-status-switch:focus-visible{background:var(--bg-surface);border-color:var(--border);box-shadow:none;outline:none;transform:none}.student-status-switch-label{color:var(--text-muted);font-size:.92rem;font-weight:500}.student-status-switch-label.active{color:var(--text-main)}.student-status-switch-track{background:linear-gradient(135deg,#2ee35d,#22c95b);border:1px solid #41e15f6b;border-radius:999px;flex:none;width:46px;height:26px;padding:3px;box-shadow:inset 0 0 0 1px #ffffff14}.theme-light .student-status-switch-track{background:linear-gradient(135deg,#2ee35d,#22c95b);border-color:#41e15f6b}.student-status-switch-thumb{background:#fff;border-radius:999px;width:18px;height:18px;transition:transform .18s;display:block;transform:translate(20px);box-shadow:0 2px 7px #00000047}.student-status-switch.paused .student-status-switch-track{background:#363741;border-color:#ffffff14}.student-status-switch.paused .student-status-switch-thumb{transform:translate(0)}.theme-light .student-status-switch.paused .student-status-switch-track{background:#d9dce4;border-color:#2228361f}.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-item{align-items:center;gap:6px;max-width:100%;display:inline-flex}.student-phone-input{max-width:100%;width:210px!important}.student-phone-remove{color:#ff6b6b;width:30px;min-width:30px;height:30px;min-height:30px;box-shadow:none;background:0 0;border:0;flex:none;padding:0;transition:color .16s,transform .16s}.student-phone-remove svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.student-phone-remove:hover,.student-phone-remove:focus-visible{color:#ff4d4d;transform:translateY(-1px);box-shadow:none!important;background:0 0!important;border-color:#0000!important}.student-phone-add{box-shadow:none;background:0 0;border:0;flex:none;transition:color .16s,transform .16s}.student-phone-add span{font-size:1.35rem;line-height:1}.student-phone-add:hover,.student-phone-add:focus-visible{transform:translateY(-1px);box-shadow:none!important;background:0 0!important;border-color:#0000!important}.student-form-inline-fields{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.student-tariff-picker-row{grid-template-columns:minmax(0,1fr) auto;align-items:end}.student-discount-switch{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-surface) 72%, transparent);min-width:142px;min-height:42px;color:var(--text-main);cursor:pointer;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.student-discount-switch>span:first-child{color:inherit;font-size:.82rem;font-weight:700;line-height:1.2}.student-discount-switch input{pointer-events:none;opacity:0;width:1px;height:1px;min-height:1px;margin:0;padding:0;position:absolute}.student-discount-switch.off .student-settings-switch,.student-discount-switch.disabled .student-settings-switch{background:#363741;border-color:#ffffff14;justify-content:flex-start}.student-discount-switch.disabled{color:var(--text-muted);cursor:not-allowed}.theme-light .student-discount-switch.off .student-settings-switch,.theme-light .student-discount-switch.disabled .student-settings-switch{background:#d9dce4;border-color:#2228361f}@media (width<=640px){.modal-card-student .student-discount-switch{border-radius:8px;gap:5px;min-width:86px;min-height:24px;padding:4px 6px}.modal-card-student .student-discount-switch>span:first-child{font-size:.58rem}.modal-card-student .student-discount-switch .student-settings-switch{width:32px;height:18px;min-height:18px;padding:3px}.modal-card-student .student-discount-switch .student-settings-switch:after{width:12px;height:12px}}.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,.theme-light .student-day-chip.active,.theme-light .student-day-chip:hover{background:var(--button-active-bg);border-color:var(--button-active-border);color:var(--button-active-text)}.student-cards{grid-template-columns:1fr}.student-list-card{z-index:1;background:var(--bg-card);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{background:var(--bg-card);border-color:#68a8ff3d;transform:translateY(-2px);box-shadow:0 26px 70px #00000057}.theme-light .student-list-card:hover{background:var(--bg-card);border-color:#507dff2e;box-shadow:0 24px 58px #3d55832e}.student-card.menu-open{z-index:1200}.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>:first-child{text-align:left}.student-table-header>span{min-width:0}.student-table-sort-button{appearance:none;min-width:0;color:inherit;font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;justify-content:center;justify-self:center;align-items:center;gap:6px;padding:0;font-weight:700;line-height:1.2;display:inline-flex}.student-table-sort-button:first-child{text-align:left;justify-content:flex-start;justify-self:start}.student-table-sort-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.student-table-sort-icons{--student-sort-triangle-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 100 70' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23000' d='M50 3C54 3 58 5 61 9L97 53C104 62 98 70 87 70H13C2 70 -4 62 3 53L39 9C42 5 46 3 50 3Z'/%3E%3C/svg%3E");flex-direction:column;flex:none;justify-content:center;align-items:center;gap:0;width:9px;min-height:18px;font-size:0;line-height:1;display:inline-flex}.student-table-sort-icon{color:#9aa3b3b8;text-align:center;width:9px;height:5px;transition:color .16s;display:block;position:relative}.student-table-sort-icon.sort-up:before,.student-table-sort-icon.sort-down:before{content:"";clip-path:polygon(50% 0,100% 100%,0 100%);width:8px;height:5px;-webkit-mask:var(--student-sort-triangle-mask) center / contain no-repeat;mask:var(--student-sort-triangle-mask) center / contain no-repeat;-webkit-mask:var(--student-sort-triangle-mask) center / contain no-repeat;background:currentColor;position:absolute;left:50%;transform:translate(-50%)}.student-table-sort-icon.sort-up:before{top:0}.student-table-sort-icon.sort-down:before{top:0;transform:translate(-50%)rotate(180deg)}.student-table-sort-icon.sort-neutral{height:7px;font-size:.72rem;line-height:.55}.student-table-sort-icon.active{color:#fff}.student-table-sort-button:hover .student-table-sort-icon,.student-table-sort-button:focus-visible .student-table-sort-icon{color:#d6dce8e6}.crm-shell .student-table-sort-button:hover,.crm-shell .student-table-sort-button:focus-visible{background:0 0;border-color:#0000}.student-table-sort-button:hover .student-table-sort-icon.active,.student-table-sort-button:focus-visible .student-table-sort-icon.active{color:#fff}.student-table-sort-button:focus-visible{outline-offset:3px;border-radius:8px;outline:2px solid #ffffff7a}.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-title h3{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.student-speaking-club-badge{color:#f6c84f;filter:drop-shadow(0 0 5px #f6c84f61);flex:none;justify-content:center;align-self:center;align-items:center;width:20px;height:20px;line-height:0;animation:3.2s ease-in-out infinite student-speaking-club-color-flow;display:inline-flex}.student-speaking-club-badge svg{width:19px;height:19px;fill:color-mix(in srgb, currentColor 18%, transparent);stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;display:block;transform:translateY(1px)}.theme-light .student-speaking-club-badge{color:#b45309;filter:drop-shadow(0 0 4px #b4530938)}@keyframes student-speaking-club-color-flow{0%,to{color:#f6c84f;filter:drop-shadow(0 0 5px #f6c84f61)}25%{color:#38d8ff;filter:drop-shadow(0 0 6px #38d8ff6b)}50%{color:#7cffa7;filter:drop-shadow(0 0 6px #7cffa75c)}75%{color:#ff6bd6;filter:drop-shadow(0 0 6px #ff6bd657)}}.student-card .student-group-label{color:var(--student-group-bg,var(--text-muted))}.student-card{--student-pending-color:#ffcf6b}.student-card .student-study-pending-status{color:var(--student-pending-color);font-weight:400}.theme-light .student-card .student-study-pending-status{--student-pending-color:#b45309}.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);place-content:center;align-self:center}.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>div:not(.metrics-tail)>span{margin-bottom:4px;font-size:.8rem}.student-metrics.compact>.metrics-tail>span{margin-bottom:0;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{border-left:2px solid var(--student-note-accent,var(--student-group-bg,var(--accent)));background:color-mix(in srgb, var(--student-note-accent,var(--student-group-bg,var(--accent))) 14%, transparent);color:#f6c84f;letter-spacing:0;width:fit-content;max-width:100%;min-height:0;margin:12px 0 0;padding:4px 8px 4px 10px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78rem;font-weight:800;line-height:1.45;display:inline-block}.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}.student-list-card .metrics-tail>span,.student-list-card .metrics-tail .student-metric-accent-value{margin-bottom:0}.student-list-card .metrics-tail>span{white-space:nowrap;display:block}.student-list-card .metrics-tail .student-metric-accent-value{color:#b8f5e7;font-size:inherit;line-height:inherit;vertical-align:baseline;display:inline}.theme-light .student-list-card .metrics-tail .student-metric-accent-value{color:#15806f}.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:1250;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{width:100%;color:var(--text-main);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:inline-flex}.menu-item-icon{flex:0 0 16px;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.menu-item-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.menu-item:hover{background:var(--button-hover-bg);border-color:var(--button-hover-border)}.menu-item.danger-button:hover,.menu-item.danger-button:focus-visible{background:var(--button-hover-danger-bg);border-color:var(--button-hover-danger-border)}.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>*,.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}.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{grid-template-columns:44px minmax(150px,1fr) max-content 44px;justify-self:end;align-items:center;gap:10px;width:min(520px,100%);display:grid;position:relative}.schedule-week-calendar{width:100%}.week-nav-button{min-height:44px;padding-inline:14px}.schedule-filter-panel,.schedule-week-panel{overflow:visible}.schedule-filter-panel{gap:14px;display:grid}.schedule-mode-tabs{gap:10px;padding-bottom:2px;display:flex;overflow-x:auto}.schedule-mode-tab{border:1px solid var(--border);background:var(--bg-soft);min-height:42px;color:var(--text-muted);font:inherit;cursor:pointer;border-radius:14px;flex:none;align-items:center;gap:8px;padding:9px 12px;font-weight:800;transition:transform .16s,border-color .16s,background-color .16s,color .16s;display:inline-flex}.schedule-mode-tab small{color:#ffcf6b;background:#ffcf6b1f;border-radius:999px;padding:3px 7px;font-size:.68rem;line-height:1}.schedule-mode-tab:hover,.schedule-mode-tab.active{background:color-mix(in srgb, var(--accent) 18%, var(--bg-card));color:var(--text-main);border-color:#23c7a457;transform:translateY(-1px)}.speaking-club-readonly-note{color:#ffcf6b;font-weight:700}.schedule-heading-actions{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:10px;min-width:min(620px,100%);display:flex}.speaking-club-header-actions{min-width:min(860px,100%)}.schedule-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.schedule-title-row h3{margin:0}.speaking-club-session-select{min-width:0;position:relative}.speaking-club-session-select h3{margin:0}.speaking-club-session-trigger{max-width:min(460px,100vw - 44px);color:var(--text-main);text-align:left;font:inherit;font-weight:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;padding:2px 6px 2px 0;transition:color .16s,background-color .16s,box-shadow .16s;display:inline-flex}.speaking-club-session-trigger:hover,.speaking-club-session-trigger:focus-visible,.speaking-club-session-trigger.open{color:var(--text-main);background:#68a8ff1a;outline:none;box-shadow:0 0 0 3px #68a8ff1f}.speaking-club-session-trigger-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.speaking-club-session-trigger-caret{color:var(--text-muted);flex:none;font-size:.72em;transition:transform .16s}.speaking-club-session-trigger.open .speaking-club-session-trigger-caret{transform:rotate(180deg)}.speaking-club-session-menu{z-index:230;box-sizing:border-box;overscroll-behavior:contain;border:1px solid var(--border);background:var(--bg-card);width:max-content;min-width:100%;max-width:calc(100vw - 28px);max-height:320px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:16px;gap:6px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);left:0;overflow-y:auto}.schedule-week-panel:has(.speaking-club-session-menu){z-index:210;overflow:visible}.speaking-club-session-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}.speaking-club-session-option:hover,.speaking-club-session-option:focus-visible,.speaking-club-session-option.selected{background:#68a8ff1a;border-color:#68a8ff4d;outline:none}.speaking-club-session-option-copy{gap:3px;min-width:0;display:grid}.speaking-club-session-option-copy strong,.speaking-club-session-option-copy small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.speaking-club-session-option-copy small{color:var(--text-muted);font-size:.82rem}.speaking-club-session-check{color:var(--accent);flex:none;font-weight:800}.speaking-club-empty-panel{text-align:center;place-items:center;min-height:180px;display:grid}.speaking-club-tabs-panel{padding-block:14px}.speaking-club-page-tabs{padding-bottom:0}.speaking-club-students-filter{gap:14px;display:grid}.speaking-club-students-filter .filters-bar{grid-template-columns:minmax(280px,1fr) minmax(320px,340px) minmax(220px,260px) max-content;align-items:end;gap:12px;display:grid}.speaking-club-students-filter .filters-bar>button{white-space:nowrap;align-self:end;min-width:max-content}.speaking-club-student-table-header{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;grid-template-columns:minmax(210px,1.15fr) repeat(4,minmax(110px,.78fr)) minmax(220px,1.3fr) minmax(180px,1fr);padding:10px 0 0}.speaking-club-students-summary{place-self:end stretch;width:100%}.speaking-club-student-cards{grid-template-columns:1fr}.speaking-club-student-card{border-left:1px solid var(--border)}.speaking-club-student-card .student-group-label{color:var(--student-group-bg,var(--accent));font-weight:400}.speaking-club-student-card .student-metric-accent-value{color:#b8f5e7;font-weight:400}.theme-light .speaking-club-student-card .student-metric-accent-value{color:#15806f}.speaking-club-student-card .metrics-tail{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;display:flex}.speaking-club-student-card .metrics-tail>span{white-space:nowrap;align-items:center;gap:3px;margin:0;display:inline-flex}.speaking-club-student-card .student-head-actions{justify-content:flex-end}.speaking-club-student-metrics.compact{grid-template-columns:minmax(130px,.7fr) minmax(90px,.45fr) minmax(160px,.8fr) minmax(140px,.7fr) minmax(240px,1.1fr)}.speaking-club-students-empty{place-items:center;min-height:180px;display:grid}.speaking-club-outside-period{border:1px dashed var(--border);color:var(--text-muted);text-align:center;border-radius:14px;margin:0;padding:12px;font-size:.84rem}.schedule-filter-panel .filters-bar{grid-template-columns:minmax(280px,1fr) minmax(220px,240px) max-content;align-items:end;gap:12px;display:grid}.schedule-filter-panel .filters-bar>*{min-width:0}.schedule-filter-panel .filters-bar .search-field,.schedule-filter-panel .filters-bar .searchable-select{width:100%}.schedule-filter-panel .filters-bar>button{white-space:nowrap;align-self:end;min-width:max-content}.schedule-filter-panel .filters-bar>.speaking-club-create-button{justify-self:start;width:auto;min-width:max-content}.schedule-filter-panel .schedule-speaking-club-filters{grid-template-columns:minmax(320px,1fr) minmax(190px,240px) max-content;align-items:end;gap:14px;display:grid}.schedule-filter-panel .schedule-speaking-club-filters .search-field{width:100%;max-width:none}.schedule-filter-panel .schedule-speaking-club-filters>.searchable-select{width:100%}.schedule-filter-panel .schedule-speaking-club-filters .searchable-select-trigger,.schedule-filter-panel .schedule-speaking-club-filters .speaking-club-create-button{box-sizing:border-box}.schedule-filter-panel .schedule-speaking-club-filters>button{z-index:1;justify-self:start;width:auto;min-width:max-content;position:relative}.speaking-club-lesson-card{background:linear-gradient(180deg, #0c1219f5, #0f1820eb) 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) / .14);border:1px solid #0000;border-top-width:7px}.speaking-club-lesson-card:hover,.speaking-club-lesson-card:focus-visible,.speaking-club-lesson-card.expanded{background:linear-gradient(180deg, #0f1720fa, #101c24f2) 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)}.speaking-club-lesson-readonly{opacity:.78}.speaking-club-lesson-actions{grid-template-columns:34px}.theme-light .speaking-club-lesson-card{background:linear-gradient(180deg, #fffffff5, #f1f8ffeb) padding-box, linear-gradient(135deg, hsl(var(--lesson-accent) / .95) 0%, hsl(var(--lesson-accent-gradient-end,var(--lesson-accent-light,var(--lesson-accent))) / .88) 100%) border-box}.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}.crm-shell .schedule-grid .day-column-header:not(:disabled):hover,.crm-shell .schedule-grid .day-column-header:not(:disabled):focus-visible{box-shadow:none;background:0 0!important;border-color:#0000!important}.day-column-header h4{margin-bottom:0}.day-column-title-row{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.day-column-title-row>span:first-child{min-width:0}.day-column-badges{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;gap:6px;min-width:0;display:flex}.day-column-header-indicator{display:none}.day-column h4 small{color:var(--text-muted);font-size:.78rem;font-weight:500}.day-column h4 .day-column-count{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;width:fit-content;padding:3px 7px;font-size:.68rem;font-weight:800;line-height:1.15;display:inline-flex}.day-column h4 .day-column-lesson-count{color:#a8c7ff;background:#7eb1ff24}.day-column h4 .day-column-substitution-count{color:#ffcf6b;background:#ffcf6b24}.theme-light .day-column h4 .day-column-lesson-count{color:#3157c8;background:#507dff1f}.theme-light .day-column h4 .day-column-substitution-count{color:#9a5a05;background:#d9770624}.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:220}.lesson-card.menu-open .lesson-card-head,.lesson-card.menu-open .lesson-settings-wrap{z-index:30}.lesson-occurred-badge{color:#39e56f;pointer-events:none;background:radial-gradient(circle at 32% 28%,#ffffff38,#0000 34%),#24b5533d;border:1px solid #5aff91a8;border-radius:999px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex;box-shadow:0 8px 18px #39e56f38,inset 0 1px #ffffff29}.lesson-occurred-badge svg{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;width:12px;height:12px}.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-row{align-items:center;gap:8px;min-height:20px;margin-bottom:6px;display:flex}.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-row .lesson-time,.lesson-time-row .lesson-time-input{margin-bottom:0}.lesson-time:hover,.lesson-time:focus-visible{color:#fff;outline:0}.schedule-grid .lesson-card-head strong.lesson-group-label,.theme-light .schedule-grid .lesson-card-head strong.lesson-group-label{color:var(--student-group-bg,var(--text-main))}.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-menu-dropdown{-webkit-backdrop-filter:none;backdrop-filter:none;z-index:2400;background:#2d3038;border-color:#ffffff1f;min-width:170px;top:calc(100% + 8px);right:0;box-shadow:0 18px 44px #00000075,0 0 0 1px #ffffff0a}.theme-light .lesson-menu-dropdown{background:#fff;border-color:#1f293724;box-shadow:0 18px 44px #0f172a2e,0 0 0 1px #0f172a0a}.lesson-menu-dropdown.drop-up{top:auto;bottom:calc(100% + 8px)}.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;background:0 0;border-color:#0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.lesson-restore-trigger:hover,.lesson-restore-trigger:focus-visible{color:#fff;background:0 0;border-color:#0000}.lesson-restore-trigger svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px;display:block}.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-title{width:100%;color:var(--text-muted);grid-template-columns:minmax(0,1fr) 16px;align-items:center;gap:7px;font-size:.86rem;font-weight:700;display:grid}.lesson-students-copy-button{color:#bfd2ff;cursor:pointer;width:16px;min-width:0;height:16px;font:inherit;border-radius:0;justify-self:end;place-items:center;padding:0;line-height:0;transition:color .16s,transform .16s;display:inline-grid;transform:translateY(0);box-shadow:none!important;background:0 0!important;border:0!important}.crm-shell .lesson-students-copy-button:not(:disabled):hover,.crm-shell .lesson-students-copy-button:not(:disabled):focus,.crm-shell .lesson-students-copy-button:not(:disabled):focus-visible,.crm-shell .lesson-students-copy-button:not(:disabled):active,.lesson-students-copy-button:hover,.lesson-students-copy-button:focus,.lesson-students-copy-button:focus-visible,.lesson-students-copy-button:active{box-shadow:none!important;color:#bfd2ff!important;background:0 0!important;border:0 #0000!important}.crm-shell .lesson-students-copy-button:not(:disabled):hover,.crm-shell .lesson-students-copy-button:not(:disabled):focus-visible,.lesson-students-copy-button:hover,.lesson-students-copy-button:focus-visible{transform:translateY(-1px)!important}.crm-shell .lesson-students-copy-button:not(:disabled):active,.lesson-students-copy-button:active{transform:none!important}.lesson-students-copy-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.lesson-students-copy-button:disabled{cursor:default;opacity:.42}.lesson-students ul{color:#fff;gap:6px;padding-left:18px;list-style:outside;display:grid}.lesson-students li{color:#fff}.crm-shell:not(.theme-light) .lesson-students ul,.crm-shell:not(.theme-light) .lesson-students li,.crm-shell:not(.theme-light) .lesson-student-name{color:#fff!important}.crm-shell:not(.theme-light) .lesson-students li::marker{color:#fff!important}.lesson-student-row{grid-template-columns:minmax(0,1fr) max-content;align-items:baseline;gap:8px;width:100%;display:grid}.lesson-student-name{color:#fff;overflow-wrap:anywhere;min-width:0}.lesson-student-tariff{color:hsl(var(--lesson-accent-light,var(--lesson-accent)) / 1);white-space:nowrap;font-size:.68rem;font-weight:800;line-height:1}.substitution-lesson-card .lesson-student-tariff,.inactive-lesson-card .lesson-student-tariff{color:var(--special-lesson-border-start)}.theme-light .lesson-students ul,.theme-light .lesson-students li,.theme-light .lesson-student-name{color:var(--text-main)}.theme-light .lesson-students-copy-button{color:hsl(var(--lesson-accent) / 1)}.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:color-mix(in srgb, var(--text-muted) 28%, var(--border))}.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}.salary-page-layout{grid-template-columns:minmax(460px,620px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.salary-page-side,.salary-portal-accrual-panel{gap:12px;display:grid}.salary-page-layout>.salary-portal-accrual-panel{grid-column:auto;align-self:start}.salary-portal-teacher-select{width:100%}.salary-portal-teacher-select .searchable-select-option:hover,.salary-portal-teacher-select .searchable-select-option:focus-visible,.salary-portal-teacher-select .searchable-select-option:active,.salary-portal-teacher-select .searchable-select-option[aria-selected=true],.salary-portal-teacher-select .searchable-select-option.selected{border-color:color-mix(in srgb, var(--text-muted) 30%, var(--border))!important;background:color-mix(in srgb, var(--text-muted) 10%, var(--bg-soft))!important}.salary-portal-teacher-select .searchable-select-check{color:var(--text-muted)}.salary-portal-accrual-empty{min-height:160px}.salary-teacher-card.selected-from-picker{animation:.22s ease-out salary-card-slide-in}@keyframes salary-card-slide-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.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-legend{grid-template-columns:repeat(2,minmax(0,1fr))}.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{background:var(--bg-surface);color:#fff;border-color:#ffffffdb;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-transfer-out{color:#d8c8ff;background:#b99cff3d;border-color:#b99cffd1;font-weight:800}.attendance-day.attendance-student-day-refund{background:var(--bg-surface);color:#68a8ff;border-color:#68a8ffd1;font-weight:800}.attendance-day.attendance-student-day-absent{background:var(--bg-surface);color:#ff6b81;border-color:#ff6b81d1;font-weight:800}.attendance-day.attendance-student-day-scheduled span{color:#fff;background:0 0}.attendance-day.attendance-student-day-completed span,.attendance-day.attendance-student-day-transfer span,.attendance-day.attendance-student-day-transfer-out span,.attendance-day.attendance-student-day-refund span,.attendance-day.attendance-student-day-absent span{background:0 0}.attendance-day.attendance-student-day.today:not(:where(.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day)){background:#ffffff1a;border-color:#ffffffe6;box-shadow:inset 0 0 0 1px #ffffff2e}.attendance-day.attendance-student-day.today span{color:inherit}.attendance-day.attendance-student-day.today:not(:where(.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day)){color:#fff;background:#ffffff1a;border-color:#ffffffe6}.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:var(--bg-surface);border-color:#ffffffdb}.attendance-legend-dot.completed{background:#37f0c27a;border-color:#37f0c2b8}.attendance-legend-dot.transfer{background:#ffcf6b85;border-color:#ffcf6bc2}.attendance-legend-dot.transfer-out{background:#b99cff85;border-color:#b99cffd1}.attendance-legend-dot.refund{background:var(--bg-surface);border-color:#68a8ffd1}.attendance-legend-dot.absent{background:var(--bg-surface);border-color:#ff6b81d1}.attendance-student-empty{min-height:160px}.theme-light .attendance-day.attendance-student-day-scheduled{background:var(--bg-surface);color:#0f172a;border-color:#0f172a80}.theme-light .attendance-day.attendance-student-day-scheduled span{color:#0f172a}.theme-light .attendance-legend-dot.scheduled{background:var(--bg-surface);border-color:#0f172a80}.theme-light .attendance-day.attendance-student-day-scheduled.muted{background:var(--bg-surface);color:#0f172a94;border-color:#0f172a38}.theme-light .attendance-day.attendance-student-day-scheduled.muted span{color:#0f172a94}.theme-light .attendance-day.attendance-student-day-completed{color:#047857;background:#14b8a63d}.theme-light .attendance-day.attendance-student-day-transfer{color:#7c4a03;background:#ffb86b57;border-color:#ffb86b57}.theme-light .attendance-day.attendance-student-day-transfer-out{color:#6d28d9;background:#7c3aed2e;border-color:#7c3aed57}.theme-light .attendance-day.attendance-student-day-completed.muted{color:#04785794;background:#14b8a60f;border-color:#14b8a638}.theme-light .attendance-day.attendance-student-day-refund{background:var(--bg-surface);color:#1d4ed8;border-color:#3b82f680}.theme-light .attendance-day.attendance-student-day-transfer.muted{color:#7c4a0399;background:#ffb86b14;border-color:#ffb86b3d}.theme-light .attendance-day.attendance-student-day-transfer-out.muted{color:#6d28d999;background:#7c3aed14;border-color:#7c3aed3d}.theme-light .attendance-day.attendance-student-day-refund.muted{background:var(--bg-surface);color:#1d4ed899;border-color:#3b82f63d}.theme-light .attendance-day.attendance-student-day-absent{background:var(--bg-surface);color:#9f1239;border-color:#ff6b8180}.theme-light .attendance-day.attendance-student-day-absent.muted{background:var(--bg-surface);color:#9f123999;border-color:#ff6b813d}.theme-light .attendance-day.attendance-student-day.today:not(:where(.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day)){background:#ffffff57;border-color:#ffffffeb;box-shadow:inset 0 0 0 1px #ffffff3d}.theme-light .attendance-day.attendance-student-day.today.muted:not(:where(.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day)){background:#ffffff2e;border-color:#ffffff7a;box-shadow:inset 0 0 0 1px #ffffff1f}.theme-light .attendance-day.attendance-student-day.today:not(:where(.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day)){color:#0f172a;background:#ffffff57;border-color:#ffffffeb}.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-date-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.student-start-date-head .ghost-button{border-radius:10px;min-height:32px;padding:7px 10px;font-size:.82rem}.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-readonly-value{border-radius:16px;min-height:52px;padding:13px 14px;font-weight:500}.modal-card-transfer{color:#f8fafc;background:#2b2e36;border-color:#94a3b829}.modal-card-transfer .section-heading h3{color:#f8fafc}.modal-card-transfer .section-heading p,.modal-card-transfer .substitution-form label,.modal-card-transfer .attendance-weekdays span{color:#a8afbd}.modal-card-transfer .modal-close-button{color:#f8fafc;background:#272a32c7;border-color:#94a3b838}.modal-card-transfer .modal-close-button:hover,.modal-card-transfer .modal-close-button:focus-visible{background:#31353fe6;border-color:#f8fafcbd}.modal-card-transfer .form-derived-value,.modal-card-transfer input,.modal-card-transfer .attendance-picker{color:#f8fafc;background:#282b32;border-color:#94a3b829}.modal-card-transfer .attendance-picker-head strong{color:#f8fafc}.modal-card-transfer .attendance-picker-head .icon-button{color:#f8fafc;background:#333741}.modal-card-transfer .attendance-day{color:#f1f5f9;background:#24272e;border:1px solid #94a3b82e;box-shadow:inset 0 0 0 1px #ffffff04}.modal-card-transfer .attendance-day.study-day{color:#f3edff;background:#4a416a;border:1px solid #a78bfab8}.modal-card-transfer .attendance-day.selected,.modal-card-transfer .attendance-day.selection-1{color:#fff;background:#315074;border:1px solid #f8fafceb;box-shadow:inset 0 0 0 1px #f8fafc29}.modal-card-transfer .attendance-day.muted{color:#a8afbd8c;background:#222431;border:1px solid #94a3b81f}.modal-card-transfer .ghost-button:not(.icon-button){color:#f8fafc;background:#282b32;border-color:#94a3b829}.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:not(:disabled):not(:where(.selected,[aria-pressed=true],.today,.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)):hover{background:var(--bg-surface);color:#fff;border-color:#ffffffe6}.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-transfer-out.muted,.attendance-day.attendance-student-day-refund.muted,.attendance-day.attendance-student-day-absent.muted{opacity:1}.attendance-day.attendance-student-day-scheduled.muted{background:var(--bg-surface);color:#ffffffa8;border-color:#ffffff61}.attendance-day.attendance-student-day-scheduled.muted span{color:#ffffffa8}.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-transfer-out.muted{color:#d8c8ffa3;background:#b99cff14;border-color:#b99cff57}.attendance-day.attendance-student-day-refund.muted{background:var(--bg-surface);color:#68a8ffa8;border-color:#68a8ff57}.attendance-day.attendance-student-day-absent.muted{background:var(--bg-surface);color:#ff6b81a3;border-color:#ff6b8157}.attendance-day.attendance-student-day.today.muted:not(:where(.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day)){background:#ffffff14;border-color:#ffffff7a;box-shadow:inset 0 0 0 1px #ffffff14}.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{color:#fff;background:0 0;border-color:#ffffffc7;font-weight:800}.attendance-day.attendance-upcoming-lesson-day span{color:#fff}.theme-light .attendance-day.attendance-upcoming-lesson-day{color:#243047;background:#f8fbffb8;border-color:#2430476b;font-weight:800}.theme-light .attendance-day.attendance-upcoming-lesson-day span{color:#243047}.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{background:var(--bg-surface);color:#fca5a5;border-color:#f87171d6;font-weight:900}.theme-light .teacher-portal-graph-section .attendance-day.teacher-calendar-day-cancelled{background:var(--bg-surface);color:#b91c1c;border-color:#dc26266b}.attendance-day.today:not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)){background:#ffffff1a;border-color:#ffffffe6;box-shadow:inset 0 0 0 1px #ffffff2e}.attendance-day.selected:not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)){color:#fff;font-weight:900}.attendance-day.selected:not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)) span{color:#fff}.student-portal-schedule-picker .attendance-day.student-portal-calendar-day.selected:not(:where(.study-day,.transfer-day,.attendance-cancelled-lesson-day,.attendance-replaced-lesson-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)){border-color:#ffffffeb}.student-portal-schedule-picker .attendance-day.student-portal-calendar-day.selected:not(:where(.study-day,.transfer-day,.attendance-cancelled-lesson-day,.attendance-replaced-lesson-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)) 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.attendance-cancelled-lesson-day,.attendance-day.attendance-cancelled-lesson-day.selected,.attendance-day.attendance-cancelled-lesson-day:disabled,.attendance-day.attendance-cancelled-lesson-day.muted{opacity:1;box-shadow:none;font-weight:900;background:var(--bg-surface)!important;color:#f87171!important;border-color:#f87171e6!important}.attendance-day.attendance-cancelled-lesson-day small{color:#f87171;background:0 0}.theme-light .attendance-day.attendance-cancelled-lesson-day,.theme-light .attendance-day.attendance-cancelled-lesson-day.selected,.theme-light .attendance-day.attendance-cancelled-lesson-day:disabled,.theme-light .attendance-day.attendance-cancelled-lesson-day.muted{background:var(--bg-surface)!important;color:#dc2626!important;border-color:#dc2626b8!important}.attendance-day.attendance-cancelled-lesson-day span,.attendance-day.attendance-cancelled-lesson-day.selected span,.attendance-day.attendance-cancelled-lesson-day small{color:inherit!important}.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{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.attendance-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.attendance-status-field .chip{--attendance-status-color:var(--text-main);--attendance-status-border:var(--border);--attendance-status-fill:transparent;border-color:var(--attendance-status-border);width:100%;min-width:0;min-height:36px;color:var(--attendance-status-color);text-align:center;white-space:nowrap;box-shadow:none;background:0 0;border-radius:12px;justify-content:center;padding:5px 3px;font-size:.7rem;font-weight:700;line-height:1.15;transition:transform .16s,border-color .16s,color .16s}.attendance-status-field .chip.attendance-status-chip-excluded{--attendance-status-color:#f59e0b;--attendance-status-border:#f59e0bdb;--attendance-status-fill:#f59e0b2e}.attendance-status-field .chip.attendance-status-chip-refund{--attendance-status-color:#68a8ff;--attendance-status-border:#68a8ffd1;--attendance-status-fill:#68a8ff2e}.attendance-status-field .chip.attendance-status-chip-absent{--attendance-status-color:#ff6b81;--attendance-status-border:#ff6b81d1;--attendance-status-fill:#ff6b812e}.attendance-status-field .chip:hover,.attendance-status-field .chip:focus-visible{border-color:var(--attendance-status-color);color:var(--attendance-status-color);background:0 0;transform:translateY(-1px)}.attendance-status-field .chip.active{border-color:var(--attendance-status-color);background:var(--attendance-status-fill);color:var(--attendance-status-color);box-shadow:none;font-weight:800}.theme-light .attendance-status-field .chip.attendance-status-chip-excluded{--attendance-status-color:#b45309;--attendance-status-border:#d977069e;--attendance-status-fill:#f59e0b24}.theme-light .attendance-status-field .chip.attendance-status-chip-refund{--attendance-status-color:#2563eb;--attendance-status-border:#2563eb85;--attendance-status-fill:#3b82f624}.theme-light .attendance-status-field .chip.attendance-status-chip-absent{--attendance-status-color:#e11d48;--attendance-status-border:#e11d4885;--attendance-status-fill:#f43f5e24}.attendance-actions button{text-align:center;justify-content:center;width:100%}.trash-list{gap:12px;display:grid}.trash-page,.trash-page>.panel,.trash-page>.page-stack,.trash-page .panel{min-width:0}.trash-people-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.trash-people-grid>.panel{min-width:0}.trash-person-list{gap:10px}.trash-card{background:linear-gradient(135deg, #ffffff0e, #ffffff05), var(--bg-card);border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;padding:13px;display:grid;position:relative;box-shadow:0 12px 30px #00000029,inset 0 1px #ffffff0d}.trash-card:before{content:"";background:linear-gradient(180deg, var(--accent), var(--accent-soft));opacity:.9;border-radius:999px;width:3px;position:absolute;inset:10px auto 10px 0}.trash-card-main{align-items:center;gap:12px;min-width:0;display:flex}.trash-card-avatar{color:#dcfff5;text-transform:uppercase;background:linear-gradient(135deg,#23c7a46b,#7ea6ff47),#ffffff0f;border:1px solid #23c7a43d;border-radius:14px;flex:0 0 42px;place-items:center;width:42px;height:42px;font-size:.82rem;font-weight:900;display:inline-grid}.trash-card-avatar.teacher-avatar{color:#eef2ff;background:linear-gradient(135deg,#7ea6ff6b,#ff81812e),#ffffff0f;border-color:#7ea6ff42}.trash-card-copy{gap:4px;min-width:0;display:grid}.trash-card h3,.trash-card p,.trash-card span{margin:0}.trash-card h3{color:var(--text-main);overflow-wrap:anywhere;font-size:.98rem;line-height:1.18}.trash-card p{color:var(--text-muted);font-size:.87rem;line-height:1.25}.empty-panel{justify-content:space-between;align-items:center;gap:16px;display:flex}.trash-card-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.theme-light .trash-card{background:linear-gradient(135deg, #fffffff5, #f5f8ffdb), var(--bg-card);box-shadow:0 12px 28px #4152761a,inset 0 1px #ffffffe6}.theme-light .trash-card-avatar{color:#047857;background:linear-gradient(135deg,#1ac6a429,#507dff1c),#fff;border-color:#1ac6a438}.theme-light .trash-card-avatar.teacher-avatar{color:#4251a6;background:linear-gradient(135deg,#507dff26,#d85b5b14),#fff;border-color:#507dff33}.theme-light .trash-card h3{color:#243047}.theme-light .trash-card p{color:#536177}.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}.modal-backdrop:has(.modal-card-journal-transaction){z-index:32}.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:#161f31fa;border:1px solid #68a8ff57;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:#8ec5ff;background:#68a8ff2e;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{color:#f5f7fb;margin-bottom:4px;font-size:.96rem;display:block}.app-toast-copy p{color:#d7e4f7;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,.app-toast-close:focus-visible{color:#fff}.app-toast-close span{font-size:1rem;line-height:1}.theme-dark .app-toast-close,.student-portal-screen.theme-dark~.app-toast-stack .app-toast-close{color:#eaf2ff!important}.theme-dark .app-toast-close:hover,.theme-dark .app-toast-close:focus-visible,.student-portal-screen.theme-dark~.app-toast-stack .app-toast-close:hover,.student-portal-screen.theme-dark~.app-toast-stack .app-toast-close:focus-visible{color:#fff!important}@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%,380px)}.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{--staff-settings-field-width:210px;--staff-settings-modal-padding-x:22px;width:min(calc((var(--staff-settings-field-width) * 2) + 16px + (var(--staff-settings-modal-padding-x) * 2) + 2px), calc(100vw - 40px))}.modal-card-staff-settings .form-columns{width:100%}.modal-card-staff-settings .form-columns>label{flex:0 0 var(--staff-settings-field-width);min-width:0}.modal-card-staff-settings .crm-form input,.modal-card-staff-settings .crm-form select{min-height:52px}.modal-card-staff-settings .card-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.modal-card-staff-settings .card-actions button{justify-content:center;width:100%}.modal-card-payment .section-heading,.payment-form,.modal-card-attendance .section-heading,.modal-card-attendance .attendance-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{background:var(--bg-surface);color:#37f0c2;border-color:#37f0c2c7}.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{color:#fff;background:0 0;border-color:#ffffffc7;font-weight:800}.attendance-day.payment-upcoming-day span{color:#fff}.theme-light .attendance-day.payment-upcoming-day{color:#243047;background:#f8fbffb8;border-color:#2430476b;font-weight:800}.theme-light .attendance-day.payment-upcoming-day span{color:#243047}.attendance-day.payment-upcoming-day.selected{color:#fff;background:#68a8ff3d;border-color:#68a8ffb3}.attendance-day.payment-paid-day.payment-upcoming-day{background:var(--bg-surface);color:#37f0c2;border-color:#37f0c2b8}.theme-light .attendance-day.payment-paid-day.payment-upcoming-day{background:var(--bg-surface);color:#047857}.attendance-day.payment-paid-upcoming-day,.attendance-day.payment-paid-day.payment-upcoming-day{background:var(--bg-surface);color:#37f0c2;border-color:#37f0c2c7}.attendance-day.payment-paid-upcoming-day.selected,.attendance-day.payment-paid-day.payment-upcoming-day.selected{background:var(--bg-surface);color:#37f0c2;border-color:#37f0c2d6;box-shadow:inset 0 0 0 1px #37f0c24d,0 0 0 1px #37f0c238}.attendance-day.payment-paid-upcoming-day span,.attendance-day.payment-paid-upcoming-day.selected span,.attendance-day.payment-paid-day.payment-upcoming-day span,.attendance-day.payment-paid-day.payment-upcoming-day.selected span{color:#37f0c2}.theme-light .attendance-day.payment-paid-upcoming-day,.theme-light .attendance-day.payment-paid-day.payment-upcoming-day{background:var(--bg-surface);color:#047857;border-color:#0596698a}.theme-light .attendance-day.payment-paid-upcoming-day.selected,.theme-light .attendance-day.payment-paid-day.payment-upcoming-day.selected{background:var(--bg-surface);color:#047857;border-color:#05966999;box-shadow:inset 0 0 0 1px #0596693d,0 0 0 1px #05966929}.theme-light .attendance-day.payment-paid-upcoming-day span,.theme-light .attendance-day.payment-paid-upcoming-day.selected span,.theme-light .attendance-day.payment-paid-day.payment-upcoming-day span,.theme-light .attendance-day.payment-paid-day.payment-upcoming-day.selected span{color:#047857}.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}.attendance-day.payment-unpaid-substitution-day,.attendance-day.payment-unpaid-substitution-day.payment-past-substitution-day{color:#ff6b81;background:#ff6b813d;border-color:#ff6b81c7}.attendance-day.payment-unpaid-substitution-day.selected{color:#fff;box-shadow:inset 0 0 0 1px #ffffff57,0 0 0 1px #ff6b8152}.attendance-day.payment-unpaid-substitution-day small{color:#fff;background:#ff6b81}.theme-light .attendance-day.payment-unpaid-substitution-day,.theme-light .attendance-day.payment-unpaid-substitution-day.payment-past-substitution-day{color:#9f1239;background:#ff6b8147}.attendance-day.payment-refund-day{background:var(--bg-surface);color:#68a8ff;border-color:#68a8ffeb;font-weight:900}.attendance-day.payment-refund-day.selected{background:var(--bg-surface);color:#68a8ff;border-color:#68a8fff5;box-shadow:inset 0 0 0 1px #68a8ff57,0 0 0 1px #68a8ff33}.attendance-day.payment-refund-day span,.attendance-day.payment-refund-day.selected span{color:#68a8ff}.attendance-day.payment-refund-day small{color:#68a8ff;background:0 0}.theme-light .attendance-day.payment-refund-day,.theme-light .attendance-day.payment-refund-day.selected{background:var(--bg-surface);color:#1d4ed8;border-color:#2563ebb8}.theme-light .attendance-day.payment-refund-day span,.theme-light .attendance-day.payment-refund-day.selected span,.theme-light .attendance-day.payment-refund-day small{color:#1d4ed8}.student-portal-schedule-picker .attendance-day.attendance-student-day-absent{background:var(--bg-surface);color:#ff6b81;border-color:#ff6b81eb;font-weight:900}.student-portal-schedule-picker .attendance-day.attendance-student-day-absent.selected{background:var(--bg-surface);color:#ff6b81;border-color:#ff6b81f5;box-shadow:inset 0 0 0 1px #ff6b8157,0 0 0 1px #ff6b8133}.student-portal-schedule-picker .attendance-day.attendance-student-day-absent span,.student-portal-schedule-picker .attendance-day.attendance-student-day-absent.selected span,.student-portal-schedule-picker .attendance-day.attendance-student-day-absent small{color:#ff6b81}.theme-light .student-portal-schedule-picker .attendance-day.attendance-student-day-absent,.theme-light .student-portal-schedule-picker .attendance-day.attendance-student-day-absent.selected{background:var(--bg-surface);color:#be123c;border-color:#e11d489e}.theme-light .student-portal-schedule-picker .attendance-day.attendance-student-day-absent span,.theme-light .student-portal-schedule-picker .attendance-day.attendance-student-day-absent.selected span,.theme-light .student-portal-schedule-picker .attendance-day.attendance-student-day-absent small{color:#be123c}.attendance-day.today:not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)){box-shadow:inset 0 0 0 1px #ffffff2e;background:#ffffff1a!important;border-color:#ffffffe6!important}.attendance-day:not(:disabled):not(:where(.selected,[aria-pressed=true],.today,.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)):hover{box-shadow:none;background:var(--bg-surface)!important;color:#fff!important;border-color:#ffffffe6!important}.attendance-day:not(:disabled):not(:where(.selected,[aria-pressed=true],.today,.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)):hover span{color:#fff!important}.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)}.modal-card-speaking-club-lesson{width:min(100%,820px)}.speaking-club-lesson-modal{gap:16px;display:grid}.speaking-club-lesson-form{gap:14px}.speaking-club-student-picker{border:1px solid var(--border);background:var(--bg-soft);border-radius:18px;gap:12px;padding:14px;display:grid}.compact-heading{align-items:center;margin-bottom:0}.compact-heading .card-actions{justify-content:flex-end;margin-left:auto}.compact-heading h4,.compact-heading p{margin:0}.speaking-club-student-filters{grid-template-columns:minmax(180px,1.2fr) minmax(170px,1fr) minmax(150px,.8fr);align-items:end;gap:10px;display:grid}.speaking-club-student-list{gap:8px;max-height:310px;padding-right:4px;display:grid;overflow-y:auto}.speaking-club-student-option{border:1px solid var(--border);background:color-mix(in srgb, var(--bg-card) 72%, transparent);color:var(--text-main);border-radius:14px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:6px 14px;padding:10px 12px;display:grid}.speaking-club-student-option input{width:18px;height:18px;accent-color:var(--accent);justify-self:start;margin:0}.speaking-club-student-option span{gap:3px;min-width:0;display:grid}.speaking-club-student-option .speaking-club-student-name-row{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.speaking-club-student-option strong,.speaking-club-student-option small{overflow-wrap:anywhere;min-width:0}.speaking-club-student-option strong{color:#fff}.speaking-club-student-option .speaking-club-student-price{color:#ffcf6b;font-size:.82rem;font-weight:600;line-height:1.2;display:inline-flex}.speaking-club-student-option small{color:var(--text-muted);font-size:.78rem}.lesson-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields{grid-template-columns:minmax(150px,1.1fr) minmax(82px,.45fr) minmax(170px,1.1fr) minmax(150px,.9fr) minmax(120px,.75fr)}.modal-card-small{width:min(100%,420px)}.speaking-club-session-modal{gap:16px;display:grid}.speaking-club-session-form{gap:16px}.speaking-club-session-form .date-range-picker,.speaking-club-session-form .date-range-trigger{width:100%;max-width:none}.speaking-club-session-form .date-range-trigger{min-width:0}.speaking-club-session-form .date-range-popover{left:0;right:auto}.speaking-club-session-form .card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;display:grid}.speaking-club-session-form .card-actions button{justify-content:center;width:100%;min-width:0}.modal-text{color:#d7e4f7;margin-bottom:18px}.confirmation-modal{gap:16px;display:grid}.confirmation-modal .section-heading{align-items:flex-start}.confirmation-modal .modal-text{margin:-4px 0 0;line-height:1.45}.confirmation-modal .metrics-tail{margin:-2px 0 0}.confirmation-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;display:grid}.confirmation-actions button{justify-content:center;width:100%;min-width:0;min-height:48px}.journal-delete-confirmation-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.journal-delete-confirmation-modal .section-heading{grid-template-columns:minmax(0,1fr) 42px;align-items:start;gap:12px;display:grid}.journal-delete-confirmation-modal .section-heading>div{min-width:0}.journal-delete-confirmation-modal .modal-close-button{place-self:start end;margin-top:-2px}@media (width<=640px){.schedule-mode-tabs{scrollbar-width:none;gap:8px;margin-inline:-2px}.schedule-mode-tabs::-webkit-scrollbar{display:none}.schedule-mode-tab{background:color-mix(in srgb, var(--bg-surface) 74%, transparent);border-color:var(--border);max-width:78vw;min-height:40px;color:var(--text-muted);white-space:nowrap;border-radius:999px;flex:none;padding:9px 12px;font-size:.82rem;font-weight:700}.schedule-mode-tab:hover{background:var(--button-hover-bg);border-color:var(--button-hover-border);color:var(--text-main);transform:none}.schedule-mode-tab.active{background:var(--button-active-bg);border-color:var(--button-active-border);color:var(--button-active-text);transform:none}.schedule-mode-tab span{text-overflow:ellipsis;min-width:0;overflow:hidden}.schedule-heading-actions,.speaking-club-header-actions{grid-template-columns:minmax(0,1fr);justify-content:stretch;width:100%;min-width:0;display:grid}.schedule-heading-actions>*,.speaking-club-header-actions>*{width:100%;max-width:none}.schedule-filter-panel .filters-bar{grid-template-columns:minmax(0,1fr)}.schedule-filter-panel .filters-bar>button{justify-content:center;width:100%;min-width:0}.modal-card-speaking-club-lesson{width:min(100%,100vw - 18px)}.modal-backdrop:has(.modal-card-speaking-club-lesson){align-items:center;padding:8px}.modal-card-speaking-club-lesson{border-radius:22px;align-self:center;height:auto;max-height:calc(100dvh - 16px);padding:14px;overflow-y:auto}.modal-card-speaking-club-lesson .section-heading{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;margin-bottom:0;display:grid}.modal-card-speaking-club-lesson .section-heading h3{font-size:1.05rem;line-height:1.15}.modal-card-speaking-club-lesson .section-heading p{font-size:.78rem;line-height:1.25}.modal-card-speaking-club-lesson .modal-close-button{border-radius:16px;width:38px;min-width:38px;height:38px}.speaking-club-lesson-modal,.speaking-club-lesson-form{gap:10px}.modal-card-speaking-club-lesson label,.modal-card-speaking-club-lesson .searchable-select{gap:5px;font-size:.72rem}.modal-card-speaking-club-lesson input,.modal-card-speaking-club-lesson select,.modal-card-speaking-club-lesson .searchable-select-trigger,.modal-card-speaking-club-lesson .searchable-select-search{border-radius:13px;min-height:40px;padding:9px 10px;font-size:.78rem}.modal-card-speaking-club-lesson button{font-size:.78rem}.speaking-club-lesson-form .lesson-form-row{grid-template-columns:minmax(0,1fr);gap:10px}.speaking-club-student-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.speaking-club-student-filters .search-field{grid-column:1/-1}.speaking-club-student-filters>.searchable-select{grid-column:1;min-width:0}.speaking-club-student-filters>label{grid-column:2;min-width:0}.speaking-club-student-filters select,.speaking-club-student-filters .searchable-select-trigger{width:100%}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields{grid-template-columns:minmax(76px,.45fr) minmax(0,1fr)}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields>label:first-child{grid-column:1/-1}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields>label:nth-child(2){grid-column:1}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields>.searchable-select{grid-column:2}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields>label:nth-child(4){grid-column:1}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields>label:nth-child(5){grid-column:2}.speaking-club-student-picker{border-radius:16px;gap:10px;padding:12px}.speaking-club-student-list{gap:7px;max-height:min(300px,42dvh)}.speaking-club-student-option{border-radius:13px;grid-template-columns:20px minmax(0,1fr);column-gap:10px;padding:9px 10px}.speaking-club-student-option strong{font-size:.78rem;line-height:1.2}.speaking-club-student-option .speaking-club-student-price{font-size:.72rem}.speaking-club-student-option small{font-size:.68rem;line-height:1.25}.speaking-club-student-option input{width:16px;height:16px}.compact-heading{grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.compact-heading h4{font-size:.9rem}.compact-heading p{font-size:.72rem}.compact-heading .card-actions{justify-content:flex-end;justify-self:end;width:auto;display:flex}.speaking-club-lesson-form>.card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.speaking-club-lesson-form>.card-actions button{justify-content:center;width:100%}.trash-page{gap:12px}.trash-page>.page-stack{gap:12px;min-width:0}.trash-page .panel{border-radius:18px;width:100%;max-width:100%;padding:14px;overflow:hidden}.trash-page .section-heading,.trash-summary-panel .card-actions{grid-template-columns:minmax(0,1fr);gap:12px;width:100%;min-width:0;display:grid}.trash-page .section-heading>div{min-width:0}.trash-page .section-heading h3,.trash-page .section-heading p{overflow-wrap:anywhere}.trash-summary-panel .card-actions{grid-template-columns:auto minmax(0,1fr);align-items:center}.trash-summary-panel .card-actions .ghost-button{white-space:nowrap;justify-content:center;min-width:0;padding-inline:12px}.trash-archived-panel>.section-heading{grid-template-columns:minmax(0,1fr) auto;align-items:start}.trash-lesson-row{border-radius:16px;gap:10px;padding:10px}.trash-lesson-row .salary-row-main{grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;display:grid}.trash-lesson-row .salary-row-main>div:first-child,.trash-lesson-row .salary-row-main strong,.trash-lesson-row .salary-row-main p,.trash-lesson-row .salary-row-meta span{overflow-wrap:anywhere;min-width:0}.trash-lesson-row .salary-row-meta{text-align:left;grid-template-columns:minmax(0,1fr) max-content 30px 30px;align-items:center;gap:8px;width:100%;margin-left:0;display:grid}.trash-lesson-row .salary-row-meta strong{white-space:nowrap}.trash-lesson-row .salary-row-meta .icon-button{border-radius:11px;width:30px;height:30px;padding:7px}.trash-people-grid{gap:12px}.trash-person-list{gap:8px}.trash-card{border-radius:15px;grid-template-columns:minmax(0,1fr) auto;gap:10px;width:100%;max-width:100%;padding:11px}.trash-card:before{inset-block:9px}.trash-card-main{gap:10px}.trash-card-avatar{border-radius:12px;flex-basis:36px;width:36px;height:36px;font-size:.76rem}.trash-card-copy{gap:3px}.trash-card h3{font-size:.9rem;line-height:1.16}.trash-card p{overflow-wrap:anywhere;font-size:.78rem;line-height:1.2}.trash-card-actions{align-self:center;gap:6px}.trash-card-actions .icon-button{border-radius:11px;width:32px;height:32px;padding:7px}}@media (width<=360px){.trash-page .panel{padding:12px}.trash-card{gap:8px;padding:9px}.trash-card-main{gap:8px}.trash-card-avatar{border-radius:10px;flex-basis:32px;width:32px;height:32px;font-size:.7rem}.trash-card-actions{gap:4px}.trash-card-actions .icon-button{width:28px;height:28px;padding:6px}.trash-lesson-row .salary-row-meta{grid-template-columns:minmax(0,1fr) max-content 28px 28px;gap:6px}.trash-lesson-row .salary-row-meta .icon-button{width:28px;height:28px;padding:6px}}@media (width<=520px){.confirmation-actions{grid-template-columns:1fr;gap:10px}.journal-delete-confirmation-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.confirmation-actions button{min-height:44px}}fieldset{border:0;margin:0;padding:0}legend{color:#a9bad4;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}}@media (width<=767px){.sidebar{border-radius:0 22px 22px 0;gap:14px;width:min(300px,100vw - 24px);padding:14px}.sidebar-nav,.sidebar-bottom-nav{gap:8px}.nav-item{border-radius:14px;gap:7px;min-height:38px;padding:7px 9px;font-size:.86rem;line-height:1.15}.nav-icon{border-radius:8px;flex:0 0 24px;width:24px;height:24px}.nav-icon svg{width:13px;height:13px}.nav-badge{min-width:20px;height:20px;padding:0 6px;font-size:.68rem}.sidebar-bottom{gap:10px}.sidebar-card{border-radius:16px;padding:12px}.sidebar-card strong{font-size:1rem}.sidebar-card p{font-size:.75rem;line-height:1.25}}@media (width<=1500px){.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>=1200px) and (width<=1500px){.student-table-header,.student-list-row{grid-template-columns:minmax(200px,1.12fr) repeat(4,minmax(90px,.66fr)) 220px minmax(116px,.62fr)}.student-metrics.compact>.metrics-tail{justify-self:center;width:220px;max-width:100%}}@media (width>=1500px) and (width<=1800px){.student-table-header,.student-list-row{grid-template-columns:minmax(210px,1.15fr) repeat(4,minmax(110px,.78fr)) 240px minmax(180px,1fr)}.student-metrics.compact>.metrics-tail{justify-self:center;width:240px;max-width:100%}}@media (width>=1801px){.student-table-header,.student-list-row{grid-template-columns:minmax(210px,1.15fr) repeat(4,minmax(110px,.78fr)) 260px minmax(180px,1fr)}.student-metrics.compact>.metrics-tail{justify-self:center;width:260px;max-width:100%}.schedule-grid .lesson-teacher-name{font-size:.9rem}}@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}.schedule-filter-panel .filters-bar{grid-template-columns:minmax(260px,1fr) minmax(180px,.72fr) minmax(150px,.72fr)}.schedule-filter-panel .search-field{grid-column:auto}.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>div>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}.salary-page-layout,.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:repeat(2,max-content);align-content:start;place-self:start;width:auto}.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{grid-template-columns:minmax(0,1fr);align-items:flex-start;gap:12px;display:grid}.schedule-week-panel .section-heading>div,.schedule-week-panel .schedule-heading-actions{width:100%;min-width:0}.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>.dashboard-side-panel,.dashboard-layout>.dashboard-teacher-panel,.dashboard-layout>.dashboard-recent-panel{grid-column:span 4}.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}.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{grid-template-columns:minmax(0,1fr);align-items:flex-start;gap:16px;display:grid}.schedule-week-panel .section-heading>div,.schedule-week-panel .schedule-heading-actions{width:100%;min-width:0}.schedule-week-picker{grid-template-columns:42px minmax(150px,1fr) max-content 42px;gap:8px;width:100%}.schedule-week-picker .teacher-week-nav-button,.schedule-week-picker .teacher-week-date-button,.schedule-week-picker .teacher-week-today-button{white-space:nowrap;min-height:40px}.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){.student-search-panel .filters-bar{grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:12px;display:grid}.student-search-panel .filters-bar>*{width:100%;min-width:0}.student-search-panel .search-field{grid-column:1/5}.student-search-panel .student-balance-summary-card{grid-column:5/7;gap:8px;min-width:0;padding:12px}.student-search-panel .student-balance-summary-item+.student-balance-summary-item{padding-left:8px}.student-search-panel .student-teacher-filter{grid-column:1/3}.student-search-panel .student-debtors-button{grid-column:3/5}.student-search-panel .student-add-button{grid-column:5/7}.student-search-panel .filters-bar button{white-space:nowrap;justify-content:center}}@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}.theme-light .sidebar:hover .nav-badge{color:#92400e;background:#ffedafe6;border-color:#f59e0b94}.theme-light .sidebar:has(.brand-link:focus-visible) .nav-badge{color:#92400e;background:#ffedafe6;border-color:#f59e0b94}.theme-light .sidebar:has(.nav-item:focus-visible) .nav-badge{color:#92400e;background:#ffedafe6;border-color:#f59e0b94}.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>.dashboard-side-panel,.dashboard-layout>.dashboard-teacher-panel,.dashboard-layout>.dashboard-recent-panel{grid-column:span 4}.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}.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}.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{grid-template-columns:minmax(0,1fr) minmax(420px,520px);align-items:center;gap:16px;display:grid}.schedule-week-picker{grid-template-columns:42px minmax(150px,1fr) max-content 42px;gap:8px;width:100%}.schedule-week-picker .teacher-week-nav-button,.schedule-week-picker .teacher-week-date-button,.schedule-week-picker .teacher-week-today-button{white-space:nowrap;min-height:40px}.schedule-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:12px}.day-column{border-radius:20px;min-width:0;padding:14px}.day-column h4{margin-bottom:12px}.schedule-card{border-radius:18px;padding:12px}.substitution-lesson-card,.inactive-lesson-card{padding-top:30px}.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}}@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{width:min(500px,100vw - 32px)}.modal-card-staff-settings{--staff-settings-modal-padding-x:10px;width:min(calc((var(--staff-settings-field-width) * 2) + 16px + (var(--staff-settings-modal-padding-x) * 2) + 2px), calc(100vw - 32px))}.modal-card-payment,.modal-card-substitution{width:min(350px,100vw - 32px)}.modal-card-attendance{width:min(370px,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-backdrop:has(.modal-card-speaking-club-lesson){padding:20px}.modal-card-speaking-club-lesson{border-radius:24px;width:min(960px,100vw - 40px);max-height:calc(100dvh - 40px);padding:16px;font-size:.9rem;overflow-y:auto}.modal-card-speaking-club-lesson .section-heading{margin-bottom:0}.modal-card-speaking-club-lesson .section-heading h3{font-size:1.16rem}.modal-card-speaking-club-lesson .section-heading p{font-size:.86rem}.speaking-club-lesson-modal,.speaking-club-lesson-form{gap:10px}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields{grid-template-columns:minmax(140px,1fr) minmax(76px,.42fr) minmax(168px,1.08fr) minmax(132px,.82fr) minmax(112px,.68fr);gap:10px}.speaking-club-student-picker{border-radius:16px;gap:10px;padding:12px}.speaking-club-student-filters{grid-template-columns:minmax(180px,1.15fr) minmax(180px,1fr) minmax(160px,.9fr);gap:10px}.speaking-club-student-list{max-height:min(300px,36dvh)}.speaking-club-student-option{border-radius:13px;padding:9px 10px}.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>=641px) and (width<=1199px){.modal-backdrop:has(.modal-card-speaking-club-lesson){padding:14px}.modal-card-speaking-club-lesson{border-radius:24px;width:min(820px,100vw - 28px);max-height:calc(100dvh - 28px);padding:16px;overflow-y:auto}.modal-card-speaking-club-lesson .section-heading{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;margin-bottom:0;display:grid}.modal-card-speaking-club-lesson .section-heading h3{font-size:1.12rem}.modal-card-speaking-club-lesson .section-heading p{font-size:.84rem}.speaking-club-lesson-modal,.speaking-club-lesson-form{gap:12px}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields{grid-template-columns:minmax(0,1fr) minmax(86px,112px) minmax(0,1fr);gap:10px}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields>label:first-child{grid-column:1}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields>label:nth-child(2){grid-column:2}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields>.searchable-select{grid-column:3}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields>label:nth-child(4){grid-column:1/3}.speaking-club-lesson-form .lesson-form-row.speaking-club-lesson-fields>label:nth-child(5){grid-column:3}.speaking-club-student-picker{border-radius:16px;gap:10px;padding:12px}.speaking-club-student-filters{grid-template-columns:minmax(0,1fr) minmax(180px,.9fr);gap:10px}.speaking-club-student-filters .search-field{grid-column:1/-1}.speaking-club-student-list{max-height:min(330px,42dvh)}.speaking-club-lesson-form>.card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.speaking-club-lesson-form>.card-actions button{justify-content:center;width:100%}}@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}.primary-button-tone-picker{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}.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{grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;gap:6px;width:100%;display:grid}.schedule-week-picker .teacher-week-nav-prev{grid-area:1/1}.schedule-week-picker .teacher-week-date-button{grid-area:1/2}.schedule-week-picker .teacher-week-nav-next{grid-area:1/3}.schedule-week-picker .teacher-week-today-button{grid-area:2/1/auto/-1}.schedule-week-picker .teacher-week-nav-button,.schedule-week-picker .teacher-week-date-button,.schedule-week-picker .teacher-week-today-button{white-space:nowrap;border-radius:12px;min-height:34px;font-size:.74rem}.salary-portal-accrual-panel,.salary-filter-panel,.salary-teacher-card{border-radius:18px;padding:12px}.salary-portal-accrual-panel{gap:10px}.salary-portal-accrual-panel .section-heading{gap:8px}.salary-portal-accrual-panel .section-heading h3{font-size:1rem}.salary-portal-accrual-panel .section-heading p{font-size:.78rem}.salary-portal-teacher-select{gap:5px;font-size:.78rem}.salary-portal-teacher-select .searchable-select-trigger,.salary-portal-teacher-select .searchable-select-search{border-radius:12px;min-height:38px;padding:9px 10px;font-size:.86rem}.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-teacher-head h3{font-size:.96rem;line-height:1.18}.salary-period-line{margin-top:4px;font-size:.74rem;line-height:1.25}.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{flex-direction:column;align-items:stretch}.student-portal-hero-meta{justify-content:flex-start}.student-portal-hero-summary{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;max-width:none;display:grid}.student-portal-hero-summary>div{min-width:0}.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 strong{text-align:center;font-size:.74rem;line-height:1.15}.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 .form-columns>label{flex:0 auto;width:100%}.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}.modal-card-attendance{border-radius:20px;width:calc(100vw - 52px);padding:14px}.modal-card-attendance .attendance-form{gap:10px;width:276px;max-width:100%;margin-inline:auto}.modal-card-attendance .attendance-picker{border-radius:12px;justify-self:center;gap:5px;width:276px;max-width:100%;padding:6px}.modal-card-attendance .attendance-picker-head{gap:6px}.modal-card-attendance .attendance-picker-head strong{font-size:.72rem}.modal-card-attendance .attendance-picker-head .icon-button{border-radius:10px;width:24px;min-width:24px;height:24px}.modal-card-attendance .attendance-picker-head .icon-button span{font-size:.92rem}.modal-card-attendance .attendance-weekdays,.modal-card-attendance .attendance-calendar{gap:3px}.modal-card-attendance .attendance-weekdays span{font-size:.52rem}.modal-card-attendance .attendance-day{border-radius:6px;font-size:.64rem}.modal-card-attendance .attendance-day small{min-width:9px;height:9px;font-size:.38rem;bottom:2px;right:2px}.modal-card-attendance .panel-nested,.modal-card-attendance .attendance-status-field,.modal-card-attendance .attendance-actions{justify-self:center;width:276px;max-width:100%}.modal-card-attendance .attendance-status-field .chip{overflow-wrap:anywhere;border-radius:12px;min-height:40px;padding:6px 3px;font-size:.65rem;font-weight:700;line-height:1.12}.modal-card-attendance .attendance-actions button{min-height:auto;font-size:inherit;border-radius:16px;padding:12px 16px;line-height:1.2}.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 .substitution-readonly-value,.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,.speaking-club-students-filter .balance-indicator,.student-search-panel .filters-bar label:not(.search-field),.student-search-panel .student-balance-summary-card,.speaking-club-students-filter .student-balance-summary-card{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,.speaking-club-students-filter .balance-indicator{border-radius:14px;min-width:0;padding:8px 10px}.student-search-panel .balance-indicator span,.speaking-club-students-filter .balance-indicator span{margin-bottom:4px;font-size:.74rem}.student-search-panel .balance-indicator strong,.speaking-club-students-filter .balance-indicator strong{font-size:.82rem}.student-balance-summary-card{gap:8px;min-width:0}.student-balance-summary-item+.student-balance-summary-item{padding-left:8px}.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>div>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:.76rem}.journal-card{flex-direction:row;align-items:center}.journal-card-main{gap:14px}.journal-card-avatar{border-radius:14px;width:44px;height:44px}.journal-card-avatar-core{border-radius:10px;width:30px;height:30px}.journal-card-avatar-core svg{stroke-width:2.4px;width:15px;height:15px}.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:minmax(88px,.42fr) minmax(0,1fr);align-items:start;gap:8px;padding:11px 12px}.journal-transaction-modal-row span{font-size:.76rem}.journal-transaction-modal-row strong{text-align:right;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-balances-heading-actions,.problem-balances-export-button{width:100%}.recent-transaction-card{align-items:center;gap:12px;height:auto;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-summary strong,.dashboard-teacher-lesson-metrics strong{font-size:.86rem;line-height:1.12}.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;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{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-salary-month-summary{grid-template-columns:1fr;gap:8px;padding:0;position:relative}.teacher-salary-month-picker{grid-template-columns:42px minmax(0,1fr) 42px;gap:8px;width:100%}.teacher-salary-month-nav-button:first-child{grid-area:1/1}.teacher-salary-month-date-button{grid-area:1/2;min-height:42px;padding:0 12px}.teacher-salary-month-nav-button:last-of-type{grid-area:1/3}.teacher-salary-month-range-button{grid-area:2/1/auto/-1;justify-self:start;width:min(164px,100% - 104px);min-height:40px}.teacher-salary-month-total{pointer-events:none;z-index:1;font-size:.9rem;position:absolute;bottom:20px;right:14px;transform:translateY(50%)}.teacher-salary-month-popover{width:100%;max-width:100%;left:0}.teacher-salary-month-popover.open-up{top:auto;bottom:calc(100% + 10px)}.teacher-salary-month-calendar{width:100%}.teacher-salary-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-salary-month-grid button{min-width:0;min-height:40px;font-size:.78rem}.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:0}}@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<=1199px){.portal-dashboard-layout{grid-template-columns:210px minmax(0,1fr)}}@media (width<=760px){.portal-dashboard-layout{grid-template-columns:1fr;gap:12px}.portal-category-panel{top:auto}.portal-detail-area{gap:12px}#student-portal-overview.student-portal-metrics,#teacher-portal-overview.student-portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.student-portal-payment-row{border-radius:12px;grid-template-columns:minmax(0,1fr) 32px;gap:8px;padding:10px 12px}.student-portal-payment-row span{font-size:.72rem;line-height:1.2}.student-portal-payment-row strong{font-size:.82rem;line-height:1.22}.ghost-button.icon-button.student-portal-copy-button,.ghost-button.icon-button.student-portal-copy-button:hover,.ghost-button.icon-button.student-portal-copy-button:focus,.ghost-button.icon-button.student-portal-copy-button:focus-visible,.ghost-button.icon-button.student-portal-copy-button:active{width:32px;min-width:32px;height:32px}}@media (width<=430px){.dashboard-teacher-summary strong,.dashboard-teacher-lesson-metrics strong{font-size:.8rem}.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:repeat(2,minmax(0,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}.portal-settings-password-card-compact .portal-password-management-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-settings-password-card-compact .portal-password-management-actions button{padding-inline:6px;font-size:.78rem}}@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%}}@media (width>=1200px) and (width<=1500px){.settings-staff-grid{grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr)}}@media (width<=1199px){:is(.settings-overview-grid,.settings-overview-grid:not(:has(.settings-backup-panel))){grid-template-columns:1fr}.settings-layout{grid-template-columns:200px minmax(0,1fr)}.settings-passwords-grid{grid-template-columns:1fr}}@media (width<=760px){.settings-overview-grid{gap:12px}.settings-layout{grid-template-columns:1fr;gap:12px;width:100%}.settings-category-panel{border-radius:18px;padding:10px;position:static}.settings-detail-area{width:100%}.settings-category-list{scrollbar-width:none;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.settings-category-list::-webkit-scrollbar{display:none}.settings-category-button{white-space:nowrap;border-radius:999px;flex:none;min-height:40px;padding:9px 12px;font-size:.82rem}.settings-tariffs-panel{border-radius:20px;padding:16px}.settings-tariffs-panel .section-heading{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:12px;display:grid}.settings-tariffs-panel .section-heading>div{min-width:0}.settings-tariffs-panel .section-heading h3{font-size:1.02rem}.tariff-add-button{justify-content:center;width:100%;min-height:40px}.settings-tariffs-stack{grid-template-columns:1fr;gap:10px}.settings-tariffs-stack>.tariff-settings-card:first-child{grid-column:auto}.tariff-settings-card{border-radius:14px;gap:12px;padding:14px 12px}.tariff-settings-head{grid-template-columns:minmax(0,1fr) auto;align-items:center}.tariff-settings-list{gap:7px}.tariff-settings-row{border-radius:11px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px}.tariff-settings-row strong{overflow-wrap:anywhere}.tariff-settings-row-actions{justify-content:flex-end;gap:6px}.tariff-settings-row-actions .icon-button{width:32px;min-width:32px;height:32px;min-height:32px}.tariff-single-field input{border-radius:11px;height:38px;min-height:38px}.settings-tariffs-panel .student-settings-toggle-row.compact{min-width:112px}.settings-overview-grid .panel-nested{border-radius:16px;padding:12px}.settings-telegram-panel .panel-nested{padding:10px}.settings-telegram-panel .telegram-settings-form{grid-template-columns:1fr;gap:7px}.settings-telegram-panel .crm-form input,.settings-telegram-panel .crm-form select,.settings-telegram-panel .crm-form .telegram-settings-checkbox{border-radius:11px;height:38px;min-height:38px}.settings-telegram-panel .crm-form .telegram-settings-checkbox{border-radius:999px;width:44px;height:24px;min-height:24px;padding:3px}.settings-telegram-panel .crm-form .telegram-settings-checkbox span{width:18px;height:18px}.settings-telegram-panel .telegram-settings-form .form-columns,.settings-telegram-panel .telegram-settings-form .telegram-quiet-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:10px}.settings-telegram-panel .telegram-settings-form .telegram-quiet-row{grid-template-columns:minmax(0,1fr) auto}.settings-telegram-panel .telegram-quiet-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.settings-telegram-panel .telegram-settings-form .telegram-balance-negative-row{grid-template-columns:minmax(0,.75fr) minmax(76px,.85fr)}.settings-telegram-panel .telegram-settings-form .telegram-balance-zero-row{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-telegram-panel .crm-form label{min-width:0}.settings-telegram-panel .telegram-setting-field>span,.settings-telegram-panel .telegram-setting-heading{grid-column:1/-2}.settings-telegram-panel .telegram-settings-checkbox{min-width:0}.settings-telegram-panel .telegram-settings-checkbox span{overflow-wrap:anywhere}.settings-backup-panel .settings-backup-button{width:100%}}@media (width<=430px){.settings-layout{gap:10px}.settings-category-panel{border-radius:16px;margin-inline:-2px;padding:8px}.settings-category-button{min-height:36px;padding:8px 10px;font-size:.78rem}.settings-tariffs-panel{border-radius:18px;margin-inline:-2px;padding:12px}.settings-tariffs-panel .section-heading{gap:10px}.tariff-settings-card{padding:12px 10px}.tariff-settings-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.tariff-settings-row-actions{justify-content:flex-end}.tariff-settings-row-actions .icon-button{width:30px;min-width:30px;height:30px;min-height:30px}.settings-telegram-panel .telegram-settings-form .telegram-quiet-row{grid-template-columns:minmax(0,1fr) auto}.settings-telegram-panel .telegram-settings-form .telegram-balance-negative-row{grid-template-columns:minmax(0,.75fr) minmax(76px,.85fr)}.settings-telegram-panel .telegram-settings-form .telegram-balance-negative-row .telegram-settings-checkbox,.settings-telegram-panel .telegram-settings-form .telegram-quiet-row .telegram-settings-checkbox{grid-column:-2/-1}}@media (width<=767px){.sidebar{gap:14px;width:min(300px,100vw - 24px);padding:14px}.sidebar-nav,.sidebar-bottom-nav{gap:8px}.nav-item{border-radius:14px;gap:7px;min-height:38px;padding:7px 9px;font-size:.86rem;line-height:1.15}.nav-icon{border-radius:8px;flex-basis:24px;width:24px;height:24px}.nav-icon svg{width:13px;height:13px}}.theme-light .teacher-week-nav-button,.theme-light .teacher-week-date-button,.theme-light .teacher-week-today-button{color:#243047;background:#ffffffdb;border-color:#4152762e}.theme-light .teacher-week-nav-button:disabled,.theme-light .teacher-week-date-button:disabled,.theme-light .teacher-week-today-button:disabled{color:#6b7890;opacity:1;background:#e8edf7eb}.theme-light .teacher-week-date-button svg{color:#6b7890}.theme-light .teacher-week-calendar .attendance-day.muted{opacity:1;color:#7a879d;background:#f8fbffeb;border-color:#4152761c}.theme-light .teacher-week-calendar .attendance-day.muted span{color:#7a879d}.theme-light .teacher-week-calendar .date-range-day.in-range{color:#047857;background:#dcf6ebc7;border-color:#05966933}.theme-light .teacher-week-calendar .date-range-day.range-start,.theme-light .teacher-week-calendar .date-range-day.range-end{color:#fff;background:linear-gradient(135deg,#6ed6a5,#10b981);border-color:#05966970;box-shadow:0 8px 18px #05966933}.theme-light .teacher-week-calendar .date-range-day.range-start span,.theme-light .teacher-week-calendar .date-range-day.range-end span{color:#fff}.theme-light .teacher-schedule-lesson-toggle small,.theme-light .teacher-schedule-lesson-toggle small span,.theme-light .teacher-schedule-students-title,.theme-light .teacher-schedule-student span{color:#536177}.theme-light .teacher-schedule-student:before{background:#536177}.theme-light .teacher-schedule-student strong,.theme-light .teacher-schedule-substitution-badge,.theme-light .teacher-schedule-substitution-badge>span,.theme-light .salary-lesson-title,.theme-light .salary-lesson-meta,.theme-light .salary-lesson-time,.theme-light .salary-lesson-type,.theme-light .salary-lesson-day,.theme-light .salary-lesson-card-main strong:not(.salary-lesson-card-index),.theme-light .salary-row-students p,.theme-light .salary-row-students li,.theme-light .salary-row-students span{color:#243047}.theme-light .salary-lesson-card-index{color:#fff;background:#6b7280}.theme-light .schedule-grid .regular-lesson-card{color:#243047;background:linear-gradient(180deg, color-mix(in srgb, hsl(var(--lesson-accent) / 1) 12%, #fff), #f8fbff 72%) padding-box, linear-gradient(135deg, hsl(var(--lesson-accent) / .95) 0%, hsl(var(--lesson-accent-gradient-end,var(--lesson-accent-light,var(--lesson-accent))) / .88) 100%) border-box;box-shadow:0 16px 34px #4152761f, 0 0 0 1px hsl(var(--lesson-accent) / .12)}.theme-light .schedule-grid .regular-lesson-card:hover,.theme-light .schedule-grid .regular-lesson-card:focus-visible,.theme-light .schedule-grid .regular-lesson-card.expanded{background:linear-gradient(180deg, color-mix(in srgb, hsl(var(--lesson-accent) / 1) 17%, #fff), #f5f8ff 72%) padding-box, linear-gradient(135deg, hsl(var(--lesson-accent) / 1) 0%, hsl(var(--lesson-accent-gradient-end,var(--lesson-accent-light,var(--lesson-accent))) / .96) 100%) border-box;box-shadow:0 20px 44px #41527629, 0 0 0 1px hsl(var(--lesson-accent) / .16)}.theme-light .schedule-grid .lesson-time,.theme-light .schedule-grid .lesson-card-head p,.theme-light .schedule-grid .lesson-note,.theme-light .schedule-grid .lesson-students p{color:#536177}.theme-light .schedule-grid .lesson-time:hover,.theme-light .schedule-grid .lesson-time:focus-visible,.theme-light .schedule-grid .lesson-card-head strong,.theme-light .schedule-grid .lesson-card-head span,.theme-light .schedule-grid .lesson-card-head p strong,.theme-light .schedule-grid .lesson-substitution-trigger,.theme-light .schedule-grid .lesson-cancel-trigger,.theme-light .schedule-grid .lesson-restore-trigger{color:#243047}.theme-light .schedule-grid .lesson-menu-trigger{color:#243047;background:#ffffffc7;border-color:#41527629}.theme-light .app-toast{background:linear-gradient(145deg,#e8eefbf5,#fffffffa 56%),#fff;border-color:#6077ad33;box-shadow:0 18px 42px #4152762b,inset 0 1px #ffffffdb}.theme-light .app-toast-icon{color:#3f6fae;background:linear-gradient(145deg,#d1def8f2,#ffe2e8b8);border:1px solid #6077ad2e;box-shadow:inset 0 1px #ffffffd1}.theme-light .app-toast-copy strong{color:#243047}.theme-light .app-toast-copy p,.theme-light .app-toast-close{color:#536177}.theme-light .app-toast-close:hover,.theme-light .app-toast-close:focus-visible{color:#243047}.theme-light .dashboard-stat-card{--dashboard-card-surface:#fff;background:linear-gradient(145deg, color-mix(in srgb, var(--dashboard-card-accent) 13%, #fff), #fff 64%);border-color:color-mix(in srgb, var(--dashboard-card-accent) 24%, #41527629);box-shadow:0 16px 34px #41527621,inset 0 1px #ffffffe6}.theme-light .dashboard-stat-card.income{--dashboard-card-accent:#4d7fc0}.theme-light .dashboard-stat-card.expense{--dashboard-card-accent:#de6d82}.theme-light .dashboard-stat-card.net{--dashboard-card-accent:#4f68d5}.theme-light .dashboard-stat-card.debt{--dashboard-card-accent:#c86498}.theme-light .dashboard-stat-card.students-total{--dashboard-card-accent:#d8913b}.theme-light .dashboard-stat-card.teachers-total{--dashboard-card-accent:#7a7ecf}.theme-light .dashboard-stat-card .stat-icon{color:var(--dashboard-card-accent);background:color-mix(in srgb, var(--dashboard-card-accent) 14%, #fff);border-color:color-mix(in srgb, var(--dashboard-card-accent) 25%, #41527624);box-shadow:inset 0 1px #ffffffdb}.theme-light .dashboard-stat-card-title span,.theme-light .dashboard-stat-card-caption{color:#536177}.theme-light .stat-card.dashboard-stat-card strong{color:#243047}.theme-light .stat-card.dashboard-stat-card .dashboard-stat-card-delta.positive{color:#047857}.theme-light .stat-card.dashboard-stat-card .dashboard-stat-card-delta.negative{color:#b42347}.theme-light .stat-card.dashboard-stat-card .dashboard-stat-card-delta.neutral{color:#6b7890}@media (width<=900px){.trash-people-grid,.salary-page-layout{grid-template-columns:minmax(0,1fr)}.salary-page-layout>*,.salary-page-side{width:100%;min-width:0}}.crm-shell button:not(.attendance-day):not(.attendance-status-chip):not(.primary-button):not(.danger-button):not(.journal-delete-button):not(.journal-transaction-delete-button):not(.salary-delete-button):not(.auth-password-toggle):not(.student-status-switch):not(.theme-switch):not(.student-table-sort-button):not(.problem-card):not(.dashboard-teacher-lesson-button):not(.brand-link):not(.search-clear-button):not(.primary-button-tone-option):not(:disabled):hover,.crm-shell button:not(.attendance-day):not(.attendance-status-chip):not(.primary-button):not(.danger-button):not(.journal-delete-button):not(.journal-transaction-delete-button):not(.salary-delete-button):not(.auth-password-toggle):not(.student-status-switch):not(.theme-switch):not(.student-table-sort-button):not(.problem-card):not(.dashboard-teacher-lesson-button):not(.brand-link):not(.search-clear-button):not(.primary-button-tone-option):not(:disabled):focus-visible{background:var(--button-hover-bg);border-color:var(--button-hover-border)}.crm-shell .problem-card:not(:disabled):hover,.crm-shell .problem-card:not(:disabled):focus-visible{background:var(--bg-soft);border-color:var(--border);transform:none}.crm-shell .dashboard-side-panel .ghost-button:not(:disabled):hover,.crm-shell .dashboard-side-panel .ghost-button:not(:disabled):focus-visible{background:var(--bg-surface);border-color:var(--border);transform:none}.crm-shell .dashboard-teacher-lesson-button:not(:disabled):hover,.crm-shell .dashboard-teacher-lesson-button:not(:disabled):focus-visible{background:0 0;border-color:#0000;transform:none}.crm-shell button.active:not(.attendance-day):not(.attendance-status-chip):not(.primary-button):not(.danger-button):not(.student-status-switch):not(.theme-switch):not(:disabled),.crm-shell button[aria-pressed=true]:not(.attendance-day):not(.attendance-status-chip):not(.primary-button):not(.danger-button):not(.student-status-switch):not(.theme-switch):not(:disabled){background:var(--button-active-bg);border-color:var(--button-active-border);color:var(--button-active-text)}.crm-shell .student-portal-student-switcher button:not(:disabled):hover,.crm-shell .student-portal-student-switcher button:not(:disabled):focus-visible,.crm-shell .student-portal-student-switcher button.active:not(:disabled),.crm-shell .student-portal-student-switcher button[aria-pressed=true]:not(:disabled){box-shadow:none;background:0 0!important;border-color:#0000!important}.crm-shell .student-portal-student-switcher button.active:not(:disabled),.crm-shell .student-portal-student-switcher button[aria-pressed=true]:not(:disabled),.crm-shell .student-portal-student-switcher button.active:not(:disabled):hover,.crm-shell .student-portal-student-switcher button[aria-pressed=true]:not(:disabled):hover,.crm-shell .student-portal-student-switcher button.active:not(:disabled):focus-visible,.crm-shell .student-portal-student-switcher button[aria-pressed=true]:not(:disabled):focus-visible{color:#fff!important}.crm-shell .teacher-schedule-student:not(:disabled):hover,.crm-shell .teacher-schedule-student:not(:disabled):focus-visible{box-shadow:none;background:color-mix(in srgb, var(--bg-soft) 72%, transparent)!important;border-color:#0000!important}.crm-shell .teacher-schedule-lesson-toggle:not(:disabled):hover,.crm-shell .teacher-schedule-lesson-toggle:not(:disabled):focus-visible,.crm-shell .teacher-schedule-day>.teacher-schedule-toggle:not(:disabled):hover,.crm-shell .teacher-schedule-day>.teacher-schedule-toggle:not(:disabled):focus-visible{box-shadow:none;background:0 0!important;border-color:#0000!important}.crm-shell .teacher-schedule-student.absent:not(:disabled),.crm-shell .teacher-schedule-student[aria-pressed=true]:not(:disabled),.crm-shell .teacher-schedule-student.absent:not(:disabled):hover,.crm-shell .teacher-schedule-student[aria-pressed=true]:not(:disabled):hover,.crm-shell .teacher-schedule-student.absent:not(:disabled):focus-visible,.crm-shell .teacher-schedule-student[aria-pressed=true]:not(:disabled):focus-visible{box-shadow:none;background:color-mix(in srgb, var(--danger) 20%, transparent)!important;color:inherit!important;border-color:#0000!important}.crm-shell .attendance-day.selected:not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)),.crm-shell .attendance-day[aria-pressed=true]:not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)){color:inherit!important;background:#ffffff1a!important;border-color:#ffffffe6!important;font-weight:400!important;box-shadow:inset 0 0 0 1px #ffffff2e!important}.crm-shell .attendance-day.selected:not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)) span,.crm-shell .attendance-day[aria-pressed=true]:not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)) span{color:#fff!important;font-weight:900!important}.crm-shell .attendance-day:is(.selected,[aria-pressed=true]):is(.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day) span{color:#fff!important}.attendance-student-calendar .attendance-day:is(.selected,[aria-pressed=true]):not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)),.modal-card-attendance .attendance-picker .attendance-day:is(.selected,[aria-pressed=true]):not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)),.student-portal-schedule-picker .attendance-day:is(.selected,[aria-pressed=true]):not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)){color:#fff!important;box-shadow:none!important;background:#68a8ff3d!important;border-color:#68a8ffb3!important;font-weight:400!important}.attendance-student-calendar .attendance-day:is(.selected,[aria-pressed=true]):not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)) span,.modal-card-attendance .attendance-picker .attendance-day:is(.selected,[aria-pressed=true]):not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)) span,.student-portal-schedule-picker .attendance-day:is(.selected,[aria-pressed=true]):not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)) span{color:#fff!important;font-weight:400!important}.attendance-student-calendar .attendance-day:is(.selected,[aria-pressed=true]):not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)) small,.modal-card-attendance .attendance-picker .attendance-day:is(.selected,[aria-pressed=true]):not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)) small,.student-portal-schedule-picker .attendance-day:is(.selected,[aria-pressed=true]):not(:where(.in-range,.range-start,.range-end,.study-day,.transfer-day,.selection-1,.selection-2,.selection-3,.selection-4,.selection-5,.attendance-student-day-scheduled,.attendance-student-day-completed,.attendance-student-day-transfer,.attendance-student-day-transfer-out,.attendance-student-day-refund,.attendance-student-day-absent,.attendance-cancelled-lesson-day,.attendance-past-lesson-day,.attendance-replaced-lesson-day,.attendance-upcoming-lesson-day,.attendance-substitution-lesson-day,.attendance-past-substitution-day,.teacher-calendar-day-completed,.teacher-calendar-day-upcoming,.teacher-calendar-day-upcoming-substitution,.teacher-calendar-day-replaced,.teacher-calendar-day-cancelled,.student-start-lesson-day,.student-start-debt-day,.student-start-substitution-day,.payment-paid-day,.payment-past-paid-day,.payment-balance-day,.payment-paid-upcoming-day,.payment-debt-day,.payment-upcoming-day,.payment-substitution-day,.payment-past-substitution-day,.payment-unpaid-substitution-day,.payment-refund-day)) small{color:#fff!important;background:#68a8ff8c!important;font-weight:400!important}.attendance-day.payment-excluded-day,.attendance-day.payment-excluded-day.selected,.attendance-day.payment-excluded-day[aria-pressed=true],.attendance-day.attendance-student-day-excluded,.attendance-day.attendance-student-day-excluded.selected,.attendance-day.attendance-student-day-excluded[aria-pressed=true]{background:var(--bg-surface)!important;color:#f59e0b!important;border-color:#f59e0bdb!important;font-weight:900!important;box-shadow:inset 0 0 0 1px #f59e0b2e!important}.attendance-day.payment-excluded-day span,.attendance-day.payment-excluded-day.selected span,.attendance-day.payment-excluded-day[aria-pressed=true] span,.attendance-day.attendance-student-day-excluded span,.attendance-day.attendance-student-day-excluded.selected span,.attendance-day.attendance-student-day-excluded[aria-pressed=true] span,.attendance-day.payment-excluded-day small,.attendance-day.attendance-student-day-excluded small{color:#f59e0b!important;background:0 0!important;font-weight:900!important}.theme-light .attendance-day.payment-excluded-day,.theme-light .attendance-day.payment-excluded-day.selected,.theme-light .attendance-day.payment-excluded-day[aria-pressed=true],.theme-light .attendance-day.attendance-student-day-excluded,.theme-light .attendance-day.attendance-student-day-excluded.selected,.theme-light .attendance-day.attendance-student-day-excluded[aria-pressed=true]{background:var(--bg-surface)!important;color:#b45309!important;border-color:#d977069e!important}.theme-light .attendance-day.payment-excluded-day span,.theme-light .attendance-day.payment-excluded-day.selected span,.theme-light .attendance-day.payment-excluded-day[aria-pressed=true] span,.theme-light .attendance-day.attendance-student-day-excluded span,.theme-light .attendance-day.attendance-student-day-excluded.selected span,.theme-light .attendance-day.attendance-student-day-excluded[aria-pressed=true] span,.theme-light .attendance-day.payment-excluded-day small,.theme-light .attendance-day.attendance-student-day-excluded small{color:#b45309!important}.crm-shell .danger-button:hover:not(:disabled),.crm-shell .danger-button:focus-visible:not(:disabled),.crm-shell .journal-delete-button:hover:not(:disabled),.crm-shell .journal-delete-button:focus-visible:not(:disabled),.crm-shell .journal-transaction-delete-button:hover:not(:disabled),.crm-shell .journal-transaction-delete-button:focus-visible:not(:disabled),.crm-shell .salary-delete-button:hover:not(:disabled),.crm-shell .salary-delete-button:focus-visible:not(:disabled){background:var(--button-hover-danger-bg);border-color:var(--button-hover-danger-border)}.crm-shell button.account-password-reset-button,.crm-shell button.staff-delete-button{background:var(--bg-surface)!important;border-color:color-mix(in srgb, var(--danger) 42%, var(--border))!important;color:var(--danger)!important}.crm-shell button.account-password-reset-button:hover,.crm-shell button.account-password-reset-button:focus-visible,.crm-shell button.account-password-reset-button:disabled:hover,.crm-shell button.account-password-reset-button:disabled:focus-visible,.crm-shell button.staff-delete-button:hover,.crm-shell button.staff-delete-button:focus-visible,.crm-shell button.staff-delete-button:disabled:hover,.crm-shell button.staff-delete-button:disabled:focus-visible{transform:none;background:color-mix(in srgb, var(--danger) 22%, var(--bg-surface))!important;border-color:color-mix(in srgb, var(--danger) 72%, var(--border))!important;box-shadow:none!important;color:var(--danger)!important}.crm-shell button.account-password-reset-button:disabled,.crm-shell button.staff-delete-button:disabled{background:var(--bg-surface)!important;border-color:color-mix(in srgb, var(--danger) 34%, var(--border))!important;color:var(--danger)!important}.crm-shell .schedule-grid .lesson-substitution-trigger,.crm-shell .schedule-grid .lesson-substitution-trigger:hover:not(:disabled),.crm-shell .schedule-grid .lesson-substitution-trigger:focus-visible:not(:disabled),.crm-shell .schedule-grid .lesson-cancel-trigger,.crm-shell .schedule-grid .lesson-cancel-trigger:hover:not(:disabled),.crm-shell .schedule-grid .lesson-cancel-trigger:focus-visible:not(:disabled),.crm-shell .schedule-grid .lesson-cancel-trigger.active:not(:disabled){box-shadow:none;background:0 0!important;border-color:#0000!important}.crm-shell button.student-portal-absence-toggle:not([aria-pressed=true]):not(:disabled):hover,.crm-shell button.student-portal-absence-toggle:not([aria-pressed=true]):not(:disabled):focus-visible{color:#ffc0c0!important;box-shadow:none!important;background:#f871712e!important;border-color:#f871717a!important;transform:none!important}.crm-shell button.student-portal-absence-toggle[aria-pressed=true]:not(:disabled):hover,.crm-shell button.student-portal-absence-toggle[aria-pressed=true]:not(:disabled):focus-visible{color:#ffc0c0!important;box-shadow:none!important;background:#f8717129!important;border-color:#f871716b!important;transform:none!important}.crm-shell.student-portal-screen .teacher-week-picker button:not(:disabled):hover,.crm-shell.student-portal-screen .teacher-week-picker button:not(:disabled):focus-visible,.crm-shell.student-portal-screen .teacher-salary-month-summary button:not(:disabled):hover,.crm-shell.student-portal-screen .teacher-salary-month-summary button:not(:disabled):focus-visible,.crm-shell.student-portal-screen .teacher-salary-month-grid button:not(:disabled):hover,.crm-shell.student-portal-screen .teacher-salary-month-grid button:not(:disabled):focus-visible,.crm-shell.student-portal-screen .teacher-salary-month-grid button.active:not(:disabled),.crm-shell.student-portal-screen .teacher-salary-month-grid button[aria-pressed=true]:not(:disabled){background:color-mix(in srgb, var(--text-muted) 10%, var(--bg-soft))!important;border-color:color-mix(in srgb, var(--text-muted) 32%, var(--border))!important;box-shadow:none!important;color:var(--text-main)!important;transform:none!important}.crm-shell.student-portal-screen .teacher-schedule-actions .teacher-schedule-action:not(:disabled),.crm-shell.student-portal-screen .teacher-schedule-actions .teacher-schedule-action:not(:disabled):hover,.crm-shell.student-portal-screen .teacher-schedule-actions .teacher-schedule-action:not(:disabled):focus-visible,.crm-shell.student-portal-screen .teacher-schedule-actions .teacher-schedule-action.active:not(:disabled),.crm-shell.student-portal-screen .teacher-schedule-actions .teacher-schedule-action[aria-pressed=true]:not(:disabled){box-shadow:none!important;color:#fff!important;background:0 0!important;border-color:#0000!important;transform:none!important}.crm-shell.student-portal-screen.theme-light .teacher-schedule-actions .teacher-schedule-action:not(:disabled),.crm-shell.student-portal-screen.theme-light .teacher-schedule-actions .teacher-schedule-action:not(:disabled):hover,.crm-shell.student-portal-screen.theme-light .teacher-schedule-actions .teacher-schedule-action:not(:disabled):focus-visible,.crm-shell.student-portal-screen.theme-light .teacher-schedule-actions .teacher-schedule-action.active:not(:disabled),.crm-shell.student-portal-screen.theme-light .teacher-schedule-actions .teacher-schedule-action[aria-pressed=true]:not(:disabled){color:#111827!important}.crm-shell.student-portal-screen .teacher-salary-toggle:not(:disabled):hover,.crm-shell.student-portal-screen .teacher-salary-toggle:not(:disabled):focus-visible,.crm-shell.student-portal-screen .teacher-salary-toggle.active:not(:disabled),.crm-shell.student-portal-screen .teacher-salary-day-toggle:not(:disabled):hover,.crm-shell.student-portal-screen .teacher-salary-day-toggle:not(:disabled):focus-visible,.crm-shell.student-portal-screen .teacher-salary-day-toggle.active:not(:disabled),.crm-shell.student-portal-screen .teacher-salary-lesson-toggle:not(:disabled):hover,.crm-shell.student-portal-screen .teacher-salary-lesson-toggle:not(:disabled):focus-visible,.crm-shell.student-portal-screen .teacher-salary-lesson-toggle.active:not(:disabled),.crm-shell .salary-portal-accrual-panel .teacher-salary-toggle:not(:disabled):hover,.crm-shell .salary-portal-accrual-panel .teacher-salary-toggle:not(:disabled):focus-visible,.crm-shell .salary-portal-accrual-panel .teacher-salary-toggle:not(:disabled):active,.crm-shell .salary-portal-accrual-panel .teacher-salary-toggle.active:not(:disabled),.crm-shell .salary-portal-accrual-panel .teacher-salary-toggle[aria-expanded=true]:not(:disabled),.crm-shell .salary-portal-accrual-panel .teacher-salary-day-toggle:not(:disabled):hover,.crm-shell .salary-portal-accrual-panel .teacher-salary-day-toggle:not(:disabled):focus-visible,.crm-shell .salary-portal-accrual-panel .teacher-salary-day-toggle:not(:disabled):active,.crm-shell .salary-portal-accrual-panel .teacher-salary-day-toggle.active:not(:disabled),.crm-shell .salary-portal-accrual-panel .teacher-salary-day-toggle[aria-expanded=true]:not(:disabled),.crm-shell .salary-portal-accrual-panel .teacher-salary-lesson-toggle:not(:disabled):hover,.crm-shell .salary-portal-accrual-panel .teacher-salary-lesson-toggle:not(:disabled):focus-visible,.crm-shell .salary-portal-accrual-panel .teacher-salary-lesson-toggle:not(:disabled):active,.crm-shell .salary-portal-accrual-panel .teacher-salary-lesson-toggle.active:not(:disabled),.crm-shell .salary-portal-accrual-panel .teacher-salary-lesson-toggle[aria-expanded=true]:not(:disabled){box-shadow:none!important;color:inherit!important;background:0 0!important;border-color:#0000!important;transform:none!important}.crm-shell.student-portal-screen .teacher-salary-period.expanded>.teacher-salary-toggle .teacher-schedule-caret,.crm-shell.student-portal-screen .teacher-salary-day.expanded>.teacher-salary-day-toggle .teacher-schedule-caret,.crm-shell.student-portal-screen .teacher-salary-lesson.expanded>.teacher-salary-lesson-toggle .teacher-schedule-caret{background:color-mix(in srgb, var(--text-muted) 16%, transparent)!important;color:var(--text-main)!important}@media (width<=1180px){.speaking-club-tabs-panel{padding:12px}.speaking-club-page-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid;overflow:visible}.speaking-club-page-tabs .schedule-mode-tab{justify-content:center;width:100%;min-width:0}.speaking-club-students-filter .section-heading{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.speaking-club-students-summary{justify-self:start}.speaking-club-students-filter .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.speaking-club-students-filter .search-field{grid-column:1/-1}.speaking-club-students-filter .filters-bar>*{width:100%;min-width:0}.schedule-filter-panel .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr))}:is(.schedule-filter-panel .filters-bar:has(.speaking-club-create-button),.schedule-filter-panel .schedule-speaking-club-filters){grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.schedule-filter-panel .search-field{grid-column:1/-1}:is(.schedule-filter-panel .filters-bar:has(.speaking-club-create-button) .search-field,.schedule-filter-panel .schedule-speaking-club-filters .search-field,.schedule-filter-panel .filters-bar:has(.speaking-club-create-button)>.searchable-select,.schedule-filter-panel .schedule-speaking-club-filters>.searchable-select){width:100%;min-width:0;max-width:none}.schedule-filter-panel .schedule-speaking-club-filters{column-gap:16px}.schedule-week-panel .section-heading:has(.speaking-club-header-actions){grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.speaking-club-header-actions{grid-template-columns:minmax(220px,1fr) repeat(2,minmax(120px,auto));align-items:end;width:100%;min-width:0;display:grid}.speaking-club-header-actions>*{min-width:0}}@media (width>=768px) and (width<=1200px){.schedule-filter-panel .filters-bar:not(:has(.speaking-club-create-button)){grid-template-columns:minmax(260px,1fr) minmax(180px,.72fr) minmax(150px,.72fr)}.schedule-filter-panel .filters-bar:not(:has(.speaking-club-create-button)) .search-field{grid-column:auto}.speaking-club-students-filter .filters-bar{grid-template-columns:minmax(240px,1fr) minmax(280px,320px);align-items:end}.speaking-club-students-filter .search-field{grid-column:auto}.speaking-club-students-filter .filters-bar>.searchable-select{grid-column:1}.speaking-club-students-filter .filters-bar>button{white-space:nowrap;grid-column:2;min-width:0}}@media (width>=640px) and (width<=767px){.speaking-club-students-page{gap:10px}.speaking-club-students-filter{border-radius:18px;gap:10px;padding:12px}.speaking-club-students-filter .section-heading{gap:10px}.speaking-club-students-summary{width:100%}.speaking-club-students-filter .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.speaking-club-students-filter .search-field{grid-column:1/-1}.speaking-club-students-filter .filters-bar>button{border-radius:12px;justify-content:center;width:100%;min-width:0;min-height:38px;padding:8px 10px;font-size:.74rem}.speaking-club-students-filter .searchable-select-trigger,.speaking-club-students-filter .search-input-wrap input{border-radius:12px;min-height:38px;font-size:.74rem}.speaking-club-student-table-header{display:none}.speaking-club-student-card{border-radius:18px;padding:14px}.speaking-club-student-card .student-list-row{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:8px}.speaking-club-student-card .student-title,.speaking-club-student-card .student-head-actions{grid-column:1/-1}.speaking-club-student-card .student-title h3{font-size:1rem;line-height:1.15}.speaking-club-student-card .student-title p{margin-top:4px;font-size:.78rem;line-height:1.18}.speaking-club-student-metrics.compact>div{background:var(--bg-soft);border-color:var(--border);border-radius:14px;place-items:center;min-width:0;min-height:54px;padding:9px 10px}.speaking-club-student-metrics.compact>div:first-child,.speaking-club-student-metrics.compact>div:nth-child(2),.speaking-club-student-metrics.compact>.student-next-payment-metric,.speaking-club-student-metrics.compact>div:nth-child(4){grid-column:span 1}.speaking-club-student-metrics.compact>div>span{font-size:.74rem}.speaking-club-student-metrics.compact strong,.speaking-club-student-metrics.compact>div:nth-child(-n+3) strong,.speaking-club-student-metrics.compact>div.student-next-payment-metric strong,.speaking-club-student-metrics.compact>div.student-next-payment-metric .student-metric-subvalue{font-size:.9rem;line-height:1.1}.speaking-club-student-metrics.compact>div:nth-child(4) strong{font-size:.78rem;line-height:1.15}.speaking-club-student-metrics.compact>.metrics-tail{display:none}.speaking-club-student-card .student-head-actions{grid-template-columns:minmax(0,1fr) 44px 44px;justify-self:stretch;gap:8px;min-width:0;display:grid}.speaking-club-student-card .student-payment-button{grid-area:1/1;justify-content:center;align-items:center;width:100%;height:40px;min-height:40px;padding-block:0;line-height:1;display:flex}.speaking-club-student-card .student-payment-button+.icon-button{grid-area:1/2}.speaking-club-student-card .student-payment-button+.icon-button+.icon-button{grid-area:1/3}.speaking-club-student-card .student-head-actions .icon-button,.speaking-club-student-card .student-head-actions .menu-trigger{border-radius:14px;width:100%;min-width:0;height:40px}}@media (width>=990px) and (width<=1200px){.speaking-club-student-table-header{display:none}.speaking-club-student-card{border-radius:18px;padding:14px 16px}.speaking-club-student-card .student-list-row{grid-template-columns:minmax(210px,1.05fr) repeat(4,minmax(100px,.72fr)) minmax(150px,.72fr);align-items:center;gap:10px}.speaking-club-student-card .student-title{grid-column:auto}.speaking-club-student-card .student-title h3{font-size:.98rem;line-height:1.15}.speaking-club-student-card .student-title p{margin-top:3px;font-size:.72rem;line-height:1.18}.speaking-club-student-metrics.compact>div{background:0 0;border-color:#0000;border-radius:0;place-items:center;min-width:0;min-height:0;padding:0 4px}.speaking-club-student-metrics.compact>div:first-child,.speaking-club-student-metrics.compact>div:nth-child(2),.speaking-club-student-metrics.compact>.student-next-payment-metric,.speaking-club-student-metrics.compact>div:nth-child(4){grid-column:span 1}.speaking-club-student-metrics.compact>.metrics-tail{display:none}.speaking-club-student-metrics.compact strong,.speaking-club-student-metrics.compact>div:nth-child(-n+3) strong,.speaking-club-student-metrics.compact>div.student-next-payment-metric strong,.speaking-club-student-metrics.compact>div.student-next-payment-metric .student-metric-subvalue{font-size:.98rem;line-height:1.1}.speaking-club-student-metrics.compact>div:nth-child(4) strong{font-size:.82rem;line-height:1.15}.speaking-club-student-card .student-head-actions{grid-column:auto;grid-template-columns:minmax(78px,1fr) 36px 36px;justify-self:end;align-items:center;gap:6px;min-width:0;display:grid}.speaking-club-student-card .student-payment-button{border-radius:12px;grid-column:1;justify-content:center;width:100%;height:34px;min-height:34px;padding:8px 10px;font-size:.72rem}.speaking-club-student-card .student-payment-button+.icon-button{grid-column:2}.speaking-club-student-card .student-payment-button+.icon-button+.icon-button{grid-column:3}.speaking-club-student-card .student-head-actions .icon-button{border-radius:12px;width:36px;min-width:36px;height:34px;padding:8px}}@media (width<=640px){.speaking-club-page{gap:10px}.speaking-club-tabs-panel{border-radius:18px;padding:10px}.speaking-club-page-tabs{gap:8px}.speaking-club-page-tabs .schedule-mode-tab{border-radius:13px;max-width:none;min-height:38px;padding:8px 10px;font-size:.78rem}.speaking-club-page-tabs .schedule-mode-tab small{padding:3px 6px;font-size:.62rem}.speaking-club-students-page{gap:10px}.speaking-club-students-filter{border-radius:18px;gap:10px;padding:12px}.speaking-club-students-filter .section-heading{gap:10px}.speaking-club-students-filter .section-heading h3{font-size:1rem;line-height:1.15}.speaking-club-students-filter .section-heading p{font-size:.76rem;line-height:1.25}.speaking-club-students-summary{width:100%}.speaking-club-students-filter .filters-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.speaking-club-students-filter .search-field{grid-column:1/-1}.speaking-club-students-filter .filters-bar>button{border-radius:12px;justify-content:center;min-height:38px;padding:8px 10px;font-size:.74rem}.speaking-club-students-filter .searchable-select-trigger,.speaking-club-students-filter .search-input-wrap input{border-radius:12px;min-height:38px;font-size:.74rem}.schedule-filter-panel .filters-bar{grid-template-columns:minmax(0,1fr)}.schedule-filter-panel .schedule-regular-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-filter-panel .schedule-regular-filters .search-field{grid-column:1/-1}:is(.schedule-filter-panel .filters-bar:has(.speaking-club-create-button),.schedule-filter-panel .schedule-speaking-club-filters){grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.schedule-filter-panel .schedule-speaking-club-filters .search-field{grid-column:1/-1}.schedule-filter-panel .schedule-speaking-club-filters>.searchable-select,.schedule-filter-panel .schedule-speaking-club-filters>.speaking-club-create-button{grid-column:span 1;width:100%;min-width:0}.schedule-filter-panel .schedule-speaking-club-filters .speaking-club-create-button{border-radius:12px;justify-content:center;min-height:38px;padding:8px 10px;font-size:.74rem}.schedule-week-panel .section-heading:has(.speaking-club-header-actions){gap:10px}.schedule-week-panel .section-heading:has(.speaking-club-header-actions) h3{font-size:1rem;line-height:1.15}.schedule-week-panel .section-heading:has(.speaking-club-header-actions) p{font-size:.74rem;line-height:1.25}.schedule-title-row{gap:8px}.speaking-club-header-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.speaking-club-header-actions .schedule-week-picker{grid-column:1/-1}.speaking-club-header-actions button{border-radius:12px;justify-content:center;width:100%;min-height:38px;padding:8px 10px;font-size:.74rem}.speaking-club-student-card{border-radius:18px;padding:14px}.speaking-club-student-card .student-list-row{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:8px}.speaking-club-student-card .student-title,.speaking-club-student-card .student-head-actions{grid-column:1/-1}.speaking-club-student-card .student-title h3{font-size:1rem;line-height:1.15}.speaking-club-student-card .student-title p{margin-top:4px;font-size:.78rem;line-height:1.18}.speaking-club-student-metrics.compact>div{background:var(--bg-soft);border-color:var(--border);border-radius:14px;place-items:center;min-width:0;min-height:54px;padding:9px 10px}.speaking-club-student-metrics.compact>div>span{font-size:.74rem}.speaking-club-student-metrics.compact strong,.speaking-club-student-metrics.compact>div:nth-child(-n+3) strong,.speaking-club-student-metrics.compact>div.student-next-payment-metric strong,.speaking-club-student-metrics.compact>div.student-next-payment-metric .student-metric-subvalue{font-size:.9rem;line-height:1.1}.speaking-club-student-metrics.compact>div:nth-child(4) strong{font-size:.78rem;line-height:1.15}.speaking-club-student-metrics.compact>.metrics-tail{display:none}.speaking-club-student-card .student-head-actions{grid-template-columns:minmax(0,1fr) 44px 44px;justify-self:stretch;gap:8px;min-width:0;display:grid}.speaking-club-student-card .student-payment-button{grid-area:1/1;justify-content:center;align-items:center;width:100%;height:40px;min-height:40px;padding-block:0;line-height:1;display:flex}.speaking-club-student-card .student-payment-button+.icon-button{grid-area:1/2}.speaking-club-student-card .student-payment-button+.icon-button+.icon-button{grid-area:1/3}.speaking-club-student-card .student-head-actions .icon-button,.speaking-club-student-card .student-head-actions .menu-trigger{border-radius:14px;width:100%;min-width:0;height:40px}}.modal-card .confirmation-actions button{border-radius:14px;min-height:48px;padding:12px 14px;font-size:.92rem;line-height:1.2}@media (width<=520px){.modal-card .confirmation-actions button{min-height:44px;padding:11px 12px;font-size:.88rem}}@media (width<=430px){.schedule-mode-tab{min-height:36px;padding:8px 10px;font-size:.78rem}.modal-backdrop:has(.modal-card-speaking-club-lesson){padding:6px}.modal-card-speaking-club-lesson{border-radius:18px;width:min(100%,100vw - 12px);max-height:calc(100dvh - 12px);padding:10px}.modal-card-speaking-club-lesson .section-heading h3{font-size:.9rem}.modal-card-speaking-club-lesson .section-heading p{font-size:.68rem}.modal-card-speaking-club-lesson .modal-close-button{border-radius:14px;width:34px;min-width:34px;height:34px}.speaking-club-student-picker{padding:10px}.modal-card-speaking-club-lesson label,.modal-card-speaking-club-lesson .searchable-select,.compact-heading p{font-size:.68rem}.modal-card-speaking-club-lesson input,.modal-card-speaking-club-lesson select,.modal-card-speaking-club-lesson .searchable-select-trigger,.modal-card-speaking-club-lesson .searchable-select-search{border-radius:12px;min-height:36px;padding:8px;font-size:.74rem}.modal-card-speaking-club-lesson button,.speaking-club-student-option strong{font-size:.74rem}.speaking-club-student-option .speaking-club-student-price{font-size:.68rem}.compact-heading h4{font-size:.82rem}.speaking-club-student-list{max-height:min(280px,38dvh)}.speaking-club-student-option{padding:8px}.speaking-club-student-option small{font-size:.66rem}}.modal-card-speaking-club-session{width:min(360px,100vw - 32px)}.modal-card-speaking-club-session .speaking-club-session-modal{width:100%}@media (width<=640px){.modal-backdrop:has(.modal-card-speaking-club-session){padding:12px}.modal-card-speaking-club-session{border-radius:24px;width:min(100%,100vw - 24px);padding:18px}.modal-card-speaking-club-session .section-heading{flex-wrap:nowrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;flex-direction:row!important}.modal-card-speaking-club-session .section-heading>div{min-width:0}.modal-card-speaking-club-session .modal-close-button{flex:none}.speaking-club-session-form .date-range-calendar{width:min(300px,100vw - 48px)}.speaking-club-session-form .card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.search-input-wrap .searchable-select-search{padding-left:42px;padding-right:42px}@media (width<=760px){.student-search-panel .balance-indicator,.speaking-club-students-filter .balance-indicator{padding:8px 10px}}.modal-card.journal-delete-confirmation-modal .section-heading{align-items:start;gap:12px;grid-template-columns:minmax(0,1fr) 42px!important;display:grid!important}.modal-card.journal-delete-confirmation-modal .section-heading>div{grid-column:1;min-width:0}.modal-card.journal-delete-confirmation-modal .modal-close-button{grid-area:1/2;place-self:start end;margin-top:-2px}@media (width<=760px){.modal-card .section-heading:has(.modal-close-button){width:100%;grid-template-columns:minmax(0,1fr) max-content!important;justify-content:stretch!important;align-items:start!important;gap:10px!important;display:grid!important}.modal-card .section-heading:has(.modal-close-button)>div{grid-area:1/1;min-width:0}.modal-card .section-heading:has(.modal-close-button) .modal-close-button{flex:none;grid-area:1/2;place-self:start end;margin-top:0}}
