.login-page{color:#333;background:#fff;flex-direction:column;min-height:100vh;font-family:Poppins,sans-serif;display:flex;position:relative;overflow-x:hidden}.login-page--enter .login-header,.login-page--enter .auth-wrapper,.login-page--enter .login-footer{animation:.45s both login-enter}.login-page--enter .auth-wrapper{animation-delay:60ms}.login-page--enter .login-footer{animation-delay:.12s}@keyframes login-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.login-splash{z-index:4000;opacity:1;background:#000;width:100%;height:100%;transition:opacity .35s;position:fixed;inset:0;overflow:hidden}.login-splash.is-exiting{opacity:0;pointer-events:none}.login-splash-video{object-fit:contain;object-position:center center;cursor:pointer;background:#000;width:100%;max-width:100%;height:100%;max-height:100%;position:absolute;inset:0;transform:none}@media (width<=767px){.login-splash-video{object-fit:contain;object-position:center center}}html.login-splash-open,html.login-splash-open body{height:100%;overflow:hidden!important}.login-splash-skip{right:max(1.25rem, env(safe-area-inset-right));bottom:max(1.25rem, env(safe-area-inset-bottom));z-index:1;appearance:none;color:#fff;letter-spacing:.04em;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a8c;border:1px solid #ffffff73;border-radius:999px;padding:.55rem 1rem;font-family:Poppins,sans-serif;font-size:.85rem;font-weight:600;transition:background .15s,border-color .15s;position:absolute}.login-splash-skip:hover{background:#0f172abf;border-color:#ffffffb3}@media (width<=767px){.login-splash-skip{right:max(1rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));padding:.5rem .9rem;font-size:.8rem}}.login-header{z-index:1000;background:#fafafa;width:100%;position:sticky;top:0}.header-top-bar{background:#166534;width:100%;height:3px}.header-container{grid-template-columns:auto 1fr auto;align-items:center;gap:25px;max-width:1400px;margin:0 auto;padding:8px 30px;display:grid}.header-left{align-items:center;display:flex}.header-logo-link{line-height:0;text-decoration:none;display:inline-flex}.header-logo{object-fit:contain;flex-shrink:0;width:auto;height:50px}.header-center{justify-content:center;align-items:center;display:flex}.drims-branding{align-items:center;gap:15px;display:flex}.header-right{justify-content:flex-end;align-items:center;display:flex}.header-session{align-items:center;gap:14px;display:flex}.header-notify-link{color:#1e3a8a;background:#eff6ff;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;text-decoration:none;display:inline-flex;position:relative}.header-notify-link:hover{background:#dbeafe}.header-notify-badge{color:#fff;text-align:center;background:#dc2626;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-4px;right:-4px}.header-user-email{color:#64748b;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:14px;font-weight:500;overflow:hidden}.header-logout-btn{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:8px 18px;font-family:Poppins,sans-serif;font-size:14px;font-weight:700;transition:background .2s;box-shadow:0 1px 2px #dc262626}.header-logout-btn:hover{background:#b91c1c}.cse-label{color:#1e3a8a;letter-spacing:2px;text-transform:uppercase;background:#e8f0fe;border:1.5px solid #3b82f6;border-radius:6px;padding:8px 20px;font-family:Poppins,sans-serif;font-size:13px;font-weight:700;box-shadow:0 1px 2px #1e3a8a1a}.drims-logo{color:#1e3a8a;letter-spacing:2px;text-transform:uppercase;white-space:nowrap;font-family:Arial,Poppins,sans-serif;font-size:28px;font-weight:900}.drims-separator{background:#1e3a8a;border-radius:1px;width:2px;height:38px}.drims-full-name{flex-direction:column;gap:1.5px;display:flex}.drims-line{color:#1e3a8a;letter-spacing:1px;text-transform:uppercase;font-family:Arial,Poppins,sans-serif;font-size:11px;font-weight:800;line-height:1.15}.header-bottom-bar{background:#d1d5db;width:100%;height:1px}.auth-wrapper{background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;max-width:900px;height:550px;margin:40px auto;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.auth-wrapper:hover{border-color:#cbd5e1;box-shadow:0 8px 16px -4px #0000001f,0 4px 8px -2px #00000014}.auth-wrapper .credentials-panel{z-index:10;flex-direction:column;justify-content:center;width:50%;height:100%;padding:0 50px;display:flex;position:absolute;top:0;left:0}.credentials-panel .slide-element{opacity:1;filter:blur();transition:all .7s;transform:translate(0%)}.credentials-panel .slide-element:first-child{transition-delay:.1s}.credentials-panel .slide-element:nth-child(2){transition-delay:.2s}.credentials-panel .slide-element:nth-child(3){transition-delay:.3s}.credentials-panel .slide-element:nth-child(4){transition-delay:.4s}.credentials-panel .slide-element:nth-child(5){transition-delay:.5s}.credentials-panel .slide-element:nth-child(6){transition-delay:.6s}.login-role-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.login-role-links{border-bottom:1px solid #e5e7eb;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.15rem .35rem;margin-bottom:.85rem;padding-bottom:.75rem;display:flex}.login-role-link-wrap{align-items:center;gap:.35rem;display:inline-flex}.login-role-sep{color:#cbd5e1;-webkit-user-select:none;user-select:none;font-size:.85rem;font-weight:500}.login-role-link{appearance:none;letter-spacing:.02em;color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:0;margin:0;padding:.1rem 0;font-family:Poppins,sans-serif;font-size:.92rem;font-weight:600;text-decoration:none;transition:color .15s}.login-role-link:hover:not(:disabled),.login-role-link[data-active=true]{color:#2563eb;text-underline-offset:3px;background:0 0;text-decoration:underline}.login-role-link:disabled{opacity:.6;cursor:not-allowed}.login-portal-label{letter-spacing:.04em;text-transform:uppercase;color:#94a3b8;margin:0 0 .85rem;font-size:.8rem;font-weight:600}.welcome-role-hint{color:#2563eb!important;margin-top:1.25rem!important;font-size:.85rem!important;font-weight:600!important}.welcome-quick-link{appearance:none;color:#2563eb;cursor:pointer;text-align:inherit;text-underline-offset:3px;background:0 0;border:none;margin-top:1.25rem;padding:0;font-family:Poppins,sans-serif;font-size:.9rem;font-weight:600;text-decoration:underline}.welcome-quick-link:hover:not(:disabled){color:#1d4ed8}.welcome-quick-link:disabled{opacity:.65;cursor:not-allowed}.login-role-chip{color:#374151;cursor:pointer;background:#f9fafb;border:1.5px solid #d1d5db;border-radius:8px;padding:10px 8px;font-family:Poppins,sans-serif;font-size:12px;font-weight:600;line-height:1.25;transition:all .2s}.login-role-chip:hover:not(:disabled){color:#1e3a8a;background:#eff6ff;border-color:#2563eb}.login-role-chip[data-active=true]{color:#fff;background:#2563eb;border-color:#2563eb;box-shadow:0 4px 12px #2563eb40}.login-role-chip:disabled{opacity:.6;cursor:not-allowed}@media (width<=480px){.login-role-grid{grid-template-columns:1fr}}.credentials-panel .field-wrapper{width:100%;height:50px;margin-top:25px;position:relative}.field-wrapper-select select{color:#1f2937;appearance:none;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #d1d5db;outline:none;width:100%;height:100%;padding-right:30px;font-family:inherit;font-size:16px;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1)}.field-wrapper-select select:focus,.field-wrapper-select select:valid{background:#2563eb05;border-bottom-color:#2563eb}.field-wrapper-select label[data-float=true]{color:#2563eb;font-size:12px;top:0;transform:translateY(-80%)}.field-wrapper input{color:#1f2937;background:0 0;border:none;border-bottom:2px solid #d1d5db;outline:none;width:100%;height:100%;padding-right:30px;font-size:16px;font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1)}.field-wrapper input:focus,.field-wrapper input:not(:placeholder-shown),.field-wrapper input[data-filled=true]{background:#2563eb05;border-bottom:2px solid #2563eb}.field-wrapper label{color:#6b7280;pointer-events:none;font-size:16px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;left:0;transform:translateY(-50%)}.field-wrapper input:focus~label,.field-wrapper input:not(:placeholder-shown)~label,.field-wrapper input[data-filled=true]~label{color:#2563eb;font-size:12px;font-weight:600;top:-5px}.field-wrapper i,.field-wrapper .field-eye{color:#9ca3af;font-size:18px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;top:50%;right:0;transform:translateY(-50%)}.field-wrapper .field-eye{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.field-wrapper input:focus~i,.field-wrapper input:not(:placeholder-shown)~i,.field-wrapper input[data-filled=true]~i,.field-wrapper input:focus~.field-eye,.field-wrapper input:not(:placeholder-shown)~.field-eye,.field-wrapper input[data-filled=true]~.field-eye{color:#2563eb}.remember-forgot-container{justify-content:space-between;align-items:center;gap:15px;width:100%;margin-top:15px;display:flex;height:auto!important}.remember-label{cursor:pointer;color:#374151;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:14px;display:flex}.remember-label input[type=checkbox]{cursor:pointer;accent-color:#2563eb;width:18px;height:18px}.forgot-link{color:#2563eb;font-size:14px;font-weight:600;text-decoration:none;position:relative}.forgot-link:after{content:"";background:#1d4ed8;width:0;height:2px;transition:width .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-2px;left:0}.forgot-link:hover{color:#1d4ed8}.forgot-link:hover:after{width:100%}.submit-button{cursor:pointer;color:#fff;z-index:1;background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);border:none;border-radius:8px;width:100%;height:45px;margin-top:10px;font-size:16px;font-weight:600;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-shadow:0 2px 8px #2563eb4d}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8 0%,#1e40af 100%);transform:translateY(-2px);box-shadow:0 4px 12px #2563eb80}.submit-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-submit-wrap{margin-top:25px;height:auto!important}.login-submit-wrap .submit-button{margin-top:0}.login-progress{background:#e5e7eb;border-radius:999px;width:100%;height:6px;margin-top:10px;overflow:hidden}.login-progress-bar{border-radius:inherit;background:linear-gradient(90deg,#2563eb 0%,#60a5fa 50%,#1d4ed8 100%) 0 0/200% 100%;height:100%;transition:width 80ms linear;animation:.7s linear infinite login-progress-shine}@keyframes login-progress-shine{0%{background-position:100% 0}to{background-position:-100% 0}}.error-message{height:auto!important;margin-top:10px!important}.error-text{color:#dc2626;background:#fef2f2;border:1px solid #ef4444;border-radius:5px;padding:10px 15px;font-size:14px;font-weight:500}.switch-link{text-align:center;color:#6b7280;margin:20px 0 10px;font-size:14px}.welcome-section{z-index:5;flex-direction:column;justify-content:center;width:50%;height:100%;display:flex;position:absolute;top:0}.welcome-section.faculty{text-align:right;padding:0 50px 60px 150px;right:0}.welcome-section h2{text-transform:uppercase;letter-spacing:2px;color:#1f2937;margin-bottom:20px;font-size:36px;font-weight:800;line-height:1.3}.welcome-section p{color:#6b7280;margin-top:10px;font-size:16px;font-weight:500}.login-robot-wrap{pointer-events:auto;-webkit-user-select:none;user-select:none;line-height:0;display:block}.login-robot-source{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.login-robot{object-fit:contain;background:0 0;border:none;width:100%;height:100%;display:block}.login-robot--welcome{width:96px;height:96px;margin:0 0 .85rem auto;animation:none}.login-robot--mobile{width:60px;height:60px;margin:0 auto .75rem;animation:none;display:none}.login-robot-wrap:hover .login-robot--welcome,.login-robot-wrap:hover .login-robot--mobile,.premium-robot-stage:hover .login-robot--welcome{animation:3.2s ease-in-out infinite login-robot-float}@keyframes login-robot-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.auth-wrapper .background-shape{transform-origin:100% 100%;z-index:1;opacity:.5;background:linear-gradient(45deg,#eff6ff,#dbeafe);width:900px;height:600px;position:absolute;top:-5px;right:0;transform:rotate(10deg)skewY(40deg)}.auth-wrapper .secondary-shape{transform-origin:0 100%;z-index:1;opacity:.5;background:#f9fafb;border-top:2px solid #e5e7eb;width:900px;height:700px;position:absolute;top:100%;left:250px}.login-footer{background:#e5e7eb;border-top:1px solid #d1d5db;width:100%;margin-top:auto}.footer-container{background:#e5e7eb;border-top:none;max-width:1400px;margin:0 auto;padding:10px 40px}.footer-bottom{justify-content:center;align-items:center;display:flex}.footer-copyright-section{text-align:center;flex-direction:column;align-items:center;gap:2px;width:100%;display:flex}.footer-copyright{color:#374151;margin:0;font-size:13px}.footer-copyright strong{color:#1f2937;font-weight:600}.footer-institution{color:#6b7280;margin:0;font-size:12px}@media (width<=768px){.header-container{text-align:center;grid-template-columns:1fr;gap:12px;padding:12px 16px}.header-left,.header-right{justify-content:center}.header-center{order:2}.header-right{order:3}.header-session{flex-wrap:wrap;justify-content:center}.header-user-email{max-width:100%}.header-logo{height:38px}.drims-logo{font-size:22px}.drims-line{font-size:8px}.auth-wrapper{border-radius:16px;width:calc(100% - 24px);max-width:calc(100% - 24px);height:auto;margin:16px auto;overflow:visible}.auth-wrapper .credentials-panel{width:100%;padding:28px 20px 32px;position:relative;top:auto;left:auto}.login-robot--mobile{display:block}.welcome-section,.auth-wrapper .background-shape,.auth-wrapper .secondary-shape{display:none!important}.credentials-panel h2{margin-bottom:24px;font-size:22px}.login-role-links{justify-content:center;width:100%}.login-portal-label{text-align:center;text-transform:none;letter-spacing:.01em;font-size:.78rem;line-height:1.4}.field-wrapper,.submit-button{height:52px;margin-top:20px}.footer-container{padding:8px 16px}.remember-forgot-container{flex-wrap:wrap;gap:.75rem}}.forgot-auth-wrap{height:auto;min-height:480px}.credentials-panel.forgot-official{width:100%;max-width:440px;margin:0 auto;padding:2rem 1.75rem 1.75rem;position:relative}.forgot-official-head{margin-bottom:.35rem}.forgot-official-badge{letter-spacing:.04em;text-transform:uppercase;color:#1e3a5f;background:#e8f0fe;border:1px solid #c5d7f5;border-radius:6px;align-items:center;gap:.4rem;margin-bottom:.75rem;padding:.28rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.forgot-official-badge i{color:#2563eb}.forgot-official h2{color:#0f172a;margin:0 0 .4rem;font-size:1.35rem}.forgot-official-sub{color:#64748b;margin:0 0 1.1rem;font-size:.88rem;line-height:1.45}.forgot-form{flex-direction:column;gap:.9rem;width:100%;display:flex}.forgot-box-field{flex-direction:column;gap:.4rem;width:100%;display:flex}.forgot-box-label{color:#334155;font-size:.8rem;font-weight:600}.forgot-box-input{background:#fff;border:1.5px solid #cbd5e1;border-radius:10px;align-items:center;gap:.65rem;width:100%;min-height:48px;padding:0 .85rem;transition:border-color .2s,box-shadow .2s;display:flex}.forgot-box-input:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.forgot-box-input i{color:#64748b;flex-shrink:0;font-size:.95rem}.forgot-box-input:focus-within i{color:#2563eb}.forgot-box-input input{color:#0f172a;outline:none;flex:1;min-width:0;height:46px;font-size:.95rem;font-weight:500;box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.forgot-box-input input::placeholder{color:#94a3b8;font-weight:400}.forgot-otp-block{flex-direction:column;gap:.55rem;width:100%;display:flex}.forgot-otp-boxes{justify-content:space-between;gap:.45rem;width:100%;display:flex}.forgot-otp-box{text-align:center;letter-spacing:0;color:#0f172a;background:#fff;border:1.5px solid #cbd5e1;border-radius:10px;outline:none;width:100%;max-width:52px;height:52px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.25rem;font-weight:700;transition:border-color .2s,box-shadow .2s}.forgot-otp-box:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.forgot-submit{width:100%;margin-top:.35rem!important}.forgot-resend{color:#2563eb;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;align-self:center;padding:.25rem;font-size:.88rem;font-weight:600;text-decoration:underline}.forgot-resend:disabled{opacity:.55;cursor:not-allowed}.forgot-alert{border:1px solid #0000;border-radius:10px;width:100%;margin:.35rem 0 .75rem;padding:.75rem .9rem;font-size:.88rem;line-height:1.4}.forgot-alert-error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.forgot-alert-ok{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.forgot-done{flex-direction:column;gap:.85rem;width:100%;display:flex}@media (width<=480px){.forgot-otp-box{max-width:44px;height:46px;font-size:1.1rem}.credentials-panel.forgot-official{padding:1.5rem 1.1rem 1.25rem}}.login-page--premium{--p-navy:#123b73;--p-blue:#1769e8;--p-light:#eaf4ff;--p-white:#fff;--p-gray:#64748b;--p-ink:#0f172a;--p-grad:linear-gradient(135deg, #1769e8 0%, #5b5ce2 55%, #7c3aed 100%);background:#f7fbff;flex-direction:column;min-height:100vh;display:flex}.login-page--premium .login-header{background:#fff;box-shadow:0 1px #123b7314,0 8px 24px #123b730a}.login-page--premium .header-top-bar{background:linear-gradient(90deg,#123b73,#1769e8);height:3px}.login-page--premium .header-bottom-bar{display:none}.login-page--premium .header-container{max-width:1280px;min-height:76px;padding:10px 28px}.login-page--premium .header-logo{height:48px}.login-page--premium .drims-logo{color:var(--p-navy);letter-spacing:.02em;font-size:1.85rem;font-weight:800}.login-page--premium .drims-separator{background:#cbd5e1;width:2px;height:42px}.login-page--premium .drims-line{color:var(--p-navy);letter-spacing:.12em;font-size:.68rem;font-weight:700;line-height:1.15}.login-page--premium .cse-label{color:var(--p-blue);box-shadow:none;background:#f0f7ff;border:1.5px solid #93c5fd;border-radius:999px;padding:.4rem .95rem;font-size:.85rem;font-weight:700}.login-page--premium .premium-hero{background:#0f2748;flex:1;align-items:center;padding:1.35rem 1.25rem 1.5rem;display:flex;position:relative;overflow:hidden}.login-page--premium .premium-hero-bg{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.login-page--premium .premium-hero-bg img{object-fit:cover;object-position:center center;filter:none;width:100%;height:100%;transform:none}.login-page--premium .premium-hero-bg-veil{background:#0f274838;position:absolute;inset:0}.login-page--premium .premium-blob{display:none!important}.login-page--premium .premium-hero-inner{z-index:2;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);align-items:start;gap:1.25rem;width:100%;max-width:1240px;margin:0 auto;display:grid;position:relative}.login-page--premium .auth-wrapper,.login-page--premium .background-shape,.login-page--premium .secondary-shape{display:none!important}.login-page--premium .credentials-panel,.login-page--premium .welcome-section{text-align:left;flex-direction:column;max-width:none;padding:0;display:flex;width:100%!important;height:auto!important;position:relative!important;top:auto!important;left:auto!important;right:auto!important}@property --premium-border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes premium-border-spin{to{--premium-border-angle:360deg}}@media (prefers-reduced-motion:reduce){.login-page--premium .premium-login-card,.login-page--premium .premium-welcome-card{--premium-border-angle:140deg;animation:.55s both premium-fade-up}}.login-page--premium .premium-login-card{background:linear-gradient(#fff, #fff) padding-box, conic-gradient(from var(--premium-border-angle), #1769e8, #5b5ce2, #7c3aed, #38bdf8, #1769e8) border-box;border:2px solid #0000;border-radius:16px;flex-direction:column;width:100%;max-width:none;height:auto;margin:0;padding:1.1rem 1.2rem .95rem;animation:.55s both premium-fade-up,7s linear infinite premium-border-spin;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 34px #0f274833}.login-page--premium .premium-card-accent{z-index:0;border-style:solid;width:0;height:0;position:absolute}.login-page--premium .premium-card-accent--tl{opacity:.75;border-width:18px 18px 0 0;border-color:#1769e8 #0000 #0000;top:0;left:0}.login-page--premium .premium-card-accent--br{opacity:.65;border-width:0 0 18px 18px;border-color:#0000 #0000 #5b5ce2;bottom:0;right:0}.login-page--premium .premium-card-head{z-index:1;align-items:center;gap:.65rem;margin-bottom:.85rem;display:flex;position:relative}.login-page--premium .premium-card-icon{width:36px;height:36px;color:var(--p-blue);background:linear-gradient(145deg,#e8f1ff,#dbeafe);border-radius:10px;flex-shrink:0;place-items:center;font-size:.95rem;display:grid}.login-page--premium .premium-card-head h2{color:var(--p-ink);letter-spacing:-.02em;margin:0;font-size:1.2rem;font-weight:800}.login-page--premium .premium-card-head p{color:var(--p-gray);margin:.12rem 0 0;font-size:.78rem;font-weight:500}.login-page--premium .premium-role-tabs{z-index:1;border-bottom:none;flex-wrap:nowrap;gap:.35rem;margin-bottom:.55rem;padding-bottom:0;display:flex;position:relative}.login-page--premium .login-role-link-wrap,.login-page--premium .login-role-sep{display:none}.login-page--premium .premium-role-tabs .login-role-link{color:#475569;text-align:center;background:#f1f5f9;border:1px solid #0000;border-radius:999px;flex:1 1 0;min-width:0;padding:.4rem .35rem;font-size:.78rem;font-weight:700;text-decoration:none;transition:background .2s,color .2s,box-shadow .2s,transform .15s}.login-page--premium .premium-role-tabs .login-role-link:hover:not(:disabled){color:var(--p-navy);background:#e2e8f0;text-decoration:none}.login-page--premium .premium-role-tabs .login-role-link[data-active=true]{background:var(--p-grad);color:#fff;text-decoration:none;box-shadow:0 6px 14px #1769e84d}.login-page--premium .login-portal-label{letter-spacing:.03em;text-transform:uppercase;color:#94a3b8;z-index:1;align-items:flex-start;gap:.4rem;margin:0 0 .75rem;font-size:.64rem;font-weight:600;line-height:1.4;display:flex;position:relative}.login-page--premium .login-portal-label i{color:var(--p-blue);margin-top:.1rem}.login-page--premium .premium-login-form{z-index:1;flex-direction:column;gap:.7rem;display:flex;position:relative}.login-page--premium .premium-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:.55rem .75rem;font-size:.8rem;font-weight:600}.login-page--premium .premium-field{flex-direction:column;gap:.28rem;display:flex}.login-page--premium .premium-field>span{color:#334155;font-size:.74rem;font-weight:700}.login-page--premium .premium-input{background:#f8fbff;border:1.5px solid #dbe3f0;border-radius:10px;align-items:center;gap:.55rem;min-height:42px;padding:0 .75rem;transition:border-color .2s,box-shadow .2s,background .2s;display:flex}.login-page--premium .premium-input:focus-within{border-color:var(--p-blue);background:#fff;box-shadow:0 0 0 3px #1769e81f}.login-page--premium .premium-input>i{color:var(--p-blue);flex-shrink:0;font-size:.82rem}.login-page--premium .premium-input input{min-width:0;height:40px;color:var(--p-ink);outline:none;flex:1;font-size:.86rem;font-weight:500;box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.login-page--premium .premium-input input::placeholder{color:#94a3b8;font-weight:400}.login-page--premium .premium-input .field-eye{color:#64748b;cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:.95rem}.login-page--premium .remember-forgot-container{justify-content:space-between;align-items:center;gap:.75rem;margin:.05rem 0 .1rem;display:flex}.login-page--premium .remember-label{color:#475569;cursor:pointer;align-items:center;gap:.4rem;font-size:.78rem;font-weight:500;display:inline-flex}.login-page--premium .forgot-link{color:var(--p-blue);font-size:.78rem;font-weight:700;text-decoration:none}.login-page--premium .forgot-link:hover{text-decoration:underline}.login-page--premium .premium-submit{background:var(--p-grad);color:#fff;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.45rem;width:100%;min-height:44px;font-size:.9rem;font-weight:700;transition:transform .18s,box-shadow .18s,filter .18s;display:inline-flex;box-shadow:0 8px 20px #1769e84d}.login-page--premium .premium-submit:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 12px 26px #5b5ce259}.login-page--premium .premium-submit:active:not(:disabled){transform:translateY(1px)}.login-page--premium .premium-submit:disabled{opacity:.7;cursor:not-allowed}.login-page--premium .premium-submit-arrow{background:#fff3;border-radius:999px;place-items:center;width:1.3rem;height:1.3rem;font-size:.82rem;line-height:1;display:inline-grid}.login-page--premium .premium-card-trust{text-align:center;letter-spacing:.05em;color:#94a3b8;z-index:1;margin:.75rem 0 0;font-size:.7rem;font-weight:600;position:relative}.login-page--premium .login-progress{background:#e2e8f0;border-radius:999px;height:4px;margin-top:.55rem;overflow:hidden}.login-page--premium .login-progress-bar{background:var(--p-grad);height:100%;transition:width .2s}.login-page--premium .premium-hero-panel{flex-direction:column;height:auto;padding:0;animation:.65s 80ms both premium-fade-up;display:flex;position:relative}.login-page--premium .premium-welcome-card{background:linear-gradient(#fff, #fff) padding-box, conic-gradient(from var(--premium-border-angle), #1769e8, #5b5ce2, #7c3aed, #38bdf8, #1769e8) border-box;border:2px solid #0000;border-radius:16px;flex-direction:column;justify-content:flex-start;gap:.75rem;height:auto;padding:1rem 1.1rem .95rem;animation:7s linear infinite premium-border-spin;display:flex;box-shadow:0 14px 34px #0f274833}.login-page--premium .premium-handwrite{display:none}.login-page--premium .premium-welcome-top{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.85rem;display:grid}.login-page--premium .premium-hero-copy{z-index:1;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;flex:none;min-width:0;padding:0;position:relative}.login-page--premium .premium-welcome-kicker{letter-spacing:.12em;color:var(--p-blue);text-transform:uppercase;margin:0 0 .3rem;font-size:.68rem;font-weight:800}.login-page--premium .premium-hero-copy h2{color:var(--p-navy);letter-spacing:-.02em;text-transform:none;margin:0;font-size:clamp(1.2rem,1.7vw,1.45rem);font-weight:800;line-height:1.25}.login-page--premium .premium-hero-copy h2 span{color:var(--p-blue)}.login-page--premium .premium-hero-sub{color:var(--p-gray);max-width:22rem;margin:.4rem 0 0;font-size:.8rem;font-weight:500;line-height:1.4}.login-page--premium .premium-welcome-aside{flex-direction:column;flex-shrink:0;align-items:center;gap:.4rem;display:flex}.login-page--premium .premium-feature-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.login-page--premium .premium-feature-list li{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#f7faff;border:1px solid #e4eefb;border-radius:11px;flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0;padding:.55rem;display:flex}.login-page--premium .premium-feature-list li:hover{border-color:#bfdbfe;transform:none;box-shadow:0 6px 14px #1769e814}.login-page--premium .premium-feature-icon{width:34px;height:34px;box-shadow:none;border:1px solid #dbeafe;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;margin:0;padding:0;line-height:0;overflow:hidden;display:inline-flex!important}.login-page--premium .premium-feature-icon svg{flex-shrink:0;width:20px;height:20px;margin:0;padding:0;display:block}.login-page--premium .premium-feature-icon.tone-login{background:#e8f1ff}.login-page--premium .premium-feature-icon.tone-workload{background:#e6f7ff}.login-page--premium .premium-feature-icon.tone-smart{background:#efeaff}.login-page--premium .premium-feature-list strong{color:var(--p-navy);font-size:.78rem;font-weight:700;line-height:1.25;display:block}.login-page--premium .premium-feature-list li>div>span{color:var(--p-gray);margin-top:.15rem;font-size:.7rem;line-height:1.3;display:block}.login-page--premium .premium-hero-cta{appearance:none;background:var(--p-grad);color:#fff;cursor:pointer;border:none;border-radius:11px;justify-content:center;align-items:center;width:100%;margin-top:0;padding:.65rem 1rem;font-family:inherit;font-size:.86rem;font-weight:700;transition:transform .15s,box-shadow .15s,filter .15s;display:flex;box-shadow:0 10px 22px #1769e847}.login-page--premium .premium-hero-cta:hover:not(:disabled){background:var(--p-grad);filter:brightness(1.03);border-color:#0000;transform:translateY(-1px);box-shadow:0 14px 26px #5b5ce259}.login-page--premium .premium-hero-art{display:none}.login-page--premium .login-robot--welcome{flex-shrink:0;width:72px;height:72px;margin:0;animation:none}.login-page--premium .premium-welcome-aside:hover .login-robot--welcome,.login-page--premium .login-robot-wrap:hover .login-robot--welcome{animation:3.2s ease-in-out infinite login-robot-float}.login-page--premium .premium-learn-board{box-shadow:none;color:var(--p-navy);letter-spacing:.02em;white-space:nowrap;background:#eef5ff;border:1px solid #dbeafe;border-radius:999px;flex-flow:row;justify-content:center;align-items:center;gap:.2rem .45rem;padding:.35rem .55rem;font-family:inherit;font-size:.68rem;font-weight:700;line-height:1;animation:none;display:flex}.login-page--premium .premium-learn-board span:not(:last-child):after{content:"·";color:#93c5fd;margin-left:.45rem;font-weight:700}.login-page--premium .premium-campus-photo{display:none!important}@media (width<=980px){.login-page--premium .premium-welcome-top{grid-template-columns:1fr}.login-page--premium .premium-welcome-aside{flex-direction:row;justify-content:flex-start}.login-page--premium .premium-feature-list{grid-template-columns:1fr}.login-page--premium .premium-feature-list li{flex-direction:row;align-items:center}}.login-page--premium .premium-login-footer{background:var(--p-navy);color:#cbd5e1;margin-top:auto}.login-page--premium .premium-login-footer-inner{text-align:center;justify-content:center;align-items:center;max-width:1120px;margin:0 auto;padding:.55rem 1.25rem;display:flex}.login-page--premium .premium-login-footer-inner p{letter-spacing:.02em;color:#cbd5e1;margin:0;font-size:.75rem;font-weight:500;line-height:1.3}@keyframes premium-fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.login-page--premium.login-page--enter .premium-login-card,.login-page--premium.login-page--enter .premium-hero-panel{animation:.55s both premium-fade-up}@media (width<=980px){.login-page--premium .premium-hero-inner{grid-template-columns:1fr;gap:1.25rem;max-width:560px}.login-page--premium .premium-login-card,.login-page--premium .premium-welcome-card{max-width:none}.login-page--premium .premium-handwrite{display:none}.login-page--premium .premium-login-footer-inner{padding:.5rem 1rem}}@media (width<=640px){.login-page--premium .header-container{text-align:center;grid-template-columns:1fr;gap:.65rem;padding:12px 16px}.login-page--premium .header-left,.login-page--premium .header-right,.login-page--premium .header-center{justify-content:center}.login-page--premium .drims-logo{font-size:1.45rem}.login-page--premium .premium-hero{padding:1.25rem 1rem 1.75rem}.login-page--premium .premium-login-card,.login-page--premium .premium-welcome-card{border-radius:16px;padding:1.35rem 1.15rem 1.2rem}.login-page--premium .premium-hero-bg-veil{background:#0f274847}.login-page--premium .login-robot--welcome{width:48px;height:48px}}.login-page--premium.login-page--forgot .premium-hero--forgot{justify-content:center;align-items:center;display:flex}.login-page--premium .premium-forgot-wrap{z-index:2;width:100%;max-width:480px;margin:0 auto;position:relative}.login-page--premium .premium-forgot-card{max-width:none;height:auto;margin:0;animation:.45s both premium-fade-up}.login-page--premium .premium-forgot-head{margin-bottom:1.15rem}.login-page--premium .premium-forgot-badge{color:var(--p-navy);letter-spacing:.04em;text-transform:uppercase;background:#eef5ff;border:1px solid #dbeafe;border-radius:999px;align-items:center;gap:.45rem;padding:.35rem .7rem;font-size:.72rem;font-weight:700;display:inline-flex}.login-page--premium .premium-forgot-badge svg{flex-shrink:0;width:18px;height:18px}.login-page--premium .premium-forgot-head h2{color:var(--p-navy);letter-spacing:-.02em;margin:.85rem 0 .45rem;font-size:1.55rem;font-weight:800;line-height:1.2}.login-page--premium .premium-forgot-head p{color:var(--p-gray);margin:0;font-size:.9rem;line-height:1.45}.login-page--premium .premium-forgot-head strong{color:var(--p-navy);font-weight:700}.login-page--premium .premium-forgot-form{flex-direction:column;gap:.95rem;display:flex}.login-page--premium .premium-forgot-alert{border-radius:10px;margin:0 0 .95rem;padding:.7rem .85rem;font-size:.86rem;line-height:1.4}.login-page--premium .premium-forgot-alert.is-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.login-page--premium .premium-forgot-alert.is-ok{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.login-page--premium .premium-field-label,.login-page--premium .premium-otp-block .premium-field-label{color:var(--p-navy);margin-bottom:.45rem;font-size:.82rem;font-weight:700;display:block}.login-page--premium .premium-otp-block{flex-direction:column;display:flex}.login-page--premium .premium-otp-boxes{grid-template-columns:repeat(6,1fr);gap:.5rem;display:grid}.login-page--premium .premium-otp-box{text-align:center;width:100%;height:52px;color:var(--p-navy);background:#f8fbff;border:1.5px solid #dbe3ef;border-radius:12px;outline:none;font-size:1.2rem;font-weight:700;transition:border-color .15s,box-shadow .15s}.login-page--premium .premium-otp-box:focus{border-color:var(--p-blue);background:#fff;box-shadow:0 0 0 3px #1769e826}.login-page--premium .premium-forgot-resend{appearance:none;color:var(--p-blue);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:.25rem;font-family:inherit;font-size:.88rem;font-weight:600;text-decoration:underline}.login-page--premium .premium-forgot-resend:disabled{opacity:.55;cursor:not-allowed}.login-page--premium .premium-forgot-back{text-align:center;margin:1.1rem 0 0}.login-page--premium .premium-forgot-back a{color:var(--p-blue);font-size:.9rem;font-weight:600;text-decoration:none}.login-page--premium .premium-forgot-back a:hover{text-decoration:underline}.login-page--premium .premium-forgot-done{flex-direction:column;gap:.95rem;display:flex}@media (width<=640px){.login-page--premium .premium-forgot-wrap{max-width:100%}.login-page--premium .premium-otp-box{height:46px;font-size:1.05rem}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-slate-400:oklch(70.4% .04 256.788);--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-2xl:1rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:#2563eb;--color-primary-dark:#1d4ed8;--color-ink:#1f2937;--color-muted:#6b7280;--color-border:#e2e8f0;--font-display:"Poppins", ui-sans-serif, system-ui, sans-serif}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;min-height:100%}body{color:#333;-webkit-font-smoothing:antialiased;background:#fff;margin:0;font-family:Poppins,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.font-display{font-family:Poppins,sans-serif}:focus-visible{outline-offset:2px;outline:2px solid #2563eb}button,input,select,textarea{font:inherit}}@layer components{.login-page,.app-shell{color:#333;background:#fff;flex-direction:column;min-height:100vh;font-family:Poppins,sans-serif;display:flex;position:relative;overflow-x:hidden}.app-shell{background:#f8fafc;height:100%;min-height:100dvh;max-height:100dvh;overflow:hidden}.app-shell>.login-header,.app-shell>.login-footer{flex-shrink:0}.app-shell>.login-header{z-index:1000;position:relative}.app-header{z-index:1000;background:#fafafa;border-bottom:none;width:100%;position:sticky;top:0;box-shadow:0 1px 3px #00000014}.app-header:before{content:"";background:#166534;width:100%;height:3px;display:block}.app-header-inner{grid-template-columns:auto 1fr auto;align-items:center;gap:25px;width:100%;max-width:1400px;min-height:auto;margin:0 auto;padding:8px 30px;display:grid}.header-logo-link{align-items:center;line-height:0;text-decoration:none;display:inline-flex}.header-logo-img{object-fit:contain;object-position:left center;width:auto;max-width:min(52vw,260px);height:50px;display:block}.header-product{flex:1;justify-content:center;align-items:center;gap:15px;min-width:0;display:flex}.header-product .font-display,.header-product span{font-family:Arial,Poppins,sans-serif!important}.header-product .text-primary,.header-product .text-ink{letter-spacing:2px;text-transform:uppercase;font-size:30px;font-weight:900;line-height:1;color:#1e3a8a!important}.header-product .text-primary{color:#1e3a8a!important}.header-divider{background:#1e3a8a;border-radius:1px;width:2px;height:38px;display:block}.header-product p{letter-spacing:1px;text-transform:uppercase;flex-direction:column;gap:1.5px;margin:0;line-height:1.15;color:#1e3a8a!important;font-family:Arial,Poppins,sans-serif!important;font-size:11px!important;font-weight:800!important;display:flex!important}.app-header:after{content:"";background:#d1d5db;width:100%;height:1px;display:block}.app-footer{text-align:center;color:#374151;background:#f9fafb;border-top:1px solid #e5e7eb;width:100%;margin-top:auto;padding:25px 40px;font-size:13px;line-height:1.6}.app-footer p{margin:0}.app-footer p+p{color:#6b7280;margin-top:6px;font-size:12px}.login-main{background:#fff;flex:1;justify-content:center;align-items:center;padding:40px 1rem;display:flex}.login-shell{background:#fff;border:1px solid #e5e7eb;border-radius:8px;grid-template-columns:1fr;width:min(900px,92vw);min-height:550px;transition:box-shadow .4s cubic-bezier(.4,0,.2,1),border-color .4s cubic-bezier(.4,0,.2,1);animation:.45s cubic-bezier(.4,0,.2,1) both fadeUp;display:grid;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.login-shell:hover{border-color:#cbd5e1;box-shadow:0 8px 16px -4px #0000001f,0 4px 8px -2px #00000014}@media (width>=900px){.login-shell{grid-template-columns:1fr 1fr;height:550px;min-height:550px}}.brand-panel{color:#1f2937;background:linear-gradient(45deg,#eff6ff,#dbeafe);flex-direction:column;padding:2rem 1.75rem 1.5rem;display:flex;position:relative;overflow:hidden}.brand-panel:before{content:"";transform-origin:100% 100%;opacity:.85;pointer-events:none;z-index:0;background:linear-gradient(45deg,#eff6ff,#dbeafe);width:90%;height:120%;position:absolute;top:-10%;right:-20%;transform:rotate(10deg)skewY(40deg)}.brand-panel>*{z-index:1;position:relative}.brand-panel h1,.brand-panel .text-white,.brand-panel .text-ink{text-transform:uppercase;letter-spacing:2px;font-weight:800;color:#1e3a8a!important}.brand-panel p,.brand-panel .text-white\/90,.brand-panel .text-white\/70,.brand-panel .text-muted,.brand-panel .text-slate-700{color:#6b7280!important}.brand-panel .text-base.font-bold{text-transform:uppercase;letter-spacing:1px;color:#1f2937!important;font-weight:700!important}.brand-panel svg,.brand-panel .text-white{color:#1e3a8a!important}.pill{letter-spacing:1px;text-transform:uppercase;color:#1e3a8a;background:#e8f0fe;border:1.5px solid #3b82f6;border-radius:6px;padding:6px 14px;font-size:12px;font-weight:700;box-shadow:0 1px 2px #1e3a8a1a}.pill-row{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}@media (width>=900px){.brand-panel{justify-content:center;padding:2.5rem 2.5rem 2rem}}.form-panel{z-index:2;background:#fff;flex-direction:column;justify-content:center;padding:2rem 1.5rem 1.75rem;display:flex}@media (width>=900px){.form-panel{padding:0 50px}}.form-panel h2{text-align:center;text-transform:uppercase;letter-spacing:1px;color:#1f2937;margin-bottom:8px;font-size:28px;font-weight:700}.field{margin-top:25px;margin-bottom:0}.field-label{color:#2563eb;margin-bottom:.25rem;font-size:12px;font-weight:600;display:block}.field-control{background:0 0;border:none;border-bottom:2px solid #d1d5db;border-radius:0;align-items:center;gap:.625rem;min-height:50px;padding:0;transition:border-color .3s cubic-bezier(.4,0,.2,1),background .3s cubic-bezier(.4,0,.2,1);display:flex}.field-control:focus-within{box-shadow:none;background:#2563eb05;border-bottom-color:#2563eb}.field-control[data-invalid=true]{border-bottom-color:#ef4444}.field-control input{color:#1f2937;background:0 0;border:none;outline:none;flex:1;min-width:0;height:48px;font-size:16px;font-weight:500}.field-control input::placeholder{color:#9ca3af;font-weight:400}.field-error{color:#dc2626;margin-top:.375rem;font-size:.8125rem}.form-alert{color:#dc2626;background:#fef2f2;border:1px solid #ef4444;border-radius:5px;margin-bottom:1rem;padding:10px 15px;font-size:14px;font-weight:500}.icon-ghost{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;padding:.25rem;display:inline-flex}.icon-ghost:hover{color:#2563eb}.login-btn,.btn-primary{color:#fff;letter-spacing:0;cursor:pointer;background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;width:100%;min-height:45px;margin-top:10px;font-family:Poppins,sans-serif;font-size:16px;font-weight:600;transition:all .4s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #2563eb4d}.login-btn:hover:not(:disabled),.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8 0%,#1e40af 100%);transform:translateY(-2px);box-shadow:0 4px 12px #2563eb80}.login-btn:disabled,.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:9999px;width:1rem;height:1rem;animation:.7s linear infinite spin}.secure-row{color:#6b7280;align-items:center;gap:.75rem;margin:1.25rem 0 .875rem;font-size:12px;font-weight:600;display:flex}.secure-row:before,.secure-row:after{content:"";background:#e5e7eb;flex:1;height:1px}.role-indicators{justify-content:space-between;gap:.5rem;margin-top:1rem;display:flex}.role-indicator{flex-direction:column;flex:1;align-items:center;gap:.375rem;display:flex}.role-indicator .badge{border-radius:9999px;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex}.role-indicator .caption{color:#6b7280;font-size:.6875rem;font-weight:600}.badge-hr{color:#2563eb;background:#e8f0fe}.badge-hod{color:#166534;background:#dcfce7}.badge-dean{color:#1e3a8a;background:#e0e7ff}.badge-principal{color:#c2410c;background:#ffedd5}.badge-faculty{color:#0f766e;background:#ccfbf1}.link-primary{color:#2563eb;font-size:14px;font-weight:600;text-decoration:none;position:relative}.link-primary:hover{color:#1d4ed8}.app-shell-body{flex:1;grid-template-columns:250px minmax(0,1fr);width:100%;max-width:1600px;min-height:0;margin:0 auto;display:grid;overflow:hidden}.app-main{flex:1;min-width:0}.top-nav{display:none}.app-sidebar{color:#475569;overscroll-behavior:contain;background:#fff;border-right:1px solid #e2e8f0;align-self:stretch;height:100%;max-height:100%;padding:1rem .75rem 1.5rem;display:block;overflow:hidden auto;box-shadow:1px 0 3px #0000000a}.sidebar-sticky-inner{flex-direction:column;gap:4px;min-height:100%;display:flex}.sidebar-nav-links{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar-nav-group{flex-direction:column;gap:2px;margin-bottom:.55rem;display:flex}.sidebar-section-heading{letter-spacing:.1em;text-transform:uppercase;color:#94a3b8;padding:.55rem .9rem .25rem;font-size:.62rem;font-weight:700}@media (width<=959px){.app-shell-body{grid-template-columns:1fr}.app-sidebar{display:none}}.sidebar-nav-label{letter-spacing:.12em;text-transform:uppercase;color:#94a3b8;border-bottom:1px solid #e2e8f0;margin-bottom:.35rem;padding:.35rem .9rem .85rem;font-size:.68rem;font-weight:700}.sidebar-link{color:#475569;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.65rem;width:100%;padding:11px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex;position:relative}.sidebar-link:hover{color:#1e3a8a;background:#f1f5f9}.sidebar-link.is-active{color:#1e3a8a;background:#e8f0fe;font-weight:600}.sidebar-link.is-active:before{content:"";background:#1e3a8a;border-radius:0 2px 2px 0;width:3px;position:absolute;top:8px;bottom:8px;left:0}.faculty-directory-panel{padding-top:.5rem}.faculty-drims-table .faculty-id{color:#0f172a;font-weight:700}.dept-italic{color:#64748b;font-size:.9rem;font-style:italic}.count-badge{color:#fff;background:#2563eb;border-radius:999px;justify-content:center;align-items:center;min-width:32px;height:32px;padding:0 8px;font-size:.8rem;font-weight:700;display:inline-flex}.open-profile-link{color:#2563eb;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:.78rem;font-weight:700;text-decoration:none}.open-profile-link:hover{color:#1e3a8a;text-decoration:underline}.app-content{overscroll-behavior:contain;background:#f8fafc;min-width:0;height:100%;min-height:0;padding:28px 28px 40px;overflow:hidden auto}@media (width<=639px){.app-content{padding:16px 12px 24px}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.page-header h1{color:#0f172a;margin:0;font-family:Poppins,sans-serif;font-size:1.45rem;font-weight:700}.page-header p{color:#64748b;margin:.35rem 0 0;font-size:.9rem}.bar-chart{gap:.75rem;display:grid}.bar-chart-row{grid-template-columns:minmax(64px,110px) 1fr 48px;align-items:center;gap:.65rem;display:grid}.bar-chart-label{color:#475569;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:600;overflow:hidden}.bar-chart-track{background:#e2e8f0;border-radius:999px;height:10px;overflow:hidden}.bar-chart-track.stacked{display:flex}.bar-chart-fill{border-radius:999px;min-width:2px;height:100%;transition:width .35s}.bar-chart-track.stacked .bar-chart-fill{border-radius:0}.bar-chart-value{color:#0f172a;text-align:right;font-size:.78rem;font-weight:700}.donut-wrap{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.donut{border-radius:50%;width:120px;height:120px;-webkit-mask:radial-gradient(circle,#0000 48%,#000 49%);mask:radial-gradient(circle,#0000 48%,#000 49%)}.donut-legend{color:#475569;gap:.45rem;margin:0;padding:0;font-size:.85rem;list-style:none;display:grid}.donut-legend li{align-items:center;gap:.45rem;display:flex}.donut-legend span{border-radius:2px;flex-shrink:0;width:10px;height:10px}.list-card{background:#fff;border:1px solid #d5dee8;border-radius:.85rem;flex-wrap:wrap;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;display:flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem 1rem;display:grid}@media (width<=640px){.form-grid{grid-template-columns:1fr}}.plain-list{margin:0;padding-left:1.1rem;font-size:.875rem}.plain-list li{margin-bottom:.35rem}.admin-committees-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1.25rem;display:grid}@media (width<=980px){.admin-committees-grid{grid-template-columns:1fr}}.crud-column{flex-direction:column;gap:0;min-width:0;display:flex}.crud-column .panel{margin-bottom:1rem}.crud-column .panel:last-child{margin-bottom:0}.field-label{color:#475569;gap:.35rem;font-size:.8rem;font-weight:600;display:grid}.field-label>span{letter-spacing:.02em}.form-grid-stacked{grid-template-columns:1fr;gap:.75rem}.form-actions{justify-content:flex-end;padding-top:.15rem;display:flex}.form-actions .btn{min-width:6.5rem}.role-roster{gap:.5rem;max-height:min(62vh,560px);margin:0;padding:0;list-style:none;display:grid;overflow:auto}.role-roster-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin:0;padding:.7rem .85rem;transition:background .15s,border-color .15s}.role-roster-item:hover{background:#fff;border-color:#cbd5e1}.role-roster-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.role-roster-main{flex:12rem;gap:.15rem;min-width:0;display:grid}.role-roster-main strong{color:#0f172a;font-size:.9rem;font-weight:600;line-height:1.3}.role-roster-sub{color:#64748b;font-size:.78rem;line-height:1.35}.role-badge{color:#1e3a8a;white-space:nowrap;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;align-items:center;max-width:100%;padding:.28rem .65rem;font-size:.72rem;font-weight:700;display:inline-flex}.meta-chip-danger{color:#991b1b;background:#fef2f2;border-color:#fecaca}.meta-chip-ok{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.balancing-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1.25rem;margin-bottom:.25rem;display:grid}@media (width<=980px){.balancing-grid{grid-template-columns:1fr}}.balance-roster{gap:.5rem;max-height:min(58vh,520px);margin:0;padding:0;list-style:none;display:grid;overflow:auto}.balance-roster-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.7rem .85rem;display:flex}.balance-roster-item.is-overload{background:#fff7f7;border-color:#fecaca}.balance-roster-item.is-under{background:#f8fbff;border-color:#bfdbfe}.balance-roster-main{flex:12rem;gap:.12rem;min-width:0;display:grid}.balance-roster-main strong{color:#0f172a;font-size:.9rem;font-weight:600;line-height:1.3}.balance-roster-sub{color:#64748b;font-size:.75rem}.balance-metrics{align-items:center;gap:.4rem;display:flex}.balance-hours{font-variant-numeric:tabular-nums;color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:.28rem .65rem;font-size:.9rem;font-weight:700}.balance-hours.is-overload{color:#991b1b;background:#fef2f2;border-color:#fecaca}.balance-capacity{font-variant-numeric:tabular-nums;color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;padding:.28rem .55rem;font-size:.72rem;font-weight:700}.balance-suggestions{gap:.75rem;display:grid}.balance-suggestion-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;gap:.7rem;padding:.9rem 1rem;display:grid}.balance-suggestion-move{grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;display:grid}@media (width<=720px){.balance-suggestion-move{grid-template-columns:1fr}}.balance-suggestion-party{gap:.15rem;min-width:0;display:grid}.balance-suggestion-label{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:.7rem;font-weight:700}.balance-suggestion-party strong{color:#0f172a;font-size:.9rem}.balance-suggestion-nums{font-variant-numeric:tabular-nums;color:#475569;font-size:.78rem}.balance-suggestion-arrow{color:#1e3a8a;text-align:center;white-space:nowrap;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:.35rem .7rem;font-size:.8rem;font-weight:700}.balance-suggestion-reason{color:#64748b;margin:0;font-size:.8rem}.balance-suggestion-actions{justify-content:flex-end;display:flex}.meta-chip{background:#eef2f6;border:1px solid #d5dee8;border-radius:999px;padding:.25rem .55rem;font-size:.72rem;font-weight:700}.code-block{background:#f4f7fb;border-radius:.75rem;margin-top:.85rem;padding:.75rem;font-size:.75rem;overflow:auto}.profile-form{gap:.85rem;display:grid}.profile-form label{color:#334155;gap:.35rem;font-size:.85rem;font-weight:600;display:grid}.profile-hero-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;align-items:center;gap:1.5rem 2rem;margin-bottom:1.25rem;padding:1.5rem 1.75rem;display:flex;box-shadow:0 1px 3px #0f172a0f}.profile-avatar-edit{flex-shrink:0;width:112px;height:112px;position:relative}.profile-avatar-circle{object-fit:cover;background:#e2e8f0;border:3px solid #3b82f6;border-radius:50%;width:112px;height:112px;display:block}.profile-avatar-fallback{color:#fff;letter-spacing:.02em;background:#1e3a8a;justify-content:center;align-items:center;font-size:1.6rem;font-weight:700;display:flex}.profile-edit-badge{color:#64748b;cursor:pointer;background:#fff;border:2px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:.75rem;display:inline-flex;position:absolute;bottom:2px;right:2px;box-shadow:0 2px 6px #0f172a1f}.profile-edit-badge:hover:not(:disabled){color:#1e3a8a;border-color:#93c5fd}.profile-edit-badge:disabled{opacity:.6;cursor:not-allowed}.profile-hero-meta{flex:1;min-width:0}.profile-hero-name{color:#0f172a;align-items:center;gap:.5rem;margin:0 0 .45rem;font-family:Poppins,sans-serif;font-size:1.35rem;font-weight:700;display:flex}.profile-name-edit-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:.15rem;font-size:.8rem}.profile-name-edit-btn:hover{color:#2563eb}.profile-hero-meta>p{color:#64748b;margin:.15rem 0;font-size:.95rem;line-height:1.45}.profile-name-edit{gap:.5rem;max-width:360px;margin-bottom:.5rem;display:grid}.dash-hero{color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:24px;padding:24px 28px;animation:.4s both fadeUp;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000000d}.dash-hero:after{display:none}.dash-hero-inner{z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:relative}.dash-hero-user{align-items:center;gap:1rem;min-width:0;display:flex}.dash-hero h1{color:#1e293b;letter-spacing:-.5px;margin:0;font-family:Poppins,sans-serif;font-size:24px;font-weight:700}.dash-hero p{color:#64748b;margin:.25rem 0 0;font-size:13px;font-weight:500}.dash-hero-user>div>p:first-child{color:#1e3a8a!important;letter-spacing:1px!important;font-size:11px!important}.btn{cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:.4rem;padding:8px 18px;font-family:Poppins,sans-serif;font-size:13px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{width:auto;min-height:auto;margin-top:0}.btn-secondary{color:#1e3a8a;background:#fff;border-color:#cbd5e1}.btn-secondary:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.btn-ghost{color:#fff;background:#dc2626;border-color:#0000;box-shadow:0 1px 2px #dc26261a}.btn-ghost:hover:not(:disabled){background:#b91c1c;box-shadow:0 2px 4px #dc262633}.btn-success{color:#fff;background:#166534}.btn-danger{color:#fff;background:#dc2626}.btn-warn{color:#fff;background:#d97706}.filter-bar{flex-wrap:wrap;gap:10px;margin:0 0 18px;display:flex}.filter-bar .dash-input{flex:1;min-width:140px}.workload-filters{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (width<=1099px){.workload-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=719px){.workload-filters{grid-template-columns:1fr}}.filter-field{flex-direction:column;gap:6px;min-width:0;display:flex}.filter-field>span{letter-spacing:.04em;text-transform:uppercase;color:#64748b;font-size:11px;font-weight:700}.panel-meta{color:#64748b;font-size:12px;font-weight:600}.compact-table th,.compact-table td{padding-top:10px;padding-bottom:10px}.kpi-group-title{letter-spacing:.5px;text-transform:uppercase;color:#64748b;margin:0 0 10px;font-size:12px;font-weight:700}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}@media (width<=899px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.stat-grid{grid-template-columns:1fr}}.stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:20px;animation:.45s both fadeUp;box-shadow:0 1px 2px #0000000d}.stat-card .label{letter-spacing:.5px;text-transform:uppercase;color:#64748b;font-size:12px;font-weight:600}.stat-card .value{color:#1e3a8a;margin-top:8px;font-family:Poppins,sans-serif;font-size:28px;font-weight:700;line-height:1.1}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:24px;padding:24px;animation:.5s both fadeUp;box-shadow:0 1px 2px #0000000d}.panel-head{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:16px;padding-bottom:12px;display:flex}.panel-head h2{color:#1e293b;margin:0;font-family:Poppins,sans-serif;font-size:18px;font-weight:600}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th{text-align:left;letter-spacing:.4px;text-transform:uppercase;color:#64748b;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:12px 16px;font-size:12px;font-weight:600}.data-table td{vertical-align:middle;color:#334155;border-bottom:1px solid #f1f5f9;padding:14px 16px}.data-table tr:hover td{background:#f8fafc}.person-cell{align-items:center;gap:12px;min-width:0;display:flex}.person-meta{min-width:0}.person-meta strong{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;display:block;overflow:hidden}.person-meta span{color:#64748b;white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.avatar-wrap{flex-shrink:0;display:inline-flex;position:relative}.avatar{object-fit:cover;background:linear-gradient(135deg,#1e3a8a 0%,#3b82f6 100%);border:2px solid #bfdbfe;border-radius:50%;flex-shrink:0;width:44px;height:44px;box-shadow:0 1px 4px #00000014}.avatar-lg{border-radius:50%;width:72px;height:72px}.profile-photo-editor{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.profile-photo-actions{flex:1;min-width:220px}.profile-photo-actions p{color:#64748b;margin:0 0 .75rem;font-size:.875rem;line-height:1.45}.dash-input{color:#0f172a;background:#fff;border:1px solid #d5dee8;border-radius:.55rem;width:100%;min-height:42px;padding:.5rem .75rem;font-family:inherit;font-size:.875rem}.dash-input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1f}.status-pill{letter-spacing:.4px;text-transform:uppercase;border-radius:4px;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.status-normal{color:#166534;background:#dcfce7}.status-overload{color:#991b1b;background:#fee2e2}.status-underload{color:#9a3412;background:#ffedd5}.status-indeterminate,.status-pending{color:#334155;background:#e2e8f0}.status-info{color:#1e3a8a;background:#dbeafe}.status-approved{color:#166534;background:#dcfce7}.status-rejected{color:#991b1b;background:#fee2e2}.source-pill{letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;border-radius:4px;align-items:center;padding:3px 8px;font-size:10px;font-weight:700;display:inline-flex}.source-real{color:#1e3a8a;background:#dbeafe}.source-demo{color:#92400e;background:#fef3c7}.alert-banner{color:#1e3a8a;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;margin-bottom:16px;padding:12px 16px;font-size:14px;font-weight:500}.grid-2{grid-template-columns:1.2fr .8fr;gap:24px;display:grid}@media (width<=959px){.grid-2{grid-template-columns:1fr}}.empty-state{color:#64748b;padding:.5rem 0;font-size:14px}.mobile-nav{-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:8px;margin-bottom:4px;padding-bottom:12px;display:none;overflow-x:auto}@media (width<=959px){.mobile-nav{display:flex}}.mobile-nav span,.mobile-nav button,.mobile-nav a{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:4px;flex-shrink:0;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none}.mobile-nav span[data-active=true],.mobile-nav button[data-active=true],.mobile-nav a.is-active{color:#1e3a8a;background:#e8f0fe;border-color:#bfdbfe;font-weight:600}}@layer utilities{.sticky{position:sticky}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-12{width:calc(var(--spacing) * 12)}.w-\[2\.4rem\]{width:2.4rem}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-\[380px\]{max-width:380px}.max-w-sm{max-width:var(--container-sm)}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-4{gap:calc(var(--spacing) * 4)}.self-center{align-self:center}.overflow-x-auto{overflow-x:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[2px\]{border-radius:2px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-border{border-color:var(--color-border)}.bg-\[\#1e88e5\]{background-color:#1e88e5}.bg-primary{background-color:var(--color-primary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.p-8{padding:calc(var(--spacing) * 8)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-\[5px\]{padding-block:5px}.pt-6{padding-top:calc(var(--spacing) * 6)}.text-center{text-align:center}.font-display{font-family:var(--font-display)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.52rem\]{font-size:.52rem}.text-\[1\.45rem\]{font-size:1.45rem}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.text-\[\#e30613\]{color:#e30613}.text-ink{color:var(--color-ink)}.text-muted{color:var(--color-muted)}.text-primary{color:var(--color-primary)}.text-slate-400{color:var(--color-slate-400)}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.uppercase{text-transform:uppercase}.opacity-90{opacity:.9}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media (hover:hover){.hover\:bg-primary-dark:hover{background-color:var(--color-primary-dark)}}@media (width>=40rem){.sm\:h-\[3\.35rem\]{height:3.35rem}.sm\:w-12{width:calc(var(--spacing) * 12)}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-\[0\.6rem\]{font-size:.6rem}.sm\:text-\[1\.85rem\]{font-size:1.85rem}}@media (width>=48rem){.md\:block{display:block}.md\:items-start{align-items:flex-start}.md\:justify-start{justify-content:flex-start}.md\:text-left{text-align:left}.md\:text-\[2rem\]{font-size:2rem}}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=767px){.brand-illustration{display:none}.app-header-inner{text-align:center;grid-template-columns:1fr;gap:10px;padding:10px 16px}.header-logo-link{justify-content:center}.header-product{flex-wrap:wrap;justify-content:center}.header-product .text-primary,.header-product .text-ink{font-size:20px!important}.header-divider{height:28px}.header-logo-img{max-width:min(70vw,220px);height:40px}.login-main{padding:20px 12px}.login-shell{border-radius:16px;min-height:auto}.form-panel h2{font-size:22px}}.sidebar-user-card{color:inherit;background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:.7rem;margin:0 .35rem .65rem;padding:.65rem .85rem;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.sidebar-user-card--footer{margin-top:auto;margin-bottom:.25rem}.sidebar-user-card:hover{border-color:#cbd5e1;box-shadow:0 1px 2px #0f172a0f}.sidebar-user-meta{flex-direction:column;min-width:0;display:flex}.sidebar-user-meta strong{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.sidebar-user-meta span{color:#64748b;font-size:.72rem}.class-type-badge{letter-spacing:.04em;color:#334155;background:#f1f5f9;border-radius:999px;justify-content:center;align-items:center;min-width:1.6rem;padding:.15rem .45rem;font-size:.72rem;font-weight:700;display:inline-flex}.class-type-badge.is-l{color:#1d4ed8;background:#dbeafe}.class-type-badge.is-t{color:#b45309;background:#fef3c7}.class-type-badge.is-p{color:#15803d;background:#dcfce7}.workload-hours-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.55rem;margin:.35rem 0 .75rem;display:grid}.workload-hours-chip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.55rem .7rem}.workload-hours-chip .label{text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-size:.68rem;font-weight:600}.workload-hours-chip .value{color:#0f172a;margin-top:.15rem;font-size:.95rem;font-weight:700}.alloc-preview-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-top:.35rem;padding:.85rem 1rem}.alloc-preview-card h3{color:#1e3a8a;margin:0 0 .55rem;font-size:.9rem}.alloc-preview-meta{color:#334155;gap:.25rem;font-size:.85rem;display:grid}.alloc-specific-row{flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.7rem;display:flex}.alloc-compare-meta{color:#475569;margin:.35rem 0 .55rem;font-size:.86rem}.alloc-recommend-badge{letter-spacing:.02em;text-transform:uppercase;color:#166534;vertical-align:middle;background:#dcfce7;border-radius:4px;margin-left:.45rem;padding:.1rem .4rem;font-size:.68rem;font-weight:700;display:inline-block}.row-recommended td{background:#f0fdf4}.alloc-confirm-modal{max-width:420px}.alloc-recommend-block{margin-top:.75rem}.alloc-recommend-block h4{color:#0f172a;margin:0 0 .45rem;font-size:.92rem}.header-avatar-link{align-items:center;display:inline-flex}.skeleton-table{gap:.45rem;display:grid}.skeleton-row{grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:.45rem;display:grid}.skeleton-cell{background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9 50%,#e2e8f0 75%) 0 0/200% 100%;border-radius:6px;height:14px;animation:1.2s linear infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.pager{align-items:center;gap:.75rem;margin-top:.85rem;font-size:.85rem;display:flex}.pager-numbered{flex-wrap:wrap;justify-content:flex-start;gap:.5rem .65rem}.pager-pages{flex-wrap:wrap;align-items:center;gap:.25rem;display:inline-flex}.pager-page{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;min-width:2rem;height:2rem;padding:0 .45rem;font-size:.82rem;font-weight:600}.pager-page:hover{background:#f8fafc;border-color:#94a3b8}.pager-page.is-active{color:#fff;background:#1e3a8a;border-color:#1e3a8a}.pager-ellipsis{color:#94a3b8;padding:0 .15rem;font-weight:700}.pager-meta{color:#64748b;margin-left:auto;font-size:.78rem}.btn-sm{padding:.35rem .7rem!important;font-size:.78rem!important;line-height:1.2!important}.row-selected td{background:#eff6ff}.report-filter-grid,.alloc-form-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:.75rem 1rem;display:grid}@media (width<=1100px){.report-filter-grid,.alloc-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.report-filter-grid,.alloc-form-grid{grid-template-columns:1fr}}.timetable-grid-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow-x:auto}.timetable-grid{border-collapse:collapse;width:100%;min-width:720px;font-size:.78rem}.timetable-grid th,.timetable-grid td{vertical-align:top;border:1px solid #e2e8f0;min-width:110px;padding:.45rem}.timetable-grid thead th{color:#334155;text-align:center;background:#f8fafc;font-weight:700}.timetable-grid tbody th{text-align:center;background:#f1f5f9;width:72px;font-weight:700}.tt-cell{background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;gap:.1rem;margin-bottom:.3rem;padding:.35rem .4rem;display:grid}.tt-cell-demo{background:#fefce8;border-style:dashed;border-color:#fde68a}.tt-row-demo td{background:#fffbeb}.tt-cell strong{color:#1e3a8a}.tt-cell span{color:#475569;line-height:1.25}.tt-empty{color:#cbd5e1;text-align:center;display:block}.unlock-compact{flex-wrap:wrap;align-items:center;gap:.45rem;display:inline-flex}.unlock-compact-form{flex-wrap:wrap;align-items:center;gap:.4rem;display:inline-flex}.unlock-compact-form .dash-input{min-width:10rem;max-width:14rem;padding:.35rem .55rem;font-size:.82rem}.compact-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.compact-list li{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:.15rem;padding:.55rem .65rem;display:flex}.compact-list li span{color:#64748b;font-size:.8rem}.profile-modal-backdrop{z-index:80;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.profile-modal{background:#fff;border:1px solid #e2e8f0;border-radius:12px;width:min(480px,100%);padding:1.15rem 1.25rem 1.25rem;box-shadow:0 18px 48px #0f172a2e}.profile-modal-wide{width:min(720px,100%);max-height:min(90vh,900px);overflow:auto}.profile-edit-form{gap:.75rem;display:grid}.profile-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem .75rem;display:grid}@media (width<=640px){.profile-edit-grid{grid-template-columns:1fr}}.profile-edit-textarea{resize:vertical;min-height:4.5rem}.profile-modal h3{color:#0f172a;margin:0 0 .85rem;font-size:1.05rem}.profile-modal-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.profile-hero-actions{flex-wrap:wrap;gap:.45rem;margin-top:.35rem;display:flex}.profile-detail-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem 1.25rem;margin-top:.5rem;display:grid}.profile-detail-grid dt{text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin:0;font-size:.72rem}.profile-detail-grid dd{color:#0f172a;margin:.15rem 0 0;font-weight:600}.profile-hero-rich{align-items:flex-start}.profile-hero-title{text-transform:uppercase;letter-spacing:.04em;color:#1e3a8a!important;margin:.15rem 0 0!important;font-size:.82rem!important;font-weight:700!important}.profile-hero-dept{color:#475569!important;margin:.25rem 0 .55rem!important;font-weight:500!important}.profile-hero-contacts{color:#334155;flex-wrap:wrap;gap:.75rem 1.25rem;margin-bottom:.75rem;font-size:.88rem;display:flex}.profile-hero-contacts span{align-items:center;gap:.4rem;display:inline-flex}.profile-hero-contacts i{color:#1e3a8a}.profile-workload-badge{background:linear-gradient(#eff6ff 0%,#f8fafc 100%);border:1px solid #bfdbfe;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.35rem;min-width:160px;margin-left:auto;padding:.9rem 1rem;display:flex}.profile-workload-label{text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-size:.7rem;font-weight:700}.profile-workload-badge strong{color:#0f172a;font-size:1.75rem;line-height:1}.profile-workload-norm{color:#64748b;font-size:.75rem}.profile-load-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1.15rem;display:grid}.profile-load-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:.25rem;padding:.85rem 1rem;display:flex}.profile-load-card span{text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:.72rem;font-weight:700}.profile-load-card strong{color:#0f172a;font-size:1.35rem}.profile-section-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1.15rem;display:grid}.profile-section-wide{grid-column:1/-1}.profile-section-card .panel-head h2{font-size:.98rem}.profile-chip-list{flex-wrap:wrap;gap:.45rem;margin:0;padding:.35rem 0 .15rem;list-style:none;display:flex}.profile-chip{color:#1e3a8a;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;align-items:center;padding:.35rem .7rem;font-size:.82rem;font-weight:600;display:inline-flex}.profile-timeline{flex-direction:column;gap:.7rem;margin:0;padding:.25rem 0 0;list-style:none;display:flex}.profile-timeline li{border-left:3px solid #93c5fd;flex-direction:column;gap:.15rem;padding-left:.85rem;display:flex}.profile-timeline strong{color:#0f172a;font-size:.9rem;line-height:1.35}.profile-timeline span{color:#64748b;font-size:.78rem;font-weight:600}@media (width<=900px){.profile-load-grid,.profile-section-grid{grid-template-columns:1fr}.profile-workload-badge{width:100%;margin-left:0}}.activity-analytics.grid-2{margin-bottom:0}.demo-notice{align-items:flex-start;gap:.65rem;display:flex}.demo-notice i{color:#1e3a8a;margin-top:.15rem}.chip-row{flex-wrap:wrap;gap:.4rem;display:flex}.filter-chip{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:.28rem .75rem;font-family:inherit;font-size:.75rem;font-weight:600}.filter-chip.is-active{color:#1e3a8a;background:#e8f0fe;border-color:#bfdbfe}.activity-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}@media (width<=719px){.activity-card-grid{grid-template-columns:1fr}}.activity-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:.7rem;min-width:0;padding:1rem 1.1rem .95rem;animation:.45s both fadeUp;display:flex}.activity-card.is-loading{min-height:160px}.activity-card-top{justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.activity-card-tags{flex-wrap:wrap;gap:.35rem;display:flex}.activity-card h3{color:#0f172a;margin:0;font-family:Poppins,sans-serif;font-size:1rem;font-weight:600;line-height:1.35}.activity-meta{color:#64748b;flex-wrap:wrap;gap:.45rem .9rem;margin:0;font-size:.78rem;display:flex}.activity-meta span{align-items:center;gap:.35rem;display:inline-flex}.activity-collab-label,.activity-progress-head span,.activity-foot{letter-spacing:.04em;text-transform:uppercase;color:#64748b;font-size:.72rem;font-weight:600}.activity-collab p{color:#334155;margin:.25rem 0 0;font-size:.84rem;line-height:1.4}.activity-progress-head{justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}.activity-progress-head strong{color:#1e3a8a;font-size:.8rem}.activity-foot{text-transform:none;letter-spacing:0;margin:.15rem 0 0;font-weight:500}.soft-pill{letter-spacing:.4px;text-transform:uppercase;color:#334155;background:#f1f5f9;border-radius:4px;align-items:center;padding:3px 8px;font-size:10px;font-weight:700;display:inline-flex}.trend-chart{grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:.65rem;min-height:140px;display:grid}.trend-col{flex-direction:column;align-items:center;gap:.35rem;min-width:0;display:flex}.trend-track{background:#e8f0fe;border-radius:8px 8px 4px 4px;align-items:flex-end;width:100%;max-width:28px;height:96px;display:flex;overflow:hidden}.trend-fill{background:linear-gradient(#3b82f6 0%,#1e3a8a 100%);border-radius:8px 8px 4px 4px;width:100%;min-height:6px;transition:height .45s}.trend-value{color:#1e3a8a;font-size:.72rem;font-weight:700}.trend-label{color:#64748b;font-size:.7rem;font-weight:600}.empty-illustration{color:#94a3b8;justify-items:center;gap:.4rem;padding:1.5rem 0;display:grid}.empty-illustration i{font-size:1.6rem}@media (width<=719px){.activity-card-top{flex-direction:column}.trend-chart{gap:.4rem}}.dept-card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.dept-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1.15rem 1.2rem 1.2rem;transition:border-color .2s,box-shadow .2s,transform .2s;animation:.45s both fadeUp;position:relative;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.dept-card:before{content:"";background:linear-gradient(#1e3a8a 0%,#2563eb 100%);width:4px;position:absolute;top:0;bottom:0;left:0}.dept-card:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 8px 20px #1e3a8a14}.dept-card-top{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.65rem;display:flex}.dept-card-code{color:#1e3a8a;letter-spacing:.04em;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;justify-content:center;align-items:center;min-width:3.25rem;padding:.35rem .65rem;font-family:Poppins,sans-serif;font-size:.85rem;font-weight:700;display:inline-flex}.dept-card-faculty{color:#64748b;white-space:nowrap;font-size:.78rem;font-weight:600}.dept-card-name{color:#0f172a;margin:0 0 .35rem;font-family:Poppins,sans-serif;font-size:.98rem;font-weight:600;line-height:1.35}.dept-card-school{color:#64748b;margin:0 0 1rem;font-size:.78rem;font-weight:500}.dept-card-stats{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.dept-pill{border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:.15rem;padding:.55rem .35rem;display:flex}.dept-pill-value{font-size:1.05rem;font-weight:700;line-height:1}.dept-pill-label{text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:600}.dept-pill-normal{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.dept-pill-over{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.dept-pill-under{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}@media (width<=640px){.dept-card-grid{grid-template-columns:1fr}}.principal-metric-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1rem}.metric-card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.metric-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1.1rem 1.15rem 1.15rem;transition:border-color .2s,box-shadow .2s,transform .2s;animation:.45s both fadeUp;position:relative;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.metric-card:before{content:"";width:4px;position:absolute;top:0;bottom:0;left:0}.metric-card-over:before{background:linear-gradient(#dc2626 0%,#f87171 100%)}.metric-card-under:before{background:linear-gradient(#1d4ed8 0%,#60a5fa 100%)}.metric-card:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 8px 20px #0f172a14}.metric-card-top{justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.55rem;display:flex}.metric-card-code{letter-spacing:.04em;border-radius:6px;justify-content:center;align-items:center;min-width:3.1rem;padding:.3rem .55rem;font-family:Poppins,sans-serif;font-size:.82rem;font-weight:700;display:inline-flex}.metric-card-over .metric-card-code{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.metric-card-under .metric-card-code{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.metric-card-badge{text-transform:uppercase;letter-spacing:.05em;font-size:.68rem;font-weight:700}.metric-card-over .metric-card-badge{color:#b91c1c}.metric-card-under .metric-card-badge{color:#1d4ed8}.metric-card-name{color:#0f172a;min-height:2.4em;margin:0 0 .85rem;font-size:.9rem;font-weight:600;line-height:1.35}.metric-card-count{border-top:1px solid #f1f5f9;align-items:baseline;gap:.45rem;padding-top:.75rem;display:flex}.metric-card-count strong{color:#0f172a;font-family:Poppins,sans-serif;font-size:1.65rem;font-weight:700;line-height:1}.metric-card-over .metric-card-count strong{color:#b91c1c}.metric-card-under .metric-card-count strong{color:#1d4ed8}.metric-card-count span{color:#64748b;font-size:.78rem;font-weight:500}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.period-chip{color:#334155;letter-spacing:.02em;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;align-items:center;padding:.2rem .55rem;font-size:.78rem;font-weight:600;display:inline-flex}.principal-trends-table .num-cell{font-variant-numeric:tabular-nums;color:#0f172a;font-weight:600}@media (width<=640px){.metric-card-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.login-shell,.dash-hero,.stat-card,.panel,.activity-card,.skeleton-cell,.trend-fill,.bar-chart-fill,.dept-card,.metric-card{animation:none}}.request-card-list{gap:.55rem;display:grid}.request-card{background:linear-gradient(#fff 0%,#f8fafc 100%);border:1px solid #e2e8f0;border-radius:10px;padding:.7rem .8rem}.request-card-top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.request-card-top strong{color:#0f172a;font-size:.88rem}.request-card-meta{color:#64748b;flex-wrap:wrap;gap:.55rem .85rem;font-size:.78rem;display:flex}.request-card-meta i{opacity:.8;margin-right:.25rem}.priority-chip{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;align-items:center;padding:.1rem .5rem;font-size:.7rem;font-weight:700;display:inline-flex}.priority-chip.priority-high{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.priority-chip.priority-medium{color:#b45309;background:#fffbeb;border-color:#fde68a}.workload-highlight-panel{margin-bottom:.85rem}.workload-highlight-panel>.panel{background:linear-gradient(#f8fbff 0%,#fff 55%);border-color:#bfdbfe;box-shadow:0 0 0 1px #2563eb14}.workload-highlight-grid{margin:0}.profile-hero-compact{margin-bottom:.85rem;padding:.85rem 1rem}.profile-hero-compact .profile-hero-meta>p{margin:.15rem 0}.muted-line{color:#64748b;margin-top:.1rem;font-size:.75rem}.report-settings-panel{position:relative;overflow:visible}.report-settings-panel.is-menu-open{z-index:60}.report-generate-wrap{z-index:1;display:inline-flex;position:relative}.report-generate-menu{z-index:80;background:#fff;border:1px solid #dbe3ef;border-radius:8px;gap:.15rem;min-width:15.5rem;padding:.4rem;display:grid;position:absolute;top:calc(100% + .4rem);left:auto;right:0;box-shadow:0 4px 6px -1px #0f172a14,0 16px 28px -8px #0f172a2e}.report-generate-menu-label{letter-spacing:.06em;text-transform:uppercase;color:#64748b;border-bottom:1px solid #eef2f7;margin-bottom:.2rem;padding:.35rem .65rem .45rem;font-size:.68rem;font-weight:700}.report-generate-menu button{appearance:none;text-align:left;font:inherit;color:#0f172a;cursor:pointer;background:0 0;border:0;border-radius:6px;gap:.12rem;width:100%;padding:.6rem .7rem;display:grid}.report-generate-menu button:hover,.report-generate-menu button:focus-visible{background:#f1f5f9;outline:none}.report-generate-menu button:disabled{opacity:.55;cursor:not-allowed}.report-generate-item-title{color:#0f172a;font-size:.88rem;font-weight:600;line-height:1.2}.report-generate-item-desc{color:#64748b;font-size:.72rem;font-weight:500;line-height:1.25}.report-table-wrap{overflow-x:auto}.report-data-table{table-layout:fixed;width:100%}.report-data-table th,.report-data-table td{vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;padding-top:.55rem;padding-bottom:.55rem;overflow:hidden}.report-data-table .report-col-name{white-space:normal;max-width:11rem;line-height:1.25}.report-data-table .num-cell{font-variant-numeric:tabular-nums;text-align:right}.report-actions{z-index:2;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.55rem;margin-top:.85rem;display:flex;position:relative;overflow:visible}.hod-personal,.faculty-personal{gap:.85rem;display:grid}.hod-personal .hod-kpi-grid,.faculty-personal .hod-kpi-grid{margin-bottom:0}.hod-filter-row{margin-bottom:.85rem}.hod-dash-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}@media (width<=960px){.hod-dash-grid{grid-template-columns:1fr}}.hod-clip{text-overflow:ellipsis;white-space:nowrap;max-width:14rem;overflow:hidden}.hod-mix-wrap{gap:.65rem;display:grid}.hod-personal .hod-mix-wrap .chart-panel,.hod-personal .hod-dash-grid>.panel .chart-panel,.faculty-personal .hod-mix-wrap .chart-panel,.faculty-personal .hod-dash-grid>.panel .chart-panel{box-shadow:none;background:0 0;border:none;margin:0;padding:0}.hod-personal .hod-mix-wrap .chart-panel .panel-head,.hod-personal .hod-dash-grid>.panel .chart-panel .panel-head,.faculty-personal .hod-mix-wrap .chart-panel .panel-head,.faculty-personal .hod-dash-grid>.panel .chart-panel .panel-head{display:none}.hod-mini-bars{gap:.45rem;display:grid}.hod-mini-bar-row{grid-template-columns:4.5rem 1fr 2.4rem;align-items:center;gap:.45rem;font-size:.85rem;display:grid}.hod-mini-bar-track{background:#e2e8f0;border-radius:999px;height:.45rem;overflow:hidden}.hod-mini-bar-fill{border-radius:999px;height:100%}.hod-progress-wrap{margin-top:.75rem}.hod-progress-meta{flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.4rem;display:flex}.hod-progress-meta strong{font-variant-numeric:tabular-nums;margin-left:auto}.hod-progress-track{background:#e2e8f0;border-radius:999px;height:.55rem;overflow:hidden}.hod-progress-fill{background:#2563eb;border-radius:999px;height:100%;transition:width .25s}.hod-progress-fill.status-underload{background:#d97706}.hod-progress-fill.status-overload{background:#dc2626}.hod-progress-fill.status-normal{background:#059669}.hod-activity-list{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.hod-activity-list li{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.55rem .7rem;font-size:.9rem}.hod-view-toggle{gap:.35rem;display:flex}.hod-timetable-grid td{vertical-align:top;min-width:7.5rem}.faculty-mini-header{color:#475569;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;padding:.35rem .15rem .1rem;font-size:.88rem;display:flex}.faculty-mini-header strong{color:#0f172a;font-size:.95rem;font-weight:600}.faculty-history-filters{flex-wrap:wrap;gap:.65rem .85rem;margin-bottom:.75rem;display:flex}.faculty-history-filters .field-label{flex:1;min-width:9rem}.faculty-history-list{gap:.4rem;display:grid}.faculty-history-head{letter-spacing:.02em;text-transform:uppercase;color:#64748b;grid-template-columns:minmax(8rem,1.1fr) minmax(10rem,1.6fr) auto auto;gap:.55rem .85rem;padding:.2rem .7rem .35rem;font-size:.72rem;font-weight:600;display:grid}.faculty-history-row{background:#fff;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:minmax(8rem,1.1fr) minmax(10rem,1.6fr) auto auto;align-items:center;gap:.55rem .85rem;padding:.55rem .7rem;display:grid}.faculty-history-action{color:#0f172a;font-size:.88rem;font-weight:600}.faculty-history-subject{color:#475569;white-space:nowrap;text-overflow:ellipsis;font-size:.84rem;overflow:hidden}.faculty-history-when{color:#64748b;white-space:nowrap;font-size:.78rem}.faculty-requests-page,.faculty-req-form{gap:.85rem;display:grid}.faculty-req-type-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;display:grid}.faculty-req-type-btn{color:#334155;cursor:pointer;text-align:center;background:#fff;border:1px solid #dbe3ef;border-radius:8px;padding:.65rem .75rem;font-size:.88rem;font-weight:600;transition:border-color .15s,background .15s,color .15s}.faculty-req-type-btn:hover{background:#f8fbff;border-color:#93c5fd}.faculty-req-type-btn.is-active{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.faculty-req-details{gap:.75rem;display:grid}.faculty-req-inline{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem .85rem;display:grid}.faculty-req-reassign{gap:.65rem;padding-top:.15rem;display:grid}.faculty-req-hint{color:#94a3b8;margin-top:.3rem;font-size:.78rem;display:block}.faculty-req-workload{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;padding:.55rem .7rem;font-size:.86rem;display:flex}.faculty-req-workload strong{color:#0f172a}.faculty-req-workload span{color:#475569}.faculty-req-submit-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.faculty-req-submitted{color:#047857;font-size:.86rem;font-weight:600}.alert-banner.faculty-req-confirm{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.faculty-req-badge{letter-spacing:.02em;text-transform:uppercase;border-radius:999px;align-items:center;padding:.15rem .5rem;font-size:.72rem;font-weight:700;display:inline-flex}.faculty-req-badge.is-pending{color:#c2410c;background:#fff7ed}.faculty-req-badge.is-approved{color:#047857;background:#ecfdf5}.faculty-req-badge.is-rejected{color:#b91c1c;background:#fef2f2}.faculty-req-modal-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;display:flex}.faculty-req-modal-head h3{margin:0;font-size:1.05rem}.faculty-req-modal-dl{gap:.65rem;margin:0 0 1rem;display:grid}.faculty-req-modal-dl div{gap:.15rem;display:grid}.faculty-req-modal-dl dt{letter-spacing:.03em;text-transform:uppercase;color:#64748b;font-size:.72rem;font-weight:700}.faculty-req-modal-dl dd{color:#0f172a;margin:0;font-size:.9rem}@media (width<=840px){.faculty-req-type-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.faculty-req-inline{grid-template-columns:1fr}}@media (width<=720px){.faculty-history-head{display:none}.faculty-history-row{grid-template-columns:1fr auto}.faculty-history-subject,.faculty-history-when{grid-column:1/-1}}@media (width<=959px){.overflow-x-auto,.report-table-wrap,.timetable-grid-wrap{-webkit-overflow-scrolling:touch;margin-inline:-4px;padding-inline:4px}.data-table{min-width:640px}}@media (width<=640px){.filter-bar{flex-direction:column;align-items:stretch}.filter-bar .dash-input,.filter-bar .btn{width:100%;min-width:0}.page-header{flex-direction:column;align-items:stretch}.page-header>.btn,.panel-head>.btn{width:100%}.panel{padding:16px}.profile-modal-backdrop{align-items:flex-end;padding:12px}.profile-modal,.profile-modal-wide,.alloc-confirm-modal{border-radius:12px 12px 0 0;width:100%;max-width:100%}.stat-card{padding:14px 16px}.stat-card .value{font-size:22px}.page-header h1{font-size:1.2rem}.panel-head h2{font-size:1rem}.btn{min-height:42px}.login-role-links{justify-content:center;gap:.35rem .5rem}.mobile-nav a,.mobile-nav button,.mobile-nav span{padding:10px 14px;font-size:12px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
