:root{--bg:#f3f4f2;--card:#fff;--ink:#1c2526;--muted:#5d696b;--line:#cfd5d3;--accent:#17505c;--accent-ink:#fff;--ok-bg:#e2f1e7;--ok:#17562f;--err-bg:#fae7e4;--err:#8e2418;--hl:#e4eef0}
@media (prefers-color-scheme:dark){:root{--bg:#141a1b;--card:#1e2627;--ink:#e8eceb;--muted:#a3aeae;--line:#3a4547;--accent:#7cc0cd;--accent-ink:#0e1a1c;--ok-bg:#183524;--ok:#a4dfb8;--err-bg:#3f1c17;--err:#f4b3a8;--hl:#2a3a3d}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
main{max-width:640px;margin:0 auto;padding:24px 16px 40px}
h1{font-size:1.65rem;line-height:1.2;margin:0 0 16px}h2{font-size:1.2rem;margin:0}h3{font-size:1rem;margin:20px 0 8px}
small{font-weight:400;color:var(--muted)}
a{color:var(--accent)}
.eyebrow{margin:0 0 4px;color:var(--muted);font-size:.9rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:16px}
label{display:block;font-weight:600;margin:16px 0 6px}
#zone-recherche label{margin-top:0}
input[type=search],input[type=email],input[type=password],input[type=file],select,textarea{width:100%;min-height:46px;padding:10px 12px;font:inherit;color:inherit;background:var(--card);border:1px solid var(--muted);border-radius:7px}
textarea{resize:vertical}
:focus-visible{outline:3px solid var(--accent);outline-offset:1px}
button,.btn{display:inline-block;min-height:46px;padding:10px 18px;font:inherit;font-weight:600;background:var(--accent);color:var(--accent-ink);border:0;border-radius:7px;cursor:pointer;text-decoration:none}
form>button[type=submit],.card>button{width:100%;margin-top:20px}
section form button{margin-top:12px}
button.link{min-height:auto;padding:6px;background:none;color:var(--accent);font-weight:500;text-decoration:underline;margin:0;width:auto}
button.danger{color:var(--err)}
.hint{color:var(--muted);font-size:.9rem;margin:8px 0 0;min-height:1.2em}
.combo{position:relative}
#res{position:absolute;z-index:5;left:0;right:0;top:calc(100% + 4px);max-height:320px;overflow:auto;margin:0;padding:4px;list-style:none;background:var(--card);border:1px solid var(--muted);border-radius:7px;box-shadow:0 8px 20px rgba(0,0,0,.18)}
#res li{padding:9px 10px;border-radius:5px;cursor:pointer}
#res li:hover,#res li[aria-selected=true]{background:var(--hl)}
#res strong,#res span{display:block}#res span{font-size:.88rem;color:var(--muted)}
.archer{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--hl);border-radius:7px}
.archer strong,.archer span{display:block}.archer span{font-size:.92rem}.archer .lic{color:var(--muted);font-size:.85rem}
.archer[hidden],[hidden]{display:none!important}
fieldset{border:0;padding:0;margin:18px 0 0}
fieldset.oubli legend::after{content:" : choisissez au moins un départ";color:var(--err)}
legend{font-weight:600;padding:0;margin-bottom:8px}
label.check{display:flex;align-items:center;gap:10px;margin:0 0 6px;padding:11px 12px;border:1px solid var(--line);border-radius:7px;font-weight:400;cursor:pointer}
label.check input{width:20px;height:20px;accent-color:var(--accent);flex:none}
label.check span{flex:1}
.msg{padding:12px 14px;border-radius:7px;margin:0 0 12px}.ok{background:var(--ok-bg);color:var(--ok)}.err{background:var(--err-bg);color:var(--err)}
.foot{text-align:center;font-size:.9rem;margin-top:20px}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
main:has(.wide){max-width:1000px}
.scroll{overflow-x:auto;position:relative}
table{width:100%;min-width:720px;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
code{font-size:.92em}

/* --- Administration --- */
h4{font-size:.95rem;margin:16px 0 6px}
input[type=text],input[type=date],input[type=number],input[type=datetime-local]{width:100%;min-height:46px;padding:10px 12px;font:inherit;color:inherit;background:var(--card);border:1px solid var(--muted);border-radius:7px}
.tabs{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 16px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 16px}
.inline{display:flex;flex-wrap:wrap;gap:8px 20px}
label.plain{font-weight:500;margin:0;font-size:.9rem}
.dep{display:grid;grid-template-columns:1fr 96px auto;gap:10px;align-items:end;margin-bottom:10px}
.dep .hint{margin:0 0 12px;min-height:0;white-space:nowrap}.dep .retirer{margin-bottom:8px}
button.ghost{background:none;color:var(--accent);border:1px solid var(--accent);min-height:40px;padding:6px 14px;width:auto;margin-top:2px}
section form>button:not(.link),#concours form>button{margin-top:16px}
.logo-row{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;margin-top:10px}.logo-prev{width:96px;height:96px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:50%;padding:6px}
.logo-row>div{flex:1;min-width:220px}.logo-row label{margin-top:0}
.tag{display:inline-block;margin-top:3px;font-size:.8rem;font-weight:600;color:var(--wait);background:var(--wait-bg);padding:1px 6px;border-radius:4px}
.acts form{display:block}.acts{white-space:nowrap}
table.attente{background:var(--wait-bg)}
table{min-width:860px}
.wide{scroll-margin-top:10px}
.wait{background:var(--wait-bg);color:var(--wait)}
:root{--wait-bg:#fdf1d6;--wait:#6e4b00}
@media (prefers-color-scheme:dark){:root{--wait-bg:#3a2d10;--wait:#f1d289}}
@media (max-width:520px){.dep{grid-template-columns:1fr 84px}.dep .hint,.dep .retirer{grid-column:1/-1;margin:0}}

/* --- Formulaire public : décor à gauche, feuille d'inscription à droite --- */
.public{--scene:#14375E;--band:linear-gradient(90deg,#fff 20%,#16181a 20% 40%,#1E9BD7 40% 60%,#E5352B 60% 80%,#FFD51E 80%);background:var(--bg)}
.public[data-d=salle-jeune]{--scene:#0E5C63}
.public[data-d=campagne]{--scene:#155239;--band:linear-gradient(90deg,#16181a 66%,#FFD51E 66%)}
.public[data-d=nature]{--scene:#3E5526;--band:linear-gradient(90deg,#F4EBD3 50%,#4A3A28 50%)}
.public[data-d="3d"]{--scene:#6B3A1F;--band:linear-gradient(90deg,#8C6B4C 50%,#FFD51E 50%)}
.public[data-d=run]{--scene:#17468F;--band:repeating-linear-gradient(90deg,#16181a 0 18px,#fff 18px 36px)}
.public[data-d=beursault]{--scene:#6E1F2E;--band:linear-gradient(90deg,#fff 70%,#16181a 70%)}
.public[data-d=tae]{--scene:#1C6B3C}
.public[data-d=loisir]{--scene:#5A2A6B}
@media (prefers-color-scheme:light){.public{--accent:var(--scene);--hl:color-mix(in srgb,var(--scene) 10%,#fff)}}
.split{display:grid;grid-template-columns:minmax(380px,44%) 1fr;min-height:100vh}
.scene{position:sticky;top:0;height:100vh;background:var(--scene);color:#fff;overflow:hidden}
.scene::after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;background:var(--band)}
.scene-text{padding:32px 40px 0;position:relative;z-index:1}
.logo{display:block;width:92px;height:92px;object-fit:contain;background:#fff;border-radius:50%;padding:5px;margin-bottom:20px}
.disc{display:inline-block;margin:0 0 10px;padding:2px 12px;border:1.5px solid #fff;border-radius:99px;font-size:.95rem}
.scene h1{font-family:Bahnschrift,"DIN Alternate","Avenir Next Condensed","Arial Narrow","Segoe UI",system-ui,sans-serif;font-stretch:condensed;font-weight:700;font-size:clamp(2rem,3.6vw,3.3rem);line-height:1.05;margin:0 0 12px;overflow-wrap:anywhere}
.when{font-size:1.2rem;font-weight:600;margin:0}.where{margin:2px 0 0;opacity:.9}
.art{position:absolute;right:-5%;bottom:-5%;width:min(70%,50vh);height:auto;max-height:50vh;object-fit:contain;object-position:bottom right}
.sheet{max-width:620px;width:100%;padding:40px 32px 32px;margin:0 auto}
.sheet h2{margin-bottom:12px}
.public legend,.public form>label,.public #zone-recherche label{font-size:1.02rem}
.archer .cat{margin-top:6px;font-size:.95rem}
label.check.full small{color:var(--wait);font-weight:600}
label.check{background:var(--card)}label.check:has(:checked),.pick:has(:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--hl)}
.blasons{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px}
label.pick{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--card);cursor:pointer;font-weight:500;position:relative}
.pick img{height:96px;width:auto;max-width:100%;background:#d8dcda;border-radius:4px;padding:3px}
.pick input,.seg input{position:absolute;opacity:0;width:1px;height:1px}
.pick:has(:focus-visible),.seg label:has(:focus-visible){outline:3px solid var(--accent);outline-offset:1px}
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--muted);border-radius:7px;overflow:hidden}
.seg label{margin:0;font-weight:500;text-align:center;cursor:pointer;position:relative;background:var(--card)}
.seg span{display:block;padding:11px}.seg label+label{border-left:1px solid var(--muted)}
.seg label:has(:checked){background:var(--accent);color:var(--accent-ink)}
.public form>button[type=submit]{min-height:52px;font-size:1.05rem}
.public .foot{margin-top:24px}
.public form>label{margin-top:18px}.public form>fieldset{margin-top:22px}label.check{margin-bottom:8px}
@media (max-width:860px){
  .split{display:block}
  .scene{position:relative;height:auto;min-height:250px}
  .scene-text{padding:16px 36% 24px 16px}
  .logo{width:60px;height:60px;margin-bottom:10px}
  .scene h1{font-size:1.65rem}.when{font-size:1rem}.where{font-size:.9rem}.disc{font-size:.85rem}
  .art{width:min(38%,190px);max-height:none;right:-3%;bottom:-6%;height:auto;object-position:center right}
  .sheet{padding:20px 16px 28px}
}

.nbrow{display:flex;gap:8px;max-width:220px}.nbrow input{flex:1;min-width:0}.nbrow button{margin:0!important}
.deps{margin:14px 0 4px}
.dep button.danger{margin:0 0 8px}
@media (max-width:360px){.blasons{grid-template-columns:1fr 1fr}.scene h1{font-size:1.4rem}}
@media (max-height:720px) and (min-width:861px){.art{width:min(40%,34vh)}}

/* --- Choix du concours, QR-Code --- */
.liste-logo{border:1px solid var(--line)}
.choix{list-style:none;margin:16px 0;padding:0;display:grid;gap:8px}
.choix a{display:block;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:8px;color:inherit;text-decoration:none}
.choix a:hover{border-color:var(--accent)}
.choix strong{display:block;font-size:1.1rem;color:var(--accent)}.choix span{display:block;font-size:.92rem;color:var(--muted)}
.fil{margin:0 0 8px}
.cl{display:grid;gap:10px}
.cl>li{list-style:none}
.cl-item{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid var(--line);border-radius:8px}
.cl-item strong{display:block;font-size:1.05rem}.cl-item small{display:block}
.cl-acts{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.cl-acts form{margin:0}.cl-acts .btn{min-height:40px;padding:7px 14px}
ul.cl{padding:0;margin:12px 0 0}
.past{opacity:.75}
.newc{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-top:16px}.newc>div{flex:1;min-width:220px}.newc button{margin:0!important}.newc label{margin-top:0}
.qr-box{width:min(100%,320px);margin:12px auto;background:#fff;padding:8px;border-radius:6px}.qr-box svg{display:block;width:100%;height:auto}
.qr-url{text-align:center;overflow-wrap:anywhere;font-weight:600}
.qr-acts{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}.qr-acts .btn,.qr-acts button{min-height:42px;padding:8px 16px;width:auto;margin:0}
@media print{body{background:#fff;color:#000}.noprint{display:none!important}.card{border:0;padding:0}.qr-box{width:12cm}main{max-width:none}}

/* --- Bouton et page des participants --- */
.btn-liste{display:inline-block;margin-top:14px;padding:9px 16px;background:#fff;color:var(--scene);font-weight:600;border-radius:7px;text-decoration:none}
.btn-liste:hover{background:#eef1f0}
.btn-liste:focus-visible{outline-color:#fff}
.liste{--accent-liste:var(--scene);--groupe:#a81d1d}
@media (prefers-color-scheme:dark){.liste{--accent-liste:#8fd0dc;--groupe:#f19a8e}}
.liste main{max-width:1180px;padding-top:20px}
.liste-tete{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.liste-tete h1{color:var(--accent-liste);font-size:clamp(1.5rem,3vw,2rem);margin:0 0 8px}
.liste-tete p{margin:2px 0}
.liste-tete .logo{flex:none;margin:0;border:1px solid var(--line)}
.liste h2{margin:24px 0 10px}
.filtres{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;padding:16px;background:var(--line);border-radius:8px}
.filtres label{margin:0;font-size:.85rem;font-weight:600}
.groupe h3{color:var(--groupe);font-size:1.2rem;margin:26px 0 6px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.liste table{min-width:720px;background:var(--card)}
.liste th{color:var(--accent-liste);text-align:center;white-space:nowrap}
.liste td{text-align:center}
.liste td.g,.liste th.g{text-align:left}
.liste .total{margin:0;text-align:right;font-size:.9rem;padding:7px 8px;background:var(--card);border-bottom:1px solid var(--line)}
@media (max-width:560px){.liste-tete .logo{width:60px;height:60px}}
.seg label:has(:disabled){opacity:.45;cursor:not-allowed}
.bl-dep{margin-bottom:12px}.bl-titre{margin:0 0 5px;font-size:.95rem;font-weight:600;color:var(--muted)}
.bl-dep .pick img{height:72px}
.contact{margin:6px 0 0;overflow-wrap:anywhere}.contact a{color:#fff}
.scene-btns{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:14px}
.scene-btns .btn-liste{margin:0}
.edit-info{background:var(--hl);padding:12px 14px;border-radius:7px}.edit-info strong,.edit-info span{display:block}
.edit-acts{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:18px}.edit-acts button{margin:0!important;width:auto}
.acts .edit-link{display:block;padding:6px}
.feuilles{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end;margin:14px 0 0;padding:12px;border:1px dashed var(--line);border-radius:8px}
.feuilles label{display:flex;flex-direction:column;gap:4px}.feuilles input[type=number]{width:110px}.feuilles select{min-width:180px}
.feuilles .chk{flex-direction:row;align-items:center;gap:6px;min-height:46px}.feuilles button{margin:0!important;width:auto}
/* Remarque d'un départ : bien visible */
.remarque{display:flex;gap:10px;align-items:flex-start;margin:-2px 0 12px;padding:12px 14px;background:var(--wait-bg);color:var(--wait);border:1px solid currentColor;border-left-width:6px;border-radius:7px;font-size:.95rem;line-height:1.4}
.remarque svg{flex:none;margin-top:1px}.remarque p{margin:0}
label.check.reserve small{color:var(--wait);font-weight:600}
.dep-rq,.dep-res{grid-column:1/-1}.dep-rq textarea{margin-top:4px}
.dep-res{display:flex;gap:8px;align-items:flex-start;font-weight:500}.dep-res input{margin-top:3px;width:18px;height:18px;flex:none}
.dep{padding-bottom:12px;border-bottom:1px solid var(--line)}
/* État des inscriptions */
.badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:.85rem;font-weight:600;background:var(--ok-bg);color:var(--ok)}
.badge.etat-suspendues,.badge.etat-bientot{background:var(--wait-bg);color:var(--wait)}
.badge.etat-fermees{background:var(--err-bg);color:var(--err)}
.cl-item .badge{margin:4px 0 2px}
.seg3{grid-template-columns:1fr 1fr 1fr;max-width:520px}
.etat-scene{display:inline-block;margin:0 0 12px;padding:5px 12px;border-radius:7px;font-weight:600;font-size:.95rem;background:#fff;color:var(--scene)}
.etat-scene.etat-suspendues,.etat-scene.etat-bientot{background:#fdf1d6;color:#6e4b00}
.etat-scene.etat-fermees{background:#fae7e4;color:#8e2418}
.ferme{padding:20px;border:1px solid var(--line);border-left:6px solid var(--wait);border-radius:8px;background:var(--card)}
.ferme h2{margin:0 0 8px}.ferme p{margin:6px 0}
.choix em{display:block;font-style:normal;font-size:.88rem;font-weight:600;margin-top:4px;color:var(--ok)}
.choix em.etat-suspendues,.choix em.etat-bientot{color:var(--wait)}.choix em.etat-fermees{color:var(--err)}
