:root{
  /* Manizor & Partners brand tokens (from manizorpartners.com) */
  --navy:#0a1d3a;
  --ink:#0d0d0d;
  --graphite:#3a3f46;
  --silver:#b9bdc6;
  --ivory:#f7f6f2;

  --bg:#f7f6f2;
  --surface:#ffffff;
  --surface-2:#f1efe7;
  --ink-muted:#3a3f46;
  --ink-faint:#8a8e95;
  --line:#e1dfd7;
  --line-soft:#ebe9e1;
  --navy-700:#132b52;
  --navy-600:#1c3c6c;
  --accent:#2f4d82;
  --accent-wash:#e7ecf4;
  --silver-line:rgba(185,189,198,.55);
  --status-conforme:#0a1d3a;
  --status-partiel:#3d5a8f;
  --status-nonconforme:#6b7280;
  --status-na:#b9bdc6;
  --focus:#5b7fb8;
  --shadow:0 1px 2px rgba(10,29,58,.06), 0 8px 24px -12px rgba(10,29,58,.18);
  --radius:10px;
  --font-display:'Cormorant Garamond', 'Iowan Old Style', Georgia, serif;
  --font-body:'Inter', -apple-system, 'Segoe UI', sans-serif;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0d0d0d;
    --surface:#13213e;
    --surface-2:#192a4c;
    --ink:#f7f6f2;
    --ink-muted:#b9bdc6;
    --ink-faint:#7d8591;
    --line:#27354f;
    --line-soft:#1c2840;
    --navy:#13244a;
    --navy-700:#0c1b36;
    --navy-600:#1b3156;
    --accent:#90b0e3;
    --accent-wash:#1b2c4d;
    --silver-line:rgba(185,189,198,.35);
    --status-conforme:#9fc1f2;
    --status-partiel:#6f93c9;
    --status-nonconforme:#8a90a0;
    --status-na:#b9bdc6;
    --focus:#7ea0db;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 12px 28px -14px rgba(0,0,0,.6);
  }
}

:root[data-theme="dark"]{
  --bg:#0d0d0d;
  --surface:#13213e;
  --surface-2:#192a4c;
  --ink:#f7f6f2;
  --ink-muted:#b9bdc6;
  --ink-faint:#7d8591;
  --line:#27354f;
  --line-soft:#1c2840;
  --navy:#13244a;
  --navy-700:#0c1b36;
  --navy-600:#1b3156;
  --accent:#90b0e3;
  --accent-wash:#1b2c4d;
  --silver-line:rgba(185,189,198,.35);
  --status-conforme:#9fc1f2;
  --status-partiel:#6f93c9;
  --status-nonconforme:#8a90a0;
  --status-na:#b9bdc6;
  --focus:#7ea0db;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 12px 28px -14px rgba(0,0,0,.6);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:14px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--silver);color:var(--navy);}

a{color:inherit;}
button{font-family:inherit;}

.wrap{max-width:1180px;margin:0 auto;padding:0 20px 64px;}

/* ---------- Header ---------- */
.masthead{
  background:linear-gradient(180deg, var(--navy) 0%, var(--navy-700) 100%);
  color:var(--ivory);
  padding:28px 0 22px;
}
.masthead-inner{
  max-width:1180px;margin:0 auto;padding:0 20px;
  display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;
}
.brand{display:flex;align-items:center;gap:12px;}
.brand-mark{height:40px;width:auto;flex:none;filter:brightness(0) invert(1);}
.brand-name{font-family:var(--font-display);font-weight:500;font-size:17px;letter-spacing:.2px;color:var(--ivory);}
.brand-tag{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--silver);margin-top:3px;}

.doc-id{text-align:right;font-size:11px;color:var(--silver);letter-spacing:.08em;text-transform:uppercase;}
.doc-id .confidential{
  display:inline-block;border:1px solid var(--silver-line);
  padding:3px 9px;border-radius:999px;margin-bottom:6px;
}

