:root{--login-ink:#17324d;--login-muted:#607386;--login-blue:#0d4d83;--login-blue-deep:#123c68;--login-soft:#e6f0f8;--login-line:#d5e0e9;--login-ground:#edf3f7;--login-focus:#cf8c1d}
*{box-sizing:border-box}
html{min-height:100%;background:var(--login-ground)}
body.dlp-login-page{min-height:100vh;margin:0;background:linear-gradient(135deg,#f7fafc 0%,#edf3f7 55%,#e3edf4 100%);color:var(--login-ink);font:500 15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}
.login-header{min-height:70px;border-top:4px solid var(--login-blue);border-bottom:1px solid var(--login-line);background:rgba(255,255,255,.96)}
.login-header-inner{width:100%;min-height:66px;padding:8px clamp(20px,3vw,72px);display:flex;align-items:center;justify-content:space-between;gap:24px}
.login-wordmark{display:flex;align-items:baseline;gap:12px}.login-wordmark strong{font-size:24px;line-height:1;color:var(--login-blue-deep);letter-spacing:.04em}.login-wordmark span,.login-header-context{color:var(--login-muted);font-size:13px}.login-header-context{font-weight:700}
.login-shell{width:min(1500px,calc(100% - clamp(28px,5vw,120px)));min-height:calc(100vh - 126px);margin:0 auto;padding:clamp(28px,5vh,72px) 0;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(390px,.8fr);align-items:stretch;gap:clamp(20px,3vw,52px)}
.login-brand,.login-card{border:1px solid rgba(164,185,201,.65);border-radius:20px;box-shadow:0 20px 60px rgba(18,60,104,.1)}
.login-brand{position:relative;min-height:560px;overflow:hidden;background:linear-gradient(145deg,#fff 0%,#f8fbfd 62%,#dceaf4 100%);display:grid;align-items:center;padding:clamp(36px,5vw,84px)}
.login-brand::after{content:"";position:absolute;right:-140px;bottom:-320px;width:440px;height:440px;border:80px solid rgba(21,89,141,.08);border-radius:50%}
.login-brand-content{position:relative;z-index:1;max-width:720px}.login-university-logo{display:block;width:min(480px,100%);height:auto;margin:0 0 clamp(42px,7vh,86px);mix-blend-mode:multiply}
.login-eyebrow{margin:0 0 8px;color:var(--login-blue);font-size:12px;font-weight:800;letter-spacing:.14em}.login-brand h1{margin:0;color:var(--login-blue-deep);font-size:clamp(32px,2.6vw,44px);line-height:1.08;letter-spacing:-.02em}.login-lead{max-width:620px;margin:14px 0 0;color:var(--login-muted);font-size:clamp(16px,1.1vw,19px)}
.login-brand-accent{position:absolute;left:clamp(36px,5vw,84px);bottom:clamp(28px,4vw,58px);display:flex;gap:8px}.login-brand-accent span{width:38px;height:5px;border-radius:5px;background:#7db7d9}.login-brand-accent span:nth-child(2){width:72px;background:#3185b8}.login-brand-accent span:nth-child(3){width:112px;background:var(--login-blue-deep)}
.login-card{align-self:center;background:#fff;padding:clamp(30px,3.3vw,54px)}
.login-card-heading h2{margin:0;color:var(--login-blue-deep);font-size:clamp(28px,2.4vw,38px);line-height:1.1}.login-card-heading>p:last-child{margin:12px 0 28px;color:var(--login-muted)}
.login-error{display:grid;gap:3px;margin:0 0 22px;padding:13px 15px;border:1px solid #e1bcc2;border-left:4px solid #a72d40;border-radius:9px;background:rgba(180,35,53,.055);color:#6f2632}.login-error strong{font-size:14px}.login-error span{font-size:13px}
.login-form{display:grid;gap:8px}.login-form label{margin-top:8px;color:var(--login-ink);font-size:13px;font-weight:800}.login-form input{width:100%;min-height:48px;border:1px solid #afc2d2;border-radius:9px;background:#fff;padding:10px 12px;color:var(--login-ink);font:500 16px system-ui,-apple-system,"Segoe UI",sans-serif}.login-form input:hover{border-color:#7fa5bf}.login-form input:focus{border-color:var(--login-blue);box-shadow:0 0 0 4px rgba(13,77,131,.12);outline:0}.login-form button{min-height:48px;margin-top:18px;border:0;border-radius:9px;background:var(--login-blue);color:#fff;padding:10px 18px;font:800 15px system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer}.login-form button:hover{background:var(--login-blue-deep)}.login-form button:focus-visible,.local-login summary:focus-visible,.login-footer a:focus-visible{outline:3px solid var(--login-focus);outline-offset:3px}
.local-login{margin-top:24px;padding-top:20px;border-top:1px solid var(--login-line)}.local-login summary{width:max-content;max-width:100%;cursor:pointer;color:var(--login-blue);font-size:13px;font-weight:800}.local-login-form{margin-top:14px}.login-form button.secondary{background:var(--login-soft);color:var(--login-blue-deep)}.login-form button.secondary:hover{background:#d3e6f2}
.login-footer{min-height:56px;padding:15px clamp(20px,3vw,72px);text-align:right;color:var(--login-muted);font-size:12px}.login-footer a{color:var(--login-blue);text-underline-offset:3px}
@media(max-width:900px){.login-shell{grid-template-columns:1fr;width:min(680px,calc(100% - 28px));padding:22px 0}.login-brand{min-height:0;padding:32px}.login-brand::after{display:none}.login-university-logo{width:min(390px,100%);margin-bottom:30px}.login-brand h1{font-size:clamp(28px,5vw,36px)}.login-brand-accent{display:none}.login-card{align-self:stretch}.login-header-context{display:none}}
@media(max-width:520px){.login-header{min-height:55px}.login-header-inner{min-height:51px;padding:6px 14px}.login-wordmark{gap:8px}.login-wordmark strong{font-size:20px}.login-wordmark span{font-size:11px}.login-shell{width:calc(100% - 18px);min-height:0;padding:12px 0;gap:12px}.login-brand,.login-card{border-radius:13px}.login-brand{padding:24px 20px}.login-university-logo{width:min(310px,100%);margin-bottom:22px}.login-brand .login-eyebrow{display:none}.login-brand h1{font-size:24px}.login-lead{margin-top:8px;font-size:14px}.login-card{padding:25px 20px}.login-card-heading h2{font-size:26px}.login-card-heading>p:last-child{margin-bottom:20px}.login-footer{min-height:44px;padding:10px 14px}}
