.auth-body{min-width:320px;background:#f8f2e8}
.auth-page{position:relative;isolation:isolate;min-height:100vh;overflow:hidden;background:#f8f2e8;color:var(--ink)}
.auth-page__background{position:absolute;z-index:-4;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.auth-page::before{content:'';position:absolute;z-index:-3;inset:0;background:linear-gradient(180deg,rgba(7,54,29,.12) 0,rgba(7,54,29,0) 44%,rgba(248,242,232,.03) 100%)}
.auth-page__cream{position:absolute;z-index:-2;top:350px;right:0;bottom:0;left:0;background:#f8f2e8}
.auth-page__cream svg{position:absolute;left:0;right:0;top:-56px;width:100%;height:58px;overflow:visible}
.auth-page__cream path{fill:#f8f2e8;stroke:#d2a04b;stroke-width:2.5;vector-effect:non-scaling-stroke}
.auth-page__texture{position:absolute;z-index:-1;inset:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.17) 1.1px,transparent 1.1px);background-size:18px 18px;mask-image:linear-gradient(90deg,#000 0,transparent 39%,transparent 70%,#000 100%);opacity:.24}
.auth-shell{width:min(1480px,100%);min-height:100vh;margin-inline:auto;padding:0 58px 24px}

/* Brand and narrative */
.auth-top{height:245px;display:grid;grid-template-columns:1fr 1fr;align-items:start;padding-top:62px}
.auth-brand{display:flex;align-items:center;gap:23px;width:max-content;color:#fff}
.auth-brand>img{width:91px;height:91px;object-fit:contain}
.auth-brand__divider{width:1px;height:82px;background:rgba(255,255,255,.8)}
.auth-brand__words{display:flex;flex-direction:column}
.auth-brand__words strong{font:600 2.25rem/1 'Spectral',serif;letter-spacing:.08em;text-transform:uppercase}
.auth-brand__words small{margin-top:9px;color:#e0b34e;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.auth-intro{padding:8px 0 0 56px;color:#fff}
.auth-intro h1{font-size:clamp(2.25rem,3.4vw,3.2rem);font-weight:500;line-height:1.03;letter-spacing:-.02em}
.auth-intro h1 em{color:#7fcf76;font-weight:500}
.auth-intro p{max-width:500px;margin-top:14px;color:rgba(255,255,255,.87);font-size:.94rem;line-height:1.55}

/* Center stage */
.auth-stage{position:relative;display:grid;grid-template-columns:minmax(190px,250px) minmax(520px,760px) minmax(190px,250px);align-items:center;justify-content:space-between;gap:38px}
.auth-card{grid-column:2;padding:28px 34px 25px;border:1px solid #dfcfb5;border-radius:18px;background:rgba(255,252,247,.97);box-shadow:0 20px 46px rgba(50,31,20,.15);backdrop-filter:blur(8px)}
.auth-card__header{text-align:center;margin-bottom:20px}
.auth-card__header h2{color:var(--brown);font-size:2rem;font-weight:600}
.auth-card__header p{margin-top:5px;color:#83736a;font-size:.88rem}
.auth-alert{display:flex;align-items:flex-start;gap:10px;margin-bottom:16px;padding:11px 13px;border-radius:9px;font-size:.78rem;line-height:1.45}
.auth-alert ul{margin-left:15px}
.auth-alert--error{border:1px solid rgba(181,67,43,.22);background:rgba(181,67,43,.08);color:#8a3120}
.auth-alert--success{border:1px solid rgba(31,122,54,.22);background:rgba(31,122,54,.08);color:#155026}

/* Side benefits */
.auth-benefits{display:grid;gap:0;align-self:center}
.auth-benefits--left{grid-column:1;grid-row:1}.auth-benefits--right{grid-column:3;grid-row:1}
.auth-benefit{display:flex;align-items:flex-start;gap:15px;padding:30px 0;border-bottom:1px solid #dfcfb8}
.auth-benefit:last-child{border-bottom:0}
.auth-benefit>span{width:50px;height:50px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #d7b87e;border-radius:50%;background:rgba(255,252,247,.72);color:var(--brown)}
.auth-benefit strong{display:block;color:var(--brown);font:600 1rem/1.2 'Spectral',serif}
.auth-benefit p{max-width:155px;margin-top:6px;color:#7f7067;font-size:.75rem;line-height:1.5}

/* Registration role picker */
.auth-roles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:0 0 17px;padding:0;border:0}
.auth-roles input{position:absolute;width:1px;height:1px;opacity:0}
.auth-roles label{position:relative;height:56px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dccdb9;border-radius:9px;background:#fff;cursor:pointer;color:#523e33;font-size:.78rem;font-weight:700;transition:.2s}
.auth-roles label::after{content:'✓';position:absolute;top:4px;right:5px;width:17px;height:17px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:.65rem;opacity:0;transform:scale(.7);transition:.2s}
.auth-roles input:checked+label{border-color:var(--green);background:#eef7ef;color:var(--green-deep);box-shadow:inset 0 0 0 1px rgba(31,122,54,.12)}
.auth-roles input:checked+label::after{opacity:1;transform:scale(1)}
.auth-roles input:focus-visible+label{outline:3px solid rgba(39,150,60,.2);outline-offset:2px}

/* Form controls */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.auth-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
.auth-form .field{margin:0}
.auth-form .field--full{grid-column:1/-1}
.auth-form .field>label{margin-bottom:5px;color:#6f4f38;font-size:.64rem;font-weight:800;letter-spacing:.1em}
.auth-control{position:relative;color:#84796f}
.auth-control>.ui-icon{position:absolute;z-index:2;left:13px;top:50%;transform:translateY(-50%);pointer-events:none}
.auth-control input,.auth-control select{width:100%;height:43px;padding:0 13px 0 39px;border:1px solid #dccdb9;border-radius:8px;background:#fff;color:var(--ink);font-family:inherit;font-size:.82rem;transition:.2s}
.auth-control input::placeholder{color:#a2978e}
.auth-control input:focus,.auth-control select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(39,150,60,.1)}
.auth-control--password>div{width:100%}
.auth-control--password input{padding-left:39px!important;padding-right:62px!important}
.auth-control--password button{right:7px!important;color:var(--green-deep)!important;font-size:.64rem!important}

/* Checkbox, submit and links */
.auth-checkbox{display:flex;align-items:center;gap:8px;margin-top:13px;color:#6f625a;cursor:pointer}
.auth-checkbox input{position:absolute;width:1px;height:1px;opacity:0}
.auth-checkbox>span{width:19px;height:19px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #b9afa6;border-radius:4px;background:#fff;color:transparent;transition:.18s}
.auth-checkbox p{font-size:.78rem}.auth-checkbox strong{color:var(--green);font-weight:600}
.auth-checkbox input:checked+span{border-color:var(--green);background:var(--green);color:#fff}
.auth-checkbox input:focus-visible+span{outline:3px solid rgba(39,150,60,.18);outline-offset:2px}
.auth-submit{width:100%;height:44px;display:flex;align-items:center;justify-content:center;gap:18px;margin-top:13px;border:0;border-radius:8px;background:linear-gradient(135deg,#11833b,#086b31);color:#fff;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:0 9px 18px rgba(9,107,49,.16);transition:.22s}
.auth-submit:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(9,107,49,.24)}
.auth-switch{text-align:center;margin-top:11px;color:#8a7c73;font-size:.79rem}
.auth-switch a,.auth-form__options>a{color:var(--green-deep);font-weight:700}
.auth-back{width:max-content;display:flex;align-items:center;gap:7px;margin:16px auto 0;color:#7c6e65;font-size:.76rem}
.auth-form__options{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:2px 0 17px}
.auth-form__options .auth-checkbox{margin-top:0}
.auth-form__options>a{font-size:.78rem}

/* Login is intentionally calmer and narrower */
.auth-page--login .auth-card{max-width:540px;width:100%;justify-self:center;padding:38px 42px 31px}
.auth-page--login .auth-card__header{margin-bottom:27px}
.auth-page--login .auth-card__header h2{font-size:2.35rem}
.auth-form--login{display:grid;gap:17px}
.auth-form--login .auth-control input{height:51px;font-size:.88rem}
.auth-form--login .auth-form__options{margin-top:-2px;margin-bottom:2px}
.auth-form--login .auth-submit{height:50px;margin-top:0}

/* Assurance strip */
.auth-assurance{width:min(760px,100%);display:grid;grid-template-columns:repeat(4,1fr);margin:18px auto 0;color:#5c4d45}
.auth-assurance span{display:flex;align-items:center;justify-content:center;gap:8px;padding:4px 14px;border-right:1px solid #dacdbd;font-size:.71rem;white-space:nowrap}
.auth-assurance span:last-child{border-right:0}

@media(max-width:1180px){
  .auth-shell{padding-inline:34px}
  .auth-stage{grid-template-columns:170px minmax(500px,720px) 170px;gap:22px}
  .auth-benefit{gap:10px}.auth-benefit>span{width:43px;height:43px}.auth-benefit p{max-width:125px}
  .auth-brand__words strong{font-size:1.9rem}.auth-intro{padding-left:28px}
}

@media(max-width:900px){
  .auth-page__cream{top:275px}
  .auth-shell{padding-inline:22px}
  .auth-top{height:235px;grid-template-columns:1fr;justify-items:center;padding-top:30px;text-align:center}
  .auth-brand>img{width:64px;height:64px}.auth-brand__divider{height:58px}.auth-brand__words strong{font-size:1.5rem}.auth-brand__words small{font-size:.58rem}
  .auth-intro{padding:22px 0 0}.auth-intro h1{font-size:2rem}.auth-intro h1 br{display:none}.auth-intro p{margin-top:8px;font-size:.82rem}
  .auth-stage{display:block}.auth-benefits{display:none}
  .auth-card{width:min(760px,100%);margin-inline:auto}
}

@media(max-width:640px){
  .auth-page__background{height:100%;object-position:36% top}
  .auth-shell{padding:0 15px 22px}
  .auth-top{height:225px;padding-top:23px}
  .auth-brand{gap:12px}.auth-brand>img{width:54px;height:54px}.auth-brand__divider{height:48px}.auth-brand__words strong{font-size:1.24rem}.auth-brand__words small{margin-top:5px;font-size:.5rem}
  .auth-intro{padding-top:19px}.auth-intro h1{font-size:1.75rem}.auth-intro p{max-width:340px;font-size:.77rem}
  .auth-card,.auth-page--login .auth-card{padding:24px 18px 22px;border-radius:15px}
  .auth-card__header{margin-bottom:17px}.auth-card__header h2,.auth-page--login .auth-card__header h2{font-size:1.8rem}
  .auth-roles{grid-template-columns:1fr 1fr;gap:8px}.auth-roles label{height:50px}
  .auth-form__grid{grid-template-columns:1fr;gap:11px}.auth-form .field--full{grid-column:auto}
  .auth-control input,.auth-control select{height:46px}
  .auth-assurance{grid-template-columns:1fr 1fr;gap:10px 0;margin-top:14px}.auth-assurance span{border:0;font-size:.68rem}
  .auth-page--login .auth-top{height:240px}
}

@media(prefers-reduced-motion:reduce){
  .auth-roles label,.auth-roles label::after,.auth-checkbox>span,.auth-submit{transition:none}
}
