@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--primary: #4f46e5;--primary-dark: #3730a3;--primary-light: #818cf8;--secondary: #06b6d4;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--bg: #0f172a;--bg-card: #1e293b;--bg-card2: #273549;--border: #334155;--text: #f1f5f9;--text-muted: #94a3b8;--text-dim: #64748b;--radius: 12px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(0, 0, 0, .4);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--transition: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.app-container{max-width:1400px;margin:0 auto;padding:0 1.5rem;width:100%}.topbar{background:#0f172af2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:.9rem 1.5rem;position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:.75rem}.topbar-brand{font-size:1.1rem;font-weight:700;background:linear-gradient(135deg,var(--primary-light),var(--secondary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.topbar-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted);margin-left:auto}.topbar-breadcrumb span{color:var(--text-dim)}.topbar-breadcrumb .crumb{color:var(--text-muted);cursor:pointer}.topbar-breadcrumb .crumb:hover{color:var(--primary-light)}.topbar-breadcrumb .crumb-active{color:var(--text);font-weight:500}.btn-back{display:flex;align-items:center;gap:.4rem;background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:.4rem .9rem;border-radius:6px;font-size:.85rem;cursor:pointer;transition:var(--transition);text-decoration:none}.btn-back:hover{border-color:var(--primary-light);color:var(--primary-light)}.page-hero{text-align:center;padding:3.5rem 1.5rem 2.5rem}.page-hero h1{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800;background:linear-gradient(135deg,#fff 30%,var(--primary-light));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1.2;margin-bottom:.6rem}.page-hero p{color:var(--text-muted);font-size:1rem}.page-hero .badge{display:inline-block;background:#4f46e526;border:1px solid rgba(79,70,229,.4);color:var(--primary-light);padding:.3rem .9rem;border-radius:99px;font-size:.8rem;font-weight:500;margin-bottom:1rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem;padding:1rem 1.5rem 3rem;max-width:900px;margin:0 auto}.cards-grid-2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;padding:1rem 1.5rem 3rem;max-width:700px;margin:0 auto}.cards-grid-3{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem;padding:1rem 1.5rem 3rem;max-width:1000px;margin:0 auto}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem 1.5rem;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);display:flex;flex-direction:column;align-items:center;text-align:center;gap:.6rem;position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(79,70,229,.06),transparent);opacity:0;transition:opacity var(--transition);pointer-events:none;z-index:0}.card:hover{transform:translateY(-4px);border-color:var(--primary-light);box-shadow:var(--shadow)}.card:hover:before{opacity:1}.card-icon{font-size:2.6rem;line-height:1}.card-title{font-size:1.1rem;font-weight:700;color:var(--text)}.card-sub{font-size:.82rem;color:var(--text-muted)}.card-tag{font-size:.72rem;font-weight:600;background:#4f46e52e;color:var(--primary-light);padding:.2rem .6rem;border-radius:99px;margin-top:.2rem}.card.role-incharge{border-color:#4f46e566}.card.role-incharge:hover{border-color:var(--primary);box-shadow:0 4px 24px #4f46e540}.card.role-staff{border-color:#06b6d466}.card.role-staff:hover{border-color:var(--secondary);box-shadow:0 4px 24px #06b6d440}.card.role-admin{border-color:#f59e0b66}.card.role-admin:hover{border-color:var(--warning);box-shadow:0 4px 24px #f59e0b40}.card.role-student{border-color:#10b98166}.card.role-student:hover{border-color:var(--success);box-shadow:0 4px 24px #10b98140}.sem-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1.2rem;cursor:pointer;transition:var(--transition);display:flex;align-items:center;gap:1rem}.sem-card:hover{border-color:var(--primary-light);background:var(--bg-card2);transform:translate(4px)}.sem-card .sem-num{width:48px;height:48px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;flex-shrink:0}.sem-card .sem-info{flex:1}.sem-card .sem-info h3{font-size:.95rem;font-weight:600}.sem-card .sem-info p{font-size:.8rem;color:var(--text-muted)}.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;margin:1.5rem auto;max-width:520px}.panel-title{font-size:1.15rem;font-weight:700;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.5rem}.form-group{margin-bottom:1.1rem}.form-label{display:block;font-size:.82rem;font-weight:600;color:var(--text-muted);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.04em}.form-input,.form-select{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:.65rem .9rem;border-radius:var(--radius-sm);font-size:.95rem;font-family:inherit;transition:border-color var(--transition),box-shadow var(--transition);outline:none}.form-input:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e533}.form-select option{background-color:var(--bg-card);color:var(--text);padding:.5rem}.compact-table{width:100%;border-collapse:collapse;font-size:.8rem;background:var(--bg-card);table-layout:auto}.compact-table th,.compact-table td{padding:.6rem .4rem;border:1px solid var(--border);line-height:1.3;min-width:50px}.compact-table th{background:var(--bg-card2);color:var(--text);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.65rem;position:sticky;top:0;z-index:10;white-space:nowrap}.compact-table tr:nth-child(2n){background:#ffffff05}.compact-table tr:hover{background:#4f46e514}.form-input::-moz-placeholder{color:var(--text-dim)}.form-input::placeholder{color:var(--text-dim)}.form-select option{background:var(--bg-card)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1.4rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:var(--transition);white-space:nowrap;font-family:inherit;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--bg-card2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--primary-light);color:var(--primary-light)}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.btn-danger:hover:not(:disabled){background:#ef44441f}.btn-warning{background:var(--warning);color:#000}.btn-sm{padding:.4rem .85rem;font-size:.8rem}.btn-lg{padding:.9rem 2rem;font-size:1rem}.btn-full{width:100%}.btn-icon{padding:.5rem;border-radius:6px}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);gap:1rem}.toggle-info{flex:1}.toggle-info h4{font-size:.9rem;font-weight:600}.toggle-info p{font-size:.78rem;color:var(--text-muted)}.toggle{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--border);border-radius:99px;cursor:pointer;transition:var(--transition)}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;transition:var(--transition)}.toggle input:checked+.toggle-slider{background:var(--success)}.toggle input:checked+.toggle-slider:before{transform:translate(20px)}.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:.88rem}thead{background:var(--bg-card2)}thead th{padding:.8rem 1rem;text-align:left;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border)}tbody tr{border-bottom:1px solid rgba(51,65,85,.5);transition:var(--transition)}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--bg-card2)}tbody td{padding:.75rem 1rem;color:var(--text)}.mark-input{width:72px;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:.35rem .5rem;border-radius:6px;font-size:.88rem;text-align:center;outline:none;transition:border-color var(--transition)}.mark-input:focus{border-color:var(--primary)}.mark-input.saved{border-color:var(--success)}.tabs{display:flex;border-bottom:1px solid var(--border);padding:0 1.5rem;gap:.25rem;background:var(--bg-card);position:sticky;top:57px;z-index:50}.tab{padding:.85rem 1.2rem;cursor:pointer;font-size:.88rem;font-weight:500;color:var(--text-muted);border-bottom:2px solid transparent;transition:var(--transition);white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--primary-light);border-bottom-color:var(--primary)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem}.section-title{font-size:1rem;font-weight:700;color:var(--text)}.section-sub{font-size:.8rem;color:var(--text-muted);margin-top:.1rem}.list-item{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:.5rem;transition:var(--transition)}.list-item:hover{border-color:var(--border);background:var(--bg-card2)}.list-item-info{flex:1}.list-item-info h4{font-size:.92rem;font-weight:600}.list-item-info p{font-size:.78rem;color:var(--text-muted)}.list-item-actions{display:flex;gap:.5rem}.badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:99px;white-space:nowrap}.badge-active{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.badge-inactive{background:#64748b26;color:#94a3b8;border:1px solid rgba(100,116,139,.3)}.badge-primary{background:#4f46e526;color:var(--primary-light);border:1px solid rgba(79,70,229,.3)}.badge-cyan{background:#06b6d426;color:var(--secondary);border:1px solid rgba(6,182,212,.3)}.alert{padding:.8rem 1rem;border-radius:var(--radius-sm);font-size:.88rem;margin-bottom:1rem;display:flex;align-items:flex-start;gap:.5rem}.alert-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.alert-success{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#6ee7b7}.alert-info{background:#4f46e51a;border:1px solid rgba(79,70,229,.3);color:var(--primary-light)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background:#0f172ab3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1rem;overflow-y:auto;animation:fadeIn .15s ease}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.modal-title{font-size:1.05rem;font-weight:700}.modal-close{background:none;border:none;color:var(--text-muted);font-size:1.4rem;cursor:pointer;padding:0 .25rem;transition:color var(--transition);line-height:1}.modal-close:hover{color:var(--text)}.modal-footer{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.25rem}.co-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.co-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);padding:.35rem .7rem;border-radius:99px;font-size:.8rem;font-weight:600;cursor:pointer;transition:var(--transition);-webkit-user-select:none;-moz-user-select:none;user-select:none}.co-chip.selected{background:#4f46e533;border-color:var(--primary);color:var(--primary-light)}.co-chip:hover:not(.selected){border-color:var(--text-dim);color:var(--text)}.co-total{font-weight:700;color:var(--warning)}.loading-wrap{display:flex;align-items:center;justify-content:center;padding:4rem;flex-direction:column;gap:1rem}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--text-muted)}.empty-state .empty-icon{font-size:2.5rem;margin-bottom:.75rem}.empty-state p{font-size:.9rem}.divider{border:none;border-top:1px solid var(--border);margin:1.25rem 0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{transform:translate(30px) scale(.99);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes slideInLeft{0%{transform:translate(-30px) scale(.99);opacity:0}to{transform:translate(0) scale(1);opacity:1}}.slide-forward{animation:slideInRight .6s cubic-bezier(.4,0,.2,1) forwards}.slide-backward{animation:slideInLeft .6s cubic-bezier(.4,0,.2,1) forwards}.page-transition{animation:fadeIn .6s ease-in-out forwards}.competency-view{animation:fadeIn .3s ease}.competency-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-sm);transition:transform var(--transition)}.competency-card:hover{border-color:#4f46e54d}.competency-card .summary-table{margin-top:.5rem}.competency-card .summary-table td{padding:.75rem 1rem}.competency-card .summary-table th{background:var(--bg-card2);color:var(--text-muted);font-size:.8rem;font-weight:700;text-transform:uppercase}.tab-switcher button{transition:all .2s cubic-bezier(.4,0,.2,1)}@media (max-width: 768px){.app-container{padding:0 1rem}.topbar{padding:.7rem 1rem;flex-wrap:wrap;gap:.4rem}.topbar-brand{font-size:.95rem}.topbar-breadcrumb{font-size:.78rem;gap:.3rem;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:55%}.topbar-breadcrumb::-webkit-scrollbar{display:none}.page-hero{padding:2.5rem 1rem 1.75rem}.page-hero h1{font-size:clamp(1.4rem,5vw,2rem)}.page-hero p{font-size:.9rem}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;padding:.75rem 1rem 2rem}.cards-grid-2{grid-template-columns:1fr 1fr;gap:1rem;padding:.75rem 1rem 2rem}.cards-grid-3{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;padding:.75rem 1rem 2rem}.card{padding:1.25rem 1rem}.card-icon{font-size:2.2rem}.card-title{font-size:1rem}.tabs{padding:0 .75rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:.7rem 1rem;font-size:.82rem}.panel{margin:1rem;padding:1.25rem}.section-header{flex-wrap:wrap;gap:.75rem;padding:1rem}.list-item{flex-wrap:wrap;gap:.5rem;padding:.75rem}.list-item-actions{width:100%;justify-content:flex-end}.modal{max-width:95vw;padding:1.25rem;margin:.5rem}.modal-footer{flex-wrap:wrap}.modal-footer .btn{flex:1;min-width:0}.btn{padding:.6rem 1rem;font-size:.85rem}.btn-lg{padding:.75rem 1.5rem;font-size:.95rem}.mark-input{width:64px;font-size:.82rem;padding:.3rem .4rem}.table-wrap{border-radius:var(--radius-sm)}table{font-size:.82rem}thead th{padding:.6rem .5rem;font-size:.7rem}tbody td{padding:.6rem .5rem}.compact-table{font-size:.75rem}.compact-table th,.compact-table td{padding:.45rem .3rem;min-width:42px}.compact-table th{font-size:.6rem}.toggle-row{padding:.6rem .75rem}.loading-wrap{padding:2.5rem}.empty-state{padding:2rem 1rem}}@media (max-width: 600px){.topbar{padding:.6rem .75rem}.topbar-brand{font-size:.88rem}.topbar-breadcrumb{font-size:.72rem;max-width:50%}.page-hero{padding:2rem .75rem 1.5rem}.page-hero h1{font-size:clamp(1.2rem,5vw,1.6rem);margin-bottom:.4rem}.page-hero p{font-size:.82rem}.page-hero .badge{font-size:.72rem;padding:.25rem .7rem;margin-bottom:.75rem}.cards-grid,.cards-grid-2,.cards-grid-3{grid-template-columns:1fr 1fr;gap:.75rem;padding:.5rem .75rem 2rem}.card{padding:1.1rem .85rem;gap:.4rem}.card-icon{font-size:1.8rem}.card-title{font-size:.88rem}.card-sub{font-size:.72rem;line-height:1.3}.card-tag{font-size:.65rem;padding:.15rem .5rem}.tabs{padding:0 .5rem;gap:.15rem}.tab{padding:.65rem .75rem;font-size:.78rem}.panel{margin:.75rem;padding:1rem}.panel-title{font-size:1rem}.form-input,.form-select{padding:.55rem .75rem;font-size:.88rem}.form-label{font-size:.75rem}.section-header{padding:.85rem .75rem;flex-direction:column;align-items:flex-start;gap:.5rem}.section-title{font-size:.92rem}.list-item{padding:.65rem}.list-item-info h4{font-size:.85rem}.list-item-info p{font-size:.72rem}.modal{max-width:100vw;border-radius:16px 16px 0 0;padding:1.25rem 1rem;max-height:85vh;position:fixed;bottom:0;left:0;right:0;margin:0;animation:slideUpMobile .25s ease}.modal-overlay{align-items:flex-end;padding:0}.modal-header{margin-bottom:1rem;padding-bottom:.65rem}.modal-title{font-size:.95rem}.modal-footer .btn{padding:.6rem .75rem;font-size:.82rem}.btn{padding:.55rem .85rem;font-size:.82rem}.btn-sm{padding:.35rem .65rem;font-size:.75rem}.mark-input{width:56px;font-size:.8rem;padding:.28rem .3rem}.sem-card{padding:.9rem;gap:.75rem}.sem-card .sem-num{width:40px;height:40px;font-size:.95rem;border-radius:8px}.sem-card .sem-info h3{font-size:.88rem}.sem-card .sem-info p{font-size:.72rem}.co-grid{gap:.35rem}.co-chip{font-size:.72rem;padding:.28rem .55rem}.competency-card{padding:1rem}.alert{font-size:.8rem;padding:.65rem .75rem}.divider{margin:.9rem 0}}@media (max-width: 380px){.topbar{padding:.5rem .6rem}.topbar-brand{font-size:.8rem}.topbar-breadcrumb{font-size:.68rem;max-width:45%}.page-hero{padding:1.5rem .6rem 1.25rem}.page-hero h1{font-size:1.15rem}.cards-grid,.cards-grid-2,.cards-grid-3{grid-template-columns:1fr;gap:.6rem;padding:.5rem .6rem 1.5rem}.card{padding:1rem .75rem;flex-direction:row;text-align:left;gap:.75rem}.card-icon{font-size:1.6rem;flex-shrink:0}.card-title{font-size:.85rem}.card-sub{font-size:.7rem}.tab{padding:.55rem .6rem;font-size:.72rem}.panel{margin:.5rem;padding:.85rem}.mark-input{width:48px;font-size:.75rem;padding:.25rem}.btn{padding:.5rem .7rem;font-size:.78rem;gap:.3rem}.modal{padding:1rem .75rem}.form-input,.form-select{padding:.5rem .6rem;font-size:.82rem}.sem-card .sem-num{width:36px;height:36px;font-size:.85rem}.compact-table th,.compact-table td{padding:.35rem .25rem;min-width:36px;font-size:.7rem}.compact-table th{font-size:.55rem}}@keyframes slideUpMobile{0%{transform:translateY(100%);opacity:.8}to{transform:translateY(0);opacity:1}}@media (hover: none) and (pointer: coarse){.btn{min-height:44px;min-width:44px}.btn-sm{min-height:36px}.tab{min-height:44px}.card{cursor:default}.card:hover{transform:none}.card:active{transform:scale(.97);transition:transform .1s ease}.sem-card:hover{transform:none}.sem-card:active{background:var(--bg-card2);transform:scale(.98)}.mark-input,.form-input,.form-select{font-size:16px}.list-item:hover{background:var(--bg-card)}.list-item:active{background:var(--bg-card2)}}@supports (padding-bottom: env(safe-area-inset-bottom)){.topbar{padding-top:max(.7rem,env(safe-area-inset-top));padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.modal{padding-bottom:max(1rem,env(safe-area-inset-bottom))}}.analytics-root{--an-bg: #F8FAFC;--an-surface: #FFFFFF;--an-border: #E2E8F0;--an-text: #0F172A;--an-text-sec: #475569;--an-text-dim: #94A3B8;--an-blue: #3B82F6;--an-purple: #8B5CF6;--an-green: #10B981;--an-amber: #F59E0B;--an-red: #EF4444;--an-cyan: #06B6D4;--an-indigo: #6366F1;--an-rose: #F43F5E;font-family:Inter,Outfit,system-ui,sans-serif;background:var(--an-bg);color:var(--an-text);min-height:100vh}.an-topbar{background:#fff;border-bottom:1.5px solid var(--an-border);padding:0 2rem;height:60px;display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:100;box-shadow:0 1px 8px #0000000f}.an-topbar-brand{font-size:1.1rem;font-weight:800;color:var(--an-text);display:flex;align-items:center;gap:.5rem}.an-breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--an-text-sec);flex:1}.an-breadcrumb a{color:var(--an-blue);text-decoration:none;font-weight:500}.an-breadcrumb a:hover{text-decoration:underline}.an-breadcrumb span{color:var(--an-text-dim)}.an-container{max-width:1400px;margin:0 auto;padding:2rem 1.5rem 4rem}.an-page-title{font-size:1.8rem;font-weight:800;color:var(--an-text);margin-bottom:.25rem;letter-spacing:-.02em}.an-page-subtitle{font-size:.95rem;color:var(--an-text-sec);margin-bottom:2rem}.an-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.an-kpi-card{background:var(--an-surface);border:1.5px solid var(--an-border);border-radius:12px;padding:1.25rem 1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:0 1px 4px #0000000a;transition:box-shadow .15s,transform .15s}.an-kpi-card:hover{box-shadow:0 4px 16px #00000017;transform:translateY(-1px)}.an-kpi-icon{width:46px;height:46px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0}.an-kpi-label{font-size:.78rem;font-weight:600;color:var(--an-text-sec);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.2rem}.an-kpi-value{font-size:1.65rem;font-weight:800;color:var(--an-text);line-height:1}.an-kpi-sub{font-size:.75rem;color:var(--an-text-dim);margin-top:.15rem}.an-panel{background:var(--an-surface);border:1.5px solid var(--an-border);border-radius:14px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 4px #0000000a}.an-panel-title{font-size:1rem;font-weight:700;color:var(--an-text);margin-bottom:1.25rem;display:flex;align-items:center;gap:.5rem}.an-panel-2col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}@media (max-width: 900px){.an-panel-2col{grid-template-columns:1fr}}.an-batch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-bottom:2rem}.an-batch-card{background:var(--an-surface);border:1.5px solid var(--an-border);border-radius:14px;padding:1.5rem;cursor:pointer;transition:all .18s;box-shadow:0 1px 4px #0000000a}.an-batch-card:hover{border-color:var(--an-blue);box-shadow:0 6px 20px #3b82f61f;transform:translateY(-2px)}.an-batch-card-name{font-size:1.2rem;font-weight:800;color:var(--an-text);margin-bottom:.75rem}.an-batch-card-stats{display:flex;gap:1.25rem;font-size:.82rem;color:var(--an-text-sec);margin-bottom:1rem}.an-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem}.an-table th{padding:.65rem 1rem;background:var(--an-bg);color:var(--an-text-sec);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-bottom:1.5px solid var(--an-border);text-align:left;position:sticky;top:0}.an-table th:first-child{border-radius:8px 0 0}.an-table th:last-child{border-radius:0 8px 0 0}.an-table td{padding:.7rem 1rem;border-bottom:1px solid var(--an-border);color:var(--an-text);vertical-align:middle}.an-table tr:last-child td{border-bottom:none}.an-table tr:hover td{background:#f1f5f9}.rank-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-weight:800;font-size:.85rem}.rank-1{background:#fef3c7;color:#92400e;border:2px solid #F59E0B}.rank-2{background:#f1f5f9;color:#475569;border:2px solid #94A3B8}.rank-3{background:#fee2e2;color:#991b1b;border:2px solid #FCA5A5}.rank-n{background:#f8fafc;color:var(--an-text-sec);border:1.5px solid var(--an-border)}.an-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .65rem;border-radius:9999px;font-size:.75rem;font-weight:700}.an-pill-pass{background:#dcfce7;color:#166534}.an-pill-fail{background:#fee2e2;color:#991b1b}.an-pill-improve{background:#dbeafe;color:#1d4ed8}.an-pill-decline{background:#fee2e2;color:#9f1239}.an-pill-neutral{background:#f1f5f9;color:#475569}.an-score-bar-wrap{display:flex;align-items:center;gap:.6rem}.an-score-bar-bg{flex:1;height:8px;background:var(--an-border);border-radius:9999px;overflow:hidden}.an-score-bar-fill{height:100%;border-radius:9999px;transition:width .4s ease}.an-score-val{font-size:.82rem;font-weight:700;min-width:45px;text-align:right;color:var(--an-text-sec)}.an-filter-bar{background:var(--an-surface);border:1.5px solid var(--an-border);border-radius:12px;padding:1rem 1.5rem;display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.an-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--an-bg);border:1.5px solid var(--an-border);border-radius:8px;padding:.45rem 2rem .45rem .85rem;font-size:.88rem;font-weight:600;color:var(--an-text);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;transition:border-color .15s}.an-select:focus{outline:none;border-color:var(--an-blue);box-shadow:0 0 0 3px #3b82f626}.an-heatmap td.heat-low{background:#dcfce7;color:#166534;font-weight:700}.an-heatmap td.heat-mid{background:#fef3c7;color:#92400e;font-weight:700}.an-heatmap td.heat-high{background:#dbeafe;color:#1e40af;font-weight:700}.an-heatmap td.heat-danger{background:#fee2e2;color:#991b1b;font-weight:700}.an-tabs{display:flex;gap:.35rem;background:var(--an-bg);border:1.5px solid var(--an-border);border-radius:10px;padding:.3rem;margin-bottom:1.5rem;flex-wrap:wrap}.an-tab{padding:.4rem 1rem;border-radius:7px;font-size:.85rem;font-weight:600;cursor:pointer;border:none;background:transparent;color:var(--an-text-sec);transition:all .15s}.an-tab:hover{background:var(--an-surface);color:var(--an-text)}.an-tab.active{background:var(--an-surface);color:var(--an-blue);box-shadow:0 1px 4px #00000014}.an-student-name{font-weight:600;color:var(--an-text)}.an-student-reg{font-size:.78rem;color:var(--an-text-dim);font-family:monospace}.an-back-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem 1rem;background:var(--an-bg);border:1.5px solid var(--an-border);border-radius:8px;font-size:.85rem;font-weight:600;color:var(--an-text-sec);cursor:pointer;transition:all .15s;text-decoration:none}.an-back-btn:hover{background:var(--an-surface);border-color:var(--an-blue);color:var(--an-blue)}.an-improver-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:10px;border:1.5px solid var(--an-border);margin-bottom:.5rem;background:var(--an-surface);transition:box-shadow .15s}.an-improver-row:hover{box-shadow:0 2px 10px #00000012}.an-improver-up{border-left:4px solid var(--an-green)!important}.an-improver-down{border-left:4px solid var(--an-red)!important}.an-skeleton{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;animation:an-shimmer 1.5s infinite;border-radius:8px}@keyframes an-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.an-empty{text-align:center;padding:4rem 2rem;color:var(--an-text-dim)}.an-empty-icon{font-size:3rem;margin-bottom:.75rem}.an-empty-title{font-size:1.1rem;font-weight:700;color:var(--an-text-sec);margin-bottom:.4rem}.an-tooltip{background:#0f172a;color:#f8fafc;padding:.6rem 1rem;border-radius:10px;font-size:.83rem;box-shadow:0 4px 20px #00000040;line-height:1.6}.an-tooltip-label{font-weight:700;margin-bottom:.3rem;color:#cbd5e1;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}@media (max-width: 640px){.an-container{padding:1rem .75rem 3rem}.an-topbar{padding:0 1rem}.an-kpi-row{grid-template-columns:1fr 1fr}}
