.app-logo{display:inline-flex;align-items:center;gap:12px;font-weight:700;color:#1f2937}.app-logo img{display:block;border-radius:20px;box-shadow:0 8px 20px #2563eb40}.app-logo__title{font-size:20px}:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:#1f2933;background-color:#f4f6f8}body{margin:0;min-height:100vh;background-color:#f4f6f8}@media (max-width: 1024px){:root{font-size:15px}}@media (max-width: 640px){:root{font-size:14px}body{background-color:#fff}}*{box-sizing:border-box}a{color:inherit}button{cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border-radius:8px;border:none;font-weight:600;font-size:14px;transition:background .15s ease,color .15s ease,opacity .15s ease}.btn:disabled{opacity:.6;cursor:default}.btn--primary{background:linear-gradient(90deg,#2563eb,#7c3aed);color:#fff}.btn--primary:hover:not([disabled]){filter:brightness(.95)}.btn--secondary{background:linear-gradient(90deg,#a78bfa,#d8b4fe);color:#fff}.btn--secondary:hover:not([disabled]){filter:brightness(.96)}.btn--ghost{background:transparent;color:#1f2933;border:1px solid rgba(31,41,51,.08)}.btn--danger{background:#ef4444;color:#fff}.btn--danger:hover:not([disabled]){background:#dc2626}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#60a5fa,#3b82f6);padding:24px}.change-password-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1f2937,#4c51bf);padding:24px}.change-password-card{background:#fff;padding:32px;border-radius:16px;max-width:420px;width:100%;box-shadow:0 24px 48px #0f172a2e;display:grid;gap:20px}.change-password-form{display:grid;gap:16px}.change-password-form label{display:grid;gap:8px;font-weight:600}.change-password-form input{padding:10px 12px;border-radius:8px;border:1px solid #cbd5e1;font-size:14px}.helper-text{margin:0;color:#475569;line-height:1.5}.stream-badge{display:inline-block;margin-left:8px;padding:2px 8px;background:linear-gradient(90deg,#10b981,#06b6d4);color:#fff;font-size:12px;border-radius:999px;vertical-align:middle;font-weight:700}.auth-card{background:#fff;padding:32px;border-radius:16px;max-width:360px;width:100%;box-shadow:0 24px 48px #0f172a26}@media (max-width: 768px){.auth-page{padding:20px}.auth-card{padding:28px;box-shadow:0 16px 32px #0f172a33}}@media (max-width: 480px){.auth-page{padding:16px}.auth-card{padding:24px;border-radius:12px;box-shadow:0 12px 24px #0f172a2e}.auth-form label{font-size:14px}.auth-form input,.auth-form select,.auth-form button,.auth-card button{font-size:14px;padding:10px}}.auth-form{display:grid;gap:16px;margin-top:24px}.auth-form label{display:grid;gap:8px;font-weight:600}.auth-form input,.auth-form select{padding:10px 12px;border-radius:8px;border:1px solid #cbd5e1;font-size:14px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;display:flex;align-items:center;justify-content:center;padding:24px;z-index:20;overflow-y:auto}.modal{background:#fff;border-radius:16px;padding:24px;max-width:520px;width:100%;max-height:min(720px,calc(100vh - 48px));box-shadow:0 20px 40px #0f172a40;display:flex;flex-direction:column;margin:auto}.full-name-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;padding:24px;z-index:50}.full-name-modal{background:#fff;border-radius:16px;padding:32px;max-width:420px;width:100%;box-shadow:0 28px 48px #0f172a59;display:grid;gap:20px}.full-name-description{margin:0;color:#475569;line-height:1.5}.full-name-form{display:grid;gap:16px}.full-name-form label{display:grid;gap:8px;font-weight:600}.full-name-form input{padding:12px;border-radius:10px;border:1px solid #cbd5e1;font-size:15px}.full-name-form button{padding:12px;border-radius:10px;border:none;background:#2563eb;color:#fff;font-weight:600;font-size:15px;transition:background .2s ease}.full-name-form button:hover:not([disabled]){background:#1d4ed8}.full-name-form button[disabled]{opacity:.7;cursor:default}.full-name-status{margin:0;color:#16a34a;font-weight:600}.full-name-error{margin:0;color:#dc2626;font-weight:600}.modal-form{display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding-right:4px}.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:8px;background:#fff;position:sticky;bottom:0;margin-top:auto;flex-shrink:0;border-top:1px solid #e2e8f0}.auth-form button,.auth-card button{padding:12px;border-radius:8px;border:none}.auth-form button[disabled]{opacity:.7;cursor:default}.auth-form button:hover:not([disabled]){background:#1d4ed8}.link-button{background:transparent;border:none;padding:0;margin-top:16px;color:#1d4ed8;font-weight:600;text-decoration:underline}.status-message{color:#16a34a;margin-top:12px}.error-message{color:#dc2626;margin-top:12px}.form-error{margin:0;color:#dc2626;font-weight:600}.form-error-block{margin-bottom:12px;padding:12px 14px;border-radius:12px;background:#fff7ed;border:1px solid #fdba74;color:#9a3412}.form-error--standalone{margin-bottom:8px}.form-conflict-list{margin:0;padding-left:20px;color:inherit;font-size:14px}.form-conflict-list li{margin-bottom:6px;line-height:1.4}.modal-conflicts{padding:12px 14px;border-radius:12px;background:#fef9c3;border:1px solid #facc15;color:#854d0e;display:grid;gap:8px}.conflict-summary{margin:16px 0;padding:16px;border-radius:12px;background:#fff7ed;border:1px solid #fdba74;color:#9a3412;box-shadow:0 12px 24px #f0944533}.conflict-summary h2{margin:0 0 8px;font-size:18px}.conflict-summary ul{margin:0;padding-left:20px}.conflict-summary li{margin-bottom:8px;line-height:1.5}.teacher-request-list{display:grid;gap:12px}.teacher-request-card{background:#fff;border-radius:12px;padding:12px;border:1px solid #e6eef8;box-shadow:0 8px 20px #0f172a0a}.teacher-request-card summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:6px 0}.teacher-request-card summary::-webkit-details-marker{display:none}.teacher-request-card__meta{display:block;color:#64748b;font-size:13px}.teacher-request-card details[open]{box-shadow:0 12px 28px #0f172a14}.teacher-request-panel{margin-top:20px}.teacher-request-toggle{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:12px;border:1px solid rgba(31,41,51,.06)}.teacher-request-toggle .toggle-label{font-weight:700}.teacher-request-toggle .toggle-count{background:#eef2ff;color:#5b21b6;padding:2px 8px;border-radius:999px;font-weight:700;font-size:13px}.teacher-request-toggle .toggle-arrow{width:12px;height:12px;border-right:2px solid #64748b;border-bottom:2px solid #64748b;transform:rotate(-45deg);transition:transform .18s ease;margin-left:8px}.teacher-request-toggle.open .toggle-arrow{transform:rotate(45deg)}.teacher-request-panel__body{margin-top:12px;max-height:0;overflow:hidden;transition:max-height .22s ease,opacity .18s ease;opacity:0}.teacher-request-panel__body.open{max-height:1200px;opacity:1}.editor-page{max-width:1200px;margin:0 auto;padding:32px}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.editor-header__brand{display:flex;align-items:center;gap:16px}.editor-header__meta h1{margin:0}.editor-header__meta p{margin:4px 0 0;color:#4b5563}.editor-header button{padding:10px 16px;border-radius:8px;font-weight:600}.editor-header__actions{display:flex;gap:12px}.editor-header__actions button{border:none;transition:background .2s ease}.editor-header__actions button:not(.secondary){background:#2563eb;color:#fff}.editor-header__actions button:not(.secondary):hover:not([disabled]){background:#1d4ed8}.editor-header__actions button:disabled{opacity:.6;cursor:default}@media (max-width: 1024px){.editor-page{padding:24px 20px}.editor-header{flex-direction:column;align-items:flex-start;gap:16px}.editor-header__actions{width:100%;flex-wrap:wrap;justify-content:flex-start}.editor-header__actions button{flex:1 1 160px}}@media (max-width: 640px){.editor-page{padding:20px 16px 32px}.editor-header__brand{flex-direction:column;align-items:flex-start;gap:12px}.editor-header__actions{gap:8px}.editor-header__actions button{flex:1 1 140px;font-size:14px;padding:8px 12px}}.editor-controls{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:24px}.teacher-tabs{display:flex;gap:8px;align-items:center;margin-bottom:16px}.teacher-tab{padding:8px 12px;border-radius:10px;font-weight:700;display:inline-flex;gap:8px;align-items:center;border:none;background:transparent;color:#334155}.teacher-tab--active{background:linear-gradient(90deg,#2563eb,#7c3aed);color:#fff;box-shadow:0 6px 16px #2563eb2e}.tab-icon{width:16px;height:16px;display:inline-block;vertical-align:middle}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;font-weight:700;font-size:12px;margin-left:6px}.btn--danger-strong{background:linear-gradient(180deg,#ef4444,#dc2626);color:#fff;box-shadow:0 6px 16px #dc26262e}.btn--danger-strong:hover:not([disabled]){filter:brightness(.95)}.control-group{background:#fff;padding:16px;border-radius:12px;box-shadow:0 12px 24px #0f172a14;display:grid;gap:12px}.control-group label{display:grid;gap:8px;font-weight:600}.control-group input,.control-group select{padding:10px 12px;border-radius:8px;border:1px solid #cbd5e1}.control-group button{padding:10px;border-radius:8px;border:none;background:#2563eb;color:#fff;font-weight:600}.control-group button.primary{background:#8b5cf6}.control-group button.secondary,.schedule-card__actions .danger,.editor-header .secondary{background:#f1f5f9;color:#1f2933}@media (max-width: 640px){.editor-controls{grid-template-columns:1fr}.control-group{padding:14px;gap:10px}.control-group button{width:100%}}.schedule-board{display:grid;gap:12px;overflow-x:auto}.schedule-board__title{margin:0 0 12px;font-size:20px;font-weight:700;color:#1f2933}.schedule-variant-layout{display:flex;gap:24px;align-items:stretch;overflow-x:auto}.schedule-variant-layout.variant-count-1{justify-content:center;padding:0 12px;gap:16px}.schedule-variant-layout.variant-count-1 .variant-column{min-width:min(480px,100%);max-width:960px;margin:0 auto}.schedule-variant-layout.variant-count-1 .grid-cell{min-height:110px;padding:6px;gap:6px}.schedule-variant-layout.variant-count-1 .grid-cell--empty{min-height:70px;font-size:11px}.schedule-variant-layout.variant-count-2{flex-direction:column;overflow-x:visible;overflow-y:auto}.variant-column{display:grid;gap:12px;min-width:520px;flex:0 0 auto}.schedule-variant-layout.variant-count-2 .variant-column{min-width:auto;width:100%}@media (max-width: 1024px){.schedule-board__title{font-size:18px}.schedule-variant-layout{gap:20px}.variant-column{min-width:min(480px,100%)}}@media (max-width: 768px){.schedule-board{padding-bottom:8px}.schedule-board__title{font-size:17px}.variant-column{min-width:min(420px,100%)}.grid-header,.grid-time{padding:10px;font-size:13px}.grid-cell{min-height:120px;padding:6px}.schedule-card{padding:10px}}@media (max-width: 640px){.schedule-variant-layout{gap:16px}.variant-column{min-width:100%}.schedule-grid{grid-template-columns:110px repeat(5,minmax(160px,1fr))!important}.grid-time{font-size:12px}.grid-cell{min-height:110px}.schedule-card__title{font-size:15px}.schedule-card__meta{font-size:12px}}@media (max-width: 480px){.schedule-grid{grid-template-columns:96px repeat(5,minmax(150px,1fr))!important}.grid-header,.grid-time{font-size:12px;padding:8px}.grid-cell{min-height:100px;padding:6px 4px}.schedule-card{gap:6px}}.empty-variant{margin:0;padding:12px;border-radius:12px;background:#f8fafc;border:1px dashed #cbd5e1;color:#475569;text-align:center;font-weight:500}.schedule-grid{display:grid;border:1px solid #cbd5e1;background:#fff;border-radius:12px;box-shadow:0 16px 32px #0f172a14}.grid-header,.grid-time{padding:12px;font-weight:700;background:#e2e8f0;border-bottom:1px solid #cbd5e1;border-right:1px solid #cbd5e1;text-align:center}.grid-time{text-align:left}.grid-cell{min-height:140px;padding:8px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;background:#f8fafc;display:grid;gap:8px}.grid-cell.dropping{background:#dbeafe}.grid-cell--empty{min-height:90px;background:#f1f5f9;align-content:center;justify-items:center;color:#94a3b8;font-size:12px;font-style:italic}.schedule-card{background:#fff;border-radius:10px;padding:12px;border-left:4px solid #2563eb;box-shadow:0 12px 20px #0f172a1f;display:grid;gap:8px}.schedule-card.dragging{opacity:.5}.schedule-card__title{font-weight:700;font-size:16px}.schedule-card__group-label{font-size:15px;font-weight:700;color:#1f2933;margin-bottom:8px;display:flex;gap:6px;align-items:baseline}.schedule-card__group-label strong{color:#2563eb;font-size:16px}.schedule-card__meta{display:grid;gap:4px;font-size:13px;color:#475569}.teacher-page{max-width:960px;margin:0 auto;padding:32px 24px 48px;display:flex;flex-direction:column;gap:24px}.teacher-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.teacher-header__actions{display:flex;gap:12px}.teacher-header__actions button{padding:10px 16px;border-radius:8px;border:none;font-weight:600;background:#2563eb;color:#fff;transition:background .2s ease}.teacher-header__actions button:hover:not([disabled]){background:#1d4ed8}.teacher-header__actions button.secondary{background:#f1f5f9;color:#1f2933}.teacher-header__actions button:disabled{opacity:.7;cursor:default}@media (max-width: 1024px){.teacher-page{padding:28px 20px 40px}.teacher-header{flex-direction:column;align-items:stretch;gap:18px}.teacher-header__actions{flex-wrap:wrap;justify-content:flex-start}.teacher-header__actions button{flex:1 1 160px}}@media (max-width: 640px){.teacher-page{padding:24px 16px 36px;gap:20px}.teacher-controls{grid-template-columns:1fr}.teacher-controls__group{padding:14px}.teacher-header__actions{gap:8px}.teacher-header__actions button{flex:1 1 140px;font-size:14px;padding:8px 12px}.teacher-day-view__header{flex-direction:column;align-items:flex-start;gap:6px}}.teacher-controls{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.teacher-controls__group{background:#fff;padding:16px;border-radius:12px;box-shadow:0 12px 24px #0f172a14;display:grid;gap:12px;align-content:start}.teacher-controls__group label{display:grid;gap:8px;font-weight:600}.teacher-controls__group select{padding:10px 12px;border-radius:8px;border:1px solid #cbd5e1}.teacher-view-toggle,.teacher-day-toggle{display:flex;gap:8px;flex-wrap:wrap}.teacher-view-toggle button,.teacher-day-toggle button{padding:8px 14px;border-radius:9999px;border:1px solid #cbd5e1;background:#f1f5f9;font-weight:600;transition:all .2s ease}.teacher-view-toggle button.active,.teacher-day-toggle button.active{background:#2563eb;color:#fff;border-color:#1d4ed8}.teacher-view-toggle button:not(.active):hover,.teacher-day-toggle button:not(.active):hover{background:#e2e8f0}.teacher-schedule{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0f172a1a;padding:24px}.teacher-day-view{display:grid;gap:20px}.teacher-day-view__header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #e2e8f0;padding-bottom:12px}.teacher-day-view__header h2{margin:0;font-size:20px}.teacher-day-view__header span{font-weight:600;color:#475569}.teacher-lesson-list{display:grid;gap:16px}.teacher-lesson-card{padding:16px;border-radius:12px;background:#f8fafc;border-left:4px solid #2563eb;box-shadow:0 10px 20px #0f172a14;display:grid;gap:12px}@media (max-width: 640px){.teacher-lesson-card{padding:14px;gap:10px}.teacher-lesson-card__meta{font-size:13px}}.teacher-lesson-card__header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}.teacher-lesson-card__pair{font-weight:700;color:#0f172a}.teacher-lesson-card__group{font-weight:600;color:#2563eb}.teacher-lesson-card__body h3{margin:0;font-size:18px;color:#1f2937}.teacher-lesson-card__body p{margin:0;color:#475569}.teacher-week-view table{width:100%;border-collapse:collapse}.teacher-week-view th,.teacher-week-view td{border:1px solid #e2e8f0;padding:12px;text-align:left}.teacher-week-view th{background:#f1f5f9;font-weight:700;text-align:center}.teacher-week-view__time{display:grid;gap:4px;font-weight:600;color:#1f2937}.teacher-week-view__empty{color:#94a3b8;font-style:italic}.teacher-week-view__lesson{display:grid;gap:4px;padding:8px;border-radius:8px;background:#f8fafc;box-shadow:inset 0 0 0 1px #e2e8f0}.teacher-empty,.student-empty{margin:0;padding:16px;border-radius:12px;background:#f8fafc;border:1px dashed #cbd5e1;color:#475569;text-align:center;font-weight:500}.schedule-card__meta--summary{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.schedule-card__actions{display:flex;gap:8px;justify-content:flex-end}.schedule-card__actions button{padding:6px 10px;border-radius:6px;border:none;background:#2563eb;color:#fff;font-size:13px;font-weight:600;transition:background .2s ease,transform .2s ease}.schedule-card__actions button.danger{background:#dc2626;color:#fff}.schedule-card__actions button:hover:not([disabled]){background:#1d4ed8;transform:translateY(-1px)}.schedule-card__actions button.danger:hover:not([disabled]){background:#b91c1c}.schedule-card__subgroups{display:grid;gap:10px;margin:8px 0}.schedule-card__subgroup{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;display:grid;gap:6px;border-left:4px solid transparent;transition:transform .2s ease,box-shadow .2s ease}.schedule-card__subgroup:hover{transform:translateY(-1px);box-shadow:0 8px 16px #0f172a14}.schedule-card__subgroup--accent-orange{border-left-color:#f97316;background:linear-gradient(135deg,#fbbf2426,#fee2e233)}.schedule-card__subgroup--accent-green{border-left-color:#10b981;background:linear-gradient(135deg,#10b9811f,#cbd5e12e)}.schedule-card__subgroup--accent-purple{border-left-color:#8b5cf6;background:linear-gradient(135deg,#8b5cf61f,#ddd6fe38)}.schedule-card__subgroup-name{font-weight:600;color:#1f2933}.schedule-card__subgroup-meta{display:grid;gap:4px;font-size:13px;color:#475569}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;display:flex;align-items:center;justify-content:center;padding:24px;z-index:20}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-header .ghost{background:transparent;border:none;font-size:20px}.modal-form label{display:grid;gap:8px;font-weight:600}.modal-form .checkbox-field{display:flex;gap:8px;align-items:center}.subgroup-sections{display:grid;gap:16px}.subgroup-section{border:1px solid #cbd5e1;border-radius:12px;padding:16px;background:#eff6ff;display:grid;gap:12px}.subgroup-section legend{font-weight:700;margin-bottom:4px}.subgroup-section label{font-weight:500}.subgroup-toggle{margin-bottom:8px}.subgroup-section--inactive{opacity:.65;background:#f8fafc;border-style:dashed}.subgroup-section--inactive input,.subgroup-section--inactive select{background:#94a3b81f}.modal-form input,.modal-form select{padding:10px 12px;border-radius:8px;border:1px solid #cbd5e1}.modal-actions .action-buttons{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.modal-actions .action-buttons .primary{min-width:220px}.modal-actions button{padding:12px 18px;border-radius:10px;border:none;font-weight:600;font-size:15px;transition:background .2s ease,transform .2s ease,box-shadow .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}.modal-actions button:disabled{opacity:.7;cursor:default}.modal-actions button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 10px 18px #2563eb2e}.modal-actions .primary{background:#2563eb;color:#fff}.modal-actions .primary:not(:disabled):hover{background:#1d4ed8}.modal-actions .ghost{background:#475569;color:#fff}.modal-actions .ghost:not(:disabled):hover{background:#334155;box-shadow:0 10px 18px #33415538}.admin-page{max-width:1200px;margin:0 auto;padding:32px;display:flex;flex-direction:column;gap:24px}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.admin-header__actions{display:flex;gap:12px}.admin-header__actions button{padding:10px 16px;border-radius:10px;border:none;font-weight:600;background:#2563eb;color:#fff;transition:background .2s ease}.admin-header__actions button.secondary{background:#0f172a}.admin-header__actions button:hover:not([disabled]){background:#1d4ed8}.admin-header__actions button.secondary:hover:not([disabled]){background:#1e293b}.admin-tabs{display:flex;gap:12px;flex-wrap:wrap;background:#fff;padding:12px;border-radius:12px;box-shadow:0 12px 24px #0f172a14}.admin-tabs button{padding:10px 18px;border-radius:20px;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;font-weight:600;transition:background .2s ease,transform .2s ease}.admin-tabs button.active{background:#2563eb;color:#fff;border-color:#2563eb;box-shadow:0 10px 20px #2563eb33}.admin-tabs button:hover:not(.active){transform:translateY(-1px);background:#e2e8f0}.admin-content,.admin-section{display:grid;gap:24px}.admin-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 20px 35px #0f172a1a;display:grid;gap:16px}.admin-card__header{display:flex;justify-content:space-between;align-items:center;gap:16px}.admin-card__header--stacked{flex-wrap:wrap;align-items:flex-start}.admin-card--requests{display:flex;flex-direction:column;gap:24px}.admin-request-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.admin-request-controls>button{padding:10px 16px;border:none;border-radius:8px;background:#2563eb;color:#fff;font-weight:600}.admin-request-controls>button:disabled{opacity:.6;cursor:default}.admin-request-controls>button:hover:not([disabled]){background:#1d4ed8}.admin-request-filters{display:flex;gap:8px;flex-wrap:wrap}.admin-request-filters button{padding:8px 14px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;font-weight:600;transition:background .2s ease,color .2s ease,border-color .2s ease}.admin-request-filters button.active{background:#2563eb;border-color:#2563eb;color:#fff}.admin-request-filters button:hover:not(.active){background:#e2e8f0}.admin-request-list{display:grid;gap:20px}.admin-request-card{background:#fff;border-radius:16px;border:1px solid #e2e8f0;padding:20px;display:flex;flex-direction:column;gap:16px;box-shadow:0 12px 24px #0f172a14}.admin-request-card__header{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-request-card__context{margin:0;color:#475569;font-size:14px}.admin-request-card__status{display:flex;flex-direction:column;gap:6px;font-size:14px;min-width:220px}.status-badge{align-self:flex-start;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600}.status-badge.status-pending{background:#facc15;color:#713f12}.status-badge.status-approved{background:#34d399;color:#065f46}.status-badge.status-rejected{background:#f87171;color:#7f1d1d}.admin-request-card__body{display:grid;gap:12px}.admin-request-warning{background:#fef3c7;border:1px solid #f59e0b;border-radius:12px;padding:12px;margin:0;color:#78350f;font-weight:600}.admin-request-changes{list-style:none;padding:0;margin:0;display:grid;gap:8px}.admin-request-changes li{display:flex;justify-content:space-between;background:#f1f5f9;padding:10px 12px;border-radius:10px;font-size:14px}.admin-request-note{margin:0;background:#f8fafc;border-radius:12px;padding:12px;font-size:14px;line-height:1.5}.admin-request-card__actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}.admin-request-card__actions button{padding:10px 16px;border-radius:8px;border:none;font-weight:600;background:#2563eb;color:#fff}.admin-request-card__actions button.danger{background:#dc2626}.admin-request-card__actions button:hover:not([disabled]){filter:brightness(.92)}.admin-form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end}.admin-form-grid label{display:grid;gap:6px;font-weight:600}.admin-form-grid input,.admin-form-grid select{padding:10px 12px;border-radius:8px;border:1px solid #cbd5e1}.admin-form-grid button{padding:12px 18px;border-radius:10px;border:none;background:#2563eb;color:#fff;font-weight:600}.admin-form-grid button:hover:not([disabled]){background:#1d4ed8}.admin-table{display:grid;gap:12px}.admin-table__header,.admin-table__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:center}.admin-table__header{font-weight:700;color:#1f2933;border-bottom:1px solid #e2e8f0;padding-bottom:8px}.admin-table__row{padding:10px 0;border-bottom:1px solid #f1f5f9}.admin-table__row input,.admin-table__row select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid #cbd5e1}.admin-table--users .admin-table__header,.admin-table--users .admin-table__row{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(200px,auto)}.admin-table__actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.admin-table__actions button{padding:8px 12px;border-radius:8px;border:none;font-weight:600;background:#2563eb;color:#fff}.admin-table__actions button.secondary{background:#0f172a}.admin-table__actions button.danger{background:#dc2626}.admin-table__actions button:hover:not([disabled]){transform:translateY(-1px);box-shadow:0 8px 18px #2563eb2e}.admin-table__actions button.danger:hover:not([disabled]){box-shadow:0 10px 18px #dc262638}.admin-empty{padding:12px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;text-align:center;color:#64748b}.admin-form-inline{display:flex;gap:10px;flex-wrap:wrap}.admin-form-inline input{padding:8px 10px;border-radius:8px;border:1px solid #cbd5e1}.student-page{max-width:1100px;margin:0 auto;padding:32px 24px 48px;display:grid;gap:24px}.student-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.student-header__subtitle{margin:8px 0 0;color:#475569;font-size:15px}.student-header__actions{display:flex;gap:12px;align-items:center}.student-header__actions button{padding:10px 16px;border:none;border-radius:8px;font-weight:600;background:#2563eb;color:#fff}.student-header__actions button.secondary{background:#f1f5f9;color:#1f2933}.student-header__actions button.ghost{background:transparent;color:#2563eb;border:1px solid #2563eb}@media (max-width: 900px){.student-header{flex-direction:column;align-items:stretch;gap:20px}.student-header__actions{flex-wrap:wrap;justify-content:flex-start}.student-header__actions button{flex:1 1 180px}}@media (max-width: 640px){.student-page{padding:24px 16px 40px}.student-header__actions{gap:8px}.student-header__actions button,.student-header__actions .btn{flex:1 1 140px;padding:8px 12px;font-size:14px}}.student-section{display:grid;gap:24px}.student-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 18px 36px #0f172a1f;display:grid;gap:16px}.student-muted{margin:0;color:#64748b;line-height:1.5}.student-group-form{display:grid;gap:16px;max-width:360px}.student-group-form label{display:grid;gap:8px;font-weight:600}.student-group-form select{padding:10px 12px;border-radius:10px;border:1px solid #cbd5e1;font-size:15px}.student-group-actions{display:flex;gap:12px;align-items:center}.student-group-actions button{padding:10px 16px;border-radius:10px;border:none;font-weight:600;background:#2563eb;color:#fff}.student-group-actions .secondary{background:#f1f5f9;color:#1f2933}.student-group-summary{font-size:16px;color:#1f2933}@media (max-width: 640px){.student-card{padding:20px;border-radius:14px}.student-group-form{max-width:none}.student-group-actions{flex-direction:column;align-items:stretch}.student-group-actions button{width:100%}}.student-controls{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.student-controls__group{background:#fff;padding:16px;border-radius:12px;box-shadow:0 12px 24px #0f172a14;display:grid;gap:12px;align-content:start}.student-controls__group label{display:grid;gap:8px;font-weight:600}.student-controls__group select{padding:10px 12px;border-radius:8px;border:1px solid #cbd5e1}.student-view-toggle,.student-day-toggle{display:flex;gap:8px;flex-wrap:wrap}.student-view-toggle button,.student-day-toggle button{padding:8px 14px;border-radius:9999px;border:1px solid #cbd5e1;background:#f1f5f9;font-weight:600;transition:all .2s ease}.student-view-toggle button.active,.student-day-toggle button.active{background:#2563eb;color:#fff;border-color:#1d4ed8}.student-view-toggle button:not(.active):hover,.student-day-toggle button:not(.active):hover{background:#e2e8f0}.student-schedule{background:#fff;border-radius:16px;box-shadow:0 18px 36px #0f172a1f;padding:24px;display:grid;gap:24px}@media (max-width: 640px){.student-controls{grid-template-columns:1fr}.student-controls__group{padding:14px;border-radius:12px}.student-schedule{padding:20px;border-radius:14px;gap:20px}}.student-day-view{display:grid;gap:20px}.student-day-view__header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #e2e8f0;padding-bottom:12px}.student-day-view__header h3{margin:0;font-size:20px}.student-day-view__header span{font-weight:600;color:#475569}@media (max-width: 640px){.student-day-view__header{flex-direction:column;align-items:flex-start;gap:6px}}.student-day-view__list{display:grid;gap:16px}.student-week-view table{width:100%;border-collapse:collapse}.student-week-view th,.student-week-view td{border:1px solid #e2e8f0;padding:12px;text-align:left}.student-week-view th{background:#f1f5f9;font-weight:700;text-align:center}.student-week-view__time{display:grid;gap:4px;font-weight:600;color:#1f2937}.student-week-view__empty{color:#94a3b8;font-style:italic}.student-week-view__lesson{display:grid;gap:6px;padding:8px;border-radius:8px;background:#f8fafc;box-shadow:inset 0 0 0 1px #e2e8f0}.student-week-view__lesson strong{font-size:15px}.student-week-view__subgroups{margin:4px 0 0;padding-left:16px;font-size:13px;color:#475569}.student-week-view__subgroups li{margin-bottom:4px}.student-lesson{border:1px solid #cbd5e1;border-radius:12px;padding:14px;display:grid;gap:10px;background:#fff}.student-lesson__header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.student-lesson__time{font-weight:700;color:#2563eb}.student-lesson__title{font-size:17px;font-weight:600;color:#1f2933}.student-lesson__details{display:flex;gap:12px;flex-wrap:wrap;font-size:14px;color:#475569}.student-lesson-subgroups{border-top:1px dashed #e2e8f0;padding-top:10px;display:grid;gap:8px}.student-lesson-subgroup{display:grid;gap:4px;background:#f8fafc;border-radius:8px;padding:10px}.student-lesson-subgroup__name{font-weight:600;color:#2563eb}.student-lesson-subgroup__details{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:#475569}@media (max-width: 640px){.student-lesson{padding:12px;gap:8px}.student-lesson__header{flex-direction:column;align-items:flex-start;gap:6px}.student-lesson__details{gap:8px;font-size:13px}.student-lesson-subgroup__details{gap:8px;font-size:12px}}.admin-form-inline button{padding:10px 16px;border-radius:8px;border:none;font-weight:600;background:#2563eb;color:#fff}.admin-form-inline button:hover:not([disabled]){background:#1d4ed8}.admin-table--stacked .admin-table__header,.admin-table--stacked .admin-table__row{grid-template-columns:repeat(5,minmax(0,1fr))}.admin-search{margin:16px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.admin-search input{flex:1 1 240px;padding:10px 12px;border-radius:10px;border:1px solid #cbd5e1;font-size:15px}.admin-search button{padding:10px 16px;border-radius:10px;border:none;font-weight:600;background:#2563eb;color:#fff}.admin-search button.secondary{background:#0f172a}.admin-muted{color:#94a3b8;font-style:italic}.admin-log-details{margin:0;padding:8px 10px;background:#0f172a;color:#e2e8f0;border-radius:8px;max-height:160px;overflow:auto;font-size:12px}button.secondary{background:#475569;color:#fff}button.secondary:hover:not([disabled]){background:#334155}@media (max-width: 768px){.schedule-grid{grid-template-columns:120px repeat(3,1fr)}}
