/* Provotics account flow: a focused, single-screen split shared by login / signup / recovery.
   Loaded after v2.css so it owns the .auth namespace. The two !important rules below deliberately
   beat v2.css's global "form refinements" (lines ~658-661) so the account pages keep the softer,
   rounded field treatment that suits a sign-in, not the squared marketing-form look. */

.auth{display:grid;grid-template-columns:1.06fr .94fr;border-top:1px solid var(--line)}

/* Simplified single-column variant: one centered card, no identity panel. */
.auth.solo{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 112px);padding:clamp(48px,9vh,110px) 22px}
.auth.solo .auth-card{max-width:380px}
.auth.solo .auth-card.wide{max-width:600px}
.auth-logo{display:inline-flex;margin-bottom:24px}
.auth-logo svg{width:30px;height:30px}
.auth-logo svg rect{fill:var(--ink)}

/* Left: identity panel. The strata mark (the logo's layered bars, one pulled out in terracotta) is
   the signature; it echoes how the model reads a tumor as stratified signal. */
.auth-aside{position:relative;background:var(--bg2);border-right:1px solid var(--line)}
.auth-aside::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(115% 80% at 100% 0,rgba(164,80,31,.10),transparent 58%)}
.auth-aside-inner{position:sticky;top:0;overflow:hidden;min-height:calc(100vh - 112px);
  display:flex;flex-direction:column;justify-content:space-between;gap:44px;padding:clamp(40px,5vw,76px)}
