/* app/public/auth/auth.css — shared styling for the auth pages.
   Aligned on the "Duel de plumes" identity (same tokens as /css/style.css):
   deep ink-blue background, parchment text, wax-seal red primary actions,
   gold accents, Fraunces display serif + Figtree body.
   Pages must load the Google Fonts <link> (Fraunces/Figtree/Space Mono)
   in their <head>, same pattern as homepage.html.
   Inputs are >=16px to avoid iOS Safari auto-zoom. */

:root {
  --font-display: 'Fraunces', Georgia, 'Iowan Old Style', 'Times New Roman', serif;
  --font-body: 'Figtree', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'Space Mono', 'SFMono-Regular', Consolas, 'Liberation Mono', monospace;

  --ink-950: #0e1322;
  --ink-900: #161d33;
  --ink-800: #202a48;
  --ink-700: #2c3860;
  --ink-600: #3c4a7a;

  --parchment: #f4ead6;
  --parchment-dim: #c9bfa8;
  --parchment-faint: #8b8ba0;

  --sceau: #d1483f;
  --sceau-dark: #a8352e;
  --sceau-glow: rgba(209, 72, 63, 0.35);
  --plume-gold: #e3ad46;
  --plume-gold-dim: #8a6a2e;
  --encre-vert: #5f9e78;
  --encre-bleu: #7b98d1;

  --radius-sm: 8px;
  --radius-md: 14px;

  --ease-out: cubic-bezier(.16,.84,.44,1);

  color-scheme: dark;
}

* { box-sizing: border-box; }

body {
  font-family: var(--font-body);
  background: var(--ink-950);
  background-image:
    radial-gradient(ellipse 900px 500px at 15% -5%, rgba(123, 152, 209, 0.10), transparent 60%),
    radial-gradient(ellipse 700px 500px at 100% 10%, rgba(227, 173, 70, 0.06), transparent 55%);
  background-attachment: fixed;
  color: var(--parchment);
  margin: 0; min-height: 100vh;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  display: flex; align-items: center; justify-content: center; padding: 24px;
}

main { width: 100%; max-width: 420px; }

h1 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.6rem;
  letter-spacing: -0.01em;
  color: var(--parchment);
  margin: 0 0 16px;
}
h2 {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 700;
  color: var(--plume-gold);
}

:focus { outline: none; }
:focus-visible {
  outline: 2.5px solid var(--plume-gold);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

form { display: flex; flex-direction: column; gap: 10px; }
label { font-size: .9rem; color: var(--parchment-dim); }
input, select {
  font-family: var(--font-body);
  font-size: 16px; padding: 10px 12px; border-radius: var(--radius-sm);
  border: 1px solid var(--ink-600); background: var(--ink-900); color: var(--parchment);
  width: 100%;
}
input::placeholder { color: var(--parchment-faint); }
button {
  font-family: var(--font-body);
  font-size: 16px; padding: 12px; border: 0; border-radius: var(--radius-sm);
  background: var(--sceau); color: var(--parchment); font-weight: 700; cursor: pointer;
  transition: background .15s, transform .18s var(--ease-out);
}
button:hover { background: var(--sceau-dark); }
button:active { transform: translateY(1px); }
button.secondary {
  background: var(--ink-700); color: var(--parchment);
  border: 1px solid var(--ink-600);
}
button.secondary:hover { background: var(--ink-600); }
code { font-family: var(--font-mono); color: var(--plume-gold); word-break: break-all; }
.msg { margin-top: 12px; font-size: .95rem; min-height: 1.2em; }
.msg.err { color: #e98d85; }
.msg.ok { color: var(--encre-vert); }
a { color: var(--encre-bleu); }
.links { margin-top: 16px; font-size: .9rem; color: var(--parchment-faint); }
.links a { color: var(--encre-bleu); }
.card {
  background: var(--ink-800); border: 1px solid var(--ink-700);
  border-radius: var(--radius-md); padding: 20px 16px; margin-top: 16px;
}
.hidden { display: none !important; }

/* Notice / warning banner (e.g. temporary registration closure): uses the
   site's own gold accent language instead of a generic yellow alert box. */
.notice {
  background: var(--ink-800);
  border: 1px solid var(--plume-gold-dim);
  border-left: 4px solid var(--plume-gold);
  border-radius: var(--radius-sm);
  padding: 14px 16px; margin: 16px 0;
  color: var(--parchment);
  font-size: .95rem;
}
.notice strong { color: var(--plume-gold); }

/* Official-style social login buttons, distinct from the email/password
   form below (product owner feedback: buttons looked generic, and being
   inside the same form as email/password implied users had to fill both).
   Google/Facebook button colors are their official brand guidelines and
   deliberately stay unchanged on the dark background. */
.oauth-group { display: flex; flex-direction: column; gap: 10px; margin-bottom: 8px; }
.oauth-btn {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%; padding: 11px 16px; border-radius: var(--radius-sm); font-size: 15px; font-weight: 600;
  text-decoration: none; cursor: pointer; border: 1px solid transparent; box-sizing: border-box;
  font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.oauth-btn svg { flex-shrink: 0; }
.oauth-btn-google { background: #ffffff; color: #1f1f1f; border-color: #dadce0; }
.oauth-btn-google:hover { background: #f8f9fa; }
.oauth-btn-facebook { background: #1877F2; color: #ffffff; }
.oauth-btn-facebook:hover { background: #166fe5; }
.divider { display: flex; align-items: center; gap: 12px; margin: 18px 0; color: var(--parchment-faint); font-size: .85rem; }
.divider::before, .divider::after { content: ""; flex: 1; height: 1px; background: var(--ink-700); }

/* Passe de polish 31/08/2026 — même vocabulaire d'animation que la homepage
   (rise-in à l'entrée, lueur or/cire au survol des actions principales).
   Volontairement sobre : une entrée de page, un survol, rien de plus. */
@media (prefers-reduced-motion: no-preference) {
  main { animation: sb-rise-in .4s var(--ease-out); }
  @keyframes sb-rise-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
  }
}
button { transition: background .15s, transform .18s var(--ease-out), box-shadow .18s var(--ease-out); }
button:hover { box-shadow: 0 6px 18px -6px var(--sceau-glow); }
button.secondary:hover, .oauth-btn:hover { box-shadow: none; }
.card { transition: border-color .18s var(--ease-out); }
.card:focus-within { border-color: var(--ink-600); }
