:root{color:#17343a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5efe3;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}body{min-width:320px;margin:0}button,input,select{font:inherit}h1,h2,h3,h4,p{margin:0}.crm-shell{--bg-main:#0a1020;--bg-surface:#111827b8;--bg-card:#161e31d1;--bg-soft:#ffffff0d;--text-main:#f5f7fb;--text-muted:#93a4c2;--border:#ffffff14;--accent:#37f0c2;--accent-soft:#68a8ff;--danger:#ff8181;--warning:#ffb86b;--shadow:0 24px 60px #00000047;height:100vh;min-height:100vh;color:var(--text-main);background:radial-gradient(circle at 15% 20%,#447cff38,#0000 20%),radial-gradient(circle at 80% 10%,#37f0c229,#0000 18%),linear-gradient(#09101e 0%,#060912 100%);grid-template-columns:292px 1fr;display:grid;position:relative;overflow:hidden}.crm-shell.auth-screen{grid-template-columns:1fr}.crm-shell.student-portal-screen{min-height:100vh;overflow:hidden auto}.auth-screen-theme-switch{z-index:2;position:absolute;top:24px;right:24px}.theme-light{--bg-main:#edf3ff;--bg-surface:#ffffffad;--bg-card:#ffffffeb;--bg-soft:#0b172e0d;--text-main:#162137;--text-muted:#66738d;--border:#101f3f17;--accent:#1ac6a4;--accent-soft:#507dff;--danger:#d85b5b;--warning:#d08f32;--shadow:0 24px 60px #3d55831f;background:radial-gradient(circle at 15% 20%,#507dff2e,#0000 20%),radial-gradient(circle at 80% 10%,#1ac6a41f,#0000 18%),linear-gradient(#f3f7ff 0%,#e9eefc 100%)}.ambient{filter:blur(80px);opacity:.35;pointer-events:none;border-radius:999px;width:380px;height:380px;position:absolute}.ambient-left{background:#ffa87838;bottom:-120px;left:-120px}.ambient-right{background:#37f0c229;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}.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{width:38px;height:38px;color:var(--text-muted);box-shadow:none;background:0 0;border-color:#0000;border-radius:12px;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:var(--text-main);background:#68a8ff14;border-color:#68a8ff29}.auth-form .primary-button{width:100%;margin-top:6px}.auth-note{color:var(--text-muted)}.auth-error{color:var(--danger)}.student-portal-shell{z-index:1;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}.student-portal-hero{align-items:flex-end}.student-portal-hero h2,.student-portal-hero p{margin:0}.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}.student-portal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.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-schedule-layout{grid-template-columns:minmax(320px,320px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.student-portal-schedule-side{align-content:start;gap:18px;display:grid}.student-portal-schedule-picker{justify-self:center}.student-portal-stack{align-content:start;align-items:start;gap:10px;display:grid}.student-portal-list-card p,.student-portal-transaction-card p{margin:4px 0}.student-portal-list-card-accent{background:#8b5cf61f;border-color:#8b5cf638}.theme-light .student-portal-list-card-accent{background:#7c3aed14;border-color:#7c3aed29}.student-portal-transaction-card{flex-direction:row;justify-content:space-between;align-self:start;align-items:flex-start;gap:8px;height:fit-content;display:flex}.student-portal-calendar-day,.student-portal-substitution-card{cursor:default}.student-portal-substitution-card .lesson-card-head{grid-template-columns:1fr}.student-portal-substitution-date,.student-portal-substitution-text{margin:0}.student-portal-substitution-date{color:var(--text-muted);margin-bottom:6px;display:block}.student-portal-transaction-content{flex:auto;gap:4px;width:100%;min-width:0;display:grid}.student-portal-transaction-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.student-portal-transaction-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-left:auto;display:flex}.student-portal-transaction-title-row .positive{white-space:nowrap}.student-portal-transaction-title-row{justify-content:flex-start}.student-portal-transaction-content{align-items:flex-start}.brand-block{justify-content:center;align-items:center;gap:14px;display:flex}.brand-link{cursor:pointer;background:0 0;border:0;justify-content:center;width:100%;padding:0;display:flex}.brand-logo{flex-shrink:0;width:218px;max-width:100%;height:auto;display:block}.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:12px;padding:14px 16px;display:flex}.nav-icon{background:var(--bg-soft);border-radius:12px;place-items:center;width:34px;height:34px;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:18px;height:18px}.nav-item.active,.nav-item:hover,.ghost-button:hover,.chip.active,.chip:hover{background:#37f0c21f;border-color:#37f0c22e;transform:translateY(-1px)}.nav-item:hover:not(.active){background:linear-gradient(90deg,#ffb86b33,#ff7fb724 48%,#68a8ff29),#ffffff0d;border-color:#0000;transform:translate(3px)}.nav-item.active{background:linear-gradient(90deg,#ffb86b33,#ff7fb724 48%,#68a8ff29),#ffffff0d;border-color:#0000}.nav-item:hover:not(.active) .nav-icon{color:#ffcf6b;background:linear-gradient(135deg,#ffb86b3d,#ff7fb733);transform:translate(2px)}.nav-item.active .nav-icon{color:#ffcf6b;background:linear-gradient(135deg,#ffb86b3d,#ff7fb733)}.theme-light .nav-item:hover:not(.active),.theme-light .nav-item.active{background:linear-gradient(90deg,#d08f322e,#d85b5b1c 48%,#507dff21),#0b172e0a;border-color:#0000}.theme-light .nav-item:hover:not(.active) .nav-icon,.theme-light .nav-item.active .nav-icon{color:#b87722;background:linear-gradient(135deg,#d08f3233,#d85b5b24)}.sidebar-card{background:var(--bg-soft);border:1px solid var(--border);border-radius:22px;margin-top:auto;padding:18px}.sidebar-bottom-nav{margin-top:auto}.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{background:linear-gradient(90deg, #37f0c224, transparent 34%), var(--bg-card)}.journal-card-expense{background:linear-gradient(90deg, #ff818124, transparent 34%), var(--bg-card)}.journal-card-salary{background:linear-gradient(90deg, #7eb1ff29, transparent 34%), var(--bg-card)}.journal-card-refund{background:linear-gradient(90deg, #ffb86b2e, transparent 34%), var(--bg-card)}.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}.topbar{margin-bottom:22px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center}.theme-switch{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-main);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:6px;display:inline-flex}.theme-switch-track{border:1px solid var(--border);background:#ffffff1f;border-radius:999px;width:58px;height:32px;padding:3px}.theme-light .theme-switch-track{background:#ffffffd1;border-color:#0f172a29}.theme-switch-thumb{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-soft) 100%);border-radius:999px;width:24px;height:24px;transition:transform .18s;display:block}.theme-light .theme-switch-thumb{background:#2f3645;transform:translate(26px)}.theme-switch-icon{width:26px;height:26px;color:var(--accent);place-items:center;display:grid}.theme-switch-icon svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.ghost-button,.primary-button{font:inherit;cursor:pointer;border-radius:16px;padding:12px 16px}.ghost-button{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-main)}.ghost-button.active{background:#37f0c21f}.danger-button{color:var(--danger);border-color:#ff81812e}.success-button{color:var(--accent);border-color:#37f0c238}.primary-button{color:#f8fbff;background:linear-gradient(135deg,#3478ff 0%,#8b5cf6 100%);border:0;font-weight:700;box-shadow:0 14px 30px #5372ff38}.primary-button:hover:not(:disabled){background:linear-gradient(135deg,#4f8cff 0%,#9b72ff 100%);transform:translateY(-1px);box-shadow:0 16px 34px #5372ff52}.primary-button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.status-pill,.badge,.student-tags span{border:1px solid var(--border);background:var(--bg-soft);border-radius:999px;padding:9px 14px}.balance-indicator{border:1px solid var(--border);background:var(--bg-soft);border-radius:18px;min-width:220px;padding:12px 16px}.balance-indicator span{color:var(--text-muted);margin-bottom:8px;display:block}.balance-positive{background:#37f0c21a;box-shadow:inset 0 0 0 1px #37f0c238}.balance-positive strong{color:var(--accent)}.balance-negative{background:#ff81811a;box-shadow:inset 0 0 0 1px #ff818138}.balance-negative strong{color:var(--danger)}.dashboard-layout{grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;display:grid}.hero-card,.chart-card{border-radius:28px;padding:24px}.hero-card{grid-column:span 12;justify-content:space-between;align-items:end;gap:20px;display:flex}.hero-copy{max-width:640px}.stats-grid{grid-column:span 12;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;display:grid}.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}.student-metrics span{color:var(--text-muted);margin-bottom:8px;display:block}.stat-card span:not(.stat-icon){color:var(--text-muted);margin-bottom:8px}.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}.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{background:radial-gradient(circle at 18% 16%, #37f0c22e, transparent 24%), linear-gradient(180deg, #68a8ff1a, transparent), var(--bg-soft);border:1px solid var(--border);border-radius:28px;flex:1;min-height:280px;padding:14px;overflow:visible}.chart-shell{grid-template-columns:120px 1fr;align-items:stretch;gap:16px;display:grid}.chart-y-axis{color:var(--text-muted);align-content:space-between;padding-block:6px 28px;display:grid}.chart-main{gap:12px;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}.list-row{justify-content:space-between;align-items:center;gap:14px;display:flex}.dashboard-wide-panel .list-row p{color:var(--text-muted)}.panel{gap:14px;display:grid}.dashboard-side-panel{grid-column:span 6;grid-template-rows:auto minmax(0,1fr);align-content:stretch;align-self:stretch;align-items:stretch;min-height:0}.dashboard-wide-panel{grid-column:span 12}.problem-list{--problem-card-height:74px;--problem-card-preview:34px;min-height:0;max-height:calc(var(--problem-card-height) * 10 + 14px * 10 + var(--problem-card-preview));grid-template-columns:1fr;align-content:start;align-items:start;gap:14px;padding-right:4px;display:grid;overflow-y:auto}.problem-card{height:var(--problem-card-height);border:1px solid var(--border);background:var(--bg-soft);color:inherit;text-align:left;cursor:pointer;border-radius:18px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.problem-card-top strong{margin-bottom:4px;display:block}.problem-card-top p{color:var(--text-muted)}.problem-card-meta{align-items:center;gap:10px;font-size:.95rem;display: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}.crm-form,.day-picker{gap:14px;display:grid}.crm-form label,.date-range label,.filters-bar label,.schedule-week-picker label{color:var(--text-muted);gap:8px;display:grid}.crm-form input,.crm-form select,.crm-form textarea,.date-range input,.filters-bar input,.filters-bar select,.schedule-week-picker input{border:1px solid var(--border);background:var(--bg-surface);width:100%;color:var(--text-main);border-radius:16px;padding:13px 14px}.panel-nested{background:var(--bg-soft);border:1px solid var(--border);border-radius:20px;padding:16px}.student-form-layout{grid-template-columns:minmax(280px,320px) minmax(320px,360px);justify-self:start;align-items:start;gap:20px;width:fit-content;max-width:100%;display:grid}.student-form-column{gap:14px;min-width:0;display:grid}.student-form-heading{justify-content:space-between;align-items:flex-start;width:100%}.student-form,.student-form .form-columns{width:100%}.student-form .form-columns>label{flex:1 1 0;min-width:0}.student-assignment-row{grid-template-columns:minmax(210px,1.45fr) minmax(150px,1fr) minmax(120px,.9fr) minmax(72px,.45fr);align-items:start;gap:16px;display:grid}.student-assignment-row>label{min-width:0}.student-phone-field{flex:none}.student-phone-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.student-phone-input{max-width:100%;width:210px!important}.student-phone-add{flex:none}.student-phone-add span{font-size:1.35rem;line-height:1}.student-form-inline-fields{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.student-form-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.student-form-actions button{width:100%}.chip-grid{flex-wrap:wrap;gap:10px;display:flex}.chip{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-main);cursor:pointer;border-radius:999px;padding:10px 14px}.readonly-chip{cursor:default}.student-day-chip.active,.student-day-chip:hover{color:#d8c8ff;background:#b99cff38;border-color:#b99cff57}.theme-light .student-day-chip.active,.theme-light .student-day-chip:hover{color:#6d28d9;background:#7c3aed29;border-color:#7c3aed3d}.student-cards{grid-template-columns:1fr}.student-card{z-index:1;background:linear-gradient(90deg, var(--student-group-bg,transparent), transparent 42%), 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-card:hover{background:linear-gradient(90deg, var(--student-group-bg,transparent), transparent 46%), linear-gradient(135deg, #68a8ff14, #8b5cf60f), var(--bg-card);border-color:#68a8ff3d;transform:translateY(-2px);box-shadow:0 26px 70px #00000057}.theme-light .student-card:hover{background:linear-gradient(90deg, var(--student-group-bg,transparent), transparent 46%), linear-gradient(135deg, #507dff14, #8b5cf60d), var(--bg-card);border-color:#507dff2e;box-shadow:0 24px 58px #3d55832e}.student-card.menu-open{z-index:20}.student-search-panel{z-index:35;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.2fr) repeat(4,minmax(110px,.8fr)) minmax(220px,1.4fr) minmax(110px,.7fr);align-items:center;gap:12px;padding:12px 18px;font-size:.82rem;font-weight:700;display:grid;position:sticky;top:118px}.student-table-header span:first-child{text-align:left}.student-list-row{grid-template-columns:minmax(210px,1.2fr) repeat(4,minmax(110px,.8fr)) minmax(220px,1.4fr) minmax(110px,.7fr);align-items:center;gap:12px;display:grid}.student-metrics{flex-wrap:wrap;gap:10px}.student-metrics.compact{display:contents}.student-title{text-align:left;min-width:0}.student-metrics>div{background:var(--bg-soft);border:1px solid var(--border);border-radius:16px;flex:140px;padding:10px 12px}.student-metrics.compact>div{background:0 0;border-color:#0000}.student-metrics.compact>.metrics-tail{background:var(--bg-soft);border-color:var(--border)}.student-metrics strong{font-size:1.1rem}.student-metrics.compact>div{text-align:center;place-items:center;padding:8px 10px;display:grid}.student-metrics.compact span{margin-bottom:4px;font-size:.8rem}.student-metrics.compact strong{font-size:.98rem}.student-metric-subvalue{color:var(--text-muted);margin-top:4px;font-size:.98rem;font-weight:700;display:block}.student-metrics.compact>div:nth-child(-n+3) strong{font-size:1.22rem}.student-metrics.compact>div.student-next-payment-metric strong,.student-metrics.compact>div.student-next-payment-metric .student-metric-subvalue{font-size:.98rem}.student-note{min-height:0;font-size:.95rem}.metric-control{align-items:center;gap:10px;display:flex}.metric-stepper{border:1px solid var(--border);background:var(--bg-surface);width:28px;height:28px;color:var(--text-main);cursor:pointer;border-radius:999px}.metrics-tail{text-align:center;justify-items:center;gap:6px;display:grid}.metrics-tail span{color:var(--text-muted);font-size:.92rem}.student-head-actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}.student-menu-wrap{position:relative}.menu-trigger{justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;padding-inline:0;display:inline-flex}.menu-trigger svg{fill:currentColor;width:18px;height:18px}.student-menu-dropdown{background:var(--bg-card);border:1px solid var(--border);min-width:170px;box-shadow:var(--shadow);z-index:999;border-radius:16px;gap:6px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.menu-item{color:var(--text-main);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;padding:10px 12px}.menu-item:hover{background:var(--bg-soft)}.badge.ok{color:var(--accent)}.badge.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}.teacher-card{z-index:1;background:linear-gradient(90deg, var(--teacher-card-bg,transparent), transparent 42%), var(--bg-card);align-items:center;gap:18px;transition:transform .16s,background-color .16s,border-color .16s,box-shadow .16s;display:flex;position:relative;overflow:visible}.teacher-card:hover,.salary-teacher-card:hover,.salary-teacher-card.expanded{background:linear-gradient(90deg, var(--teacher-card-bg,transparent), transparent 46%), linear-gradient(135deg, #68a8ff14, #8b5cf60f), var(--bg-card);border-color:#68a8ff3d;box-shadow:0 26px 70px #00000057}.teacher-card:hover{transform:translateY(-2px)}.theme-light .teacher-card:hover,.theme-light .salary-teacher-card:hover,.theme-light .salary-teacher-card.expanded{background:linear-gradient(90deg, var(--teacher-card-bg,transparent), transparent 46%), linear-gradient(135deg, #507dff14, #8b5cf60d), var(--bg-card);border-color:#507dff2e;box-shadow:0 24px 58px #3d55832e}.salary-teacher-card{background:linear-gradient(90deg, var(--teacher-card-bg,transparent), transparent 42%), var(--bg-card);transition:background-color .16s,border-color .16s,box-shadow .16s}.teacher-card.menu-open{z-index:20}.teacher-card-head{flex:360px;align-items:center;gap:16px;min-width:360px;display:flex}.teacher-card-head>div:first-child{flex:auto;min-width:0}.teacher-card-head h3,.teacher-card-head p{overflow-wrap:anywhere}.teacher-head-actions{flex:none;align-items:center;gap:12px;margin-left:auto;display:flex}.teacher-head-actions .badge{white-space:normal;overflow-wrap:anywhere;text-align:left}.teacher-rates{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:flex}.teacher-rates>div{background:var(--bg-soft);border:1px solid var(--border);border-radius:16px;flex:1 1 0;padding:12px}.teacher-rates span{color:var(--text-muted);margin-bottom:6px;font-size:.84rem;display:block}.schedule-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;display:grid}.schedule-week-picker{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:10px;display:flex}.schedule-week-picker label{min-width:180px;font-size:.86rem}.week-nav-button{min-height:44px;padding-inline:14px}.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 h4 small{color:var(--text-muted);font-size:.78rem;font-weight:500}.day-column.drag-target{background:linear-gradient(180deg, #37f0c21a, transparent), var(--bg-soft);border-color:#37f0c261}.schedule-card{z-index:1;border-radius:20px;padding:16px;position:relative;overflow:visible}.lesson-card{cursor:pointer;background:hsl(var(--lesson-accent) / .14);border-color:hsl(var(--lesson-accent) / .22);gap:12px;transition:transform .16s,border-color .16s,background-color .16s;display:grid}.lesson-card:active{cursor:grabbing}.lesson-card:hover,.lesson-card:focus-visible,.lesson-card.expanded{border-color:hsl(var(--lesson-accent) / .52);background:hsl(var(--lesson-accent) / .26)}.lesson-card:focus-visible{outline:2px solid hsl(var(--lesson-accent) / .7);outline-offset:3px}.lesson-card.menu-open{z-index:50}.substitution-lesson-card{background:0 0;border-color:#ffffffb8}.substitution-lesson-card:hover,.substitution-lesson-card:focus-visible{background:0 0;border-color:#ffffffeb}.substitution-lesson-card .substitution-label{color:#ffcf6b;font-weight:inherit}.lesson-card-head,.lesson-card-meta,.lesson-students{gap:6px;display:grid}.lesson-card-details{gap:12px;display:grid}.lesson-card-head{grid-template-columns:1fr auto;align-items:start}.lesson-time{color:var(--text-muted);font-weight:700;font:inherit;cursor:text;text-align:left;background:0 0;border:0;margin-bottom:6px;padding:0;display:block}.lesson-time:hover,.lesson-time:focus-visible{color:#fff;outline:0}.form-derived-value{border:1px solid var(--border);background:var(--bg-soft);width:100%;min-height:47px;color:var(--text-main);border-radius:16px;align-items:center;padding:12px 14px;display:grid}.lesson-time-input{border:1px solid hsl(var(--lesson-accent) / .48);color:#fff;width:100%;max-width:118px;font:inherit;background:#ffffff1a;border-radius:10px;margin-bottom:6px;padding:6px 8px;font-weight:700}.lesson-settings-wrap{flex-direction:column;align-self:start;align-items:center;gap:8px;display:flex}.lesson-substitution-trigger{background:0 0;border-color:#0000}.lesson-restore-trigger{color:#fff;justify-content:center;align-items:center;padding:0;display:inline-flex}.lesson-restore-trigger svg{stroke-width:2.2px}.lesson-substitution-trigger svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.lesson-menu-trigger{border-radius:12px;width:34px;min-width:34px;height:34px}.lesson-menu-trigger svg{width:15px;height:15px}.lesson-card-meta{background:linear-gradient(135deg, hsl(var(--lesson-accent) / .34), #ffffff14);border:1px solid hsl(var(--lesson-accent) / .42);border-radius:16px;padding:10px 12px}.lesson-card-meta span:first-child{color:#fff;font-weight:700}.lesson-card-meta span.lesson-language{color:#ffffff9e;font-weight:400}.lesson-card-meta .lesson-type{color:#fff;font-weight:800}.lesson-card-meta span:last-child{color:hsl(var(--lesson-accent-light,var(--lesson-accent)) / 1);font-weight:800}.theme-light .lesson-card-meta span:first-child{color:#0f172a}.theme-light .lesson-card-meta span.lesson-language{color:#64748b}.theme-light .lesson-card-meta .lesson-type{color:#0f172a}.theme-light .lesson-card-meta span:last-child{color:hsl(var(--lesson-accent) / 1)}.lesson-note,.lesson-students p,.lesson-students ul{color:var(--text-muted);margin:0}.lesson-students ul{color:#fff;gap:6px;padding-left:18px;display:grid}.lesson-students li{color:#fff}.theme-light .lesson-students ul,.theme-light .lesson-students li{color:var(--text-main)}.lesson-card-actions{justify-content:flex-end;display:flex}.salary-summary-head,.salary-row,.salary-row-meta,.salary-total-row{align-items:center;gap:16px;display:flex}.salary-summary-head,.salary-row-meta,.salary-total-row{margin-left:auto}.salary-list{gap:12px;display:grid}.salary-teacher-head{cursor:pointer}.salary-period-line{margin-top:10px}.salary-row{background:var(--bg-soft);border:1px solid var(--border);cursor:pointer;border-radius:18px;gap:12px;padding:14px 16px;display:grid}.salary-row.expanded{border-color:#37f0c233}.salary-lesson-title{color:#9fc7ff}.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:#8b5cf614;border-color:#8b5cf647}.theme-light .salary-lesson-card.expanded{background:#8b5cf612}.salary-lesson-card-main,.salary-lesson-card-meta{align-items:center;gap:12px;display:flex}.salary-lesson-card-main{justify-content:space-between}.salary-lesson-card-meta{margin-left:auto}.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:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:12px;display: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:space-between;align-items:center;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}.salary-row p,.empty-state-text{color:var(--text-muted);margin:4px 0 0}.salary-total-row{justify-content:space-between;padding-top:16px}.journal-list{grid-template-columns:1fr}.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{justify-content:space-between;padding:18px 20px}.attendance-card p{color:var(--text-muted);margin:4px 0 0}.attendance-card-meta{justify-content:flex-end;margin-left:auto}.attendance-picker{background:var(--bg-soft);border:1px solid var(--border);border-radius:16px;gap:8px;width:320px;max-width:100%;padding:10px;display:grid}.substitution-picker{justify-self:center;width:320px;max-width:100%}.student-start-date-field{color:var(--text-muted);gap:8px;display:grid}.student-start-picker{justify-self:start}.attendance-day.student-start-lesson-day{color:#d8c8ff;background:#b99cff3d;border-color:#b99cffc7;font-weight:900}.theme-light .attendance-day.student-start-lesson-day{color:#6d28d9;background:#7c3aed2e}.substitution-picker .attendance-day{font-size:.78rem}.substitution-compact-field{justify-self:center;width:320px;max-width:100%}.substitution-actions{grid-template-columns:repeat(2,minmax(0,1fr));justify-self:center;gap:10px;width:320px;max-width:100%;display:grid}.substitution-actions button{width:100%}.attendance-modal-name{color:#fff;margin:4px 0 0;font-size:1.35rem;font-weight:800}.theme-light .attendance-modal-name{color:var(--text-main)}.attendance-picker-head{justify-content:space-between}.attendance-picker-head .icon-button{justify-content:center;align-items:center;padding:0;display:flex}.attendance-picker-head .icon-button span{text-align:center;justify-content:center;align-items:center;width:100%;font-size:1.4rem;line-height:1;display:flex}.attendance-weekdays,.attendance-calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.attendance-weekdays span{color:var(--text-muted);text-align:center;font-size:.74rem;font-weight:700}.attendance-day{aspect-ratio:1;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-main);cursor:pointer;border-radius:8px;place-items:center;min-width:0;padding:0;font-size:.82rem;display:grid;position:relative}.attendance-day span{text-align:center;z-index:1;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.attendance-day small{color:#111827;background:#ffffffe6;border-radius:999px;place-items:center;min-width:14px;height:14px;font-size:.62rem;font-weight:900;line-height:1;display:grid;position:absolute;bottom:3px;right:4px}.attendance-day.muted{opacity:.42}.attendance-day.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.today{border-color:#ffffffdb;box-shadow:inset 0 0 0 1px #ffffff6b}.attendance-day.selected{color:#fff;font-weight:900}.attendance-day.selected span{color:#fff}.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:disabled{cursor:not-allowed}.attendance-status-field .chip-grid,.attendance-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.attendance-status-field .chip,.attendance-actions button{text-align:center;justify-content:center;width:100%}.trash-list{gap:12px;display:grid}.trash-card,.empty-panel{justify-content:space-between;align-items:center;gap:16px;display:flex}.trash-card-actions{justify-content:flex-end;align-items:center;gap:10px;margin-left:auto;display:flex}.journal-meta{text-align:right;justify-content:flex-end;align-items:center;margin-left:auto}.loading-screen{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#040812b8;place-items:center;display:grid;position:fixed;inset:0}.loading-spinner{border:4px solid #8b5cf6;border-color:#8b5cf6 #3478ff #ffffff29 #ffffff29;border-radius:999px;width:58px;height:58px;animation:.82s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:#04081299;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.app-toast{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:90;opacity:0;pointer-events:none;background:#121928f7;border:1px solid #ffb86b38;border-radius:18px;width:min(388px,100vw - 24px);padding:15px 16px;transition:opacity .22s,transform .22s;position:fixed;bottom:20px;right:20px;transform:translateY(14px);box-shadow:0 18px 40px #00000047,inset 0 1px #ffffff0a}.app-toast-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.app-toast-content{align-items:flex-start;gap:12px;display:flex}.app-toast-icon{color:#ffb86b;background:#ffb86b24;border-radius:12px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.app-toast-icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.app-toast-copy{flex:1;min-width:0}.app-toast-copy strong{margin-bottom:4px;font-size:.96rem;display:block}.app-toast-copy p{color:var(--text-muted);margin:0;line-height:1.45}.app-toast-close{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.app-toast-close:hover{color:var(--text-main)}.app-toast-close span{font-size:1rem;line-height:1}.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,.modal-card-payment{width:min(100%,368px)}.modal-card-payment .section-heading,.payment-form{width:320px;max-width:100%;margin-inline:auto}.payment-modal-name{color:#fff;margin:4px 0 0;font-size:1.38rem;font-weight:900}.theme-light .payment-modal-name{color:var(--text-main)}.payment-form .card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.payment-form .card-actions button{width:100%}.payment-calendar-field{color:var(--text-muted);gap:8px;display:grid}.payment-note-field{color:var(--text-muted);gap:8px;padding-block:8px;display:grid}.payment-note-preview{color:var(--text-muted);font-size:.95rem;line-height:1.35}.payment-note-preview mark{border-radius:6px;padding:1px 3px;font-weight:900}.payment-note-date-yellow{color:#ffcf6b;background:#ffcf6b38}.payment-note-date-green{color:#37f0c2;background:#37f0c22e}.payment-note-date-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-red{color:#9f1239;background:#ff6b8142}.payment-picker{justify-self:center}.attendance-day.payment-paid-day{color:#ffcf6b;background:#ffb86b47;border-color:#ffcf6bc7;font-weight:900}.attendance-day.payment-paid-day.selected{color:#111827;box-shadow:inset 0 0 0 1px #ffffff61,0 0 0 1px #ffcf6b57}.attendance-day.payment-paid-day small{color:#111827;background:#ffcf6b}.theme-light .attendance-day.payment-paid-day{color:#7c4a03;background:#ffb86b5c}.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-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}.modal-card-substitution{width:min(100%,364px)}.modal-card-substitution .section-heading{width:320px;max-width:100%;margin-inline:auto}.modal-card-attendance .crm-form{margin-top:14px}.modal-card-lesson{width:min(100%,520px)}.modal-card-small{width:min(100%,420px)}.modal-text{color:var(--text-muted);margin-bottom:18px}fieldset{border:0;margin:0;padding:0}legend{color:var(--text-muted);margin-bottom:12px}@media (width<=1200px){.crm-shell{grid-template-columns:1fr;height:auto}.content-area{padding:0 18px 18px}.sidebar{height:auto;margin:18px;position:static;top:auto;overflow:visible}.stats-grid,.student-portal-metrics,.split,.split-wide,.student-portal-grid,.student-portal-details,.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))}}@media (width<=760px){.student-portal-shell{width:calc(100vw - 24px);margin:12px auto 18px}.student-portal-topbar,.student-portal-hero,.student-portal-transaction-card{flex-direction:column;align-items:stretch}.student-portal-hero-meta{justify-content:flex-start}.hero-card,.topbar,.section-heading,.chart-shell,.filters-bar,.form-columns,.student-card-head,.student-head-actions,.date-range,.journal-card{flex-direction:column}.content-area{padding:0 14px 14px}.student-form-layout{grid-template-columns:1fr;width:100%}.student-assignment-row{grid-template-columns:1fr}.sidebar{padding:18px}.student-cards,.teacher-grid,.schedule-grid,.stats-grid,.problem-list{grid-template-columns:1fr}.teacher-rates{flex-direction:column}.chart-shell,.problem-card{flex-direction:column;grid-template-columns:1fr;align-items:flex-start}.schedule-week-picker,.schedule-week-picker label{width:100%}}
