:root{--ink:#17201f;--muted:#7c8580;--line:#e9ece8;--green:#123d35;--gold:#c99432}
*{box-sizing:border-box}
body{margin:0;background:#f8faf7;color:var(--ink);font:14px 'DM Sans',Arial,sans-serif}
.icon-defs{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:17px;height:17px;display:inline-block;vertical-align:-3px}
.login-page{min-height:100vh}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}

/* ---------- brand / illustration panel ---------- */
.login-brand-panel{position:relative;overflow:hidden;background:var(--green);color:#fff;padding:52px 10%;display:flex;flex-direction:column}
.blob{position:absolute;border-radius:50%;filter:blur(50px);opacity:.35;animation:float 9s ease-in-out infinite}
.blob-gold{width:260px;height:260px;background:#e4bd67;top:-60px;right:-60px}
.blob-green{width:320px;height:320px;background:#3f8f74;bottom:-120px;left:-80px;animation-delay:-3s}
.brand,.mobile-brand{display:flex;align-items:center;gap:10px;position:relative;z-index:1}
.brand strong,.mobile-brand strong{font:800 18px Manrope,Arial}
.brand small{display:block;color:#bdcbc1;font-size:8px;letter-spacing:2px;margin-top:2px}
.brand-mark{width:34px;height:34px;background:#fff;border-radius:10px 10px 10px 3px;color:var(--green);display:grid;place-items:center;font:800 16px Manrope;box-shadow:0 8px 18px rgba(0,0,0,.18)}
.brand-mark span{color:var(--gold)}
.login-intro{margin:auto 0 0;position:relative;z-index:1}
.eyebrow{font-size:10px;letter-spacing:2px;color:#9aa89f;font-weight:700}
.login-brand-panel .eyebrow{color:#b9c9bd}
.login-intro h1{font:800 clamp(36px,4vw,58px)/1.08 Manrope,Arial;margin:18px 0}
.login-intro h1 em{color:#e4bd67;font-style:normal}
.login-intro p{max-width:390px;color:#bdcbc1;line-height:1.7}
.login-illustration{position:relative;z-index:1;margin:28px 0 6px;max-width:420px}
.login-illustration svg{display:block}
.twinkle{color:#f6e0a4;transform-origin:center;animation:twinkle 2.6s ease-in-out infinite}
.twinkle use{width:16px;height:16px}
.twinkle-2{animation-delay:.7s}
.twinkle-3{animation-delay:1.4s}
.login-quote{position:relative;z-index:1;color:#aebfb3;font-size:12px;border-left:2px solid #b88c39;padding-left:14px;margin-top:auto}
.login-form-panel{background:#fff;display:grid;place-items:center;padding:30px}
.login-form-wrap{width:min(380px,100%);animation:formIn .4s ease}
.login-form-wrap h2{font:800 27px Manrope;margin:12px 0 8px}
.login-subtitle{color:var(--muted);margin:0 0 30px}
.login-form-wrap form{display:grid;gap:9px}
.login-form-wrap label{font-size:11px;font-weight:700;color:#59665e;margin-top:7px}
.login-form-wrap input{padding:13px;border:1px solid #dfe5df;border-radius:8px;font:14px 'DM Sans';outline:none;transition:border-color .15s ease,box-shadow .15s ease}
.login-form-wrap input:focus{border-color:#5f927a;box-shadow:0 0 0 3px #eef5f1}
.login-button{width:100%;margin-top:18px;display:flex;justify-content:space-between;align-items:center;border:0;border-radius:8px;padding:14px 17px;font:700 13px 'DM Sans';cursor:pointer;background:var(--green);color:#fff;transition:background .15s ease,transform .12s ease,box-shadow .15s ease}
.login-button:hover{background:#1d5b4d;box-shadow:0 10px 22px rgba(18,61,53,.22);transform:translateY(-1px)}
.login-help{color:#929c95;font-size:11px;margin-top:25px;text-align:center}
.login-error{background:#fff1ef;border:1px solid #f1d4cf;color:#a44941;border-radius:8px;padding:11px;font-size:12px;margin-bottom:16px;display:flex;align-items:center;gap:8px}

@keyframes float{0%,100%{transform:translate(0,0)}50%{transform:translate(-14px,14px)}}
@keyframes twinkle{0%,100%{opacity:.25;transform:scale(.85)}50%{opacity:1;transform:scale(1.05)}}
@keyframes formIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:700px){
  .login-shell{grid-template-columns:1fr}
  .login-brand-panel{min-height:270px;padding:28px 24px}
  .login-intro{margin:45px 0 20px}
  .login-intro h1{font-size:34px}
  .login-illustration{display:none}
  .login-quote{display:none}
  .login-form-panel{padding:45px 24px;align-items:start}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
