:root{--navy:#112140;--navy-deep:#0b1730;--gold:#f2dea2;--gold-deep:#b48a13;--ink:#1c2b45;--muted:#4b5563;--border:#e5e7eb;--danger-bg:#fde8e8;--danger:#8b1a1a;--ok:#166534;--wait:#92400e;}
@font-face{font-family:'Cardo';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/cardo-87f51af4.woff2') format('woff2');}
@font-face{font-family:'Cardo';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/cardo-015e9a39.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 800;font-display:swap;src:url('/assets/fonts/inter-e3237528.woff2') format('woff2');}
body{font-family:'Inter',Arial,sans-serif;}
h1,h2,h3,header .brand span{font-family:'Cardo',Georgia,serif;}
input,textarea,select,button{font:inherit;font-size:1rem;}
button,a.btn-cta,.copy-btn,.submit-btn,button.envoyer,.sortie-item{min-height:44px;}
.copy-btn{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:10px 16px;font-size:.9rem;line-height:1;}
.btn-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;}
body:not(.site-page) footer{color:var(--muted)!important;}
body:not(.site-page) footer a{color:var(--ink)!important;text-underline-offset:3px;}
.note,.footnote,.grade-row-date,.intro,main .intro,.qr-caption,.required-note{color:var(--muted)!important;}
.status-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin:0 0 18px;}
.status-card h2{margin:0 0 10px;color:var(--navy);font-size:1.05rem;}
.status-list{display:grid;gap:8px;margin:0;padding:0;list-style:none;}
.status-pill{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:#fff;color:var(--muted);font-weight:700;}
.status-pill::before{content:"";width:12px;height:12px;border-radius:999px;background:#d1d5db;flex:none;}
.status-pill.is-current{border-color:var(--gold-deep);background:#fff8e1;color:var(--ink);}
.status-pill.is-current::before{background:var(--wait);}
.status-pill.is-done{border-color:#bbf7d0;background:#ecfdf3;color:var(--ok);}
.status-pill.is-done::before{background:var(--ok);}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px;}
.summary-tile{background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px;}
.summary-tile span{display:block;color:var(--muted);font-size:.82rem;font-weight:700;margin-bottom:6px;}
.summary-tile strong{display:block;color:var(--navy);font-size:1rem;line-height:1.35;}
.checklist{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none;}
.checklist li{display:flex;gap:9px;align-items:flex-start;background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 12px;}
.checklist li::before{content:"✓";color:var(--ok);font-weight:800;}
.attendance-months{display:grid;gap:8px;margin-top:12px;}
.attendance-month{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:10px;font-size:.9rem;}
.attendance-bar{height:10px;border-radius:999px;background:#e5e7eb;overflow:hidden;}
.attendance-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--gold-deep),var(--gold));}
.invalid-page{max-width:560px;margin:0 auto;padding:36px 20px 60px;}
.invalid-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:26px;box-shadow:0 2px 16px rgba(0,0,0,.06);}
.invalid-card h1{color:var(--navy);font-size:1.6rem;margin:0 0 12px;text-align:left;}
.invalid-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.invalid-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--border);}
.invalid-form label{display:block;font-weight:700;color:var(--navy);margin-bottom:6px;}
.invalid-form input[type=email]{width:100%;min-height:44px;border:1px solid var(--border);border-radius:10px;padding:11px 13px;}
.invalid-contact{margin-top:18px;background:#f8fafc;border:1px solid var(--border);border-radius:12px;padding:14px;}
.field-error{display:block;color:#8b1a1a;font-size:.82rem;margin-top:5px;min-height:1.2em;}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:#b91c1c;box-shadow:0 0 0 2px rgba(185,28,28,.12);}
@media(max-width:640px){
  main{padding-left:16px!important;padding-right:16px!important;}
  .summary-grid{grid-template-columns:1fr;}
  .attendance-month{grid-template-columns:92px 1fr auto;}
  .copy-value{width:100%;}
  .copy-btn{flex:1;}
}
/* Audit UX 24/09/2026 : rapproche les pages privées du système visuel public sans changer leurs formulaires. */
body.site-page .invalid-card{border-radius:22px;box-shadow:0 18px 45px rgba(17,33,64,.12)}
body.site-page .invalid-card h1{text-align:left;font-size:clamp(2rem,6vw,3rem);margin:0 0 12px}
body.site-page .invalid-form input[type=email]{border-radius:12px}
body.site-page .btn-cta{border-radius:999px;padding:12px 22px;font-weight:800}
