:root{--green:#087b47;--green-light:#0b9a5a;--deep:#03291c;--ink:#14231b;--muted:#6b7d73;--line:#d5e1da}
*{box-sizing:border-box}
html{min-height:100%;background:#eaf2ed}
body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
button,input{font:inherit}
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 24px;background:radial-gradient(circle at 18% 18%,#fff 0,transparent 34%),radial-gradient(circle at 82% 82%,#d5e8dc 0,transparent 32%),linear-gradient(135deg,#edf4f0 0%,#e3ede7 48%,#f6f8f7 100%);color:var(--ink)}
.login-card{position:relative;width:100%;max-width:480px;padding:42px;border:1px solid #ffffff;border-radius:22px;background:linear-gradient(180deg,#fff 0%,#fdfefd 100%);box-shadow:0 3px 0 #c9d8cf,0 18px 38px #315b4324,0 40px 85px #315b4320}
.login-card:before{content:"";position:absolute;inset:10px 18px -14px;z-index:-1;border-radius:22px;background:#72958128;filter:blur(18px)}
.login-brand{display:flex;align-items:center;justify-content:center;width:max-content;max-width:100%;margin:0 auto 34px}
.brand-logo{display:flex;align-items:center;justify-content:center;width:175px;height:80px;overflow:hidden}
.login-brand img{display:block;width:175px;height:auto;flex:0 0 auto}
.brand-divider{width:1px;height:56px;margin:0 24px;background:#cbd9d1;flex:0 0 1px}
.login-brand p{display:grid;gap:1px;margin:0;color:#29483a;font-size:25px;line-height:1.05;white-space:nowrap}
.login-brand p strong{display:block;font-weight:800}
.login-heading{text-align:center}.login-heading .kicker{margin:0 0 8px;color:var(--green);font-size:10px;font-weight:850;letter-spacing:.17em}
.login-heading h1{margin:0;font-size:34px;line-height:1.15;letter-spacing:-.04em}
.login-heading>p:last-child{margin:9px 0 26px;color:var(--muted);font-size:14px}
.alert{margin:0 0 20px;padding:12px 14px;border:1px solid #f3cbc6;border-radius:10px;background:#fff0ee;color:#9f261c;font-size:13px}
.alert:not(.error){border-color:#c9e7d6;background:#eaf6ef;color:#11663e}
.login-form{display:block}
.login-form>label{display:block;margin:0 0 8px;color:#2b4235;font-size:13px;font-weight:800}
.login-form>label:not(:first-of-type){margin-top:18px}
.login-field{position:relative}
.login-field>svg{position:absolute;top:50%;left:16px;width:20px;height:20px;transform:translateY(-50%);fill:none;stroke:#789084;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7;pointer-events:none}
.login-field input{display:block;width:100%;height:52px;padding:0 48px;border:1px solid #cbd9d1;border-radius:11px;background:#fbfcfb;color:var(--ink);font-size:16px;outline:none}
.login-field input::placeholder{color:#94a39b}
.login-field input:focus{border-color:var(--green-light);background:#fff;box-shadow:0 0 0 4px #0b9a5a16}
.password-field input{padding-right:52px}
.password-field input::-ms-reveal,.password-field input::-ms-clear{display:none}
.password-toggle{position:absolute;top:50%;right:7px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;transform:translateY(-50%);border:0;border-radius:8px;background:transparent;color:#687c71;cursor:pointer}
.password-toggle:hover,.password-toggle:focus-visible{background:#edf5f0;outline:2px solid #0b9a5a40}
.password-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7}
.login-submit{display:flex;align-items:center;justify-content:space-between;width:100%;height:52px;margin-top:24px;padding:0 20px;border:0;border-radius:11px;background:var(--green-light);color:#fff;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 9px 20px #087b4728}
.login-submit:hover{background:var(--green)}
.login-submit:focus-visible{outline:3px solid #0b9a5a40;outline-offset:3px}
.login-submit:disabled{cursor:wait;opacity:.9}
.button-spinner{display:none;width:19px;height:19px;border:2px solid #ffffff70;border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
.login-submit.is-loading .button-arrow{display:none}
.login-submit.is-loading .button-spinner{display:block}
.login-security{margin:22px 0 0;padding-top:18px;border-top:1px solid #e5ece8;color:#7a8b82;font-size:11px;text-align:center}
.login-security span{margin-right:7px;color:var(--green-light);font-size:8px}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:520px){
  html{background:#eaf2ed}
  .login-page{align-items:flex-start;padding:16px;background:linear-gradient(145deg,#f5f8f6,#e4eee8)}
  .login-card{margin-top:12px;padding:28px 22px;border-radius:18px;box-shadow:0 12px 34px #173d2818}
  .login-brand{margin-bottom:30px}
  .brand-logo{width:160px;height:74px}
  .login-brand img{width:160px}
  .brand-divider{height:52px}
  .brand-divider{margin-inline:18px}.login-brand p{font-size:22px}
  .login-heading h1{font-size:30px}
}
@media(max-width:370px){
  .login-page{padding:8px}
  .login-card{padding:24px 17px}
  .brand-logo{width:142px;height:66px}
  .login-brand img{width:142px}
  .brand-divider{margin-inline:13px}.login-brand p{font-size:19px}
  .login-heading h1{font-size:28px}
}
@media(max-height:650px) and (min-width:521px){
  .login-page{align-items:flex-start;padding:12px}
  .login-card{padding:24px 38px}
  .login-brand{margin-bottom:16px}
  .brand-logo{height:64px}
  .brand-divider{height:48px}
  .login-heading h1{font-size:29px}
  .login-heading>p:last-child{margin-bottom:17px}
  .login-form>label:not(:first-of-type){margin-top:10px}
  .login-field input,.login-submit{height:46px}
  .login-submit{margin-top:16px}
  .login-security{margin-top:14px;padding-top:11px}
}
@media(prefers-reduced-motion:reduce){.button-spinner{animation-duration:1.4s}}