.doc-title{margin-top:22px;}
.doc-title h1{
  font-family:var(--font-display);font-style:italic;font-weight:500;
  font-size:clamp(22px,3.4vw,30px);margin:0 0 6px;color:var(--ivory);
  text-wrap:balance;
}
.doc-title p{margin:0;color:var(--silver);font-size:13.5px;}

/* ---------- Meta bar ---------- */
.meta-bar{
  background:var(--surface);
  border-bottom:1px solid var(--line);
  padding:16px 0;
}
.meta-bar-inner{
  max-width:1180px;margin:0 auto;padding:0 20px;
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
}
.meta-grid{display:flex;gap:28px;flex-wrap:wrap;}
.meta-item dt{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-faint);margin:0 0 2px;}
.meta-item dd{margin:0;font-size:13px;color:var(--ink);max-width:320px;}
.meta-item input.meta-field{
  border:none;background:transparent;font:inherit;color:inherit;padding:1px 0;
  width:220px;max-width:40vw;border-bottom:1px dashed transparent;border-radius:0;
}
.meta-item input.meta-field:hover{border-bottom-color:var(--line);}
.meta-item input.meta-field:focus-visible{outline:none;border-bottom-color:var(--accent);}
.meta-item input.meta-field::placeholder{color:var(--ink-faint);font-style:italic;}

.client-dt{display:flex;align-items:center;gap:5px;}
.client-logo{height:13px;width:auto;flex:none;}
.client-link{display:block;margin-top:2px;font-size:10px;color:var(--ink-faint);text-decoration:none;letter-spacing:.02em;}
.client-link:hover{color:var(--accent);text-decoration:underline;}

.save-cluster{display:flex;align-items:center;gap:10px;}
.save-status{font-size:12px;color:var(--ink-muted);display:flex;align-items:center;gap:6px;}
.save-dot{width:7px;height:7px;border-radius:50%;background:var(--ink-faint);flex:none;}
.save-status[data-state="saving"] .save-dot{background:var(--accent);animation:pulse 1s infinite ease-in-out;}
.save-status[data-state="saved"] .save-dot{background:var(--status-conforme);}
.save-status[data-state="local"] .save-dot{background:var(--status-partiel);}
.save-status[data-state="error"] .save-dot{background:var(--status-nonconforme);}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}

.btn-save{
  background:var(--navy);color:var(--ivory);border:1px solid var(--navy);
  padding:8px 14px;border-radius:7px;font-size:12.5px;font-weight:600;cursor:pointer;
  letter-spacing:.01em;
}
.btn-save:hover{background:var(--navy-600);}
.btn-save:focus-visible{outline:2px solid var(--focus);outline-offset:2px;}

/* ---------- Module tabs ---------- */
.module-tabs{
  display:flex;gap:8px;flex-wrap:wrap;margin-top:22px;
}
.module-tab{
  display:flex;align-items:baseline;gap:7px;
  background:var(--surface);border:1px solid var(--line);border-radius:999px;
  padding:8px 16px;cursor:pointer;font-family:var(--font-body);
}
.module-tab .mt-label{font-size:12.5px;font-weight:600;color:var(--ink-muted);}
.module-tab .mt-pct{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;}
.module-tab:hover{border-color:var(--silver);}
.module-tab:focus-visible{outline:2px solid var(--focus);outline-offset:2px;}
.module-tab.active{background:var(--navy);border-color:var(--navy);}
.module-tab.active .mt-label{color:var(--ivory);}
.module-tab.active .mt-pct{color:var(--ivory) !important;}

/* ---------- View switch (Vue globale / Rapport final) ---------- */
.view-switch{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.view-btn{
  background:transparent;border:1px dashed var(--line);border-radius:999px;
  padding:7px 15px;font-size:12px;font-weight:600;color:var(--ink-muted);cursor:pointer;
  font-family:var(--font-body);
}
.view-btn:hover{border-color:var(--accent);color:var(--accent);}
.view-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px;}
.view-btn.active{background:var(--accent-wash);border-style:solid;border-color:var(--accent);color:var(--accent);}

