.os-login{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:48px 20px;background:radial-gradient(ellipse at 12% 5%,#e9f2ff 0,transparent 48%),radial-gradient(ellipse at 95% 90%,#edf1fa 0,transparent 45%),#f6f8fb;color:#172b4d;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}
.os-login[dir=rtl]{font-family:Cairo,sans-serif}.os-login *{box-sizing:border-box}.os-login-shell{width:100%;max-width:440px}.os-login-brand{display:flex;justify-content:center;margin-bottom:30px}.os-login-brand img{width:176px;height:auto;max-width:100%}.os-login-card{background:#fff;border:1px solid #dfe5ed;border-radius:24px;padding:36px;box-shadow:0 16px 48px rgba(23,43,77,.07)}.os-login-symbol{width:48px;height:48px;border-radius:14px;background:#e9f2ff;color:#0c66e4;display:flex;align-items:center;justify-content:center;font-size:23px;margin-bottom:20px}.os-login h1{font-family:inherit;font-size:28px;font-weight:700;letter-spacing:-.6px;margin:0 0 8px;color:#172b4d}.os-login-description{font-size:14px;color:#626f86;margin:0 0 28px}.os-login-field{margin-bottom:20px}.os-login-field label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}.os-login-field input{width:100%;height:50px;border:1px solid #dfe5ed;border-radius:12px;background:#fff;color:#172b4d;padding:12px 14px;font:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}.os-login-field input::placeholder{color:#7b879b;font-size:14px}.os-login-field input:focus{outline:none;border-color:#0c66e4;box-shadow:0 0 0 4px #e9f2ff}.os-login-field input[aria-invalid=true]{border-color:#c9372c}.os-login-password{position:relative}.os-login-password input{padding-inline-end:52px}.os-login-password button{position:absolute;inset-inline-end:5px;top:5px;width:40px;height:40px;border:0;border-radius:9px;background:transparent;color:#626f86;cursor:pointer}.os-login-password button:hover{background:#f1f4f9}.os-login-remember{display:flex;align-items:center;gap:10px;font-size:14px;color:#44546f;margin:4px 0 24px;cursor:pointer}.os-login-remember input{width:18px;height:18px;accent-color:#0c66e4;margin:0}.os-login-submit{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:50px;border:0;border-radius:12px;background:#0c66e4;color:#fff;font:inherit;font-weight:600;cursor:pointer;transition:background .15s}.os-login-submit:hover{background:#0055cc}.os-login[dir=rtl] .os-login-submit i{transform:rotate(180deg)}.os-login button:focus-visible,.os-login a:focus-visible,.os-login-remember input:focus-visible{outline:3px solid #388bff;outline-offset:3px}.os-login-footer{text-align:center;margin:24px 0 0;font-size:12px;color:#626f86}.os-login-error{padding:12px 14px;background:#fff0ee;border:1px solid #ffd5d0;border-radius:12px;color:#ae2a19;margin-bottom:20px}.os-login-field-error{font-size:13px;color:#ae2a19;margin:8px 0 0}@media(max-width:480px){.os-login{padding:28px 16px}.os-login-card{padding:28px 22px;border-radius:20px}.os-login h1{font-size:26px}.os-login-brand{margin-bottom:24px}}

.os-login [hidden]{display:none!important}.os-login-user{display:flex;align-items:center;gap:14px;width:100%;padding:16px;border:1px solid #dfe5ed;border-radius:16px;background:#f6f8fb;text-align:start;color:#172b4d;cursor:pointer;font:inherit;font-weight:600}.os-login-user img,.os-login-initials{width:48px;height:48px;border-radius:50%;object-fit:cover;flex-shrink:0}.os-login-initials{display:flex;align-items:center;justify-content:center;background:#e9f2ff;color:#0c66e4}.os-login-user small{display:block;font-size:12px;font-weight:400;color:#626f86;margin-top:4px}.os-login-switch{display:inline-block;margin:16px 0 24px;color:#0c66e4;font-size:14px}

/* Remove the admin shell's spacing only on the login page. */
body:has(.os-login){margin:0!important;padding:0!important}
body:has(.os-login) .app-content,
body:has(.os-login) .content-wrapper,
body:has(.os-login) .content-body{margin:0!important;padding:0!important;min-height:0!important;height:auto!important}
.os-login{box-sizing:border-box;padding:24px 20px}
.os-login-user>span:last-child{min-width:0;overflow-wrap:anywhere}
@media(max-height:800px){
 .os-login{padding:16px}
 .os-login-brand{margin-bottom:16px}.os-login-brand img{width:148px}
 .os-login-card{padding:24px 28px}
 .os-login-symbol{display:none}
 .os-login-description{margin-bottom:20px}
 .os-login-field{margin-bottom:16px}
 .os-login-remember{margin-bottom:18px}
 .os-login-switch{margin:12px 0 16px}
 .os-login-footer{margin-top:14px}
}
@media(max-height:600px){
 .os-login{padding:12px;align-items:flex-start}
 .os-login-brand{margin-bottom:10px}.os-login-brand img{width:120px}
 .os-login-card{padding:18px 22px}
 .os-login h1{font-size:23px;margin-bottom:4px}
 .os-login-description{margin-bottom:12px}
 .os-login-field{margin-bottom:12px}.os-login-field label{margin-bottom:4px}
 .os-login-field input{height:44px}
 .os-login-password button{height:34px}
 .os-login-user{padding:10px}
 .os-login-remember{margin:4px 0 12px}
 .os-login-submit{min-height:44px}
 .os-login-footer{display:none}
}

/* Two-panel login: keep the form and gallery within the desktop viewport. */
.os-login{padding:20px;min-height:100dvh;background:#f6f8fb}
.os-login-layout{display:grid;grid-template-columns:minmax(360px, .85fr) minmax(0,1.15fr);align-items:center;gap:36px;width:100%;max-width:1680px;min-height:calc(100dvh - 40px)}
.os-login-shell{max-width:440px;justify-self:center;width:100%}
.os-login-gallery{position:relative;align-self:stretch;min-height:0;border-radius:28px;overflow:hidden;background:#172b4d;isolation:isolate}
.os-login-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s ease}
.os-login-slide.is-active{opacity:1}
.os-login-gallery:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(9,20,43,.88));z-index:1;pointer-events:none}
.os-login-gallery-caption{position:absolute;inset-inline:40px;bottom:30px;z-index:2;color:#fff}
.os-login-gallery-label{font-size:11px;font-weight:700;letter-spacing:2px;color:#fff}
.os-login-gallery-caption h2{font-family:inherit;font-size:clamp(26px,3vw,46px);font-weight:700;line-height:1.15;margin:14px 0;color:#fff;letter-spacing:-1px}
.os-login-gallery-caption p{font-size:16px;margin:0 0 24px;color:#e5edfa}
.os-login-gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:16px}
.os-login-gallery-dots{display:flex;gap:4px}
.os-login-gallery-dots button{width:34px;height:36px;border:0;background:transparent;padding:14px 4px;cursor:pointer}
.os-login-gallery-dots button:after{content:"";display:block;height:5px;border-radius:9px;background:#ffffff66}
.os-login-gallery-dots button[aria-pressed=true]:after{background:#fff}
#gallery-pause{width:36px;height:36px;border:1px solid #ffffff77;border-radius:50%;background:#ffffff22;color:#fff;cursor:pointer}
.os-login-gallery-credit{display:block;font-size:10px;color:#d9e2f1;margin-top:12px}
@media(max-width:900px){.os-login-layout{gap:20px;grid-template-columns:minmax(320px,1fr) minmax(0,1fr)}.os-login-gallery-caption{inset-inline:24px}.os-login-card{padding:24px}.os-login-gallery-caption h2{font-size:30px}}
@media(max-width:700px){.os-login{padding:16px}.os-login-layout{grid-template-columns:1fr;gap:16px;min-height:calc(100dvh - 32px)}.os-login-gallery{display:none}.os-login-shell{max-width:440px}}
@media(max-height:600px) and (min-width:701px){.os-login{padding:12px}.os-login-layout{min-height:calc(100dvh - 24px);gap:24px}.os-login-gallery-caption{bottom:20px}.os-login-gallery-caption p{margin-bottom:12px}.os-login-gallery-caption h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){.os-login-slide{transition:none}}

/* Keep nine principle controls compact and captions readable. */
.os-login-gallery-dots{gap:2px;min-width:0}
.os-login-gallery-dots button{width:26px;flex-shrink:0}
#principle-count{font-size:12px;color:#e5edfa;white-space:nowrap}
.os-login-gallery-caption h2{font-size:clamp(25px,2.8vw,42px)}
.os-login-slide{object-position:center top}
@media(max-width:900px){.os-login-gallery-dots button{width:20px;padding-inline:3px}.os-login-gallery-controls{gap:8px}.os-login-gallery-caption h2{font-size:26px}.os-login-gallery-caption p{font-size:14px}}
