/* Espace Moveat : styles communs à toutes les pages (charte, en-tête, champs, boutons, messages, écran d'accès). */
/* Charte Moveat (moveat.fr) : sauge #70abab, Work Sans (texte), Quicksand (titres). Actions en sauge foncé pour rester lisibles au soleil (contraste 6,5:1). */
@font-face { font-family:'Work Sans'; font-style:normal; font-weight:400 700; font-display:swap; src:url(/fonts/work-sans-latin.woff2) format('woff2'); }
@font-face { font-family:'Quicksand'; font-style:normal; font-weight:600 700; font-display:swap; src:url(/fonts/quicksand-latin.woff2) format('woff2'); }
:root {
  --sauge:#70abab; --sauge-fonce:#2f6666; --sauge-nuit:#234d4d; --sauge-pale:#eaf3f3;
  --ink:#0e0e0e; --nuit:#2c3847; --mute:#56616c; --line:#d5dde2; --champ:#f4f7f8;
  --ok:#1f6f43; --err:#b42318;
  --titre:'Quicksand', 'Work Sans', system-ui, sans-serif;
}
* { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:#fff; color:var(--ink); font:17px/1.45 'Work Sans', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
header { background:#fff; border-bottom:1px solid var(--line); padding:calc(10px + env(safe-area-inset-top)) 16px 10px; position:sticky; top:0; z-index:5; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.logo { height:30px; width:91px; flex:none; color:var(--sauge); display:block; }
header a { display:block; flex:none; }
header button { background:var(--sauge-pale); border:0; color:var(--sauge-nuit); border-radius:999px; padding:8px 14px; font:inherit; font-size:15px; font-weight:600; max-width:60%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
header button:empty { display:none; }
main { max-width:560px; margin:0 auto; padding:4px 16px 24px; }
.card { padding:22px 0; border-bottom:1px solid var(--line); }
.card:last-child { border-bottom:0; }
.card h2 { font-family:var(--titre); font-size:22px; font-weight:700; line-height:1.2; margin:0 0 16px; color:var(--ink); display:flex; align-items:center; gap:10px; }
.num { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:var(--sauge); color:#fff; font-size:17px; flex:none; }
p { margin:0 0 12px; }
label { display:block; font-size:15px; font-weight:600; color:var(--nuit); margin:16px 0 6px; }
label:first-of-type { margin-top:0; }
input, select, textarea { width:100%; min-height:56px; font:inherit; padding:14px; border:2px solid var(--line); border-radius:12px; background:#fff; color:var(--ink); }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--sauge-fonce); box-shadow:0 0 0 3px rgba(112,171,171,.35); }
input[readonly] { background:var(--champ); border-color:var(--champ); color:var(--nuit); font-weight:600; }
select { -webkit-appearance:none; appearance:none; padding-right:44px; font-weight:600; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='M2 2l6 6 6-6' fill='none' stroke='%232f6666' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center; }
input[type=search] { -webkit-appearance:none; appearance:none; }
.btn { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:58px; border:0; border-radius:14px; padding:14px; font:inherit; font-size:18px; font-weight:700; background:var(--sauge-fonce); color:#fff; margin-top:12px; }
.btn:active { background:var(--sauge-nuit); }
.btn.alt { background:#fff; color:var(--sauge-fonce); border:2px solid var(--sauge-fonce); }
.btn:disabled { opacity:.5; }
.hint { color:var(--mute); font-size:14px; margin-top:8px; }
.msg { padding:14px; border-radius:12px; margin-top:12px; display:none; font-weight:600; }
.msg.err { display:block; background:#fdecea; color:var(--err); }
.msg.ok { display:block; background:#e6f2ec; color:var(--ok); }
.hidden { display:none !important; }
#lock { position:fixed; inset:0; background:#fff; z-index:10; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:16px; }
#lock .logo { height:40px; width:121px; margin-bottom:12px; }
#lock .card { width:100%; max-width:380px; border-bottom:0; }
