/*
 * Sign-in, password and account-request screens in the public website's
 * style (layout: resources/views/website/auth.blade.php). Loaded after
 * website.css and built from its tokens: a dark stage with the hero glow and
 * a white card holding the form.
 */
.auth{position:relative;overflow:hidden;padding:72px 0 96px;min-height:calc(100vh - var(--nav-h))}
.auth .glow{position:absolute;left:50%;top:38%;width:120vw;height:70vh;transform:translate(-50%,-50%);pointer-events:none;
  background:radial-gradient(closest-side,rgba(76,195,138,.16),rgba(90,200,200,.07) 45%,transparent 70%)}
.auth .wrap{position:relative;z-index:1}
.auth-intro{text-align:center;margin:0 auto 30px;max-width:34em}
.auth-intro .logo{height:clamp(62px,6vw,84px);width:auto;display:block;margin:0 auto 18px}
.auth-intro .eyebrow{color:var(--teal)}

.auth-card{max-width:520px;margin:0 auto;background:#fff;color:var(--ink);border-radius:26px;padding:40px 40px 34px;
  box-shadow:0 40px 100px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.06);animation:fadeup .45s var(--ease) both}
.auth-card.wide{max-width:860px}
.auth-card a{color:var(--blue-ink)}
.auth-card .eyebrow{color:var(--grey2)}
.auth-card h1{font-size:clamp(28px,3.4vw,38px);line-height:1.08;font-weight:700;letter-spacing:-.03em;margin-top:8px}
.auth-card .sub{color:var(--grey2);font-size:16px;margin-top:10px;line-height:1.45}

.auth-form{display:grid;gap:18px;margin-top:28px}
.auth-form .grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:grid;gap:7px;min-width:0}
.field > label,.field-label{font-size:13px;font-weight:600;color:var(--ink)}
.field .opt{font-weight:500;color:var(--grey2)}
.auth-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.auth-form select,.auth-form textarea{font:inherit;font-size:16px;border:1px solid #d2d2d7;border-radius:12px;padding:12px 14px;
  color:var(--ink);background:#fff;width:100%;transition:border-color .2s}
.auth-form select{appearance:none;-webkit-appearance:none;padding-right:38px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236e6e73' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center}
.auth-form select:disabled{background-color:var(--paper);color:var(--grey2)}
.auth-form input:focus,.auth-form select:focus,.auth-form textarea:focus{outline:2px solid var(--blue-ink);outline-offset:1px;border-color:var(--blue-ink)}
.field input.bad,.field.has-error input,.field.has-error select{border-color:#c0392b;background:#fff6f5}
.field-error{color:#c0392b;font-size:13px;line-height:1.4}

/* password with a show / hide switch */
.pw{position:relative}
.pw input{padding-right:78px}
.pw .pw-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:var(--paper);color:var(--ink);
  border-radius:980px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer}
.pw .pw-toggle:hover{background:var(--mist)}

.check,.field > label.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;font-weight:400;color:var(--grey2);line-height:1.45}
.check input{width:18px;height:18px;margin:1px 0 0;flex:none;accent-color:var(--blue-ink)}
.auth-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:14px}

.auth-submit{width:100%;border:0;border-radius:980px;padding:14px 28px;font-size:16px;font-weight:600;background:var(--blue-ink);color:#fff;cursor:pointer;transition:background .2s}
.auth-submit:hover{background:#0077ed}
.auth-submit:disabled{opacity:.6;cursor:progress}
.auth-link-btn{border:0;background:none;padding:0;font:inherit;color:var(--blue-ink);cursor:pointer}
.auth-link-btn:hover{text-decoration:underline}

.notice{border-radius:14px;padding:12px 16px;font-size:14px;line-height:1.45;margin-top:22px}
.notice.ok{background:#eaf7f0;color:#1f6b45;border:1px solid #bfe6cf}
.notice.bad{background:#fff3f1;color:#9b2c1f;border:1px solid #f3c6bf}
.notice ul{margin:0;padding-left:18px}

.auth-alt{margin-top:22px;padding-top:20px;border-top:1px solid rgba(0,0,0,.08);text-align:center;font-size:14px;color:var(--grey2)}
.auth-below{text-align:center;margin-top:26px;font-size:13px;color:var(--grey)}
.auth-below .custodians{margin-top:0}

/* one-time code */
.otp{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;max-width:380px;margin:0 auto}
.otp input{text-align:center;font-size:24px;font-weight:600;padding:14px 0;font-variant-numeric:tabular-nums}

/* request an account */
.roles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.role-btn{display:flex;flex-direction:column;gap:4px;text-align:left;cursor:pointer;background:#fff;border:1px solid rgba(0,0,0,.14);border-radius:16px;
  padding:16px 16px;font:inherit;color:var(--ink);transition:border-color .2s,box-shadow .2s,transform .2s var(--ease)}
.role-btn:hover{transform:translateY(-2px);border-color:var(--ink)}
.role-btn.active{border-color:var(--blue-ink);box-shadow:0 0 0 2px var(--blue-ink)}
.role-btn b{font-size:15px}
.role-btn span{font-size:13px;color:var(--grey2)}
.panel{border:1px solid rgba(0,0,0,.1);border-radius:18px;padding:20px;background:var(--paper);display:grid;gap:14px}
.panel-title{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--grey2)}
.assoc-row{display:flex;gap:10px}
.assoc-row input{flex:1}
.assoc-remove{flex:none;width:46px;border:1px solid #d2d2d7;border-radius:12px;background:#fff;color:var(--grey2);cursor:pointer;display:grid;place-items:center}
.assoc-remove:disabled{opacity:.35;pointer-events:none}
.add-btn{justify-self:start;display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px dashed rgba(0,0,0,.28);border-radius:980px;
  padding:9px 18px;font:inherit;font-size:14px;color:var(--ink);cursor:pointer}
.add-btn:hover{border-style:solid;border-color:var(--ink)}
.thanks{text-align:center}
.thanks .tick{width:62px;height:62px;border-radius:50%;background:#1f8c5a;display:grid;place-items:center;margin:0 auto 18px}
.thanks .tick svg{width:32px;height:32px;stroke:#fff;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.thanks .fine{font-size:14px;color:var(--grey2);margin-top:14px}

/* minimal nav for staff sign-in screens */
.nav .back{margin-left:auto;color:rgba(245,245,247,.82);font-size:13px}
.nav .back:hover{color:#fff;text-decoration:none}

.d-none{display:none !important}

@media (max-width:700px){
  .auth{padding:44px 0 64px}
  .auth-card{padding:30px 22px 26px;border-radius:22px}
  .auth-form .grid2,.roles{grid-template-columns:1fr}
  .otp{gap:7px}
  .otp input{font-size:20px;padding:12px 0}
}
@media (prefers-reduced-motion:reduce){ .auth-card{animation:none} .role-btn{transition:none} }
