*,:before,:after{box-sizing:border-box}html{min-height:100%}body{min-height:100%;margin:0}button,input,select,textarea{font:inherit}img,picture,svg,canvas{max-width:100%;display:block}a{color:inherit;text-decoration:none}:root{--erp-color-blue:#2563eb;--erp-color-teal:#0f766e;--erp-color-amber:#b45309;--erp-color-red:#dc2626;--erp-color-green:#16803c;--erp-surface:#fff;--erp-surface-muted:#f6f8fb;--erp-border:#d8dee9;--erp-text:#172033;--erp-text-muted:#536072;--erp-radius:8px;--erp-focus:#2563eb}[data-theme=dark]{--erp-surface:#182131;--erp-surface-muted:#101624;--erp-border:#2a3547;--erp-text:#f7f9fc;--erp-text-muted:#c7ced9;--erp-focus:#60a5fa}@keyframes erp-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{scrollbar-color:var(--erp-border) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--erp-border);background-clip:content-box;border:3px solid #0000;border-radius:999px}:root{color:var(--erp-text);background:var(--erp-surface-muted);font-synthesis:none;letter-spacing:0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,Segoe UI,Roboto,Arial,sans-serif}#root{min-height:100vh}body{color:var(--erp-text);background:linear-gradient(180deg, #2563eb0f, transparent 38%), var(--erp-surface-muted)}:focus-visible{outline:3px solid var(--erp-focus);outline-offset:3px}.foundation-page{place-items:center;min-height:100vh;padding:32px;display:grid}.foundation-panel{width:min(100%,760px);animation:.24s ease-out both erp-fade-in}.foundation-kicker{color:var(--erp-color-teal);text-transform:uppercase;margin:0 0 12px;font-size:.875rem;font-weight:700}.foundation-panel h1{max-width:12ch;color:var(--erp-text);letter-spacing:0;margin:0;font-size:3rem;line-height:1.12}.foundation-version,.foundation-copy{color:var(--erp-text-muted);margin:18px 0 0;font-size:1rem;line-height:1.6}@media (width<=640px){.foundation-page{place-items:start;padding:24px}.foundation-panel h1{font-size:2.25rem}}.auth-portal{--auth-primary:var(--auth-institution-primary,var(--erp-color-blue));--auth-secondary:var(--auth-institution-secondary,#7c3aed);--auth-ink:#0f172a;--auth-muted:#64748b;--auth-surface:#fff;--auth-surface-soft:#f8fafc;--auth-border:#94a3b847;--auth-shadow:0 32px 80px #0f172a24;min-height:100vh;color:var(--auth-ink);background:var(--auth-surface-soft);grid-template-columns:minmax(0,1.08fr) minmax(440px,.92fr);display:grid;overflow-x:clip}[data-theme=dark] .auth-portal{--auth-ink:#f8fafc;--auth-muted:#a7b3c5;--auth-surface:#111827;--auth-surface-soft:#0b1120;--auth-border:#94a3b833;--auth-shadow:0 32px 90px #00000061}.auth-portal--staff{--auth-secondary:var(--auth-institution-secondary,#4f46e5)}.auth-portal__hero{color:#fff;background:radial-gradient(circle at 78% 18%,#a78bfa47,#0000 25%),radial-gradient(circle at 14% 88%,#38bdf838,#0000 27%),linear-gradient(145deg,#071a3a 0%,#123b7a 46%,#5b21b6 100%);min-width:0;position:relative;overflow:hidden}.auth-portal--staff .auth-portal__hero{background:radial-gradient(circle at 84% 14%,#60a5fa29,#0000 24%),linear-gradient(145deg,#091426 0%,#172b4d 54%,#283b68 100%)}.auth-portal__background{object-fit:cover;opacity:.16;mix-blend-mode:luminosity;width:100%;height:100%;position:absolute;inset:0}.auth-portal__hero:before{content:"";background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000000d9,#0000 92%);mask-image:linear-gradient(#000000d9,#0000 92%)}.auth-portal__hero-inner{z-index:1;grid-template-rows:auto auto 1fr auto;gap:clamp(34px,5vh,64px);max-width:980px;min-height:100vh;margin-inline:auto;padding:clamp(32px,5vw,76px);display:grid;position:relative}.auth-brand{align-items:center;gap:14px;display:flex}.auth-brand .auth-brand__logo{color:#fff;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffff24;border:1px solid #ffffff4d;width:52px;height:52px;box-shadow:0 12px 36px #0208172e}.auth-brand div{gap:3px;display:grid}.auth-brand strong{text-overflow:ellipsis;white-space:nowrap;max-width:34ch;font-size:1rem;overflow:hidden}.auth-brand span{color:#ffffffb3;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:700}.auth-portal__hero-copy{max-width:690px;animation:.52s cubic-bezier(.16,1,.3,1) both auth-rise}.auth-eyebrow{color:#ffffffe6;letter-spacing:.13em;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff17;border:1px solid #fff3;border-radius:999px;margin-bottom:20px;padding:7px 12px;font-size:.72rem;font-weight:800;display:inline-flex}.auth-portal__hero-copy h1{letter-spacing:-.055em;max-width:12ch;margin:0;font-size:clamp(2.8rem,5.8vw,5.8rem);font-weight:800;line-height:.98}.auth-portal--staff .auth-portal__hero-copy h1{letter-spacing:-.045em;max-width:13ch;font-size:clamp(2.7rem,5vw,5.2rem)}.auth-portal__hero-copy>p{color:#ffffffbd;max-width:57ch;margin:24px 0 0;font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.75}.auth-academic-context{gap:12px;margin:32px 0 0;display:flex}.auth-academic-context div{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff14;border:1px solid #ffffff24;border-radius:16px;min-width:150px;padding:14px 16px}.auth-academic-context dt{color:#ffffff9e;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:800}.auth-academic-context dd{margin:5px 0 0;font-size:.95rem;font-weight:800}.auth-security-note{align-items:flex-start;gap:12px;display:flex}.auth-security-note--hero{background:#ffffff12;border:1px solid #ffffff24;border-radius:14px;max-width:510px;margin-top:30px;padding:16px 18px}.auth-security-note div{gap:4px;display:grid}.auth-security-note span{color:#ffffff94;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:800}.auth-security-note strong{color:#ffffffe6;font-size:.86rem;line-height:1.55}.auth-artwork{align-self:end;min-height:240px;position:relative}.auth-artwork__image{object-fit:contain;filter:drop-shadow(0 35px 50px #00000038);width:min(90%,680px);max-height:360px;position:absolute;bottom:0;right:0}.auth-artwork__orb{filter:blur(1px);border-radius:50%;position:absolute}.auth-artwork__orb--one{background:linear-gradient(145deg,#a78bfa73,#38bdf81f);width:230px;height:230px;bottom:4%;right:5%}.auth-artwork__orb--two{background:#ffffff14;border:1px solid #fff3;width:88px;height:88px;bottom:22%;right:36%}.auth-artwork__grid{background:radial-gradient(#ffffff3d 1px,#0000 1px) 0 0/14px 14px;border-radius:50%;width:410px;height:210px;position:absolute;bottom:2%;right:4%;transform:perspective(520px)rotateX(62deg)}.auth-artwork__device{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff21;border:1px solid #ffffff3d;border-radius:22px;width:min(64%,390px);position:absolute;bottom:8%;right:9%;overflow:hidden;transform:rotate(-3deg);box-shadow:0 28px 60px #01081847}.auth-artwork__device-header{border-bottom:1px solid #ffffff21;gap:6px;padding:14px 16px;display:flex}.auth-artwork__device-header span{background:#ffffff70;border-radius:50%;width:7px;height:7px}.auth-artwork__device-body{grid-template-columns:repeat(2,1fr);gap:12px;padding:20px;display:grid}.auth-artwork__metric{background:#ffffff24;border-radius:9px;height:36px}.auth-artwork__metric--wide,.auth-artwork__chart{grid-column:1/-1}.auth-artwork__chart{background:#ffffff1a;border-radius:12px;align-items:end;gap:12px;height:86px;padding:12px 14px;display:flex}.auth-artwork__chart span{background:#ffffff85;border-radius:5px 5px 2px 2px;flex:1}.auth-artwork__chart span:first-child{height:35%}.auth-artwork__chart span:nth-child(2){height:56%}.auth-artwork__chart span:nth-child(3){height:46%}.auth-artwork__chart span:nth-child(4){height:78%}.auth-artwork__chart span:nth-child(5){height:92%}.auth-artwork__badge{color:#1d4ed8;background:#fff;border:5px solid #0a1f41ad;border-radius:18px;place-items:center;width:58px;height:58px;display:grid;position:absolute;bottom:-10px;right:-10px;box-shadow:0 16px 32px #02081733}.auth-announcement{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#02081729;border:1px solid #ffffff24;border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:16px 18px;display:grid}.auth-announcement__icon{color:#fef3c7;background:#f59e0b2e;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.auth-announcement__content{gap:2px;display:grid}.auth-announcement__content span{color:#ffffff8f;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:800}.auth-announcement__content strong{font-size:.86rem;font-weight:700}.auth-announcement__controls{gap:6px;display:flex}.auth-announcement__controls button{cursor:pointer;background:#ffffff47;border:0;border-radius:50%;width:8px;height:8px;padding:0}.auth-announcement__controls button.is-active{background:#fff;border-radius:999px;width:20px}.auth-portal__access{min-width:0;color:var(--auth-ink);background:radial-gradient(circle at 100% 0, color-mix(in srgb, var(--auth-secondary) 10%, transparent), transparent 24%), var(--auth-surface-soft)}.auth-portal__access-toolbar{justify-content:flex-end;align-items:center;gap:10px;min-height:76px;padding:18px clamp(22px,4vw,50px);display:flex}.auth-portal-switch.MuiButton-root{border:1px solid var(--auth-border);min-height:42px;color:var(--auth-ink);background:color-mix(in srgb, var(--auth-surface) 86%, transparent);border-radius:12px;padding-inline:14px}.auth-theme-toggle.MuiIconButton-root{border:1px solid var(--auth-border);width:42px;height:42px;color:var(--auth-ink);background:color-mix(in srgb, var(--auth-surface) 86%, transparent);border-radius:12px}.auth-portal__access-inner{align-content:center;gap:24px;width:min(100%,640px);min-height:calc(100vh - 76px);margin-inline:auto;padding:34px clamp(22px,5vw,72px) 28px;display:grid}.auth-login-card{border:1px solid var(--auth-border);background:color-mix(in srgb, var(--auth-surface) 94%, transparent);width:100%;box-shadow:var(--auth-shadow);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-radius:24px;padding:clamp(26px,4vw,44px);animation:.5s cubic-bezier(.16,1,.3,1) both auth-card-in}.auth-login-form{gap:21px;display:grid}.auth-login-form__heading{gap:10px;display:grid}.auth-login-form__heading .auth-eyebrow{border-color:color-mix(in srgb, var(--auth-primary) 20%, transparent);width:fit-content;color:var(--auth-primary);background:color-mix(in srgb, var(--auth-primary) 8%, transparent);margin:0}.auth-login-form__heading h2{color:var(--auth-ink);letter-spacing:-.04em;margin:0;font-size:clamp(1.75rem,3vw,2.35rem);font-weight:820}.auth-login-form__heading p{color:var(--auth-muted);margin:0;font-size:.94rem;line-height:1.7}.auth-login-form .MuiFormControl-root{width:100%}.auth-login-form .MuiOutlinedInput-root{background:var(--auth-surface);border-radius:13px;min-height:54px;transition:box-shadow .18s,transform .18s}.auth-login-form .MuiOutlinedInput-root.Mui-focused{box-shadow:0 0 0 4px color-mix(in srgb, var(--auth-primary) 12%, transparent)}.auth-form-options{justify-content:space-between;align-items:center;gap:12px;display:flex}.auth-form-options .MuiFormControlLabel-label{color:var(--auth-muted);font-size:.78rem}.auth-form-link{color:var(--auth-primary);font-size:.8rem;font-weight:800;text-decoration:none}.auth-form-link:hover{text-decoration:underline}.auth-submit.MuiButton-root{color:#fff;background:linear-gradient(120deg, var(--auth-primary), var(--auth-secondary));min-height:54px;box-shadow:0 14px 26px color-mix(in srgb, var(--auth-primary) 24%, transparent);border-radius:13px;font-size:.94rem;font-weight:800;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden}.auth-submit.MuiButton-root:hover{background:linear-gradient(120deg, var(--auth-primary), var(--auth-secondary));box-shadow:0 18px 34px color-mix(in srgb, var(--auth-primary) 30%, transparent);transform:translateY(-1px)}.auth-submit__progress{align-items:center;gap:10px;display:inline-flex}.auth-submit__progress .MuiCircularProgress-root{color:currentColor}.auth-caps-lock{color:#b45309;align-items:center;gap:7px;margin-top:-12px;font-size:.76rem;font-weight:700;display:flex}.auth-form-alert.MuiAlert-root{border-radius:12px}.auth-login-form.has-error{animation:.33s auth-shake}.auth-secure-caption{color:var(--auth-muted);text-align:center;justify-content:center;align-items:center;gap:7px;font-size:.72rem;display:flex}.auth-quick-access{gap:12px;display:grid}.auth-section-heading{color:var(--auth-muted);justify-content:space-between;align-items:center;display:flex}.auth-section-heading span{letter-spacing:.09em;text-transform:uppercase;font-size:.72rem;font-weight:800}.auth-section-heading svg{width:17px;height:17px}.auth-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.auth-quick-card{border:1px solid var(--auth-border);min-height:88px;color:var(--auth-ink);background:var(--auth-surface);border-radius:15px;align-content:center;gap:8px;padding:13px;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid}.auth-quick-card svg{width:20px;height:20px;color:var(--auth-primary)}.auth-quick-card span{text-overflow:ellipsis;font-size:.76rem;font-weight:750;line-height:1.25;overflow:hidden}a.auth-quick-card:hover{border-color:color-mix(in srgb, var(--auth-primary) 45%, transparent);transform:translateY(-2px);box-shadow:0 10px 22px #0f172a14}.auth-quick-card--informational{cursor:default}.auth-footer{color:var(--auth-muted);gap:10px;padding:4px 2px 0;font-size:.7rem;display:grid}.auth-footer>div:first-child{justify-content:space-between;gap:14px;display:flex}.auth-footer strong{color:var(--auth-ink)}.auth-footer nav,.auth-footer__meta{flex-wrap:wrap;gap:6px 15px;display:flex}.auth-footer a{color:var(--auth-muted);font-weight:700;text-decoration:none}.auth-footer a:hover{color:var(--auth-primary)}.auth-footer__meta{border-top:1px solid var(--auth-border);justify-content:space-between;padding-top:10px}.auth-recovery-steps{grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}.auth-recovery-steps li{color:var(--auth-muted);justify-items:center;gap:7px;font-size:.68rem;font-weight:800;display:grid;position:relative}.auth-recovery-steps li:before{background:var(--auth-border);content:"";height:2px;position:absolute;top:11px;left:-50%;right:50%}.auth-recovery-steps li:first-child:before{display:none}.auth-recovery-steps span{z-index:1;border:2px solid var(--auth-border);background:var(--auth-surface);border-radius:50%;place-items:center;width:24px;height:24px;display:grid;position:relative}.auth-recovery-steps .is-active,.auth-recovery-steps .is-complete{color:var(--auth-primary)}.auth-recovery-steps .is-active span,.auth-recovery-steps .is-complete span{border-color:var(--auth-primary);color:#fff;background:var(--auth-primary)}.auth-recovery-confirmation{text-align:center;justify-items:center;gap:12px;padding:22px 10px 8px;display:grid}.auth-recovery-confirmation__icon{color:#047857;background:#10b9811f;border-radius:18px;place-items:center;width:58px;height:58px;display:grid}.auth-recovery-confirmation h3,.auth-recovery-confirmation p{margin:0}.auth-recovery-confirmation p{max-width:42ch;color:var(--auth-muted);line-height:1.65}.auth-password-field{gap:9px;display:grid}.auth-password-strength{gap:6px;display:grid}.auth-password-strength__label{color:var(--auth-muted);justify-content:space-between;font-size:.7rem;display:flex}.auth-password-strength .MuiLinearProgress-root{border-radius:999px;height:5px}.auth-portal--compact .auth-artwork{display:none}.auth-portal--compact .auth-portal__hero-inner{grid-template-rows:auto 1fr auto}@keyframes auth-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-card-in{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes auth-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}@media (width>=1600px){.auth-portal{grid-template-columns:minmax(760px,1.2fr) minmax(560px,.8fr)}.auth-portal__access-inner{width:min(100%,700px)}}@media (width<=1100px){.auth-portal{grid-template-columns:minmax(0,.92fr) minmax(430px,1.08fr)}.auth-artwork{min-height:180px}.auth-portal__hero-inner{padding:42px}}@media (width<=860px){.auth-portal{display:block}.auth-portal__hero{min-height:auto}.auth-portal__hero-inner{grid-template-rows:auto 1fr auto;gap:30px;min-height:340px;padding:28px clamp(22px,6vw,48px) 36px}.auth-portal__hero-copy h1{max-width:15ch;font-size:clamp(2.3rem,8vw,4.3rem)}.auth-portal__hero-copy>p{max-width:62ch;margin-top:15px}.auth-artwork,.auth-security-note--hero{display:none}.auth-announcement{margin-top:4px}.auth-portal__access-inner{min-height:auto;padding-top:16px;padding-bottom:32px}}@media (width<=520px){.auth-portal__hero-inner{gap:24px;min-height:280px;padding:22px 18px 28px}.auth-brand .auth-brand__logo{width:44px;height:44px}.auth-brand strong{max-width:24ch}.auth-portal__hero-copy h1{overflow-wrap:anywhere;font-size:clamp(2rem,11vw,3.3rem)}.auth-portal__hero-copy>p{display:none}.auth-eyebrow{margin-bottom:13px}.auth-academic-context{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px;display:grid}.auth-academic-context div{min-width:0;padding:11px 12px}.auth-academic-context dd{overflow-wrap:anywhere}.auth-announcement{grid-template-columns:auto 1fr}.auth-announcement__controls{display:none}.auth-portal__access-toolbar{min-height:64px;padding:12px 16px}.auth-portal-switch.MuiButton-root{margin-right:auto;font-size:.75rem}.auth-portal__access-inner{gap:20px;padding:8px 14px 24px}.auth-login-card{border-radius:20px;padding:24px 20px}.auth-form-options{flex-direction:column;align-items:flex-start}.auth-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-footer>div:first-child,.auth-footer__meta{flex-direction:column;align-items:flex-start}}@media (prefers-contrast:more){.auth-login-card,.auth-quick-card,.auth-portal-switch.MuiButton-root,.auth-theme-toggle.MuiIconButton-root{border-width:2px;border-color:currentColor}.auth-login-form .MuiOutlinedInput-root.Mui-focused{box-shadow:0 0 0 4px}}@media (prefers-reduced-motion:reduce){.auth-portal__hero-copy,.auth-login-card,.auth-login-form.has-error{animation:none}.auth-submit.MuiButton-root,.auth-quick-card{transition:none}}
