/* Styles communs : connexion, mot de passe, administration */
:root {
  --bg:#faf9f5; --card:#fff; --fg:#1f1e1d; --muted:#7a776f; --border:#e3e0d6;
  --hover:#efece4; --accent:#c96442; --ok:#2e7d4f; --err:#c0392b; --warn:#b7791f;
}
@media (prefers-color-scheme: dark) {
  :root { --bg:#262624; --card:#2f2e2b; --fg:#ece9e1; --muted:#9a968c; --border:#3a3936; --hover:#363531; }
}
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.55 system-ui, -apple-system, "Segoe UI", sans-serif; }
a { color:var(--accent); }

.center { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:16px; }
.card { background:var(--card); border:1px solid var(--border); border-radius:16px; padding:32px 28px; width:100%; max-width:400px; box-shadow:0 4px 24px #0000000a; }
.brand { font-family:Georgia, serif; font-size:26px; text-align:center; margin:0 0 6px; }
.sub { text-align:center; color:var(--muted); font-size:14px; margin:0 0 24px; }

label { display:block; font-size:14px; font-weight:500; margin:14px 0 6px; }
input { width:100%; padding:11px 12px; border:1px solid var(--border); border-radius:10px; background:transparent; color:var(--fg); font:inherit; }
input:focus { outline:2px solid var(--accent); outline-offset:-1px; border-color:transparent; }
button.primary { width:100%; margin-top:20px; padding:12px; border:0; border-radius:10px; background:var(--accent); color:#fff; font:inherit; font-weight:500; cursor:pointer; }
button.primary:disabled { opacity:.5; cursor:default; }

.msg { margin-top:16px; padding:10px 12px; border-radius:10px; font-size:14px; display:none; }
.msg.show { display:block; }
.msg.ok { background:color-mix(in srgb, var(--ok) 14%, transparent); color:var(--ok); }
.msg.err { background:color-mix(in srgb, var(--err) 14%, transparent); color:var(--err); }

.links { margin-top:20px; text-align:center; font-size:14px; display:flex; flex-direction:column; gap:6px; }
.links a { text-decoration:none; cursor:pointer; }
.hint { font-size:13px; color:var(--muted); margin-top:6px; }
