body{color:#222;background-color:#f5f7fb;margin:0;font-family:Arial,sans-serif}#root{margin:0 auto;padding:30px 20px}h1{text-align:center;margin:0 0 8px}h2{margin:0 0 8px}.page-card{background:#fff;border-radius:14px;padding:24px;box-shadow:0 4px 14px #00000014}.app-shell{max-width:1200px;margin:0 auto}.app-header{margin-bottom:20px}.app-subtitle{text-align:center;color:#64748b;margin:0}.app-nav{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:20px;display:flex}.app-nav-link{color:#2563eb;border:1px solid #0000;border-radius:999px;padding:8px 14px;font-weight:600;text-decoration:none}.app-nav-link:hover,.app-nav-link.is-active{background:#eff6ff;border-color:#bfdbfe}.app-main{display:block}.app-userbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:14px;display:flex}.page-header{margin-bottom:20px}.page-subtitle{color:#64748b;margin:0;line-height:1.5}.page-back-link-wrap{margin-bottom:16px}.student-dashboard-brand{justify-content:center;align-items:center;gap:10px;margin-bottom:20px;display:flex}.student-dashboard-logo{font-size:28px;line-height:1}.student-dashboard-title{letter-spacing:.02em;color:#0000;background:linear-gradient(135deg,#1d4ed8 0%,#0f766e 100%);-webkit-background-clip:text;background-clip:text;font-size:34px;font-weight:800}.student-payment-paid{background:#ecfdf3;border-color:#bbf7d0}.stat-chip.student-payment-paid strong{color:#166534}.student-payment-unpaid{background:#fef2f2;border-color:#fecaca}.stat-chip.student-payment-unpaid strong{color:#b91c1c}.student-payment-partial{background:#fff7ed;border-color:#fdba74}.stat-chip.student-payment-partial strong{color:#9a3412}.stat-chip.student-payment-empty strong{color:#475569}.login-card{max-width:900px;margin:0 auto}.login-form{margin-bottom:12px}.login-help{gap:16px;display:grid}.compact-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.form-error{color:#b91c1c;margin:0 0 16px}.feedback-banner{border:1px solid #0000;border-radius:12px;margin-bottom:16px;padding:12px 14px;font-size:14px;font-weight:600}.feedback-banner.success{color:#166534;background:#ecfdf3;border-color:#bbf7d0}.feedback-banner.error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.page-loading{color:#475569;background:#f8fbff;border:1px solid #dbe5f0;border-radius:12px;margin-bottom:16px;padding:18px;font-weight:600}.inline-validation{color:#b91c1c;margin-top:10px;font-size:14px;font-weight:600}.stats-strip{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.stat-chip{background:#f8fbff;border:1px solid #dbe5f0;border-radius:12px;min-width:120px;padding:12px 14px}.stat-chip strong{color:#2563eb;font-size:20px;display:block}.stat-chip-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;display:block}.split-layout{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.section-panel{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:20px;padding:16px}.section-heading{margin-bottom:14px}.section-heading h3{margin:0 0 6px;font-size:18px}.section-heading p{color:#64748b;margin:0}.compact-form-row{margin-bottom:0}.materials-textarea-row{align-items:stretch}.schedule-list{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px;margin-top:16px;display:grid}.schedule-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.schedule-card-today{background:#fef2f2;border-color:#fca5a5;box-shadow:0 0 0 1px #ef444414}.timetable-table{border-collapse:collapse;width:100%;min-width:900px}.timetable-table th,.timetable-table td{text-align:center;vertical-align:middle;border:1px solid #e5e7eb;padding:10px}.timetable-table th{background:#f8fafc;font-weight:700}.timetable-conflict{color:#b91c1c;background:#fef2f2;font-weight:700}.timetable-today{color:#166534;background:#ecfdf3;font-weight:700}.timetable-cell-list{flex-direction:column;gap:6px;display:flex}.timetable-cell-item{color:#1d4ed8;cursor:pointer;background:#eff6ff;border:0;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700}.timetable-cell-item:hover{background:#dbeafe}.schedule-main{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.schedule-card .record-badge,.schedule-card .record-index,.schedule-card .soft-tag{padding:4px 8px;font-size:11px}.compact-action{padding:6px 10px;font-size:12px}.record-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.record-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:16px}.record-card h3{margin:0 0 8px}.record-card p{color:#555;margin:0 0 14px}.record-card-top{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:10px;display:flex}.record-badge,.record-index,.score-badge,.soft-tag{border-radius:999px;align-items:center;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.record-badge,.soft-tag{color:#1d4ed8;background:#eff6ff}.record-index{color:#475569;background:#f1f5f9}.score-badge{color:#1d4ed8;background:#dbeafe}.student-status-paid{color:#166534;background:#dff5e3}.student-status-not-paid{color:#b91c1c;background:#fde2e2}.student-status-partial{color:#92400e;background:#fff3cd}.student-status-empty{color:#64748b;background:#f1f5f9}.student-stars-panel{text-align:center;background:#fffbea;border:1px solid #fde68a;border-radius:16px;padding:24px}.student-stars-big{letter-spacing:4px;font-size:40px;line-height:1.2}.student-stars-text{color:#92400e;margin:12px 0 0;font-weight:600}.meta-row,.tag-row{color:#64748b;flex-wrap:wrap;gap:8px;margin-bottom:12px;font-size:14px;display:flex}.empty-state{text-align:center;background:#f8fbff;border:1px dashed #bfd3ea;border-radius:12px;padding:24px}.empty-state h3{margin:0 0 8px}.empty-state p{color:#64748b;margin:0}.table-wrap{overflow-x:auto}.summary-cell{text-align:center;font-weight:700}.secondary-button{color:#1e293b;background:#e2e8f0}.secondary-button:hover{background:#cbd5e1}button:disabled{opacity:.65;cursor:not-allowed}.form-row{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}input,select,textarea{border:1px solid #d0d7e2;border-radius:8px;padding:10px 12px;font-size:14px}textarea{resize:vertical;font-family:inherit}button{color:#fff;cursor:pointer;background-color:#2563eb;border:none;border-radius:8px;padding:10px 14px;font-size:14px}button:hover{background-color:#1d4ed8}ul{margin:0;padding:0;list-style:none}li{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:10px;padding:12px}.item-actions{gap:8px;margin-left:12px;display:inline-flex}.small-button{padding:6px 10px;font-size:13px}.status-text{margin-left:10px;font-weight:700}.lesson-list{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.lesson-tag{color:#1e3a8a;background:#eef2ff;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:14px;display:inline-flex}.lesson-delete-button{color:#1e3a8a;cursor:pointer;background:0 0;border:none;padding:0;font-size:16px}.attendance-cell{cursor:pointer;text-align:center;font-weight:700}.attendance-cell.present{color:#166534;background-color:#bbf7d0}.attendance-cell.absent{color:#7f1d1d;background-color:#fecaca}.attendance-cell.empty{background-color:#f3f4f6}@media (width<=768px){#root{padding:20px 12px}.page-card{padding:16px}.form-row{flex-direction:column;align-items:stretch}input,select,button{box-sizing:border-box;width:100%}.item-actions{flex-wrap:wrap;margin-top:10px;margin-left:0;display:flex}li{flex-direction:column;gap:8px;display:flex}.attendance-table th,.attendance-table td{padding:8px;font-size:13px}}.payment-cell{text-align:center;font-weight:600}.payment-cell.paid{color:#1e7a36;background-color:#c8f0d0}.payment-cell.not-paid{color:#b00020;background-color:#ffd6d6}.payment-cell.partial{color:#8a6d00;background-color:#fff4cc}.payment-cell.empty{color:#777;background-color:#f0f0f0}.attendance-topbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.attendance-summary{flex-wrap:wrap;gap:10px;margin:12px 0 18px;display:flex}.summary-pill{background:#f8fafc;border:1px solid #dbe3f0;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:600}.attendance-table-wrap{width:100%;overflow-x:auto}.attendance-table{table-layout:fixed;border-collapse:separate;border-spacing:4px;width:100%;min-width:0}.attendance-table th,.attendance-table td{text-align:center;border-radius:10px;padding:8px 6px;font-size:13px}.attendance-table thead th{color:#1f2937;background:#f8fafc;font-weight:700}.attendance-table thead tr:nth-child(2) th{color:#6b7280;font-size:12px;font-weight:600}.attendance-student-col{z-index:auto;width:140px;min-width:140px;box-shadow:none;word-break:break-word;background:#fff;font-size:14px;position:static;left:auto;text-align:left!important}.attendance-total-col{width:56px;min-width:56px;font-weight:700}.attendance-payment-col{width:92px;min-width:92px;font-weight:700}.lesson-head{width:46px;min-width:46px}.attendance-cell{cursor:pointer;font-weight:700;transition:transform .12s}.attendance-cell:hover{transform:scale(1.03)}.attendance-cell.present{color:#166534;background:#dff5e3}.attendance-cell.absent{color:#b91c1c;background:#fde2e2}.attendance-cell.empty{color:#6b7280;background:#f3f4f6}.payment-cell{border-radius:10px;padding:8px 6px;font-size:12px;font-weight:700;line-height:1.1}.payment-cell.paid{color:#166534;background:#dff5e3}.payment-cell.not-paid{color:#b91c1c;background:#fde2e2}.payment-cell.partial{color:#92400e;background:#fff3cd}.payment-cell.empty{color:#6b7280;background:#f3f4f6}.attendance-legend{flex-wrap:wrap;gap:14px;margin-top:16px;display:flex}.legend-item{align-items:center;gap:8px;font-size:13px;display:flex}.legend-box{border-radius:4px;width:14px;height:14px}.legend-box.present{background:#dff5e3}.legend-box.absent{background:#fde2e2}.legend-box.empty{background:#f3f4f6}.legend-box.paid{background:#dff5e3}.legend-box.not-paid{background:#fde2e2}.legend-box.partial{background:#fff3cd}.dashboard-shell{background:radial-gradient(circle at 100% 0,#60a5fa38,#0000 28%),linear-gradient(#fff 0%,#f8fbff 100%);border:1px solid #dbe5f0;border-radius:24px;padding:26px;box-shadow:0 18px 40px #0f172a14}.teacher-dashboard-shell{background:radial-gradient(circle at 0 0,#3b82f638,#0000 30%),radial-gradient(circle at 100% 0,#93c5fd47,#0000 32%),linear-gradient(#fff 0%,#f5faff 100%)}.teacher-dashboard-shell .student-dashboard-title{color:#0000;background:linear-gradient(135deg,#1d4ed8 0%,#60a5fa 100%);-webkit-background-clip:text;background-clip:text}.dashboard-hero{display:block}.dashboard-eyebrow{color:#1d4ed8;letter-spacing:.06em;text-transform:uppercase;background:#e0ecff;border-radius:999px;margin-bottom:12px;padding:6px 10px;font-size:12px;font-weight:700;display:inline-block}.dashboard-intro{color:#475569;max-width:560px;margin:0;font-size:16px;line-height:1.6}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;margin-top:24px;display:grid}.dashboard-link{color:inherit;text-decoration:none}.dashboard-card{text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe0;border:1px solid #cbd5e1e6;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:170px;padding:28px 20px;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 24px #0f172a0f}.dashboard-card:before{content:"";background:linear-gradient(90deg,var(--dashboard-accent),var(--dashboard-accent-soft));width:100%;height:6px;position:absolute;top:0;left:0}.dashboard-tone-blue{--dashboard-accent:#2563eb;--dashboard-accent-soft:#93c5fd}.dashboard-tone-gold{--dashboard-accent:#d97706;--dashboard-accent-soft:#fcd34d}.dashboard-tone-teal{--dashboard-accent:#0f766e;--dashboard-accent-soft:#5eead4}.dashboard-tone-rose{--dashboard-accent:#e11d48;--dashboard-accent-soft:#fda4af}.dashboard-tone-violet{--dashboard-accent:#7c3aed;--dashboard-accent-soft:#c4b5fd}.dashboard-tone-orange{--dashboard-accent:#ea580c;--dashboard-accent-soft:#fdba74}.dashboard-tone-green{--dashboard-accent:#15803d;--dashboard-accent-soft:#86efac}.dashboard-icon{font-size:36px;line-height:1}.dashboard-icon-wrap{background:color-mix(in srgb,var(--dashboard-accent) 12%,white);width:58px;height:58px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--dashboard-accent) 18%,white);border-radius:18px;justify-content:center;align-items:center;display:inline-flex}.dashboard-card-top{justify-content:center;align-items:center;gap:14px;width:100%;display:flex}.dashboard-value{color:var(--dashboard-accent);font-size:36px;line-height:1}.dashboard-card p{color:#334155;text-align:center;width:100%;margin:0;font-size:18px;font-weight:700}.dashboard-detail{color:#64748b;width:100%;font-size:14px}.dashboard-cta{color:var(--dashboard-accent);justify-content:center;align-items:center;gap:6px;margin-top:auto;font-size:13px;font-weight:700;display:inline-flex}.dashboard-cta:after{content:"->"}.dashboard-actions{justify-content:flex-end;margin-top:28px;display:flex}@media (width<=768px){.dashboard-shell{padding:18px}.dashboard-actions{justify-content:stretch}}.quick-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.quick-action-button{color:#fff;background:#2563eb;border-radius:10px;padding:12px 18px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,transform .15s;display:inline-block}.quick-action-button:hover{background:#1d4ed8;transform:translateY(-2px)}:root{--dash-bg:#f8fafc;--dash-card:#fff;--dash-primary:#2563eb;--dash-primary-soft:#dbeafe;--dash-text:#1e293b;--dash-muted:#64748b;--dash-border:#e2e8f0;--dash-radius:16px;--dash-shadow:0 1px 2px #0f172a0f, 0 10px 26px #0f172a14;--dash-shadow-hover:0 2px 6px #0f172a14, 0 16px 40px #0f172a1f}body{background:var(--dash-bg);color:var(--dash-text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.app-header{border:1px solid var(--dash-border);border-radius:var(--dash-radius);box-shadow:var(--dash-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffdb;padding:18px}.app-header-inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.app-header-copy{min-width:240px}.app-header h1{text-align:left;letter-spacing:-.02em;margin:0;font-size:28px;font-weight:800}.app-subtitle{text-align:left;color:var(--dash-muted);margin-top:6px}.app-userbar{justify-content:flex-end;margin-top:0}.record-badge{background:var(--dash-primary-soft);color:#1d4ed8}.app-nav{box-shadow:none;background:0 0;border:0;border-radius:0;gap:8px;padding:0}.app-nav-link{color:var(--dash-text);border:1px solid #0000;border-radius:999px;padding:8px 12px;font-weight:650}.app-nav-link:hover{background:#0f172a0a;border-color:#0000}.app-nav-link.is-active{background:var(--dash-primary-soft);color:#1d4ed8;border-color:#2563eb2e}.student-dashboard-title{background:linear-gradient(135deg,#2563eb 0%,#0f766e 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.dashboard-shell{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.teacher-dashboard-shell,.student-dashboard-shell{box-shadow:none;background:0 0;border:0}.dashboard-hero{margin-bottom:14px}.dashboard-grid{gap:12px;margin-top:0}.dashboard-card{background:var(--dash-card);border:1px solid #0f172a0f;border-radius:18px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:10px;min-height:112px;padding:14px;transition:transform .16s,box-shadow .16s,border-color .16s,background .16s;display:flex;box-shadow:0 1px 2px #0f172a0a}.dashboard-card:before{content:none}.dashboard-card:hover{border-color:#2563eb38;transform:translateY(-3px);box-shadow:0 10px 26px #0f172a1a}.dashboard-icon-wrap{background:#dbeafeb3;border-radius:16px;width:44px;height:44px;box-shadow:inset 0 0 0 1px #2563eb1a}.dashboard-icon{font-size:24px}.dashboard-card .dashboard-card-title{color:var(--dash-text);margin:0;font-size:15px;font-weight:700}.dashboard-actions{margin-top:18px}@media (width<=768px){.app-header h1{font-size:24px}.dashboard-card{min-height:108px}}.groups-page{gap:14px;display:grid}.groups-add{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.groups-add input{flex:280px;min-width:220px}.groups-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.group-card{color:inherit;background:#fff;border:1px solid #0f172a0f;border-radius:18px;padding:14px;text-decoration:none;transition:transform .16s,box-shadow .16s,border-color .16s;display:block;position:relative;box-shadow:0 1px 2px #0f172a0a}.group-card:hover{border-color:#2563eb33;transform:translateY(-2px);box-shadow:0 12px 28px #0f172a1a}.group-card-row{justify-content:space-between;align-items:flex-start;gap:10px;padding-right:22px;display:flex}.group-card-name{color:#1e293b;letter-spacing:-.01em;font-weight:700}.group-card-badge{color:#1d4ed8;background:#dbeafecc;border-radius:999px;flex:none;align-items:center;padding:6px 10px;font-size:12px;font-weight:650;display:inline-flex}.group-card-trash{color:#64748b;width:30px;height:30px;box-shadow:none;cursor:pointer;opacity:0;background:0 0;border:0;border-radius:10px;padding:0;transition:opacity .16s,transform .16s,background .16s;position:absolute;top:10px;right:10px;transform:translateY(-2px)}.group-card:hover .group-card-trash,.group-card:focus-within .group-card-trash{opacity:1;transform:translateY(0)}.group-card-trash:hover{color:#ef4444;background:#0f172a0f}.group-card-trash:disabled{opacity:.4;cursor:not-allowed}@media (width<=520px){.groups-add{flex-direction:column;align-items:stretch}}.students-page{gap:14px;display:grid}.students-toolbar{gap:10px;display:grid}.students-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.students-row input{flex:240px;min-width:180px}.students-row select{flex:0 0 220px;min-width:180px}.students-row .students-add-button{flex:none}.students-stats{margin-bottom:0}.students-stats .stat-chip{background:#fff;border:1px solid #0f172a0f;padding:10px 12px;box-shadow:0 1px 2px #0f172a0a}.students-stats .stat-chip strong{color:#1e293b;font-size:18px}.students-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.student-card{cursor:pointer;background:#fff;border:1px solid #0f172a0f;border-radius:18px;padding:14px;transition:transform .16s,box-shadow .16s,border-color .16s;position:relative;box-shadow:0 1px 2px #0f172a0a}.student-card:hover,.student-card:focus-visible{border-color:#2563eb33;outline:none;transform:translateY(-2px);box-shadow:0 12px 28px #0f172a1a}.student-card-top{justify-content:space-between;align-items:baseline;gap:10px;padding-right:54px;display:flex}.student-card-name{color:#1e293b;letter-spacing:-.01em;font-weight:700}.student-card-id{color:#64748b;font-size:12px}.student-card-meta{gap:8px;margin-top:10px;display:grid}.student-card-badge{color:#1d4ed8;background:#dbeafecc;border-radius:999px;align-items:center;width:fit-content;padding:6px 10px;font-size:12px;font-weight:650;display:inline-flex}.student-card-email{color:#64748b;font-size:13px}.student-card-actions{opacity:0;gap:6px;transition:opacity .16s,transform .16s;display:inline-flex;position:absolute;top:10px;right:10px;transform:translateY(-2px)}.student-card:hover .student-card-actions,.student-card:focus-within .student-card-actions{opacity:1;transform:translateY(0)}.student-card-action{color:#64748b;width:30px;height:30px;box-shadow:none;cursor:pointer;background:#0f172a0a;border:0;border-radius:10px;padding:0;transition:background .16s,color .16s}.student-card-action:hover{color:#1e293b;background:#0f172a14}.student-card-action.is-danger:hover{color:#ef4444}.student-card-action:disabled{opacity:.4;cursor:not-allowed}@media (width<=520px){.students-row{flex-direction:column;align-items:stretch}.students-row select{flex:auto}}.attendance-page{gap:14px;display:grid}.attendance-stats{margin-bottom:0}.attendance-stats .stat-chip{background:#fff;border:1px solid #0f172a0f;padding:10px 12px;box-shadow:0 1px 2px #0f172a0a}.attendance-stats .stat-chip strong{color:#1e293b;font-size:18px}.attendance-controls{background:#fff;border:1px solid #0f172a0f;border-radius:18px;grid-template-columns:1.25fr 1.15fr 1fr 1fr .7fr auto auto;align-items:end;gap:10px;padding:12px;display:grid;box-shadow:0 1px 2px #0f172a0a}.attendance-field{gap:6px;display:grid}.attendance-field-label{letter-spacing:.06em;text-transform:uppercase;color:#64748b;font-size:11px;font-weight:650}.attendance-controls input,.attendance-controls select{height:40px}.attendance-primary{height:40px;padding:10px 14px}.attendance-icon{color:#1e293b;width:40px;height:40px;box-shadow:none;background:#0f172a0a;border:1px solid #0000;border-radius:12px;padding:0}.attendance-icon:hover{background:#0f172a14}.attendance-lessons{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.attendance-lesson-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.attendance-chip{color:#1d4ed8;height:32px;box-shadow:none;background:#dbeafe8c;border:1px solid #2563eb24;border-radius:999px;padding:0 10px;font-size:12px;font-weight:650}.attendance-chip:hover{background:#dbeafecc}.attendance-lesson-add{align-items:center;gap:8px;display:inline-flex}.attendance-lesson-add input{height:40px}.attendance-table-wrap{background:#fff;border:1px solid #0f172a0f;border-radius:18px;padding:6px;box-shadow:0 1px 2px #0f172a0a}.attendance-table-wrap .attendance-table{border-spacing:0}.attendance-table-wrap .attendance-table th,.attendance-table-wrap .attendance-table td{border-bottom:1px solid #94a3b838;border-right:1px solid #94a3b829;padding:10px}.attendance-table-wrap .attendance-table tr:last-child td{border-bottom:0}.attendance-table-wrap .attendance-table th:last-child,.attendance-table-wrap .attendance-table td:last-child{border-right:0}.attendance-table-wrap .attendance-table tbody tr:hover td{background:#2563eb0a}.attendance-table-wrap .attendance-table thead th{color:#1e293b;background:#f8fafc;font-weight:700}.attendance-table-wrap .attendance-student-col{z-index:2;background:#fff;position:sticky;left:0}.attendance-table-wrap thead .attendance-student-col{z-index:3;background:#f8fafc}.attendance-table-wrap .attendance-cell{border:1px solid #0000;border-radius:12px;font-weight:700}.attendance-table-wrap .attendance-cell.present{color:#166534;background:#22c55e1f;border-color:#1665342e}.attendance-table-wrap .attendance-cell.absent{color:#991b1b;background:#ef44441f;border-color:#991b1b2e}.attendance-table-wrap .attendance-cell.empty{color:#334155;background:#94a3b81f;border-color:#94a3b829}.attendance-pay{white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:12px;font-weight:650;display:inline-flex}.attendance-pay.paid{color:#166534;background:#22c55e1f;border-color:#1665342e}.attendance-pay.not-paid{color:#991b1b;background:#ef44441f;border-color:#991b1b2e}.attendance-pay.partial{color:#92400e;background:#f59e0b24;border-color:#92400e2e}.attendance-pay.empty{color:#64748b;background:#94a3b81f;border-color:#94a3b829}@media (width<=1100px){.attendance-controls{grid-template-columns:1fr 1fr}}.results-page{gap:14px;display:grid}.results-controls{background:#fff;border:1px solid #0f172a0f;border-radius:18px;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;display:flex;box-shadow:0 1px 2px #0f172a0a}.results-controls select,.results-controls input{height:40px}.results-controls .results-student{flex:0 0 240px;min-width:200px}.results-controls .results-test{flex:260px;min-width:200px}.results-controls .results-score{flex:0 0 120px;min-width:110px}.results-controls .results-add{flex:none}.results-star-actions{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.results-star-pill{color:#64748b;background:#0f172a0a;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;font-weight:650;display:inline-flex}.results-star-btn{color:#1e293b;width:40px;height:40px;box-shadow:none;background:#0f172a0a;border:1px solid #0000;border-radius:12px;padding:0}.results-star-btn:hover{background:#0f172a14}.results-table-wrap{background:#fff;border:1px solid #0f172a0f;border-radius:18px;overflow-x:auto;box-shadow:0 1px 2px #0f172a0a}.results-table{border-collapse:separate;border-spacing:0;width:100%}.results-table th,.results-table td{border-bottom:1px solid #94a3b838;padding:12px}.results-table thead th{color:#1e293b;text-align:left;background:#f8fafc;font-weight:700}.results-table tbody tr:hover td{background:#2563eb0a}.results-actions{gap:6px;display:inline-flex}.results-icon{color:#64748b;width:32px;height:32px;box-shadow:none;background:#0f172a0a;border:0;border-radius:10px;padding:0}.results-icon:hover{color:#1e293b;background:#0f172a14}.results-icon.is-danger:hover{color:#ef4444}.results-stars-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.results-star-card{background:#fff;border:1px solid #0f172a0f;border-radius:18px;padding:14px;transition:transform .16s,box-shadow .16s,border-color .16s;box-shadow:0 1px 2px #0f172a0a}.results-star-card:hover{border-color:#2563eb33;transform:translateY(-2px);box-shadow:0 12px 28px #0f172a1a}.results-star-name{color:#1e293b;letter-spacing:-.01em;margin-bottom:10px;font-weight:700}.results-star-metrics{gap:8px;display:grid}.results-metric{background:#0f172a0a;border-radius:14px;justify-content:space-between;align-items:center;padding:8px 10px;display:inline-flex}.results-metric strong{color:#1e293b;font-size:16px}.results-metric span{color:#64748b;font-size:12px;font-weight:650}@media (width<=520px){.results-star-actions{justify-content:flex-start;width:100%;margin-left:0}}.payments-page{gap:14px;display:grid}.payments-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.payments-stat{background:#fff;border:1px solid #e2e8f0;border-radius:16px;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:16px;transition:transform .16s,box-shadow .16s;display:grid;box-shadow:0 1px 2px #0f172a0a}.payments-stat:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0f172a0f}.payments-stat-icon{background:#dbeafeb3;border-radius:12px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.payments-stat-label{color:#64748b;font-size:12px;font-weight:600}.payments-stat-value{color:#1e293b;grid-column:2;font-size:22px;line-height:1.1}.payments-controls{flex-wrap:wrap;align-items:end;gap:12px;padding:0;display:flex}.payments-field{gap:6px;display:grid}.payments-field-label{color:#64748b;font-size:12px;font-weight:600}.payments-controls select{min-width:220px;height:40px}.payments-table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow-x:auto;box-shadow:0 1px 2px #0f172a0a}.payments-table{border-collapse:separate;border-spacing:0;width:100%}.payments-table th,.payments-table td{border-bottom:1px solid #e2e8f0;padding:14px 16px}.payments-table thead th{text-align:left;color:#1e293b;background:#fff;font-weight:700}.payments-table tbody tr:hover td{background:#f9fafb}.payments-student{color:#1e293b;font-weight:700}.payments-status-cell{cursor:pointer}.payments-badge{border-radius:999px;justify-content:center;align-items:center;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.payments-badge.paid{color:#15803d;background:#dcfce7}.payments-badge.partial{color:#a16207;background:#fef9c3}.payments-badge.not-paid{color:#dc2626;background:#fee2e2}.payments-badge.empty{color:#64748b;background:#f1f5f9}@media (width<=680px){.payments-stats{grid-template-columns:1fr}}.materials-page{gap:18px;display:grid}.materials-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.materials-stat{background:#fff;border:1px solid #e2e8f0;border-radius:16px;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:16px;transition:transform .16s,box-shadow .16s;display:grid;box-shadow:0 1px 2px #0f172a0a}.materials-stat:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0f172a0f}.materials-stat-icon{background:#dbeafeb3;border-radius:12px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.materials-stat-label{color:#64748b;font-size:12px;font-weight:600}.materials-stat-value{color:#1e293b;grid-column:2;font-size:22px;line-height:1.1}.materials-form{background:#fff;border:1px solid #e2e8f0;border-radius:16px;gap:12px;padding:24px;display:grid;box-shadow:0 1px 2px #0f172a0a}.materials-row{grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:12px;display:grid}.materials-row input,.materials-row select{border:1px solid #e2e8f0;border-radius:12px;height:44px}.materials-row input:focus,.materials-row select:focus,.materials-row textarea:focus{border-color:#6366f18c;outline:none;box-shadow:0 0 0 4px #6366f12e}.materials-row-textareas{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.materials-row textarea{resize:vertical;border:1px solid #e2e8f0;border-radius:12px;min-height:120px;padding:12px;font-size:14px}.materials-row-actions{grid-template-columns:1fr;justify-items:end}.materials-primary{color:#fff;background:#4f46e5;border-radius:12px;padding:10px 18px;box-shadow:0 1px 2px #0f172a0f}.materials-primary:hover{background:#4338ca}.materials-search{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.materials-search input,.materials-search select{border:1px solid #e2e8f0;border-radius:12px;height:44px}.materials-search input{flex:280px;min-width:220px}.materials-search select{flex:0 0 220px;min-width:180px}.materials-empty{text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:16px;justify-items:center;gap:10px;padding:32px;display:grid;box-shadow:0 1px 2px #0f172a0a}.materials-empty-icon{background:#dbeafeb3;border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;display:inline-flex}.materials-grid{margin-top:0}.materials-card{border:1px solid #e2e8f0;box-shadow:0 1px 2px #0f172a0a}.materials-note{color:#64748b;margin:0}@media (width<=980px){.materials-row{grid-template-columns:1fr 1fr}}@media (width<=680px){.materials-stats,.materials-row{grid-template-columns:1fr}.materials-row-actions{justify-items:stretch}.materials-row-actions .materials-primary{width:100%}}.homework-page{gap:18px;display:grid}.homework-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.homework-stat{background:#fff;border:1px solid #e2e8f0;border-radius:16px;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:16px;transition:transform .16s,box-shadow .16s;display:grid;box-shadow:0 1px 2px #0f172a0a}.homework-stat:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0f172a0f}.homework-stat-icon{background:#dbeafeb3;border-radius:12px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.homework-stat-label{color:#64748b;font-size:12px;font-weight:600}.homework-stat-value{color:#1e293b;grid-column:2;font-size:22px;line-height:1.1}.homework-form{background:#fff;border:1px solid #e2e8f0;border-radius:16px;gap:12px;padding:24px;display:grid;box-shadow:0 1px 2px #0f172a0a}.homework-row{grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:12px;display:grid}.homework-row input,.homework-row select{border:1px solid #e2e8f0;border-radius:12px;height:44px}.homework-row input:focus,.homework-row select:focus,.homework-row textarea:focus{border-color:#6366f18c;outline:none;box-shadow:0 0 0 4px #6366f12e}.homework-row-textarea{grid-template-columns:1fr}.homework-row textarea{resize:vertical;border:1px solid #e2e8f0;border-radius:12px;min-height:120px;padding:12px;font-size:14px}.homework-actions{grid-template-columns:1fr;justify-items:end;display:grid}.homework-primary{color:#fff;background:#4f46e5;border-radius:12px;padding:10px 18px;box-shadow:0 1px 2px #0f172a0f}.homework-primary:hover{background:#4338ca}.homework-filter{justify-content:flex-start;align-items:center;gap:12px;display:inline-flex}.homework-filter select{border:1px solid #e2e8f0;border-radius:12px;min-width:240px;height:44px}.homework-card{border:1px solid #e2e8f0;border-radius:18px;transition:box-shadow .16s,transform .16s;box-shadow:0 1px 2px #0f172a0a}.homework-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #0f172a1a}.homework-title{letter-spacing:-.01em;margin:0;font-weight:800}.homework-task{color:#1e293b;margin:0}.homework-notes{color:#64748b;margin:0}@media (width<=980px){.homework-row{grid-template-columns:1fr 1fr}}@media (width<=680px){.homework-stats,.homework-row{grid-template-columns:1fr}.homework-actions{justify-items:stretch}.homework-actions .homework-primary,.homework-filter,.homework-filter select{width:100%}}.schedule-page{gap:18px;display:grid}.schedule-form{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:18px;box-shadow:0 1px 2px #0f172a0a}.schedule-form .form-row{margin-bottom:0}.schedule-form select,.schedule-form input{border:1px solid #e2e8f0;border-radius:12px;height:44px}.schedule-board{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:10px;box-shadow:0 1px 2px #0f172a0a}.schedule-board .table-wrap{box-shadow:none;background:0 0;border:0;overflow-x:auto}.timetable-table{border-collapse:separate;border-spacing:10px;width:100%;min-width:900px}.timetable-table th,.timetable-table td{background:0 0;border:0;padding:0}.timetable-table thead th{text-align:center;color:#1e293b;font-weight:700}.timetable-table thead th:first-child{text-align:left;padding-left:4px}.schedule-time{color:#64748b;width:110px;min-width:110px;padding:10px 8px;font-size:12px;font-weight:600}.schedule-cell{text-align:left;appearance:none;width:100%;height:64px;font:inherit;background:#f8fafcb3;border:0;border-radius:14px;padding:10px;transition:background .16s,transform .16s,box-shadow .16s;box-shadow:inset 0 0 0 1px #e2e8f0}.schedule-cell:hover{background:#f8fafc;box-shadow:inset 0 0 0 1px #e2e8f0,0 6px 14px #0f172a0f}.schedule-cell.is-empty{color:#64748bcc;justify-content:center;align-items:center;font-weight:700;display:flex}.schedule-cell.is-empty:after{content:"+";opacity:.35;transition:opacity .16s}.schedule-cell.is-empty:hover:after{opacity:.75}.schedule-badges{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;height:100%;display:flex}.schedule-badge{color:#4338ca;cursor:pointer;background:#e0e7ff;border:1px solid #6366f12e;border-radius:999px;justify-content:center;align-items:center;padding:6px 12px;font-size:12px;font-weight:700;transition:transform .16s,background .16s;display:inline-flex}.schedule-badge:hover{background:#c7d2fe;transform:translateY(-1px)}.schedule-badge:disabled{opacity:.6;cursor:not-allowed}.timetable-conflict .schedule-cell{box-shadow:inset 0 0 0 1px #ef444440}@media (width<=768px){.schedule-form{padding:14px}}
