/* Sign-in, sign-up, password reset, invitations (layouts/auth.tpl + views/auth/*). Needs fs-base.css. */

.fs-auth-body{background:var(--fs-surface)}
.fs-auth{display:grid;grid-template-columns:1fr;min-height:100svh;flex:1 0 auto}
@media (min-width:992px){
  .fs-auth{grid-template-columns:minmax(0,1.04fr) minmax(0,1fr)}
  .fs-auth.is-form-heavy{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)}
}

/* ---------- left panel: photo, brand, pitch */
.fs-auth-aside{display:none;position:relative;overflow:hidden;background:radial-gradient(120% 80% at 0% 100%,#0f4a3c 0%,transparent 60%),linear-gradient(160deg,var(--fs-dark-2),var(--fs-dark-1) 70%);color:var(--fs-on-dark);isolation:isolate}
@media (min-width:992px){.fs-auth-aside{display:block;position:sticky;top:0;height:100svh}}
.fs-auth-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;z-index:-2}
.fs-auth-aside::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(9,30,26,.78) 0%,rgba(9,30,26,.2) 34%,rgba(9,30,26,.55) 66%,rgba(9,30,26,.94) 100%),radial-gradient(60% 50% at 85% 10%,rgba(70,206,149,.18),transparent 70%)}
.fs-auth-aside-in{display:flex;flex-direction:column;justify-content:space-between;gap:2rem;height:100%;padding:clamp(1.75rem,3.2vw,3.25rem)}
.fs-auth-aside-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.fs-auth-brand{display:inline-flex;align-items:center;text-decoration:none;color:inherit;font-weight:800;font-size:1.3rem;letter-spacing:-.02em}
.fs-auth-brand img{display:block;height:2.75rem;width:auto;max-width:10rem;object-fit:contain}
.fs-auth-pitch{max-width:31rem}
.fs-auth-pitch-title{margin:0 0 .85rem;font-size:clamp(1.8rem,1.15rem + 1.9vw,2.6rem);font-weight:800;line-height:1.08;letter-spacing:-.025em;color:#fff;text-wrap:balance}
.fs-auth-pitch-text{margin:0;max-width:28rem;font-size:1rem;line-height:1.6;color:var(--fs-on-dark-muted)}
.fs-auth-pitch-foot{margin:1.75rem 0 0;font-size:.9rem;color:var(--fs-on-dark-muted)}
.fs-auth-pitch-foot a{color:#fff;font-weight:700;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:1px}
.fs-auth-pitch-foot a:hover{color:#fff;border-bottom-color:#fff}
.fs-auth-perks{margin-top:1.6rem;padding:1.15rem 1.3rem;border-radius:var(--fs-r-lg);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px);max-width:29rem}
.fs-auth-perks b{display:block;margin-bottom:.75rem;font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7de3bc}
.fs-auth-perks ul{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.fs-auth-perks li{display:flex;align-items:center;gap:.75rem;font-size:.95rem;font-weight:600;color:#fff}
.fs-auth-perks li i{flex:none;display:grid;place-items:center;width:2rem;height:2rem;border-radius:10px;background:rgba(125,227,188,.16);color:#7de3bc;font-size:1rem}
@media (prefers-reduced-motion:no-preference){
  .fs-auth-pitch>*{animation:fs-auth-rise .6s cubic-bezier(.22,1,.36,1) both}
  .fs-auth-pitch>:nth-child(2){animation-delay:.08s}
  .fs-auth-pitch>:nth-child(3){animation-delay:.16s}
  .fs-auth-pitch>:nth-child(4){animation-delay:.24s}
}
@keyframes fs-auth-rise{from{opacity:0;transform:translateY(.9rem)}to{opacity:1;transform:none}}

/* ---------- right panel: form */
.fs-auth-main{position:relative;display:flex;flex-direction:column;min-height:100svh;padding:1.25rem clamp(1.25rem,4vw,4rem) 1.25rem;background:var(--fs-surface)}
@media (min-width:992px){.fs-auth-main{box-shadow:-24px 0 48px -28px rgba(0,0,0,.35)}}
.fs-auth-top{display:flex;align-items:center;gap:.75rem;min-height:2.75rem}
.fs-auth-brand-sm img{height:2.25rem}
.fs-logo-dark,[data-bs-theme=dark] .fs-logo-light{display:none!important}
[data-bs-theme=dark] .fs-logo-dark{display:block!important}
.fs-auth-back{display:none;align-items:center;gap:.45rem;font-size:.85rem;font-weight:650;color:var(--fs-muted);text-decoration:none;padding:.4rem .7rem .4rem .55rem;border-radius:99px;transition:background-color .2s,color .2s}
.fs-auth-back:hover{background:var(--fs-soft);color:var(--fs-brand-text)}
.fs-auth-back i{transition:transform .2s}
.fs-auth-back:hover i{transform:translateX(-3px)}
.fs-auth-top-locale{margin-left:auto}
@media (min-width:992px){
  .fs-auth-brand-sm,.fs-auth-top-locale{display:none}
  .fs-auth-back{display:inline-flex}
}
.fs-auth-center{flex:1 0 auto;display:flex;flex-direction:column;justify-content:center;padding-block:clamp(1.5rem,5svh,3rem)}
.fs-auth-box{width:100%;max-width:25.5rem;margin-inline:auto}
.fs-auth-box.is-wide{max-width:37rem}
.fs-auth-copy{margin:0;text-align:center;font-size:.75rem;color:var(--fs-muted)}

/* ---------- headings inside the form box */
.fs-auth-head{text-align:center;margin-bottom:1.6rem}
.fs-auth-head.is-start{text-align:left}
.fs-auth-title{margin:0 0 .45rem;font-size:clamp(1.55rem,1.25rem + .9vw,1.95rem);font-weight:800;letter-spacing:-.025em}
.fs-auth-sub{margin:0;color:var(--fs-muted);line-height:1.55}
.fs-auth-sub strong{color:var(--fs-ink);word-break:break-all}
.fs-auth-step-enter{animation:fs-auth-rise .35s cubic-bezier(.22,1,.36,1)}

/* ---------- other ways to sign in */
.fs-auth-alt{display:grid;gap:.55rem}
.fs-auth-alt .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-size:.92rem}
.fs-auth-alt .btn img{width:1.05rem;height:1.05rem}
.fs-auth-alt .btn:not(.btn-outline):not(.btn-tint){border:1px solid var(--fs-line);background:var(--fs-surface);color:var(--fs-ink)}
.fs-auth-alt .btn:not(.btn-outline):not(.btn-tint):hover{border-color:color-mix(in srgb,var(--fs-brand) 35%,var(--fs-line));background:var(--fs-soft)}

.fs-auth-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}
.fs-auth-after{margin:1.5rem 0 0;text-align:center;font-size:.85rem;color:var(--fs-muted)}
.fs-auth-after a{font-weight:700;text-decoration:none}

/* ---------- sign-up: numbered sections */
.fs-steps{counter-reset:fs-step}
.fs-step{position:relative;padding-left:3.1rem;padding-bottom:1.9rem}
.fs-step:last-child{padding-bottom:0}
.fs-step:has(.fs-step-n){counter-increment:fs-step}
.fs-step::before{content:"";position:absolute;left:calc(1.05rem - 1px);top:2.45rem;bottom:.25rem;width:2px;border-radius:2px;background:var(--fs-line)}
.fs-step:last-child::before{display:none}
.fs-step-dot{position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:50%;border:1px solid var(--fs-line);background:var(--fs-surface);color:var(--fs-muted);font-size:.8rem;font-weight:800;transition:background-color .2s,border-color .2s,color .2s}
.fs-step-n::before{content:counter(fs-step)}
.fs-step-ok{display:none;font-size:.95rem}
.fs-step:focus-within .fs-step-dot{background:var(--fs-brand);border-color:var(--fs-brand);color:#fff}
.fs-step.is-done .fs-step-dot{background:var(--fs-brand-tint);border-color:var(--fs-brand-tint-2);color:var(--fs-brand-text)}
.fs-step.is-done .fs-step-n{display:none}
.fs-step.is-done .fs-step-ok{display:inline-flex}
.fs-step-head{display:flex;align-items:center;min-height:2.1rem;margin-bottom:1rem}
.fs-step-head h2{margin:0;font-size:1rem;font-weight:750}
.fs-seg{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;padding:.3rem;border-radius:var(--fs-r);background:var(--fs-soft);border:1px solid var(--fs-line)}
.fs-seg .btn{border:0;border-radius:var(--fs-r-sm);--bs-btn-padding-y:.55rem;color:var(--fs-muted);background:transparent}
.fs-seg .btn-check:checked+.btn{background:var(--fs-surface);color:var(--fs-brand-text);box-shadow:var(--fs-shadow-sm),0 0 0 1px var(--fs-brand-tint-2)}
.fs-seg .btn:hover{color:var(--fs-ink)}
.fs-more{border:1px dashed color-mix(in srgb,var(--fs-brand) 25%,var(--fs-line));border-radius:var(--fs-r);padding:0 1rem}
.fs-more summary{display:flex;align-items:center;gap:.5rem;padding:.8rem 0;font-weight:700;font-size:.9rem;color:var(--fs-brand-text);cursor:pointer;list-style:none}
.fs-more summary::-webkit-details-marker{display:none}
.fs-more[open]{border-style:solid;padding-bottom:1rem}
.fs-more[open] summary i::before{content:"\F63B"}
.fs-contracts .accordion-button{font-size:.85rem;font-weight:700;padding:.6rem .9rem}
.fs-contract-text{max-height:10rem;overflow:auto;font-size:.8125rem;line-height:1.7}
.fs-contract-text,.fs-contract-text *{color:var(--fs-muted)!important;font-family:inherit!important;background:transparent!important;text-align:left!important}
.fs-contract-text strong,.fs-contract-text b{font-weight:650!important}
.fs-contract-text p{margin:0 0 .5rem}

/* ---------- small summary card (verify / ready) */
.fs-auth-card{padding:1.25rem;border:1px solid var(--fs-line);border-radius:var(--fs-r-lg);background:var(--fs-soft)}
.fs-auth-card.is-row{display:flex;align-items:center;gap:.9rem;text-align:left}
.fs-auth-card .fs-ico{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:2.75rem;height:2.75rem;border-radius:12px;background:var(--fs-brand-tint);color:var(--fs-brand-text);font-size:1.25rem}

/* ---------- invitations */
.fs-invite-access{margin-bottom:1.5rem;padding:.9rem 1rem;border:1px solid var(--fs-line);border-radius:var(--fs-r);background:var(--fs-soft)}
.fs-invite-access p{margin:0 0 .5rem;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--fs-muted)}
.fs-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:99px;font-size:.78rem;font-weight:700;background:var(--fs-surface);border:1px solid var(--fs-line);color:var(--fs-text)}
.fs-chip.is-brand{background:var(--fs-brand-tint);border-color:var(--fs-brand-tint-2);color:var(--fs-brand-text)}

/* the cookie notice sits over the form side, not over the panel text */
@media (min-width:992px){.fs-auth-body .fs-cookie{left:auto;right:1.5rem}}
