:root{
  --top:#063847; --top2:#042f3c; --line:#dbe7f3; --soft:#eef5fc;
  --row:#eaf2fb; --text:#4d5459; --muted:#7b858c; --accent:#0b4b5e;
  --ok:#25815b; --warn:#f59e0b; --danger:#b42318; --bg:#f7f9fb;
}
*{box-sizing:border-box} body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}
.topbar{height:46px;background:var(--top);color:#fff;display:flex;align-items:center;gap:16px;padding:0 12px;box-shadow:0 2px 8px #0003;position:sticky;top:0;z-index:20}
.brand{font-size:22px;font-weight:700;white-space:nowrap}.hamb{font-size:22px}.topnav{display:flex;gap:8px;align-items:center;margin-left:auto}.topnav button{color:#fff;background:transparent;border:0;cursor:pointer;padding:14px 10px;border-bottom:3px solid transparent;font-size:15px}.topnav button.active,.topnav button:hover{border-color:#fff;background:#ffffff10}.search{background:#eef3f5;border:0;border-radius:18px;padding:8px 14px;min-width:260px;color:#333}.page{padding:18px;max-width:1280px;margin:auto}.page.full{max-width:none;padding:0}.hero{background:#fff;border-radius:14px;padding:22px;box-shadow:0 1px 5px #0001;margin-bottom:18px}.hero h1{margin:0 0 8px;color:#063847}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card{background:#fff;border:1px solid #e5edf4;border-radius:12px;padding:16px;box-shadow:0 1px 4px #0000000c}.card h3{margin:0 0 10px;color:#073b4a}.stat{font-size:30px;font-weight:700;color:var(--accent)}.btn{border:0;border-radius:8px;background:var(--accent);color:white;padding:10px 14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px}.btn.secondary{background:#eef5f8;color:#073b4a;border:1px solid #cddfe8}.btn.icon{width:34px;height:34px;border-radius:50%;padding:0;justify-content:center;font-size:22px}.muted{color:var(--muted)}
.class-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.class-card{border-left:5px solid var(--accent)}
.tabs{display:flex;gap:0;align-items:end;background:white;border-bottom:1px solid #9ec6ec;overflow-x:auto}.tab{padding:12px 18px;color:#555;border:0;border-right:1px solid #e8eef5;background:#fff;white-space:nowrap;cursor:pointer;font-size:16px}.tab.active{color:#063847;font-weight:700;border-bottom:3px solid var(--accent)}.add-tab{margin-left:10px;margin-bottom:5px;flex:0 0 auto}.class-head{padding:10px 12px;background:white;display:flex;align-items:center;gap:14px}.class-head h2{margin:0;color:#073b4a}.status-local{color:var(--ok);font-size:13px;margin-left:auto;padding-right:12px}.status-dirty{color:var(--warn);font-weight:700}
.table-wrap{width:100%;height:calc(100vh - 112px);overflow:auto;background:#fff;overscroll-behavior:contain}.gradebook{border-collapse:collapse;min-width:820px}.gradebook th,.gradebook td{border-right:1px solid #9ec6ec;min-width:120px;height:50px;text-align:center}.gradebook th{position:sticky;top:0;z-index:3;font-weight:500;color:#063847;background:#fff;border-bottom:1px solid #9ec6ec}.gradebook th small{display:block;color:var(--muted);font-size:11px;font-weight:400;margin-top:3px}.gradebook td:first-child,.gradebook th:first-child{position:sticky;left:0;z-index:4;text-align:left;min-width:150px;width:150px;max-width:150px;padding-left:8px;padding-right:8px;background:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gradebook tbody tr:nth-child(even) td{background:var(--row)}.gradebook tbody tr:nth-child(even) td:first-child{background:var(--row)}.add-eval-th{min-width:72px!important;width:72px}.add-eval-cell{min-width:72px!important;background:#fff}.student-cell{font-weight:600;font-size:14px}.editable{cursor:pointer}.editable:hover{outline:2px solid #9ec6ec;background:#f8fcff!important}.cell-dirty{box-shadow:inset 0 -3px 0 var(--warn)}.editing{padding:0!important}.cell-input{width:100%;height:48px;border:2px solid #0b4b5e;background:#fff;font-size:16px;text-align:center;outline:none}.pill{display:inline-block;border-radius:20px;padding:4px 9px;background:#eef5f8;color:#073b4a;font-size:12px}.danger{color:var(--danger)}
.modal-backdrop{position:fixed;inset:0;background:#0008;display:flex;align-items:flex-start;justify-content:center;padding-top:16px;z-index:50}.modal{background:#fff;border-radius:5px;width:min(800px,calc(100vw - 28px));box-shadow:0 8px 28px #0006}.small-modal{width:min(520px,calc(100vw - 28px))}.modal-head{display:flex;align-items:center;gap:16px;padding:18px 16px;border-bottom:1px solid #e1e6eb}.modal-title{font-size:20px;font-weight:700;margin-right:auto}.modal-body{padding:16px}.field{border-bottom:1px solid #e3ebf2;padding:12px 0}.field label{display:block;color:#073b4a;font-size:13px;margin-bottom:8px}.field input,.field select,.field textarea{width:100%;border:0;outline:0;font-size:16px;color:#555;background:white}.split-field{display:flex;justify-content:space-between;align-items:center;gap:20px}.chev{font-size:28px;color:#073b4a}.tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.sync-box{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border:1px solid #dce8f0;border-radius:10px;background:white;margin:10px 0}
@media(max-width:760px){.topbar{gap:8px}.brand{font-size:18px}.search{display:none}.topnav{overflow-x:auto;margin-left:0}.page{padding:10px}.grid{grid-template-columns:1fr}.gradebook td:first-child,.gradebook th:first-child{min-width:128px;width:128px;max-width:128px}.table-wrap{height:calc(100vh - 160px)}.modal-backdrop{padding-top:0}.modal{width:100%;min-height:100vh;border-radius:0}.topnav button{padding:14px 8px}.class-head{align-items:flex-start;flex-direction:column}.status-local{margin-left:0}}

.tool-section{margin:18px 0 26px}.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title h2{margin:0;color:#073b4a}.section-title p{margin:4px 0 0}.tool-card{position:relative;overflow:hidden}.tool-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--accent)}.tool-card.module::before{background:#0b4b5e}.tool-card.referentiel::before{background:#7c3aed}.tool-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;margin-bottom:10px}.tool-badge.module{background:#e8f4f8;color:#0b4b5e}.tool-badge.referentiel{background:#f1eafe;color:#5b21b6}.module-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.module-chip{font-size:12px;border:1px solid #d7e4ed;border-radius:999px;padding:4px 8px;background:#fff}.ref-preview{border:1px solid #e4d8fb;background:#fbf9ff;border-radius:10px;padding:10px;margin-top:10px}.ref-row{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid #eee}.ref-row:last-child{border-bottom:0}.eval-source{display:flex;gap:10px;flex-wrap:wrap}.choice-card{border:1px solid #dce8f0;border-radius:10px;padding:12px;flex:1;min-width:210px;cursor:pointer;background:#fff}.choice-card input{margin-right:8px}.choice-card.active{outline:2px solid var(--accent);background:#f8fcff}.gradebook th.referentiel-col{background:#fbf9ff}.gradebook th.module-col{background:#f8fcff}.gradebook th.referentiel-col small{color:#5b21b6}.gradebook th.module-col small{color:#0b4b5e}
.available-zone{margin:12px 0 4px}.available-panel{border:1px solid #dce8f0;border-radius:12px;background:#fbfdff;padding:12px;margin-top:8px}.available-panel.referentiel-panel{background:#fbf9ff;border-color:#e4d8fb}.available-title{font-weight:700;color:#073b4a;margin-bottom:4px}.available-preview{display:grid;gap:8px;margin-top:10px}.available-item{border:1px solid #e2eaf1;border-radius:10px;background:white;padding:10px;display:grid;gap:4px}.available-item strong{color:#073b4a}.available-item span{font-size:13px;color:#64748b}.referential-item{border-color:#e4d8fb}.empty-state{border:1px dashed #cbd5e1;border-radius:10px;padding:10px;color:#64748b;background:white}.option-hint{font-size:13px;margin-top:8px}

/* v0.4.3 — modale création colonne épurée et contextuelle */
.compact-eval-modal{width:min(680px,calc(100vw - 28px))}
.config-zone{margin-top:8px}.config-panel{border:1px solid #dce8f0;border-radius:12px;background:#fbfdff;padding:10px 12px;margin-top:8px}.config-panel.referentiel-panel{background:#fbf9ff;border-color:#e4d8fb}.config-panel.light-panel{background:#fff;border-color:#e5edf4}.config-title{font-weight:700;color:#073b4a;margin-bottom:4px}.compact-field{padding:9px 0}.minimal-hint{margin-top:10px;padding:11px 12px;border:1px dashed #cbd5e1;border-radius:10px;color:#64748b;background:#fff}.mini-list{display:grid;gap:7px;margin-top:8px;max-height:170px;overflow:auto}.mini-item{width:100%;text-align:left;border:1px solid #e2eaf1;border-radius:10px;background:#fff;padding:9px 10px;display:grid;gap:3px;cursor:pointer}.mini-item:hover{border-color:var(--accent);background:#f7fbfd}.mini-item strong{color:#073b4a}.mini-item span{font-size:13px;color:#64748b}.icon-preview{margin-top:8px;border:1px solid #e5edf4;border-radius:10px;background:#fff;padding:10px 12px;font-size:24px;letter-spacing:3px}.hidden{display:none!important}

/* v0.4.4 — colonne élèves resserrée + interactions simples stabilisées */
.icon-cell-options{display:flex;justify-content:center;gap:4px;flex-wrap:wrap}.icon-choice{border:1px solid #dce8f0;background:#fff;border-radius:8px;padding:5px 7px;cursor:pointer;font-size:18px}.icon-choice:hover{border-color:var(--accent);background:#f8fcff}.checkbox-value{font-weight:700;color:var(--ok)}

/* v0.4.5 - Outils pédagogiques : retour aux cartes par type de module */
.module-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:12px 0 14px}.module-type-card{border:1px solid #dce8f0;background:#fff;border-radius:14px;padding:14px;text-align:left;display:grid;gap:7px;cursor:pointer;box-shadow:0 2px 8px #00000008}.module-type-card:hover{border-color:#aac6d6;background:#fbfdff}.module-type-card.active{outline:2px solid #0b4b5e;background:#f4fbfd}.module-type-icon{width:34px;height:34px;border-radius:10px;background:#e8f4f8;color:#0b4b5e;display:flex;align-items:center;justify-content:center;font-weight:800}.module-type-title{font-weight:800;color:#073b4a}.module-type-hint{font-size:13px;color:#64748b;min-height:34px}.module-type-count{width:max-content;border-radius:999px;background:#eef6f9;color:#0b4b5e;font-size:12px;font-weight:700;padding:4px 8px}.module-type-panel{margin-top:12px}.module-panel-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.module-panel-head h3{margin:0;color:#073b4a}.module-list-view{display:grid;gap:8px}.module-row-card{border:1px solid #e2eaf1;border-radius:12px;background:#fff;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.module-row-card strong{display:block;color:#073b4a}.module-row-card span{display:block;color:#64748b;font-size:13px;margin-top:3px}.row-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.referential-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.referential-card{border-left:0}.referential-card::before{display:none}.ref-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.ref-card-head h3{margin:2px 0;color:#073b4a}.ref-score{min-width:72px;border:1px solid #e4d8fb;background:#fbf9ff;border-radius:14px;padding:10px;text-align:center;color:#5b21b6}.ref-score strong{display:block;font-size:24px;line-height:1}.ref-score span{font-size:12px}.ref-pill-zone{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.ref-pill{border-radius:999px;background:#f1eafe;color:#5b21b6;font-size:12px;font-weight:700;padding:5px 9px}.module-list.compact{margin-bottom:12px}

/* v0.4.6 — pages dédiées modules pédagogiques */
.subpage-top{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}.subpage-top h1{margin:0;color:#073b4a}.grow{flex:1}.tool-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.soft-input{border:1px solid #d8e4ec;border-radius:10px;padding:9px 11px;background:#fff;min-width:220px}.module-items-list{display:grid;gap:10px}.module-item-row{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid #e2eaf1;border-radius:14px;padding:13px 14px;box-shadow:0 6px 20px rgba(0,0,0,.03)}.module-item-titleline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.module-item-main strong{color:#073b4a}.module-item-main p{margin:5px 0 8px}.module-row-meta{display:flex;gap:6px;flex-wrap:wrap}.badge-soft{background:rgba(122,82,246,.12);color:#5A35D9;font-weight:700;font-size:.78rem;padding:4px 9px;border-radius:999px}.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.big-empty{padding:22px}.modal-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:720px){.subpage-top,.tool-list-toolbar,.module-item-row{flex-direction:column;align-items:stretch}.soft-input{min-width:0;width:100%}.actions{justify-content:flex-start}.modal-two-cols{grid-template-columns:1fr}}

/* v0.4.7 — confort saisie tableau */
.level-cell-options{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:4px;background:#fff}
.level-choice{border:1px solid #cfe0ea;background:#fff;border-radius:999px;padding:8px 10px;min-width:42px;font-weight:700;color:#073b4a;cursor:pointer}
.level-choice:hover,.level-choice.active{background:#e8f4f8;border-color:#0b4b5e}
.empty-choice{color:#6b7280;font-weight:600}
.gradebook td:first-child,.gradebook th:first-child{min-width:132px!important;width:132px!important;max-width:132px!important}
@media(max-width:760px){.gradebook td:first-child,.gradebook th:first-child{min-width:116px!important;width:116px!important;max-width:116px!important}.level-cell-options{gap:4px}.level-choice{min-width:36px;padding:7px 8px}}

.column-head{cursor:pointer;user-select:none}.column-head:hover{filter:brightness(.98);box-shadow:inset 0 -3px 0 var(--accent)}.readonly-field .readonly-value{font-size:14px;color:#555;text-align:right}.checkline{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #e2eef7;color:#003b58;font-size:14px}.checkline input{width:18px;height:18px;accent-color:var(--accent)}

/* v0.5 local-first */
.dirty-grid{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:10px;margin:12px 0 16px}
.dirty-card{border:1px solid #e7ecf3;border-radius:12px;background:#f8fafc;padding:10px 12px;display:grid;gap:2px}
.dirty-card strong{font-size:1.35rem;color:#00384a}.dirty-card span{font-size:.78rem;color:#667085}
.danger-text{color:#b42318!important;border-color:#f0b8b2!important}.danger-text:hover{background:#fff1f0!important}
.ref-modal{max-width:780px;width:min(780px,calc(100vw - 32px))}.ref-items-editor{display:grid;gap:10px;margin-top:8px}.ref-edit-item{border:1px solid #e7ecf3;border-radius:12px;padding:10px;background:#fbfcfe}.module-checkboxes{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.module-checkboxes label{font-size:.82rem;border:1px solid #e7ecf3;border-radius:999px;padding:6px 9px;background:#fff}.module-checkboxes input{margin-right:5px}.ref-card-head+.ref-pill-zone{margin-top:10px}
@media(max-width:760px){.dirty-grid{grid-template-columns:repeat(2,1fr)}.ref-modal{width:calc(100vw - 18px)}.module-checkboxes{display:grid}.module-checkboxes label{border-radius:10px}}

/* v0.6.1 — liaison colonnes / modules / référentiels */
.complex-editable{cursor:pointer;background:linear-gradient(180deg,#fff,#fbfdff)}
.complex-cell{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;min-height:34px}
.complex-cell strong{font-size:1rem;color:#003847}
.mini-status{font-size:.68rem;color:#667085;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:1px 7px;white-space:nowrap}
.complex-result-modal{max-width:760px;width:min(760px,calc(100vw - 28px))}.complex-result-modal .modal-body{max-height:calc(100vh - 130px);overflow:auto}.detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px;border-radius:14px;margin-bottom:14px;background:#f8fafc;border:1px solid #e7eef6}.detail-hero.referential{background:linear-gradient(135deg,rgba(122,82,246,.10),#fff);border-color:rgba(122,82,246,.18)}.detail-hero.module{background:linear-gradient(135deg,rgba(0,58,73,.08),#fff);border-color:rgba(0,58,73,.14)}.detail-hero h3{margin:2px 0 0}.ref-breakdown{display:grid;gap:8px}.ref-line{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid #e7eef6;border-radius:12px;background:#fff}.ref-line span{display:block;color:#667085;font-size:.82rem;margin-top:3px}.ref-line b{white-space:nowrap;color:#5A35D9}.module-linked-card{border:1px solid #e7eef6;background:#fff;border-radius:12px;padding:12px;display:grid;gap:8px}.module-linked-card p{margin:0;color:#667085;font-size:.9rem}.config-panel textarea{width:100%;box-sizing:border-box;border:1px solid #d8e0e8;border-radius:8px;padding:8px;font-family:inherit;resize:vertical;background:#fff}

/* v0.6.2 — éditeur de grille local-first intégré */
.grid-editor-page{max-width:1500px}.grid-editor-top{align-items:center}.appeps-editor-card{margin-bottom:12px}.editor-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.msg{font-size:.82rem}.grid-editor-scroll{overflow:auto;border:1px solid #e2eaf1;border-radius:14px;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.03);margin-bottom:14px}.grid-editor-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.grid-editor-table th,.grid-editor-table td{border-right:1px solid #e2eaf1;border-bottom:1px solid #e2eaf1;padding:9px;vertical-align:top}.grid-editor-table th{position:sticky;top:0;z-index:2;background:#f8fafc;color:#073b4a}.grid-item-head{min-width:220px}.grid-actions-head{width:62px}.grid-item-cell{min-width:230px;background:#fff}.grid-degree-cell{min-width:210px}.grid-action-cell{width:62px;text-align:center;background:#fff}.grid-editor-table input,.grid-editor-table textarea{width:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.10);border-radius:9px;padding:7px 9px;background:rgba(255,255,255,.82);font-family:inherit}.grid-editor-table textarea{resize:vertical;min-height:68px;margin-bottom:6px}.grid-item-cell input:first-child{font-weight:700;margin-bottom:7px}.file-card-lite{margin-top:12px}.grid-file-fields{display:grid;gap:6px}.grid-editor-table .empty-state{text-align:center;background:#fff}.grid-editor-table tr:last-child td{border-bottom:0}.grid-editor-table th:last-child,.grid-editor-table td:last-child{border-right:0}@media(max-width:760px){.grid-editor-page{padding:8px}.grid-editor-table th,.grid-editor-table td{padding:7px}.grid-item-head,.grid-item-cell{min-width:180px}.grid-degree-cell{min-width:190px}.grid-editor-top{align-items:stretch}}

/* v0.6.3 — grilles avec sous-niveaux */
.grid-item-hint{
  margin-top:8px;
  font-size:.72rem;
  color:#64748b;
  line-height:1.25;
}
.score-line{
  display:grid;
  grid-template-columns:auto 74px;
  align-items:center;
  gap:6px;
  margin-top:6px;
  font-size:.72rem;
  color:#475569;
}
.score-line input{ min-width:0; padding:5px 6px; }
.sublevels{
  margin-top:8px;
  padding:7px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(15,23,42,.08);
  border-radius:10px;
}
.sublevels-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:5px;
  font-size:.72rem;
  font-weight:700;
  color:#334155;
}
.sublevel-row{
  display:grid;
  grid-template-columns:42px 64px 28px;
  gap:5px;
  align-items:center;
  margin-top:5px;
}
.sublevel-row input{
  min-width:0;
  padding:5px 6px;
  text-align:center;
}
.sublevel-empty{
  font-size:.72rem;
  color:#94a3b8;
  font-style:italic;
}
.mini-btn{
  border:1px solid rgba(15,23,42,.14);
  background:#fff;
  border-radius:8px;
  height:26px;
  min-width:26px;
  padding:0 7px;
  cursor:pointer;
  font-weight:800;
}
.grid-editor-table th,
.grid-editor-table td{
  min-width:170px;
}
.grid-editor-table .grid-item-head,
.grid-editor-table .grid-item-cell{
  min-width:180px;
  max-width:220px;
}
@media(max-width:760px){
  .grid-editor-table th,
  .grid-editor-table td{ min-width:148px; }
  .grid-editor-table .grid-item-head,
  .grid-editor-table .grid-item-cell{ min-width:145px; max-width:160px; }
  .grid-degree-cell textarea{ min-height:58px; font-size:.78rem; }
  .score-line{ grid-template-columns:1fr; }
  .sublevel-row{ grid-template-columns:34px 54px 24px; gap:4px; }
  .sublevels{ padding:5px; }
}

/* v0.6.4 — passation grille + garde-fous */
.grid-pass-modal{ width:min(1120px, calc(100vw - 28px)); max-height:92vh; }
.grid-pass-body{ max-height:calc(92vh - 72px); overflow:auto; display:grid; gap:12px; }
.grid-pass-score{ text-align:right; display:grid; gap:2px; }
.grid-pass-score strong{ font-size:1.7rem; color:#073b4c; }
.grid-pass-score span{ font-size:.78rem; color:#6b7280; }
.grid-pass-item{ background:#fff; border:1px solid #e8edf3; border-radius:14px; padding:12px; box-shadow:0 4px 14px rgba(0,0,0,.035); }
.grid-pass-item-head{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.selected-pill{ background:#e8f7ef; color:#11613a; }
.muted-pill{ background:#f3f4f6; color:#6b7280; }
.grid-pass-degrees{ display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:8px; }
.grid-pass-degree{ border:1px solid rgba(3,59,76,.12); border-radius:12px; padding:10px; text-align:left; cursor:pointer; display:grid; gap:6px; min-height:118px; color:#111827; }
.grid-pass-degree:hover{ outline:2px solid rgba(3,59,76,.22); }
.grid-pass-degree.active{ outline:3px solid rgba(3,59,76,.42); box-shadow:inset 0 0 0 999px rgba(255,255,255,.20); }
.degree-title{ font-weight:800; color:#073b4c; }
.degree-desc{ font-size:.82rem; line-height:1.25; }
.degree-direct{ font-size:.75rem; color:#374151; }
.pass-sublevels{ display:flex; flex-wrap:wrap; gap:5px; margin-top:2px; }
.pass-sublevel{ background:rgba(255,255,255,.72); border:1px solid rgba(0,0,0,.12); border-radius:999px; padding:4px 7px; font-size:.75rem; }
.pass-sublevel:hover{ background:#fff; }
.pass-sublevel.active{ background:#073b4c; color:#fff; border-color:#073b4c; }
.grid-pass-footer{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:8px 2px; }
.grid-guard-card{ margin-bottom:12px; }
.guard-warning{ border-left:4px solid #f59e0b; background:#fffbeb; padding:10px 12px; border-radius:10px; color:#78350f; }
.guard-warning ul{ margin:8px 0; padding-left:18px; }
.guard-warning li{ margin:3px 0; }
@media(max-width:760px){
  .grid-pass-modal{ width:calc(100vw - 12px); max-height:94vh; }
  .grid-pass-body{ max-height:calc(94vh - 64px); padding:10px; }
  .grid-pass-degrees{ grid-template-columns:1fr; }
  .grid-pass-degree{ min-height:auto; padding:9px; }
  .grid-pass-item{ padding:10px; }
  .grid-pass-score strong{ font-size:1.35rem; }
}

/* v0.6.5 - Indicateur de statut discret dans le coin des cellules complexes */
.gradebook td.status-corner{position:relative;overflow:hidden;}
.gradebook td.status-corner::after{content:"";position:absolute;top:0;right:0;width:0;height:0;border-top:13px solid #cbd5e1;border-left:13px solid transparent;z-index:2;}
.gradebook td.status-progress::after{border-top-color:#f59e0b;}
.gradebook td.status-done::after{border-top-color:#22c55e;}
.gradebook td.status-error::after{border-top-color:#ef4444;}
.gradebook td.status-todo::after{border-top-color:#cbd5e1;}
.gradebook td.status-done{background:rgba(34,197,94,.045)!important;}
.gradebook td.status-progress{background:rgba(245,158,11,.045)!important;}
.complex-cell{display:grid;place-items:center;min-height:38px;}

/* v0.6.5 - Matrices : édition + aperçu + passation */
.matrix-editor-scroll,.matrix-pass-scroll{overflow:auto;border:1px solid #e5edf3;border-radius:14px;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.03)}
.matrix-editor-table,.matrix-pass-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;}
.matrix-editor-table th,.matrix-editor-table td,.matrix-pass-table th,.matrix-pass-table td{border-right:1px solid #e5edf3;border-bottom:1px solid #e5edf3;padding:8px;vertical-align:top;}
.matrix-editor-table thead th,.matrix-pass-table thead th{position:sticky;top:0;background:#f8fafc;z-index:2;}
.matrix-corner{min-width:190px;background:#eef3f7!important;}
.matrix-col-head{min-width:160px;background:#eef3f7!important;}
.matrix-row-head{min-width:190px;background:#eef3f7!important;position:sticky;left:0;z-index:1;}
.matrix-head-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:.78rem;color:#64748b;}
.matrix-editor-table input,.matrix-editor-table textarea{width:100%;box-sizing:border-box;border:1px solid #d9e3ea;border-radius:9px;padding:7px;background:#fff;}
.matrix-edit-cell{min-width:130px;background:#fff;}
.matrix-edit-cell .cellValue{font-weight:800;text-align:center;font-size:1.1rem;}
.matrix-pass-modal{width:min(980px, calc(100vw - 28px));max-height:92vh;}
.matrix-pass-body{max-height:calc(92vh - 72px);overflow:auto;display:grid;gap:12px;}
.matrix-pass-table th{background:#f8fafc;font-weight:700;}
.matrix-pass-table tbody th{position:sticky;left:0;background:#f8fafc;z-index:1;min-width:180px;text-align:left;}
.matrix-pass-cell{display:grid;gap:4px;width:100%;min-width:120px;min-height:72px;border:1px solid rgba(3,59,76,.13);border-radius:12px;background:#fff;cursor:pointer;padding:10px;text-align:center;}
.matrix-pass-cell:hover{outline:2px solid rgba(3,59,76,.18);}
.matrix-pass-cell.active{outline:3px solid rgba(3,59,76,.42);background:#dcfce7;}
.matrix-pass-cell strong{font-size:1.2rem;color:#073b4c;}
.matrix-pass-cell span{font-size:.78rem;color:#64748b;}
.matrix-preview-result{padding:10px 12px;border-left:4px solid #0b4b5e;background:#f8fafc;border-radius:8px;margin-top:10px;}
@media(max-width:760px){
  .matrix-pass-modal{width:calc(100vw - 12px);max-height:94vh;}
  .matrix-pass-body{max-height:calc(94vh - 64px);padding:10px;}
  .matrix-editor-table th,.matrix-editor-table td,.matrix-pass-table th,.matrix-pass-table td{padding:6px;}
  .matrix-row-head,.matrix-corner{min-width:138px;}
  .matrix-col-head{min-width:122px;}
  .matrix-pass-table tbody th{min-width:130px;}
  .matrix-pass-cell{min-width:96px;min-height:62px;padding:8px;}
}

/* v0.6.6 - Matrice compacte + sélection ligne/colonne/case */
.matrix-editor-table th,
.matrix-editor-table td,
.matrix-pass-table th,
.matrix-pass-table td{
  padding:6px;
}
.matrix-corner{min-width:130px!important;max-width:150px;}
.matrix-col-head{min-width:96px!important;max-width:112px;}
.matrix-row-head{min-width:130px!important;max-width:150px;}
.matrix-edit-cell{min-width:92px!important;max-width:108px;}
.matrix-head-tools{font-size:.7rem;margin-bottom:4px;}
.matrix-editor-table input,
.matrix-editor-table textarea{
  font-size:.74rem;
  padding:4px 5px;
  border-radius:7px;
}
.matrix-edit-cell .cellValue{
  font-size:.95rem!important;
  padding:5px;
}
.matrix-pass-table tbody th{min-width:132px!important;max-width:160px;}
.matrix-pass-cell{
  min-width:86px!important;
  min-height:58px!important;
  padding:7px!important;
  border-radius:10px!important;
}
.matrix-pass-cell strong{font-size:1.02rem!important;}
.matrix-pass-cell span{font-size:.7rem!important;line-height:1.15;}
.matrix-axis-btn{
  width:100%;
  border:0;
  background:transparent;
  border-radius:9px;
  padding:7px 8px;
  font-weight:700;
  color:#17313a;
  text-align:center;
  cursor:pointer;
}
.matrix-row-btn{text-align:left;}
.matrix-axis-btn:hover{background:rgba(3,59,76,.08);}
.matrix-axis-btn.active{
  background:rgba(3,59,76,.14);
  outline:2px solid rgba(3,59,76,.28);
}
.matrix-preview-result strong{color:#073b4c;}
@media(max-width:720px){
  .matrix-corner,.matrix-row-head,.matrix-pass-table tbody th{min-width:110px!important;max-width:126px;}
  .matrix-col-head,.matrix-edit-cell{min-width:82px!important;max-width:94px;}
  .matrix-pass-cell{min-width:74px!important;min-height:52px!important;padding:6px!important;}
  .matrix-axis-btn{font-size:.78rem;padding:6px;}
  .matrix-editor-table input,.matrix-editor-table textarea{font-size:.68rem;padding:4px;}
}

.matrix-no-score-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:8px 10px;border:1px solid #e5edf3;border-radius:12px;background:#fbfdff;}
.matrix-no-score-actions .btn{padding:7px 10px;font-size:.82rem;}
.btn.ghost{background:transparent;border-color:transparent;color:#64748b;}
.btn.ghost:hover{background:#f1f5f9;border-color:#e2e8f0;}
@media(max-width:680px){.matrix-no-score-actions{gap:6px}.matrix-no-score-actions .btn{padding:6px 8px;font-size:.76rem;}}

/* v0.6.9 — Fichier partagé */
.gradebook td.status-submitted::after{border-top-color:#3b82f6;}
.gradebook td.status-submitted{background:rgba(59,130,246,.045)!important;}
.shared-file-card{display:grid;gap:12px;max-width:860px;margin:0 auto;}
.shared-file-card.inner{box-shadow:none;margin:0;max-width:none;border:1px solid #e5edf3;border-radius:14px;padding:14px;background:#fff;}
.shared-file-card h2{margin:0;color:#073b4a;}
.shared-file-consigne{border-left:4px solid var(--accent);background:#f8fafc;border-radius:10px;padding:10px 12px;}
.shared-file-consigne p{margin:6px 0 0;line-height:1.35;}
.shared-file-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.shared-status-demo{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding-top:6px;}
.shared-status-demo span{border:1px solid #dbe7f3;border-radius:999px;padding:5px 9px;background:#fff;font-size:.8rem;}
.shared-file-modal{width:min(760px, calc(100vw - 28px));max-height:92vh;}
.shared-file-body{max-height:calc(92vh - 72px);overflow:auto;display:grid;gap:12px;}
.shared-status-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0;}
.status-choice{border:1px solid #d8e4ec;background:#fff;border-radius:999px;padding:8px 11px;cursor:pointer;font-weight:700;color:#17313a;}
.status-choice:hover{background:#f8fafc;border-color:#9ec6ec;}
.status-choice.active{background:#073b4c;color:#fff;border-color:#073b4c;}
@media(max-width:680px){.shared-file-modal{width:calc(100vw - 12px);max-height:94vh}.shared-file-body{max-height:calc(94vh - 64px);padding:10px}.shared-status-buttons{gap:6px}.status-choice{padding:7px 9px;font-size:.78rem}}

/* v0.6.10 — Quiz / Questionnaire */
.survey-builder-page .survey-question-list,
.survey-preview-list,
.survey-pass-list{
  display:grid;
  gap:12px;
}
.survey-q-editor,
.survey-preview-card{
  background:#fff;
  border:1px solid var(--line, #e5e7eb);
  border-radius:14px;
  padding:14px;
  box-shadow:0 6px 18px rgba(15,23,42,.04);
}
.survey-q-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.survey-choice-list{
  display:grid;
  gap:8px;
  margin-top:10px;
}
.survey-choice{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  background:#f8fafc;
  border:1px solid #e5e7eb;
  border-radius:12px;
  cursor:pointer;
}
.survey-choice input{
  width:20px;
  height:20px;
  accent-color:#6c5ce7;
}
.survey-choice small{
  margin-left:auto;
  color:#15803d;
  font-weight:700;
}
.survey-scale{
  display:grid;
  grid-template-columns:minmax(90px,max-content) minmax(150px,1fr) 48px minmax(90px,max-content);
  gap:10px;
  align-items:center;
  margin-top:10px;
}
.survey-scale span{
  white-space:nowrap;
  font-size:.86rem;
  color:#475569;
}
.survey-scale input[type=range]{
  width:100%;
  min-width:150px;
}
.survey-scale .scale-live-value{
  text-align:center;
  font-size:1.05rem;
  color:#5b21b6;
}
.survey-pass-modal .modal{
  max-width:980px;
}
.survey-pass-body{
  display:grid;
  gap:12px;
}
@media(max-width:720px){
  .survey-scale{
    grid-template-columns:minmax(64px,max-content) minmax(120px,1fr) 42px minmax(64px,max-content);
    gap:6px;
  }
  .survey-scale span{font-size:.72rem;white-space:normal;line-height:1.15;}
  .survey-scale input[type=range]{min-width:120px;}
  .survey-q-editor,.survey-preview-card{padding:10px;}
}

/* v0.6.11 — Quiz builder amélioré */
.survey-param-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid var(--line,#e5e7eb)}
.survey-check{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--muted,#6b7280)}
.survey-check input{width:auto}
.survey-q-editor.advanced{border:1px solid #e5e7eb;border-left:5px solid #60a5fa;border-radius:16px;background:#fff;margin-bottom:14px;box-shadow:0 6px 18px rgba(15,23,42,.04);overflow:hidden}
.survey-q-editor .survey-q-head{display:flex;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #eef2f7;background:#fbfdff}
.q-move{color:#64748b;font-weight:800;user-select:none}.q-type-label{color:#64748b;font-size:.86rem}.q-number-pill{background:#ede9fe;color:#5b21b6;border:1px solid #c4b5fd;border-radius:999px;padding:4px 10px;font-weight:800;font-size:.82rem}
.survey-q-panels{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:12px;padding:12px}
.survey-panel{border:1px solid #e5e7eb;border-radius:16px;padding:12px;background:#fff;min-width:0}.survey-panel h3{margin:0 0 12px;font-size:1rem}.survey-panel h3 span{font-size:.78rem;font-weight:700;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:3px 8px;margin-left:6px}
.survey-option-card{display:grid;grid-template-columns:24px minmax(0,1fr) auto auto;gap:10px;align-items:start;border:1px solid #e6eaf0;border-radius:14px;background:#fafafa;padding:10px;margin-bottom:8px}.survey-option-card input{width:100%}.option-main{display:grid;gap:8px}.survey-good-answer{display:flex;gap:6px;align-items:center;color:#64748b;font-size:.86rem;white-space:nowrap}.survey-good-answer input{width:auto}.btn.warning{background:#f59e0b;border-color:#f59e0b;color:#111827}
@media(max-width:840px){.survey-q-panels{grid-template-columns:1fr}.survey-option-card{grid-template-columns:20px minmax(0,1fr);}.survey-good-answer,.survey-option-card button{grid-column:2}.survey-param-row{display:grid;gap:8px}}

/* v0.6.12 — Quiz noté : barème + normalisation */
.survey-grading-box{
  margin-top:12px;
  padding:12px;
  border:1px solid var(--line, #e5e7eb);
  border-radius:14px;
  background:#f8fafc;
  display:grid;
  gap:8px;
}
.inline-number{
  width:90px !important;
  display:inline-block;
  margin:0 4px;
  padding:6px 8px !important;
}
.pair-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.fill-preview,
.fill-pass-list{
  display:grid;
  gap:8px;
}
.survey-order-list{
  margin:8px 0 0 22px;
  padding:0;
}
.survey-option-card select{
  width:100%;
  padding:8px 10px;
  border:1px solid var(--line,#e5e7eb);
  border-radius:10px;
  background:white;
}
@media(max-width:760px){
  .pair-grid{ grid-template-columns:1fr; }
  .survey-q-panels{ grid-template-columns:1fr !important; }
}
.question-add-group{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.soft-select{
  border:1px solid var(--line,#e5e7eb);
  background:#fff;
  border-radius:10px;
  padding:8px 10px;
  font-weight:700;
  min-height:38px;
}
@media(max-width:640px){
  .question-add-group{ width:100%; }
  .question-add-group .soft-select,
  .question-add-group .btn{ flex:1; }
}

/* v0.6.14 — Quiz : ordonner en drag/drop + score masqué avant envoi */
.ordering-dropzone{display:grid;gap:8px;}
.ordering-item{cursor:grab;grid-template-columns:28px 28px minmax(0,1fr) !important;align-items:center !important;}
.ordering-item:active{cursor:grabbing;}
.ordering-item.dragging{opacity:.55;outline:2px dashed #6c5ce7;background:#f3f0ff;}
.grid-pass-footer .btn{margin-left:auto;}


/* v0.6.15 — fiche élève + filtre dynamique */
.student-filter-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:14px;margin:10px 0;box-shadow:0 4px 14px rgba(0,0,0,.035)}
.student-filter-input{flex:1;min-width:180px;border:1px solid #d9e3ea;border-radius:999px;padding:9px 14px;font-size:.92rem;background:#f8fafc;}
.student-filter-input:focus{outline:2px solid rgba(11,75,94,.20);background:#fff;}
.student-name-btn{border:0;background:transparent;padding:0;margin:0;color:#073b4c;font-weight:700;cursor:pointer;text-align:left;font:inherit;}
.student-name-btn:hover{text-decoration:underline;}
.student-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px;max-width:150px;}
.student-tags span,.student-tags-preview span{display:inline-flex;align-items:center;border-radius:999px;background:#eef6ff;border:1px solid #d7e8f7;color:#0b4b5e;padding:2px 7px;font-size:.68rem;font-weight:700;}
.student-profile-modal{width:min(620px, calc(100vw - 28px));}
.student-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.student-tags-preview{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding:8px;border:1px dashed #d9e3ea;border-radius:12px;background:#f8fafc;min-height:42px;align-items:center;}
@media(max-width:760px){.student-filter-bar{align-items:stretch;flex-direction:column}.student-profile-grid{grid-template-columns:1fr}.student-tags{max-width:120px}.student-filter-input{width:100%}}

/* v0.6.17 — recherche globale élèves, tags et colonne élèves redimensionnable */
.table-wrap{--student-col-width:132px;}
.gradebook td:first-child,
.gradebook th:first-child{
  min-width:var(--student-col-width)!important;
  width:var(--student-col-width)!important;
  max-width:var(--student-col-width)!important;
}
.student-col-head{position:sticky!important;left:0!important;z-index:6!important;padding-right:14px!important;}
.student-resize-handle{
  position:absolute;right:0;top:0;bottom:0;width:9px;cursor:col-resize;
  background:linear-gradient(90deg, transparent, rgba(11,75,94,.18));
  touch-action:none;
}
.student-resize-handle:hover{background:rgba(11,75,94,.28)}
body.is-resizing-student-col{cursor:col-resize;user-select:none;}
.student-filter-bar{justify-content:flex-start;flex-wrap:wrap;margin:0;border-radius:0;border-left:0;border-right:0;box-shadow:none;}
.filter-chip-zone{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.filter-chip{border:1px solid #d7e8f7;background:#f8fcff;color:#0b4b5e;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:700;cursor:pointer;}
.filter-chip:hover{background:#e8f4f8;border-color:#0b4b5e;}
.student-profile-grid input,
#studentTagsInput{background:#fff!important;}
@media(max-width:760px){
  .gradebook td:first-child,
  .gradebook th:first-child{min-width:var(--student-col-width)!important;width:var(--student-col-width)!important;max-width:var(--student-col-width)!important;}
  .student-resize-handle{width:13px;}
  .filter-chip-zone{width:100%;}
}


/* v0.6.19 — modales quiz/questionnaire scrollables + tactile colonne élèves */
.survey-pass-modal{
  width:min(980px, calc(100vw - 28px));
  max-height:92vh;
  display:flex;
  flex-direction:column;
}
.survey-pass-modal .modal-head{
  flex:0 0 auto;
}
.survey-pass-modal .modal-body,
.survey-pass-body{
  flex:1 1 auto;
  min-height:0;
  max-height:calc(92vh - 68px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.student-resize-handle{
  width:16px!important;
  touch-action:none!important;
}
.student-col-head{
  overflow:visible!important;
}
@media(max-width:720px){
  .modal-backdrop{
    align-items:stretch;
    padding:0;
  }
  .survey-pass-modal{
    width:100vw;
    max-width:100vw;
    height:100dvh;
    max-height:100dvh;
    border-radius:0;
  }
  .survey-pass-modal .modal-body,
  .survey-pass-body{
    max-height:calc(100dvh - 64px);
    padding:10px;
  }
  .student-resize-handle{
    width:22px!important;
  }
}

/* v0.6.20 — Référentiel d'évaluation : axes + mode passation */
.referential-pass-modal{max-width:980px;width:min(980px,calc(100vw - 28px));}
.referential-pass-body{max-height:calc(100vh - 130px);overflow:auto;-webkit-overflow-scrolling:touch;}
.ref-total-card{min-width:112px;border:1px solid #e4d8fb;background:#fbf9ff;border-radius:14px;padding:10px 12px;text-align:center;color:#5b21b6;}
.ref-total-card strong{display:block;font-size:28px;line-height:1.05;}
.ref-total-card span{display:block;font-size:12px;margin-top:2px;}
.ref-axis-list{display:grid;gap:12px;margin:14px 0;}
.ref-axis-card{border:1px solid #e4d8fb;background:#fff;border-radius:14px;padding:12px;box-shadow:0 3px 10px rgba(91,33,182,.05);}
.ref-axis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;}
.ref-axis-head strong{display:block;color:#3b0764;}
.ref-axis-head span{display:block;color:#64748b;font-size:13px;margin-top:3px;}
.ref-module-list{display:grid;gap:8px;}
.ref-module-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e7eef6;background:#f8fafc;border-radius:12px;padding:10px;}
.ref-module-row strong{display:block;color:#073b4a;}
.ref-module-row span{display:block;color:#64748b;font-size:13px;margin-top:3px;}
.mini-status.done{background:#dcfce7;color:#166534;}
.mini-status.progress{background:#ffedd5;color:#9a3412;}
.mini-status.todo{background:#f1f5f9;color:#475569;}
@media(max-width:768px){
  .referential-pass-modal{width:100vw;height:100vh;max-width:none;border-radius:0;}
  .referential-pass-body{max-height:calc(100vh - 58px);}
  .ref-module-row,.ref-axis-head{align-items:stretch;flex-direction:column;}
  .ref-module-row .btn{width:100%;}
}

/* v0.6.21 — Référentiels : axes libres, modules typés, badges de note */
.ref-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 10px;}
.ref-axis-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;color:#3b0764;}
.ref-module-links{display:grid;gap:8px;margin:10px 0;}
.ref-module-link-row{display:grid;grid-template-columns:160px 1fr auto;gap:8px;align-items:end;border:1px solid #e7eef6;background:#f8fafc;border-radius:12px;padding:10px;}
.mini-empty{padding:10px;font-size:13px;}
.module-score-badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800;border:1px solid #d7e4ed;background:#fff;color:#475569;}
.module-score-badge.done{background:#dcfce7;border-color:#86efac;color:#166534;}
.module-score-badge.todo{background:#f8fafc;border-color:#cbd5e1;color:#64748b;}
.ref-module-row{grid-template-columns:1fr auto auto;}
@media(max-width:720px){
  .ref-title-row,.ref-axis-editor-head{align-items:stretch;flex-direction:column;}
  .ref-module-link-row{grid-template-columns:1fr;}
  .ref-module-row{grid-template-columns:1fr;}
  .module-score-badge{justify-self:start;}
}

/* v0.6.24 — réglages communs colonnes, moyennes, verrouillage, note max */
.col-title-line{display:inline-flex;align-items:center;justify-content:center;gap:5px;line-height:1.15;max-width:100%;}
.col-type-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:7px;background:#eef6ff;color:#073b4a;font-size:.82rem;font-weight:800;flex:0 0 auto;}
.col-lock,.col-option-dot{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.67rem;font-weight:900;}
.common-column-settings{margin-top:12px;}
.average-row td{position:sticky;bottom:0;z-index:2;background:#f8fafc!important;border-top:2px solid #9ec6ec;font-weight:800;color:#073b4a;height:38px;}
.average-row td:first-child{z-index:5;background:#f8fafc!important;}
.average-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b!important;}
.average-cell span{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 9px;background:#eef6ff;border:1px solid #d7e8f7;color:#0b4b5e;font-size:.78rem;font-weight:900;}
.locked-cell{cursor:not-allowed!important;background:repeating-linear-gradient(135deg, rgba(148,163,184,.07), rgba(148,163,184,.07) 6px, transparent 6px, transparent 12px)!important;}
.locked-feedback{outline:3px solid #94a3b8!important;}
.max-note-cell{background:#fff7cc!important;box-shadow:inset 0 0 0 2px #f59e0b!important;font-weight:900;}
.danger-soft{border-color:#fecaca!important;background:#fff5f5!important;color:#b91c1c!important;}
.danger-soft:hover{background:#fee2e2!important;}
@media(max-width:760px){.col-title-line{gap:3px}.col-type-icon{width:18px;height:18px}.average-cell span{font-size:.72rem;padding:3px 7px}}


/* v0.6.25 — headers épurés + genre élève */
.column-head small{display:none!important;}
.col-title-line{display:flex!important;align-items:center;justify-content:center;gap:6px;}
.col-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.col-meta-icons{display:inline-flex;align-items:center;gap:3px;opacity:.72;margin-left:2px;}
.col-meta-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.68rem;font-weight:900;}
.student-main-line{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;}
.student-main-line .student-name-btn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.student-gender-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;border:1px solid #d7e8f7;background:#fff;color:#64748b;font-size:.76rem;font-weight:900;line-height:1;}
.student-gender-icon.gender-fille{background:#fdf2f8;border-color:#fbcfe8;color:#be185d;}
.student-gender-icon.gender-garcon{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;}
.student-gender-icon.gender-non_renseigne{background:#f8fafc;border-color:#cbd5e1;color:#64748b;}
.gender-filter-chip{background:#fff7ed;border-color:#fed7aa;color:#9a3412;}
.student-profile-modal select#studentGender{background:#fff;}
@media(max-width:760px){.student-gender-icon{width:19px;height:19px}.col-meta-icons{display:none}.col-name-text{max-width:84px}}

/* v0.6.26 — dossiers de calcul */
.calc-folder-head{
  background:#fff7ed!important;
  color:#7c2d12!important;
}
.calc-folder-method{
  display:block;
  margin-top:3px;
  font-size:.68rem;
  color:#9a3412;
  font-weight:700;
  opacity:.82;
}
.calc-folder-cell{
  background:#fff7ed!important;
  color:#7c2d12;
  font-weight:900;
  text-align:center;
}
.gradebook tbody tr:nth-child(even) .calc-folder-cell{
  background:#ffedd5!important;
}
.calc-folder-average span{
  background:#ffedd5!important;
  border-color:#fed7aa!important;
  color:#9a3412!important;
}
.calc-folder-checklist{
  display:grid;
  gap:8px;
  max-height:280px;
  overflow:auto;
  border:1px solid #e5edf4;
  border-radius:12px;
  padding:10px;
  background:#fbfdff;
}
.calc-folder-checklist label{
  display:flex!important;
  align-items:center;
  gap:8px;
  margin:0!important;
  padding:8px 9px;
  border:1px solid #e7eef6;
  border-radius:10px;
  background:#fff;
  color:#073b4a!important;
  cursor:pointer;
}
.calc-folder-checklist input{
  width:18px!important;
  height:18px;
  accent-color:#f97316;
}
.calc-folder-modal .minimal-hint{margin-top:12px;}
@media(max-width:760px){
  .calc-folder-method{font-size:.62rem;}
}


/* v0.6.27 — liseret couleur des dossiers de calcul */
.folder-linked-col{
  border-top:4px solid var(--folder-color, #6366f1)!important;
  box-shadow: inset 0 3px 0 rgba(255,255,255,.45);
}
.folder-linked-col .col-title-line::after{
  content:"";
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--folder-color, #6366f1);
  margin-left:4px;
  opacity:.85;
}
.calc-folder-head{
  border-top:4px solid var(--folder-color, #f97316)!important;
}

/* v0.6.28 — dossiers de calcul avec bandeau + déplacement colonnes */
.folder-band-row th{
  top:0;
  height:30px;
  min-height:30px;
}
.folder-subhead-row th{
  top:30px;
}
.calc-folder-band{
  background:color-mix(in srgb, var(--folder-color, #6366f1) 13%, #fff)!important;
  color:#1f2937!important;
  border-top:4px solid var(--folder-color, #6366f1)!important;
  border-left:1px solid color-mix(in srgb, var(--folder-color, #6366f1) 45%, #fff)!important;
  border-right:1px solid color-mix(in srgb, var(--folder-color, #6366f1) 45%, #fff)!important;
  font-size:.78rem;
  font-weight:800!important;
  text-align:center!important;
  cursor:pointer;
  white-space:nowrap;
}
.calc-folder-band span{
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.calc-folder-band-add{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  margin-left:6px;
  border:0;
  border-radius:999px;
  background:#fff;
  color:#1f2937;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 1px 4px rgba(0,0,0,.12);
}
.calc-folder-band-add:hover{filter:brightness(.96)}
.folder-subhead-row .calc-folder-head,
.folder-subhead-row .folder-linked-col{
  border-top:0!important;
}
.column-head[draggable="true"]{
  cursor:grab;
}
.column-head[draggable="true"]:active{
  cursor:grabbing;
}
.column-dragging{
  opacity:.48;
  outline:2px dashed #6366f1;
}
.column-drag-over{
  box-shadow:inset 4px 0 0 #6366f1!important;
}
@media(max-width:760px){
  .folder-band-row th{height:28px;min-height:28px;font-size:.68rem;}
  .folder-subhead-row th{top:28px;}
  .calc-folder-band-add{width:20px;height:20px;margin-left:4px;}
}

/* v0.6.29 — robustesse local-first */
.local-health{
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:12px;
  align-items:center;
  border:1px solid #dbeafe;
  background:#eff6ff;
  border-radius:16px;
  padding:12px 14px;
  margin:8px 0 10px;
}
.local-health.ok{border-color:#bbf7d0;background:#f0fdf4;}
.local-health.error{border-color:#fecaca;background:#fef2f2;}
.local-health span{color:#4b5563;font-size:.85rem;}
.local-health-stat{
  min-width:92px;
  text-align:center;
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  border-radius:14px;
  padding:8px 10px;
}
.local-health-stat strong{display:block;font-size:1rem;color:#0f172a;}
.settings-actions,.export-class-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:8px 0 12px;
}
.btn.danger{
  border-color:#fecaca!important;
  color:#b91c1c!important;
  background:#fff!important;
}
.btn.danger:hover{background:#fef2f2!important;}
.snapshot-list,.journal-list{
  display:grid;
  gap:8px;
  margin:8px 0 14px;
}
.snapshot-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  width:100%;
  border:1px solid #e5e7eb;
  background:#fff;
  border-radius:12px;
  padding:10px 12px;
  cursor:pointer;
  text-align:left;
}
.snapshot-row:hover{background:#f8fafc;}
.snapshot-row span{font-size:.78rem;color:#6b7280;}
.journal-row{
  display:grid;
  grid-template-columns:150px 130px 1fr;
  gap:8px;
  align-items:center;
  border:1px solid #f1f5f9;
  border-radius:10px;
  padding:8px 10px;
  background:#fff;
  font-size:.78rem;
}
.journal-row span{color:#6b7280;}
.journal-row code{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  background:#f8fafc;
  border-radius:8px;
  padding:3px 6px;
}
@media(max-width:760px){
  .local-health{grid-template-columns:1fr;}
  .local-health-stat{text-align:left;}
  .journal-row{grid-template-columns:1fr;}
}

/* v0.7.1 — Login APPEPS / EvalEPS */
.login-chip{
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.10);
  color:#fff;
  border-radius:999px;
  padding:8px 12px;
  font-weight:700;
  cursor:pointer;
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.login-chip.connected{background:rgba(16,185,129,.18);border-color:rgba(16,185,129,.45)}
.login-overlay{
  position:fixed;
  inset:0;
  z-index:2000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:linear-gradient(135deg, rgba(15,23,42,.24), rgba(226,232,240,.72));
  backdrop-filter:blur(3px);
}
.login-card{
  width:min(760px, 100%);
  background:#fff;
  border-radius:28px;
  box-shadow:0 28px 80px rgba(15,23,42,.22);
  overflow:hidden;
}
.login-head{
  position:relative;
  display:flex;
  gap:18px;
  align-items:center;
  padding:28px 30px;
  color:#fff;
  background:linear-gradient(135deg,#8b5cf6,#4f46e5);
}
.login-head::before,.login-head::after{
  content:"";
  position:absolute;
  border-radius:999px;
  background:rgba(255,255,255,.10);
}
.login-head::before{width:170px;height:170px;left:-42px;top:-54px}
.login-head::after{width:150px;height:150px;right:-38px;top:-24px}
.login-icon{
  position:relative;
  z-index:1;
  width:74px;
  height:74px;
  border-radius:22px;
  display:grid;
  place-items:center;
  font-size:30px;
  background:rgba(255,255,255,.18);
}
.login-head h2{position:relative;z-index:1;margin:0;font-size:44px;line-height:1;font-weight:900;letter-spacing:-.04em}
.login-head p{position:relative;z-index:1;margin:10px 0 0;font-size:16px;opacity:.95}
.login-kicker{position:relative;z-index:1;font-size:13px;font-weight:900;letter-spacing:.14em}
.login-form{padding:30px;display:grid;gap:14px}
.login-form label{font-weight:800;color:#515b76}
.login-form input{
  width:100%;
  border:1px solid #cfd6e6;
  background:#f7f8fc;
  border-radius:22px;
  padding:18px 24px;
  font-size:17px;
  outline:none;
}
.login-form input:focus{border-color:#7c3aed;box-shadow:0 0 0 4px rgba(124,58,237,.12);background:#fff}
.login-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.login-row a{color:#6d5dfc;font-weight:800;text-decoration:none}
.login-submit{
  margin-top:12px;
  border:0;
  border-radius:22px;
  padding:20px 24px;
  color:#fff;
  font-weight:900;
  font-size:17px;
  background:linear-gradient(135deg,#8b5cf6,#4f46e5);
  box-shadow:0 18px 42px rgba(79,70,229,.26);
  cursor:pointer;
}
.login-msg{text-align:center;color:#8b95ad;font-weight:600;margin:4px 0 0}
.login-msg.ok{color:#059669}.login-msg.error{color:#dc2626}
@media(max-width:720px){
  .login-overlay{padding:0;align-items:stretch}
  .login-card{border-radius:0;min-height:100%;width:100%}
  .login-head{padding:24px 22px}.login-head h2{font-size:34px}.login-icon{width:60px;height:60px}
  .login-form{padding:24px 22px}
}


/* v0.7.2 — compatibilité smartphone/tablette : colonne élèves compacte */
@media(max-width:720px){
  .table-wrap{--student-col-width:96px;}
  .gradebook td:first-child,
  .gradebook th:first-child{
    min-width:var(--student-col-width)!important;
    width:var(--student-col-width)!important;
    max-width:var(--student-col-width)!important;
  }
  .student-cell{padding:5px 4px!important;}
  .student-main-line{gap:3px!important;align-items:center;}
  .student-name-btn{font-size:.74rem;line-height:1.1;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:normal;}
  .student-tags{display:none!important;}
  .student-gender-icon{width:16px;height:16px;font-size:.62rem;}
  .student-resize-handle{width:24px!important;}
  .class-head{gap:6px;}
  .class-head h2{font-size:1rem;}
  .class-head .pill,
  .class-head .status-local{font-size:.72rem;padding:4px 7px;}
  .add-eval-head{min-width:52px!important;width:52px!important;}
}


/* v0.7.3 — petit écran : colonne élèves très compacte pour garder le + colonne visible */
@media(max-width:720px){
  .table-wrap{--student-col-width:74px!important;}
  .gradebook td:first-child,
  .gradebook th:first-child{
    min-width:var(--student-col-width)!important;
    width:var(--student-col-width)!important;
    max-width:var(--student-col-width)!important;
  }
  .student-cell{padding:4px 3px!important;}
  .student-main-line{gap:2px!important;}
  .student-main-line .student-name-btn,
  .student-name-btn{
    max-width:50px!important;
    font-size:.68rem!important;
    line-height:1.05!important;
    white-space:normal!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .student-gender-icon{width:14px!important;height:14px!important;font-size:.55rem!important;}
  .student-resize-handle{width:22px!important;}
  .add-eval-th,.add-eval-head{min-width:46px!important;width:46px!important;}
  .add-eval-cell{min-width:46px!important;width:46px!important;}
}

@media(max-width:430px){
  .table-wrap{--student-col-width:68px!important;}
  .student-main-line .student-name-btn,
  .student-name-btn{max-width:44px!important;font-size:.64rem!important;}
  .student-gender-icon{display:none!important;}
}


/* v0.7.4 — colonne élèves compacte avec genre + nom tronqué */
.gradebook td:first-child,
.gradebook th:first-child{
  min-width:var(--student-col-width, 112px)!important;
  width:var(--student-col-width, 112px)!important;
  max-width:var(--student-col-width, 112px)!important;
}
.table-wrap{--student-col-width:112px;}
.student-main-line{display:flex;align-items:center;gap:5px;min-width:0;}
.student-name-btn{
  min-width:0;
  max-width:10.5ch!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  line-height:1.1;
}
.student-gender-icon{flex:0 0 auto;}
@media(max-width:720px){
  .table-wrap{--student-col-width:88px!important;}
  .student-cell{padding:4px 3px!important;}
  .student-main-line{gap:3px!important;}
  .student-name-btn{max-width:9.5ch!important;font-size:.70rem!important;white-space:nowrap!important;}
  .student-gender-icon{display:inline-flex!important;width:14px!important;height:14px!important;font-size:.55rem!important;}
}
@media(max-width:430px){
  .table-wrap{--student-col-width:82px!important;}
  .student-name-btn{max-width:8.5ch!important;font-size:.66rem!important;}
  .student-gender-icon{display:inline-flex!important;width:13px!important;height:13px!important;font-size:.52rem!important;}
}

/* v0.7.5 — paramètres plus lisibles côté professeur + bouton sync header */
.header-sync-btn{
  position:relative;
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.12);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-weight:900;
  font-size:16px;
}
.header-sync-btn:hover{background:rgba(255,255,255,.22)}
.header-sync-btn.is-dirty{background:rgba(245,158,11,.22);border-color:rgba(245,158,11,.65)}
.header-sync-btn span{
  position:absolute;
  right:-5px;
  top:-6px;
  min-width:17px;
  height:17px;
  padding:0 4px;
  border-radius:999px;
  background:#f59e0b;
  color:#111827;
  font-size:10px;
  line-height:17px;
}
.header-sync-btn:disabled{opacity:.65;cursor:wait}
.settings-page{max-width:1180px}.settings-hero{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-status{border-radius:14px;padding:11px 14px;min-width:160px;text-align:center;border:1px solid #dbe7f3;background:#fff}.settings-status strong{display:block;color:#073b4a}.settings-status span{font-size:12px;color:var(--muted)}.settings-status.ok{border-color:rgba(37,129,91,.25);background:#f0fdf7}.settings-status.dirty{border-color:rgba(245,158,11,.35);background:#fffbeb}.settings-grid-friendly{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.settings-card-main{background:#fff;border:1px solid #e5edf4;border-radius:16px;padding:16px;box-shadow:0 1px 4px #0000000c}.settings-card-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.settings-card-head h2{margin:0;color:#073b4a;font-size:20px}.settings-card-head p{margin:4px 0 0;color:var(--muted);line-height:1.35}.settings-icon{width:42px;height:42px;border-radius:14px;background:#eef5f8;display:flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 auto}.settings-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.settings-actions.big .btn{padding:11px 14px}.settings-note{margin-top:12px;border-left:4px solid var(--accent);background:#f8fcff;border-radius:10px;padding:10px 12px;color:#51606a;font-size:14px}.dirty-grid.friendly{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.settings-advanced{margin-top:14px}.settings-advanced summary{cursor:pointer;font-weight:800;color:#073b4a;background:#fff;border:1px solid #e5edf4;border-radius:12px;padding:12px 14px}.settings-advanced .card{margin-top:10px}.export-class-list{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:760px){.settings-hero{align-items:stretch;flex-direction:column}.settings-grid-friendly{grid-template-columns:1fr}.header-sync-btn{width:32px;height:32px;flex:0 0 auto}.settings-card-head h2{font-size:18px}}


/* v0.7.6 — PWA installable + notification de mise à jour */
.pwa-update-banner{
  position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:9999;
  display:flex;align-items:center;gap:12px;max-width:calc(100vw - 24px);
  background:#063847;color:#fff;border:1px solid rgba(255,255,255,.16);
  box-shadow:0 12px 32px rgba(0,0,0,.28);border-radius:999px;padding:10px 12px 10px 16px;
  font-size:14px;font-weight:600;
}
.pwa-update-banner button{
  border:0;background:#fff;color:#063847;border-radius:999px;padding:8px 12px;font-weight:800;cursor:pointer;
}
.pwa-update-banner .pwa-close{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.32);padding:7px 9px}
@media(max-width:640px){
  .pwa-update-banner{left:10px;right:10px;bottom:10px;transform:none;border-radius:16px;align-items:flex-start;flex-wrap:wrap}
  .pwa-update-banner span{flex:1 1 100%}
}


/* v0.7.7 — module Barème EPS */
.bareme-pass-modal{width:min(760px,calc(100vw - 28px));max-height:92vh;}
.bareme-pass-body{max-height:calc(92vh - 72px);overflow:auto;display:grid;gap:12px;}
.bareme-result-box{padding:12px;border:1px solid #e7eef6;border-radius:12px;background:#f8fafc;font-size:1rem;}
.bareme-threshold-list{border:1px solid #e7eef6;border-radius:14px;background:#fff;padding:12px;}
.bareme-threshold-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:8px;}
.bareme-threshold-grid span{border:1px solid #e8edf3;border-radius:10px;padding:8px;background:#fbfcfe;text-align:center;display:grid;gap:3px;}
.bareme-threshold-grid em{font-style:normal;color:#073b4a;font-weight:800;}
@media(max-width:680px){.bareme-pass-modal{width:100vw;height:100vh;max-height:none;border-radius:0}.bareme-pass-body{max-height:calc(100vh - 64px);padding:10px}.bareme-threshold-grid{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));}}


/* v0.7.8 — Barème EPS : éditeur plus guidé + saisie temps mobile */
.bareme-editor-intro{border:1px solid #dbeafe;background:#eff6ff;border-radius:16px;padding:12px 14px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.bareme-editor-intro strong{display:block;color:#1e3a8a;font-size:.98rem;}
.bareme-editor-intro span{display:block;color:#64748b;font-size:.82rem;margin-top:3px;}
.bareme-generator-card{border:1px solid #e7eef6;background:#fbfcff;border-radius:16px;padding:12px;margin:12px 0;}
.bareme-generator-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px;}
.bareme-generator-head strong{color:#111827;}
.bareme-generator-head span{color:#64748b;font-size:.82rem;}
.bareme-generator-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;}
.bareme-generator-grid label{display:grid;gap:4px;font-size:.78rem;color:#475569;font-weight:700;}
.bareme-generator-grid input,.bareme-generator-grid select{min-width:0;padding:8px;border-radius:10px;border:1px solid #dbe3ee;}
.bareme-generator-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;}
.bareme-rows-card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.bareme-scale-block{border:1px solid #e7eef6;border-radius:16px;padding:10px;background:#fff;}
.bareme-scale-title{display:grid;gap:2px;margin-bottom:8px;}
.bareme-scale-title strong{font-size:.92rem;color:#0f172a;}
.bareme-scale-title span{font-size:.75rem;color:#64748b;}
.bareme-scale-block textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86rem;line-height:1.45;}
.bareme-time-picker{display:flex;align-items:end;gap:8px;}
.bareme-time-picker label{display:grid;gap:4px;text-align:center;color:#64748b;font-size:.72rem;font-weight:800;}
.bareme-time-picker input{width:72px;text-align:center;font-size:1.35rem;font-weight:800;border:1px solid #dbe3ee;border-radius:14px;padding:10px 6px;background:#fff;}
.bareme-time-picker strong{font-size:1.4rem;color:#334155;padding-bottom:10px;}
.bareme-quick-times{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
.bareme-quick-times button{border:1px solid #dbe3ee;background:#fff;border-radius:999px;padding:7px 10px;font-weight:800;color:#334155;}
@media(max-width:780px){.bareme-generator-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.bareme-rows-card{grid-template-columns:1fr}.bareme-time-picker input{width:64px;font-size:1.2rem}.bareme-editor-intro,.bareme-generator-card,.bareme-scale-block{border-radius:14px}}

/* v0.7.9 — éditeur de barème sous forme de tableau manuel */
.bareme-wide-modal{width:min(1180px,calc(100vw - 22px)) !important;max-width:1180px !important;}
.bareme-wide-modal .modal-body{max-height:calc(100vh - 96px);overflow:auto;}
.bareme-wide-editor{display:grid;gap:12px;}
.bareme-settings-row .field{padding:8px 0;}
.bareme-generator-card.compact{margin:0;padding:12px;background:#fbfcff;}
.bareme-table-card{display:grid;gap:14px;}
.bareme-table-block{border:1px solid #e7eef6;border-radius:16px;background:#fff;padding:12px;}
.bareme-table-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 10px;}
.bareme-table-scroll{overflow:auto;border:1px solid #e7eef6;border-radius:14px;background:#f8fafc;-webkit-overflow-scrolling:touch;}
.bareme-manual-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;}
.bareme-manual-table th,.bareme-manual-table td{border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;padding:6px;background:#fff;}
.bareme-manual-table th{position:sticky;left:0;z-index:1;min-width:128px;background:#eaf1ff;color:#073b4a;text-align:left;font-weight:900;}
.bareme-manual-table td{min-width:86px;max-width:110px;}
.bareme-manual-table input{width:100%;border:1px solid #dbe3ee;border-radius:9px;padding:8px 6px;text-align:center;font-size:.92rem;background:#fff;}
.bareme-manual-table tr[data-row="score"] td input{font-weight:900;color:#073b4a;background:#f8fafc;}
@media(max-width:760px){.bareme-wide-modal{width:100vw !important;min-height:100vh;border-radius:0}.bareme-manual-table th{min-width:104px}.bareme-manual-table td{min-width:78px}.bareme-generator-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}


/* v0.7.10 — Barème : aide au sens + création plus lisible */
.bareme-direction-help{
  border:1px solid #dbeafe;
  background:#eff6ff;
  color:#1e3a8a;
  border-radius:14px;
  padding:10px 12px;
  font-size:.9rem;
  line-height:1.35;
}
.bareme-manual-table.lower-is-better tr[data-row="performance"] td:first-of-type,
.bareme-manual-table.higher-is-better tr[data-row="performance"] td:last-of-type{
  box-shadow: inset 0 3px 0 #22c55e;
}
.bareme-manual-table.lower-is-better tr[data-row="performance"] td:last-of-type,
.bareme-manual-table.higher-is-better tr[data-row="performance"] td:first-of-type{
  box-shadow: inset 0 3px 0 #ef4444;
}
.bareme-wide-modal .modal-head .modal-title::after{
  content:' — tableau manuel';
  font-weight:600;
  color:#64748b;
  font-size:.85rem;
}