/* ---------- Dashboard ---------- */
.dashboard{
  display:grid;grid-template-columns:1.25fr 1fr;gap:18px;
  margin-top:16px;
}
@media (max-width:860px){.dashboard{grid-template-columns:1fr;}}

.panel{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.panel-head{
  padding:16px 18px 0;display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;
}
.panel-head h2{font-family:var(--font-display);font-size:16px;font-weight:600;margin:0;}
.panel-head .hint{font-size:11.5px;color:var(--ink-faint);}

/* Radar diagram */
.hex-panel{padding-bottom:16px;}
.hex-stage{padding:6px 10px 0;}
.hex-stage svg{width:100%;height:auto;display:block;}

.radar-ring{stroke:var(--line);stroke-width:1;}
.radar-ring-label{fill:var(--ink-faint);font-family:var(--font-body);}
.radar-axis{stroke:var(--line);stroke-width:1;}
.radar-data{fill:var(--accent);fill-opacity:.16;stroke:var(--accent);stroke-width:1.75;stroke-linejoin:round;}

.radar-node{cursor:pointer;}
.radar-point{stroke:var(--surface);stroke-width:2;transition:transform .15s ease, filter .15s ease;transform-origin:center;transform-box:fill-box;}
.radar-node:hover .radar-point{filter:brightness(1.1);transform:scale(1.35);}
.radar-node:focus-visible .radar-point{outline:2px solid var(--focus);outline-offset:2px;}
.radar-label{font-family:var(--font-body);font-weight:650;font-size:9.5px;fill:var(--ink);pointer-events:none;}
.radar-pct{font-family:var(--font-body);font-weight:700;font-size:9px;pointer-events:none;}
.radar-node:hover .radar-label{fill:var(--accent);}

.hex-legend{display:flex;align-items:center;gap:8px;padding:10px 18px 0;font-size:11px;color:var(--ink-faint);}
.hex-legend .bar{flex:1;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--status-nonconforme),var(--status-partiel),var(--status-conforme));}

/* KPI tiles */
.kpi-panel{padding:16px 18px 18px;}
.kpi-rate{
  background:var(--navy);color:var(--ivory);border-radius:9px;padding:16px 18px;
  display:flex;justify-content:space-between;align-items:center;margin-top:12px;
}
.kpi-rate .num{font-family:var(--font-display);font-size:38px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ivory);line-height:1;}
.kpi-rate .lbl{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--silver);max-width:140px;text-align:right;}
.kpi-rate .lbl small{display:block;font-size:9.5px;letter-spacing:.03em;text-transform:none;color:var(--silver);opacity:.75;margin-top:4px;}

.kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px;}
.kpi-tile{
  border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--surface-2);
}
.kpi-tile .n{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);}
.kpi-tile .l{font-size:11px;color:var(--ink-muted);display:flex;align-items:center;gap:6px;margin-top:2px;}
.kpi-tile .dot{width:7px;height:7px;border-radius:50%;flex:none;}
.kpi-tile.conforme .dot{background:var(--status-conforme);}
.kpi-tile.partiel .dot{background:var(--status-partiel);}
.kpi-tile.nonconforme .dot{background:var(--status-nonconforme);}
.kpi-tile.na .dot{background:var(--status-na);}

/* ---------- Categories ---------- */
.categories{margin-top:28px;display:flex;flex-direction:column;gap:12px;}

.category{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;scroll-margin-top:16px;box-shadow:var(--shadow);
}
.category.flash{animation:flash 1.1s ease;}
@keyframes flash{0%{box-shadow:0 0 0 3px var(--silver), var(--shadow);}100%{box-shadow:var(--shadow);}}