.auth-brandline{position:relative;display:flex;align-items:center;gap:10px;font-family:var(--fd);
  font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.auth-brandline .logo{width:20px;height:20px}
.auth-brandline .logo rect{fill:var(--ink)}
.auth-lead{position:relative}
.auth-lead h1{font-size:clamp(38px,4.4vw,60px);letter-spacing:-.045em;line-height:.98;margin-bottom:20px}
.auth-lead h1 .serif-i{font-family:var(--fs);font-style:italic;font-weight:400}
.auth-lead p{font-size:clamp(15px,1.15vw,18px);color:var(--muted);line-height:1.5;max-width:34ch}
.auth-strata{position:relative;width:100%;max-width:300px;height:auto}
.auth-strata rect{transform-box:fill-box;transform-origin:left center;animation:strataIn .72s cubic-bezier(.2,.75,.25,1) both}
/* animate transform only, so each bar keeps its own inline opacity (a fade-to-1 would flatten it) */
@keyframes strataIn{from{transform:scaleX(.16)}to{transform:scaleX(1)}}
.auth-foot{position:relative;display:flex;align-items:center;gap:9px;font-size:13px;color:var(--faint)}
.auth-foot svg{flex:0 0 auto;color:var(--faint)}

/* Right: the form, vertically centered and compact. */
.auth-main{display:flex;align-items:center;justify-content:center;padding:clamp(36px,5vw,64px) clamp(22px,5vw,60px)}
.auth-card{width:100%;max-width:392px}
.auth-card.wide{max-width:600px}
.auth-card h1,.auth-card h2{font-size:30px;letter-spacing:-.035em;line-height:1;margin-bottom:8px}
.auth-sub{font-size:14.5px;color:var(--muted);line-height:1.5;margin:0 0 24px;max-width:52ch}

/* OAuth providers: real server-side authorization-code flows, not client-side tokens. */
.oauth-stack{display:grid;gap:10px}
.oauth-stack[hidden],.auth-divider[hidden],.oauth-btn[hidden]{display:none!important}
.oauth-btn{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;min-height:46px;padding:11px 16px;
  border:1px solid var(--line-2);border-radius:8px;background:var(--panel);color:var(--ink);font-family:var(--fd);
  font-size:14px;font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:border-color .16s,background .16s,transform .16s;position:relative}
.oauth-btn:disabled{cursor:wait;opacity:.65;transform:none}
.oauth-btn:hover{border-color:var(--ink);background:color-mix(in srgb,var(--ink) 5%,var(--panel));transform:translateY(-1px)}
.oauth-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.oauth-btn.is-last-used{border-color:color-mix(in srgb,var(--accent) 55%,var(--line-2));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
.oauth-icon{width:19px;height:19px;flex:0 0 auto}
.oauth-icon--github{color:var(--ink)}
.oauth-label{flex:0 1 auto}
.last-used{
  margin-left:auto;flex:0 0 auto;font-family:var(--fm);font-size:9px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));
  background:color-mix(in srgb,var(--accent) 10%,var(--panel));padding:3px 7px;border-radius:4px;line-height:1.2;
}
.last-used[hidden]{display:none!important}
.login-method-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px}
.login-method-btn.is-last-used{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)}
.login-method-btn .last-used{color:inherit;border-color:color-mix(in srgb,currentColor 35%,transparent);background:color-mix(in srgb,currentColor 12%,transparent)}
.auth-divider{display:flex;align-items:center;gap:12px;margin:22px 0;color:var(--faint);font-family:var(--fm);
  font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.auth-divider::before,.auth-divider::after{height:1px;content:"";background:var(--line);flex:1}

/* Fields */
.fld{margin-bottom:16px}
.fld label{display:block;font-family:var(--fd);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:8px}
.fld .req{color:var(--accent);letter-spacing:0}
.fld input,.fld select,.fld textarea{width:100%;padding:13px 15px;border:1px solid var(--line-2);border-radius:8px!important;background:var(--panel)!important;color:var(--ink);font-family:var(--fb);font-size:15px;transition:border-color .15s,box-shadow .15s}
.fld textarea{min-height:112px;resize:vertical}
.fld input::placeholder,.fld textarea::placeholder{color:var(--faint)}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(164,80,31,.15)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* Consent row (signup) */
.consent{display:flex;gap:11px;align-items:flex-start;background:rgba(164,80,31,.06);border:1px solid var(--line);border-radius:8px;padding:13px 15px;margin:8px 0 16px}
.consent input{margin-top:3px;width:17px;height:17px;accent-color:var(--accent);flex:0 0 auto}
.consent label{font-family:var(--fb);font-size:13.5px;color:var(--muted);line-height:1.5;font-weight:400;margin:0;text-transform:none;letter-spacing:normal}
.consent a{color:var(--accent);text-decoration:underline}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Buttons, messages, links */
.auth-card .btn{margin-top:8px;width:100%;justify-content:center}
.fmsg{margin-top:14px;font-weight:600;color:var(--accent);min-height:1.2em;font-size:14px}
.l-note{font-size:13.5px;font-weight:500;color:#2f5d2f;background:rgba(47,93,47,.08);border:1px solid rgba(47,93,47,.22);border-radius:7px;padding:11px 13px;margin-bottom:18px}
.l-lock{margin-top:11px;font-size:13.5px;color:var(--muted);line-height:1.45}
.authlink{margin-top:14px;font-size:14px;color:var(--muted)}
.authlink a,.authlink .accent{color:var(--accent);font-weight:500}
.linkbtn{background:none;border:0;color:var(--accent);font:inherit;cursor:pointer;padding:0;text-decoration:underline}
.authrow{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.authrow a{color:var(--accent);font-weight:500}

/* Success state (forgot / verify) */
.ok-box{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:22px 24px}
.ok-box h3{font-family:var(--fd);font-weight:600;font-size:20px;margin-bottom:8px;letter-spacing:-.02em}
.ok-box p{color:var(--muted);font-size:15px;line-height:1.55}

/* Slim footer: an auth page stays one focused screen, not the full sitemap. */
.auth-footer{border-top:1px solid var(--line);padding:20px 0;font-size:13px;color:var(--faint)}
.auth-footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.auth-footer a{color:var(--muted)}
.auth-footer a:hover{color:var(--accent)}

/* Responsive: stack identity over form. */
@media (max-width:860px){
  .auth{grid-template-columns:1fr}
  .auth-aside{border-right:none;border-bottom:1px solid var(--line)}
  .auth-aside-inner{position:static;min-height:0;gap:30px;justify-content:flex-start}
  .auth-strata{max-width:220px}
  .auth-main{padding:44px 22px 60px}
  .auth-card,.auth-card.wide{max-width:440px}
}
@media (max-width:560px){ .grid2{grid-template-columns:1fr} }
@media (prefers-reduced-motion:reduce){ .auth-strata rect{animation:none} }
@media (prefers-reduced-motion:reduce){ .oauth-btn{transition:none}.oauth-btn:hover{transform:none} }
