.header{background:var(--color-secondary);border-bottom:2px solid var(--color-primary);z-index:100;justify-content:space-between;align-items:center;height:64px;padding:0 1.5rem;display:flex;position:sticky;top:0}.header-left,.header-logo{align-items:center;gap:.8rem;display:flex}.menu-toggle{border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius);background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.2rem;display:none}.menu-toggle:hover{background:#ffffff0d}.logo-icon{object-fit:cover;border-radius:50%;flex-shrink:0;width:40px;height:40px;display:block}.logo-text{flex-direction:column;line-height:1.2;display:flex}.logo-title{color:var(--color-primary);font-size:1rem;font-weight:700}.logo-subtitle{color:var(--color-text-muted);font-size:.7rem}.header-right{align-items:center;gap:1rem;display:flex}.header-user{color:var(--color-text-muted);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.user-role-badge{color:var(--color-primary);background:#ffc10726;border-radius:12px;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.btn-logout{color:var(--color-text-muted);border-radius:var(--radius);border:1px solid var(--color-border);background:0 0;align-items:center;gap:.4rem;padding:.4rem .8rem;font-size:.85rem;display:flex}.btn-logout:hover{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}@media (width<=768px){.header-user span:not(.user-role-badge),.btn-logout span{display:none}.menu-toggle{display:flex}.logo-subtitle{display:none}}.sidebar{background:var(--color-secondary);border-right:1px solid var(--color-border);width:240px;min-height:calc(100vh - 64px);padding:1rem 0;position:sticky;top:64px;overflow-y:auto}.sidebar-nav{flex-direction:column;gap:.2rem;padding:0 .5rem;display:flex}.sidebar-link{color:var(--color-text-muted);border-radius:var(--radius);transition:var(--transition);align-items:center;gap:.8rem;padding:.7rem 1rem;font-size:.9rem;text-decoration:none;display:flex}.sidebar-link:hover{color:var(--color-text);background:#ffffff0d}.sidebar-link.active{color:var(--color-primary);background:#ffc10726;font-weight:600}.sidebar-link.active .sidebar-icon{color:var(--color-primary)}.sidebar-icon{align-items:center;font-size:1.1rem;display:flex}.sidebar-group{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);opacity:.6;margin-top:.3rem;padding:.8rem 1rem .2rem;font-size:.7rem;font-weight:600}.sidebar-backdrop{display:none}@media (width<=768px){.sidebar{z-index:200;width:260px;max-width:80vw;height:calc(100dvh - 64px);padding-top:calc(1rem + 56px + env(safe-area-inset-top,0px));padding-bottom:calc(2.5rem + env(safe-area-inset-bottom,0px));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transition:transform .25s;position:fixed;top:64px;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:4px 0 16px #00000059}.sidebar.open{transform:translate(0)}.sidebar-backdrop{z-index:150;background:#00000080;display:block;position:fixed;inset:64px 0 0}}.layout{min-height:100vh}.layout-body{display:flex}.layout-content{flex:1;min-height:calc(100vh - 64px);padding:1.5rem;overflow-x:auto}.login-page{background:linear-gradient(135deg,#1a1a1a 0%,#2d2d2d 50%,#1a1a1a 100%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-lg);padding:2.5rem}.login-header{text-align:center;margin-bottom:2rem}.login-logo{object-fit:cover;border-radius:50%;width:88px;height:88px;margin-bottom:1rem;display:inline-block;box-shadow:0 4px 16px #00000059}.login-header h1{color:var(--color-primary);font-size:1.5rem;font-weight:700}.login-header h2{color:var(--color-text-muted);font-size:.9rem;font-weight:400}.login-form{flex-direction:column;gap:.2rem;display:flex}.login-form input{width:100%}.login-btn{justify-content:center;width:100%;margin-top:.5rem;padding:.8rem;font-size:1rem}.login-error{color:var(--color-danger);border-radius:var(--radius);text-align:center;background:#f4433626;padding:.6rem 1rem;font-size:.85rem}.login-info{border-top:1px solid var(--color-border);text-align:center;color:var(--color-text-muted);margin-top:1.5rem;padding-top:1.5rem;font-size:.8rem}.login-info p{margin-bottom:.3rem}.login-info strong{color:var(--color-primary)}.login-legal{justify-content:center;align-items:center;gap:.5rem;margin-top:1rem;font-size:.75rem;display:flex}.login-legal a{color:var(--color-text-muted);text-decoration:none}.login-legal a:hover{color:var(--color-primary);text-decoration:underline}.login-legal span{color:var(--color-text-muted);opacity:.5}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.link-button{color:var(--color-primary);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-weight:600}.link-button:hover{text-decoration:underline}.stat-card{text-align:center;padding:1.5rem 1rem;position:relative}.stat-icon{justify-content:center;margin-bottom:.5rem;font-size:2rem;display:flex}.stat-link{color:var(--color-primary);align-items:center;gap:.3rem;margin-top:.8rem;font-size:.8rem;display:inline-flex}.stat-link:hover{text-decoration:underline}.exam-list{gap:1rem;display:grid}.exam-item{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.exam-info h3{color:var(--color-text);margin-bottom:.3rem}.exam-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:1rem;font-size:.85rem;display:flex}.exam-meta span{align-items:center;gap:.3rem;display:flex}.exam-actions{gap:.5rem;display:flex}.schedule-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.schedule-tab{border-radius:var(--radius);background:var(--color-secondary-light);color:var(--color-text-muted);border:1px solid #0000;padding:.5rem 1rem;font-size:.85rem}.schedule-tab.active{color:var(--color-primary);border-color:var(--color-primary);background:#ffc10726}.schedule-grid{background:var(--color-border);border-radius:var(--radius);grid-template-columns:80px repeat(7,1fr);gap:1px;min-width:700px;display:grid;overflow:hidden}.schedule-grid-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.schedule-cell{background:var(--color-bg-card);min-height:60px;padding:.6rem;font-size:.8rem}.schedule-cell.schedule-cell-head{background:var(--color-secondary);color:var(--color-primary);text-align:center;padding:.8rem;font-weight:600}.schedule-cell.time-cell{background:var(--color-secondary);color:var(--color-text-muted);justify-content:center;align-items:center;font-weight:600;display:flex}.schedule-cell .subject{color:var(--color-primary);font-weight:600}.schedule-cell .teacher{color:var(--color-text-muted);margin-top:.2rem;font-size:.75rem}.student-grid{gap:.5rem;display:grid}.teacher-card{margin-bottom:1rem}.teacher-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.teacher-name{color:var(--color-primary);font-size:1.1rem;font-weight:600}.teacher-subject{color:var(--color-text-muted);font-size:.85rem}.slots-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem;display:grid}.slot-item{background:var(--color-bg);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:.6rem .8rem;font-size:.85rem;display:flex}.slot-item.booked{border-left:3px solid var(--color-success)}.slot-item.available{border-left:3px solid var(--color-primary)}.slot-time{font-weight:600}.slot-day{color:var(--color-text-muted);font-size:.8rem}.form-actions{justify-content:flex-end;gap:.8rem;margin-top:1.5rem;display:flex}.announcement-item{margin-bottom:0}.announcement-item h3{color:var(--color-primary);margin-bottom:.3rem}.announcement-item p{color:var(--color-text-muted);font-size:.9rem;line-height:1.5}.announcement-date{color:var(--color-text-muted);margin-top:.5rem;font-size:.8rem}.attendance-btn{width:22px;height:22px;color:var(--color-primary);cursor:pointer;opacity:.6;background:#ffc10726;border:none;border-radius:4px;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;bottom:3px;right:3px}.attendance-btn:hover{opacity:1;background:#ffc1074d}.schedule-students-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.5rem;display:grid}.schedule-student-item{background:var(--color-bg);border-radius:var(--radius);border-left:3px solid var(--color-primary);align-items:center;gap:.5rem;padding:.5rem .8rem;display:flex}.schedule-student-name{font-size:.9rem;font-weight:600}.schedule-student-username{color:var(--color-text-muted);font-size:.8rem}.tutoring-log-section{border-top:1px solid var(--color-border);margin-top:1rem;padding-top:1rem}.tutoring-log-item{background:var(--color-bg);border-radius:var(--radius);justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem;padding:.8rem;display:flex}.tutoring-log-item .log-info{flex:1}.tutoring-log-item .log-date{color:var(--color-text-muted);margin-bottom:.3rem;font-size:.8rem}.tutoring-log-item .log-topic{margin-bottom:.2rem;font-size:.9rem;font-weight:600}.tutoring-log-item .log-notes{color:var(--color-text-muted);font-size:.85rem;line-height:1.4}.attendance-badge{white-space:nowrap;border-radius:12px;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.messenger-page{flex-direction:column;height:100%;display:flex}.messenger-topbar{margin-bottom:1rem}.messenger-total-badge{background:var(--color-danger);color:#fff;border-radius:999px;margin-left:.5rem;padding:.05rem .5rem;font-size:.75rem;font-weight:700}.messenger{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card);height:calc(100vh - 64px - 6.2rem);min-height:440px;box-shadow:var(--shadow);display:flex;overflow:hidden}.messenger-list{border-right:1px solid var(--color-border);background:var(--color-secondary);flex-direction:column;width:320px;min-width:260px;display:flex}.messenger-list-header{border-bottom:1px solid var(--color-border);align-items:center;gap:.4rem;padding:.6rem .7rem;display:flex}.messenger-search{background:var(--color-bg-input);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;flex:1;align-items:center;gap:.4rem;padding:.35rem .7rem;display:flex}.messenger-search input{color:var(--color-text);background:0 0;border:none;flex:1;padding:0;font-size:.85rem}.messenger-search input:focus{box-shadow:none;outline:none}.messenger-icon-btn{width:34px;height:34px;color:var(--color-primary);transition:var(--transition);background:0 0;border-radius:50%;justify-content:center;align-items:center;display:flex}.messenger-icon-btn:hover{background:#ffc10726}.messenger-conversations{flex:1;overflow-y:auto}.conversation-item{text-align:left;width:100%;transition:var(--transition);background:0 0;border-bottom:1px solid #ffffff0a;align-items:center;gap:.7rem;padding:.7rem .8rem;display:flex}.conversation-item:hover{background:#ffffff0a}.conversation-item.active{background:#ffc1071f}.avatar{background:linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));width:42px;height:42px;color:var(--color-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex}.conversation-body{flex:1;min-width:0}.conversation-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.conversation-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;font-weight:600;overflow:hidden}.conversation-time{color:var(--color-text-muted);flex-shrink:0;font-size:.72rem}.conversation-preview{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.unread-badge{background:var(--color-primary);color:var(--color-secondary);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 .35rem;font-size:.72rem;font-weight:700;display:flex}.messenger-empty-list{text-align:center;color:var(--color-text-muted);padding:1.5rem 1rem;font-size:.85rem}.messenger-thread{flex-direction:column;flex:1;min-width:0;display:flex}.thread-header{border-bottom:1px solid var(--color-border);background:var(--color-secondary);align-items:center;gap:.7rem;padding:.6rem .9rem;display:flex}.thread-back{color:var(--color-text);background:0 0;padding:.2rem;display:none}.thread-name{color:var(--color-text);font-size:.95rem;font-weight:600}.thread-role{color:var(--color-text-muted);font-size:.78rem}.thread-messages{background:radial-gradient(circle at 20% 20%, #ffc10708, transparent 40%), var(--color-bg);flex-direction:column;flex:1;gap:.25rem;padding:1rem;display:flex;overflow-y:auto}.day-divider{text-align:center;margin:.6rem 0}.day-divider span{background:var(--color-secondary-light);color:var(--color-text-muted);border-radius:999px;padding:.2rem .7rem;font-size:.72rem}.bubble-row{margin-bottom:.15rem;display:flex}.bubble-row.mine{justify-content:flex-end}.bubble-row.theirs{justify-content:flex-start}.bubble{word-break:break-word;border-radius:12px;max-width:72%;padding:.5rem .7rem .35rem;font-size:.9rem;line-height:1.45;position:relative}.bubble-row.mine .bubble{background:var(--color-primary);color:var(--color-secondary);border-bottom-right-radius:3px}.bubble-row.theirs .bubble{background:var(--color-secondary-light);color:var(--color-text);border-bottom-left-radius:3px}.bubble-tag{text-transform:uppercase;letter-spacing:.03em;opacity:.8;align-items:center;gap:.2rem;margin-bottom:.2rem;font-size:.65rem;font-weight:700;display:inline-flex}.bubble-subject{margin-bottom:.15rem;font-weight:700}.bubble-content{white-space:pre-wrap}.bubble-meta{justify-content:flex-end;align-items:center;gap:.25rem;margin-top:.15rem;display:flex}.bubble-time{opacity:.7;font-size:.68rem}.ticks{align-items:center;display:inline-flex}.ticks svg:nth-child(2){margin-left:-7px}.bubble-row.mine .ticks{color:var(--color-secondary);opacity:.55}.bubble-row.mine .ticks.read{color:var(--color-info);opacity:1}.bubble-delete{background:var(--color-danger);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:none;position:absolute;top:-8px;right:-8px}.bubble:hover .bubble-delete{display:flex}.thread-empty,.thread-placeholder{color:var(--color-text-muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.75rem;padding:2rem;display:flex}.thread-empty{margin:auto}.thread-input{border-top:1px solid var(--color-border);background:var(--color-secondary);align-items:flex-end;gap:.6rem;padding:.7rem .9rem;display:flex}.thread-input textarea{resize:none;border-radius:20px;flex:1;max-height:120px;padding:.6rem .9rem;font-size:.9rem;line-height:1.4}.send-btn{background:var(--color-primary);width:42px;height:42px;color:var(--color-secondary);transition:var(--transition);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.send-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:scale(1.05)}.send-btn:disabled{opacity:.5;cursor:not-allowed}.new-chat-list{max-height:340px;overflow-y:auto}.new-chat-item{border-radius:var(--radius);text-align:left;width:100%;transition:var(--transition);background:0 0;align-items:center;gap:.7rem;padding:.6rem .4rem;display:flex}.new-chat-item:hover{background:#ffffff0d}@media (width<=768px){.messenger{height:calc(100vh - 64px - 4.6rem)}.messenger-list{width:100%}.messenger-thread,.messenger.has-active .messenger-list{display:none}.messenger.has-active .messenger-thread{display:flex}.thread-back{align-items:center;display:flex}.bubble{max-width:85%}}.student-stats{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.welcome-section{margin-bottom:2rem}.welcome-section h2{color:var(--color-primary);margin-bottom:.5rem;font-size:1.3rem}.welcome-section p{color:var(--color-text-muted);font-size:.9rem}.schedule-view{-webkit-overflow-scrolling:touch;overflow-x:auto}.schedule-view .schedule-grid{grid-template-columns:80px repeat(7,1fr);min-width:700px}.exam-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}.exam-card-student{position:relative;overflow:hidden}.exam-card-student .exam-type-badge{position:absolute;top:1rem;right:1rem}.exam-card-student h3{color:var(--color-text);margin-bottom:.8rem;font-size:1.05rem}.exam-card-detail{color:var(--color-text-muted);align-items:center;gap:.4rem;margin-bottom:.4rem;font-size:.85rem;display:flex}.exam-card-footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-top:1rem;padding-top:1rem;display:flex}.capacity-bar{background:var(--color-border);border-radius:3px;width:100%;height:6px;margin-top:.8rem;overflow:hidden}.capacity-fill{background:var(--color-primary);border-radius:3px;height:100%;transition:width .3s}.tutoring-teachers{gap:1rem;display:grid}.tutoring-teacher-card{padding:1.5rem}.tutoring-teacher-info{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.tutoring-teacher-info h3{color:var(--color-primary)}.tutoring-slots{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;display:grid}.tutoring-slot{background:var(--color-bg);border-radius:var(--radius);border-left:3px solid var(--color-primary);justify-content:space-between;align-items:center;padding:.8rem;display:flex}.tutoring-slot.my-booking{border-left-color:var(--color-success);background:#4caf500d}.tutoring-slot.taken{border-left-color:var(--color-border);opacity:.6}.question-form{grid-template-columns:1fr;align-items:end;gap:.8rem;display:grid}@media (width>=768px){.question-form{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}.question-logs{margin-top:1.5rem}.question-summary{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.summary-card{text-align:center;padding:1rem}.summary-card .number{font-size:1.8rem;font-weight:700}.summary-card .label{color:var(--color-text-muted);margin-top:.2rem;font-size:.8rem}.announcement-list{gap:1rem;display:grid}.announcement-student-card{border-left:3px solid var(--color-primary)}.announcement-student-card h3{color:var(--color-primary);margin-bottom:.5rem}.announcement-student-card p{color:var(--color-text-muted);font-size:.9rem;line-height:1.6}.announcement-student-card .date{color:var(--color-text-muted);margin-top:.5rem;font-size:.8rem}.tutoring-history-list{gap:1rem;display:grid}.tutoring-history-item{border-left:3px solid var(--color-primary)}.history-header{justify-content:space-between;align-items:flex-start;margin-bottom:.8rem;display:flex}.history-teacher{color:var(--color-primary);font-size:1rem;font-weight:600}.history-subject{color:var(--color-text-muted);font-size:.8rem}.history-details{color:var(--color-text-muted);gap:1rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.history-topic{border-radius:var(--radius);background:#ffc10714;margin-top:.5rem;padding:.5rem .8rem;font-size:.9rem}.history-notes{color:var(--color-text-muted);border-left:2px solid var(--color-border);margin-top:.5rem;padding-left:.5rem;font-size:.85rem;line-height:1.5}.attendance-badge{white-space:nowrap;border-radius:12px;align-items:center;gap:.2rem;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.attendance-badge.attended{color:var(--color-success);background:#4caf5026}.attendance-badge.absent{color:var(--color-danger);background:#f4433626}:root{--color-primary:#ffc107;--color-primary-dark:#ffa000;--color-primary-light:#ffecb3;--color-primary-hover:#ffd54f;--color-secondary:#212121;--color-secondary-light:#424242;--color-bg:#1a1a1a;--color-bg-card:#2d2d2d;--color-bg-input:#333;--color-text:#fff;--color-text-muted:#bdbdbd;--color-success:#4caf50;--color-danger:#f44336;--color-info:#2196f3;--color-warning:#ff9800;--color-border:#424242;--font-family:"Segoe UI", "Inter", -apple-system, sans-serif;--radius:8px;--radius-lg:12px;--shadow:0 2px 8px #0000004d;--shadow-lg:0 4px 16px #0006;--transition:all .2s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-text);min-height:100vh;line-height:1.6}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}button{cursor:pointer;font-family:var(--font-family);transition:var(--transition);border:none;font-size:.9rem}input,select,textarea{font-family:var(--font-family);background:var(--color-bg-input);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);transition:var(--transition);outline:none;padding:.6rem .8rem;font-size:.9rem}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #ffc10733}select option{background:var(--color-secondary);color:var(--color-text)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-secondary-light);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-primary-dark)}.btn{border-radius:var(--radius);transition:var(--transition);align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--color-primary);color:var(--color-secondary)}.btn-primary:hover{background:var(--color-primary-hover);box-shadow:var(--shadow);transform:translateY(-1px)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{opacity:.9;transform:translateY(-1px)}.btn-secondary{background:var(--color-secondary-light);color:var(--color-text)}.btn-secondary:hover{background:#555;transform:translateY(-1px)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover{opacity:.9}.btn-sm{padding:.4rem .8rem;font-size:.8rem}.card{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--color-border);padding:1.5rem}.page-title{color:var(--color-primary);align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700;display:flex}.form-group{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.form-group label{color:var(--color-text-muted);font-size:.85rem;font-weight:500}.form-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.badge{border-radius:12px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-primary{color:var(--color-primary);background:#ffc10733}.badge-success{color:var(--color-success);background:#4caf5033}.badge-danger{color:var(--color-danger);background:#f4433633}.badge-info{color:var(--color-info);background:#2196f333}.empty-state{text-align:center;color:var(--color-text-muted);padding:3rem 1rem}.empty-state svg{opacity:.5;margin-bottom:1rem;font-size:3rem}.modal-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;width:100%;height:100%;animation:.2s fadeIn;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border);width:90%;max-width:500px;max-height:80vh;box-shadow:var(--shadow-lg);padding:2rem;animation:.2s slideUp;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-header h3{color:var(--color-primary);font-size:1.2rem}.modal-close{color:var(--color-text-muted);background:0 0;padding:.2rem;font-size:1.5rem}.modal-close:hover{color:var(--color-text)}.modal-footer{justify-content:flex-end;gap:.8rem;margin-top:1.5rem;display:flex}.stat-card{text-align:center;padding:1.2rem}.stat-card .stat-number{color:var(--color-primary);font-size:2rem;font-weight:700}.stat-card .stat-label{color:var(--color-text-muted);margin-top:.3rem;font-size:.85rem}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:500px}.data-table th{text-align:left;text-transform:uppercase;color:var(--color-text-muted);border-bottom:2px solid var(--color-border);white-space:nowrap;padding:.8rem .6rem;font-size:.75rem}.data-table td{border-bottom:1px solid var(--color-border);word-break:break-word;padding:.6rem;font-size:.85rem}.data-table tr:hover{background:#ffffff08}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.form-row{grid-template-columns:1fr}.page-title{font-size:1.1rem}.card{padding:.8rem}.toolbar{flex-direction:column;align-items:stretch;gap:.5rem}.data-table{min-width:400px}.data-table th,.data-table td{padding:.5rem .4rem;font-size:.8rem}.question-form{grid-template-columns:1fr}.question-summary{grid-template-columns:repeat(2,1fr)}.schedule-students-list,.slots-grid,.tutoring-slots{grid-template-columns:1fr}.exam-item{flex-direction:column}.exam-actions{justify-content:flex-end;width:100%}}