.category > summary{
  list-style:none;cursor:pointer;padding:14px 18px;
  display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;
  background:var(--surface-2);
}
.category > summary::-webkit-details-marker{display:none;}
.cat-title{display:flex;align-items:center;gap:10px;}
.cat-title h3{margin:0;font-size:14.5px;font-weight:650;}
.cat-sub{font-size:11.5px;color:var(--ink-faint);}
.cat-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--ink-muted);}
.cat-count{font-size:11px;color:var(--ink-faint);font-variant-numeric:tabular-nums;white-space:nowrap;}
.cat-bar{width:92px;height:6px;border-radius:999px;background:var(--line-soft);overflow:hidden;}
.cat-bar i{display:block;height:100%;border-radius:999px;}
.chevron{transition:transform .15s ease;color:var(--ink-faint);}
details[open] .chevron{transform:rotate(90deg);}

.table-scroll{overflow-x:auto;}
.rows{min-width:996px;}
.row-head,.row{
  display:grid;
  grid-template-columns:48px minmax(200px,1.7fr) 108px 152px 1fr 1.15fr 122px;
  gap:10px;align-items:center;padding:9px 18px;
}
.row-head{
  font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);
  border-bottom:1px solid var(--line);padding-top:10px;padding-bottom:8px;
}
.row{border-top:1px solid var(--line-soft);}
.row:hover{background:var(--surface-2);}
.ref{font-variant-numeric:tabular-nums;color:var(--ink-faint);font-size:12px;}
.q-cell .q-text{font-size:13px;color:var(--ink);}
select.priority-select{
  appearance:none;width:100%;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:5px 24px 5px 12px;border-radius:999px;border:1px solid transparent;cursor:pointer;font-family:var(--font-body);
  background-image:linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 12px) 55%, calc(100% - 8px) 55%;
  background-size:3.5px 3.5px, 3.5px 3.5px;background-repeat:no-repeat;
}
select.priority-select.eleve{background-color:var(--accent-wash);color:var(--accent);}
select.priority-select.moyenne{background-color:var(--surface-2);color:var(--ink-faint);border-color:var(--line);}
select.priority-select.faible{background-color:transparent;color:var(--ink-faint);border-color:var(--line-soft);opacity:.7;}
select.priority-select:focus-visible{outline:2px solid var(--focus);outline-offset:1px;}

select.ev-select{
  width:100%;appearance:none;background:var(--surface);border:1px solid var(--line);border-radius:6px;
  padding:6px 26px 6px 9px;font-size:12px;color:var(--ink);font-weight:600;cursor:pointer;
  background-image:linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 13px) 55%, calc(100% - 9px) 55%;
  background-size:4px 4px, 4px 4px;background-repeat:no-repeat;
}
select.ev-select.st-conforme{color:var(--status-conforme);border-color:color-mix(in srgb, var(--status-conforme) 40%, var(--line));}
select.ev-select.st-partiel{color:var(--status-partiel);border-color:color-mix(in srgb, var(--status-partiel) 40%, var(--line));}
select.ev-select.st-nonconforme{color:var(--status-nonconforme);border-color:color-mix(in srgb, var(--status-nonconforme) 40%, var(--line));}
select.ev-select.st-na{color:var(--status-na);border-color:color-mix(in srgb, var(--status-na) 40%, var(--line));}
select.ev-select:focus-visible{outline:2px solid var(--focus);outline-offset:1px;}

input.field{
  width:100%;background:var(--surface);border:1px solid var(--line);border-radius:6px;
  padding:6px 9px;font-size:12.5px;color:var(--ink);font-family:var(--font-body);
}
input.field::placeholder{color:var(--ink-faint);}
input.field:focus-visible{outline:2px solid var(--focus);outline-offset:1px;}
input[type="date"].field{color:var(--ink-muted);}
input[type="date"].field:valid{color:var(--ink);}

/* ---------- Vue globale : sections par volet ---------- */
.detail-heading{font-family:var(--font-display);font-size:19px;font-weight:600;margin:30px 0 14px;}
.module-section{display:flex;flex-direction:column;gap:12px;margin-bottom:28px;}
.module-section-head{
  display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;
  padding-bottom:6px;border-bottom:1px solid var(--line);
}
.module-section-head h2{font-family:var(--font-display);font-size:19px;font-weight:600;margin:0;}
.module-section-pct{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;}

