/* Optim Solar Login 1.0.0 — isolated, no external fonts or icon library. */
:root{--osl-ink:#14261e;--osl-muted:#68786f;--osl-deep:#09291f;--osl-green:#1c9b57;--osl-accent:#b8f191;--osl-border:#e4ebe5;--osl-bg:#f8faf8}
html{scroll-behavior:auto}
body.osl-login-body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif!important;margin:0!important;background:#fff!important;color:var(--osl-ink)!important;min-height:100vh!important;overflow-x:hidden!important;line-height:1.5!important;}
body.osl-login-body *,body.osl-login-body *::before,body.osl-login-body *::after{box-sizing:border-box}
body.osl-login-body button,body.osl-login-body input{font:inherit}
body.osl-login-body a{text-decoration:none;color:inherit}
body.osl-login-body a:focus-visible,body.osl-login-body button:focus-visible,body.osl-login-body input:focus-visible{outline:3px solid #65c990!important;outline-offset:3px}
.osl-screen{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(400px,45%) minmax(0,1fr);width:100%}
.osl-aside{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(30px,3.25vw,58px) clamp(34px,5.15vw,90px);color:#fff;overflow:hidden;isolation:isolate;background:linear-gradient(148deg,#063223 0%,#0c3d2b 49%,#06281e 100%)}
.osl-aside:before{content:"";position:absolute;right:-185px;bottom:3%;width:560px;height:560px;border:1px solid rgba(191,255,178,.11);border-radius:50%;box-shadow:0 0 0 86px rgba(137,249,156,.045),0 0 0 175px rgba(137,249,156,.028);z-index:-1}
.osl-aside:after{content:"";position:absolute;width:450px;height:450px;top:-190px;left:-170px;background:radial-gradient(circle,rgba(61,159,97,.21),transparent 72%);z-index:-1}
.osl-aside-top,.osl-aside-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px}
.osl-topbrand{display:inline-flex;align-items:center;gap:11px;white-space:nowrap;color:#fff!important}
.osl-topbrand img{display:block;width:45px;height:45px;object-fit:contain;background:#fff;border-radius:11px;padding:3px}
.osl-topbrand span{display:inline-flex;gap:5px;font-size:18px;letter-spacing:.07em}
.osl-topbrand strong{font-weight:850;color:#fff}
.osl-topbrand b{font-weight:850;color:#adf2a1}
.osl-aside-label{font-size:10px;letter-spacing:.16em;font-weight:750;color:#98bba8;white-space:nowrap}
.osl-aside-main{max-width:610px;position:relative;padding:54px 0}
.osl-eyebrow,.osl-auth-kicker{display:inline-flex;align-items:center;gap:9px;font-weight:800;letter-spacing:.125em;font-size:11px}
.osl-eyebrow{color:#b4edbb}
.osl-eyebrow-dot{width:7px;height:7px;border-radius:50%;background:#bcf78c;box-shadow:0 0 0 6px rgba(194,255,170,.12)}
.osl-aside-main h1{font-size:clamp(36px,3.8vw,68px);letter-spacing:-.056em;line-height:1.12;font-weight:790;max-width:650px;margin:25px 0 21px;color:#fff}
.osl-aside-main h1 em{font-style:normal;color:#a8ea9e}
.osl-aside-main>p{font-size:clamp(15px,1.1vw,18px);line-height:1.8;color:#c0d7c8;max-width:440px;margin:0 0 48px}
.osl-feature-list{display:grid;gap:27px}
.osl-feature-list>div{display:flex;gap:17px;align-items:center}
.osl-feature-icon{display:grid;place-items:center;width:47px;height:47px;flex:0 0 47px;border:1px solid rgba(202,254,196,.15);background:rgba(255,255,255,.065);border-radius:14px;color:#bdedb6}
.osl-feature-icon svg{width:23px;height:23px}
.osl-feature-list strong,.osl-feature-list small{display:block}
.osl-feature-list strong{font-size:14px;font-weight:750;color:#f4fbf4}
.osl-feature-list small{font-size:12px;line-height:1.6;color:#9dbdab;margin-top:3px}
.osl-aside-bottom{font-size:12px;color:#91b6a4;letter-spacing:.015em;opacity:.9}
.osl-auth-main{min-width:0;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(25px,3.1vw,52px) clamp(22px,5.2vw,84px);background:radial-gradient(circle at 92% 4%,#f3f8f3,transparent 38%),#fff}
.osl-auth-inner{width:100%;max-width:470px;margin:auto;align-self:center;padding:44px 0}
.osl-auth-kicker{color:#319760;margin-bottom:23px}
.osl-kicker-line{width:22px;height:2px;background:#31a866;border-radius:4px}
.osl-auth-inner h2{font-weight:800;letter-spacing:-.047em;font-size:clamp(33px,3.2vw,49px);line-height:1.14;margin:0 0 17px;color:#122f21}
.osl-punctuation{color:#38a565}
.osl-intro{font-size:15px;line-height:1.8;color:#65796d;margin:0 0 34px;max-width:450px}
.osl-auth-form{display:flex;flex-direction:column;width:100%;gap:11px}
.osl-auth-form label:not(.osl-remember){font-size:13px;line-height:1.5;font-weight:760;color:#274332;margin-top:3px}
.osl-input-wrap{height:55px;min-height:55px;border:1px solid #dce7df;border-radius:12px;display:flex;align-items:center;position:relative;background:#fbfdfb;transition:border-color .2s,box-shadow .2s}
.osl-input-wrap:focus-within{border-color:#45a771;box-shadow:0 0 0 4px rgba(39,160,85,.1)}
.osl-input-wrap>svg{height:20px;width:20px;flex:0 0 20px;color:#80978a;margin-left:18px}
.osl-input-wrap input{min-width:0;width:100%;flex:1;border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;color:#173425!important;padding:0 15px!important;font-size:14px!important;height:100%!important;font-weight:500!important;letter-spacing:0!important;line-height:normal!important}
.osl-input-wrap input::placeholder{color:#a0aea3!important;opacity:1}
.osl-input-wrap input:focus-visible{outline:0!important}
.osl-label-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px}
.osl-label-row label{margin:0!important}
.osl-forgot{font-size:12px;font-weight:700;color:#228c55!important;white-space:nowrap}
.osl-forgot:hover,.osl-under-link:hover,.osl-return:hover{text-decoration:underline!important}
.osl-reveal{height:42px!important;min-width:67px!important;padding:0 12px!important;margin:0 6px 0 0!important;border:0!important;background:transparent!important;cursor:pointer!important;color:#399363!important;font-size:12px!important;font-weight:750!important;border-radius:6px!important;box-shadow:none!important;text-transform:none!important;line-height:1!important}
.osl-reveal:hover{background:#eaf5eb!important}
.osl-remember{display:flex;align-items:center;gap:9px;color:#65776a;font-size:13px;cursor:pointer;margin-top:12px;line-height:1.4}
.osl-remember input{appearance:checkbox!important;-webkit-appearance:checkbox!important;accent-color:#238e54;width:17px!important;height:17px!important;margin:0!important;display:inline-block!important;position:static!important;opacity:1!important}
.osl-submit,.osl-button{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;width:100%!important;margin-top:14px!important;padding:0 23px!important;height:56px!important;min-height:56px!important;border:0!important;border-radius:12px!important;background:#137c48!important;color:#fff!important;box-shadow:0 10px 22px rgba(25,114,66,.15)!important;font-size:15px!important;font-weight:750!important;text-align:left!important;cursor:pointer!important;text-transform:none!important;letter-spacing:0!important;line-height:1.4!important;transition:background .18s,transform .18s!important}
.osl-submit:hover,.osl-button:hover{background:#0a6538!important;transform:translateY(-1px)}
.osl-submit>span:last-child{font-size:24px;line-height:1;font-weight:400}
.osl-submit.osl-submitting{opacity:.85;cursor:wait}
.osl-link-submit{text-decoration:none!important}
.osl-login-bottom{margin-top:30px;border-top:1px solid #e7eee9;padding-top:20px;color:#758478;font-size:12px}
.osl-login-bottom p{display:flex;gap:8px;align-items:center;line-height:1.5;margin:8px 0}
.osl-login-bottom svg{width:17px;height:17px;color:#399563;flex:0 0 17px}
.osl-login-bottom a{font-weight:750;color:#228c55!important}
.osl-auth-foot{display:flex;justify-content:space-between;gap:14px;font-size:12px;color:#8a9890;max-width:880px;width:100%;margin:0 auto}
.osl-auth-foot a:hover{color:#277f51!important}
.osl-foot-dot{padding:0 8px;color:#b0c2b7}
.osl-mobile-top{display:none}
.osl-alert{border-radius:11px;padding:12px 15px;font-size:13px;line-height:1.55;margin:0 0 20px;border:1px solid #e6c4bd;background:#fff5f2;color:#8d4236}
.osl-alert-success{border-color:#bddfc5;background:#f1faf3;color:#276c3f}
.osl-return,.osl-under-link{display:inline-flex;align-items:center;gap:8px;color:#268552!important;font-size:13px;font-weight:750;margin-top:24px}
.osl-profile-chip{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid #e1eae3;border-radius:15px;background:#f8fbf9;margin:18px 0 28px}
.osl-avatar{display:grid;place-items:center;width:47px;height:47px;flex:0 0 47px;background:#d0ebd8;color:#136c3d;font-weight:800;border-radius:12px}
.osl-profile-chip strong,.osl-profile-chip small{display:block}
.osl-profile-chip strong{font-size:15px;color:#20472d}
.osl-profile-chip small{font-size:12px;color:#7a8d7e;margin-top:3px;overflow-wrap:anywhere}
/* Portals embedded in WordPress page layouts */
.osl-portal{box-sizing:border-box;max-width:1090px;margin:35px auto 55px;padding:clamp(25px,4.5vw,57px);border:1px solid #e5ede7;border-radius:25px;background:linear-gradient(125deg,#fbfdfb,#fff);color:#163b27;box-shadow:0 12px 40px rgba(0,55,22,.05);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
.osl-portal *{box-sizing:border-box}
.osl-portal-kicker{color:#208149;letter-spacing:.14em;font-size:11px;font-weight:800;margin-bottom:12px}
.osl-portal h1{margin:0 0 13px!important;color:#113d26;font-weight:800;font-size:clamp(28px,3.2vw,43px);letter-spacing:-.038em;line-height:1.17}
.osl-portal h2{font-size:28px;color:#153f28;margin:0 0 12px}
.osl-portal p{color:#63776a;font-size:15px;line-height:1.7;margin:0 0 26px}
.osl-portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:26px}
.osl-portal-tile{display:flex;flex-direction:column;gap:8px;border:1px solid #e2eae4;background:#fff;border-radius:16px;padding:23px;color:#174e2e!important;text-decoration:none!important;transition:transform .15s,box-shadow .15s}
.osl-portal-tile:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,72,34,.1)}
.osl-portal-tile>span{width:37px;height:37px;border-radius:10px;display:grid;place-items:center;background:#e9f6e8;color:#1d9750;font-size:24px}
.osl-portal-tile strong{font-size:17px}
.osl-portal-tile small{font-size:13px;color:#78877d;line-height:1.5}
.osl-portal-logout{display:inline-flex;margin-top:30px!important;font-size:13px;font-weight:700;color:#257c4a!important}
.osl-account-info{color:#687970;border-top:1px solid #e3eee6;padding-top:20px;margin-top:28px;font-size:13px}
.osl-button{max-width:260px;text-decoration:none!important;justify-content:center!important}
@media(max-width:1170px){.osl-screen{grid-template-columns:minmax(340px,43%) minmax(0,1fr)}.osl-aside{padding:32px}.osl-auth-main{padding:30px clamp(25px,4vw,65px)}.osl-aside-label{display:none}.osl-aside-main h1{font-size:clamp(36px,3.8vw,53px)}}
@media(max-width:820px){.osl-screen{grid-template-columns:1fr}.osl-aside{display:none}.osl-auth-main{min-height:100vh;min-height:100dvh;padding:25px clamp(22px,7vw,56px);background:linear-gradient(180deg,#f3f9f3 0%,#fff 27%,#fff 100%)}.osl-mobile-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.osl-mobile-top .osl-topbrand{color:#183b27!important}.osl-mobile-top .osl-topbrand img{width:38px;height:38px;border:1px solid #e7eee8}.osl-mobile-top .osl-topbrand strong{color:#183b27}.osl-mobile-top .osl-topbrand b{color:#18854a}.osl-mobile-top .osl-topbrand span{font-size:15px}.osl-mobile-secure{display:inline-flex;align-items:center;gap:7px;color:#548566;font-size:10px;font-weight:800;letter-spacing:.1em}.osl-lock-dot{width:6px;height:6px;border-radius:50%;background:#50b47c}.osl-auth-inner{padding:70px 0;max-width:470px}.osl-auth-foot{max-width:470px}}
@media(max-width:480px){.osl-auth-main{padding:20px 20px 25px}.osl-auth-inner{padding:58px 0 42px}.osl-auth-inner h2{font-size:36px}.osl-intro{font-size:14px;margin-bottom:25px;line-height:1.75}.osl-auth-kicker{font-size:10px;letter-spacing:.1em;margin-bottom:18px}.osl-input-wrap{height:54px;min-height:54px}.osl-submit{height:56px!important}.osl-auth-foot{font-size:11px}.osl-portal{border-radius:15px;margin:18px 12px 35px;padding:24px}.osl-portal-grid{grid-template-columns:1fr}.osl-mobile-top .osl-topbrand span{font-size:13px}}
@media(prefers-reduced-motion:reduce){.osl-submit,.osl-portal-tile,.osl-input-wrap{transition:none!important}}

/* Keep focus ring on the field container, not on the nested input. */
body.osl-login-body .osl-input-wrap input:focus-visible{outline:0!important;outline-offset:0!important}
