@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--primary-h:211;--primary-s:58%;--primary-l:27%;--accent-h:42;--accent-s:54%;--accent-l:53%;--primary:hsl(var(--primary-h), var(--primary-s), var(--primary-l));--primary-hover:hsl(var(--primary-h), var(--primary-s), calc(var(--primary-l) - 8%));--primary-light:hsl(var(--primary-h), var(--primary-s), calc(var(--primary-l) + 50%));--accent:hsl(var(--accent-h), var(--accent-s), var(--accent-l));--accent-hover:hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) - 8%));--accent-light:hsl(var(--accent-h), var(--accent-s), calc(var(--accent-l) + 30%));--bg-app:#f1f5f9;--bg-card:#fff;--text-main:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--input-bg:#f8fafc;--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -1px #0000000a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--glass-bg:#ffffffb3;--glass-border:#fff6;--success:#10b981;--success-bg:#ecfdf5;--warning:#f59e0b;--warning-bg:#fffbeb;--danger:#ef4444;--danger-bg:#fef2f2;--info:#3b82f6;--info-bg:#eff6ff}[data-theme=dark]{--bg-app:#0b0f19;--bg-card:#151f32;--text-main:#f8fafc;--text-muted:#94a3b8;--border:#24324d;--input-bg:#0b0f19;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 6px -1px #0000004d;--shadow-lg:0 10px 15px -3px #0006;--glass-bg:#151f32b3;--glass-border:#151f3266;--primary:hsl(var(--primary-h), var(--primary-s), clamp(50%, calc(var(--primary-l) + 15%), 70%));--primary-hover:hsl(var(--primary-h), var(--primary-s), clamp(42%, calc(var(--primary-l) + 7%), 62%));--primary-light:hsla(var(--primary-h), var(--primary-s), 50%, .15);--accent:hsl(var(--accent-h), var(--accent-s), clamp(50%, calc(var(--accent-l) + 10%), 75%));--accent-hover:hsl(var(--accent-h), var(--accent-s), clamp(42%, calc(var(--accent-l) + 2%), 67%));--accent-light:hsla(var(--accent-h), var(--accent-s), 50%, .15);--success-bg:#064e3b;--warning-bg:#451a03;--danger-bg:#7f1d1d;--info-bg:#1e3a8a}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .2s,border-color .2s}body{background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;line-height:1.5}h1,h2,h3,h4,h5,h6{color:var(--text-main);font-family:Outfit,sans-serif;font-weight:600}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.container{width:100%;max-width:1300px;margin:0 auto;padding:20px}.flex{display:flex}.flex-col{flex-direction:column}.align-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.flex-wrap{flex-wrap:wrap}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.grid{display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (width<=900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-app)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.card{background-color:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;padding:24px}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;display:flex}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px)saturate(180%);border:1px solid var(--glass-border);box-shadow:var(--shadow-md)}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-family:Outfit,sans-serif;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-sm{border-radius:6px;padding:6px 12px;font-size:12px}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-accent{background-color:var(--accent);color:#1f2937}.btn-accent:hover{background-color:var(--accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{border:1px solid var(--border);color:var(--text-main);background-color:#0000}.btn-secondary:hover{background-color:var(--border)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{background-color:#dc2626;transform:translateY(-1px)}.btn-full{width:100%}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none!important;transform:none!important}.badge{text-transform:uppercase;letter-spacing:.5px;border-radius:9999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-info{background:var(--info-bg);color:var(--info)}.form-group{flex-direction:column;margin-bottom:20px;display:flex}.form-group label{color:var(--text-main);margin-bottom:6px;font-size:13px;font-weight:600}.form-input{background-color:var(--input-bg);border:1px solid var(--border);color:var(--text-main);border-radius:10px;outline:none;padding:12px 16px;font-size:14px;transition:all .2s}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.app-shell{min-height:100vh;display:flex}.sidebar{background-color:var(--bg-card);border-right:1px solid var(--border);z-index:100;flex-direction:column;width:280px;height:100vh;padding:24px;display:flex;position:sticky;top:0}.sidebar-logo{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:32px;padding-bottom:15px;display:flex}.sidebar-menu{flex-direction:column;flex-grow:1;gap:6px;list-style:none;display:flex;overflow-y:auto}.sidebar-item{color:var(--text-muted);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:12px 16px;font-weight:500;transition:all .2s;display:flex}.sidebar-item:hover,.sidebar-item.active{background-color:var(--primary-light);color:var(--primary)}.sidebar-item.active{font-weight:600}.content-area{flex-grow:1;max-width:calc(100vw - 280px);padding:40px;overflow-y:auto}@media (width<=1024px){.app-shell{flex-direction:column}.sidebar{display:none}.content-area{max-width:100%;padding:20px}}.mobile-header{background-color:var(--bg-card);border-bottom:1px solid var(--border);z-index:150;justify-content:space-between;align-items:center;padding:16px 20px;display:none;position:sticky;top:0}@media (width<=1024px){.mobile-header{display:flex}}.table-container{border:1px solid var(--border);background-color:var(--bg-card);border-radius:12px;margin-top:16px;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th{background-color:var(--input-bg);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:16px 20px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--border);padding:16px 20px;font-size:14px}tr:last-child td{border-bottom:none}tbody tr:nth-child(2n) td{background-color:var(--input-bg)}tr:hover td{background-color:var(--border)}.chat-container{border:1px solid var(--border);background-color:var(--bg-card);border-radius:16px;height:500px;display:flex;overflow:hidden}.chat-sidebar{border-right:1px solid var(--border);background-color:var(--input-bg);flex-direction:column;width:250px;display:flex}.chat-contact-list{flex-grow:1;overflow-y:auto}.chat-contact-item{border-bottom:1px solid var(--border);cursor:pointer;place-content:center space-between;padding:16px;transition:all .2s;display:flex}.chat-contact-item:hover,.chat-contact-item.active{background-color:var(--bg-card)}.chat-content{flex-direction:column;flex-grow:1;height:100%;display:flex}.chat-header{border-bottom:1px solid var(--border);background-color:var(--bg-card);padding:16px 24px;font-weight:600}.chat-messages{background-color:var(--bg-app);flex-direction:column;flex-grow:1;gap:12px;padding:24px;display:flex;overflow-y:auto}.message-bubble{word-wrap:break-word;max-width:60%;box-shadow:var(--shadow-sm);border-radius:16px;padding:12px 16px;font-size:14px}.message-sent{background-color:var(--primary);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.message-received{background-color:var(--bg-card);color:var(--text-main);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.chat-footer{border-top:1px solid var(--border);background-color:var(--bg-card);gap:12px;padding:16px 24px;display:flex}dialog{background-color:var(--bg-card);width:90%;max-width:550px;color:var(--text-main);box-shadow:var(--shadow-lg);border:none;border-radius:16px;outline:none;margin:auto;padding:32px}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0f172aa6}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none}.modal-close-btn:hover{color:var(--text-main)}.toast-container{z-index:9999;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast-item{background-color:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:12px;align-items:center;gap:12px;min-width:320px;max-width:450px;padding:16px 24px;animation:.3s forwards slideIn;display:flex;position:relative;overflow:hidden}.toast-success{border-left:4px solid var(--success)}.toast-error{border-left:4px solid var(--danger)}.toast-warning{border-left:4px solid var(--warning)}.toast-info{border-left:4px solid var(--info)}.toast-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:auto}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.global-loading-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:99999;background-color:#0f172a66;flex-direction:column;justify-content:center;align-items:center;gap:16px;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.global-loading-spinner{border:4px solid #fff3;border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media print{@page{margin:10mm 7mm}body{font-size:12px;color:#000!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#fff!important;font-family:Arial,sans-serif!important}.sidebar,.mobile-header,.btn,.chat-container,.form-group,.toast-container,th:last-child,td:last-child{display:none!important}.content-area{max-width:100%!important;margin:0!important;padding:0!important}.container{width:100%!important;max-width:none!important;padding-left:0!important;padding-right:0!important}.card{box-shadow:none!important;border:none!important;padding:0!important}.table-container{background:0 0!important;border:none!important;margin-top:20px!important;overflow:visible!important}table{border-collapse:collapse!important;border:1px solid #000!important;width:100%!important;font-family:Arial,sans-serif!important;font-size:12px!important}th,td{vertical-align:middle!important;border:1px solid #000!important;padding:4px 5px!important;line-height:1.2!important}th{color:#000!important;background-color:#fff!important}tbody tr:nth-child(2n) td{background-color:#fff!important}.print-header{text-align:center;margin-bottom:12px;display:block!important}.students-screen-header{display:none!important}.students-print-table{margin-top:0!important}.students-print-table table{table-layout:fixed!important}.students-print-table th:first-child,.students-print-table td:first-child{width:20%!important}.students-print-table th:nth-child(2),.students-print-table td:nth-child(2){word-break:break-word;width:14%!important;font-size:10px!important}.students-print-table th:nth-child(3),.students-print-table td:nth-child(3){width:15%!important}.students-print-table th:nth-child(4),.students-print-table td:nth-child(4){width:16%!important}.students-print-table th:nth-child(5),.students-print-table td:nth-child(5){width:14%!important}.students-print-name{max-height:2.4em;display:block;overflow:hidden}.students-print-table .badge{color:#000!important;background:0 0!important;border:none!important;padding:0!important;font-size:12px!important}}.print-header{display:none}
