/* Sign in, sign up, callback and reset pages. One centred card in design-system surfaces. */
.auth-page{min-height:100vh;display:flex;flex-direction:column;background:#111;color:#fff}
.auth-top{display:flex;align-items:center;justify-content:space-between;height:74px;padding:0 28px}
.auth-top .brand{position:static;transform:none}
.auth-top .wordmark{height:20px;width:auto}
.auth-top a.auth-back{font-size:13px;color:#8a8a8a;text-decoration:none}
.auth-top a.auth-back:hover{color:#fff}
.auth-main{flex:1;display:grid;place-items:start center;padding:32px 20px 80px}
.auth-card{width:100%;max-width:400px}
.auth-card h1{margin:0 0 8px;font-size:28px;font-weight:500;letter-spacing:-.035em;line-height:1.15}
.auth-card>p{margin:0 0 26px;font-size:14px;line-height:1.6;color:#9e9e9e}
.auth-providers{display:grid;gap:10px}
.auth-provider{display:flex;align-items:center;justify-content:center;gap:10px;height:42px;border:1px solid var(--interactive-border,#262626);border-radius:10px;background:var(--surface-muted,#171717);color:#fff;font:500 14px/1 'Eshlon Sans',sans-serif;cursor:pointer;transition:background-color 150ms ease,border-color 150ms ease}
.auth-provider:hover{background:#1f1f1f;border-color:var(--interactive-border-hover,#363636)}
.auth-provider svg{width:18px;height:18px}
.auth-provider[disabled]{opacity:.55;cursor:default}
.auth-divider{display:flex;align-items:center;gap:14px;margin:22px 0 18px;color:#9e9e9e;font-size:14px}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--interactive-border,#262626)}
.auth-form{display:grid;gap:14px}
.auth-field{display:grid;gap:7px}
.auth-field label{font-size:13px;font-weight:500;color:#ddd}
.auth-field-row{display:flex;align-items:baseline;justify-content:space-between}
.auth-field-row a{font-size:12px;color:#8a8a8a;text-decoration:none}
.auth-field-row a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.auth-field input{box-sizing:border-box;width:100%;height:42px;padding:0 13px;border:1px solid #363636;border-radius:10px;background:#111;color:#ededed;font:400 14px/1.4 'Eshlon Sans',sans-serif;transition:border-color 150ms ease}
.auth-field input::placeholder{color:#666;opacity:1}
.auth-field input:focus{outline:none;border-color:#8a8a8a}
.auth-field input[aria-invalid="true"]{border-color:#bdbdbd}
.auth-page .auth-submit{height:42px;width:100%;font-size:14px;border-radius:10px;gap:10px}
.auth-page .auth-secondary{height:42px;width:100%;font-size:14px;border-radius:10px;background:transparent}
.auth-page .btn[disabled]{opacity:.55;cursor:wait}
.auth-message{margin:0;min-height:20px;font-size:13px;line-height:1.55;color:#bdbdbd}
.auth-message[data-tone="error"]{color:#fff}
.auth-message[data-tone="success"]{color:#dedede}
.auth-message:empty{display:none}
.auth-switch{margin:24px 0 0;font-size:13px;color:#8a8a8a;text-align:center}
.auth-switch a{color:#fff;text-decoration:none;border-bottom:1px solid #555}
.auth-switch a:hover{border-color:#fff}
.auth-fine{margin:18px 0 0;font-size:12px;line-height:1.6;color:#616161;text-align:center}
.auth-fine a{color:#8a8a8a}
.auth-notice{padding:14px 16px;border:1px solid var(--interactive-border,#262626);border-radius:10px;background:#171717;font-size:13px;line-height:1.6;color:#bdbdbd;margin-bottom:22px}
.auth-notice code{font-family:'Eshlon Mono',Consolas,monospace;font-size:12px;color:#eee}
.auth-hidden{display:none!important}
.auth-status{display:flex;align-items:center;gap:12px;font-size:14px;color:#bdbdbd}
.auth-spinner{width:16px;height:16px;border:2px solid #333;border-top-color:#fff;border-radius:50%;animation:auth-spin 800ms linear infinite}
@keyframes auth-spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.auth-top{height:66px;padding:0 20px}.auth-main{padding:20px 20px 60px}.auth-card h1{font-size:26px}}
@media(prefers-reduced-motion:reduce){.auth-provider,.auth-field input{transition:none}.auth-spinner{animation-duration:2s}}

/* Working buttons: spinner + label while a request is in flight. */
.auth-btn-spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;opacity:.8;animation:auth-spin 700ms linear infinite;flex-shrink:0}
.auth-page .btn.is-loading[disabled]{opacity:1;cursor:progress}
.auth-page .btn.primary.is-loading{background:#e6e6e6;border-color:#e6e6e6}

/* "Check your email" dialog. Panel motion is the transitions.dev modal recipe (06-modal). */
:root{--modal-open-dur:250ms;--modal-close-dur:150ms;--modal-scale:.96;--modal-scale-close:.96;--modal-ease:cubic-bezier(.22,1,.36,1)}
.t-modal{transform-origin:center;transform:scale(var(--modal-scale));opacity:0;pointer-events:none;transition:transform var(--modal-open-dur) var(--modal-ease),opacity var(--modal-open-dur) var(--modal-ease);will-change:transform,opacity}
.t-modal.is-open{transform:scale(1);opacity:1;pointer-events:auto}
.t-modal.is-closing{transform:scale(var(--modal-scale-close));opacity:0;pointer-events:none;transition:transform var(--modal-close-dur) var(--modal-ease),opacity var(--modal-close-dur) var(--modal-ease)}
@media (prefers-reduced-motion: reduce){.t-modal{transition:none!important}}

.auth-sent{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:20px;border:0;background:transparent;display:none;place-items:center;overflow:auto;color:#fff}
.auth-sent[open]{display:grid}
.auth-sent::backdrop{background:transparent}
.auth-sent-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.66);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity var(--modal-open-dur) var(--modal-ease)}
.auth-sent.is-open .auth-sent-backdrop{opacity:1}
.auth-sent.is-closing .auth-sent-backdrop{opacity:0;transition-duration:var(--modal-close-dur)}
.auth-sent-panel{position:relative;width:100%;max-width:440px;padding:36px 32px 28px;border:1px solid var(--interactive-border,#262626);border-radius:16px;background:#171717;text-align:center}
.auth-sent-x{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:#8a8a8a;cursor:pointer;transition:background-color 150ms ease,color 150ms ease,border-color 150ms ease}
.auth-sent-x:hover{background:#ffffff0d;color:#fff;border-color:var(--interactive-border,#262626)}
.auth-sent-x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.auth-sent-icon{display:inline-grid;place-items:center;width:56px;height:56px;margin-bottom:18px;border:1px solid var(--interactive-border,#262626);border-radius:50%;background:#1f1f1f;color:#fff}
.auth-sent-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.auth-sent h2{margin:0 0 10px;font-size:24px;font-weight:500;letter-spacing:-.03em;line-height:1.2}
.auth-sent-panel>p{margin:0;font-size:14px;line-height:1.65;color:#a8a8a8}
.auth-sent-panel>p strong{color:#fff;font-weight:500;word-break:break-all}
.auth-sent-actions{display:grid;gap:10px;margin-top:24px}
.auth-sent .btn{height:42px;width:100%;font-size:14px;border-radius:10px;text-decoration:none}
.auth-sent .btn.ghost{background:transparent;color:#fff}
.auth-sent .btn.ghost:hover:not([disabled]){background:#ffffff0d}
.auth-sent .btn[disabled]{opacity:.55;cursor:default}
.auth-sent .btn[hidden]{display:none}
.auth-sent-panel>.auth-sent-status{min-height:20px;margin-top:10px;font-size:13px;color:#dedede}
.auth-sent-panel>.auth-sent-note{margin-top:6px;font-size:12.5px;line-height:1.6;color:#7a7a7a}
.auth-sent-link{padding:0;border:0;background:none;color:#dedede;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.auth-sent-link:hover{color:#fff}
.auth-sent :focus-visible{outline:2px solid #8a8a8a;outline-offset:2px}
@media(max-width:760px){.auth-sent-panel{padding:32px 20px 22px}.auth-sent h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.auth-sent-backdrop,.auth-sent-x{transition:none}.auth-btn-spinner{animation-duration:2s}}
