:root{color-scheme:dark;--bg:#070a0e;--panel:#10171d;--panel2:#161f26;--text:#f5f9fa;--muted:#b1bdc6;--line:#2b3b46;--green:#2ee357;--cyan:#23d6ee;--gold:#f3cc65;--danger:#ff8080}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% 0,#123626 0,#070a0e 37rem);color:var(--text);font:16px/1.55 Inter,system-ui,-apple-system,'Segoe UI',sans-serif;min-height:100dvh}a{color:inherit;text-decoration:none}a:hover{color:var(--green)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}input,select{min-width:0}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.1}h1{font-size:clamp(2.5rem,7.5vw,5.8rem);font-weight:950;letter-spacing:-.045em}h2{font-size:clamp(1.4rem,3vw,2.15rem)}h3{font-size:1.15rem}p{line-height:1.65}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px clamp(16px,4vw,46px);border-bottom:1px solid #1e352b;position:sticky;top:0;background:rgba(6,10,12,.95);backdrop-filter:blur(14px);z-index:10}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{background:var(--green);color:#031108;display:grid;place-items:center;border-radius:10px;font-weight:1000;font-size:1.1rem;width:44px;height:44px;flex:none;transform:rotate(-5deg);box-shadow:0 0 18px #2ee35740}.brand strong{display:block;white-space:nowrap;letter-spacing:.05em}.brand em{color:var(--green);font-style:normal}.brand small{display:block;color:var(--muted);font-size:.69rem}.topnav{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;font-size:.82rem}.topnav a:not(.button),.link-btn{padding:7px}.user-tag{color:var(--muted);font-size:.75rem}.link-btn{border:0;background:none;color:var(--muted)}.topnav form{margin:0}.main{width:min(1220px,100% - 30px);margin:0 auto;padding:44px 0 70px}.foot{border-top:1px solid var(--line);text-align:center;color:var(--muted);padding:25px 12px;font-size:.78rem}.foot a{text-decoration:underline}.green{color:var(--green)}.muted{color:var(--muted)}.small{font-size:.82rem}.eyebrow{color:var(--green);font-size:.8rem;letter-spacing:.16em;font-weight:900;text-transform:uppercase;margin-bottom:14px}.hero{text-align:center;max-width:1000px;margin:50px auto 56px}.intro{color:#c4d0d4;font-size:clamp(1rem,2vw,1.2rem);max-width:730px;margin:22px auto}.btnrow{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.btnrow.center{justify-content:center}.button{border:1px solid #417455;background:#15231d;border-radius:14px;padding:12px 17px;color:#eaffef;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-align:center;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.button:hover:not(:disabled){color:#fff;background:#1a4730;box-shadow:0 0 15px #2ee35750;transform:scale(1.045)}.button.primary{background:var(--green);color:#07140c;border-color:var(--green)}.button.primary:hover:not(:disabled){background:#80ff9d;color:#05220a;box-shadow:0 0 27px #2ee35790}.button.small{padding:9px 12px}.button.mini{padding:7px 11px;border-radius:9px;font-size:.8rem}.chips{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:25px}.chips span,.pill{padding:5px 11px;border:1px solid #2b5b42;border-radius:100px;font-size:.77rem;color:#b4dfc2}.pill.good{color:var(--green)}.pill.warn{border-color:#755e24;color:var(--gold)}.panel{background:linear-gradient(170deg,rgba(22,31,39,.98),rgba(12,19,25,.98));border:1px solid var(--line);border-radius:22px;box-shadow:0 14px 42px #0005}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.feature{padding:26px;text-align:center}.feature strong{display:block;color:var(--green);font-weight:1000;font-size:2rem}.feature h2{margin:12px 0}.feature p{color:var(--muted)}.pane{padding:clamp(18px,3vw,28px);margin:18px 0}.pane h2{margin-bottom:16px;text-align:center}.pane>p{margin:12px 0 22px}.warning{text-align:center}.auth{max-width:540px;padding:clamp(22px,4vw,38px);margin:42px auto;text-align:center}.auth h1{font-size:clamp(2.1rem,4vw,3.3rem);margin-bottom:15px}.form{text-align:left;display:grid;gap:13px;margin-top:20px}.form label:not(.choice){display:grid;gap:5px;color:#e6eeee;font-weight:700;font-size:.89rem}.form input:not([type=checkbox]):not([type=radio]),.form select,.inline-form input{width:100%;padding:12px;border:1px solid #3c505b;border-radius:11px;color:#f9fafa;background:#0a1015;outline:none}.form input:focus,.form select:focus,.inline-form input:focus{border-color:var(--green);box-shadow:0 0 0 2px #2ee35733}.form .button{width:100%}.choice{display:flex;align-items:center;gap:11px;background:#0b1519;border:1px solid #2b404a;padding:11px;border-radius:10px;cursor:pointer}.choice input{accent-color:var(--green);min-width:17px;min-height:17px}.code{display:block;overflow-wrap:anywhere;letter-spacing:.12em;font-size:.9rem;margin:20px 0}.notice{background:#123123;border:1px solid #2c6849;border-radius:12px;padding:13px 15px;color:#e1f7e5;margin:15px 0}.notice.bad{background:#3b1b1d;border-color:#6e333a}.flash{border:1px solid var(--green);padding:14px;text-align:center;background:#173223;border-radius:12px;margin-bottom:18px}.heading{text-align:center;margin-bottom:27px}.heading>p:last-child{color:var(--muted);margin:9px 0}.heading h1{font-size:clamp(2.5rem,6vw,4.6rem)}.statgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat{padding:23px 12px;text-align:center}.stat strong{display:block;color:var(--green);font-size:clamp(1.8rem,4vw,3rem);font-weight:950;line-height:1}.stat span{display:block;margin-top:9px;font-size:.87rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.two-col>.pane{margin:0}.two-col{margin:18px 0}.actionstack{display:grid;gap:14px}.table-wrap{overflow:auto;border-radius:10px;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;text-align:left}th,td{border-bottom:1px solid #293943;padding:12px 10px;font-size:.84rem;vertical-align:middle}th{color:var(--green);background:#112019}tr:last-child td{border-bottom:0}.inline-form{display:flex;align-items:center;gap:8px}.inline-form input{min-width:130px;max-width:180px;padding:8px}.event-switch{border-bottom:1px solid var(--line);padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.84rem}.camera-shell{min-height:230px;background:#050a0c;border:1px dashed #315841;border-radius:16px;position:relative;display:grid;place-items:center;overflow:hidden}.camera-shell video{width:100%;height:100%;max-height:340px;object-fit:cover;display:none}.camera-placeholder{text-align:center;color:var(--muted);padding:25px}.result{padding:14px 0;color:var(--muted);min-height:30px}.result.ok{color:var(--green)}.result.bad{color:#ff9898}#ride-form-wrap{border-top:1px solid var(--line);padding-top:14px}.ride{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;padding:14px;margin:8px 0}.ride .actions{display:flex;gap:6px;flex-wrap:wrap}.ride small{display:block;color:var(--muted)}#qr{display:grid;place-items:center;margin:20px 0}#qr svg{background:#fff;border-radius:14px;padding:12px;width:min(100%,245px)}:focus-visible{outline:2px solid var(--green);outline-offset:3px}@media(max-width:900px){.statgrid{grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:1fr}}@media(max-width:750px){.top{flex-direction:column}.topnav{justify-content:center}.two-col{grid-template-columns:1fr}.main{padding-top:20px}.hero{margin-top:20px}.stat{padding:17px 9px}.ride{flex-wrap:wrap}.ride .actions{width:100%}.topnav .user-tag{display:none}}@media(max-width:430px){.brand strong{font-size:.9rem}.topnav{font-size:.73rem;gap:3px}.stat span{font-size:.75rem}.pane{padding:16px}.btnrow .button{flex:1}.inline-form{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Parcours signature */
.participant-home{max-width:1000px;margin:32px auto;text-align:center}.participant-home h1{font-size:clamp(2.1rem,5.5vw,4.5rem);max-width:850px;margin:auto}.participant-home .intro{max-width:620px;margin:22px auto 36px}.participant-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;text-align:left}.participant-choice{display:flex;flex-direction:column;align-items:flex-start;gap:18px;min-width:0;min-height:305px;padding:32px;border-color:#385346;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.participant-choice:hover{color:var(--text);border-color:var(--green);box-shadow:0 14px 42px #0005,0 0 22px #2ee35722;transform:translateY(-3px)}.participant-choice:focus-visible{outline:3px solid var(--green);outline-offset:5px}.choice-icon{display:grid;place-items:center;width:58px;height:58px;background:#173c28;border:1px solid #306c46;border-radius:16px;color:var(--green)}.choice-icon svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.participant-choice h2{font-size:clamp(1.5rem,3vw,1.95rem);letter-spacing:-.02em}.participant-choice>p{color:var(--muted);font-size:1rem;max-width:360px}.choice-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;min-height:48px;margin-top:auto;padding:12px 16px;border:1px solid var(--green);border-radius:12px;background:var(--green);color:#07140c;font-weight:850;font-size:.93rem}.participant-choice:nth-child(2) .choice-cta{background:#12271c;color:#e8ffed;border-color:#417455}.participant-home-help{color:var(--muted);font-size:.9rem;max-width:650px;margin:28px auto 0}.participant-home .notice{margin-bottom:24px}@media(max-width:650px){.participant-home{margin-top:20px}.participant-choices{grid-template-columns:1fr;gap:16px}.participant-choice{min-height:265px;padding:24px;gap:15px}.participant-home .intro{margin-bottom:26px}.participant-home-help{font-size:.85rem}}
.signup-heading{max-width:850px;margin:48px auto 32px;text-align:center}.signup-heading h1{font-size:clamp(2.1rem,5vw,4rem);line-height:1.08;letter-spacing:-.05em}.steps{display:flex;gap:12px;list-style:none;counter-reset:step;padding:0;justify-content:center;flex-wrap:wrap}.steps li{counter-increment:step;border:1px solid #28323c;border-radius:50px;padding:10px 16px;color:#a8b4c0}.steps li:before{content:counter(step);display:inline-grid;place-items:center;border-radius:50%;margin-right:8px;width:22px;height:22px;background:#25343f;color:white}.steps .selected{border-color:#90ff29;color:#c4ff95}.signature-layout{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(0,1.6fr);gap:24px;max-width:1120px;margin:auto}.event-card{padding:28px;align-self:start;position:sticky;top:24px}.event-date{font-size:1.9rem;color:#b7ff74;font-weight:800}.signup-content{min-width:0}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.document-reading{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:.96rem;line-height:1.7;background:#060a0e;border:1px solid #26313a;border-radius:14px;padding:20px;max-height:58vh;overflow:auto}.reading{max-width:900px;margin:auto}.reading p{line-height:1.7}details{border:1px solid #2a3740;border-radius:12px;padding:16px;margin-bottom:18px}summary{cursor:pointer;font-weight:700}details[open]>summary{margin-bottom:18px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.dossier-cards{align-items:stretch}.review-card{margin-top:24px}.review-card .btnrow{margin:18px 0}.search-form{display:flex;align-items:end;gap:16px}.search-form label{display:grid;gap:8px;flex:1}.search-form input{padding:14px;border-radius:12px;border:1px solid #34434f;background:#0b141b;color:#fff}:focus-visible{outline:3px solid #95e947;outline-offset:3px}@media(max-width:800px){.signature-layout{grid-template-columns:1fr}.event-card{position:static}.form-pair{grid-template-columns:1fr}.signup-heading{margin-top:28px}.signup-content{padding:20px}.search-form{flex-direction:column;align-items:stretch}.steps{font-size:.85rem;gap:6px}.steps li{padding:8px 10px}}
@media print{.top,.foot,.btnrow,.steps{display:none}.panel{border:0;box-shadow:none;background:white;color:black}}

/* Dossier annuel : profil multiple et certificat personnel. */
.annual-profiles{margin:0;border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.annual-profiles legend{padding:0 8px;font-weight:750}.annual-profiles .choice{margin:0;font-weight:600}.approved-card h1{font-size:clamp(1.7rem,6vw,3rem);line-height:1.15}.approved-card h2{margin:22px 0 12px}.approved-card .accent{color:var(--green)}#annual-video{width:100%;max-height:340px;object-fit:cover}#annual-video[hidden]{display:none!important}#annual-camera-help{padding:24px;text-align:center;color:var(--muted)}@media(max-width:500px){.annual-profiles{grid-template-columns:1fr}}

/* Parcours participant simple : deux écrans avant le QR. */
.simple-access{max-width:760px;margin:32px auto}.simple-access .heading h1{font-size:clamp(2rem,6vw,3.4rem)}.simple-access-form .form{margin-top:0}.simple-access-form>h2{text-align:left;margin-bottom:10px}.simple-access .document-reading{max-height:44vh}.participant-home .participant-choice{min-height:245px}.participant-home .intro{margin-bottom:26px}.approved-card .actionstack{margin-top:22px}.simple-access details{margin-bottom:0}.simple-access details[open]{margin-bottom:8px}.simple-access .annual-profiles{gap:8px}.simple-access>p:last-child{text-align:center}.job-settings{max-width:900px;margin:30px auto}.job-settings textarea{width:100%;min-height:105px;padding:14px;border-radius:12px;background:#0a1015;border:1px solid var(--line);color:var(--text);overflow-wrap:anywhere}.job-settings .form .button{width:auto}

.approved-card .expired{color:var(--danger)}

.install-panel{max-width:760px;margin:28px auto}.install-panel h2{text-align:left}.install-panel details{margin-top:16px;margin-bottom:0}.install-panel[hidden]{display:none!important}.install-panel #mf-install-status:empty{display:none}
