/* Authentication follows the approved chapter/operator paper, ink and rose UI.
   No marketing card, decorative image or second chapter sign-in method. */
@font-face{font-family:LoginJost;src:url('../assets/fonts/chapter-Jost.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:LoginCormorant;src:url('../assets/fonts/chapter-Cormorant.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--bg:#f9f7f4;--ink:#1b1714;--muted:#716961;--line:#ddd5c8;--card:#f9f7f4;--rose:#ce8b95;--rose-hover:#c47f89;--red:#9c3947;--body:LoginJost,system-ui,sans-serif;--head:LoginCormorant,Georgia,serif;color-scheme:light}
html,body{touch-action:manipulation}
body{min-height:100dvh;font-size:16px}
button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:is(button,a,input,summary):focus-visible{outline:2px solid #a96872;outline-offset:4px}
.login-header{border-bottom:1px solid var(--line)}
.login-header nav{max-width:1440px;min-height:72px;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 32px}
.login-brand{display:flex;align-items:center;min-height:44px}
.login-brand img{display:block;width:184px;height:28px;object-fit:contain}
.login-help{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;font-size:14px;color:var(--muted)}
.login-help:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.login-main{padding:clamp(56px,10vh,108px) 24px 48px}
.login-panel{max-width:380px;margin-inline:auto}
.login-panel h1{font:500 38px/1.15 var(--head);letter-spacing:-.02em;margin:0 0 12px}
.login-intro{font-size:16px;line-height:1.5;color:var(--muted);margin:0 0 28px}
.login-panel .field{margin:0 0 16px}
.login-panel .field label{font:500 14px/1.4 var(--body);letter-spacing:normal;text-transform:none;margin-bottom:8px;color:var(--ink)}
.login-panel .field input{width:100%;min-height:52px;border:1px solid var(--line);border-radius:6px;background:#fffdfa;padding:12px 14px;font:400 16px/1.4 var(--body);color:var(--ink);box-shadow:none}
.login-panel input::placeholder{color:var(--muted);opacity:1}
.login-panel .btn{min-height:50px;border-radius:6px;box-shadow:none;padding:12px 18px;font:500 16px/1.4 var(--body);letter-spacing:normal;text-transform:none}
.login-panel .btn--primary{background:var(--rose);color:var(--ink);border:1px solid transparent}
.login-panel .btn--primary:hover{background:var(--rose-hover)}
.login-panel .btn--primary:disabled{opacity:.65;cursor:wait}
.login-panel .btn--ghost{border:1px solid var(--line);background:transparent;color:var(--ink)}
.login-panel .btn--ghost:hover{background:#f0ece5}
.login-backup{margin-top:20px}
.login-backup summary{min-height:44px;display:flex;align-items:center;width:fit-content;font-size:14px;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:4px;list-style:none}
.login-backup summary::-webkit-details-marker{display:none}
.login-backup[open] form{margin-top:12px}
.login-error{font-size:14px;line-height:1.5;margin-top:14px;color:var(--red)}
.login-email{font-size:16px;font-weight:500;margin:20px 0 12px;overflow-wrap:anywhere}
.login-panel #emailCode{font-size:24px;letter-spacing:.18em;font-variant-numeric:tabular-nums}
.login-code-actions{margin-top:20px;text-align:center}
.login-text-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;margin-top:4px;border:0;background:none;color:var(--muted);font:400 14px/1.4 var(--body);cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.login-panel .login-message .btn + .btn{margin-top:12px}
.login-code-actions .btn:disabled{opacity:.65;cursor:default}
.login-status{font-size:16px;color:var(--muted)}
.login-continue{margin-top:24px}
.login-panel .auth-captcha{padding:0;margin:0;border:0;background:transparent;border-radius:0}
/* Keep the security check active and announced, without a permanent empty box.
   A provider challenge or failure remains visible when interaction is needed. */
.login-panel .auth-captcha__status:not([data-error="true"]){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.login-panel .auth-captcha__status[data-error="true"]{text-align:left;font-size:14px;margin-top:14px;color:var(--red)}
.login-panel .auth-captcha__widget:not(:empty){margin-top:16px}
@media(max-width:600px){.login-header nav{min-height:64px;padding-inline:22px}.login-brand img{width:168px;height:26px}.login-main{padding:56px 24px 36px}.login-panel h1{font-size:34px}}
@media(max-height:620px){.login-main{padding-top:32px}}
