:root { --bleu:#0F2E4D; --orange:#E2691E; --texte:#1A2B3C; --fond:#F5F1E8; --bord:#D8D2C4; }
* { box-sizing:border-box; }
body { margin:0; background:var(--fond); color:var(--texte); font-family:-apple-system,'Segoe UI',Roboto,Arial,sans-serif; }
a { color:var(--orange); }
:focus-visible { outline:2px solid var(--orange); outline-offset:2px; }
.bandeau { background:var(--bleu); padding:22px 28px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.bandeau h1 { color:#fff; font-size:20px; margin:0; letter-spacing:.5px; }
.bandeau p { color:var(--orange); font-size:13px; margin:4px 0 0; font-weight:600; }
.bandeau a { text-decoration:none; }
.logo { background:#fff; border-radius:10px; padding:8px 14px; }
.logo img { height:38px; display:block; }
main { max-width:760px; margin:26px auto 60px; padding:0 16px; }
.titre { font-size:22px; color:var(--bleu); margin:0 0 6px; }
.chapo { font-size:14px; color:#6b7280; margin:0 0 18px; }
.fil { font-size:13px; margin:0 0 12px; }
.carte { background:#fff; border:1px solid var(--bord); border-radius:12px; padding:22px 24px; margin-bottom:18px; }
.carte h2 { font-size:15px; color:var(--bleu); margin:0 0 14px; text-transform:uppercase; letter-spacing:.6px; border-bottom:2px solid var(--orange); display:inline-block; padding-bottom:4px; }
label { display:block; font-size:13px; font-weight:600; margin:12px 0 5px; }
input, select, textarea { width:100%; padding:10px 12px; font-size:14px; border:1px solid var(--bord); border-radius:8px; background:#FDFCF9; color:var(--texte); font-family:inherit; }
input:focus, select:focus, textarea:focus { outline:2px solid var(--orange); border-color:var(--orange); }
.facultatif { font-weight:400; color:#6b7280; }
.aide { font-size:12px; color:#6b7280; margin:4px 0 0; }
button { margin-top:6px; width:100%; background:var(--orange); color:#fff; font-size:16px; font-weight:700; padding:14px; border:0; border-radius:10px; cursor:pointer; font-family:inherit; }
button:hover { filter:brightness(.95); }
.registre { list-style:none; margin:0; padding:0; }
.famille { background:#fff; border:1px solid var(--bord); border-radius:12px; padding:18px 20px; margin-bottom:12px; position:relative; }
.famille a { display:block; text-decoration:none; color:inherit; }
.famille-ouverte { border-left:4px solid var(--orange); }
.famille-ouverte:hover { background:#FDF3EA; }
.famille-fermee { border-left:4px solid var(--bord); color:#6b7280; }
.famille-nom { display:block; font-weight:700; font-size:15px; color:var(--bleu); }
.famille-resume { display:block; margin-top:3px; font-size:14px; }
.famille-meta { display:block; margin-top:8px; font-size:11.5px; color:#6b7280; }
.etiquette { position:absolute; top:18px; right:20px; font-size:11px; font-weight:700; color:var(--orange); background:#FDF3EA; border:1px solid var(--orange); border-radius:6px; padding:2px 8px; }
.erreurs { background:#FDF3EA; border-left:4px solid var(--orange); border-radius:0 8px 8px 0; padding:12px 14px; font-size:13px; margin-bottom:18px; }
.erreurs-titre { margin:0 0 6px; font-weight:700; color:var(--bleu); }
.erreurs ul { margin:0; padding-left:18px; }
.visa { background:#fff; border:1px solid var(--bord); border-radius:12px; padding:22px 24px; text-align:center; margin-bottom:18px; }
.visa-code { font-size:26px; font-weight:700; color:var(--orange); margin:0; letter-spacing:1px; }
.visa-mention { font-size:13px; color:var(--bleu); margin:6px 0 0; text-transform:uppercase; letter-spacing:.6px; font-weight:600; }
.recap { background:#fff; border:1px solid var(--bord); border-radius:12px; padding:18px 20px; font-size:14px; margin:0 0 18px; }
.recap dt { font-size:11px; color:#6b7280; text-transform:uppercase; letter-spacing:.5px; }
.recap dd { margin:2px 0 12px; }
.alerte { background:#FDF3EA; border-left:4px solid var(--orange); padding:12px 14px; font-size:13px; border-radius:0 8px 8px 0; }
.suite { display:flex; gap:12px; flex-wrap:wrap; font-size:14px; }
.valider, .retour { display:inline-block; text-decoration:none; font-weight:600; }
.retour { color:#6b7280; }
.pied { max-width:760px; margin:0 auto; padding:0 16px 40px; font-size:12px; color:#6b7280; }
@media (max-width:560px){ .bandeau { padding:16px; } .logo img { height:28px; } }
