@import url("https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap");:root{--color-primary:#1E40AF;--color-primary-dark:#1E3A8A;--color-on-primary:#FFFFFF;--color-ink:#0F172A;--color-ink-soft:#334155;--color-text-muted:#64748B;--color-text-faint:#94A3B8;--color-surface:#FFFFFF;--color-canvas:#F8FAFC;--color-canvas-soft:#F1F5F9;--color-field:#F8FAFC;--color-hairline:#E2E8F0;--color-hairline-strong:#CBD5E1;--color-accent:#2563EB;--color-accent-soft:#EFF6FF;--color-accent-hover:#1D4ED8;--color-gold:#D97706;--color-gold-bg:#FFFBEB;--color-gold-border:#FDE68A;--color-emerald:#059669;--color-emerald-bg:#ECFDF5;--color-emerald-border:#A7F3D0;--color-success:#059669;--color-success-bg:#ECFDF5;--color-success-border:#A7F3D0;--color-warning:#D97706;--color-warning-bg:#FFFBEB;--color-warning-border:#FDE68A;--color-danger:#DC2626;--color-danger-bg:#FEF2F2;--color-danger-border:#FECACA;--font-sans:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:"JetBrains Mono",monospace;--rounded-none:0px;--rounded-sm:8px;--rounded-md:12px;--rounded-lg:16px;--rounded-full:9999px;--spacing-xxs:4px;--spacing-xs:8px;--spacing-sm:12px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-xxl:48px;--spacing-section:64px;--transition-fast:background-color 0.12s ease,border-color 0.12s ease,color 0.12s ease,opacity 0.12s ease;--transition-smooth:background-color 0.15s ease,border-color 0.15s ease,color 0.15s ease,box-shadow 0.15s ease}*{box-sizing:border-box;margin:0;padding:0}*,body,html{-webkit-tap-highlight-color:transparent!important}body,html{background-color:var(--color-canvas);color:var(--color-ink);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:touch}:focus:not(:focus-visible){outline:none!important;box-shadow:none!important}:focus-visible{outline:2px solid #2563EB!important;outline-offset:2px}.nav-btn,.nav-faculty-tab,.nav-profile-btn,.segmented-pill,[role=button],a,button,input,select,textarea{-webkit-tap-highlight-color:transparent!important;touch-action:manipulation}.badge,.btn,.nav-btn,.nav-faculty-tab,.nav-profile-btn,.segmented-pill,button{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:700;color:var(--color-ink);letter-spacing:-.02em;line-height:1.25}p{color:var(--color-text-muted);font-weight:400;line-height:1.55}a{color:var(--color-accent);text-decoration:none;transition:var(--transition-fast)}a:hover{color:var(--color-accent-hover)}.page-fade-in{animation:pageFadeIn .16s cubic-bezier(.16,1,.3,1) forwards}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{opacity:1}.nav-pill-container{position:-webkit-sticky;position:sticky;top:12px;z-index:100;display:flex;justify-content:center;padding:0 16px;margin-bottom:20px;min-height:52px}.nav-pill{width:100%;max-width:1240px;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(226,232,240,.9);border-radius:var(--rounded-md);padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 .5px 3px rgba(56,104,214,.01);transition:var(--transition-fast)}.nav-pill:hover{border-color:var(--color-hairline-strong)}.logo-icon-box{background:#1E40AF!important;color:#FFFFFF!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;font-family:var(--font-sans);font-size:13px;font-weight:600;border-radius:var(--rounded-sm);border:1px solid transparent;cursor:pointer;transition:var(--transition-fast);white-space:nowrap;line-height:1.2}.btn:active:not(:disabled){opacity:.85}.btn-primary{background-color:#2563EB!important;border:1px solid #1d4ed8!important}.btn-primary,.btn-primary *{color:#FFFFFF!important}.btn-primary:hover:not(:disabled){background-color:#1D4ED8!important;color:#FFFFFF!important}.btn-outline{background-color:#FFFFFF;color:var(--color-ink);border-color:var(--color-hairline-strong)}.btn-outline:hover:not(:disabled){background-color:var(--color-canvas-soft);color:var(--color-accent)}.btn-soft{background-color:var(--color-canvas-soft);color:var(--color-ink);border:1px solid transparent}.btn-soft:hover:not(:disabled){background-color:#E2E8F0}.btn-help{background-color:#EFF6FF;color:#1D4ED8;border:1px solid #bfdbfe}.btn-help:hover:not(:disabled){background-color:#DBEAFE}.btn:disabled{opacity:.5;cursor:not-allowed}.segmented-control{background-color:var(--color-canvas-soft);border-radius:var(--rounded-sm);padding:3px;display:inline-flex;gap:3px;border:1px solid var(--color-hairline);overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none}.segmented-control::-webkit-scrollbar{display:none}.segmented-pill{padding:6px 14px;border-radius:6px;border:none;background:transparent;color:var(--color-text-muted);font-family:var(--font-sans);font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:var(--transition-fast);white-space:nowrap}.segmented-pill:hover:not(.active){color:var(--color-ink)}.segmented-pill.active{background-color:#FFFFFF;color:var(--color-accent);box-shadow:0 1px 2px rgba(15,23,42,.08)}.card{background-color:#FFFFFF;border:1px solid var(--color-hairline);border-radius:var(--rounded-md);padding:var(--spacing-lg);box-shadow:0 1px 3px rgba(15,23,42,.04)}.card:hover{border-color:var(--color-hairline-strong)}.card-soft{background-color:var(--color-canvas-soft);border:1px solid var(--color-hairline);border-radius:var(--rounded-md);padding:var(--spacing-lg)}.input-group{margin-bottom:16px}.input-label{display:block;font-size:13px;font-weight:600;color:var(--color-ink);margin-bottom:6px}.input-field,.select-field,.textarea-field{width:100%;padding:10px 14px;background-color:#FFFFFF;border:1px solid var(--color-hairline-strong);border-radius:var(--rounded-sm);color:var(--color-ink);font-family:var(--font-sans);font-size:13px;transition:var(--transition-fast)}.input-field:focus,.select-field:focus,.textarea-field:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 2px rgba(37,99,235,.15)}.input-field:disabled,.select-field:disabled,.textarea-field:disabled{background-color:#F1F5F9;color:var(--color-text-faint);cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;line-height:1.2}.badge-ink{background-color:#0F172A;color:#FFFFFF}.badge-neutral{background-color:var(--color-canvas-soft);color:var(--color-ink);border:1px solid var(--color-hairline)}.badge-accent{background-color:#EFF6FF;color:#1D4ED8;border:1px solid #bfdbfe}.badge-success{background-color:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.badge-warning{background-color:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.badge-gold{background-color:#FFFBEB;color:#B45309;border:1px solid #fde68a}.badge-danger{background-color:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}.alert-banner{padding:10px 14px;border-radius:var(--rounded-sm);display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:13px;animation:slideDownFadeIn .22s cubic-bezier(.16,1,.3,1);transition:all .2s ease-out}@keyframes slideDownFadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.alert-danger{background-color:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger)}.alert-success{background-color:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success)}.alert-warning{background-color:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning)}.alert-info{background-color:#EFF6FF;border:1px solid #bfdbfe;color:#1E40AF}.container{width:100%;max-width:1240px;margin:0 auto;padding:0 16px;box-sizing:border-box}.grid-cols-2{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px}.grid-cols-3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.grid-cols-4,.landing-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}.landing-stat-card{background:#FFFFFF;border:1px solid var(--color-hairline);border-radius:var(--rounded-md);padding:16px 12px;text-align:center;transition:border-color .15s ease,box-shadow .15s ease}.landing-stat-card:hover{border-color:#CBD5E1;box-shadow:0 2px 8px rgba(15,23,42,.04)}@media (max-width:1024px){.grid-cols-4,.landing-stats-grid{grid-template-columns:repeat(2,1fr)}.landing-stats-grid{gap:12px}}@media (max-width:860px){.grid-cols-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.landing-stats-grid{grid-template-columns:repeat(2,1fr);gap:10px}.landing-stat-card{padding:12px 8px}}.table-container,.table-responsive-wrapper{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.faculty-split-layout{grid-template-columns:270px minmax(0,1fr);grid-gap:20px}.faculty-split-layout,.panel-split-layout{display:grid;gap:20px;width:100%;max-width:100%}.panel-split-layout{grid-template-columns:310px minmax(0,1fr);grid-gap:20px}.faculty-detail-col,.faculty-list-col,.panel-detail-col,.panel-list-col{min-width:0;max-width:100%}.drawer-mobile-mark-all{display:none}.drawer-desktop-mark-all{display:inline-flex!important}@media (max-width:900px){.faculty-split-layout,.hero-split-grid,.panel-split-layout{grid-template-columns:1fr!important;gap:20px!important}}@media (max-width:768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.nav-pill{padding:8px 12px}.mobile-hidden{display:none!important}.mobile-detail-nav-bar{display:flex!important;align-items:center;justify-content:flex-start}.mobile-chevron-indicator{display:block!important}}.mobile-only{display:none!important}.desktop-only{display:block}.desktop-only-flex,div.desktop-only[style*="display: flex"],div.desktop-only[style*="display:flex"]{display:flex!important}@media (max-width:768px){.mobile-only{display:block!important}.mobile-only-flex,div.mobile-only{display:flex!important}.desktop-only,.desktop-only-flex{display:none!important}}@media (min-width:769px){.mobile-chevron-indicator{display:none!important}}@media (max-width:640px){.drawer-mobile-mark-all{display:block!important}.drawer-desktop-mark-all{display:none!important}.container{padding:0 12px}.card,.card-soft{padding:14px;border-radius:12px}.nav-pill-container{padding:0 6px;top:6px;margin-bottom:12px}.segmented-control{width:100%;display:flex;overflow-x:auto;padding:3px;gap:4px}.segmented-pill{padding:7px 12px;font-size:12px;flex-shrink:0}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],select,textarea{font-size:16px!important}.data-table td,.data-table th{padding:8px 10px;font-size:12px}body{padding-bottom:env(safe-area-inset-bottom,0)}}.mobbin-footer{background:#0F172A;color:#F8FAFC;border-radius:var(--rounded-sm) var(--rounded-sm) 0 0;padding:40px 20px 30px;margin-top:48px;border-top:1px solid #334155}.mobbin-footer a{color:#94A3B8}.mobbin-footer a:hover{color:#FFFFFF}.data-table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--rounded-sm);border:1px solid var(--color-hairline);background:#FFFFFF;box-shadow:0 1px 3px rgba(15,23,42,.02)}.data-table{width:100%;min-width:820px;border-collapse:collapse;font-size:13px;text-align:left}.data-table th{background-color:#F8FAFC;padding:11px 16px;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);white-space:nowrap}.data-table td,.data-table th{border-bottom:1px solid var(--color-hairline)}.data-table td{padding:12px 16px;color:var(--color-ink);vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background-color:#F8FAFC}.data-table tr.clickable-row{cursor:pointer;transition:background-color .15s ease}.clickable-card{cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .12s ease}.clickable-card:hover{border-color:#CBD5E1!important;box-shadow:0 4px 12px rgba(15,23,42,.07)!important}.clickable-card:active{transform:scale(.992)}.help-highlight{background-color:#FEF08A;color:#854D0E;padding:1px 3px;border-radius:3px;font-weight:600}.help-highlight-active{background-color:#F59E0B;color:#FFFFFF;padding:2px 4px;border-radius:3px;font-weight:700}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.6}}.spin{animation:spin .85s linear infinite}.spin,.spinner{display:inline-block;will-change:transform}.spinner{width:20px;height:20px;border:2.5px solid rgba(52,77,65,.18);border-top-color:#344d41;border-radius:50%;animation:spin .75s cubic-bezier(.4,0,.2,1) infinite}.spinner-sm{width:14px;height:14px;border:2px solid rgba(52,77,65,.18);border-top-color:#344d41}.spinner-lg{width:32px;height:32px;border:3px solid rgba(52,77,65,.18);border-top-color:#344d41}.page-loader{min-height:100vh;min-height:100dvh;width:100%;display:flex;justify-content:center;background:radial-gradient(circle at 50% 45%,rgba(52,77,65,.06) 0,#F8FAFC 70%);overflow:hidden;padding:24px}.page-loader,.page-loader-card{flex-direction:column;align-items:center;position:relative}.page-loader-card{display:inline-flex;gap:16px;padding:32px 40px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid #d8dfd5;border-radius:20px;box-shadow:0 16px 36px -8px rgba(52,77,65,.12),0 4px 12px -2px rgba(52,77,65,.04);max-width:90vw;animation:fade-in-up .4s cubic-bezier(.16,1,.3,1) forwards}@keyframes fade-in-up{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes orbit-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes orbit-spin-reverse{0%{transform:rotate(1turn)}to{transform:rotate(0deg)}}@keyframes shimmer-line{0%{transform:translateX(-100%)}50%{transform:translateX(30%)}to{transform:translateX(100%)}}@keyframes glow-breathe{0%,to{opacity:.4;transform:scale(.96)}50%{opacity:.85;transform:scale(1.08)}}.page-loader-text{font-size:14px;font-weight:700;color:#0F172A;letter-spacing:-.015em;margin:0;text-align:center}.rich-bold-editor{border:1px solid var(--color-hairline)!important;background-color:var(--color-field);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.rich-bold-editor:focus{border-color:var(--color-accent)!important;background-color:#FFFFFF!important;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.rich-bold-editor[data-placeholder]:empty:before{content:attr(data-placeholder);color:var(--color-text-faint);cursor:text}.editor-format-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;font-size:11.5px;font-weight:600;color:#334155;background-color:#FFFFFF;border:1px solid var(--color-hairline);border-radius:6px;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 1px 2px rgba(15,23,42,.03)}.editor-format-btn:hover{background-color:#EFF6FF;border-color:#BFDBFE;color:#1D4ED8;box-shadow:0 1px 3px rgba(37,99,235,.08)}.editor-format-btn:active{transform:scale(.96);background-color:#DBEAFE}.rich-text-content,.rich-text-preview{color:var(--color-ink-soft);line-height:1.6;word-break:break-word;overflow-wrap:break-word}.rich-text-content b,.rich-text-content strong,.rich-text-preview b,.rich-text-preview strong{font-weight:700;color:var(--color-ink)}.rich-text-content p,.rich-text-preview p{margin-bottom:8px;color:inherit;font-size:inherit;line-height:inherit}.rich-text-content p:last-child,.rich-text-preview p:last-child{margin-bottom:0}.rich-text-content ol,.rich-text-content ul,.rich-text-preview ol,.rich-text-preview ul{padding-left:20px;margin-bottom:8px}.rich-text-content li,.rich-text-preview li{margin-bottom:4px}body,html{overflow-x:hidden;max-width:100vw;-webkit-text-size-adjust:100%}a,button,input,select,textarea{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.touch-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.touch-scroll-x::-webkit-scrollbar{display:none}.panels-toolbar{justify-content:space-between;gap:12px}.panels-actions-group,.panels-toolbar{display:flex;align-items:center;flex-wrap:wrap}.panels-actions-group{gap:8px;flex:1 1 auto;justify-content:flex-end}.panels-actions-buttons{display:flex;align-items:center;gap:8px}.admin-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.search-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.search-input-wrapper>input{width:100%;padding-left:36px!important;padding-right:36px!important}.search-input-wrapper .search-icon{left:12px;pointer-events:none}.search-input-wrapper .clear-btn,.search-input-wrapper .search-icon{position:absolute;top:50%;transform:translateY(-50%);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center}.search-input-wrapper .clear-btn{right:8px;background:transparent;border:none;cursor:pointer;padding:4px;border-radius:4px;transition:color .15s ease}.search-input-wrapper .clear-btn:hover{color:var(--color-ink)}.modal-overlay-responsive{cursor:pointer}.modal-card-responsive,.modal-overlay-responsive>*{cursor:default}@media (max-width:768px){.modal-overlay-responsive{padding:10px 8px!important;align-items:flex-end!important}.modal-card-responsive{max-height:92vh!important;border-radius:16px 16px 0 0!important;margin:0!important;width:100%!important;max-width:100%!important}.modal-header-responsive{padding:14px 16px!important}.modal-body-responsive{padding:14px 16px 20px!important;gap:12px!important}.grid-cols-2,.grid-cols-3,.grid-cols-4,.responsive-grid-2,.responsive-grid-3,.round-action-grid,.shift-timings-grid{grid-template-columns:1fr!important;gap:10px!important}.hero-split-grid{grid-template-columns:1fr!important;gap:24px!important;padding:10px 0!important}.landing-stat-card{padding:12px 10px!important}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=time],select,textarea{font-size:16px!important;min-height:38px}.mobile-action-stack{flex-direction:column-reverse!important;width:100%!important}.mobile-action-stack>a,.mobile-action-stack>button{width:100%!important;justify-content:center!important}.panels-toolbar{flex-direction:column!important;align-items:stretch!important;gap:10px!important}.panels-toolbar .segmented-control{width:100%!important}.admin-header-actions{display:grid!important;grid-template-columns:1fr 1fr!important;grid-gap:10px!important;gap:10px!important;margin-top:6px!important}.admin-header-actions,.admin-header-actions button{width:100%!important;box-sizing:border-box!important}.admin-header-actions button{justify-content:center!important;padding:10px 12px!important;font-size:12.5px!important}.panels-actions-group{flex-direction:column!important;align-items:stretch!important;width:100%!important;gap:8px!important}.panels-actions-group .search-input-wrapper{max-width:100%!important;width:100%!important}.panels-actions-buttons{display:grid!important;grid-template-columns:1fr 1fr!important;grid-gap:8px!important;gap:8px!important;width:100%!important;box-sizing:border-box!important}.panels-actions-buttons button{width:100%!important;justify-content:center!important;padding:0 6px!important;font-size:11.5px!important;box-sizing:border-box!important;min-width:0!important}}@media (max-width:480px){.container{padding:0 10px!important}.card,.card-soft{padding:12px 10px!important;border-radius:10px!important}.landing-stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}.data-table td,.data-table th{padding:6px 8px!important;font-size:11px!important}}.btn-icon-hover{display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease-in-out}.btn-icon-hover:hover{background-color:#E2E8F0!important;color:#0F172A!important;transform:scale(1.05)}.btn-icon-hover:active{transform:scale(.95)}