body {
  font-family: Arial, sans-serif;
  margin: 2em;
  background: #f5f8fa;
  color: #333;
}
h1, h2, h3 { color: #ff8c00; }
fieldset {
  margin-bottom: 1.5em;
  padding: 1em;
  border: 1px solid #ccc;
  border-radius: 8px;
  background: #fff;
}
label { display: block; margin-top: 0.5em; }
input[type="text"], input[type="email"], input[type="tel"] {
  width: 100%;
  padding: 0.5em;
  margin-top: 0.3em;
  border: 1px solid #ccc;
  border-radius: 5px;
}
button, .button {
  display: inline-block;
  padding: 10px 20px;
  background: #ff8c00;
  color: white;
  border: none;
  border-radius: 5px;
  text-decoration: none;
  cursor: pointer;
  margin-top: 1em;
}
button:hover, .button:hover { background: #e67600; }
ul { list-style: none; padding-left: 0; }

/* --- Tableaux génériques (fallback) --- */
table.recap { border-collapse: collapse; table-layout: auto; width: auto; margin: 0; }
table.recap th, table.recap td { border: 1px solid #ccc; padding: .45rem .6rem; text-align: left; white-space: nowrap; }
table.recap thead th { background: #f7f7f7; }
table.recap tbody tr:nth-child(even) { background: #fafafa; }
table.recap tbody tr.day-start td { border-top: 3px solid #333; }
table.recap tbody tr.pm-start td { border-top: 2px solid #777; }
table.recap th.desc, table.recap td.desc { white-space: normal; }
/* --- Accueil (home) : thème orange/jaune --- */
body.home, body.inscription {
  background: #fff8e1; /* jaune très clair */
  color: #3d2a00;
}
@media (min-width: 769px) {
  body.home,
  body.inscription {
    max-width: 980px;
    margin: 2rem auto;
  }
}
body.home h1, body.home h2, body.home h3,
body.inscription h1, body.inscription h2, body.inscription h3 {
  color: #ff8c00; /* orange */
}
/* Bannière */
body.home .hero-banner {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 0 1rem 0;
  border-radius: 8px;
}
/* Bandeau session */
body.home .session-banner {
  margin: .5rem 0 1rem;
  font-weight: 600;
  padding: .4rem .6rem;
  background: #fff3cd; /* jaune pâle */
  border: 1px solid #ffcc80; /* jaune/orange */
  color: #7a4b00;
  display: inline-block;
  border-radius: 6px;
}
/* Tableau récapitulatif */
body.home table.recap { border-collapse: collapse; table-layout: auto; width: auto; margin: 0; border: 1px solid #d39e00; }
body.home table.recap th, body.home table.recap td {
  border: 1px solid #d39e00; /* plus contrasté */
  padding: .45rem .6rem;
  text-align: left;
  white-space: nowrap;
}
body.home table.recap thead th { background: #ffe08a; color: #5a3b00; }
body.home table.recap tbody tr:nth-child(even) { background: #fff9e6; }
body.home table.recap tbody tr.day-start td { border-top: 3px solid #ff9800; }
body.home table.recap tbody tr.day-period-start td { border-top: 2px solid #e5b2a3; }
body.home table.recap tbody tr.pm-start td { border-top: 2px solid #f0ad4e; }
body.home table.recap tbody tr.period-day td {
  background: #fff1ec;
}
body.home table.recap th.desc, body.home table.recap td.desc { white-space: normal; }
/* Bouton accueil */
/* Boutons orange (accueil + inscription) */
body.home .button, body.inscription .button { background: #ff8c00; }
body.home .button:hover, body.inscription .button:hover { background: #e67600; }
body.home button, body.inscription button { background: #ff8c00; }
body.home button:hover, body.inscription button:hover { background: #e67600; }
/* CTA spacing */
body.home .cta { margin-top: 1rem; }

/* Activités autonomes et parcours par QR code */
.student-session,.public-flash{padding:.8rem 1rem;border-radius:8px;margin:1rem 0;background:#fff3cd;border:1px solid #ffcc80}
.student-session a{float:right}
.public-flash.success,.activity-status.success{color:#176b32;background:#eaf7ee;border-color:#a9d8b5}
.public-flash.error,.activity-status.error{color:#9f2020;background:#fdecec;border-color:#efb3b3}
.activities-title{margin:1.6rem 0 1rem;font-size:1.8rem}.activity-days{display:grid;gap:1.6rem}.activity-day{padding:0}.activity-day-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .8rem;padding:.7rem .95rem;border-left:5px solid #ff8c00;border-radius:8px;background:linear-gradient(90deg,#fff0c7 0,#fff8e1 70%)}.activity-day-heading h2{margin:0;font-size:1.18rem;color:#5d4200}.activity-day-heading>span{flex:0 0 auto;padding:.28rem .58rem;border-radius:999px;background:#fff;color:#765d20;font-size:.8rem;font-weight:700}.activity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.activity-card{position:relative;overflow:hidden;background:#fff;border:1px solid #eadfca;border-radius:14px;padding:1.05rem 1.1rem 1.1rem;display:flex;flex-direction:column;min-height:230px;box-shadow:0 5px 18px rgba(91,65,14,.08);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.activity-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#ff8c00,#ffc34d)}.activity-card:hover{transform:translateY(-2px);border-color:#efc66c;box-shadow:0 10px 25px rgba(91,65,14,.13)}.activity-card.cancelled{opacity:.7}.activity-card.cancelled:before{background:#b64747}.activity-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem;margin:.2rem 0 .9rem}.activity-card h3{margin:0;color:#3f2d08;font-size:1.23rem;line-height:1.2}.activity-badge{flex:0 0 auto;padding:.28rem .5rem;border-radius:999px;font-size:.7rem;font-weight:800;line-height:1.2;white-space:nowrap}.activity-badge.direct{color:#176b32;background:#eaf7ee}.activity-badge.preregistration{color:#805400;background:#fff0c7}.activity-badge.closed,.activity-badge.cancelled{color:#912626;background:#fdecec}.activity-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-bottom:.85rem}.activity-details>div{display:grid;gap:.12rem;padding:.55rem .65rem;border-radius:8px;background:#f8f5ed}.activity-details>div:only-child{grid-column:1/-1}.activity-details span{color:#786d58;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.activity-details strong{overflow-wrap:anywhere;color:#443a27;font-size:.92rem}.activity-description{margin:.05rem 0 1rem;color:#5f5849;line-height:1.48}.activity-capacity{margin:.1rem 0 1rem}.activity-capacity>div:first-child{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:.38rem;color:#66552c;font-size:.85rem}.activity-capacity-track{height:7px;overflow:hidden;border-radius:999px;background:#eee5d2}.activity-capacity-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff9c1a,#ffc34d)}.activity-status{padding:.58rem .7rem;border:1px solid;border-radius:8px;margin:auto 0 0;font-weight:700;text-align:center}.activity-register-form{margin-top:auto}.activity-register-form button{width:100%;box-sizing:border-box;margin-top:.25rem;font-weight:700}.secondary-button{background:#666!important}.compact{padding:.4rem .65rem;margin:.1rem;font-size:.9rem}.danger{background:#a33}.inline-form{display:inline}.registration-actions{display:flex;align-items:center;gap:.65rem;margin:0}.registration-actions .compact{margin:0}.form-card{max-width:720px;margin:1rem auto;background:#fff;padding:1rem;border-radius:12px}.checkbox-label{display:flex;gap:.5rem;align-items:flex-start}
@media(max-width:640px){.activities-title{text-align:center;font-size:1.5rem}.activity-day-heading{padding:.65rem .75rem}.activity-day-heading h2{font-size:1.02rem}.activity-grid{grid-template-columns:1fr}.activity-card{min-height:0}.activity-card:hover{transform:none}.activity-card-heading{display:grid}.activity-badge{justify-self:start}.activity-details{grid-template-columns:1fr 1fr}}
.scan-inline{margin:0 0 1rem;padding:.9rem 1rem;border:1px solid #ddd;border-radius:10px;background:#fff}.scan-grid{display:grid;grid-template-columns:1fr;gap:1rem}.scan-inline.camera-active .scan-grid{grid-template-columns:minmax(220px,320px) 1fr}.scan-video-wrap{display:none;position:relative;border-radius:10px;overflow:hidden;background:#111}.scan-inline.camera-active .scan-video-wrap{display:block}.scan-video-wrap video{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}.scan-overlay{position:absolute;left:.6rem;right:.6rem;bottom:.6rem;padding:.7rem;border-radius:8px;background:rgba(20,95,38,.9);color:#fff;font-weight:700;display:none}.scan-controls{display:grid;gap:.55rem}.scan-controls button{width:100%;box-sizing:border-box}.scan-status{min-height:1.3rem;padding:.6rem;border-radius:7px;background:#f5f5f5}.scan-status.error{background:#fdeaea;color:#8b1f1f}.scan-status.ok{background:#e8f7e8;color:#155724}
@media(max-width:768px){.scan-inline.camera-active .scan-grid{grid-template-columns:1fr}}

/* Inscription d'élèves par recherche */
body.admin-page.student-registration-admin-page{max-width:980px;background:#f4f6f8}
.student-registration-admin{padding:0 .8rem 2rem}
.student-registration-back{margin-bottom:1.2rem}
.student-registration-header{margin-bottom:1.2rem}
.student-registration-header>p{margin:0;color:#ff8c00;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.student-registration-header h1{margin:.15rem 0 .3rem;color:#17212b;font-size:clamp(1.8rem,3vw,2.5rem)}
.student-registration-header>span{color:#64717d}
.student-registration-search,.student-registration-result{padding:1rem;border:1px solid #dde3e7;border-radius:14px;background:#fff;box-shadow:0 6px 20px rgba(28,39,49,.07)}
.student-registration-search-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:.75rem}
.student-registration-search-form label{display:grid;gap:.35rem;margin:0;color:#4f5c67;font-size:.8rem;font-weight:800}
.student-registration-search-form input,.student-registration-search-form select{width:100%;min-height:42px;margin:0;padding:.6rem .65rem;border:1px solid #cbd3d9;border-radius:8px;background:#fff;box-sizing:border-box;font:inherit}
.student-registration-search-form button{min-height:42px;margin:0}
.student-registration-search-heading{margin:1rem 0 .55rem;color:#64717d;font-size:.85rem}
.student-registration-students{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.student-registration-student{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;margin:0;padding:.75rem .85rem;border:1px solid #dce2e6;border-radius:9px;background:#fff;color:#34414c;text-align:left}
.student-registration-student:hover,.student-registration-student:focus-visible{border-color:#efaa45;background:#fff7e9;color:#5d4200}
.student-registration-student span{display:grid;gap:.15rem;min-width:0}
.student-registration-student strong{overflow:hidden;text-overflow:ellipsis}
.student-registration-student small{color:#68737d}
.student-registration-identity{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:-1rem -1rem 1rem;padding:1rem 1.15rem;border-radius:14px 14px 0 0;background:linear-gradient(120deg,#fff0c7,#fff8e6)}
.student-registration-identity span{color:#735c28;font-size:.75rem;font-weight:800;text-transform:uppercase}
.student-registration-identity h2{margin:.2rem 0 0;color:#3f2d08}
.student-registration-identity h2 span{font-size:inherit;font-weight:500;text-transform:none}
.student-registration-class{padding:.4rem .65rem;border-radius:999px;background:#fff;color:#8a5600}
.student-registration-result fieldset{margin:0;padding:0;border:0}
.student-registration-result legend{margin-bottom:.75rem;color:#34414c;font-weight:800}
.student-registration-activities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.student-registration-activity{display:flex;align-items:center;gap:.7rem;margin:0;padding:.8rem;border:1px solid #dce2e6;border-radius:10px;background:#fff;cursor:pointer}
.student-registration-activity:has(input:checked){border-color:#efaa45;background:#fff7e9;box-shadow:0 0 0 2px rgba(255,140,0,.12)}
.student-registration-activity input{flex:0 0 auto;width:1.15rem;height:1.15rem;accent-color:#ff8c00}
.student-registration-activity span{display:grid;gap:.2rem;min-width:0}
.student-registration-activity strong{color:#26323d}
.student-registration-activity small{color:#68737d;line-height:1.35}
.student-registration-empty{padding:1.2rem;border-radius:9px;background:#f5f7f8;color:#68737d;text-align:center}
.student-registration-actions{display:flex;gap:.65rem;margin-top:1rem}
.student-registration-actions button{flex:1;margin:0}
.student-registration-feedback{margin-top:1rem;padding:.7rem;border-radius:8px}
.student-registration-feedback.error{border:1px solid #efb3b3;background:#fdecec;color:#9f2020}
.student-registration-feedback.success{border:1px solid #b8dfc4;background:#edf8f0;color:#24733d}
@media(max-width:768px){body.admin-page.student-registration-admin-page{margin:.65rem}.student-registration-admin{padding:0 0 1rem}.student-registration-header h1{text-align:left}.student-registration-search-form{grid-template-columns:1fr}.student-registration-students,.student-registration-activities{grid-template-columns:1fr}.student-registration-actions{display:grid}.student-registration-identity{align-items:flex-start}.student-registration-identity h2{font-size:1.2rem}}

/* Administration activités / élèves */
.admin-wide{max-width:1280px;margin:0 auto}.admin-editor{background:#fff;border:1px solid #ddd;border-radius:10px;padding:1rem;margin-bottom:1rem}.admin-editor summary{cursor:pointer;font-weight:bold;color:#ff8c00}.activity-admin-form textarea,.activity-admin-form select,.activity-admin-form input[type=date],.activity-admin-form input[type=time],.activity-admin-form input[type=number],.toolbar select,.toolbar input{width:100%;box-sizing:border-box;padding:.55rem;border:1px solid #bbb;border-radius:5px}.form-row,.checkbox-grid,.toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:end}.form-row label{flex:1 1 160px}.checkbox-grid label{display:flex;align-items:center;gap:.35rem}.table-scroll{overflow-x:auto}.student-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:1rem}.student-card{background:#fff;border:1px solid #ddd;border-radius:10px;padding:1rem;text-align:center;break-inside:avoid}.student-card img{width:180px;height:180px}.student-card code{font-size:.75rem;word-break:break-all}.registration-group{background:#fff;border:1px solid #ddd;border-radius:10px;padding:1rem;margin:1rem 0}.registration-group table{width:100%}

/* Élèves licenciés */
body.admin-page.students-admin-page{max-width:1320px;background:#f4f6f8}
.students-admin{padding:0 .8rem 2rem}
.students-back-row{margin-bottom:1.25rem}
.students-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.25rem}
.students-page-header h1{margin:.15rem 0 .3rem;color:#17212b;font-size:clamp(1.8rem,3vw,2.5rem)}
.students-eyebrow{margin:0;color:#ff8c00;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.students-intro{margin:0;color:#64717d}
.students-count{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:.55rem .85rem;border:1px solid #ffd49b;border-radius:999px;background:#fff6e9;color:#9a5700;font-weight:700}
.students-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) minmax(155px,210px) auto;align-items:end;gap:.9rem;margin:0 0 1.25rem;padding:1rem;border:1px solid #dfe4e8;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(28,39,49,.06)}
.students-toolbar label{display:grid;gap:.38rem;margin:0;color:#46525d;font-size:.82rem;font-weight:700}
.students-toolbar input,.students-toolbar select{min-height:43px;border-color:#ccd3d9;border-radius:8px;background:#fff;color:#1e2933;font-size:.96rem}
.students-toolbar input:focus,.students-toolbar select:focus{outline:3px solid rgba(255,140,0,.16);border-color:#ff8c00}
.students-toolbar-actions{display:flex;align-items:center;gap:.55rem}
.students-toolbar-actions .button,.students-toolbar-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:43px;margin:0;white-space:nowrap;box-sizing:border-box}
.students-print-button{border-color:#355c7d!important;background:#355c7d!important;color:#fff!important}
.students-print-button:hover{border-color:#27465f!important;background:#27465f!important;color:#fff!important}
.students-filter-status{grid-column:1/-1;margin:0;color:#64717d;font-size:.8rem}
.students-filter-status:empty{display:none}
.students-filter-status.is-error{color:#a43131;font-weight:700}
#students-results{transition:opacity .15s ease}
#students-results.is-loading{opacity:.48;pointer-events:none}
.student-cards{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:1.15rem}
.student-card{padding:0;overflow:hidden;border-color:#dde2e6;border-radius:14px;text-align:left;box-shadow:0 6px 20px rgba(28,39,49,.07);transition:transform .18s ease,box-shadow .18s ease}
.student-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(28,39,49,.11)}
.student-card-top{display:grid;grid-template-columns:126px minmax(0,1fr);align-items:center;gap:1rem;padding:1rem;background:linear-gradient(135deg,#fff 45%,#fff8ed)}
.student-qr{display:flex;align-items:center;justify-content:center;padding:.38rem;border:1px solid #e1e5e8;border-radius:11px;background:#fff;box-shadow:0 3px 10px rgba(28,39,49,.07)}
.student-card .student-qr img{display:block;width:112px;height:112px}
.student-identity{min-width:0}
.student-identity h2{margin:.45rem 0 .7rem;color:#17212b;font-size:1.22rem;line-height:1.2;overflow-wrap:anywhere}
.student-class{display:inline-flex;padding:.28rem .55rem;border-radius:999px;background:#ff8c00;color:#fff;font-size:.76rem;font-weight:800;letter-spacing:.03em}
.student-badges{display:flex;flex-wrap:wrap;gap:.35rem}
.student-badges span{padding:.28rem .48rem;border-radius:6px;background:#edf1f4;color:#4d5964;font-size:.73rem;font-weight:700}
.student-badges .student-image-right.is-allowed{background:#e5f6eb;color:#24733d}
.student-badges .student-image-right.is-denied{background:#fbe9e9;color:#a43131}
.student-parent{display:grid;grid-template-columns:minmax(85px,.7fr) minmax(0,1.3fr);gap:.25rem .8rem;padding:.9rem 1rem;border-top:1px solid #edf0f2;background:#fff;font-size:.9rem}
.student-parent .student-section-label{grid-row:1 / span 3;color:#818b94;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.student-parent strong,.student-parent a{min-width:0;overflow-wrap:anywhere}
.student-parent a{color:#316b98;text-decoration:none}
.student-parent a:hover{text-decoration:underline}
.student-card-actions{display:flex;justify-content:flex-end;margin:0;padding:.65rem 1rem;border-top:1px solid #edf0f2;background:#fafbfc}
.student-card-actions button{margin:0}
.students-empty{padding:3rem 1rem;border:1px dashed #ccd3d9;border-radius:14px;background:#fff;text-align:center;color:#68737d}
.students-empty>span{display:inline-flex;align-items:center;justify-content:center;width:3.2rem;height:3.2rem;border-radius:50%;background:#fff2df;color:#d97400;font-size:2rem}
.students-empty h2{margin:.8rem 0 .35rem;color:#27333e}
.students-empty p{margin:0}

@media (max-width:768px){
  body.admin-page.students-admin-page{margin:.65rem;background:#f4f6f8}
  .students-admin{padding:0 0 1rem}
  .students-back-row{margin:0 0 1rem}
  .students-back-row .button{width:auto}
  .students-page-header{align-items:flex-start;margin-bottom:1rem}
  .students-page-header h1{font-size:1.65rem}
  .students-intro{font-size:.9rem}
  .students-count{padding:.42rem .65rem;font-size:.78rem}
  .students-toolbar{grid-template-columns:1fr;gap:.75rem;padding:.8rem;border-radius:11px}
  .students-toolbar-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
  .students-toolbar-actions .button,.students-toolbar-actions button{width:100%;padding:.65rem .45rem;font-size:.84rem;white-space:normal}
  .students-toolbar-actions .students-print-button:last-child{grid-column:1 / -1}
  .student-cards{grid-template-columns:1fr;gap:.75rem}
  .student-card{border-radius:11px;box-shadow:0 3px 12px rgba(28,39,49,.06)}
  .student-card:hover{transform:none;box-shadow:0 3px 12px rgba(28,39,49,.06)}
  .student-card-top{grid-template-columns:88px minmax(0,1fr);gap:.75rem;padding:.75rem}
  .student-qr{padding:.25rem;border-radius:8px}
  .student-card .student-qr img{width:78px;height:78px}
  .student-identity h2{margin:.32rem 0 .5rem;font-size:1.05rem}
  .student-class{padding:.2rem .42rem;font-size:.68rem}
  .student-badges{gap:.25rem}
  .student-badges span{padding:.22rem .36rem;font-size:.65rem}
  .student-parent{grid-template-columns:76px minmax(0,1fr);padding:.7rem .75rem;font-size:.82rem}
}
.activity-form-fields>h2,.activity-form-options>h2{display:none}.activity-form-actions{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}.activity-form-actions .button,.activity-form-actions button{margin-top:1rem}
.activity-personnel-field{margin:.75rem 0 0;padding:.75rem;border:1px solid #ddd;border-radius:8px}.activity-personnel-field legend{padding:0 .35rem;font-weight:600}.personnel-checkbox-grid{display:flex;flex-wrap:wrap;gap:.55rem}.personnel-checkbox-grid label{display:flex;align-items:center;gap:.4rem;margin:0;padding:.55rem .7rem;border:1px solid #ddd;border-radius:8px;background:#fff;cursor:pointer}.personnel-checkbox-grid input{margin:0;accent-color:#ff8c00}.activity-form-empty{color:#777;font-style:italic}
.activity-effectif-field{margin-top:1rem;font-weight:600}.activity-effectif-field[hidden]{display:none!important}.activity-effectif-field input{display:block}
@media(min-width:769px){body.admin-page.activities-admin-page{max-width:1280px}.activities-admin-page .admin-editor{padding:0;border:0;overflow:hidden;box-shadow:0 10px 30px rgba(80,58,12,.12)}.activities-admin-page .admin-editor summary{padding:1.15rem 1.35rem;background:linear-gradient(135deg,#fff8e5,#fff);border:1px solid #ead9a6;font-size:1.12rem;letter-spacing:.01em}.activities-admin-page .admin-editor[open] summary{border-bottom-color:#f0dfb3}.activity-admin-form{padding:1.35rem}.activity-form-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(260px,.8fr);gap:1.35rem;align-items:start}.activity-form-fields>h2,.activity-form-options>h2{display:block;margin:0 0 1rem;font-size:1rem;color:#614c1c;text-transform:uppercase;letter-spacing:.055em}.activity-identity-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:1rem}.activity-identity-grid label,.activity-schedule-grid label{margin:0;font-weight:600;color:#4b4538}.activity-admin-form input,.activity-admin-form select,.activity-admin-form textarea{box-sizing:border-box;width:100%;font:inherit}.activity-admin-form input[type=text],.activity-admin-form select,.activity-admin-form textarea,.activity-admin-form input[type=date],.activity-admin-form input[type=time],.activity-admin-form input[type=number]{margin-top:.4rem;border:1px solid #d5c8a6;border-radius:8px;background:#fff;padding:.7rem .75rem;transition:border-color .15s,box-shadow .15s}.activity-admin-form input:focus,.activity-admin-form select:focus,.activity-admin-form textarea:focus{outline:0;border-color:#f0a526;box-shadow:0 0 0 3px rgba(255,140,0,.14)}.activity-description-field{grid-column:1/-1}.activity-description-field textarea{resize:vertical;min-height:94px}.activity-personnel-field{grid-column:1/-1}.personnel-checkbox-grid input[type=checkbox]{width:1.1rem;height:1.1rem}.activity-schedule-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1.1fr;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #eee5ce}.activity-form-options{padding:1rem;border:1px solid #ead9a6;border-radius:12px;background:#fffaf0}.activity-form-options .checkbox-grid{display:grid;gap:.65rem}.activity-form-options .checkbox-grid label{margin:0;padding:.72rem .75rem;border:1px solid #eadfca;border-radius:8px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s}.activity-form-options .checkbox-grid label:hover{border-color:#f0a526;background:#fff8e8}.activity-form-options input[type=checkbox]{width:1.1rem;height:1.1rem;margin:0;accent-color:#ff8c00}.activity-form-actions{justify-content:flex-end;margin-top:1.25rem;padding-top:1rem;border-top:1px solid #eee5ce}.activity-form-actions .button,.activity-form-actions button{margin:0;min-width:160px;text-align:center}}

/* Liste des activités en administration */
body.admin-page.activities-admin-page{background:#f4f6f8}
.activities-admin{padding:0 .8rem 2rem}
.activities-back-row{margin-bottom:1.25rem}
.activities-admin-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.3rem}
.activities-admin-header h1{margin:.12rem 0 .3rem;color:#17212b;font-size:clamp(1.8rem,3vw,2.5rem)}
.activities-admin-header>div>p:last-child{margin:0;color:#64717d}
.activities-admin-eyebrow{margin:0!important;color:#ff8c00!important;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.activities-admin-stats{display:flex;gap:.55rem;flex:0 0 auto}
.activities-admin-stats .activity-stat-filter{display:grid;justify-items:center;min-width:74px;margin:0;padding:.5rem .7rem;border:1px solid #dce2e6;border-radius:10px;background:#fff;color:#69747e;font:inherit;font-size:.7rem;font-weight:700;text-transform:uppercase;box-shadow:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.activities-admin-stats .activity-stat-filter:hover{transform:translateY(-1px);border-color:#ffb44d;background:#fffaf2;box-shadow:0 4px 12px rgba(28,39,49,.08)}
.activities-admin-stats .activity-stat-filter:focus-visible{outline:3px solid rgba(255,140,0,.22);outline-offset:2px}
.activities-admin-stats .activity-stat-filter.is-active{border-color:#ffad3d;box-shadow:0 0 0 2px rgba(255,140,0,.12)}
.activities-admin-stats strong{color:#26323d;font-size:1.18rem}
.activities-admin-stats .activity-stat-filter.upcoming{border-color:#bfe1ca;background:#edf8f0;color:#39784b}
.activities-admin-stats .activity-stat-filter.upcoming:hover,.activities-admin-stats .activity-stat-filter.upcoming.is-active{border-color:#65b47c;background:#e4f5e9;box-shadow:0 0 0 2px rgba(75,167,102,.12)}
.activities-admin-stats .upcoming strong{color:#24733d}
.activities-list-panel{overflow:hidden;margin-top:1.4rem;border:1px solid #dfe4e8;border-radius:15px;background:#fff;box-shadow:0 7px 24px rgba(28,39,49,.07)}
.activities-list-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;border-bottom:1px solid #e5e9ec;background:linear-gradient(120deg,#fff8e9,#fff)}
.activities-list-header h2{margin:0;color:#44320c;font-size:1.2rem}
.activities-list-header p{margin:.25rem 0 0;color:#756d5e;font-size:.84rem}
.activities-list-header>span{flex:0 0 auto;padding:.32rem .6rem;border-radius:999px;background:#ffedc7;color:#805400;font-size:.75rem;font-weight:800}
.activity-table-wrap{overflow-x:auto}
table.recap.activity-admin-table{width:100%;margin:0;border-collapse:separate;border-spacing:0;font-size:.84rem}
table.recap.activity-admin-table th,table.recap.activity-admin-table td{padding:.72rem .65rem;border:0;border-bottom:1px solid #e8ecef;vertical-align:middle;white-space:normal}
table.recap.activity-admin-table thead th{position:sticky;top:0;z-index:1;background:#f6f8f9;color:#58646f;font-size:.7rem;letter-spacing:.045em;text-transform:uppercase}
table.recap.activity-admin-table tbody tr:nth-child(even){background:#fafbfc}
table.recap.activity-admin-table tbody tr:hover{background:#fff9ee}
table.recap.activity-admin-table tbody tr:last-child td{border-bottom:0}
.activity-admin-table .activity-table-date{min-width:78px;border-left:4px solid #4ba766}
.activity-admin-table .activity-state-cancelled .activity-table-date{border-left-color:#c95757}
.activity-admin-table .activity-state-closed .activity-table-date{border-left-color:#d7a12b}
.activity-admin-table .is-past .activity-table-date{border-left-color:#aeb6bd}
.activity-table-date strong,.activity-table-time strong,.activity-table-name strong{display:block;color:#26323d}
.activity-table-date span{display:inline-block;margin-top:.25rem;color:#24733d;font-size:.67rem;font-weight:800;text-transform:uppercase}
.activity-table-time{min-width:70px}
.activity-table-time span{display:block;color:#75808a;font-size:.72rem}
.activity-table-name{min-width:170px;max-width:245px}
.activity-table-name>strong{font-size:.93rem}
.activity-table-name small{display:-webkit-box;overflow:hidden;margin-top:.35rem;color:#737d86;font-size:.72rem;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.activity-mode-badge{display:inline-block;margin-top:.35rem;padding:.2rem .4rem;border-radius:5px;font-size:.64rem;font-weight:800}
.activity-mode-badge.pre{background:#fff0c7;color:#805400}
.activity-mode-badge.direct{background:#e5f6eb;color:#24733d}
.activity-table-place{max-width:125px;color:#4d5964;font-weight:600;overflow-wrap:anywhere}
.activity-table-staff{min-width:120px;max-width:185px;color:#5c6771;line-height:1.35;overflow-wrap:anywhere}
.activity-table-registration{min-width:105px}
.activity-table-registration span{display:block;color:#59646e;font-size:.72rem;white-space:nowrap}
.activity-table-registration strong{color:#26323d;font-size:.95rem}
.activity-table-registration .requests{margin-top:.22rem;color:#9a6700}
.activity-state-badge{display:inline-flex;padding:.28rem .48rem;border-radius:999px;font-size:.69rem;font-weight:800;white-space:nowrap}
.activity-state-badge.open{background:#e4f5e9;color:#24733d}
.activity-state-badge.closed{background:#fff0c7;color:#805400}
.activity-state-badge.cancelled{background:#fbe7e7;color:#a43131}
.activity-table-state small{display:block;margin-top:.25rem;color:#87919a;font-size:.65rem;text-align:center}
.activity-table-actions>div{display:grid;gap:.35rem;min-width:88px}
.activity-table-actions .button,.activity-table-actions button{display:block;width:100%;margin:0;padding:.38rem .48rem;box-sizing:border-box;text-align:center;font-size:.72rem}
.activities-list-empty{padding:3rem 1rem;text-align:center;color:#68737d}
.activities-list-empty>span{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:50%;background:#fff1d8;color:#d97400;font-size:1.8rem}
.activities-list-empty h3{margin:.7rem 0 .3rem;color:#27333e}
.activities-list-empty p{margin:0}
.activities-filter-empty{padding:2.5rem 1rem;text-align:center;color:#68737d}
.activities-filter-empty>span{display:inline-flex;align-items:center;justify-content:center;width:2.7rem;height:2.7rem;border-radius:50%;background:#edf1f4;color:#7b858e;font-size:1.5rem}
.activities-filter-empty h3{margin:.65rem 0 .25rem;color:#3c4852}
.activities-filter-empty p{margin:0;font-size:.85rem}
.activity-row[hidden]{display:none!important}

@media(max-width:768px){
  body.admin-page.activities-admin-page{margin:.65rem;background:#f4f6f8}
  .activities-admin{padding:0 0 1rem}
  .activities-back-row{margin:0 0 1rem}
  .activities-admin-header{align-items:flex-start;margin-bottom:1rem}
  body.admin-page .activities-admin-header h1{text-align:left;font-size:1.65rem}
  .activities-admin-header>div>p:last-child{font-size:.88rem}
  .activities-admin-stats .activity-stat-filter{min-width:52px;padding:.38rem .45rem;font-size:.58rem}
  .activities-admin-stats strong{font-size:1rem}
  .activities-admin-page .admin-editor{padding:.85rem;border-radius:11px}
  .activities-admin-page .admin-editor summary{font-size:1rem}
  .activity-admin-form{padding-top:.6rem}
  .activity-form-layout,.activity-identity-grid,.activity-schedule-grid{display:grid;grid-template-columns:1fr;gap:.75rem}
  .activity-admin-form label{margin:0}
  .activity-form-options{margin-top:.8rem;padding:.75rem;border:1px solid #ead9a6;border-radius:9px;background:#fffaf0}
  .activity-form-options .checkbox-grid{display:grid;gap:.5rem}
  .activity-form-actions{display:grid;grid-template-columns:1fr;gap:.5rem}
  .activity-form-actions .button,.activity-form-actions button{width:100%;margin:.5rem 0 0;box-sizing:border-box}
  .activities-list-panel{margin-top:1rem;border-radius:11px}
  .activities-list-header{align-items:flex-start;padding:.8rem}
  body.admin-page .activities-list-header h2{text-align:left;font-size:1.05rem}
  .activities-list-header p{font-size:.76rem}
  .activity-table-wrap{overflow:visible;padding:.6rem;background:#f1f3f5}
  table.recap.activity-admin-table,table.recap.activity-admin-table tbody{display:block;width:100%}
  table.recap.activity-admin-table thead{display:none}
  table.recap.activity-admin-table tbody{display:grid;gap:.6rem}
  table.recap.activity-admin-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name state" "date time" "place place" "staff staff" "registration registration" "actions actions";gap:.4rem .75rem;padding:.75rem;border:1px solid #dce2e6;border-left:4px solid #4ba766;border-radius:10px;background:#fff!important;box-shadow:0 2px 8px rgba(28,39,49,.06)}
  table.recap.activity-admin-table tbody tr.activity-state-cancelled{border-left-color:#c95757}
  table.recap.activity-admin-table tbody tr.activity-state-closed{border-left-color:#d7a12b}
  table.recap.activity-admin-table tbody tr.is-past{border-left-color:#aeb6bd}
  table.recap.activity-admin-table td{display:block;min-width:0;max-width:none;padding:0!important;border:0!important;white-space:normal}
  .activity-table-name{grid-area:name}
  .activity-table-name>strong{font-size:1rem}
  .activity-table-name small{font-size:.7rem;-webkit-line-clamp:1}
  .activity-table-state{grid-area:state;text-align:right}
  .activity-table-date{grid-area:date}
  .activity-table-time{grid-area:time;text-align:right}
  .activity-table-time strong,.activity-table-time span{display:inline;font-size:.78rem}
  .activity-table-place{grid-area:place;padding-top:.38rem!important;border-top:1px solid #edf0f2!important;font-size:.8rem}
  .activity-table-staff{grid-area:staff;font-size:.78rem}
  .activity-table-place:before,.activity-table-staff:before{content:attr(data-label) " : ";color:#7b858e;font-size:.68rem;font-weight:800;text-transform:uppercase}
  .activity-table-registration{grid-area:registration;display:flex!important;gap:.65rem;padding-top:.38rem!important;border-top:1px solid #edf0f2!important}
  .activity-table-registration span,.activity-table-registration .requests{display:inline;margin:0}
  .activity-table-actions{grid-area:actions;padding-top:.2rem!important}
  .activity-table-actions>div{grid-template-columns:1fr 1fr;gap:.5rem}
  .activity-table-actions .button,.activity-table-actions button{padding:.52rem;font-size:.76rem}
}
/* Administration des inscriptions */
body.admin-page.registrations-admin-page{max-width:1200px}.registrations-admin-page .registration-group{overflow:hidden;margin:1.25rem 0;padding:0;border:1px solid #e5dcc7;border-radius:14px;box-shadow:0 6px 20px rgba(69,53,21,.08)}.registration-group-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;background:linear-gradient(120deg,#fff8e5,#fff)}.registration-title-line{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.registration-title-line h2{margin:0;color:#4b3508;font-size:1.25rem}.registration-group-header p{margin:.35rem 0 0;color:#756847}.registration-mode{padding:.25rem .5rem;border-radius:999px;font-size:.7rem;font-weight:800}.registration-mode.pre{color:#805400;background:#fff0c7}.registration-mode.direct{color:#176b32;background:#eaf7ee}.registration-mode.locked{color:#912626;background:#fdecec}.registration-metrics{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem}.registration-metrics span{padding:.42rem .6rem;border:1px solid #e5dcc7;border-radius:8px;background:#fff;color:#625943;font-size:.8rem;white-space:nowrap}.registration-metrics strong{color:#2f291d;font-size:1rem}.registration-metrics .pending{border-color:#efcc82;background:#fff8e5;color:#805400}.registration-metrics .rejected{border-color:#efbebe;background:#fdf0f0;color:#a43131}.registration-empty{margin:0;padding:1rem 1.15rem;border-top:1px solid #eee6d4;color:#756847}.registration-table-wrap{overflow-x:auto}.registration-table{width:100%!important}.registration-table th,.registration-table td{border-color:#e8e1d4!important}.registration-table thead th{padding:0!important;background:#f8f5ed!important}.registration-table thead th:not([aria-sort]){padding:.65rem .7rem!important}.table-sort-button{display:flex;align-items:center;justify-content:space-between;gap:.4rem;width:100%;margin:0;padding:.65rem .7rem;border:0;border-radius:0;background:transparent;color:#4b4538;font:inherit;font-weight:700;text-align:left}.table-sort-button:hover,.table-sort-button:focus-visible{background:#fff0c7;color:#4b3508}.registration-table th[aria-sort="ascending"] .table-sort-button:after{content:"↑"}.registration-table th[aria-sort="descending"] .table-sort-button:after{content:"↓"}.registration-table th[aria-sort="none"] .table-sort-button:after{content:"↕";color:#a69b83;font-size:.8rem}.registration-table tbody tr.validated{background:#f2faf4}.registration-table tbody tr.pending{background:#fffaf0}.registration-table tbody tr.rejected{background:#fdf0f0}.registration-contact a,.registration-contact span{display:block}.registration-contact span{margin-top:.15rem;color:#625943}.registration-state-badge{display:inline-block;padding:.3rem .5rem;border-radius:999px;font-size:.75rem;font-weight:800;white-space:nowrap}.registration-state-badge.validated{color:#176b32;background:#dff3e5}.registration-state-badge.pending{color:#805400;background:#ffedbc}.registration-state-badge.rejected{color:#9f2020;background:#f7d7d7}.registration-row-actions{min-width:160px}.registration-actions{justify-content:flex-start}.registration-actions button{min-width:72px}
@media(max-width:768px){body.admin-page.registrations-admin-page{margin:.6rem}.registrations-admin-page>main>h1{text-align:center}.registrations-admin-page .registration-group{margin:1rem 0;border-radius:11px}.registration-group-header{display:grid;gap:.7rem;padding:.8rem}.registration-title-line{align-items:flex-start}.registration-title-line h2{width:100%;font-size:1.1rem}.registration-group-header p{font-size:.86rem;line-height:1.4}.registration-metrics{justify-content:flex-start}.registration-metrics span{padding:.32rem .48rem;font-size:.74rem}.registration-table-wrap{overflow:visible;padding:.65rem;background:#f8f5ed}.registration-table,.registration-table thead,.registration-table tbody{display:block;width:100%!important}.registration-table thead:before{content:"Trier par";display:block;margin:0 0 .35rem;color:#756847;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.registration-table thead tr{display:flex;flex-wrap:wrap;gap:.3rem;background:transparent}.registration-table thead th{display:block;border:0!important;background:transparent!important}.registration-table thead th:not([aria-sort]){display:none}.table-sort-button{width:auto;padding:.35rem .5rem;border:1px solid #ddd2b9;border-radius:999px;background:#fff;font-size:.72rem}.registration-table tbody{display:grid;gap:.55rem;margin-top:.65rem}.registration-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"student class" "parent state" "contact contact" "actions actions";gap:.25rem .7rem;padding:.72rem .75rem;border:1px solid #e1d7c1;border-radius:10px;box-shadow:0 2px 7px rgba(69,53,21,.06)}.registration-table tbody td{display:block;padding:.1rem 0!important;border:0!important;white-space:normal!important}.registration-student{grid-area:student;min-width:0}.registration-student strong{display:block;overflow:hidden;text-overflow:ellipsis}.registration-class{grid-area:class;align-self:start;padding:.2rem .42rem!important;border-radius:999px!important;background:#eee9df;font-size:.75rem;font-weight:800}.registration-parent{grid-area:parent;color:#625943;font-size:.82rem}.registration-parent:before{content:"Parent : ";font-weight:700}.registration-contact{grid-area:contact;display:flex!important;flex-wrap:wrap;gap:.2rem .7rem!important;padding-top:.35rem!important;border-top:1px solid #eee5d2!important;font-size:.78rem}.registration-contact a,.registration-contact span{margin:0;overflow-wrap:anywhere}.registration-state{grid-area:state;align-self:start;text-align:right}.registration-state-badge{padding:.25rem .42rem;font-size:.68rem}.registration-row-actions{grid-area:actions;min-width:0;padding-top:.4rem!important}.registration-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:.55rem}.registration-actions button{width:100%;min-width:0;margin:0}.registration-row-actions:empty{display:none!important}}
/* Archives des inscriptions */
.archive-metrics .archive-present-metric{border-color:#b8dfc4;background:#edf8f0;color:#24733d}
.archive-metrics .archive-absent-metric{border-color:#efbebe;background:#fdf0f0;color:#a43131}
.archive-table tbody tr.archive-present{background:#edf8f0!important}
.archive-table tbody tr.archive-excused{background:#fff5dc!important}
.archive-table tbody tr.archive-absent{background:#fdf0f0!important}
.archive-presence-badge{display:inline-block;padding:.3rem .5rem;border-radius:999px;font-size:.75rem;font-weight:800;white-space:nowrap}
.archive-presence-badge.present{background:#d5efdd;color:#176b32}
.archive-presence-badge.excused{background:#ffe9b0;color:#805400}
.archive-presence-badge.absent{background:#f7d7d7;color:#9f2020}
.archive-no-registration{margin:0;padding:1rem 1.15rem;color:#756847}
@media(max-width:768px){.archive-presence-badge{padding:.25rem .42rem;font-size:.68rem}.archive-table tbody tr.archive-present{border-color:#a9d8b5}.archive-table tbody tr.archive-excused{border-color:#e8cf7a}.archive-table tbody tr.archive-absent{border-color:#efb3b3}}

/* Feuilles d'appel */
body.admin-page.rollcall-admin-page{max-width:1240px;background:#f4f6f8}
.rollcall-admin{padding:0 .8rem 2rem}
.appel-top-nav{margin:.2rem 0 1.15rem}
.rollcall-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.25rem}
.rollcall-page-header h1{margin:.12rem 0 .3rem;color:#17212b;font-size:clamp(1.8rem,3vw,2.5rem)}
.rollcall-page-header>div>p:last-child{margin:0;color:#64717d}
.rollcall-eyebrow{margin:0!important;color:#ff8c00!important;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.rollcall-page-header>span{flex:0 0 auto;padding:.5rem .75rem;border:1px solid #ffd49b;border-radius:999px;background:#fff6e9;color:#925500;font-size:.8rem;font-weight:800}
.rollcall-picker{overflow:hidden;border:1px solid #dfe4e8;border-radius:15px;background:#fff;box-shadow:0 7px 24px rgba(28,39,49,.07)}
.rollcall-picker>header{padding:1rem 1.15rem;border-bottom:1px solid #e7eaed;background:linear-gradient(120deg,#fff8e9,#fff)}
.rollcall-picker>header h2{margin:0;color:#44320c;font-size:1.2rem}
.rollcall-picker>header p{margin:.25rem 0 0;color:#756d5e;font-size:.84rem}
.rollcall-date-groups{display:grid;gap:1.1rem;padding:1.1rem}
.rollcall-date-group{display:grid;gap:.65rem}
.appel-date-title{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem .7rem;border-left:4px solid #ff8c00;border-radius:7px;background:#fff7e6;color:#5d4200}
.appel-date-title>div:first-child{display:flex;align-items:center;gap:.65rem}
.appel-date-title strong{font-size:.92rem}
.appel-date-title span{color:#866d37;font-size:.7rem;font-weight:800;text-transform:uppercase}
.rollcall-day-validation{display:flex;align-items:center;justify-content:flex-end}
.rollcall-day-validation form{margin:0}
.rollcall-day-validation .rollcall-validate-button{margin:0;padding:.48rem .7rem;border-radius:7px;background:#5a2d82;font-size:.72rem;font-weight:800}
.rollcall-day-validation .rollcall-validate-button:hover{background:#472268}
.rollcall-day-validation .rollcall-validated-badge,.rollcall-validated-badge{display:inline-flex;padding:.32rem .5rem;border-radius:999px;background:#dff3e5;color:#176b32;font-size:.68rem;font-weight:800;text-transform:none}
.rollcall-day-validation .rollcall-future-badge{color:#8a7b5d;font-size:.64rem;text-transform:none}
.appel-activity-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.7rem}
.rollcall-activity-card{position:relative;display:grid;gap:.3rem;min-width:0;padding:.85rem .9rem .8rem;border:1px solid #dde3e7;border-left:4px solid #2878b5;border-radius:10px;background:#fff;color:#34414c;text-decoration:none;box-shadow:0 3px 10px rgba(28,39,49,.05);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.rollcall-activity-card.pm{border-left-color:#d47a11}
.rollcall-activity-card:hover{transform:translateY(-2px);border-color:#efb452;background:#fffaf2;box-shadow:0 7px 18px rgba(28,39,49,.1)}
.rollcall-card-time{color:#a45d00;font-size:.72rem;font-weight:800;letter-spacing:.03em}
.rollcall-activity-card strong{overflow-wrap:anywhere;color:#26323d;font-size:1rem}
.rollcall-activity-card small{overflow:hidden;color:#6b7680;font-size:.75rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.rollcall-card-count{margin-top:.15rem;color:#33734a;font-size:.72rem;font-weight:800}
.rollcall-empty{padding:2.7rem 1rem;text-align:center;color:#68737d}
.rollcall-empty>span{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:50%;background:#e5f6eb;color:#24733d;font-size:1.4rem;font-weight:800}
.rollcall-empty h3{margin:.7rem 0 .3rem;color:#34414c}
.rollcall-empty p{margin:0}
.rollcall-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:1rem;padding:1rem 1.15rem;border:1px solid #e1d6ba;border-radius:14px;background:linear-gradient(120deg,#fff8e6,#fff);box-shadow:0 5px 16px rgba(69,53,21,.07)}
.rollcall-sheet-date{display:inline-block;margin-bottom:.3rem;color:#a46100;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.rollcall-sheet-header .appel-title{margin:0;color:#44320c;font-size:1.45rem}
.rollcall-sheet-header .appel-meta{margin:.35rem 0 0;color:#716958;font-size:.88rem}
.rollcall-sheet-validated{margin-top:.55rem}
.rollcall-metrics{display:flex;justify-content:flex-end;gap:.5rem;flex:0 0 auto}
.rollcall-metrics span{display:grid;justify-items:center;min-width:65px;padding:.45rem .6rem;border:1px solid #dce2e6;border-radius:9px;background:#fff;color:#68737d;font-size:.65rem;font-weight:800;text-transform:uppercase}
.rollcall-metrics strong{color:#26323d;font-size:1.1rem}
.rollcall-metrics .present{border-color:#b8dfc4;background:#edf8f0;color:#24733d}
.rollcall-metrics .present strong{color:#176b32}
.rollcall-metrics .absent{border-color:#efbebe;background:#fdf0f0;color:#a43131}
.rollcall-metrics .absent strong{color:#9f2020}
.rollcall-mobile-scanner{display:none}
.rollcall-table-wrap{overflow:hidden;border:1px solid #dfe4e8;border-radius:14px;background:#fff;box-shadow:0 6px 20px rgba(28,39,49,.07)}
table.recap.appel-table{width:100%;margin:0;border-collapse:separate;border-spacing:0}
table.recap.appel-table th,table.recap.appel-table td{padding:.72rem .8rem;border:0;border-bottom:1px solid #e7ebee;vertical-align:middle;white-space:normal}
table.recap.appel-table thead th{background:#f5f7f8;color:#5d6872;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase}
table.recap.appel-table tbody tr:last-child td{border-bottom:0}
table.recap.appel-table tbody tr.present-row{background:#edf8f0!important}
table.recap.appel-table tbody tr.excused-row{background:#fff5dc!important}
table.recap.appel-table tbody tr.absent-row{background:#fdf0f0!important}
.rollcall-student strong{color:#26323d;font-size:.92rem}
.rollcall-class{width:80px;color:#56616b;font-weight:800}
.rollcall-contact{min-width:190px}
.rollcall-contact a{display:block;color:#316b98;font-size:.78rem;text-decoration:none;overflow-wrap:anywhere}
.rollcall-contact a:hover{text-decoration:underline}
.rollcall-status{width:315px}
.rollcall-status-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}
.rollcall-status-option{margin:0;cursor:pointer}
.rollcall-status-option input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.rollcall-status-option span{display:block;padding:.42rem .5rem;border:1px solid #ced5da;border-radius:7px;background:#fff;color:#66717a;font-size:.72rem;font-weight:800;text-align:center;transition:border-color .12s ease,background .12s ease,color .12s ease}
.rollcall-status-option input:focus-visible+span{outline:3px solid rgba(255,140,0,.2);outline-offset:1px}
.rollcall-status-option input:disabled+span{cursor:not-allowed;opacity:.72}
.rollcall-status-option.present input:checked+span{border-color:#65b47c;background:#d8f0df;color:#176b32}
.rollcall-status-option.absent input:checked+span{border-color:#dc8585;background:#f7d7d7;color:#9f2020}
.rollcall-status-option.excuse input:checked+span{border-color:#d9b44c;background:#ffe9b0;color:#805400}

@media(max-width:768px){
  body.admin-page.rollcall-admin-page{margin:.65rem;background:#f4f6f8}
  .rollcall-admin{padding:0 0 1rem}
  .appel-top-nav{margin:0 0 1rem}
  .rollcall-page-header{align-items:flex-start;margin-bottom:1rem}
  body.admin-page .rollcall-page-header h1{text-align:left;font-size:1.65rem}
  .rollcall-page-header>div>p:last-child{font-size:.86rem}
  .rollcall-page-header>span{padding:.4rem .55rem;font-size:.7rem}
  .rollcall-picker{border-radius:11px}
  .rollcall-picker>header{padding:.8rem}
  body.admin-page .rollcall-picker>header h2{text-align:left;font-size:1.05rem}
  .rollcall-date-groups{gap:.9rem;padding:.7rem}
  .appel-date-title{padding:.48rem .58rem}
  .appel-date-title{align-items:flex-start;gap:.55rem}
  .appel-date-title>div:first-child{display:grid;gap:.1rem}
  .rollcall-day-validation .rollcall-validate-button{padding:.42rem .52rem;font-size:.65rem}
  .rollcall-day-validation .rollcall-future-badge{max-width:105px;text-align:right}
  .appel-activity-row{grid-template-columns:1fr;gap:.5rem}
  .rollcall-activity-card{padding:.72rem .75rem;border-radius:8px}
  .rollcall-activity-card:hover{transform:none}
  .rollcall-sheet-header{display:grid;gap:.75rem;padding:.8rem;border-radius:11px}
  body.admin-page .rollcall-sheet-header .appel-title{text-align:left;font-size:1.2rem}
  .rollcall-sheet-header .appel-meta{font-size:.8rem}
  .rollcall-metrics{display:grid;grid-template-columns:repeat(3,1fr);justify-content:stretch}
  .rollcall-metrics span{min-width:0;padding:.35rem .3rem;font-size:.56rem}
  .rollcall-metrics strong{font-size:.95rem}
  .rollcall-mobile-scanner{display:block;margin:0 0 .8rem;padding:.7rem;border-color:#d6dde2;box-shadow:0 3px 12px rgba(28,39,49,.06)}
  .rollcall-mobile-scanner .scan-video-wrap{border-radius:8px}
  .rollcall-mobile-scanner .scan-video-wrap video{aspect-ratio:4/3}
  .rollcall-mobile-scanner .scan-status{min-height:0;padding:.5rem;font-size:.78rem;text-align:center}
  .rollcall-table-wrap{overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}
  table.recap.appel-table,table.recap.appel-table tbody{display:block;width:100%}
  table.recap.appel-table thead{display:none}
  table.recap.appel-table tbody{display:grid;gap:.6rem}
  table.recap.appel-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"student class" "contact contact" "status status";gap:.35rem .7rem;padding:.72rem .75rem;border:1px solid #dce2e6;border-radius:10px;box-shadow:0 2px 8px rgba(28,39,49,.06)}
  table.recap.appel-table tbody tr.present-row{border-color:#a9d8b5}
  table.recap.appel-table tbody tr.excused-row{border-color:#e8cf7a}
  table.recap.appel-table tbody tr.absent-row{border-color:#efb3b3}
  table.recap.appel-table td{display:block;width:auto;min-width:0;padding:0!important;border:0!important}
  .rollcall-student{grid-area:student}
  .rollcall-student strong{font-size:.9rem}
  .rollcall-class{grid-area:class;align-self:start;padding:.2rem .4rem!important;border-radius:999px!important;background:rgba(255,255,255,.7);font-size:.72rem}
  .rollcall-contact{grid-area:contact;display:flex!important;flex-wrap:wrap;gap:.2rem .7rem;padding-top:.3rem!important;border-top:1px solid rgba(0,0,0,.08)!important}
  .rollcall-contact a{font-size:.72rem}
  .rollcall-status{grid-area:status;padding-top:.25rem!important}
  .rollcall-status-option span{padding:.48rem .3rem;font-size:.68rem}
}

@media(min-width:769px){.rollcall-mobile-scanner{display:none!important}}
@media print{.admin-page .toolbar,.admin-page>a,.admin-page main>p:first-child,.student-card-actions{display:none!important}.student-cards{grid-template-columns:repeat(3,1fr)}body.admin-page.students-admin-page{max-width:none;margin:0;background:#fff}.students-admin{padding:0}.students-page-header{margin-bottom:.7rem}.students-page-header .students-intro,.students-page-header .students-eyebrow,.students-count{display:none}.students-page-header h1{font-size:1.5rem}.students-admin .student-cards{grid-template-columns:repeat(3,1fr);gap:.55rem}.students-admin .student-card{border-radius:7px;box-shadow:none}.students-admin .student-card:hover{transform:none;box-shadow:none}.students-admin .student-card-top{display:block;padding:.6rem;text-align:center;background:#fff}.students-admin .student-qr{display:inline-flex;padding:.2rem;box-shadow:none}.students-admin .student-card .student-qr img{width:135px;height:135px}.students-admin .student-identity h2{margin:.35rem 0;font-size:.95rem}.students-admin .student-class{padding:.15rem .35rem;font-size:.65rem}.students-admin .student-badges{justify-content:center}.students-admin .student-badges span{padding:.15rem .3rem;font-size:.6rem}.students-admin .student-activity-count{display:none!important}.students-admin .student-parent{display:block;padding:.45rem .55rem;text-align:center;font-size:.7rem}.students-admin .student-parent .student-section-label{display:block;margin-bottom:.15rem}.students-admin .student-parent strong,.students-admin .student-parent a{display:block}}
/* Inscription layout tweaks */
body.inscription {
  margin: .75rem .5rem .75rem .4rem;
}
body.inscription h1 {
  font-size: 1.45rem;
  line-height: 1.2;
  margin-bottom: .75rem;
  text-align: center;
}
body.inscription fieldset { margin-bottom: 1rem; }
body.inscription fieldset { width: 100%; max-width: 700px; }
body.inscription .content-wrap {
  max-width: 100%;
  padding-right: .25rem;
  box-sizing: border-box;
}
/* Inputs plus étroits sur la page d'inscription */
body.inscription input[type="text"],
body.inscription input[type="email"],
body.inscription input[type="tel"],
body.inscription select {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  font-size: 16px;
}
body.inscription label { display:block; margin-top: .5rem; }
body.inscription h3 {
  font-size: 1.05rem;
  margin: 1rem 0 .25rem;
}
body.inscription h4 {
  font-size: 1rem;
  margin: .45rem 0 .25rem;
}
body.inscription ul { margin: .25rem 0 1rem; }
body.inscription li { margin: .25rem 0; }
body.inscription #form-wrap > .top-back {
  text-align: center;
}
body.inscription fieldset {
  padding: .8rem;
  border-radius: 10px;
  margin-right: .25rem;
  box-sizing: border-box;
}
body.inscription button,
body.inscription .button {
  width: auto;
  min-width: 220px;
  max-width: 100%;
  display: block;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  font-size: 1rem;
}
body.inscription ul.periode {
  margin: .35rem 0 .9rem;
}
body.inscription ul.periode li { display: flex; align-items: center; gap: .5rem; }
body.inscription ul.periode li {
  margin: .3rem 0;
  padding: .55rem .6rem;
  border: 1px solid #f0cf8a;
  border-radius: 8px;
  background: #fffdf5;
}
body.inscription ul.periode.period-am li {
  border-color: #9fc5ef;
  background: #e9f3ff;
}
body.inscription ul.periode.period-day li {
  border-color: #e5b2a3;
  background: #fff1ec;
}
body.inscription ul.periode.period-pm li {
  border-color: #f0cf8a;
  background: #fffdf5;
}
body.inscription ul.periode li.none-li {
  border-color: #f2b8b8;
  background: #fff7f7;
}
body.inscription ul.periode li label { display: flex; align-items: center; flex: 1; margin: 0; }
body.inscription ul.periode li label { gap: .5rem; min-width: 0; }
body.inscription ul.periode li .activity-main { display: flex; align-items: center; gap: .35rem; min-width: 0; flex: 1 1 auto; }
body.inscription ul.periode li .activity-name { font-weight: 600; }
body.inscription ul.periode li .activity-time { margin-left: auto; white-space: nowrap; text-align: right; flex: 0 0 auto; }
body.inscription ul.periode li .voeu-rank { align-self: center; }
body.inscription ul.periode li .activity-desc {
  display: none;
}
body.inscription .actions-row {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
body.inscription .actions-row form {
  margin: 0;
}
body.inscription .muted { color:#666; font-size:.9em; }
body.inscription table.recap {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
@media (min-width: 769px) {
  body.inscription {
    margin: 2rem auto;
  }
  body.inscription .content-wrap,
  body.inscription fieldset {
    max-width: 700px;
  }
  body.inscription ul.periode li .voeu-rank {
    order: 0;
    width: 2.1em;
    min-width: 2.1em;
    text-align: center;
    margin-left: 0;
    margin-right: .2rem;
  }
  body.inscription ul.periode li label {
    order: 1;
  }
}
/* content wrapper used to sync width with home table */
.content-wrap { display: block; }
/* Deadline info */
body.home .deadline { margin: .25rem 0 1rem; font-weight: 600; }
body.home .deadline.open { color: #7a4b00; }
body.home .deadline.expired { color: #c0392b; }
body.home .home-activities {
  max-width: 980px;
}
body.home .home-activities .session-card {
  margin: 1.5rem 0 2rem;
  padding: 1rem;
  border: 1px solid #f0cf8a;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(61, 42, 0, 0.06);
}
body.home .home-activities .session-card-title {
  margin: 0 0 1rem;
  text-align: center;
}
body.home .home-activities .mobile-day {
  margin: .8rem 0 1rem;
  padding: .75rem .8rem;
  border: 1px solid #f6ddb1;
  border-radius: 10px;
  background: #fffdf7;
}
body.home .home-activities .mobile-day h3 {
  margin: .15rem 0 .55rem;
  font-size: 1.08rem;
}
body.home .home-activities .mobile-period-title {
  margin: .45rem 0 .25rem;
  font-size: .98rem;
}
body.home .home-activities ul.mobile-period {
  margin: .2rem 0 .75rem;
  padding: 0;
  list-style: none;
}
body.home .home-activities ul.mobile-period .mobile-activity-item {
  margin: .3rem 0;
  border-radius: 8px;
  overflow: hidden;
}
body.home .home-activities ul.mobile-period.period-am .mobile-activity-item {
  background: #e9f3ff;
  border: 1px solid #9fc5ef;
}
body.home .home-activities ul.mobile-period.period-day .mobile-activity-item {
  background: #fff1ec;
  border: 1px solid #e5b2a3;
}
body.home .home-activities ul.mobile-period.period-pm .mobile-activity-item {
  background: #fffdf5;
  border: 1px solid #f0cf8a;
}
body.home .home-activities .mobile-activity-toggle,
body.home .home-activities .mobile-activity-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  padding: .58rem .62rem;
  text-align: left;
  border: 0;
  background: transparent;
  color: inherit;
  margin: 0;
  font: inherit;
}
body.home .home-activities .mobile-activity-toggle {
  cursor: pointer;
}
body.home .home-activities .mobile-activity-desc {
  padding: .45rem .62rem .62rem;
  border-top: 1px dashed rgba(0,0,0,.2);
  font-size: .93rem;
}
body.home .home-activities .mobile-activity-name {
  font-weight: 600;
  padding-right: .5rem;
}
body.home .home-activities .mobile-activity-meta {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  margin-left: auto;
  flex: 0 0 auto;
}
body.home .home-activities .mobile-status-icons {
  display: inline-flex;
  align-items: center;
  gap: .2rem;
}
body.home .home-activities .mobile-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .9rem;
  margin: .25rem 0 .8rem;
  padding: .5rem .55rem;
  border: 1px solid #e9d8a6;
  border-radius: 8px;
  background: #fffdf5;
  font-size: .9rem;
}
body.home .home-activities .mobile-legend-item {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}
body.home .home-activities .mobile-status-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  border-radius: 999px;
  font-size: .67rem;
  line-height: 1;
  font-weight: 700;
  border: 1px solid transparent;
}
body.home .home-activities .mobile-status-icon.icon-closed {
  color: #b71c1c;
  background: #fdeaea;
  border-color: #f1b4b4;
}
body.home .home-activities .mobile-status-icon.icon-limited {
  color: #8a6d00;
  background: #fff8dc;
  border-color: #e8cf7a;
}
body.home .home-activities .mobile-activity-time {
  white-space: nowrap;
  font-size: .92rem;
  text-align: right;
}
body.home .home-activities .mobile-tag.tag-closed {
  color: #b71c1c;
  font-weight: 600;
}
body.home .home-activities .mobile-tag.tag-limited {
  color: #8a6d00;
  font-weight: 600;
}

/* --- Inscription mobile --- */
@media (max-width: 768px) {
  body.home {
    margin: .75rem .4rem;
  }
  body.home .session-banner,
  body.home .deadline {
    display: block;
  }
  body.home .hero-banner {
    width: 100%;
    max-width: 100%;
    height: auto;
  }
  body.home table.recap {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  body.home table.recap th,
  body.home table.recap td {
    white-space: nowrap;
  }
  body.home .button,
  body.home button {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }
  body.home .home-activities .session-card {
    padding: .8rem .7rem;
    border-radius: 10px;
  }
  body.home .home-activities .mobile-day {
    margin: .8rem 0 1rem;
    padding: .55rem .5rem;
    border: 1px solid #f6ddb1;
    border-radius: 10px;
    background: #fffdf7;
  }
  body.home .home-activities .mobile-day h3 {
    margin: .15rem 0 .55rem;
    font-size: 1.02rem;
  }
  body.home .home-activities .mobile-period-title {
    margin: .45rem 0 .25rem;
    font-size: .96rem;
  }
  body.home .home-activities ul.mobile-period {
    margin: .2rem 0 .75rem;
    padding: 0;
    list-style: none;
  }
  body.home .home-activities ul.mobile-period .mobile-activity-item {
    margin: .3rem 0;
    border-radius: 8px;
    overflow: hidden;
  }
  body.home .home-activities ul.mobile-period.period-am .mobile-activity-item {
    background: #e9f3ff;
    border: 1px solid #9fc5ef;
  }
  body.home .home-activities ul.mobile-period.period-day .mobile-activity-item {
    background: #fff1ec;
    border: 1px solid #e5b2a3;
  }
  body.home .home-activities ul.mobile-period.period-pm .mobile-activity-item {
    background: #fffdf5;
    border: 1px solid #f0cf8a;
  }
  body.home .home-activities .mobile-activity-toggle,
  body.home .home-activities .mobile-activity-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    padding: .58rem .62rem;
    text-align: left;
    border: 0;
    background: transparent;
    color: inherit;
    margin: 0;
    font: inherit;
  }
  body.home .home-activities .mobile-activity-toggle {
    cursor: pointer;
  }
  body.home .home-activities .mobile-activity-desc {
    padding: .45rem .62rem .62rem;
    border-top: 1px dashed rgba(0,0,0,.2);
    font-size: .93rem;
  }
  body.home .home-activities .mobile-activity-name {
    font-weight: 600;
    padding-right: .5rem;
  }
  body.home .home-activities .mobile-activity-meta {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    margin-left: auto;
    flex: 0 0 auto;
  }
  body.home .home-activities .mobile-status-icons {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
  }
  body.home .home-activities .mobile-legend {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin: .25rem 0 .8rem;
    padding: .5rem .55rem;
    border: 1px solid #e9d8a6;
    border-radius: 8px;
    background: #fffdf5;
    font-size: .9rem;
  }
  body.home .home-activities .mobile-legend-item {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
  }
  body.home .home-activities .mobile-status-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 999px;
    font-size: .67rem;
    line-height: 1;
    font-weight: 700;
    border: 1px solid transparent;
  }
  body.home .home-activities .mobile-status-icon.icon-closed {
    color: #b71c1c;
    background: #fdeaea;
    border-color: #f1b4b4;
  }
  body.home .home-activities .mobile-status-icon.icon-limited {
    color: #8a6d00;
    background: #fff8dc;
    border-color: #e8cf7a;
  }
  body.home .home-activities .mobile-activity-time {
    white-space: nowrap;
    font-size: .92rem;
    text-align: right;
  }
  body.home .home-activities .mobile-tag.tag-closed {
    color: #b71c1c;
    font-weight: 600;
  }
body.home .home-activities .mobile-tag.tag-limited {
    color: #8a6d00;
    font-weight: 600;
  }
}

/* Inscription à l'association sportive */
body.inscription.license-registration-page{max-width:none;min-height:100vh;margin:0;padding:1.5rem;background:linear-gradient(145deg,#fff8e8 0,#f4f6f8 48%,#eef3f6 100%);color:#34414c;box-sizing:border-box}
.license-registration-shell{width:min(1080px,100%);margin:0 auto}
.license-registration-back{margin:0 0 1.15rem}
body.inscription .license-registration-back .button{display:inline-flex;width:auto;min-width:0;margin:0;padding:.65rem .85rem;background:#66727c!important;font-size:.86rem}
body.inscription .license-registration-back .button:hover{background:#4f5962!important}
.license-registration-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.35rem}
.license-registration-mark{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:68px;height:68px;border-radius:18px;background:linear-gradient(145deg,#ff9f1c,#e67600);color:#fff;font-size:1.35rem;font-weight:900;letter-spacing:.04em;box-shadow:0 8px 20px rgba(230,118,0,.25)}
.license-registration-header h1{margin:.12rem 0 .35rem;color:#17212b;font-size:clamp(1.8rem,4vw,2.55rem);text-align:left}
.license-registration-header>div>p:last-child{max-width:720px;margin:0;color:#64717d;line-height:1.45}
.license-registration-eyebrow{margin:0!important;color:#d76c00!important;font-size:.75rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.license-registration-layout{display:grid;grid-template-columns:minmax(245px,.72fr) minmax(0,1.75fr);align-items:start;gap:1.1rem}
.license-registration-guide{padding:1.1rem;border:1px solid #ead8ad;border-radius:14px;background:rgba(255,251,240,.9);box-shadow:0 5px 18px rgba(69,53,21,.06)}
body.inscription .license-registration-guide h2{margin:0 0 1rem;color:#5b430f;font-size:1.05rem;text-align:left}
.license-registration-guide ol{display:grid;gap:.9rem;margin:0;padding:0;list-style:none}
.license-registration-guide li{display:flex;align-items:flex-start;gap:.7rem;margin:0}
.license-registration-guide li>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:1.75rem;height:1.75rem;border-radius:50%;background:#ff8c00;color:#fff;font-size:.78rem;font-weight:900}
.license-registration-guide li div{display:grid;gap:.12rem;padding-top:.05rem}
.license-registration-guide li strong{color:#3f3828;font-size:.84rem}
.license-registration-guide li small{color:#746c5d;font-size:.75rem;line-height:1.35}
.license-registration-help{margin:1rem 0 0;padding-top:.8rem;border-top:1px dashed #ddcfae;color:#85775b;font-size:.72rem;line-height:1.4}
.license-registration-form{padding:1.1rem;border:1px solid #dfe4e8;border-radius:16px;background:#fff;box-shadow:0 9px 28px rgba(28,39,49,.09)}
.license-registration-error{margin:0 0 1rem}
body.inscription .license-registration-section{width:100%;max-width:none;margin:0 0 1rem;padding:1rem;border:1px solid #e1e6e9;border-radius:12px;background:#fbfcfd;box-sizing:border-box}
.license-registration-section legend{display:flex;align-items:center;gap:.65rem;padding:0 .45rem;color:#26323d;font-size:1rem;font-weight:800}
.license-registration-section legend>span:first-child{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:7px;background:#ff8c00;color:#fff;font-size:.78rem}
.license-registration-section legend>span:last-child{display:grid;gap:.05rem}
.license-registration-section legend small{color:#7a858e;font-size:.68rem;font-weight:500}
.license-registration-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1rem}
body.inscription .license-field{display:grid;gap:.35rem;margin:0;color:#46525d;font-size:.8rem;font-weight:800}
.license-field-wide{grid-column:1/-1}
.license-field em{color:#d05a45;font-style:normal}
body.inscription .license-field input,body.inscription .license-field select{width:100%;min-height:44px;margin:0;padding:.68rem .72rem;border:1px solid #cbd3d9;border-radius:8px;background:#fff;color:#26323d;font:inherit;font-size:.95rem;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}
body.inscription .license-field input::placeholder{color:#a0a8ae}
body.inscription .license-field input:focus,body.inscription .license-field select:focus{outline:0;border-color:#ff8c00;box-shadow:0 0 0 3px rgba(255,140,0,.15)}
body.inscription .license-image-consent{display:flex;align-items:flex-start;gap:.7rem;margin:.95rem 0 0;padding:.8rem;border:1px solid #e9d8ae;border-radius:9px;background:#fff9ec;cursor:pointer}
.license-image-consent input{flex:0 0 auto;width:1.15rem;height:1.15rem;margin:.08rem 0 0;accent-color:#ff8c00}
.license-image-consent>span{display:grid;gap:.14rem}
.license-image-consent strong{color:#4d3b17;font-size:.82rem}
.license-image-consent small{color:#776b55;font-size:.75rem;line-height:1.4}
.license-registration-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;padding-top:.15rem}
body.inscription .license-registration-actions button,body.inscription .license-registration-actions .button{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:185px;min-height:44px;margin:0;padding:.68rem 1rem;box-sizing:border-box;font-size:.9rem;font-weight:800}
body.inscription .license-registration-actions .secondary-button{min-width:105px;background:#66727c!important}
body.inscription .license-registration-actions .secondary-button:hover{background:#4f5962!important}

@media(max-width:760px){
  body.inscription.license-registration-page{margin:0;padding:.65rem;background:linear-gradient(160deg,#fff8e8,#f3f6f8)}
  .license-registration-back{margin-bottom:.85rem}
  body.inscription .license-registration-back .button{padding:.55rem .7rem;font-size:.78rem}
  .license-registration-header{align-items:flex-start;gap:.75rem;margin-bottom:1rem}
  .license-registration-mark{width:50px;height:50px;border-radius:13px;font-size:1rem}
  .license-registration-header h1{margin-top:.05rem;font-size:1.5rem;line-height:1.15}
  .license-registration-header>div>p:last-child{font-size:.82rem;line-height:1.4}
  .license-registration-eyebrow{font-size:.62rem}
  .license-registration-layout{grid-template-columns:1fr;gap:.75rem}
  .license-registration-guide{padding:.8rem;border-radius:11px}
  body.inscription .license-registration-guide h2{margin-bottom:.7rem;font-size:.92rem}
  .license-registration-guide ol{gap:.55rem}
  .license-registration-guide li>span{width:1.5rem;height:1.5rem;font-size:.68rem}
  .license-registration-guide li strong{font-size:.78rem}
  .license-registration-guide li small{font-size:.69rem}
  .license-registration-help{margin-top:.7rem;padding-top:.6rem}
  .license-registration-form{padding:.7rem;border-radius:12px}
  body.inscription .license-registration-section{margin-bottom:.75rem;padding:.75rem;border-radius:9px}
  .license-registration-section legend{gap:.5rem;padding:0 .3rem;font-size:.9rem}
  .license-registration-section legend>span:first-child{width:1.5rem;height:1.5rem}
  .license-registration-section legend small{font-size:.61rem}
  .license-registration-fields{grid-template-columns:1fr;gap:.65rem}
  .license-field-wide{grid-column:auto}
  body.inscription .license-field input,body.inscription .license-field select{min-height:43px;font-size:16px}
  body.inscription .license-image-consent{padding:.7rem}
  .license-image-consent small{font-size:.7rem}
  .license-registration-actions{display:grid;grid-template-columns:1fr;gap:.5rem}
  body.inscription .license-registration-actions button,body.inscription .license-registration-actions .button{width:100%;min-width:0;min-height:43px}
}

/* Configuration des e-mails */
body.admin-page.configuration-admin-page{max-width:980px;background:#f4f6f8}
.configuration-admin{padding:0 .7rem 2rem}
.configuration-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}
.configuration-header>div>p{margin:0;color:#5a2d82;font-size:.75rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.configuration-header h1{margin:.12rem 0 .3rem;color:#17212b;font-size:clamp(1.8rem,3vw,2.4rem)}
.configuration-header>div>span{color:#64717d}
.configuration-status{flex:0 0 auto;padding:.42rem .65rem;border:1px solid #d6dce1;border-radius:999px;background:#fff;color:#66727c;font-size:.72rem;font-weight:800}
.configuration-status.stored{border-color:#b8dfc4;background:#edf8f0;color:#24733d}
.configuration-form{display:grid;gap:1rem}
.configuration-card{overflow:hidden;border:1px solid #dfe4e8;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(28,39,49,.06)}
.configuration-card>header{display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;border-bottom:1px solid #e7eaed;background:linear-gradient(120deg,#faf7ff,#fff)}
.configuration-card>header>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:2.2rem;height:2.2rem;border-radius:9px;background:#ede3f5;color:#5a2d82;font-size:1.05rem;font-weight:800}
.configuration-card h2{margin:0;color:#3b2c45;font-size:1.02rem}
.configuration-card header p{margin:.18rem 0 0;color:#737d86;font-size:.78rem}
.configuration-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;padding:1rem}
.configuration-fields label{display:grid;gap:.35rem;margin:0;color:#505c66;font-size:.75rem;font-weight:800}
.configuration-fields input,.configuration-fields select{width:100%;min-height:43px;margin:0;padding:.65rem .7rem;border:1px solid #cbd3d9;border-radius:8px;background:#fff;color:#26323d;font:inherit;font-size:.92rem;box-sizing:border-box}
.configuration-fields input:focus,.configuration-fields select:focus{outline:0;border-color:#7d4d9d;box-shadow:0 0 0 3px rgba(90,45,130,.13)}
.configuration-fields small{color:#7b858e;font-size:.68rem;font-weight:500}
.configuration-wide{grid-column:1/-1}
.smtp-fields{grid-template-columns:1.4fr .6fr}
.smtp-fields .configuration-wide{grid-column:1/-1}
.configuration-fields .configuration-clear-password{grid-column:1/-1;display:flex;align-items:center;gap:.5rem;padding:.65rem .7rem;border:1px solid #eadfca;border-radius:8px;background:#fffaf0;cursor:pointer}
.configuration-clear-password input{width:1.05rem;height:1.05rem;min-height:0;padding:0;accent-color:#5a2d82}
.configuration-head-card>header{background:linear-gradient(120deg,#fff8e9,#fff)}
.configuration-head-card>header>span{background:#fff0c7;color:#9a6700}
.configuration-actions{display:flex;justify-content:flex-end}
.configuration-actions button{min-width:230px;margin:0;background:#5a2d82}
.configuration-actions button:hover{background:#472268}
@media(max-width:768px){body.admin-page.configuration-admin-page{margin:.65rem}.configuration-admin{padding:0 0 1rem}.configuration-header{align-items:flex-start}.configuration-header h1{font-size:1.65rem}.configuration-header>div>span{font-size:.82rem}.configuration-status{font-size:.62rem}.configuration-card{border-radius:11px}.configuration-card>header{align-items:flex-start;padding:.8rem}.configuration-card header p{font-size:.72rem}.configuration-fields,.smtp-fields{grid-template-columns:1fr;padding:.8rem}.configuration-wide,.smtp-fields .configuration-wide{grid-column:auto}.configuration-fields .configuration-clear-password{grid-column:auto}.configuration-actions button{width:100%;min-width:0}}
