/* Standalone sign-in and registration pages. Colours come only from tokens.css roles. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Avenir Next","Segoe UI",Arial,sans-serif;color:var(--color-text-default);background:var(--color-surface-page);font-size:16px;line-height:1.5}
img{display:block;max-width:100%;height:auto}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:3px}

.auth-layout{min-height:100dvh;display:grid;grid-template-columns:minmax(360px,42%) 1fr}
.auth-brand{background:var(--color-surface-inverse);color:var(--color-text-inverse);padding:48px 56px;display:flex;flex-direction:column;gap:48px}
.auth-brand-logo{width:150px}
.auth-brand-copy{margin-block:auto}
.auth-brand-title{font-size:clamp(26px,2.6vw,34px);font-weight:700;line-height:1.25;margin:0;max-width:18ch}
.auth-brand ul{list-style:none;padding:0;margin:32px 0 0;display:grid;gap:14px;color:var(--color-text-inverse-subtle);font-size:16px}
.auth-brand li{display:flex;gap:12px;align-items:baseline}
.auth-brand li::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--color-brand-accent);transform:translateY(-1px)}
.auth-brand-foot{margin:0;color:var(--color-text-inverse-subtle);font-size:14px}

.auth-panel{display:flex;flex-direction:column;padding:24px 32px 40px;min-width:0}
.auth-top{display:flex;align-items:center;justify-content:flex-end;gap:16px;min-height:44px}
.auth-back{margin-right:auto;color:var(--color-text-link);font-weight:600;font-size:14px;text-decoration:none}
.auth-back::before{content:"← "}
.auth-back:hover{text-decoration:underline}
.language-switch{display:inline-flex;border:1px solid var(--color-border-subtle);border-radius:999px;padding:3px;background:var(--color-surface-card)}
.language-switch button{font:inherit;font-size:13px;font-weight:600;border:0;background:none;color:var(--color-text-subtle);padding:6px 12px;border-radius:999px;cursor:pointer;min-height:36px}
.language-switch button[aria-pressed=true]{background:var(--color-surface-inverse);color:var(--color-text-inverse)}

.auth-card{width:min(460px,100%);margin:auto;background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:18px;padding:40px;box-shadow:0 20px 50px -30px rgb(var(--color-shadow-rgb) / .35)}
.auth-logo{width:132px;margin-bottom:28px}
.auth-card h1{font-size:26px;line-height:1.25;margin:0;font-weight:700}
.auth-intro{color:var(--color-text-subtle);margin:10px 0 0;font-size:15px}
.auth-form{display:grid;gap:18px;margin-top:28px}
.auth-form label{display:grid;gap:8px;font-size:14px;font-weight:600}
.auth-form input{font:inherit;font-size:16px;width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--color-border-control);border-radius:10px;background:var(--color-surface-card);color:var(--color-text-default)}
.auth-form input:focus{border-color:var(--color-action-primary)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field-hint{font-weight:400;color:var(--color-text-subtle);font-size:13px}
.password-field{position:relative;display:block}
.password-field input{padding-right:52px}
.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;border:0;background:none;border-radius:8px;color:var(--color-text-subtle);cursor:pointer}
.password-toggle:hover,.password-toggle[aria-pressed=true]{color:var(--color-text-link)}
.auth-error{margin:0;color:var(--color-critical-text);font-size:14px;font-weight:600;min-height:0}
.auth-error:empty{display:none}
.auth-submit{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;border:0;border-radius:10px;background:var(--color-action-primary);color:var(--color-text-on-primary);font:inherit;font-weight:600;font-size:16px;text-decoration:none;cursor:pointer}
.auth-submit:hover{background:var(--color-action-primary-hover)}
.auth-submit:disabled{background:var(--color-action-disabled);color:var(--color-text-disabled);cursor:progress}
.auth-switch{text-align:center;margin:24px 0 0;color:var(--color-text-subtle);font-size:15px}
.auth-switch a{color:var(--color-text-link);font-weight:600;text-decoration:none}
.auth-switch a:hover{text-decoration:underline}
.auth-signed-in{display:grid;gap:14px;margin-top:24px}
.auth-signed-in p{margin:0;color:var(--color-text-subtle)}
.auth-signed-in .auth-note{font-size:14px}

@media (max-width:960px){
  .auth-layout{grid-template-columns:1fr}
  .auth-brand{display:none}
}
@media (max-width:520px){
  .auth-panel{padding:16px 16px 28px}
  .auth-card{padding:28px 22px;border-radius:16px}
  .field-row{grid-template-columns:1fr}
}
