@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.login-screen{color:#eaf0fb;background:linear-gradient(#101a29 0%,#0a111b 100%);min-height:100vh;font-family:Inter,sans-serif}.login-body{grid-template-columns:45% 55%;min-height:100vh;display:grid}.login-left{background:#243f72;flex-direction:column;align-items:center;padding:200px 56px 34px;display:flex}.login-logo-ring{background:#295196;border-radius:50%;place-items:center;width:150px;height:150px;display:grid}.login-logo-core{background:#2f5fa7;border-radius:50%;flex-direction:column;align-items:center;width:105px;height:105px;padding-top:10px;display:flex}.login-logo-letter{font-size:37px;font-weight:700;line-height:1}.logo-p-top{padding-top:8px}.login-logo-name{color:#9eb7dd;margin-top:2px;font-size:18px}.login-left h1{text-align:center;max-width:370px;margin-top:24px;font-size:30px;font-weight:700;line-height:1.12}.login-left-meta{color:#8fb0dd;margin-top:30px;font-size:14px}.login-left-meta+.login-left-meta{margin-top:6px}.login-left ul{text-align:left;color:#8fb0dd;margin-top:50px;padding-left:0;font-size:14px;line-height:1.8;list-style:none}.login-left ul li{padding-left:18px;position:relative}.login-left ul li:before{content:"";background:#4f8cff;border-radius:50%;width:10px;height:10px;position:absolute;top:8px;left:0}.login-right{background:radial-gradient(circle at 50% 12%,#1a2e50 0%,#0b1b31 80%);flex-direction:column;justify-content:center;align-items:center;padding-left:100px;padding-right:100px;display:flex}.login-card{background:#1a2535;border-top:none;border-radius:8px;width:70%;height:50%;padding:32px 22px 14px;position:relative}.login-card:before{content:"";background:#3366b6;border-radius:3px;height:5px;position:absolute;top:-6px;left:0;right:0}.login-card h2{text-align:center;font-size:31px}.login-card-subtitle{text-align:center;color:#7f92af;margin-top:26px;margin-bottom:26px;font-size:14px}.login-role-tabs{background:#081a2c;border-radius:10px;grid-template-columns:1fr 1fr 1fr;gap:5px;padding:5px;display:grid}.login-role-tabs button{color:#76879f;cursor:pointer;background:0 0;border:0;border-radius:8px;height:40px;font-size:14px}.login-role-tabs button.active{color:#d8e8ff;background:#3568b4;font-weight:600}.login-form{margin-top:14px}.login-form label{color:#7f94b2;margin:11px 0 6px;font-size:14px;display:block}.login-input-wrap{background:#091c2f;border:1px solid #2f66b2;border-radius:10px;align-items:center;height:48px;padding:0 12px;display:flex}.login-input-wrap input{color:#d7e6fc;background:0 0;border:0;outline:none;flex:1;font-family:Inter,sans-serif;font-size:13px}.login-input-wrap input::placeholder{color:#5f7390}.login-input-wrap span{color:#6f83a0;font-size:14px}.login-row{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.login-remember{color:#7f95b4;align-items:center;gap:7px;margin:0;font-size:13px;display:flex}.login-remember input{accent-color:#3a6dba;width:14px;height:14px}.login-forgot-link{color:#3c78d4;cursor:pointer;background:0 0;border:0;padding:0;font-family:Inter,sans-serif;font-size:13px}.login-submit{color:#e5f0ff;cursor:pointer;background:#3568b4;border:0;border-radius:10px;width:100%;height:48px;margin-top:14px;font-size:15px;font-weight:600}.login-access-panel{background:#0f1923;border-radius:10px;margin-top:36px;padding:20px 12px}.login-access-panel p{text-align:center;color:#7788a2;margin-bottom:8px;font-size:13px}.login-access-tags{gap:8px;display:flex}.login-access-tags span{text-align:center;border-radius:6px;flex:1;padding:7px 5px;font-size:12px}.login-access-tags .admin{color:#9bb7e4;background:#253f6f}.login-access-tags .teacher{color:#8dc399;background:#1f4d38}.login-access-tags .student{color:#e1b26b;background:#5a3a15}.login-footer{color:#2f4463;margin-top:12px;font-size:12px}@media (width<=1200px){.login-body{grid-template-columns:1fr}.login-left{padding:32px 24px}.login-left h1{font-size:40px}.login-left-meta,.login-left ul{font-size:16px}.login-card{width:min(560px,96%);margin-bottom:12px}.login-card h2{font-size:40px}.login-footer{text-align:center;margin-top:18px}}:root{--color-bg-primary:#0f1923;--color-bg-surface:#1a2535;--color-bg-elevated:#1f3864;--color-brand-primary:#2e5fa3;--color-brand-light:#4472c4;--color-status-success:#70ad47;--color-status-warning:#ffc000;--color-status-danger:#c00000;--color-text-primary:#fff;--color-text-secondary:#89a;--color-border-subtle:#374b60;--font-primary:Arial, sans-serif;--font-data:"Fira Code", monospace;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--radius-sm:6px;--radius-md:10px}*{box-sizing:border-box}body{font-family:var(--font-primary);background-color:var(--color-bg-primary);color:var(--color-text-primary);margin:0}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.app-shell{background-color:var(--color-bg-primary);grid-template-columns:280px 1fr;min-height:100vh;display:grid}.app-main{flex-direction:column;min-width:0;display:flex}.app-content{padding:var(--space-4)}.sidebar{background:#132846;flex-direction:column;gap:18px;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{background:#1f3864;align-items:center;gap:10px;padding:20px 24px;display:flex}.sidebar-brand-icon{background:var(--color-brand-primary);border-radius:50%;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.sidebar-brand-name{font-size:18px;font-weight:600}.sidebar-bottom{background:#151e2b;align-items:center;gap:10px;margin-top:auto;padding:20px 24px;display:flex}.sidebar-bottom-icon{background:var(--color-brand-primary);border-radius:50%;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.sidebar-bottom-name{color:#c4d2e6;font-size:15px;font-weight:600}.sidebar-bottom-exit{box-shadow:none;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;margin-left:auto}.sidebar-role{color:var(--color-text-secondary);margin-top:2px;font-size:13px}.sidebar-nav{flex-direction:column;gap:8px;margin-top:20px;display:flex}.sidebar-link{border-radius:var(--radius-sm);color:#c4d2e6;border:1px solid #0000;align-items:center;gap:9px;padding:15px 30px;display:flex}.sidebar-link:hover{background:#1c3356}.sidebar-link.active{background:var(--color-brand-primary)}.sidebar-logout{border-radius:var(--radius-sm);color:var(--color-text-secondary);border:1px solid var(--color-border-subtle);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:9px;margin-top:auto;padding:10px 12px}.sidebar-icon-fa{flex:0 0 16px;width:16px;font-size:15px}.main-header{background:#172a43;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.main-header-title{font-size:22px;font-weight:600}.main-header-subtitle{color:var(--color-text-secondary);margin-top:4px;font-size:13px}.main-header-user{text-align:right}.main-header-user-name{font-size:14px;font-weight:600}.main-header-user-role{color:var(--color-text-secondary);margin-top:4px;font-size:12px}.page-content{gap:var(--space-3);flex-direction:column;max-width:960px;display:flex}.page-subtitle{color:var(--color-text-secondary);font-size:14px}.page-card{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);color:#c6d3e5;margin-top:4px;padding:18px}.admin-dashboard{flex-direction:column;gap:16px;display:flex}.admin-dashboard-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-dashboard-title{font-size:24px;font-weight:600}.admin-dashboard-new-user{border:1px solid var(--color-brand-light);background:var(--color-brand-primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;padding:9px 12px;font-size:13px}.admin-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.admin-kpi-card{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #3b64aa;padding:36px 14px}.admin-kpi-card-green{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #619641;padding:36px 14px}.admin-kpi-card-yellow{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #d1a606;padding:36px 14px}.admin-kpi-card-red{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #a40406;padding:36px 14px}.admin-kpi-label{color:var(--color-text-secondary);font-size:13px}.admin-kpi-value{margin-top:7px;font-size:26px;font-weight:700}.admin-users-card{background:var(--color-bg-surface);border-radius:var(--radius-sm);margin-top:20px;padding:14px}.admin-users-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.admin-users-header h3{font-size:17px}.admin-users-header p{color:var(--color-text-secondary);font-size:13px}.admin-users-page-card{margin-top:0}.admin-users-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.admin-users-toolbar-header{flex:auto;margin-bottom:0}.admin-users-filters{flex-wrap:wrap;gap:12px;margin-bottom:14px;display:flex}.admin-users-filter-item{flex:180px;min-width:180px}.admin-users-field{gap:6px;display:grid}.admin-users-label{color:#9fb1c7;font-size:13px}.admin-users-control{color:#d7e6fc;background:#111e31;border:1px solid #29456e;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:13px}.admin-users-control:focus{border-color:#4472c4}.admin-users-primary-button,.admin-users-secondary-button{cursor:pointer;border-radius:8px;padding:9px 12px;font-size:13px}.admin-users-primary-button{color:#fff;background:#2e5fa3;border:1px solid #4b74b8}.admin-users-primary-button:hover{background:#3b6db4}.admin-users-secondary-button{color:#d7e6fc;background:#111e31;border:1px solid #29456e}.admin-users-secondary-button:hover{background:#16253a}.admin-users-primary-button:disabled,.admin-users-secondary-button:disabled{opacity:.6;cursor:not-allowed}.admin-users-message{color:var(--color-text-secondary);font-size:14px}.admin-users-message-success{color:#bdebcf;margin-bottom:12px}.admin-users-message-error{color:#f08b8b}.admin-users-table-wrap{overflow-x:auto}.admin-users-table{border-collapse:collapse;width:100%}.admin-users-table th,.admin-users-table td{border-bottom:1px solid var(--color-border-subtle);text-align:left;padding:10px 8px;font-size:13px}.admin-users-table th{color:var(--color-text-secondary);font-weight:600}.admin-badge{border:1px solid #0000;border-radius:20px;padding:4px 8px;font-size:11px;display:inline-block}.admin-badge-role-admin{color:#c4dcff;background:#203d64;border-color:#325a8f}.admin-badge-role-docente{color:#bdebcf;background:#1f4d38;border-color:#2f7a57}.admin-badge-role-estudiante{color:#f6d5a4;background:#5a3a15;border-color:#8c5c1f}.admin-badge-role-default{color:#c4d2e6;background:#29384a;border-color:#3f556f}.admin-badge-active{color:#bdebcf;background:#1f4d38;border-color:#2f7a57}.admin-badge-inactive{color:#f3b7b7;background:#4b2a2a;border-color:#7e4444}.admin-actions{gap:6px;display:flex}.admin-actions button,.admin-pagination button{border:1px solid var(--color-border-subtle);color:#d7e6fc;cursor:pointer;background:#16253a;border-radius:6px;padding:6px 8px;font-size:12px}.admin-actions button:hover,.admin-pagination button:hover{background:#1f3864}.admin-actions button:disabled,.admin-pagination button:disabled{opacity:.55;cursor:not-allowed}.admin-pagination{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.admin-pagination p{color:var(--color-text-secondary);font-size:13px}.admin-users-name-cell{align-items:center;gap:10px;display:flex}.admin-users-avatar{color:#fff;background:#2e5fa3;border-radius:50%;flex:0 0 34px;place-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:grid}.admin-users-name-meta{gap:3px;display:grid}.admin-users-name-text{color:#d7e6fc;font-size:13px;font-weight:600}.admin-users-name-role{color:#8fa5c2;text-transform:capitalize;font-size:12px}.admin-students-user-id{color:#8fa5c2;font-size:12px}.admin-students-group-badge{color:#c4dcff;background:#203d64;border:1px solid #325a8f;border-radius:20px;padding:4px 8px;font-size:11px;display:inline-block}.admin-users-modal-overlay{z-index:1000;background-color:#050b14b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.admin-users-modal-card{background:#172a43;border:1px solid #29456e;border-radius:12px;width:100%;max-width:540px;padding:20px;box-shadow:0 24px 60px #00000059}.admin-users-modal-header{margin-bottom:0}.admin-users-form-grid{gap:14px;margin-top:16px;display:grid}.admin-users-checkbox-row{color:#d7e6fc;align-items:center;gap:10px;font-size:13px;display:flex}.admin-users-modal-actions{justify-content:flex-end;gap:10px;display:flex}.admin-users-modal-loading{margin-top:16px}.admin-subjects-actions{flex-wrap:wrap}.admin-subjects-students-modal{max-width:920px}.admin-subjects-students-toolbar{flex-wrap:wrap;align-items:end;gap:12px;margin-top:16px;margin-bottom:16px;display:flex}.admin-subjects-students-picker{flex:320px}.admin-subjects-students-footer{margin-top:16px}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--color-border-subtle);height:auto;position:static}.sidebar-logout{margin-top:0}.main-header{padding:14px 16px}.app-content{padding:16px}.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-dashboard-top,.admin-users-toolbar,.admin-pagination{flex-direction:column;align-items:flex-start}}.teacher-dashboard{flex-direction:column;gap:16px;display:flex}.teacher-kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.teacher-kpi-card{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #3b64aa;padding:36px 14px}.teacher-kpi-card-green{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #619641;padding:36px 14px}.teacher-kpi-card-yellow{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #d1a606;padding:36px 14px}.teacher-kpi-card-red{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #a40406;padding:36px 14px}.teacher-kpi-label{color:var(--color-text-secondary);font-size:13px}.teacher-kpi-value{margin-top:8px;font-size:24px;font-weight:700}.teacher-panel{background:var(--color-bg-surface);border-radius:var(--radius-sm);margin-top:20px;padding:14px}.teacher-panel-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.teacher-panel-header h3{font-size:17px}.teacher-panel-header p{color:var(--color-text-secondary);font-size:13px}.teacher-distribution-list{flex-direction:column;gap:10px;display:flex}.teacher-distribution-item{grid-template-columns:70px 1fr 35px;align-items:center;gap:10px;display:grid}.teacher-distribution-range{color:var(--color-text-secondary);font-size:13px}.teacher-distribution-bar-track{background:#13233a;border-radius:999px;height:12px;overflow:hidden}.teacher-distribution-bar-fill{background:linear-gradient(90deg,#2e5fa3 0%,#4472c4 100%);border-radius:999px;min-width:2px;height:100%}.teacher-distribution-value{text-align:right;color:#c6d3e5;font-size:13px}.teacher-table-wrap{overflow-x:auto}.teacher-table{border-collapse:collapse;width:100%}.teacher-table th,.teacher-table td{border-bottom:1px solid var(--color-border-subtle);text-align:left;padding:10px 8px;font-size:13px}.teacher-table th{color:var(--color-text-secondary);font-weight:600}.teacher-status-badge{border:1px solid #0000;border-radius:20px;padding:4px 8px;font-size:11px;display:inline-block}.teacher-status-approved{color:#bdebcf;background:#1f4d38;border-color:#2f7a57}.teacher-status-risk{color:#f3b7b7;background:#4b2a2a;border-color:#7e4444}.teacher-message{color:var(--color-text-secondary);font-size:14px}.teacher-message-error{color:#f08b8b}.teacher-attendance-panel{margin-top:0}.teacher-attendance-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.teacher-attendance-toolbar-header{flex:auto;margin-bottom:0}.teacher-attendance-filters{flex-wrap:wrap;gap:12px;margin-bottom:14px;display:flex}.teacher-attendance-filter-item{flex:180px;min-width:180px}.teacher-attendance-field{gap:6px;display:grid}.teacher-attendance-label{color:#9fb1c7;font-size:13px}.teacher-attendance-control{color:#d7e6fc;background:#111e31;border:1px solid #29456e;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:13px}.teacher-attendance-control:focus{border-color:#4472c4}.teacher-attendance-primary-button,.teacher-attendance-secondary-button{cursor:pointer;border-radius:8px;padding:9px 12px;font-size:13px}.teacher-attendance-primary-button{color:#fff;background:#2e5fa3;border:1px solid #4b74b8}.teacher-attendance-primary-button:hover{background:#3b6db4}.teacher-attendance-secondary-button{color:#d7e6fc;background:#111e31;border:1px solid #29456e}.teacher-attendance-secondary-button:hover{background:#16253a}.teacher-attendance-primary-button:disabled,.teacher-attendance-secondary-button:disabled{opacity:.6;cursor:not-allowed}.teacher-attendance-actions{gap:6px;display:flex}.teacher-attendance-actions button,.teacher-attendance-pagination button{border:1px solid var(--color-border-subtle);color:#d7e6fc;cursor:pointer;background:#16253a;border-radius:6px;padding:6px 8px;font-size:12px}.teacher-attendance-actions button:hover,.teacher-attendance-pagination button:hover{background:#1f3864}.teacher-attendance-actions button:disabled,.teacher-attendance-pagination button:disabled{opacity:.55;cursor:not-allowed}.teacher-attendance-pagination{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.teacher-attendance-pagination p{color:var(--color-text-secondary);font-size:13px}.teacher-attendance-message-success{color:#bdebcf;margin-bottom:12px}.teacher-attendance-modal-overlay{z-index:1000;background-color:#050b14b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.teacher-attendance-modal-card{background:#172a43;border:1px solid #29456e;border-radius:12px;width:100%;max-width:540px;padding:20px;box-shadow:0 24px 60px #00000059}.teacher-attendance-modal-header{margin-bottom:0}.teacher-attendance-form-grid{gap:14px;margin-top:16px;display:grid}.teacher-attendance-modal-actions{justify-content:flex-end;gap:10px;display:flex}.teacher-attendance-modal-loading{margin-top:16px}.teacher-grades-panel{margin-top:0}.teacher-grades-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.teacher-grades-toolbar-header{flex:auto;margin-bottom:0}.teacher-grades-filters{flex-wrap:wrap;gap:12px;margin-bottom:14px;display:flex}.teacher-grades-filter-item{flex:180px;min-width:180px}.teacher-grades-field{gap:6px;display:grid}.teacher-grades-label{color:#9fb1c7;font-size:13px}.teacher-grades-control{color:#d7e6fc;background:#111e31;border:1px solid #29456e;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:13px}.teacher-grades-control:focus{border-color:#4472c4}.teacher-grades-primary-button,.teacher-grades-secondary-button{cursor:pointer;border-radius:8px;padding:9px 12px;font-size:13px}.teacher-grades-primary-button{color:#fff;background:#2e5fa3;border:1px solid #4b74b8}.teacher-grades-primary-button:hover{background:#3b6db4}.teacher-grades-secondary-button{color:#d7e6fc;background:#111e31;border:1px solid #29456e}.teacher-grades-secondary-button:hover{background:#16253a}.teacher-grades-primary-button:disabled,.teacher-grades-secondary-button:disabled{opacity:.6;cursor:not-allowed}.teacher-grades-actions{gap:6px;display:flex}.teacher-grades-actions button,.teacher-grades-pagination button{border:1px solid var(--color-border-subtle);color:#d7e6fc;cursor:pointer;background:#16253a;border-radius:6px;padding:6px 8px;font-size:12px}.teacher-grades-actions button:hover,.teacher-grades-pagination button:hover{background:#1f3864}.teacher-grades-actions button:disabled,.teacher-grades-pagination button:disabled{opacity:.55;cursor:not-allowed}.teacher-grades-pagination{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.teacher-grades-pagination p{color:var(--color-text-secondary);font-size:13px}.teacher-grades-message-success{color:#bdebcf;margin-bottom:12px}.teacher-grades-score-badge{border:1px solid #0000;border-radius:20px;padding:4px 8px;font-size:11px;display:inline-block}.teacher-grades-score-high{color:#bdebcf;background:#1f4d38;border-color:#2f7a57}.teacher-grades-score-medium{color:#c4dcff;background:#203d64;border-color:#325a8f}.teacher-grades-score-warning{color:#f6d5a4;background:#5a3a15;border-color:#8c5c1f}.teacher-grades-score-low{color:#f3b7b7;background:#4b2a2a;border-color:#7e4444}.teacher-grades-modal-overlay{z-index:1000;background-color:#050b14b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.teacher-grades-modal-card{background:#172a43;border:1px solid #29456e;border-radius:12px;width:100%;max-width:540px;padding:20px;box-shadow:0 24px 60px #00000059}.teacher-grades-modal-header{margin-bottom:0}.teacher-grades-form-grid{gap:14px;margin-top:16px;display:grid}.teacher-grades-modal-actions{justify-content:flex-end;gap:10px;display:flex}.teacher-grades-modal-loading{margin-top:16px}.teacher-reports-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-reports-panel{margin-top:0}.teacher-reports-filters{flex-wrap:wrap;gap:12px;display:flex}.teacher-reports-filter-item{flex:180px;min-width:180px}.teacher-reports-label{color:#9fb1c7;margin-bottom:6px;font-size:13px;display:block}.teacher-reports-control{color:#d7e6fc;background:#111e31;border:1px solid #29456e;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:13px}.teacher-reports-control:focus{border-color:#4472c4}.teacher-reports-actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.teacher-reports-export-button{color:#fff;cursor:pointer;background:#2e5fa3;border:1px solid #4b74b8;border-radius:10px;min-width:180px;padding:16px 18px;font-size:14px;font-weight:600}.teacher-reports-export-button:hover{background:#3b6db4}.teacher-reports-export-button:disabled{opacity:.6;cursor:not-allowed}.teacher-reports-message-success{color:#bdebcf;margin-top:12px}.teacher-messages-layout{grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:16px;display:grid}.teacher-messages-panel,.teacher-messages-detail-panel{margin-top:0}.teacher-messages-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.teacher-messages-toolbar-header{flex:auto;margin-bottom:0}.teacher-messages-filters{flex-wrap:wrap;gap:12px;margin-bottom:14px;display:flex}.teacher-messages-filter-item{flex:180px;min-width:180px}.teacher-messages-label{color:#9fb1c7;margin-bottom:6px;font-size:13px;display:block}.teacher-messages-control{color:#d7e6fc;background:#111e31;border:1px solid #29456e;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:13px}.teacher-messages-control:focus{border-color:#4472c4}.teacher-messages-message-success{color:#bdebcf;margin-bottom:12px}.teacher-messages-badge{border:1px solid #0000;border-radius:20px;padding:4px 8px;font-size:11px;display:inline-block}.teacher-messages-badge-read{color:#bdebcf;background:#1f4d38;border-color:#2f7a57}.teacher-messages-badge-unread{color:#f6d5a4;background:#5a3a15;border-color:#8c5c1f}.teacher-messages-actions{gap:6px;display:flex}.teacher-messages-actions button,.teacher-messages-pagination button{border:1px solid var(--color-border-subtle);color:#d7e6fc;cursor:pointer;background:#16253a;border-radius:6px;padding:6px 8px;font-size:12px}.teacher-messages-actions button:hover,.teacher-messages-pagination button:hover{background:#1f3864}.teacher-messages-actions button:disabled,.teacher-messages-pagination button:disabled{opacity:.55;cursor:not-allowed}.teacher-messages-pagination{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.teacher-messages-pagination p{color:var(--color-text-secondary);font-size:13px}.teacher-messages-detail{gap:14px;display:grid}.teacher-messages-detail-block{gap:6px;display:grid}.teacher-messages-detail-label{color:#8fa5c2;text-transform:uppercase;letter-spacing:.04em;font-size:12px}.teacher-messages-detail-value{color:#d7e6fc;font-size:13px}.teacher-messages-body{color:#d7e6fc;white-space:pre-wrap;background:#111e31;border:1px solid #29456e;border-radius:8px;min-height:140px;padding:12px;font-size:13px;line-height:1.5}.teacher-messages-detail-actions{justify-content:flex-end;display:flex}.teacher-messages-primary-button{color:#fff;cursor:pointer;background:#2e5fa3;border:1px solid #4b74b8;border-radius:8px;padding:9px 12px;font-size:13px}.teacher-messages-primary-button:hover{background:#3b6db4}.teacher-messages-primary-button:disabled{opacity:.6;cursor:not-allowed}@media (width<=1200px){.teacher-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-messages-layout{grid-template-columns:1fr}}@media (width<=900px){.teacher-kpi-grid,.teacher-reports-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-attendance-toolbar,.teacher-attendance-pagination,.teacher-grades-toolbar,.teacher-grades-pagination,.teacher-messages-toolbar,.teacher-messages-pagination{flex-direction:column;align-items:flex-start}}@media (width<=640px){.teacher-kpi-grid,.teacher-reports-kpi-grid{grid-template-columns:1fr}.teacher-distribution-item{grid-template-columns:60px 1fr 30px}}.student-dashboard{flex-direction:column;gap:16px;display:flex}.student-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.student-kpi-card{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #3b64aa;padding:36px 14px}.student-kpi-card-green{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #619641;padding:36px 14px}.student-kpi-card-yellow{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #d1a606;padding:36px 14px}.student-kpi-card-red{background:var(--color-bg-surface);border-radius:var(--radius-sm);border-top:3px solid #a40406;padding:36px 14px}.student-kpi-label{color:var(--color-text-secondary);font-size:13px}.student-kpi-value{margin-top:8px;font-size:24px;font-weight:700}.student-panel{background:var(--color-bg-surface);border-radius:var(--radius-sm);margin-top:20px;padding:14px}.student-panel-header{margin-bottom:12px}.student-panel-header h3{font-size:17px}.student-table-wrap{overflow-x:auto}.student-table{border-collapse:collapse;width:100%}.student-table th,.student-table td{border-bottom:1px solid var(--color-border-subtle);text-align:left;padding:10px 8px;font-size:13px}.student-table th{color:var(--color-text-secondary);font-weight:600}.student-badge{border:1px solid #0000;border-radius:20px;padding:4px 8px;font-size:11px;display:inline-block}.student-badge-success{color:#bdebcf;background:#1f4d38;border-color:#2f7a57}.student-badge-danger{color:#f3b7b7;background:#4b2a2a;border-color:#7e4444}.student-badge-warning{color:#f6d5a4;background:#5a3a15;border-color:#8c5c1f}.student-badge-neutral{color:#c4d2e6;background:#29384a;border-color:#3f556f}.student-message{color:var(--color-text-secondary);font-size:14px}.student-message-error{color:#f08b8b}.student-grades-kpi-grid,.student-subjects-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-grades-kpi-meta{color:var(--color-text-secondary);margin-top:6px;font-size:13px}.student-grades-progress-wrap{gap:10px;display:grid}.student-grades-progress-header{color:#c6d3e5;justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.student-grades-progress-track{background:#13233a;border-radius:999px;height:12px;overflow:hidden}.student-grades-progress-fill{background:linear-gradient(90deg,#2e5fa3 0%,#4472c4 100%);border-radius:999px;min-width:2px;height:100%}.student-grades-badge-excellent{color:#bdebcf;background:#1f4d38;border-color:#2f7a57}.student-grades-badge-good{color:#c4dcff;background:#203d64;border-color:#325a8f}.student-grades-badge-regular{color:#f6d5a4;background:#5a3a15;border-color:#8c5c1f}.student-grades-badge-risk{color:#f3b7b7;background:#4b2a2a;border-color:#7e4444}.student-grades-pagination{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.student-grades-pagination button{border:1px solid var(--color-border-subtle);color:#d7e6fc;cursor:pointer;background:#16253a;border-radius:6px;padding:6px 8px;font-size:12px}.student-grades-pagination button:hover{background:#1f3864}.student-grades-pagination button:disabled{opacity:.55;cursor:not-allowed}.student-grades-pagination p{color:var(--color-text-secondary);font-size:13px}.student-attendance-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.student-attendance-progress-wrap{gap:10px;display:grid}.student-attendance-progress-header{color:#c6d3e5;justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.student-attendance-progress-track{background:#13233a;border-radius:999px;height:12px;overflow:hidden}.student-attendance-progress-fill{background:linear-gradient(90deg,#3d8b5b 0%,#5ab87b 100%);border-radius:999px;min-width:2px;height:100%}.student-attendance-pagination{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.student-attendance-pagination button{border:1px solid var(--color-border-subtle);color:#d7e6fc;cursor:pointer;background:#16253a;border-radius:6px;padding:6px 8px;font-size:12px}.student-attendance-pagination button:hover{background:#1f3864}.student-attendance-pagination button:disabled{opacity:.55;cursor:not-allowed}.student-attendance-pagination p{color:var(--color-text-secondary);font-size:13px}.student-messages-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-messages-layout{grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:16px;display:grid}.student-messages-panel,.student-messages-detail-panel{margin-top:0}.student-messages-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.student-messages-toolbar-header{flex:auto;margin-bottom:0}.student-messages-filters{flex-wrap:wrap;gap:12px;margin-bottom:14px;display:flex}.student-messages-filter-item{flex:180px;min-width:180px}.student-messages-label{color:#9fb1c7;margin-bottom:6px;font-size:13px;display:block}.student-messages-control{color:#d7e6fc;background:#111e31;border:1px solid #29456e;border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:13px}.student-messages-control:focus{border-color:#4472c4}.student-messages-textarea{resize:vertical;min-height:120px}.student-messages-message-success{color:#bdebcf;margin-bottom:12px}.student-messages-actions{gap:6px;display:flex}.student-messages-actions button,.student-messages-pagination button{border:1px solid var(--color-border-subtle);color:#d7e6fc;cursor:pointer;background:#16253a;border-radius:6px;padding:6px 8px;font-size:12px}.student-messages-actions button:hover,.student-messages-pagination button:hover{background:#1f3864}.student-messages-actions button:disabled,.student-messages-pagination button:disabled{opacity:.55;cursor:not-allowed}.student-messages-pagination{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.student-messages-pagination p{color:var(--color-text-secondary);font-size:13px}.student-messages-detail{gap:14px;display:grid}.student-messages-detail-block{gap:6px;display:grid}.student-messages-detail-label{color:#8fa5c2;text-transform:uppercase;letter-spacing:.04em;font-size:12px}.student-messages-detail-value{color:#d7e6fc;font-size:13px}.student-messages-body{color:#d7e6fc;white-space:pre-wrap;background:#111e31;border:1px solid #29456e;border-radius:8px;min-height:140px;padding:12px;font-size:13px;line-height:1.5}.student-messages-detail-actions{justify-content:flex-end;display:flex}.student-messages-primary-button,.student-messages-secondary-button{cursor:pointer;border-radius:8px;padding:9px 12px;font-size:13px}.student-messages-primary-button{color:#fff;background:#2e5fa3;border:1px solid #4b74b8}.student-messages-primary-button:hover{background:#3b6db4}.student-messages-secondary-button{color:#d7e6fc;background:#111e31;border:1px solid #29456e}.student-messages-secondary-button:hover{background:#16253a}.student-messages-primary-button:disabled,.student-messages-secondary-button:disabled{opacity:.6;cursor:not-allowed}.student-messages-modal-overlay{z-index:1000;background-color:#050b14b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.student-messages-modal-card{background:#172a43;border:1px solid #29456e;border-radius:12px;width:100%;max-width:540px;padding:20px;box-shadow:0 24px 60px #00000059}.student-messages-modal-header{margin-bottom:0}.student-messages-form-grid{gap:14px;margin-top:16px;display:grid}.student-messages-field{gap:6px;display:grid}.student-messages-modal-actions{justify-content:flex-end;gap:10px;display:flex}@media (width<=900px){.student-kpi-grid,.student-grades-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-grades-pagination{flex-direction:column;align-items:flex-start}.student-attendance-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-attendance-pagination{flex-direction:column;align-items:flex-start}.student-messages-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-messages-pagination{flex-direction:column;align-items:flex-start}}@media (width<=640px){.student-kpi-grid,.student-grades-kpi-grid{grid-template-columns:1fr}.student-grades-progress-header{flex-direction:column;align-items:flex-start}.student-attendance-kpi-grid{grid-template-columns:1fr}.student-attendance-progress-header{flex-direction:column;align-items:flex-start}.student-messages-kpi-grid{grid-template-columns:1fr}}@media (width<=1200px){.student-messages-layout{grid-template-columns:1fr}}
