/* EduManager — formulaire public (s'adapte au thème : couleurs héritées, variables surchargeables). */
.edm-public {
  --edm-p-accent: var(--wp--preset--color--primary, #1f5eff);
  --edm-p-line: #d6dde8;
  --edm-p-danger: #b42318;
  --edm-p-success: #15803d;
  max-width: 760px;
  margin-inline: auto;
  font-size: 16px;
  line-height: 1.55;
}
.edm-public *, .edm-public *::before, .edm-public *::after { box-sizing: border-box; }
.edm-public .edm-form { display: grid; gap: 20px; }
.edm-public .edm-fieldset { border: 1px solid var(--edm-p-line); border-radius: 14px; padding: 18px; margin: 0; display: grid; gap: 14px; }
.edm-public .edm-fieldset legend { font-weight: 700; padding: 0 6px; }
.edm-public .edm-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.edm-public .edm-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.edm-public .edm-field--full { grid-column: 1 / -1; }
.edm-public .edm-field > label { font-weight: 600; font-size: 14px; }
.edm-public .edm-required { color: var(--edm-p-danger); }
.edm-public input:not([type="checkbox"]):not([type="file"]), .edm-public select, .edm-public textarea {
  width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--edm-p-line); border-radius: 10px; background: #fff; color: inherit; font: inherit;
}
.edm-public input[type="file"] { padding: 10px; border: 1px dashed var(--edm-p-line); border-radius: 10px; background: #f8fafc; width: 100%; }
.edm-public input:focus, .edm-public select:focus, .edm-public textarea:focus { outline: 3px solid color-mix(in srgb, var(--edm-p-accent) 30%, transparent); border-color: var(--edm-p-accent); }
.edm-public .has-error input, .edm-public .has-error select, .edm-public .has-error textarea { border-color: var(--edm-p-danger); }
.edm-public .edm-field__error { color: var(--edm-p-danger); font-size: 14px; font-weight: 600; margin: 0; }
.edm-public .edm-field__error .edm-icon { display: none; }
.edm-public .edm-help { color: #5b6780; font-size: 14px; margin: 0; }
.edm-public .edm-check { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; }
.edm-public .edm-check input { width: 20px; height: 20px; margin-top: 2px; flex: none; accent-color: var(--edm-p-accent); }
.edm-public__submit { justify-self: start; min-height: 50px; padding: 0 28px; border: 0; border-radius: 12px; background: var(--edm-p-accent); color: #fff; font: 700 16px/1 inherit; cursor: pointer; }
.edm-public__submit:hover { filter: brightness(.92); }
.edm-public__submit[disabled] { opacity: .6; cursor: progress; }
.edm-public__error { padding: 14px 16px; border-radius: 12px; background: #fdeceb; color: #7a1a12; border: 1px solid #f5c6c2; margin-bottom: 16px; }
.edm-public__success, .edm-public__notice { text-align: center; padding: 36px 24px; border: 1px solid var(--edm-p-line); border-radius: 18px; background: #fff; }
.edm-public__check { display: inline-grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: #e8f6ee; color: var(--edm-p-success); font-size: 32px; font-weight: 800; }
.edm-public__ref { font-size: 18px; }
.edm-public__ref strong { display: block; font-size: 26px; letter-spacing: .04em; margin-top: 4px; }
.edm-public__intro { margin-bottom: 18px; }
.edm-public .edm-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.edm-public .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
@media (max-width: 600px) { .edm-public .edm-form__grid { grid-template-columns: minmax(0, 1fr); } .edm-public__submit { width: 100%; } }

/* ==========================================================================
   Lot 11 — blocs du site public
   ========================================================================== */
.edm-block { margin: 2rem 0; }
.edm-block__title { margin: 0 0 1rem; font-size: 1.5rem; }
.edm-block__list { display: grid; gap: .5rem; margin: 0; }
.edm-block__list div { display: flex; gap: .5rem; flex-wrap: wrap; }
.edm-block__list dt { font-weight: 700; min-width: 110px; }
.edm-block__list dd { margin: 0; }
.edm-block__figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1rem; }
.edm-block__figure { text-align: center; padding: 1.25rem 1rem; border-radius: 14px; background: color-mix(in srgb, var(--edm-p-accent) 8%, transparent); }
.edm-block__figure strong { color: var(--edm-p-accent); }
.edm-block__figure strong { display: block; font-size: 2rem; line-height: 1.1; }
.edm-block__figure span { font-size: .95rem; opacity: .75; }
.edm-block__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.25rem; }
.edm-block__card { border: 1px solid rgba(0, 0, 0, .1); border-radius: 14px; overflow: hidden; padding-bottom: 1rem; }
.edm-block__card img { width: 100%; height: 160px; object-fit: cover; }
.edm-block__card h3 { margin: .25rem 1rem .5rem; font-size: 1.15rem; }
.edm-block__card p { margin: 0 1rem; }
.edm-block__date { font-size: .85rem; opacity: .7; margin: 1rem 1rem .25rem; }
.edm-block--portal { padding: 1.5rem; border-radius: 16px; background: rgba(0, 0, 0, .04); }
.edm-block__button { display: inline-block; margin-top: .75rem; padding: .75rem 1.25rem; border-radius: 10px; background: var(--edm-p-accent); color: #fff; text-decoration: none; font-weight: 600; }
.edm-block__button:hover { filter: brightness(1.08); }
.edm-block-preview { padding: 1rem; border: 1px dashed rgba(0, 0, 0, .25); border-radius: 10px; background: rgba(0, 0, 0, .02); }

/* Formulaire public : finitions de la revue générale. */
.edm-public__form { display: grid; gap: 1rem; }
.edm-public .edm-checklist { display: grid; gap: .4rem; margin: .2rem 0 0; }
.edm-public .edm-checklist .edm-check { display: flex; gap: .5rem; align-items: flex-start; }

/* Bloc « niveaux ». */
.edm-block__card--plain { padding: 1.1rem 1.25rem; }
.edm-block__card--plain h3 { margin: 0 0 .6rem; font-size: 1.1rem; }
.edm-block__levels { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.edm-block__open { font-size: .8rem; color: #15803d; font-weight: 600; }

/* Vérification d'une carte scolaire. */
.edm-block__inline { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.edm-block__inline input { flex: 1 1 220px; padding: .7rem .9rem; border: 1px solid rgba(0, 0, 0, .18); border-radius: 10px; font: inherit; }
.edm-block__inline button { border: 0; cursor: pointer; margin-top: 0; }
.edm-block__valid { color: #15803d; font-weight: 700; }
.edm-block__invalid { color: #b42318; font-weight: 700; }
