@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--bg-color: #0b0f19;--bg-primary: #0b0f19;--panel-bg: rgba(20, 26, 40, .65);--panel-border: rgba(255, 255, 255, .08);--panel-border-hover: rgba(59, 130, 246, .3);--text-main: #f8fafc;--text-muted: #94a3b8;--accent-primary: #3b82f6;--accent-secondary: #8b5cf6;--accent-cyan: #06b6d4;--accent-gradient: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);--accent-gradient-hover: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%);--status-safe: #10b981;--status-safe-bg: rgba(16, 185, 129, .12);--status-warning: #f59e0b;--status-warning-bg: rgba(245, 158, 11, .12);--status-critical: #ef4444;--status-critical-bg: rgba(239, 68, 68, .12);--font-family: "Plus Jakarta Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--progress-track: rgba(255, 255, 255, .06)}body{margin:0;padding:0;font-family:var(--font-family);background-color:var(--bg-color);color:var(--text-main);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;color:var(--text-main)}p{margin:0;color:var(--text-muted)}.app-container{display:flex;min-height:100vh;background:radial-gradient(circle at top right,rgba(59,130,246,.05),transparent 40%),radial-gradient(circle at bottom left,rgba(139,92,246,.05),transparent 40%)}.sidebar{width:280px;background-color:#0b0e14cc;border-right:1px solid var(--panel-border);display:flex;flex-direction:column;padding:24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10}.sidebar-logo{font-size:24px;font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:40px;display:flex;align-items:center;gap:12px}.sidebar-nav{display:flex;flex-direction:column;gap:8px;flex:1}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;color:var(--text-muted);text-decoration:none;font-weight:500;transition:all .3s ease;position:relative;overflow:hidden}.nav-item:hover{color:var(--text-main);background-color:#ffffff08}.nav-item.active{color:var(--text-main);background-color:#3b82f61a;box-shadow:inset 0 0 0 1px #3b82f633}.nav-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent-gradient);border-radius:0 4px 4px 0}.main-content{flex:1;padding:32px 48px;max-width:1200px;margin:0 auto;width:100%}.glass-panel{background:var(--panel-bg);border:1px solid var(--panel-border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:20px;padding:24px;box-shadow:0 10px 30px #00000040;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s ease}.glass-panel:hover{border-color:var(--panel-border-hover);transform:translateY(-2px);box-shadow:0 16px 40px #00000059,0 0 20px #3b82f61a}.panel-inset{background:#00000040;border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:16px}.dashboard-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}.col-span-12{grid-column:span 12}.col-span-8{grid-column:span 8}.col-span-7{grid-column:span 7}.col-span-6{grid-column:span 6}.col-span-5{grid-column:span 5}.col-span-4{grid-column:span 4}.col-span-3{grid-column:span 3}.status-badge{padding:5px 12px;border-radius:9999px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px;line-height:1.4;letter-spacing:.01em}.status-badge.safe{color:#34d399;background:#10b9811f;border:1px solid rgba(16,185,129,.3)}.status-badge.warning{color:#fbbf24;background:#f59e0b1f;border:1px solid rgba(245,158,11,.3)}.status-badge.critical{color:#f87171;background:#ef44441f;border:1px solid rgba(239,68,68,.3)}.status-badge.info{color:#60a5fa;background:#3b82f61f;border:1px solid rgba(59,130,246,.3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:12px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent;font-family:inherit;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:0 4px 14px #3b82f659;border:none}.btn-primary:hover{background:var(--accent-gradient-hover);box-shadow:0 6px 20px #3b82f680;transform:translateY(-1px)}.btn-secondary{background:#ffffff0d;color:var(--text-main);border:1px solid var(--panel-border)}.btn-secondary:hover{background:#ffffff1a;border-color:#fff3}.btn-success{background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.3)}.btn-success:hover{background:#10b98140;border-color:#10b98180}.btn-danger{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}.btn-danger:hover{background:#ef444440;border-color:#ef444480}.btn-sm{padding:6px 12px;font-size:12px;border-radius:8px}::-webkit-scrollbar-track{background:#0b0f1980;border-radius:4px}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#3b82f666}.circular-progress{position:relative;width:140px;height:140px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--accent-primary) var(--progress),var(--progress-track) 0deg);box-shadow:inset 0 0 20px #00000080}.circular-progress:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;background:var(--bg-color);border-radius:50%}.circular-progress-value{position:relative;font-size:32px;font-weight:700;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.progress-container{width:100%;height:8px;background:#ffffff0d;border-radius:4px;overflow:hidden;margin-top:8px}.progress-bar{height:100%;border-radius:4px;transition:width 1s cubic-bezier(.4,0,.2,1)}.progress-safe{background-color:var(--status-safe)}.progress-warning{background-color:var(--status-warning)}.progress-critical{background-color:var(--status-critical)}.streak-icon-container{width:64px;height:64px;border-radius:50%;background:#f59e0b1a;display:flex;align-items:center;justify-content:center;color:var(--status-warning);box-shadow:0 0 20px #f59e0b33;margin-bottom:16px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}.page-header{margin-bottom:32px}.page-title{font-size:32px;font-weight:700;margin-bottom:8px;letter-spacing:-.5px}.page-subtitle{font-size:16px;color:var(--text-muted)}body.light-theme{--bg-color: #F8FAFC;--panel-bg: rgba(255, 255, 255, .92);--panel-border: #E2E8F0;--text-main: #0F172A;--text-muted: #475569;--status-safe: #065F46;--status-safe-bg: rgba(16, 185, 129, .15);--status-warning: #92400E;--status-warning-bg: rgba(245, 158, 11, .15);--status-critical: #991B1B;--status-critical-bg: rgba(239, 68, 68, .15);--progress-track: rgba(0, 0, 0, .07)}body.light-theme .app-container{background:radial-gradient(circle at top right,rgba(59,130,246,.07),transparent 40%),radial-gradient(circle at bottom left,rgba(139,92,246,.07),transparent 40%),#f8fafc}body.light-theme .sidebar{background-color:#fffffff2;border-right:1px solid #E2E8F0}body.light-theme .nav-item:hover{background-color:#3b82f60f;color:#0f172a}body.light-theme .nav-item.active{background-color:#3b82f61a;color:#0f172a;box-shadow:inset 0 0 0 1px #3b82f640}body.light-theme .glass-panel{background:#fff;border:1px solid #E2E8F0;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}body.light-theme .glass-panel:hover{box-shadow:0 10px 20px -4px #00000014,0 4px 8px -2px #0000000a}body.light-theme .btn-secondary{background:#f1f5f9;border:1px solid #CBD5E1;color:#0f172a}body.light-theme .btn-secondary:hover{background:#e2e8f0;border-color:#94a3b8}body.light-theme .form-control{background:#fff;border:1px solid #CBD5E1;color:#0f172a}body.light-theme .form-control:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}body.light-theme select.form-control,body.light-theme select,body.light-theme textarea.form-control,body.light-theme textarea{background-color:#fff;color:#0f172a}body.light-theme input[type=text],body.light-theme input[type=date],body.light-theme input[type=number],body.light-theme input[type=email],body.light-theme input[type=password]{background-color:#fff;color:#0f172a;border-color:#cbd5e1}body.light-theme .input-wrapper input{background:#fff;border-color:#cbd5e1;color:#0f172a}body.light-theme .input-wrapper input:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}body.light-theme .panel-inset{background:#f8fafc;border:1px solid #E2E8F0}body.light-theme .progress-container{background:#0000000f}body.light-theme .circular-progress:before{background:#f8fafc}body.light-theme ::-webkit-scrollbar-thumb{background:#cbd5e1}body.light-theme ::-webkit-scrollbar-thumb:hover{background:#94a3b8}body.light-theme .top-navbar{background-color:#fffffff5;border-bottom:1px solid #E2E8F0}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at top right,rgba(59,130,246,.08),transparent 45%),radial-gradient(circle at bottom left,rgba(139,92,246,.08),transparent 45%),var(--bg-color)}.login-container{display:grid;grid-template-columns:420px 400px;gap:24px;max-width:860px;width:100%}@media(max-width:768px){.login-container{grid-template-columns:1fr}}.login-card{padding:40px 32px;display:flex;flex-direction:column}.login-header{text-align:center;margin-bottom:32px}.login-logo{font-size:28px;font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:inline-flex;align-items:center;gap:12px;margin-bottom:8px}.login-header p{font-size:14px;color:var(--text-muted)}.login-error-banner{background:var(--status-critical-bg);border:1px solid rgba(239,68,68,.2);color:var(--status-critical);padding:12px;border-radius:8px;font-size:13px;margin-bottom:24px;text-align:center;font-weight:500}.login-form{display:flex;flex-direction:column;gap:20px}.input-group{display:flex;flex-direction:column;gap:8px}.input-group label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:14px;color:var(--text-muted);pointer-events:none}.input-wrapper input{width:100%;padding:12px 14px 12px 42px;border-radius:12px;border:1px solid var(--panel-border);background:#0003;color:var(--text-main);font-size:14px;transition:all .3s ease}.input-wrapper input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f626;background:#0000004d}.login-btn{width:100%;padding:14px;font-size:15px;margin-top:8px}.quick-login-panel{padding:32px;display:flex;flex-direction:column}.quick-login-panel h3{font-size:18px;margin-bottom:6px}.quick-login-list{display:flex;flex-direction:column;gap:12px;overflow-y:auto;max-height:380px;padding-right:4px}.quick-login-item{display:flex;align-items:center;gap:14px;padding:12px;border-radius:14px;border:1px solid var(--panel-border);background:#ffffff05;cursor:pointer;transition:all .2s ease}.quick-login-item:hover{background:#3b82f60d;border-color:#3b82f633;transform:translate(4px)}.quick-login-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center}.student-icon{background:#3b82f61a;color:var(--accent-primary)}.faculty-icon{background:#8b5cf61a;color:var(--accent-secondary)}.admin-icon{background:#10b9811a;color:var(--status-safe)}.quick-login-info{display:flex;flex-direction:column;flex:1}.quick-login-info h4{font-size:14px;margin-bottom:2px}.quick-login-info p{font-size:11px}.role-badge{font-size:9px;font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:4px;align-self:flex-start;margin-bottom:4px}.role-badge.student{background:var(--status-critical-bg);color:var(--status-critical)}.role-badge.student-safe{background:var(--status-safe-bg);color:var(--status-safe)}.role-badge.faculty{background:#8b5cf626;color:var(--accent-secondary)}.role-badge.admin{background:#10b98126;color:var(--status-safe)}body.light-theme .quick-login-item{background:#00000005}body.light-theme .quick-login-item:hover{background:#3b82f614}body.light-theme .input-wrapper input{background:#fffc;border-color:#0000001a;color:#111827}body.light-theme .input-wrapper input:focus{background:#fff}.form-control{width:100%;padding:12px;border-radius:8px;border:1px solid var(--panel-border);background:#0003;color:var(--text-main);transition:all .3s ease;font-family:inherit}.form-control:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f626}body.light-theme .form-control{background:#ffffffe6;border-color:#0000001a;color:#111827}.panel-inset{background:#00000026;padding:16px;border-radius:12px;border:1px solid var(--panel-border)}body.light-theme .panel-inset{background:#00000008}.top-navbar{display:none;height:60px;background-color:#0b0e14e6;border-bottom:1px solid var(--panel-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:fixed;top:0;left:0;right:0;z-index:90;align-items:center;padding:0 20px;gap:16px}.hamburger-btn{background:none;border:none;color:var(--text-main);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:10px;min-height:44px;min-width:44px;border-radius:8px;transition:background-color .2s ease}.hamburger-btn:hover{background-color:#ffffff0d}body.light-theme .hamburger-btn:hover{background-color:#0000000d}.top-navbar-title{font-size:20px;font-weight:800;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:98;animation:fadeIn .2s ease}.btn,.form-control,.input-wrapper input,.nav-item,select{min-height:44px}@media(max-width:768px){.top-navbar{display:flex}.app-container{flex-direction:column;padding-top:60px}.sidebar{position:fixed;top:0;left:0;height:100vh;width:280px;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:99;box-shadow:0 0 24px #00000080}.sidebar.mobile-open{transform:translate(0)}.main-content,.main-window{margin-left:0!important;padding:1rem!important;max-width:100%!important}.content-wrapper{padding:1rem!important}.dashboard-grid,.grid-3,.grid-2,.sim-grid,.faculty-grid,.policy-group,.split-col,.res-actions{display:flex!important;flex-direction:column!important;gap:16px!important}.col-span-12,.col-span-8,.col-span-6,.col-span-4,.col-span-3{grid-column:span 12!important;width:100%!important}.modern-table-container,.table-responsive,.modern-table,table,svg{overflow-x:auto!important;display:block;max-width:100%;-webkit-overflow-scrolling:touch}.form-control,input,select,button,textarea{font-size:16px!important}.task-drawer{position:fixed!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;width:92%!important;max-width:500px!important;z-index:150!important;margin:0!important}}.recovery-callout{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;font-size:13px;font-weight:500}.recovery-callout.critical-bg{background:var(--status-critical-bg);color:var(--status-critical);border:1px solid rgba(239,68,68,.2)}.recovery-callout.safe-bg{background:var(--status-safe-bg);color:var(--status-safe);border:1px solid rgba(16,185,129,.2)}.badge-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;background:color-mix(in srgb,var(--badge-color) 15%,transparent);color:var(--badge-color);border:1px solid color-mix(in srgb,var(--badge-color) 30%,transparent)}.today-feed{display:flex;flex-direction:column;gap:10px}.feed-item{display:flex;align-items:center;gap:16px;padding:14px 18px;border-radius:12px;border:1px solid var(--panel-border);background:#ffffff05;transition:all .2s ease}.feed-item:hover{background:#ffffff0a}.feed-absent{border-color:#ef444440;background:#ef44440a}.feed-absent:hover{background:#ef444414;transform:translate(3px);box-shadow:0 2px 12px #ef444426}.feed-present{border-color:#10b98133}.feed-od{border-color:#f59e0b40}.feed-time{font-size:13px;font-weight:700;color:var(--text-muted);min-width:50px;font-family:monospace}.feed-info{flex:1;display:flex;align-items:center;gap:12px}.feed-course{font-size:14px;font-weight:600;color:var(--text-main)}.feed-status-tag{font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.tag-absent{background:var(--status-critical-bg);color:var(--status-critical)}.tag-present{background:var(--status-safe-bg);color:var(--status-safe)}.tag-od{background:var(--status-warning-bg);color:var(--status-warning)}.tag-scheduled{background:#ffffff0d;color:var(--text-muted)}body.light-theme .tag-scheduled{background:#f1f5f9;color:#475569}.feed-action{color:var(--text-muted);display:flex;align-items:center}.task-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease;padding:20px}.task-modal{background:#141822fa;border:1px solid var(--panel-border);border-radius:20px;width:100%;max-width:520px;box-shadow:0 24px 80px #00000080;animation:slideUp .2s cubic-bezier(.4,0,.2,1);overflow:hidden}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}body.light-theme .task-modal{background:#fff;border:1px solid #E2E8F0;box-shadow:0 24px 60px #0000001f}.task-modal-header{padding:20px 24px;border-bottom:1px solid var(--panel-border);display:flex;align-items:flex-start;justify-content:space-between;gap:16px;background:#ef44440f}.task-modal-header h3{font-size:17px}.task-modal-close{background:none;border:none;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;padding:4px;border-radius:6px;transition:color .2s,background .2s}.task-modal-close:hover{color:var(--text-main);background:#ffffff14}.task-modal-body{padding:24px;display:flex;flex-direction:column;gap:20px}.task-detail-block{display:flex;flex-direction:column;gap:8px}.task-detail-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.task-detail-block p{font-size:14px;color:var(--text-main);line-height:1.6;padding:10px 14px;background:#ffffff08;border-radius:8px;border:1px solid var(--panel-border)}body.light-theme .task-detail-block p{background:#00000008}.task-quiz-alert{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--status-warning-bg);border:1px solid rgba(245,158,11,.3);color:var(--status-warning);border-radius:10px;font-size:13px;font-weight:600}.subject-trajectory-card{padding:16px;transition:transform .25s ease,box-shadow .25s ease}.subject-trajectory-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px #00000040}.faculty-logger{padding:8px 0}.field-label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px}.roster-table{border:1px solid var(--panel-border);border-radius:12px;overflow:hidden}.roster-header{display:grid;grid-template-columns:1fr 180px 260px;padding:10px 16px;background:#ffffff08;border-bottom:1px solid var(--panel-border);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.roster-row{display:grid;grid-template-columns:1fr 180px 260px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--panel-border);font-size:14px;transition:background .15s}.roster-row:last-child{border-bottom:none}.roster-row:hover{background:#ffffff05}body.light-theme .roster-header{background:#00000008}.alert-success{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:10px;background:var(--status-safe-bg);color:var(--status-safe);border:1px solid rgba(16,185,129,.25);font-size:13px;font-weight:500}.alert-error{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:10px;background:var(--status-critical-bg);color:var(--status-critical);border:1px solid rgba(239,68,68,.25);font-size:13px;font-weight:500}.hod-alert-row{display:grid;grid-template-columns:1fr 240px;align-items:center;gap:24px;padding:16px 20px;border-radius:14px;border:1px solid rgba(239,68,68,.2);background:#ef444408;transition:transform .2s ease}.hod-alert-row:hover{transform:translate(3px)}.hod-alert-info h4{font-size:15px;margin-bottom:4px}.hod-alert-progress .progress-container{position:relative;margin-top:6px}.streak-sidebar-widget{display:flex;align-items:center;gap:10px;padding:12px 16px;margin-top:8px;border-radius:12px;background:#f59e0b14;border:1px solid rgba(245,158,11,.2)}.nav-active-bar{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent-gradient);border-radius:0 4px 4px 0}body.light-theme .feed-item{background:#f8fafc;border-color:#e2e8f0}body.light-theme .feed-item:hover{background:#f1f5f9}body.light-theme .feed-absent{background:#ef44440d;border-color:#ef444440}body.light-theme .feed-absent:hover{background:#ef444414}body.light-theme .feed-course{color:#0f172a}body.light-theme .feed-time{color:#475569}body.light-theme .task-detail-block p{background:#f8fafc;border-color:#e2e8f0;color:#0f172a}body.light-theme .task-modal-close:hover{background:#0000000f;color:#0f172a}body.light-theme .roster-table{border-color:#e2e8f0}body.light-theme .roster-header{background:#f8fafc;border-bottom-color:#e2e8f0;color:#64748b}body.light-theme .roster-row{border-bottom-color:#e2e8f0;color:#0f172a}body.light-theme .roster-row:hover{background:#f1f5f9;transform:translate(2px);box-shadow:2px 0 8px #0000000a}body.light-theme .hod-alert-row{background:#ef44440a;border-color:#ef444433}body.light-theme .streak-sidebar-widget{background:#f59e0b14;border-color:#f59e0b40}body.light-theme .quick-login-item{background:#f8fafc;border-color:#e2e8f0}body.light-theme .quick-login-item:hover{background:#3b82f60f;border-color:#3b82f640}body.light-theme table{color:#0f172a}body.light-theme table th{color:#475569}body.light-theme table td{color:#0f172a}body.light-theme table tr:hover{background:#f8fafc}body.light-theme .role-switcher-container{background:#f1f5f9;border-color:#cbd5e1}body.light-theme .subject-trajectory-card:hover{box-shadow:0 8px 20px #00000014}@media(max-width:768px){.roster-header,.roster-row{grid-template-columns:1fr;gap:8px}.hod-alert-row{grid-template-columns:1fr}.task-modal{max-width:100%;border-radius:16px}.subject-trajectory-card{padding:12px}}.role-switcher-container{display:flex;align-items:center;gap:6px;background:#ffffff0d;padding:4px;border-radius:10px;border:1px solid var(--panel-border);margin-left:auto}body.light-theme .role-switcher-container{background:#0000000a}.role-switch-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .2s ease;font-family:inherit}.role-switch-btn:hover{color:var(--text-main);background:#ffffff0d}.role-switch-btn.active{background:var(--accent-gradient);color:#fff;box-shadow:0 2px 8px #3b82f64d}.top-theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--panel-border);background:#ffffff0d;color:var(--text-main);cursor:pointer;transition:all .2s ease;margin-left:8px}.top-theme-toggle:hover{background:#ffffff1a}@media(max-width:768px){.role-switcher-container{display:none}}.scanner-laser{position:absolute;left:0;right:0;height:2px;background:linear-gradient(to right,transparent,var(--accent-primary),transparent);box-shadow:0 0 16px var(--accent-primary),0 0 8px var(--accent-primary);animation:scan 2.4s ease-in-out infinite;z-index:10}@keyframes scan{0%{top:5%;opacity:.8}50%{top:92%;opacity:1}to{top:5%;opacity:.8}}.spin-slow{animation:spin 3s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.roster-row:hover{transform:translate(4px);box-shadow:0 4px 16px #00000059}.modal-backdrop{animation:fadeIn .25s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.radar-pulse-ring{position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;border-radius:24px;border:2px solid var(--accent-primary);opacity:0;animation:radar-pulse-expand 2s cubic-bezier(0,.2,.8,1) infinite;pointer-events:none}.radar-pulse-ring-delayed{animation-delay:1s}@keyframes radar-pulse-expand{0%{transform:scale(.95);opacity:.8}to{transform:scale(1.15);opacity:0}}.fingerprint-scan-line{position:absolute;left:10%;right:10%;height:3px;background:linear-gradient(90deg,transparent,#10B981,#3B82F6,transparent);box-shadow:0 0 12px #10b981,0 0 20px #3b82f6;border-radius:2px;animation:fingerprint-sweep 1.8s ease-in-out infinite alternate}@keyframes fingerprint-sweep{0%{top:15%;opacity:.7}to{top:80%;opacity:1}}.fingerprint-glow-container{position:relative;display:flex;align-items:center;justify-content:center;padding:24px;border-radius:50%;background:radial-gradient(circle,rgba(16,185,129,.15) 0%,transparent 70%);animation:fingerprint-pulse-bg 2s ease-in-out infinite alternate}@keyframes fingerprint-pulse-bg{0%{transform:scale(1);opacity:.7}to{transform:scale(1.08);opacity:1}}.light-theme{--bg-color: #f1f5f9;--bg-primary: #f1f5f9;--panel-bg: rgba(255, 255, 255, .88);--panel-border: rgba(203, 213, 225, .6);--panel-border-hover: rgba(59, 130, 246, .4);--text-main: #0f172a;--text-muted: #475569;--accent-primary: #2563eb;--accent-secondary: #7c3aed;--accent-gradient: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%);--accent-gradient-hover: linear-gradient(135deg, #1d4ed8 0%, #6d28d9 100%);--status-safe: #059669;--status-safe-bg: rgba(16, 185, 129, .12);--status-warning: #d97706;--status-warning-bg: rgba(245, 158, 11, .12);--status-critical: #dc2626;--status-critical-bg: rgba(239, 68, 68, .12);--progress-track: rgba(0, 0, 0, .06)}.light-theme body{background-color:var(--bg-color);color:var(--text-main)}.light-theme .app-container{background:radial-gradient(circle at top right,rgba(37,99,235,.06),transparent 45%),radial-gradient(circle at bottom left,rgba(124,58,237,.06),transparent 45%),#f1f5f9}.light-theme .sidebar{background-color:#fffffff0;border-right:1px solid rgba(203,213,225,.6);box-shadow:2px 0 20px #0f172a0a}.light-theme .nav-item{color:#475569}.light-theme .nav-item:hover{color:#0f172a;background-color:#0000000a}.light-theme .nav-item.active{color:#1e40af;background-color:#2563eb1a;box-shadow:inset 0 0 0 1px #2563eb33}.light-theme .glass-panel{background:#ffffffe0;border:1px solid rgba(203,213,225,.7);box-shadow:0 10px 30px #0f172a0f,0 1px 3px #0f172a0a}.light-theme .glass-panel:hover{border-color:#2563eb59;box-shadow:0 16px 40px #0f172a17,0 0 20px #2563eb14}.light-theme .panel-inset{background:#f8fafce6;border:1px solid rgba(203,213,225,.6)}.light-theme .form-control,.light-theme input[type=text],.light-theme input[type=number],.light-theme input[type=date],.light-theme input[type=password],.light-theme select,.light-theme textarea{background:#fff!important;color:#0f172a!important;border:1px solid #cbd5e1!important}.light-theme .form-control:focus,.light-theme input:focus,.light-theme select:focus,.light-theme textarea:focus{border-color:#2563eb!important;box-shadow:0 0 0 3px #2563eb2e!important}.light-theme .btn-secondary{background:#fff;color:#0f172a;border:1px solid #cbd5e1;box-shadow:0 1px 2px #0000000d}.light-theme .btn-secondary:hover{background:#f8fafc;border-color:#94a3b8}.light-theme .status-badge.safe{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.light-theme .status-badge.warning{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.light-theme .status-badge.critical{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.light-theme .status-badge.info{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.light-theme table th{color:#475569!important}.light-theme table tr{border-bottom-color:#cbd5e199!important}.light-theme table tr:hover{background-color:#f1f5f9cc!important}.light-theme ::-webkit-scrollbar-track{background:#e2e8f0cc}.light-theme ::-webkit-scrollbar-thumb{background:#94a3b880}.light-theme ::-webkit-scrollbar-thumb:hover{background:#2563eb99}
