:root{
  --ink:#182333;--muted:#667386;--paper:#fffdf9;--line:rgba(24,35,51,.12);
  --green:#17684c;--amber:#a15c12;--red:#b4233c;--blue:#315f9e;--blue-soft:#eef3fb;
  --radius:14px;
  --shadow:0 1px 2px rgba(24,35,51,.05),0 16px 34px -24px rgba(24,35,51,.6);
  --shadow-sm:0 1px 2px rgba(24,35,51,.05),0 10px 22px -18px rgba(24,35,51,.5);
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,#f6f8fb,#eef1f6 240px,#eef1f6);color:var(--ink);
  font:16px 'Source Sans 3',system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.cap{max-width:1060px;margin:auto;padding:28px 18px 72px}

/* ── En-tête ── */
.cap-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;
  border-bottom:2px solid rgba(24,35,51,.88);padding-bottom:18px}
.cap-top a{color:var(--blue);font-weight:700;text-decoration:none}
.cap-top a:hover{text-decoration:underline}
.cap h1,.cap h2{font-family:'Source Serif 4',Georgia,serif}
.cap h1{margin:4px 0 0;font-size:clamp(27px,4vw,35px);letter-spacing:-.01em}
.cap h2{font-size:22px;margin:0 0 8px}
.cap-sur{margin:0;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.cap-note{margin:7px 0 0;color:var(--muted);font-size:14px}
.cap-score{min-width:150px;text-align:center;border:1px solid var(--line);border-radius:var(--radius);
  background:linear-gradient(180deg,#fff,#f6f4ee);box-shadow:var(--shadow-sm);padding:12px 20px}
.cap-score b{font:600 36px/1 'Source Serif 4',serif;display:block;color:var(--ink)}
.cap-score span{display:block;margin-top:5px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}

.cap-intro{margin:22px 0 16px;font-size:17px;line-height:1.55;color:#3c4a5c;max-width:74ch}

/* ── Deux cartes du haut ── */
.cap-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}
.cap-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 20px;box-shadow:var(--shadow-sm)}
.cap-card p{margin:6px 0;color:#48566a;line-height:1.5}
.cap-next{position:relative;border-left:5px solid var(--blue);
  background:linear-gradient(180deg,#f7faff,var(--paper) 70%)}
.cap-next h2{margin-bottom:4px}
.cap-tag{display:inline-block;background:var(--blue-soft);color:#274b7c;border-radius:99px;
  padding:4px 11px;font-size:11.5px;font-weight:700;letter-spacing:.02em;margin-bottom:9px}
.cap-action{display:inline-block;margin-top:12px;border-radius:9px;background:var(--blue);color:#fff!important;
  padding:9px 15px;text-decoration:none;font-weight:700;box-shadow:0 8px 18px -12px rgba(49,95,158,.9);
  transition:background .16s,transform .16s,box-shadow .16s}
.cap-action:hover{background:#274d84;transform:translateY(-1px);box-shadow:0 12px 22px -12px rgba(49,95,158,.95)}
.cap-meta{font-size:13px;color:var(--muted)!important;line-height:1.45}

/* ── Sections ── */
.cap-section{margin-top:30px}
.cap-section>h2{display:flex;align-items:center;gap:9px}
.cap-section>h2::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--blue);flex:0 0 auto;opacity:.85}

/* ── Compétences ── */
.cap-skills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.skill{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px 15px;
  box-shadow:var(--shadow-sm);transition:transform .16s,box-shadow .16s}
.skill:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.skill-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.skill h3{margin:0;font-size:16.5px;font-family:'Source Serif 4',Georgia,serif}
.skill-state{font-size:11.5px;font-weight:700;border-radius:99px;padding:3px 9px;white-space:nowrap}
.state-inconnu{background:#edf0f4;color:#566477}
.state-en-cours{background:#fff1d8;color:#87500f}
.state-fragile{background:#ffe5e9;color:#9d1731}
.state-a-confirmer{background:#e6edf9;color:#274b7c}
.state-solide,.state-documente{background:#ddf3e7;color:#17684c}
.skill-bar{height:9px;background:#e8ebef;border-radius:9px;margin:11px 0 8px;overflow:hidden}
.skill-bar i{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,#3f74b8,#315f9e);
  transition:width .5s cubic-bezier(.4,0,.2,1)}
.skill:has(.state-solide) .skill-bar i,.skill:has(.state-documente) .skill-bar i{background:linear-gradient(90deg,#1f8862,#17684c)}
.skill:has(.state-fragile) .skill-bar i{background:linear-gradient(90deg,#cd4f64,#b4233c)}
.skill:has(.state-en-cours) .skill-bar i{background:linear-gradient(90deg,#c9902f,#a15c12)}
.skill:has(.state-inconnu) .skill-bar i{background:linear-gradient(90deg,#aab3bf,#8b95a2)}
.skill p{margin:0;color:var(--muted);font-size:14px;line-height:1.45}

/* ── Travail ciblé ── */
.cap-loop{display:grid;gap:12px}
.loop{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px 15px;
  display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;box-shadow:var(--shadow-sm)}
.loop h3{margin:0;font-size:16px;font-family:'Source Serif 4',Georgia,serif}
.loop p{margin:4px 0 10px;color:var(--muted);font-size:14px;line-height:1.45}
.loop a{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid #cbd8ec;border-radius:9px;
  background:#f5f8fe;color:#254d86;text-decoration:none;font-size:13.5px;font-weight:700;line-height:1;
  transition:background .16s,border-color .16s,transform .16s,box-shadow .16s}
.loop a::after{content:'→';font-size:16px;line-height:10px}
.loop a:hover,.loop a:focus-visible{background:var(--blue);border-color:var(--blue);color:#fff;
  transform:translateY(-1px);box-shadow:0 10px 20px -13px rgba(49,95,158,.95);outline:none}
.loop label{justify-self:end;display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--line);
  border-radius:8px;background:#fbfcfd;color:#47566a;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}
.loop input{width:15px;height:15px;margin:0;accent-color:var(--green)}

/* ── Preuves (table) ── */
.cap-proof{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);
  border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm)}
.cap-proof th,.cap-proof td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--line);font-size:14px}
.cap-proof th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:#faf9f5}
.cap-proof tbody tr{transition:background .12s}
.cap-proof tbody tr:hover{background:#f7f9fc}
.cap-proof tr:last-child td{border:0}

.cap-empty{padding:18px;background:#fbfcfd;border:1px dashed var(--line);border-radius:12px;color:var(--muted);line-height:1.5}
.cap-disclaimer{margin-top:28px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1.5}

/* ── La justesse du regard ── */
.cap-regard{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;background:var(--paper);
  border:1px solid var(--line);border-left:5px solid var(--green);border-radius:12px;padding:15px 17px;
  margin-bottom:12px;box-shadow:var(--shadow-sm)}
.cap-regard-chiffre{min-width:120px}
.cap-regard-chiffre b{font:600 38px/1 'Source Serif 4',serif;display:block;color:var(--green)}
.cap-regard-chiffre span{display:block;font-size:12px;color:var(--muted);margin-top:5px;max-width:14ch}
.cap-regard p{margin:0;color:#48566a;line-height:1.5}

/* ── Suivi des besoins — encart partagé (élève / professeur) ── */
.suivi-encart{border:1px solid color-mix(in srgb,var(--accent,#2d6a4f) 30%,#fff);
  background:color-mix(in srgb,var(--accent-soft,#d8f3dc) 45%,#fff);border-radius:var(--radius);
  padding:1rem 1.15rem;margin:0 0 1.25rem;box-shadow:var(--shadow-sm)}
.suivi-encart h4{margin:0 0 .35rem;font-size:1.05rem;color:var(--accent,#2d6a4f);font-family:'Source Serif 4',Georgia,serif}
.suivi-encart.vide{background:#f7f8f8;border-color:#e2e6e6}
.suivi-intro{margin:0 0 .6rem;font-size:.9rem;color:#4a5560;line-height:1.4}
.suivi-liste{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.suivi-b{display:flex;flex-direction:column;gap:.1rem;padding:.55rem .75rem;background:#fff;border:1px solid #e2e6e6;
  border-radius:10px;min-width:8.5rem;box-shadow:var(--shadow-sm)}
.suivi-b.etat-fragile{border-left:3px solid #c1440e}
.suivi-b.etat-en-cours{border-left:3px solid #d99a00}
.suivi-b.etat-inconnu{border-left:3px solid #7a8690}
.suivi-b.etat-solide{border-left:3px solid var(--accent,#2d6a4f)}
.suivi-nom{font-weight:600;color:var(--ink,#182333)}
.suivi-etat{font-size:.78rem;color:#6b757f}
.suivi-sert{font-size:.72rem;color:#8a939c;font-style:italic}
.suivi-repere{margin:.65rem 0 0;font-size:.82rem;color:#5a6570}

/* ── Responsive ── */
@media(max-width:700px){
  .cap-top{display:block}
  .cap-score{text-align:left;margin-top:14px}
  .cap-grid,.cap-skills{grid-template-columns:1fr}
  .loop{grid-template-columns:1fr}
  .loop label{justify-self:start}
  .cap h1{font-size:28px}
  .cap-proof{display:block;overflow-x:auto}
  .cap-regard{grid-template-columns:1fr}
}