/* ---------- Rapport de synthèse (en tête de la vue globale) ---------- */
.report{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px 26px 28px;}
.report-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:4px;}
.report-head h2{font-family:var(--font-display);font-size:22px;font-weight:600;margin:0 0 4px;}
.report-sub{margin:0;font-size:13px;color:var(--ink-muted);}
.report-date{font-size:11.5px;color:var(--ink-faint);white-space:nowrap;}

.report h3{font-family:var(--font-display);font-size:15px;font-weight:600;margin:26px 0 10px;}

/* Diagramme à barres horizontales : conformité par volet */
.volet-chart{display:flex;flex-direction:column;gap:16px;}
.volet-row-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px;}
.volet-name{font-size:13px;font-weight:650;color:var(--ink);}
.volet-pct{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums;}
.volet-track{height:10px;border-radius:999px;background:var(--line-soft);overflow:hidden;}
.volet-fill{display:block;height:100%;border-radius:999px;transition:width .3s ease;}
.volet-stats{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:7px;font-size:11px;color:var(--ink-faint);}
.volet-stat-total{font-weight:600;color:var(--ink-muted);}
.dot-stat{display:inline-flex;align-items:center;gap:5px;}
.dot-stat i{width:6px;height:6px;border-radius:50%;flex:none;}
.dot-stat.conforme i{background:var(--status-conforme);}
.dot-stat.partiel i{background:var(--status-partiel);}
.dot-stat.nonconforme i{background:var(--status-nonconforme);}
.dot-stat.na i{background:var(--status-na);}
.report-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:640px;}
.report-table th{
  text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);
  padding:8px 10px;border-bottom:1px solid var(--line);
}
.report-table td{padding:9px 10px;border-bottom:1px solid var(--line-soft);color:var(--ink);}
.report-table tr:hover td{background:var(--surface-2);}
.report-empty{color:var(--ink-faint);font-style:italic;text-align:center;}

.report-tag{
  display:inline-block;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:700;
  background:var(--surface-2);
}
.report-tag.st-conforme{color:var(--status-conforme);}
.report-tag.st-partiel{color:var(--status-partiel);}
.report-tag.st-nonconforme{color:var(--status-nonconforme);}
.report-tag.st-na{color:var(--status-na);}

.report-note{margin:22px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-muted);font-style:italic;}

/* ---------- Footer ---------- */
.foot{
  margin-top:30px;padding-top:16px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;color:var(--ink-faint);font-size:11.5px;flex-wrap:wrap;gap:6px;
}

@media (max-width:640px){
  .row-head{display:none;}
  .row{grid-template-columns:1fr;grid-template-areas:"ref" "q" "pr" "ev" "rep" "com" "date";padding:12px 16px;gap:6px;background:var(--surface);}
  .rows{min-width:0;}
  .ref{grid-area:ref;}
  .q-cell{grid-area:q;}
  .pr-cell{grid-area:pr;}
  .ev-cell{grid-area:ev;}
  .rep-cell{grid-area:rep;}
  .com-cell{grid-area:com;}
  .date-cell{grid-area:date;}
}

/* Aide contextuelle par question ("Comprendre la question") */
.guide-toggle{margin:0 0 14px;background:none;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font:inherit;font-size:12.5px;color:var(--accent);cursor:pointer}
.guide-toggle:hover{background:var(--accent-wash)}
.q-info-btn{display:inline-block;margin-top:5px;background:none;border:0;padding:0;font:inherit;font-size:11.5px;font-weight:600;color:var(--accent);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.q-info-btn::before{content:"\24D8  ";}
.q-guide{display:grid;gap:7px;padding:12px 20px 14px 92px;background:var(--accent-wash);border-top:1px dashed var(--line);font-size:12.5px;line-height:1.5;color:var(--ink-muted)}
.q-guide>div{max-width:95ch}
.q-guide b{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink);margin-bottom:1px}
.q-guide-dml{border-left:3px solid #fab219;padding-left:10px}
@media (max-width:640px){.q-guide{padding:12px 16px}}
