/*  Minuteur 50/10 (§10.1)                                               */
/* ===================================================================== */
.mn-card { max-width: 560px; margin: 0 auto 18px; display: flex; flex-direction: column; gap: 14px; }
.mn-obj { font-size: 16px; padding: 12px 14px; }
.mn-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.mn-durees { display: flex; gap: 10px; }
.mn-pas { display: flex; flex-direction: column; gap: 4px; font-family: var(--sans); font-size: 11px; color: var(--ink-soft); }
.mn-num { width: 76px; text-align: center; }
.mn-presets { display: flex; gap: 8px; }
.mn-options { display: flex; flex-direction: column; gap: 8px; border-top: 1px dashed var(--hairline); padding-top: 12px; }
.mn-switchrow { display: flex; align-items: center; justify-content: space-between; font-family: var(--sans); font-size: 13.5px; color: var(--ink); }
.mn-switch { width: 42px; height: 24px; border-radius: 20px; border: 1px solid var(--hairline); background: var(--paper-2); position: relative; cursor: pointer; transition: background .15s, border-color .15s; flex: 0 0 auto; }
.mn-switch-k { position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--card); box-shadow: var(--shadow); transition: transform .15s; }
.mn-switch[aria-checked="true"] { background: var(--c-c); border-color: var(--c-c); }
.mn-switch[aria-checked="true"] .mn-switch-k { transform: translateX(18px); }
.mn-switch:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.mn-go { justify-content: center; padding: 13px; font-size: 15px; }
.mn-go:disabled { opacity: .5; cursor: not-allowed; }
.mn-ios { margin: 0; }
/* Course : grand cadran */
.mn-course { align-items: center; }
.mn-cadran { position: relative; width: min(300px, 78vw); aspect-ratio: 1; display: grid; place-items: center; }
.mn-ring { width: 100%; height: 100%; }
.mn-ring-bg { stroke: var(--paper-2); stroke-width: 10.5; }
.mn-ring-fg { stroke-width: 10.5; }
.mn-ring-fg { transition: stroke-dashoffset .25s linear; }
.mn-ring-travail .mn-ring-fg { stroke: var(--c-c); }
.mn-ring-pause .mn-ring-fg { stroke: var(--gold); }
.mn-ring-center { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.mn-temps { font-family: var(--sans); font-variant-numeric: tabular-nums; font-weight: 600; font-size: clamp(46px, 13vw, 66px); line-height: 1; color: var(--ink); letter-spacing: -.01em; }
.mn-phase { font-family: var(--sans); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-soft); margin-top: 6px; }
.mn-objline { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; font-family: var(--sans); font-size: 14px; color: var(--ink-soft); margin: 0; text-align: center; }
.mn-objline svg { width: 15px; height: 15px; color: var(--c-c); flex: 0 0 auto; }
.mn-ctrls { display: flex; gap: 10px; }
/* Bilan (mini-journal) */
.mn-bilan { align-items: center; text-align: center; }
.mn-bilan-h { display: flex; align-items: center; gap: 10px; }
.mn-bilan-h h2 { margin: 0; font-size: 21px; }
.mn-check { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ok-surface); color: var(--ok-on); font-weight: 700; }
.mn-journal { display: flex; gap: 9px; flex-wrap: wrap; justify-content: center; }
/* Chaîne des blocs du jour */
.mn-chaine { max-width: 560px; margin: 0 auto; text-align: center; }
.mn-chaine-h { font-family: var(--sans); font-size: 13.5px; color: var(--ink-soft); margin-bottom: 8px; }
.mn-chaine-h b { color: var(--c-c); font-size: 16px; }
.mn-chaine-sem { opacity: .85; }
.mn-dots { display: flex; gap: 7px; justify-content: center; flex-wrap: wrap; }
.mn-dot { width: 11px; height: 11px; border-radius: 50%; background: var(--hairline); }
.mn-dot.on { background: var(--gold); box-shadow: 0 0 0 2px color-mix(in srgb, var(--gold) 25%, transparent); }
@media (max-width: 560px) { .mn-row2 { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .mn-ring-fg, .mn-switch-k { transition: none; } }
/*  Intentions de mise en œuvre (§10.3)                                  */
/* ===================================================================== */
.in-demain { max-width: 680px; margin: 0 auto 16px; border-left: 5px solid var(--gold); background: var(--card-2); display: flex; flex-direction: column; gap: 6px; }
.in-demain-lbl { display: flex; align-items: center; gap: 7px; font-family: var(--sans); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c-c); }
.in-demain-lbl svg { width: 15px; height: 15px; }
.in-demain-act { font-family: var(--serif); font-size: 19px; line-height: 1.3; margin: 2px 0; color: var(--ink); }
.in-demain-ctx { font-family: var(--sans); font-size: 13px; color: var(--ink-soft); margin: 0 0 6px; }
.in-form { max-width: 680px; margin: 0 auto 18px; display: flex; flex-direction: column; gap: 12px; }
.in-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.in-grid .in-action { grid-column: 1 / -1; }
.in-form .input { width: 100%; }
.in-form-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.in-demain-tog { flex: 1 1 auto; }
.in-liste { max-width: 680px; margin: 0 auto; display: flex; flex-direction: column; gap: 10px; }
.in-vide { max-width: 680px; margin: 0 auto; text-align: center; padding: 18px; }
.in-sep { font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-soft); margin: 8px 0 2px; }
.in-card { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 13px 15px; }
.in-card-b { min-width: 0; }
.in-si { font-family: var(--sans); font-size: 13px; color: var(--ink-soft); margin: 0 0 2px; }
.in-alors { font-family: var(--serif); font-size: 15.5px; color: var(--ink); margin: 0; line-height: 1.35; }
.in-card-b b { color: var(--c-c); font-family: var(--sans); font-size: .82em; text-transform: uppercase; letter-spacing: .04em; }
.in-card-a { display: flex; align-items: center; gap: 4px; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; }
.in-pill-demain { background: var(--react-surface); color: var(--react-on); }
.in-done { opacity: .62; }
.in-done .in-alors { text-decoration: line-through; text-decoration-color: var(--hairline); }
@media (max-width: 560px) { .in-grid { grid-template-columns: 1fr; } .in-card { flex-direction: column; } .in-card-a { justify-content: flex-start; } }
/*  Générateur de semaine-type (§10.2)                                   */
/* ===================================================================== */
.st-gen { max-width: 980px; margin: 0 auto 16px; display: flex; flex-direction: column; gap: 14px; }
.st-gen-grid { display: grid; grid-template-columns: auto 1fr 2fr; gap: 14px; align-items: start; }
.st-annee { width: fit-content; }
.st-num { width: 96px; text-align: center; }
.st-jours { display: flex; flex-wrap: wrap; gap: 6px; }
.st-jour { cursor: pointer; min-width: 42px; text-align: center; }
.st-jour[data-on="true"] { background: var(--c-surface); color: var(--c-on); border-color: var(--c-surface); }
.st-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.st-mat { cursor: pointer; }
.st-mat[data-on="true"] { background: var(--a-surface); color: var(--a-on); border-color: var(--a-surface); }
.st-mat-h { margin: 0 0 4px; }
.st-gen-foot { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; border-top: 1px dashed var(--hairline); padding-top: 12px; }
.st-vide { max-width: 980px; margin: 0 auto; text-align: center; padding: 14px; }
/* Jalons (échéances de devoirs IED) */
.st-jalons { max-width: 980px; margin: 0 auto 14px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-left-color: var(--gold); background: var(--enjeu); }
.st-jalon { font-family: var(--sans); font-size: 12.5px; color: var(--enjeu-ink); background: color-mix(in srgb, var(--gold) 14%, var(--card)); border-radius: 20px; padding: 3px 10px; }
.st-jalon b { color: var(--enjeu-ink); }
/* Aujourd'hui */
.st-today { max-width: 980px; margin: 0 auto 16px; display: flex; flex-direction: column; gap: 10px; border-left: 4px solid var(--c-c); }
.st-today-h { display: flex; align-items: center; gap: 8px; font-family: var(--sans); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c-c); }
.st-today-h svg { width: 15px; height: 15px; }
.st-today-list { display: flex; flex-direction: column; gap: 8px; }
/* Grille hebdomadaire (agenda responsive) */
.st-week-wrap { max-width: 980px; margin: 0 auto 14px; }
.st-week { display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: 12px; align-items: start; }
@media (max-width: 480px) { .st-week { grid-template-columns: 1fr; } }
.st-day { display: flex; flex-direction: column; gap: 8px; padding: 12px; }
.st-day-mer { background: color-mix(in srgb, var(--c-b) 5%, var(--card)); border-color: color-mix(in srgb, var(--c-b) 25%, var(--hairline)); }
.st-day-h { display: flex; align-items: baseline; justify-content: space-between; border-bottom: 1px solid var(--hairline); padding-bottom: 6px; }
.st-day-h b { font-family: var(--serif); font-size: 15px; }
.st-day-n { font-family: var(--sans); font-size: 11px; font-weight: 700; color: var(--ink-soft); }
.st-add { font-size: 12px; color: var(--c-c); padding: 5px 9px; align-self: flex-start; }
/* Créneau */
.st-cr { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; padding: 9px 11px; background: var(--card); border: 1px solid var(--hairline); border-left: 3px solid var(--c-a); border-radius: 10px; }
.st-cr-acquisition { border-left-color: var(--c-a); }
.st-cr-methode { border-left-color: var(--c-b); }
.st-cr-consolidation, .st-cr-reprise { border-left-color: var(--c-c); }
.st-cr-libre { border-left-color: var(--c-d); }
.st-cr-b { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.st-cr-time { font-family: var(--sans); font-variant-numeric: tabular-nums; font-size: 11.5px; font-weight: 700; color: var(--ink-soft); display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.st-cr-type { font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 9.5px; color: var(--ink-soft); }
.st-cr-acquisition .st-cr-type { color: var(--c-a); }
.st-cr-methode .st-cr-type { color: var(--c-b); }
.st-cr-consolidation .st-cr-type, .st-cr-reprise .st-cr-type { color: var(--c-c); }
.st-cr-obj { margin: 0; font-family: var(--serif); font-size: 13.5px; line-height: 1.35; color: var(--ink); }
.st-cr-mat { align-self: flex-start; margin-top: 1px; }
.st-cr-a { display: flex; gap: 2px; flex: 0 0 auto; }
/* Éditeur de créneau (inline) */
.st-cr-edit { flex-direction: column; align-items: stretch; gap: 9px; }
.st-ed-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.st-ed-grid .input, .st-ed-h, .st-ed-d { width: 100%; }
.st-ed-a { display: flex; gap: 6px; }
.st-actions { max-width: 980px; margin: 4px auto 0; display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.st-liste { max-width: 980px; margin: 24px auto 0; display: flex; flex-direction: column; gap: 9px; }
.st-liste-t { font-size: 17px; margin: 0; }
.st-liste-i { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px; }
.st-liste-b { min-width: 0; }
.st-liste-titre { margin: 0 0 2px; font-family: var(--serif); font-size: 15px; display: flex; align-items: center; gap: 8px; }
.st-actif { background: var(--ok-surface); }
.st-liste-a { display: flex; gap: 4px; flex: 0 0 auto; }
@media (max-width: 760px) {
  .st-gen-grid { grid-template-columns: 1fr; }
  .st-ed-grid { grid-template-columns: 1fr; }
  .st-liste-i { flex-direction: column; align-items: flex-start; }
}
/*  Suivi des devoirs IED (§10.5)                                        */
/* ===================================================================== */
.dv-rec { max-width: 760px; margin: 0 auto 14px; border-left-color: var(--c-c); display: flex; flex-direction: column; gap: 3px; }
.dv-rec-vide { max-width: 760px; margin: 0 auto 14px; text-align: center; }
.dv-rec-lbl { font-family: var(--sans); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c-c); }
.dv-rec-t { font-family: var(--serif); font-size: 19px; line-height: 1.3; margin: 3px 0; color: var(--ink); }
.dv-rec-s { font-family: var(--sans); font-size: 13px; color: var(--ink-soft); margin: 0; }
.dv-echeance { max-width: 760px; margin: 0 auto 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; }
.dv-echeance svg { width: 16px; height: 16px; color: var(--c-c); flex: 0 0 auto; }
.dv-echeance-urgent { border-left-color: var(--gold); background: var(--enjeu); }
.dv-echeance-urgent svg { color: var(--gold); }
.dv-form { max-width: 760px; margin: 0 auto 16px; display: flex; flex-direction: column; gap: 12px; }
.dv-form-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 12px; }
.dv-form-grid .input { width: 100%; }
.dv-form-foot { display: flex; gap: 9px; align-items: center; }
.dv-form-foot .input { flex: 1 1 auto; min-width: 0; }
.dv-liste { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 9px; }
.dv-vide { max-width: 760px; margin: 0 auto; text-align: center; padding: 18px; }
.dv-i { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px; border-left: 3px solid var(--hairline); }
.dv-i-retard { border-left-color: var(--danger); }
.dv-i-urgent { border-left-color: var(--gold); }
.dv-i-avenir { border-left-color: var(--hairline); }
.dv-i-depose { border-left-color: var(--c-a); }
.dv-i-corrige { border-left-color: var(--method); }
.dv-i-b { min-width: 0; }
.dv-i-t { margin: 0 0 2px; font-family: var(--serif); font-size: 15px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dv-i-a { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.dv-pill-retard { background: var(--danger-surface); }
.dv-pill-urgent { background: var(--warn-bg); color: var(--warn-ink); }
.dv-pill-avenir { background: var(--card); color: var(--ink-soft); border: 1px solid var(--hairline); }
.dv-pill-depose { background: var(--a-surface); }
.dv-pill-corrige { background: var(--ok-surface); }
.dv-pill-note { background: var(--n-surface); }
/* Détail */
.dv-detail { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; border-left: 3px solid var(--c-c); }
.dv-detail-h { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dv-detail-t { margin: 0; font-size: 19px; }
.dv-detail-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; }
.dv-switch { width: auto; gap: 10px; }
.dv-note-i { width: 90px; text-align: center; font-variant-numeric: tabular-nums; }
.dv-detail-a { display: flex; flex-wrap: wrap; gap: 9px; }
@media (max-width: 620px) {
  .dv-form-grid { grid-template-columns: 1fr; }
  .dv-i { flex-direction: column; align-items: flex-start; }
  .dv-detail-row { flex-direction: column; align-items: stretch; gap: 10px; }
}
/*  Tableau de délestage (§10.4)                                         */
/* ===================================================================== */
.de-annee-row { max-width: 1000px; margin: 0 auto 14px; display: flex; align-items: center; gap: 12px; }
.de-annee { width: fit-content; }
.de-jauges { max-width: 1000px; margin: 0 auto 16px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; align-items: start; }
.de-jauge { display: flex; flex-direction: column; gap: 5px; }
.de-jauge-h { display: flex; align-items: baseline; justify-content: space-between; font-family: var(--sans); font-size: 12.5px; color: var(--ink-soft); }
.de-jauge-h b { font-variant-numeric: tabular-nums; font-size: 16px; color: var(--ink); }
.de-jauge-bar { height: 8px; border-radius: 6px; background: var(--paper-2); overflow: hidden; }
.de-jauge-fill { display: block; height: 100%; border-radius: 6px; transition: width .25s ease; }
.de-fill-janvier { background: var(--c-d); }
.de-fill-printemps { background: var(--c-a); }
.de-fill-session { background: var(--ink-soft); }
.de-jauges-n { grid-column: 1 / -1; margin: 0; }
.de-cols { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; align-items: start; }
.de-col { display: flex; flex-direction: column; gap: 9px; padding: 12px; }
.de-col-janvier { border-top: 3px solid var(--c-d); }
.de-col-printemps { border-top: 3px solid var(--c-a); }
.de-col-session { border-top: 3px solid var(--ink-soft); }
.de-col-h { display: flex; align-items: baseline; justify-content: space-between; border-bottom: 1px solid var(--hairline); padding-bottom: 6px; }
.de-col-h b { font-family: var(--serif); font-size: 15px; }
.de-col-n { font-family: var(--sans); font-size: 11px; font-weight: 700; color: var(--ink-soft); }
.de-col-vide { text-align: center; padding: 10px 6px; }
.de-m { display: flex; flex-direction: column; gap: 8px; padding: 11px; border: 1px solid var(--hairline); border-radius: 11px; background: var(--card); }
.de-m-alerte { border-color: color-mix(in srgb, var(--danger) 45%, var(--hairline)); background: color-mix(in srgb, var(--danger) 5%, var(--card)); }
.de-m-h { display: flex; align-items: flex-start; gap: 9px; }
.de-voyant { font-size: 14px; line-height: 1.3; flex: 0 0 auto; }
.de-m-b { min-width: 0; }
.de-m-t { margin: 0 0 2px; font-family: var(--serif); font-size: 14px; line-height: 1.3; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.de-m-s { margin: 0; font-size: 11.5px; }
.de-statut { font-size: 9.5px; padding: 1px 7px; }
.de-statut-fondamentale-critique { background: var(--e-surface); }
.de-statut-fondamentale { background: var(--a-surface); }
.de-statut-complementaire { background: var(--n-surface); }
.de-vseg { width: 100%; }
.de-vbtn { flex: 1 1 0; padding: 6px 4px; font-size: 12px; text-align: center; }
.de-vbtn[data-on="true"] { background: var(--d-surface); color: var(--d-on); }
.de-pret { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-family: var(--sans); font-size: 12.5px; color: var(--ink); cursor: default; }
.de-avis { margin: 0; font-family: var(--sans); font-size: 11.5px; line-height: 1.45; padding: 7px 9px; border-radius: 8px; }
.de-avis-risque { color: var(--danger); background: var(--danger-bg); }
.de-avis-tiede { color: var(--enjeu-ink); background: var(--enjeu); }
.de-avis-ok { color: var(--method); background: var(--method-bg); }
@media (max-width: 860px) {
  .de-jauges { grid-template-columns: 1fr; gap: 10px; }
  .de-cols { grid-template-columns: 1fr; }
}


/* Lot 7 : le cadran-héros — la phase se lit au pigment, la pause respire */
.mn-preset[data-on="true"] { background: var(--c-surface); color: var(--c-on); border-color: var(--c-surface); }
.mn-ph-travail .mn-phase { color: var(--c-text); font-weight: 700; }
.mn-ph-pause .mn-phase { color: var(--gold-text); font-weight: 700; }
.mn-course.is-pause .mn-cadran { animation: mn-respire 4s ease-in-out infinite alternate; }
@keyframes mn-respire { to { transform: scale(.985); opacity: .9; } }
@media (prefers-reduced-motion: reduce) { .mn-course.is-pause .mn-cadran { animation: none; } }
.mn-celebration { width: 38px; height: 38px; }
