:root {
  --bg: #fbf7f3;
  --surface: #ffffff;
  --surface-strong: #fff2e5;
  --text: #39251f;
  --muted: #765f58;
  --primary: #b96a43;
  --primary-dark: #6a4338;
  --accent: #e2b451;
  --safe: #2f7c52;
  --danger: #b42318;
  --border: #eadfda;
  --shadow: 0 18px 45px rgba(82, 51, 41, 0.13);
}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(226,180,81,.18),transparent 32rem),var(--bg);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);font-size:18px;line-height:1.5}.container{width:min(1080px,calc(100% - 32px));margin:auto}.topbar{padding:22px 0;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--text);font-weight:900}.brand__spark{display:grid;place-items:center;width:52px;height:52px;border-radius:18px;background:linear-gradient(135deg,var(--accent),var(--primary));color:#fff;font-size:1.6rem;box-shadow:var(--shadow)}nav{display:flex;gap:.7rem;flex-wrap:wrap}a.button,button.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.65rem 1rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--primary-dark);text-decoration:none;font-weight:800;cursor:pointer}.button--primary{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}.button--danger{background:#fff;color:var(--danger)}.hero{background:var(--surface);border:1px solid var(--border);border-radius:32px;padding:2rem;box-shadow:var(--shadow)}h1{font-size:clamp(2.2rem,5vw,4rem);line-height:1.05;margin:.2rem 0 1rem}.lead{font-size:1.2rem;color:var(--muted);max-width:780px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin:1.2rem 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:1.2rem;box-shadow:0 12px 28px rgba(82,51,41,.08)}.card h3{margin:.2rem 0 .45rem}.icon{font-size:2rem}.notice{border-radius:18px;padding:1rem;margin:1rem 0;font-weight:700}.notice.success{background:#eaf7ef;color:var(--safe);border:1px solid rgba(47,124,82,.25)}.notice.error{background:#f9e8e6;color:var(--danger);border:1px solid rgba(180,35,24,.25)}.notice.warning{background:#fff7de;color:#7b5200;border:1px solid rgba(226,180,81,.4)}form{background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:1.2rem;box-shadow:var(--shadow);max-width:620px}label{display:block;font-weight:800;margin:.8rem 0 .35rem}input{width:100%;min-height:48px;border:1px solid var(--border);border-radius:14px;padding:.65rem .85rem;font:inherit;background:#fff}footer{padding:2rem 0;color:var(--muted);font-size:.95rem}.progress{height:12px;background:#f2e6de;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));width:0}.table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:18px;overflow:hidden}.table th,.table td{padding:.8rem;border-bottom:1px solid var(--border);text-align:left}.table th{background:var(--primary-dark);color:#fff}@media(max-width:700px){.topbar{align-items:flex-start;flex-direction:column}.hero{padding:1.2rem}}

/* =========================================================
   Administration pédagogique - formulaires modules
   Ajouté le 06/07/2026
   ========================================================= */

.card form {
  max-width: 100%;
}

.card form label {
  display: block;
  margin: 1rem 0 0.45rem;
  font-weight: 800;
  color: var(--text);
}

.card form input,
.card form textarea,
.card form select {
  width: 100%;
  max-width: 100%;
  min-height: 46px;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 0.8rem 0.95rem;
  background: #fff;
  color: var(--text);
  font: inherit;
  box-sizing: border-box;
}

.card form textarea {
  min-height: 150px;
  resize: vertical;
  line-height: 1.5;
}

.card form small {
  display: block;
  margin-top: 0.35rem;
  color: var(--muted);
}

.admin-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}

@media (min-width: 900px) {
  .admin-form-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 1.4rem;
}
