/* ============================================================
   Matrice de réflexion projet — CEA-Leti
   Poppins partout. Rouge officiel #ee2138. Icônes : set Lucide (inline).
   Accessibilité d'abord (RGAA / WCAG 2.1 AA).
   ============================================================ */
:root{
  --primary:#ee2138;--primary-deep:#c8142b;--primary-soft:#fde3e6;--primary-tint:#fef5f6;
  --ink:#1b1714;--ink-2:#52483f;--muted:#6e645b;
  --paper:#f6f3ee;--paper-2:#efe9e1;--surface:#ffffff;
  --line:#e7e0d6;--line-2:#d8cfc2;--field-auto:#f2ede5;
  --vertueux:#15803d;--encourageant:#1d4ed8;--vigilance:#b45309;--arbitrer:#be185d;
  /* Palette vive dédiée aux visualisations (page Statistiques) */
  --viz-1:#6366f1;--viz-2:#06b6d4;--viz-3:#f59e0b;--viz-4:#22c55e;--viz-5:#f43f5e;--viz-6:#8b5cf6;
  --r-card:18px;--r-row:12px;--r-field:10px;--r-btn:12px;
  --shadow-sm:0 1px 2px rgba(27,23,20,.05);
  --shadow-md:0 2px 4px rgba(27,23,20,.04), 0 10px 24px -12px rgba(27,23,20,.16);
  --shadow-lg:0 18px 44px -20px rgba(27,23,20,.30), 0 2px 8px rgba(27,23,20,.05);
  --shadow-pop:0 30px 70px -20px rgba(27,23,20,.45);
  --ring:0 0 0 3px var(--primary-soft);
  --ease:cubic-bezier(.22,.61,.36,1);
  --font-ui:'Poppins',system-ui,sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;font-family:var(--font-ui);color:var(--ink);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-color:var(--paper);background-image:radial-gradient(circle at center, rgba(27,23,20,.04) 1px, transparent 1.5px);background-size:24px 24px;background-attachment:fixed;min-height:100vh;}
h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.01em;}
p{margin:0;}
button{font-family:inherit;cursor:pointer;}
input,textarea,select{font-family:inherit;}
svg.ic{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px;flex:none;display:block;}
:focus-visible{outline:3px solid var(--primary);outline-offset:2px;border-radius:4px;}
/* Les conteneurs de page (tabindex="-1") reçoivent le focus programmatique à la
   navigation pour l'accessibilité : pas de halo rouge autour de tout le contenu. */
[tabindex="-1"]:focus,[tabindex="-1"]:focus-visible{outline:none;}
.skip-link{position:absolute;left:8px;top:-60px;z-index:1000;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;text-decoration:none;font-weight:600;transition:top .15s;}
.skip-link:focus{top:8px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@keyframes rise{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@keyframes flash{0%{background:var(--primary-tint);}100%{background:var(--surface);}}

/* ============================ TOP BAR (persistant) ============================ */
.topbar{position:sticky;top:0;z-index:40;background:rgba(252,250,247,.88);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--line);}
.cealogo{height:40px;width:auto;display:block;}
.profile{display:flex;align-items:center;gap:10px;padding-left:6px;}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:600;font-size:13.5px;flex:none;}
.pinfo{display:flex;flex-direction:column;line-height:1.25;}
.pname{font-size:13.5px;font-weight:600;}
.prole{font-size:11.5px;color:var(--muted);}
.icon-btn{width:42px;height:42px;border-radius:11px;border:1px solid var(--line-2);background:var(--surface);display:grid;place-items:center;color:var(--ink-2);transition:.15s var(--ease);flex:none;}
.icon-btn:hover{background:var(--primary-tint);border-color:var(--primary);color:var(--primary-deep);}
.icon-btn .ic{width:19px;height:19px;}
.progress-fill{height:4px;background:linear-gradient(90deg,#f5566a,var(--primary));transition:width .5s var(--ease);}

/* ============================ ACCUEIL / PANNEAUX ============================ */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-md);overflow:hidden;}
.search{position:relative;}
.search input{padding:13px 16px 13px 46px;width:300px;font-size:14.5px;}
.search .ic{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:19px;height:19px;color:var(--muted);}
.sort-btn{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line-2);font:inherit;font-weight:600;font-size:13px;color:var(--ink-2);padding:8px 13px;border-radius:10px;transition:.13s;}
.sort-btn:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-tint);}
.sort-btn .ic{width:16px;height:16px;}
.sort-btn .sort-i{width:15px;height:15px;transition:transform .15s;}
.sort-btn[data-dir="asc"] .sort-i{transform:rotate(180deg);}

.kebab-btn{width:32px;height:32px;border-radius:9px;border:1px solid transparent;background:none;color:var(--muted);display:grid;place-items:center;flex:none;cursor:pointer;transition:.13s;}
.kebab-btn:hover{background:var(--paper-2);color:var(--ink);border-color:var(--line-2);}
.kebab-btn[aria-expanded="true"]{background:var(--primary-tint);color:var(--primary-deep);border-color:var(--primary-soft);}
.kebab-btn .ic{width:18px;height:18px;}
.has-tip{position:relative;display:inline-flex;}
.has-tip::after{content:attr(data-tip);position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%) translateY(-3px);background:var(--ink);color:#fff;font-size:12px;font-weight:500;white-space:nowrap;padding:6px 10px;border-radius:8px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:opacity .15s,transform .15s,visibility .15s;pointer-events:none;z-index:8;}
.has-tip:hover::after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
/* Menu contextuel projet (kebab ⋮) */
.kebab-menu{position:fixed;z-index:60;min-width:240px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:7px;display:flex;flex-direction:column;gap:2px;transform-origin:top right;animation:kebab-in .16s var(--ease);}
.kebab-menu[hidden]{display:none;}
@keyframes kebab-in{from{opacity:0;transform:translateY(-6px) scale(.97);}to{opacity:1;transform:none;}}
.kebab-item{display:flex;align-items:center;gap:11px;width:100%;padding:10px 13px;border:0;border-radius:9px;background:none;font:inherit;font-size:14px;font-weight:500;color:var(--ink);text-align:left;cursor:pointer;transition:background .12s,color .12s;}
.kebab-item .ic{width:17px;height:17px;color:var(--muted);transition:color .12s;flex:none;}
.kebab-item:hover{background:var(--paper);}
.kebab-item:hover .ic{color:var(--ink-2);}
.kebab-item.kebab-danger{color:var(--primary-deep);}
.kebab-item.kebab-danger .ic{color:var(--primary);}
.kebab-item.kebab-danger:hover{background:var(--primary-tint);}
.kebab-item:disabled{color:var(--line-2);cursor:not-allowed;}
.kebab-item:disabled .ic{color:var(--line-2);}
.kebab-item:disabled:hover{background:none;}
/* ---- Pastille d'accent (kicker) + filtre segmenté ---- */
.kicker-dot{width:7px;height:7px;border-radius:50%;background:var(--primary);flex:none;}
.segmented{display:inline-flex;background:var(--paper-2);border:1px solid var(--line);border-radius:13px;padding:4px;gap:3px;}
.seg{display:inline-flex;align-items:center;gap:8px;border:0;background:none;font:inherit;font-weight:600;font-size:13.5px;color:var(--muted);padding:8px 14px;border-radius:9px;cursor:pointer;transition:color .15s,background .15s,box-shadow .15s;}
.seg .ic{width:15px;height:15px;}
.seg:hover{color:var(--ink);}
.seg-n{min-width:19px;height:19px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;border-radius:999px;background:var(--surface);color:var(--ink-2);border:1px solid var(--line);transition:.15s;}
.seg[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm);}
.seg[aria-pressed="true"] .ic{color:var(--primary);}
.seg[aria-pressed="true"] .seg-n{background:var(--primary);color:#fff;border-color:var(--primary);}
/* État vide */
.empty{display:block;padding:64px 30px;text-align:center;}
.empty-ic{width:64px;height:64px;border-radius:18px;background:var(--paper-2);color:var(--muted);display:grid;place-items:center;margin:0 auto 18px;}
.empty-ic .ic{width:30px;height:30px;}
.empty h3{font-size:17px;margin-bottom:8px;}
.empty p{color:var(--muted);font-size:14px;line-height:1.5;max-width:44ch;margin:0 auto 18px;}
.empty .btn{margin:0 auto;}
/* ============================ ADMIN ============================ */
.admin-only{display:none !important;}
body.is-admin .admin-only{display:inline-flex !important;}
/* Pastilles de verdicts (table « Questionnaires complétés ») */
.aq-pills{display:flex;gap:8px;flex:none;}
.aq-pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;padding:5px 11px;border-radius:999px;border:1px solid transparent;}
.aq-pill .ic{width:14px;height:14px;}
.aq-v{background:#e7f6ee;color:#15803d;border-color:#bce3cb;}
.aq-e{background:#eef4ff;color:#1d4ed8;border-color:#cdddff;}
.aq-w{background:#fff3e6;color:#c2620a;border-color:#f1d3a6;}
.aq-a{background:#fdeaf1;color:#be123c;border-color:#f6c9d9;}
/* Utilisateurs */
.admin-actions-row{margin-bottom:18px;}
.admin-section-title{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;margin:32px 0 14px;}
.users-table{width:100%;border-collapse:collapse;}
.users-table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;padding:13px 20px;border-bottom:1px solid var(--line);}
.users-table td{padding:13px 20px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle;color:var(--ink-2);}
.users-table tr:last-child td{border-bottom:0;}
.u-cell{display:flex;align-items:center;gap:12px;}
.u-avatar{width:38px;height:38px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:600;flex:none;}
.u-name{font-weight:600;color:var(--ink);}
.u-email{font-size:12.5px;color:var(--muted);}
.role-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 11px;border-radius:999px;background:var(--paper-2);color:var(--ink-2);}
.role-badge.is-admin-role{background:var(--primary-tint);color:var(--primary-deep);}
.role-badge .ic{width:13px;height:13px;}
tr.u-inactive td{opacity:.5;}
.row-actions{display:flex;gap:6px;justify-content:flex-end;}
.icon-mini{width:34px;height:34px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);display:grid;place-items:center;color:var(--ink-2);cursor:pointer;transition:.13s;}
.icon-mini .ic{width:15px;height:15px;}
.icon-mini:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-tint);}
.group-row{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--line);}
.group-row:last-child{border-bottom:0;}
.group-name{flex:1;font-weight:500;font-size:14px;display:flex;align-items:center;gap:10px;color:var(--ink);}
.group-name .ic{width:16px;height:16px;color:var(--muted);}
.access-chip{font-size:12px;font-weight:600;padding:4px 11px;border-radius:999px;}
.access-chip.ok{background:#e7f6ee;color:#15803d;}
.access-chip.no{background:#fdeaf1;color:#be123c;}
/* Mode édition du questionnaire */
.edit-bar{display:flex;align-items:center;gap:12px;background:var(--primary-tint);border:1px dashed var(--primary);border-radius:var(--r-card);padding:12px 16px;margin-bottom:18px;font-size:13px;font-weight:600;color:var(--primary-deep);}
.edit-bar>.ic{width:16px;height:16px;}
.eb-actions{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap;}
.eb-btn{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--primary-soft);color:var(--primary-deep);font:inherit;font-weight:600;font-size:12.5px;padding:6px 11px;border-radius:8px;cursor:pointer;transition:.13s;}
.eb-btn .ic{width:14px;height:14px;}
.eb-btn:hover{background:#fff;border-color:var(--primary);}
body.is-admin #view-quest .card{box-shadow:var(--shadow-md),0 0 0 2px var(--primary-soft);}
.edit-card{position:relative;}
.card-edit-tools{display:flex;justify-content:flex-end;gap:6px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px dashed var(--primary-soft);}
.ce-btn{display:inline-flex;align-items:center;gap:5px;background:var(--surface);border:1px solid var(--primary-soft);color:var(--primary-deep);font:inherit;font-weight:600;font-size:12px;padding:5px 10px;border-radius:8px;cursor:pointer;transition:.13s;}
.ce-btn .ic{width:13px;height:13px;}
.ce-btn:hover{background:var(--primary-tint);border-color:var(--primary);}
.ce-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);}
.edit-card.is-editing [contenteditable="true"]{outline:1px dashed var(--primary);outline-offset:3px;border-radius:4px;background:rgba(238,33,56,.04);cursor:text;}
.edit-card.section-hidden>*:not(.card-edit-tools):not(.section-restore-bar){display:none;}
.section-restore-bar{display:flex;align-items:center;gap:10px;padding:14px 2px;color:var(--muted);font-size:14px;font-weight:500;}
.section-restore-bar .ic{width:16px;height:16px;}
.new-q{position:relative;border:1px dashed var(--primary-soft);border-radius:var(--r-row);padding:16px;background:var(--primary-tint);margin-top:16px;}
.nq-badge{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--primary-deep);margin-bottom:8px;}
.nq-type{margin-bottom:12px;max-width:260px;}
.nq-field{margin-bottom:10px;display:flex;flex-direction:column;gap:6px;}

/* ============================ LAYOUT questionnaire ============================ */
#view-quest:not([hidden]){display:flex;flex-direction:column;min-height:100vh;}
.layout{max-width:1280px;margin:0 auto;padding:34px 32px 40px;display:flex;gap:30px;align-items:flex-start;flex:1;width:100%;}
.content{flex:1;min-width:0;}
.stepper{width:248px;flex:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:22px;box-shadow:var(--shadow-md);position:sticky;top:104px;}
.stepper-head{margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--line);}
.sp-proj{margin-bottom:16px;}
.sp-ref{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-variant-numeric:tabular-nums;}
.sp-ref .ic{width:13px;height:13px;}
.sp-name{display:block;margin-top:4px;font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.3;letter-spacing:-.01em;}
.stepper-head .lbl{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);display:flex;justify-content:space-between;font-weight:600;}
.stepper-head .lbl b{color:var(--primary);font-weight:700;}
.stepper-head .mini{height:6px;border-radius:6px;background:var(--primary-soft);margin-top:8px;overflow:hidden;}
.stepper-head .mini i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#f5566a,var(--primary));transition:width .5s var(--ease);}
.stepper ol{list-style:none;margin:0;padding:0;}
.stepper li{position:relative;padding:0 0 8px 42px;min-height:54px;}
.stepper li::before{content:"";position:absolute;left:15px;top:32px;bottom:-4px;width:2px;background:var(--line-2);border-radius:2px;}
.stepper li:last-child::before{display:none;}
.stepper li.done::before,.stepper li.current::before{background:var(--primary);}
.step-dot{position:absolute;left:0;top:1px;width:32px;height:32px;border-radius:50%;border:2px solid var(--line-2);background:var(--surface);color:var(--muted);display:grid;place-items:center;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;transition:.2s var(--ease);}
.step-dot .ic{width:16px;height:16px;}
.stepper li.done .step-dot{background:var(--primary);border-color:var(--primary);color:#fff;}
.stepper li.current .step-dot{border-color:var(--primary);color:var(--primary);background:var(--primary-tint);box-shadow:var(--ring);}
.step-link{background:none;border:0;padding:2px 0;text-align:left;font:inherit;color:var(--ink);font-weight:600;font-size:14px;width:100%;border-radius:6px;}
.step-link:hover{color:var(--primary);}
.stepper li.current .step-link{color:var(--primary-deep);}
.substeps{list-style:none;margin:7px 0 0;padding:0;}
.substeps li{padding:0;min-height:0;margin:0 0 3px;}
.substeps li::before{display:none;}
.substeps button{background:none;border:0;padding:3px 0;font:inherit;font-size:12.5px;color:var(--muted);text-align:left;width:100%;border-radius:5px;display:flex;align-items:center;gap:7px;}
.substeps button:hover:not(:disabled){color:var(--primary);}
.substeps .sdot{width:6px;height:6px;border-radius:50%;background:var(--line-2);flex:none;}
.substeps button[aria-current="true"]{color:var(--ink);font-weight:600;}
.substeps button[aria-current="true"] .sdot{background:var(--primary);}
.substeps button:disabled{color:var(--line-2);cursor:not-allowed;}
.substeps .skip-tag{font-size:10px;font-weight:500;background:var(--paper-2);color:var(--muted);padding:1px 7px;border-radius:5px;margin-left:auto;}

/* ============================ CARDS / FIELDS ============================ */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-md);padding:32px 34px;animation:rise .4s var(--ease) both;}
.card-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:26px;}
.card-head .ht{flex:1;}
.card-head h1{font-size:26px;letter-spacing:-.02em;line-height:1.14;}
.card-head .q{color:var(--ink-2);font-size:14.5px;margin-top:10px;max-width:64ch;line-height:1.55;}
.card-head .q sup{color:inherit;font-weight:inherit;}
.help-link{display:inline-flex;align-items:center;gap:8px;flex:none;font-size:13px;font-weight:500;color:var(--primary-deep);text-decoration:none;background:var(--primary-tint);border:1px solid var(--primary-soft);padding:9px 14px;border-radius:999px;transition:.15s var(--ease);}
.help-link:hover{border-color:var(--primary);}
.help-link .ic{width:16px;height:16px;}
.footnote{font-size:12.5px;color:var(--muted);margin-top:22px;padding-top:16px;border-top:1px dashed var(--line-2);line-height:1.5;}
.footnote a{color:var(--primary-deep);}
/* ---- Blocs de questions (Projections) ---- */
.q-block{margin-bottom:28px;}
.q-block:last-child{margin-bottom:0;}
.q-head{font-size:15.5px;font-weight:700;letter-spacing:-.01em;line-height:1.4;color:var(--ink);margin-bottom:14px;padding-bottom:11px;border-bottom:1px solid var(--line);}
.reveal{margin:2px 0 12px 33px;}
.reveal[hidden]{display:none;}
.sub-q{margin-top:2px;padding:12px 15px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-row);}
.sub-q .field-label{margin-bottom:8px;}
/* ---- Encadré d'avertissement ---- */
.warn-box{display:flex;gap:11px;align-items:flex-start;background:#fff8ef;border:1px solid #f1d3a6;border-radius:var(--r-row);padding:13px 16px;margin-bottom:16px;}
.warn-box > .ic{width:19px;height:19px;color:var(--vigilance);flex:none;margin-top:1px;}
.warn-box p{font-size:13.5px;color:#7a4a12;line-height:1.5;margin:0;}
/* ---- Point d'interrogation (tooltip) ---- */
.lab-wrap{display:inline-flex;align-items:center;gap:7px;flex:0 1 auto;min-width:0;}
.lab-wrap .lab{flex:0 1 auto;}
.qmark-plain{border:0;background:none;color:var(--muted);display:inline-grid;place-items:center;flex:none;cursor:help;padding:0;transition:color .13s;}
.qmark-plain:hover{color:var(--primary-deep);}
.qmark-plain .ic{width:16px;height:16px;}
.has-tip.tip-wide::after{white-space:normal;width:255px;text-align:left;line-height:1.4;left:0;right:auto;transform:translateX(0) translateY(-3px);}
.has-tip.tip-wide:hover::after{transform:translateX(0) translateY(0);}
/* ---- Récap par étape ---- */
.recap-step{margin-bottom:26px;}
.recap-step:last-of-type{margin-bottom:0;}
.recap-step-title{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:14px;}
.recap-step-title .rs-num{width:24px;height:24px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;flex:none;letter-spacing:0;}
.field-label{display:block;font-weight:600;font-size:14px;margin:0 0 7px;color:var(--ink);}
.req{color:var(--primary);}
.hint{font-size:13px;color:var(--muted);margin-top:5px;line-height:1.5;}
.input,.textarea,select.input{width:100%;border:1px solid var(--line-2);border-radius:var(--r-field);padding:12px 14px;font-size:15px;color:var(--ink);background:var(--surface);transition:border-color .15s,box-shadow .15s;}
.field-ic{position:relative;}
.field-ic > .ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted);pointer-events:none;}
.field-ic .input{padding-left:44px;}
.input::placeholder,.textarea::placeholder{color:#a79c91;}
.input:focus,.textarea:focus{border-color:var(--primary);outline:none;box-shadow:var(--ring);}
.textarea{min-height:88px;resize:vertical;line-height:1.55;}
.textarea.one-line{min-height:48px;}
.input.auto{background:var(--field-auto);color:var(--ink-2);}
.input.error,.textarea.error{border-color:var(--primary);box-shadow:var(--ring);}
.err-msg{color:var(--primary-deep);font-size:13px;margin-top:6px;display:flex;gap:6px;align-items:center;}
.field{margin-bottom:18px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
fieldset{border:0;margin:0;padding:0;}
legend{padding:0;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:var(--r-btn);border:1px solid transparent;padding:12px 22px;font-weight:600;font-size:14.5px;min-height:46px;text-decoration:none;transition:transform .15s var(--ease),box-shadow .15s,background .15s,border-color .15s,color .15s;}
.btn .ic{width:18px;height:18px;}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px rgba(200,20,43,.4),0 12px 24px -12px rgba(238,33,56,.8);}
.btn-primary:hover{background:var(--primary-deep);transform:translateY(-1px);}
.btn-primary:active{transform:translateY(0);}
.btn-ghost{background:var(--surface);border-color:var(--line-2);color:var(--ink);box-shadow:var(--shadow-sm);}
.btn-ghost:hover{background:var(--paper-2);transform:translateY(-1px);}
.btn-danger{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm);}
.btn-danger:hover{background:var(--primary-deep);transform:translateY(-1px);}
.btn-danger:active{transform:translateY(0);}
.btn-sm{min-height:42px;padding:10px 16px;font-size:13.5px;}
.btn-link{background:none;border:0;color:var(--primary-deep);font-weight:600;font-size:13.5px;padding:4px 2px;display:inline-flex;align-items:center;gap:7px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--primary-soft);white-space:nowrap;}
.btn-link .ic{width:16px;height:16px;}
.btn-link:hover{text-decoration-color:var(--primary);}

/* ---- Choices ---- */
.choice{position:relative;display:flex;align-items:center;gap:15px;padding:15px 18px;border:1px solid var(--line);border-radius:var(--r-row);background:var(--surface);margin-bottom:11px;cursor:pointer;min-height:58px;transition:border-color .15s,background .15s,box-shadow .15s;animation:rise .35s var(--ease) both;}
.choice:has(.qmark-plain:hover){z-index:20;}
.choice:hover{border-color:var(--line-2);box-shadow:var(--shadow-sm);}
.choice:hover input:not(:checked){background:var(--paper);border-color:var(--line-2);}
.choice:has(input:checked){border-color:var(--primary);background:var(--primary-tint);}
.choice:has(input:focus-visible){outline:3px solid var(--primary);outline-offset:2px;}
.choice input{appearance:none;width:22px;height:22px;border:2px solid var(--line-2);border-radius:50%;flex:none;margin:0;display:grid;place-items:center;cursor:pointer;transition:.15s;}
.choice input[type=checkbox]{border-radius:7px;}
.choice input:checked{border-color:var(--primary);background:var(--primary);}
.choice input:checked::after{content:"";width:9px;height:9px;border-radius:inherit;background:#fff;}
.choice input[type=checkbox]:checked::after{width:6px;height:11px;background:none;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translateY(-1px);border-radius:0;}
.choice .opt-ic{width:34px;height:34px;border-radius:9px;background:var(--paper-2);display:grid;place-items:center;flex:none;color:var(--ink-2);}
.choice .lab{font-size:14.5px;flex:1;}
.choice.inline .lab{flex:0 0 auto;}
.choice.inline .info-badge{margin-left:12px;}
.choice:nth-child(1){animation-delay:.02s}.choice:nth-child(2){animation-delay:.05s}.choice:nth-child(3){animation-delay:.08s}.choice:nth-child(4){animation-delay:.11s}.choice:nth-child(5){animation-delay:.14s}.choice:nth-child(6){animation-delay:.17s}.choice:nth-child(7){animation-delay:.2s}.choice:nth-child(8){animation-delay:.23s}.choice:nth-child(n+9){animation-delay:.26s}
.info-badge{display:inline-flex;align-items:center;gap:7px;background:var(--primary-tint);color:var(--primary-deep);border:1px solid var(--primary-soft);border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:500;white-space:nowrap;}
.info-badge .ic{width:15px;height:15px;}

/* ---- Multi-entrées ---- */
.repeat{display:flex;flex-direction:column;gap:9px;margin-top:6px;}
.repeat-row{display:flex;gap:9px;align-items:center;animation:rise .25s var(--ease) both;}
.repeat-row .input{flex:1;}
.icon-sm{width:44px;height:44px;border:1px solid var(--line-2);background:var(--surface);border-radius:10px;display:grid;place-items:center;color:var(--ink-2);flex:none;transition:.13s;}
.icon-sm:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-tint);}
.btn-add{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;background:none;border:1px dashed var(--line-2);color:var(--primary-deep);font:inherit;font-weight:600;font-size:13.5px;padding:9px 14px;border-radius:10px;transition:.13s;}
.btn-add:hover{border-color:var(--primary);background:var(--primary-tint);}

/* ---- Intérêts ---- */
.prio{list-style:none;margin:0;padding:0;}
.prio-item{display:flex;align-items:center;gap:16px;margin-bottom:13px;}
.rank{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:50%;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums;background:var(--rank-bg,var(--surface));border:1.5px solid var(--rank-c,var(--line-2));color:var(--rank-c,var(--ink-2));transition:color .15s,border-color .15s,background .15s;}
.prio-item.disabled .rank{color:var(--muted);border-color:var(--line-2);background:var(--surface);border-style:dashed;font-size:17px;}
.prio-card{flex:1;min-width:0;display:flex;align-items:center;gap:15px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-row);padding:13px 17px;box-shadow:var(--shadow-sm);transition:box-shadow .18s,border-color .15s;}
.prio-card:hover{box-shadow:var(--shadow-md);}
.prio-card.dragging{opacity:.5;border-style:dashed;border-color:var(--primary);}
.prio-card.flash{animation:flash .55s var(--ease);}
.prio-item.disabled .prio-card{background:var(--paper-2);}
.prio-item.disabled .name{color:var(--muted);}
.drag-handle{border:0;background:none;color:#c3b9ad;cursor:grab;padding:8px;border-radius:7px;display:grid;place-items:center;touch-action:none;transition:.13s;}
.drag-handle:hover{color:var(--ink-2);background:var(--paper-2);}
.prio-item.disabled .drag-handle{visibility:hidden;}
.chip-icon{width:36px;height:36px;border-radius:10px;background:var(--chip-bg,var(--paper-2));color:var(--chip,var(--ink-2));display:grid;place-items:center;flex:none;transition:.2s;}
.prio-item.disabled .chip-icon{background:var(--paper-2);color:var(--muted);}
.prio-main{flex:1;min-width:0;}
.prio-main .name{font-weight:600;font-size:14.5px;}
.move-btns{display:flex;flex-direction:column;gap:3px;}
.move-btns button{width:34px;height:25px;border:1px solid var(--line-2);background:var(--surface);border-radius:7px;display:grid;place-items:center;color:var(--ink-2);transition:.12s;}
.move-btns button:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-tint);}
.move-btns button:disabled{opacity:.3;cursor:not-allowed;}
.move-btns .ic{width:14px;height:14px;}
.toggle{display:inline-flex;align-items:center;gap:9px;cursor:pointer;font-size:13px;color:var(--ink-2);white-space:nowrap;}
.toggle input{position:absolute;opacity:0;}
.toggle .track{width:40px;height:23px;border-radius:12px;background:var(--line-2);position:relative;transition:.18s var(--ease);flex:none;}
.toggle .track::after{content:"";position:absolute;top:2.5px;left:2.5px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.18s var(--ease);box-shadow:var(--shadow-sm);}
.toggle input:checked + .track{background:var(--primary);}
.toggle input:checked + .track::after{transform:translateX(17px);}
.toggle input:focus-visible + .track{outline:3px solid var(--primary);outline-offset:2px;}

/* ---- Objectifs : jauge continue (Contribution → Préjudice) ---- */
.obj{padding:20px 0;border-bottom:1px solid var(--line);transition:opacity .2s;}
.obj:last-of-type{border-bottom:0;}
.obj-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
.obj-ic{width:38px;height:38px;border-radius:10px;background:var(--paper-2);display:grid;place-items:center;flex:none;color:var(--ink-2);}
.obj-ic .ic{width:20px;height:20px;}
.obj-name{font-weight:600;font-size:14.5px;flex:1;min-width:150px;}
.obj.is-na{opacity:.6;}
/* ---- Objectifs : choix exclusif (Contribution / Incertitude / Préjudice) ---- */
.obj-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.obj-choice{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 14px;border:1px solid var(--line-2);border-radius:var(--r-row);background:var(--surface);font:inherit;font-weight:600;font-size:14px;color:var(--ink-2);cursor:pointer;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;}
.obj-choice .ic{width:17px;height:17px;color:var(--muted);transition:color .15s;}
.obj-choice:hover:not(:disabled){border-color:var(--cc);color:var(--cc);}
.obj-choice:hover:not(:disabled) .ic{color:var(--cc);}
.obj-choice.is-sel{border-color:var(--cc);background:var(--cc-soft);color:var(--cc);box-shadow:inset 0 0 0 1px var(--cc);}
.obj-choice.is-sel .ic{color:var(--cc);}
.obj-choice:disabled{cursor:not-allowed;opacity:.5;}
.obj-choice:focus-visible{outline:3px solid var(--primary);outline-offset:2px;}
@media (max-width:560px){.obj-choices{grid-template-columns:1fr;}}
/* ---- Compteur numérique (ressources PM) ---- */
.res-label{display:inline-flex;align-items:center;gap:7px;}
.res-label .ic{width:16px;height:16px;color:var(--muted);}
.counter{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:var(--r-field);overflow:hidden;background:var(--surface);}
.counter-btn{width:44px;height:46px;border:0;background:var(--surface);color:var(--ink-2);cursor:pointer;display:grid;place-items:center;transition:.13s;}
.counter-btn .ic{width:18px;height:18px;}
.counter-btn:hover{background:var(--primary-tint);color:var(--primary-deep);}
.counter-input{width:66px;height:46px;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);text-align:center;font:inherit;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surface);-moz-appearance:textfield;}
.counter-input::-webkit-outer-spin-button,.counter-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.counter-input:focus{outline:none;}
.counter:focus-within{border-color:var(--primary);box-shadow:var(--ring);}
/* ---- Synthèse : objectifs compacts + chips ---- */
.mo-list{display:flex;flex-direction:column;gap:10px;margin-top:4px;}
.mo{display:flex;align-items:center;gap:13px;}
.mo-rank{width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--paper-2);color:var(--muted);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;}
.mo-name{flex:1;min-width:0;font-size:13.5px;color:var(--ink-2);line-height:1.35;}
.mo-pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:5px 12px;border-radius:999px;white-space:nowrap;color:var(--cc,var(--muted));background:var(--cc-soft,var(--paper-2));}
.mo-pill .ic{width:14px;height:14px;}
.mo.na .mo-name{color:var(--muted);}
.mo.na .mo-rank{opacity:.55;}
.mo.na .mo-pill{color:var(--muted);background:var(--paper-2);}
.recap-group{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.recap-group:last-child{margin-bottom:0;}
.recap-group-lbl{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);}
.recap-chips{display:flex;flex-wrap:wrap;gap:8px;}
.recap-chip{display:inline-flex;align-items:center;background:var(--paper);border:1px solid var(--line);color:var(--ink-2);font-size:12.5px;font-weight:500;padding:6px 12px;border-radius:999px;}
/* Synthèse : intérêts classés (compact, miroir de la saisie) */
.mp-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;}
.mp-item{display:flex;align-items:center;gap:12px;}
.mp-rank{width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:50%;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums;border:1.5px solid var(--rc,var(--line-2));color:var(--rc,var(--muted));background:var(--rb,transparent);}
.mp-chip{width:30px;height:30px;flex:none;border-radius:8px;display:grid;place-items:center;background:var(--cb,var(--paper-2));color:var(--cc,var(--muted));}
.mp-chip .ic{width:16px;height:16px;}
.mp-name{flex:1;min-width:0;font-size:13.5px;font-weight:500;color:var(--ink);}
.mp-tag{font-size:11px;font-weight:500;background:var(--paper-2);color:var(--muted);padding:2px 9px;border-radius:6px;}
.mp-item.na .mp-rank{border-style:dashed;}
.mp-item.na .mp-chip{background:var(--paper-2);color:var(--muted);}
.mp-item.na .mp-name{color:var(--muted);}
/* Espacement du composant repeat (dernier champ → bouton d'ajout) */
.repeat:not(:empty){margin-bottom:10px;}

/* ---- Accordéon éco-conception ---- */
.accordion-item{border:1px solid var(--line);border-radius:var(--r-row);margin-bottom:12px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm);}
.accordion-trigger{width:100%;display:flex;align-items:center;gap:13px;background:var(--surface);border:0;padding:16px 19px;font:inherit;font-weight:600;font-size:14.5px;text-align:left;transition:background .12s;}
.accordion-trigger:hover{background:var(--paper);}
.accordion-trigger .ph-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex:none;background:var(--paper-2);}
.accordion-trigger .chev{margin-left:auto;transition:transform .2s var(--ease);color:var(--muted);}
.accordion-trigger[aria-expanded="true"] .chev{transform:rotate(180deg);}
.accordion-panel{padding:6px 20px 16px 22px;border-top:1px solid var(--line);}
.accordion-panel[hidden]{display:none;}
.phase-mat .ph-icon{background:#e7f6ee;color:#15803d;}.phase-fab .ph-icon{background:#eef4ff;color:#1d4ed8;}
.phase-use .ph-icon{background:#fff3e6;color:#b45309;}.phase-end .ph-icon{background:#fdeaf1;color:#be123c;}
.cb{display:flex;align-items:center;gap:11px;padding:8px 0;cursor:pointer;font-size:14.5px;}
.cb input{appearance:none;width:21px;height:21px;border:2px solid var(--line-2);border-radius:6px;flex:none;display:grid;place-items:center;transition:.15s;}
.cb input[type=radio]{border-radius:50%;}
.cb input:checked{background:var(--primary);border-color:var(--primary);}
.cb input[type=checkbox]:checked::after{content:"";width:5px;height:10px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translateY(-1px);}
.cb input[type=radio]:checked::after{content:"";width:8px;height:8px;border-radius:50%;background:#fff;}
.cb input:focus-visible{outline:3px solid var(--primary);outline-offset:2px;}
.cb:hover input:not(:checked){background:var(--paper);border-color:var(--line-2);}

/* ---- Domaines ---- */
/* « Tout sélectionner » — commande globale, volontairement distincte des choix de l'arbre */
.select-all-row{display:flex;align-items:center;gap:11px;padding:13px 16px;margin-bottom:14px;border:1.5px dashed var(--line-2);border-radius:var(--r-row);background:var(--paper-2);cursor:pointer;transition:.15s var(--ease);}
.select-all-row:hover{border-color:var(--primary);}
.select-all-row input{width:19px;height:19px;accent-color:var(--primary);flex:none;}
.select-all-row .sa-lab{font-weight:700;font-size:14.5px;white-space:nowrap;}
.select-all-row .sa-note{font-size:12.5px;color:var(--muted);line-height:1.4;}
.select-all-row.is-off{opacity:.45;pointer-events:none;}
.tree-cat{border:1px solid var(--line);border-radius:var(--r-row);margin-bottom:11px;background:var(--surface);box-shadow:var(--shadow-sm);}
.tree-cat-head{display:flex;align-items:center;gap:12px;padding:13px 17px;}
.tree-cat-head .cat-ic{width:32px;height:32px;border-radius:9px;background:var(--paper-2);color:var(--ink-2);display:grid;place-items:center;flex:none;}
.tree-cat-head .cat-ic .ic{width:18px;height:18px;}
.tree-cat-head .cb{flex:1;font-weight:600;}
.custom-dom .cat-ic{background:var(--primary-tint);color:var(--primary-deep);}
.custom-dom .cd-name{flex:1;}
.cd-subs{display:flex;flex-direction:column;gap:9px;margin-bottom:11px;}
.cd-subs:empty{margin-bottom:0;}
/* Domaine personnalisé : espacement régulier et bouton « Ajouter un sous-domaine »
   aligné sur les lignes de saisie (le padding 4px du .tree-children le collait au bord) */
.custom-dom .cd-wrap{display:flex;flex-direction:column;align-items:flex-start;padding:14px 17px 16px;}
.custom-dom .cd-subs{width:100%;}
.tree-toggle{border:0;background:none;color:var(--muted);padding:7px;border-radius:7px;display:grid;place-items:center;transition:.12s;}
.tree-toggle:hover{background:var(--paper-2);color:var(--ink-2);}
.tree-toggle .ic{transition:transform .2s var(--ease);}
.tree-toggle[aria-expanded="true"] .ic{transform:rotate(180deg);}
.tree-children{padding:4px 18px 14px 26px;border-top:1px solid var(--line);}
.tree-children[hidden]{display:none;}

/* ---- Actions déployées ---- */
.act-wrap{transition:.2s;}
.act-wrap.is-disabled{opacity:.5;filter:grayscale(.4);pointer-events:none;}
.too-early{display:flex;align-items:center;gap:11px;padding:14px 16px;border:1px solid var(--line-2);border-radius:var(--r-row);background:var(--paper);margin-bottom:18px;font-size:14px;cursor:pointer;}
.too-early.on{border-color:var(--vigilance);background:#fff8ef;}
.disabled-note{display:none;align-items:center;gap:8px;color:var(--vigilance);font-size:13px;font-weight:500;margin-bottom:16px;}
.disabled-note.show{display:flex;}
.act-acc{border:1px solid var(--line);border-radius:var(--r-row);margin-bottom:12px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm);}
.act-trigger{width:100%;display:flex;align-items:center;gap:13px;border:0;background:var(--surface);padding:16px 18px;font:inherit;font-weight:600;font-size:15px;text-align:left;transition:background .12s;}
.act-trigger:hover{background:var(--paper);}
.act-trigger .ax-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:none;background:var(--ax-soft);color:var(--ax);}
.act-trigger .ax-step{font-size:11px;font-weight:500;color:var(--ax);background:var(--ax-soft);padding:3px 10px;border-radius:999px;margin-left:6px;}
.act-trigger .chev{margin-left:auto;color:var(--muted);transition:transform .2s var(--ease);}
.act-trigger[aria-expanded="true"] .chev{transform:rotate(180deg);}
.act-panel{padding:18px 20px;border-top:1px solid var(--line);}
.act-panel[hidden]{display:none;}
.ro-block{background:var(--paper);border:1px dashed var(--line-2);border-radius:10px;padding:13px 15px;margin-bottom:16px;}
.ro-block .ro-title{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:9px;display:flex;align-items:center;gap:6px;}
.ro-block .ro-title .ic{width:14px;height:14px;}
.ro-chips{display:flex;flex-wrap:wrap;gap:8px;}
.ro-chip{background:var(--surface);border:1px solid var(--line);color:var(--ink-2);font-size:12.5px;font-weight:400;padding:5px 11px;border-radius:999px;}
.act-field{margin-bottom:14px;}
.act-field:last-child{margin-bottom:0;}

/* ---- Modale ---- */
.overlay{position:fixed;inset:0;background:rgba(27,23,20,.5);backdrop-filter:blur(3px);z-index:100;display:none;align-items:center;justify-content:center;padding:20px;}
.overlay.open{display:flex;animation:rise .2s var(--ease);}
.modal{background:var(--surface);border-radius:20px;width:100%;max-width:560px;box-shadow:var(--shadow-pop);padding:30px 32px;border:1px solid var(--line);animation:pop .22s var(--ease);}
@keyframes pop{from{transform:translateY(14px) scale(.97);opacity:0;}to{transform:none;opacity:1;}}
.modal-head{display:flex;align-items:flex-start;margin-bottom:22px;}
.modal-head h2{font-size:22px;letter-spacing:-.01em;flex:1;}
.modal-foot{display:flex;justify-content:flex-end;gap:12px;margin-top:26px;flex-wrap:nowrap;}
.modal-foot .btn{white-space:nowrap;}
.modal-sm{max-width:540px;}
/* Modales de confirmation : les deux boutons se partagent la largeur (50/50) */
.modal-sm .modal-foot .btn{flex:1 1 0;}
.modal-head-danger{align-items:center;gap:13px;margin-bottom:16px;}
.confirm-ic{width:42px;height:42px;border-radius:11px;background:var(--primary-tint);color:var(--primary-deep);display:grid;place-items:center;flex:none;}
.confirm-ic .ic{width:21px;height:21px;}
.confirm-desc{color:var(--ink-2);font-size:14.5px;line-height:1.55;}

/* ---- Footer ---- */
.qfooter{position:sticky;bottom:0;background:rgba(252,250,247,.9);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-top:1px solid var(--line);z-index:30;}
.qfooter-inner{max-width:1280px;margin:0 auto;padding:15px 32px;display:flex;align-items:center;}
.qfooter .legal{font-size:13px;color:var(--muted);}
.qfooter .legal a{color:var(--muted);}
.qfooter .spacer{flex:1;}
.qfooter .acts{display:flex;gap:12px;}

/* ---- Bilan ---- */
.bilan-wrap{max-width:1020px;margin:0 auto;padding:34px 32px 60px;}
.bilan-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px;}
.bilan-doc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-lg);overflow:hidden;animation:rise .4s var(--ease) both;}
.bilan-header{padding:28px 34px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.bilan-header .meta{flex:1;min-width:240px;}
.bilan-header .meta h1{font-size:23px;letter-spacing:-.01em;line-height:1.16;}
.bilan-header .meta .sub{color:var(--muted);font-size:13.5px;margin-top:6px;}
.bilan-header .ver{font-size:12.5px;font-weight:500;background:var(--paper-2);padding:7px 13px;border-radius:9px;color:var(--ink-2);font-variant-numeric:tabular-nums;}
.bilan-section{padding:26px 34px;border-bottom:1px solid var(--line);}
.bilan-section h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:18px;}
.quadrants{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.quad{border:1px solid var(--line);border-radius:var(--r-row);padding:20px 22px;background:var(--surface);}
.quad h3{display:flex;align-items:center;gap:11px;font-size:15px;font-weight:700;margin-bottom:14px;}
.quad h3 .qi{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;}
.quad h3 .qi .ic{width:19px;height:19px;}
.quad ul{margin:0;padding-left:20px;font-size:13.5px;color:var(--ink-2);line-height:1.5;}
.quad li{margin-bottom:8px;}
.quad li.quad-empty{list-style:none;margin-left:-20px;color:var(--muted);font-style:italic;}
.quad-v{border-top:3px solid var(--vertueux);}.quad-v .qi{background:#e7f6ee;color:var(--vertueux);}
.quad-e{border-top:3px solid var(--encourageant);}.quad-e .qi{background:#eef4ff;color:var(--encourageant);}
.quad-w{border-top:3px solid var(--vigilance);}.quad-w .qi{background:#fff3e6;color:var(--vigilance);}
.quad-a{border-top:3px solid var(--arbitrer);}.quad-a .qi{background:#fdeaf1;color:var(--arbitrer);}
.recap-section{margin-bottom:14px;border:1px solid var(--line);border-radius:var(--r-row);padding:18px 20px;background:var(--surface);box-shadow:var(--shadow-sm);}
.recap-section .rh{display:flex;align-items:center;gap:11px;margin-bottom:12px;}
.recap-section .check{width:26px;height:26px;border-radius:50%;background:#e7f6ee;color:var(--vertueux);display:grid;place-items:center;flex:none;}
.recap-section .check .ic{width:15px;height:15px;}
.recap-section h3{font-size:15px;flex:1;font-weight:700;}
.recap-dl{margin:0;display:grid;grid-template-columns:230px 1fr;gap:8px 18px;font-size:13.5px;}
.recap-dl dt{color:var(--muted);}
.recap-dl dd{margin:0;color:var(--ink);}
@media (max-width:620px){.recap-dl{grid-template-columns:1fr;gap:2px 0;}.recap-dl dd{margin-bottom:8px;}}
.live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}

@media (max-width:900px){
  .layout{flex-direction:column;padding:18px;}
  .stepper{width:100%;position:static;}
  .stepper ol{display:flex;gap:6px;overflow-x:auto;}
  .stepper li{padding:8px 10px 8px 42px;min-height:0;white-space:nowrap;}
  .stepper li::before{display:none;}
  .substeps{display:none;}
  .topbar-inner{padding:13px 18px;flex-wrap:wrap;gap:12px;}
  .pinfo{display:none;}
  .page-intro,.projects-wrap,.home-head-wrap,.stat-row{padding-left:18px;padding-right:18px;}
  .grid-2{grid-template-columns:1fr;}
  .quadrants{grid-template-columns:1fr;}
  .card{padding:24px 20px;}
  .search input{width:150px;}
  .bilan-section,.bilan-header{padding:20px;}
}
/* ============================ ADMIN — STATISTIQUES GLOBALES ============================ */
.adminview-tabs{margin-bottom:24px;}
#admin-overview{display:flex;flex-direction:column;gap:18px;}
#admin-overview[hidden]{display:none;}
@keyframes statRise{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

/* KPI strip */
.stat-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.kpi{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:18px 20px 17px;overflow:hidden;animation:statRise .4s var(--ease) both;}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);}
.kpi-top{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.kpi-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);flex:none;}
.kpi-ic .ic{width:19px;height:19px;}
.kpi-cap{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);line-height:1.3;}
.kpi-main{font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1.2;color:var(--ink);}
.kpi-foot{font-size:12.5px;color:var(--muted);margin-top:5px;}

/* Charts grid */
.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-md);padding:22px 24px 24px;min-width:0;animation:statRise .45s var(--ease) both;}
.chart-card.span-2{grid-column:1 / -1;}
.chart-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:22px;}
.ch-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--primary-tint);color:var(--primary);flex:none;}
.ch-ic .ic{width:18px;height:18px;}
.ch-titles{min-width:0;flex:1;}
.chart-title{font-size:15.5px;font-weight:700;letter-spacing:-.01em;line-height:1.25;}
.chart-sub{font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.4;}
.chart-legend{display:flex;gap:16px;flex-wrap:wrap;align-self:center;}
.lg{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-2);font-weight:500;white-space:nowrap;}
.lg .dot{width:11px;height:11px;border-radius:4px;flex:none;}

/* Stacked bars (verdicts par objectif) */
.sb-list{display:flex;flex-direction:column;gap:4px;}
.sb-row{display:grid;grid-template-columns:200px 1fr;align-items:center;gap:18px;padding:6px 0;}
.sb-name{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:500;color:var(--ink-2);min-width:0;}
.sb-name .ic{width:16px;height:16px;color:var(--muted);flex:none;}
.sb-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sb-track{display:flex;height:28px;border-radius:9px;overflow:hidden;background:var(--paper-2);gap:2px;}
.sb-seg{display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;color:#fff;font-variant-numeric:tabular-nums;min-width:0;transition:width .6s var(--ease);}
.sb-seg.tiny{color:transparent;}
.sb-seg:first-child{border-radius:7px 0 0 7px;}
.sb-seg:last-child{border-radius:0 7px 7px 0;}

/* Horizontal bars (priorités, réglementations) */
.hb{display:flex;flex-direction:column;gap:15px;}
.hb-row{display:grid;grid-template-columns:155px 1fr 30px;align-items:center;gap:14px;}
.hb-name{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--ink-2);min-width:0;}
.hb-chip{width:25px;height:25px;border-radius:7px;display:grid;place-items:center;background:var(--c-soft);color:var(--c);flex:none;}
.hb-chip .ic{width:14px;height:14px;}
.hb-name b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hb-track{height:10px;border-radius:999px;background:var(--paper-2);overflow:hidden;}
.hb-fill{height:100%;border-radius:999px;background:var(--c,var(--primary));transition:width .65s var(--ease);}
.hb-val{font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);text-align:right;}

/* Gauges (cycle de vie) */
.gauge-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.gauge{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:4px;}
.gauge-ring{position:relative;width:96px;height:96px;}
.gauge-ring svg{display:block;}
.gauge-c{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;}
.gauge-c small{font-size:12px;font-weight:600;margin-left:1px;}
.gauge-cap{display:flex;flex-direction:column;gap:4px;}
.gauge-name{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:600;color:var(--ink);}
.gauge-name .ic{width:15px;height:15px;color:var(--muted);flex:none;}
.gauge-tag{font-size:11.5px;font-weight:600;}

@media (max-width:900px){
  .stat-kpis{grid-template-columns:1fr 1fr;}
  .charts-grid{grid-template-columns:1fr;}
  .chart-card.span-2{grid-column:auto;}
  .chart-head{flex-wrap:wrap;}
  .chart-legend{margin-left:46px;}
  .sb-row{grid-template-columns:135px 1fr;gap:12px;}
  .hb-row{grid-template-columns:130px 1fr 28px;}
  .gauge-row{grid-template-columns:1fr 1fr;gap:22px;}
}
@media (max-width:520px){
  .stat-kpis{grid-template-columns:1fr;}
  .sb-row{grid-template-columns:1fr;gap:7px;}
  .sb-name{padding-left:2px;}
}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important;}}
@media print{.sidebar,.topbar,.onboard-banner,.qfooter,.stepper,.no-print,.bilan-actions{display:none !important;}body{background:#fff;}.main-content{padding:0 !important;}.bilan-doc{box-shadow:none;border-color:#ccc;}}

/* ============================================================
   SHELL — Sidebar persistante + Topbar + Tableau de bord
   (DA de la nouvelle landing « dashboard » appliquée à toute l'app)
   ============================================================ */
:root{--sidebar-w:262px;--banner-h:48px;--header-h:68px;}

/* ---- Bandeau d'accueil ---- */
.onboard-banner{display:flex;align-items:center;gap:16px;height:var(--banner-h);padding:0 24px;background:linear-gradient(90deg,var(--primary),var(--primary-deep));color:#fff;font-size:13.5px;font-weight:600;}
.ob-msg{display:inline-flex;align-items:center;gap:9px;}
.ob-msg .ic{width:17px;height:17px;}
.ob-cta{background:#fff;color:var(--primary-deep);border:0;border-radius:9px;padding:7px 15px;font:inherit;font-weight:600;font-size:13px;cursor:pointer;transition:.13s;}
.ob-cta:hover{background:rgba(255,255,255,.88);}
.ob-link{background:none;border:0;color:rgba(255,255,255,.92);font:inherit;font-weight:500;font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.45);}
.ob-link:hover{text-decoration-color:#fff;}
.ob-x{margin-left:auto;width:34px;height:34px;border-radius:9px;border:0;background:rgba(255,255,255,.16);color:#fff;display:grid;place-items:center;cursor:pointer;transition:.13s;}
.ob-x:hover{background:rgba(255,255,255,.3);}
.ob-x .ic{width:18px;height:18px;}
body.no-onboard .onboard-banner{display:none;}
@media (max-width:760px){.ob-link{display:none;}}

/* ---- Shell ---- */
.app{display:flex;min-height:100vh;}
.sidebar{width:var(--sidebar-w);flex:none;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;align-self:flex-start;z-index:50;}
body:not(.no-onboard) .sidebar{height:calc(100vh - var(--banner-h));top:0;}
.sb-brand{display:flex;align-items:center;gap:12px;height:var(--header-h);padding:0 22px;border-bottom:1px solid var(--line);}
.sb-brand .cealogo{height:40px;width:auto;display:block;flex:none;}
.sb-brand .bt{display:flex;flex-direction:column;line-height:1.2;}
.sb-brand .bt b{font-size:14.5px;font-weight:700;letter-spacing:-.01em;}
.sb-brand .bt span{font-size:11.5px;color:var(--muted);}
.sb-nav{flex:1;overflow-y:auto;padding:18px 14px;}
.nav-group{margin-bottom:22px;}
.nav-group:last-child{margin-bottom:0;}
.nav-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:0 12px 9px;}
.nav-item{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;color:var(--ink-2);font:inherit;font-weight:500;font-size:14px;text-align:left;padding:10px 12px;border-radius:11px;position:relative;transition:background .13s,color .13s;margin-bottom:2px;cursor:pointer;}
.nav-item .ic{width:18px;height:18px;color:var(--muted);transition:color .13s;flex:none;}
.nav-item:hover{background:var(--paper);color:var(--ink);}
.nav-item:hover .ic{color:var(--ink-2);}
.nav-item .nav-n{margin-left:auto;min-width:20px;height:20px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;border-radius:999px;background:var(--paper-2);color:var(--ink-2);}
.nav-item[aria-current="page"]{background:var(--primary-tint);color:var(--primary-deep);font-weight:600;}
.nav-item[aria-current="page"] .ic{color:var(--primary);}
.nav-item[aria-current="page"]::before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:4px;height:22px;border-radius:0 4px 4px 0;background:var(--primary);}
.nav-item[aria-current="page"] .nav-n{background:var(--primary);color:#fff;}
.nav-item.is-logout{color:var(--primary-deep);}
.nav-item.is-logout .ic{color:var(--primary);}
.nav-item.is-logout:hover{background:var(--primary-tint);}
/* Groupe Administration : visible seulement en mode admin */
.nav-group.admin-only{display:none !important;}
body.is-admin .nav-group.admin-only{display:block !important;}
/* Pied de sidebar : bascule de rôle */
.sb-foot{padding:14px;border-top:1px solid var(--line);}
.role-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:13px 14px;}
.role-card .rc-cap{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:9px;}
.role-toggle{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px;}
.role-toggle button{flex:1;border:0;background:none;font:inherit;font-size:11.5px;font-weight:600;color:var(--muted);padding:7px 6px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.15s;cursor:pointer;}
.role-toggle button .ic{width:14px;height:14px;}
.role-toggle button[aria-pressed="true"]{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm);}
.role-toggle button[aria-pressed="true"] .ic{color:#fff;}
.role-hint{font-size:11px;color:var(--muted);margin-top:9px;line-height:1.4;}

/* ---- Zone principale ---- */
.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.main-content{flex:1;min-width:0;}
.view[hidden]{display:none;}
#view-accueil,#view-admin-list,#view-admin-users,#view-admin-stats{background:transparent;min-height:0;}

/* Topbar (réécrit pour le shell sidebar) — fond pleine largeur, contenu aligné sur les pages */
.topbar{position:sticky;top:0;z-index:40;background:rgba(252,250,247,.85);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid var(--line);}
.topbar-inner{display:flex;align-items:center;gap:16px;min-height:var(--header-h);max-width:1400px;margin:0 auto;padding:0 32px;width:100%;}
.topbar-progress{position:absolute;left:0;right:0;bottom:-1px;height:4px;background:var(--primary-soft);}
.topbar-progress[hidden]{display:none;}
.topbar .titles{display:flex;flex-direction:column;line-height:1.2;}
.topbar .titles .t{font-size:14.5px;font-weight:700;letter-spacing:-.01em;}
.topbar .titles .s{font-size:12px;color:var(--muted);}
.topbar-search{position:relative;flex:1;max-width:380px;margin-left:8px;}
.topbar-search input{width:100%;border:1px solid var(--line-2);border-radius:12px;background:var(--surface);padding:11px 16px 11px 46px;font-size:14px;color:var(--ink);transition:border-color .15s,box-shadow .15s;}
.topbar-search input::placeholder{color:#a79c91;}
.topbar-search input:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring);}
.tb-spacer{flex:1;}
/* Fil d'Ariane — séparateur vertical discret (même style que .tb-sep) + typographie renforcée */
.crumbs-sep{width:1px;height:30px;background:var(--line);flex:none;margin:0 2px;}
.crumbs{display:flex;align-items:center;gap:7px;min-width:0;flex:0 1 auto;overflow:hidden;}
/* Seul le nom de projet (crumb intermédiaire) se tronque ; retour + étape courante restent intacts */
.crumbs > *{flex:none;}
.crumbs .crumb:not(.crumb-cur){flex:0 1 auto;min-width:0;}
.crumb,.crumb-link{font-size:14px;white-space:nowrap;line-height:1.2;}
.crumb{color:var(--ink-2);max-width:240px;overflow:hidden;text-overflow:ellipsis;}
.crumb-cur{color:var(--ink);font-weight:700;}
.crumb-link{background:none;border:0;padding:0;font-family:inherit;font-size:14px;font-weight:500;color:var(--ink-2);cursor:pointer;}
.crumb-link:hover{color:var(--primary-deep);text-decoration:underline;text-underline-offset:3px;}
.crumb-sep{display:inline-flex;color:var(--line-2);}
.crumb-sep .ic{width:14px;height:14px;}
.btn-referent{display:inline-flex;align-items:center;gap:8px;flex:none;white-space:nowrap;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font:inherit;font-weight:600;font-size:13.5px;padding:10px 16px;border-radius:11px;transition:.15s;cursor:pointer;}
.btn-referent .ic{width:17px;height:17px;}
.btn-referent:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-tint);}
.topbar .icon-btn{position:relative;}
.topbar .icon-btn .dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--primary);border:2px solid var(--surface);}
.tb-sep{width:1px;height:30px;background:var(--line);}
.topbar .profile{display:flex;align-items:center;gap:11px;padding-left:0;flex:none;}
.topbar .avatar{width:40px;height:40px;font-size:14px;}

/* ============================ TABLEAU DE BORD ============================ */
.dash{padding:30px 32px 56px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:26px;align-items:start;max-width:1400px;margin:0 auto;}
.col-main{display:flex;flex-direction:column;gap:24px;min-width:0;}
.col-side{display:flex;flex-direction:column;gap:20px;min-width:0;}

/* Hero (carte dégradée) */
.hero-dash{position:relative;overflow:hidden;display:block;border:0;border-radius:22px;padding:34px 38px;color:#fff;margin-bottom:0;background:linear-gradient(125deg,#f5566a 0%,var(--primary) 42%,var(--primary-deep) 100%);box-shadow:0 20px 44px -22px rgba(238,33,56,.7);animation:rise .4s var(--ease) both;}
.hero-dash::before{content:"";position:absolute;inset:0;height:auto;background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);background-size:38px 38px;-webkit-mask-image:radial-gradient(circle at 82% 26%,#000,transparent 78%);mask-image:radial-gradient(circle at 82% 26%,#000,transparent 78%);}
.hero-dash::after{content:"";position:absolute;top:-40%;right:-6%;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 70%);pointer-events:none;}
.hero-kicker{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;opacity:.9;position:relative;z-index:1;}
.hero-dash h1{font-size:clamp(24px,3vw,31px);line-height:1.12;letter-spacing:-.02em;margin-top:14px;max-width:38ch;position:relative;z-index:1;color:#fff;}
.hero-dash p{margin-top:12px;font-size:14.5px;line-height:1.55;opacity:.92;max-width:52ch;position:relative;z-index:1;}
.hero-btn{margin-top:22px;display:inline-flex;align-items:center;gap:9px;background:#fff;color:var(--primary-deep);border:0;border-radius:999px;padding:12px 22px;font:inherit;font-weight:600;font-size:14px;box-shadow:0 10px 24px -12px rgba(27,23,20,.55);transition:transform .15s var(--ease),box-shadow .15s;position:relative;z-index:1;cursor:pointer;}
.hero-btn .ic{width:17px;height:17px;}
.hero-btn:hover{transform:translateY(-1px);box-shadow:0 14px 30px -12px rgba(27,23,20,.5);}

/* En-tête de section */
.sec-head{display:flex;align-items:center;gap:12px;margin-bottom:15px;}
.sec-head h2{font-size:18px;letter-spacing:-.01em;}
.sec-head .spacer{flex:1;}
.sec-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--primary-deep);cursor:pointer;background:none;border:0;font-family:inherit;}
.sec-link .ic{width:15px;height:15px;transition:transform .15s var(--ease);}
.sec-link:hover .ic{transform:translateX(3px);}

/* Cartes projet (reprendre) */
.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:18px 20px 20px;cursor:pointer;display:flex;flex-direction:column;transition:transform .16s var(--ease),box-shadow .16s,border-color .16s;animation:rise .4s var(--ease) both;}
.pcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--line-2);}
.pcard-ref{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-2);background:var(--paper-2);padding:4px 11px;border-radius:999px;}
.pcard-ref .ic{width:13px;height:13px;}
.pcard h3{font-size:15.5px;font-weight:600;letter-spacing:-.01em;line-height:1.3;margin-top:14px;}
.pcard-meta{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin-top:8px;}
.pcard-meta .ic{width:13px;height:13px;}
.pcard-prog{margin-top:auto;padding-top:18px;}
.pcard-prog-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px;}
.pcard-pct{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);}
.pcard-state{font-size:11.5px;font-weight:600;}
.pcard-bar{height:6px;border-radius:6px;background:var(--paper-2);overflow:hidden;}
.pcard-bar i{display:block;height:100%;border-radius:6px;transition:width .6s var(--ease);}

/* Panneau + table d'activité */
.panel-tools{display:flex;align-items:center;gap:14px;padding:16px 22px;border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;}
.panel-tools .segmented{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:4px;gap:3px;}
.panel-tools .seg{display:inline-flex;align-items:center;gap:8px;border:0;background:none;font:inherit;font-weight:600;font-size:13px;color:var(--muted);padding:8px 13px;border-radius:9px;cursor:pointer;transition:.15s;}
.panel-tools .seg .ic{width:15px;height:15px;}
.panel-tools .seg .seg-n{min-width:19px;height:19px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;border-radius:999px;background:var(--paper-2);color:var(--ink-2);border:0;transition:.15s;}
.panel-tools .seg:hover{color:var(--ink);}
.panel-tools .seg[aria-pressed="true"]{background:var(--primary-tint);color:var(--primary-deep);box-shadow:none;}
.panel-tools .seg[aria-pressed="true"] .seg-n{background:var(--primary);color:#fff;}
.panel-search{position:relative;flex:1;min-width:180px;max-width:300px;margin-left:auto;}
.panel-search input{width:100%;border:1px solid var(--line-2);border-radius:12px;background:var(--surface);padding:9px 16px 9px 44px;font-size:13.5px;color:var(--ink);}
.panel-search input:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring);}
.panel-search .ic{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted);pointer-events:none;}
.tbl{width:100%;border-collapse:collapse;}
.tbl th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;padding:12px 22px;border-bottom:1px solid var(--line);background:var(--surface);}
.tbl td{padding:14px 22px;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--ink-2);vertical-align:middle;}
.tbl tr:last-child td{border-bottom:0;}
.tbl tbody tr{transition:background .12s;cursor:pointer;}
.tbl tbody tr:hover{background:#faf7f3;}
.t-proj{display:flex;align-items:center;gap:12px;}
.t-name{font-weight:600;color:var(--ink);font-size:14px;}
.t-ref{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;}
.t-empty{text-align:center;color:var(--muted);font-size:13.5px;padding:30px 22px;}
.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px;white-space:nowrap;}
.status .ic{width:13px;height:13px;}
.st-done{background:#e7f6ee;color:var(--vertueux);}
.st-prog{background:#fff3e6;color:var(--vigilance);}
.st-todo{background:var(--paper-2);color:var(--muted);}
.t-go{display:inline-flex;align-items:center;gap:6px;color:var(--primary-deep);font-weight:600;font-size:13px;}
.t-go .ic{width:15px;height:15px;transition:transform .15s var(--ease);}
.tbl tbody tr:hover .t-go .ic{transform:translateX(3px);}
.cell-r{text-align:right;}

/* Colonne latérale : cartes widgets */
.col-side .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-md);padding:22px;animation:rise .4s var(--ease) both;}
.card-h{display:flex;align-items:center;gap:11px;margin-bottom:14px;}
.card-h h3{font-size:15.5px;}
.card-h .spacer{flex:1;}
.card-h .more{color:var(--muted);display:inline-flex;}
.stat-list{display:flex;flex-direction:column;}
.stat-row{display:flex;align-items:center;gap:13px;padding:12px 0;border-bottom:1px solid var(--line);}
.stat-row:first-child{padding-top:4px;}
.stat-row:last-child{border-bottom:0;padding-bottom:0;}
.stat-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--c-soft);color:var(--c);}
.stat-ic .ic{width:20px;height:20px;}
.stat-tx{display:flex;flex-direction:column;line-height:1.3;}
.stat-tx b{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--ink);}
.stat-tx span{font-size:12px;color:var(--muted);}
.bars{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;height:128px;padding-top:8px;}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;height:100%;justify-content:flex-end;}
.bar-track{width:100%;max-width:30px;flex:1;display:flex;align-items:flex-end;}
.bar-fill{width:100%;border-radius:8px 8px 4px 4px;background:var(--primary-soft);transition:height .6s var(--ease);min-height:6px;}
.bar-col.is-peak .bar-fill{background:linear-gradient(180deg,#f5566a,var(--primary));}
.bar-x{font-size:10.5px;color:var(--muted);font-weight:500;}
.bar-col.is-peak .bar-x{color:var(--primary-deep);font-weight:700;}
.chart-note{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
.chart-note .ic{width:14px;height:14px;color:var(--vertueux);}
.chart-note b{color:var(--vertueux);font-weight:700;}
.mini-list{display:flex;flex-direction:column;}
.mini-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);}
.mini-item:last-child{border-bottom:0;}
.mini-av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:600;flex:none;}
.mini-av.soft{background:var(--c-soft,var(--paper-2));color:var(--c,var(--ink-2));}
.mini-av.red{background:var(--primary);color:#fff;}
.mini-av .ic{width:18px;height:18px;}
.mini-body{flex:1;min-width:0;}
.mini-name{font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mini-sub{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mini-empty{font-size:13px;color:var(--muted);padding:8px 0;}
.mini-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font:inherit;font-size:12px;font-weight:600;padding:6px 12px;border-radius:9px;transition:.13s;flex:none;cursor:pointer;}
.mini-btn .ic{width:13px;height:13px;}
.mini-btn:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-tint);}
.list-foot{width:100%;margin-top:14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--paper);border:1px solid var(--line);color:var(--ink-2);font:inherit;font-size:13px;font-weight:600;padding:11px;border-radius:11px;transition:.13s;cursor:pointer;}
.list-foot .ic{width:15px;height:15px;}
.list-foot:hover{background:var(--primary-tint);border-color:var(--primary-soft);color:var(--primary-deep);}

/* ---- Toast ---- */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;font-size:13.5px;font-weight:500;padding:12px 20px;border-radius:12px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:200;display:flex;align-items:center;gap:9px;}
.toast .ic{width:16px;height:16px;color:#f5566a;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ---- Questionnaire dans le shell : hauteur + stepper ---- */
#view-quest:not([hidden]){display:flex;flex-direction:column;min-height:calc(100vh - 69px);}
.stepper{top:90px;}

/* ============================ RESPONSIVE SHELL ============================ */
@media (max-width:1180px){
  .dash{grid-template-columns:1fr;}
  .col-side{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .col-side .card:first-child{grid-column:1 / -1;}
}
@media (max-width:1024px){
  :root{--sidebar-w:84px;}
  .sb-brand .bt,.nav-label,.nav-item span:not(.nav-n),.sb-foot{display:none;}
  .sb-brand{justify-content:center;padding:18px 0;}
  .nav-item{justify-content:center;padding:12px;}
  .nav-item[aria-current="page"]::before{display:none;}
  .nav-item .nav-n{display:none;}
  .btn-referent span{display:none;}
  .topbar-search{display:none;}
}
@media (max-width:860px){
  .proj-grid{grid-template-columns:1fr;}
  .col-side{grid-template-columns:1fr;}
  .dash{padding:22px 18px 48px;}
  .topbar{padding:12px 18px;gap:10px;}
  .topbar .pinfo{display:none;}
  .panel-search{margin-left:0;max-width:none;}
}

/* ============================================================
   PAGES INTERNES — harmonisation à la DA du dashboard
   En-tête léger unifié + métriques + tables cohérentes
   ============================================================ */
.page{max-width:1400px;margin:0 auto;padding:30px 32px 56px;}

/* ---- En-tête de page (léger, transparent, sur le fond à pois) ---- */
.page-head{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:26px;animation:rise .4s var(--ease) both;}
.ph-text{flex:1;min-width:0;}
.ph-kicker{display:inline-flex;align-items:center;gap:9px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.13em;color:var(--primary);}
.ph-title{font-size:clamp(23px,2.8vw,30px);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin-top:12px;}
.ph-sub{margin-top:10px;color:var(--muted);font-size:14.5px;line-height:1.55;max-width:62ch;}
.ph-actions{flex:none;display:flex;gap:12px;}

/* ---- Bande de métriques (remplace le donut portefeuille) ---- */
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;}
.metric{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:17px 20px;animation:rise .4s var(--ease) both;}
.metric .stat-ic{width:44px;height:44px;}
@media (max-width:760px){.metric-grid{grid-template-columns:1fr;}}

/* ---- Cellules de table additionnelles ---- */
.t-user{display:inline-flex;align-items:center;gap:9px;}
.t-uav{width:28px;height:28px;border-radius:50%;background:var(--paper-2);color:var(--ink-2);display:grid;place-items:center;font-size:10.5px;font-weight:600;flex:none;}
.t-prog{display:flex;align-items:center;gap:11px;min-width:130px;}
.t-prog-bar{flex:1;height:6px;border-radius:6px;background:var(--paper-2);overflow:hidden;}
.t-prog-bar i{display:block;height:100%;border-radius:6px;transition:width .5s var(--ease);}
.t-prog-pct{font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);}
/* Colonne dédiée au menu kebab (Mes projets + Activité récente) */
.col-kebab{width:46px;}
.cell-kebab{width:46px;text-align:center;padding-left:0!important;padding-right:14px!important;}
/* Kebab dans le coin des cartes « Reprendre » du tableau de bord */
.pcard{position:relative;}
.pcard-kebab,.pcard .kebab-btn{position:absolute;top:12px;right:12px;}
.tbl .t-go{background:none;border:0;font:inherit;cursor:pointer;white-space:nowrap;}
.tbl tbody tr:hover .t-go{color:var(--primary);}
/* Pastilles de verdicts dans une table (admin questionnaires) */
.tbl .aq-pills{display:flex;gap:6px;flex-wrap:wrap;}

/* Espace sous une barre d'outils quand aucun segmented (tri seul) */
.panel-tools.tools-end{justify-content:flex-end;}

/* ============================================================
   PARCOURS PAR RÔLE — Monteur (navbar) vs Admin (sidebar)
   ============================================================ */
/* Monteur : pas de sidebar, le bandeau d'accueil reste. Admin : sidebar, pas de bandeau. */
body:not(.is-admin) .sidebar{display:none;}
body.is-admin .onboard-banner{display:none;}
body.is-admin .sidebar{height:100vh;top:0;}

/* Topbar — brand + nav (monteur uniquement) */
.tb-brand{display:flex;align-items:center;gap:12px;flex:none;}
.tb-brand .cealogo{height:38px;width:auto;display:block;flex:none;}
.tb-brand .bt{display:flex;flex-direction:column;line-height:1.2;}
.tb-brand .bt b{font-size:14.5px;font-weight:700;letter-spacing:-.01em;}
.tb-brand .bt span{font-size:11.5px;color:var(--muted);}
.tb-nav{display:flex;align-items:center;gap:4px;margin-left:6px;flex:none;}
.tb-link{border:0;background:none;font:inherit;font-weight:600;font-size:14px;color:var(--ink-2);padding:8px 14px;border-radius:10px;cursor:pointer;transition:background .13s,color .13s;}
.tb-link:hover{background:var(--paper);color:var(--ink);}
.tb-link[aria-current="page"]{background:var(--primary-tint);color:var(--primary-deep);}
body.is-admin .tb-brand,body.is-admin .tb-nav{display:none;}
body.in-project .tb-nav{display:none;}

/* Topbar — recherche + cloche (admin uniquement) */
body:not(.is-admin) .topbar-search,body:not(.is-admin) .tb-bell{display:none;}
body.in-project .topbar-search{display:none;}
.topbar-search{max-width:480px;}
/* Référent (monteur uniquement, icône mail) */
body.is-admin .btn-referent{display:none;}

/* Bascule de rôle (toggle discret dans la navbar, les deux vues) */
.role-switch{display:inline-flex;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px;flex:none;}
.role-switch button{border:0;background:none;font:inherit;font-size:12px;font-weight:600;color:var(--muted);padding:6px 13px;border-radius:7px;cursor:pointer;transition:.13s;}
.role-switch button:hover{color:var(--ink);}
.role-switch button[aria-pressed="true"]{background:var(--surface);color:var(--primary-deep);box-shadow:var(--shadow-sm);}

/* Menu profil (Réglages / Déconnexion) */
.topbar .profile{position:relative;}
.profile-btn{display:flex;align-items:center;gap:11px;background:none;border:0;font:inherit;text-align:left;padding:6px 8px;border-radius:11px;cursor:pointer;transition:background .13s;}
.profile-btn .pinfo{align-items:flex-start;}
.pname,.prole{white-space:nowrap;}
.profile-btn:hover{background:var(--paper);}
.profile-btn .prof-chev{width:16px;height:16px;color:var(--muted);}
.profile-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:212px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:7px;z-index:70;display:flex;flex-direction:column;gap:2px;animation:kebab-in .16s var(--ease);}
.profile-menu[hidden]{display:none;}
.profile-item{display:flex;align-items:center;gap:11px;width:100%;border:0;background:none;font:inherit;font-size:14px;font-weight:500;color:var(--ink);padding:10px 13px;border-radius:9px;text-align:left;cursor:pointer;transition:background .12s,color .12s;}
.profile-item .ic{width:17px;height:17px;color:var(--muted);flex:none;}
.profile-item:hover{background:var(--paper);}
.profile-item.is-logout{color:var(--primary-deep);}
.profile-item.is-logout .ic{color:var(--primary);}
.profile-item.is-logout:hover{background:var(--primary-tint);}

/* Lanceur d'aide flottant (monteur uniquement) — s'agrandit au survol */
.help-fab{position:fixed;right:26px;bottom:26px;z-index:120;display:inline-flex;align-items:center;height:56px;width:56px;padding:0;border:0;border-radius:999px;background:var(--surface);color:var(--primary-deep);box-shadow:var(--shadow-lg);cursor:pointer;overflow:hidden;transition:width .24s var(--ease),padding .24s var(--ease),background .15s,color .15s;}
.help-fab-ic{width:56px;height:56px;display:grid;place-items:center;flex:none;}
.help-fab-ic .ic{width:24px;height:24px;}
.help-fab-label{white-space:nowrap;font-weight:600;font-size:14px;opacity:0;padding-right:6px;transition:opacity .18s;}
.help-fab:hover,.help-fab:focus-visible{width:204px;padding-right:18px;background:var(--primary);color:#fff;}
.help-fab:hover .help-fab-label,.help-fab:focus-visible .help-fab-label{opacity:1;}
body.is-admin .help-fab{display:none;}

/* Page « Mes projets » : hero + titre de section */
.page .hero-dash{margin-bottom:4px;}
.page-h2{font-size:clamp(22px,2.6vw,28px);font-weight:700;letter-spacing:-.02em;margin:30px 0 18px;animation:rise .4s var(--ease) both;}
.panel-tools .btn{flex:none;}

/* Tableau de bord admin : hero pleine largeur, puis liste (gauche) + aside stats (droite) */
.dash-admin{padding:30px 32px 56px;max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:24px;}
.dash-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start;}
.dash-main{min-width:0;display:flex;flex-direction:column;gap:24px;}
.dash-aside{display:flex;flex-direction:column;gap:20px;min-width:0;}
.dash-card{padding:22px;}
/* Pastilles de verdicts : toujours sur une ligne, compactes (colonne étroite) */
.tbl .aq-pills{flex-wrap:nowrap;}
.dash-main .aq-pill,.dash-main .tbl .aq-pill{padding:5px 9px;gap:5px;}
@media (max-width:1100px){.dash-body{grid-template-columns:1fr;}}

/* Module « Santé des verdicts » (donut) */
.donut-wrap{display:flex;align-items:center;gap:22px;}
.donut{position:relative;width:120px;height:120px;flex:none;}
.donut svg{display:block;}
.donut-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;}
.donut-c b{font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;}
.donut-c span{font-size:11px;color:var(--muted);margin-top:3px;}
.donut-legend{display:flex;flex-direction:column;gap:11px;flex:1;min-width:0;}
.dl-row{display:flex;align-items:center;gap:10px;font-size:13px;}
.dl-dot{width:11px;height:11px;border-radius:4px;flex:none;}
.dl-name{flex:1;color:var(--ink-2);}
.dl-val{font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);}
.donut-note{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line-2);font-size:12px;color:var(--muted);line-height:1.5;}

/* Module « Projets à arbitrer » */
.arb-list{display:flex;flex-direction:column;gap:8px;}
.arb-head{font-size:12.5px;color:var(--muted);line-height:1.45;margin-bottom:6px;}
.arb-head b{color:var(--arbitrer);font-weight:700;}
.arb-item{display:flex;align-items:center;gap:12px;width:100%;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 12px;cursor:pointer;text-align:left;transition:border-color .13s,background .13s;}
.arb-item:hover{border-color:var(--primary-soft);background:var(--primary-tint);}
.arb-ic{width:34px;height:34px;border-radius:9px;background:#fdeaf1;color:var(--arbitrer);display:grid;place-items:center;flex:none;}
.arb-ic .ic{width:17px;height:17px;}
.arb-body{flex:1;min-width:0;display:flex;flex-direction:column;}
.arb-name{font-size:13.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.arb-sub{font-size:11.5px;color:var(--muted);}
.arb-n{width:28px;height:28px;border-radius:8px;background:var(--arbitrer);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;flex:none;font-variant-numeric:tabular-nums;}

@media (max-width:1024px){
  .role-switch button{padding:6px 10px;}
  .tb-brand .bt{display:none;}
}

/* ============================================================
   POLISH — corrections de mise en page (desktop + mobile)
   ============================================================ */
/* Tables : défilement horizontal sur petit écran plutôt que contenu clippé */
.table-scroll{width:100%;}
@media (max-width:760px){
  .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .table-scroll .tbl{min-width:600px;}
}

/* Lanceur d'aide : positionné au-dessus du footer du questionnaire */
body.in-project .help-fab{bottom:96px;}

/* Navbar : une seule ligne propre dès la tablette, éléments redondants masqués */
@media (max-width:900px){
  .topbar-inner{flex-wrap:nowrap;gap:10px;}
  .tb-nav,.tb-sep{display:none;}
}
@media (max-width:760px){
  .topbar-inner{padding:10px 16px;gap:8px;}
  .role-switch button{padding:6px 9px;font-size:11.5px;}
  .help-fab{right:16px;bottom:16px;}
  body.in-project .help-fab{bottom:88px;}
  /* Fil d'Ariane compact : uniquement le lien retour, logo + toggle + séparateur masqués en mode projet */
  body.in-project .tb-brand,body.in-project .role-switch,body.in-project .crumbs-sep{display:none !important;}
  .crumbs{min-width:0;}
  body.in-project .crumbs > *:not(:first-child){display:none;}
  .crumb,.crumb-link{max-width:160px;overflow:hidden;text-overflow:ellipsis;}
}

/* ============================================================
   ÉDITEUR DU QUESTIONNAIRE (admin) — 2 panneaux
   ============================================================ */
.qe-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;align-items:start;}
/* Panneau gauche : plan */
.qe-outline{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-md);padding:12px;position:sticky;top:88px;max-height:calc(100vh - 108px);overflow-y:auto;}
.qe-step-block{padding:6px 0;}
.qe-step-block+.qe-step-block{border-top:1px solid var(--line);margin-top:4px;padding-top:10px;}
.qe-step-row{display:flex;align-items:center;gap:10px;padding:6px 8px;}
.qe-step-n{width:22px;height:22px;flex:none;border-radius:50%;background:var(--primary-tint);color:var(--primary-deep);display:grid;place-items:center;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;}
.qe-step-name{flex:1;min-width:0;font-size:13.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.qe-subs{display:flex;flex-direction:column;gap:2px;margin:2px 0 2px 8px;}
.qe-sub-row{display:flex;align-items:center;gap:4px;border-radius:9px;transition:background .12s;}
.qe-sub-row.is-sel{background:var(--primary-tint);}
.qe-sub-pick{flex:1;min-width:0;display:flex;align-items:center;gap:9px;border:0;background:none;font:inherit;text-align:left;padding:8px 10px;border-radius:9px;cursor:pointer;color:var(--ink-2);}
.qe-sub-pick:hover{color:var(--ink);}
.qe-sub-row.is-sel .qe-sub-pick{color:var(--primary-deep);font-weight:600;}
.qe-dot{width:6px;height:6px;border-radius:50%;background:var(--line-2);flex:none;}
.qe-sub-row.is-sel .qe-dot{background:var(--primary);}
.qe-sub-name{min-width:0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.qe-sub-row.is-hidden .qe-sub-name{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line-2);}
.qe-step-block.is-hidden .qe-step-name{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line-2);}
.qe-step-block.is-hidden .qe-step-n{background:var(--paper-2);color:var(--muted);}
.qe-eye{width:32px;height:32px;flex:none;border:0;background:none;border-radius:8px;display:grid;place-items:center;color:var(--muted);cursor:pointer;transition:.12s;}
.qe-eye:hover{background:var(--paper-2);color:var(--ink-2);}
.qe-eye[aria-checked="false"]{color:var(--primary);}
.qe-eye:disabled{opacity:.35;cursor:not-allowed;}
.qe-eye .ic{width:17px;height:17px;}

/* Panneau droit : canevas */
.qe-canvas{min-width:0;display:flex;flex-direction:column;gap:16px;}
.qe-canvas-head{display:flex;align-items:flex-start;gap:14px;}
.qe-canvas-titles{flex:1;min-width:0;}
.qe-canvas-kicker{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px;}
.qe-canvas-head h2{font-size:20px;letter-spacing:-.01em;}
.qe-badge{display:inline-flex;align-items:center;gap:6px;flex:none;font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;}
.qe-badge .ic{width:14px;height:14px;}
.qe-badge.on{background:#e7f6ee;color:var(--vertueux);}
.qe-badge.off{background:var(--paper-2);color:var(--muted);}
.qe-hidden-banner{display:flex;align-items:center;gap:12px;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px;font-size:13.5px;color:var(--ink-2);line-height:1.45;}
.qe-hidden-banner>.ic{width:20px;height:20px;color:var(--muted);flex:none;}
.qe-hidden-banner .btn{margin-left:auto;flex:none;}
.qe-note{display:flex;align-items:flex-start;gap:11px;background:var(--primary-tint);border:1px solid var(--primary-soft);border-radius:var(--r-card);padding:16px 18px;font-size:13.5px;color:var(--ink-2);line-height:1.5;}
.qe-note>.ic{width:18px;height:18px;color:var(--primary-deep);flex:none;margin-top:1px;}

/* Liste d'options éditable */
.qe-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:18px 20px;}
.qe-list-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);}
.qe-count{min-width:22px;height:22px;padding:0 7px;display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;border-radius:999px;background:var(--paper-2);color:var(--ink-2);}
.qe-opts{display:flex;flex-direction:column;gap:9px;margin-bottom:14px;}
.qe-empty{font-size:13px;color:var(--muted);padding:6px 2px;}
.qe-opt{display:flex;align-items:center;gap:10px;}
.qe-opt-moves{display:flex;flex-direction:column;gap:2px;flex:none;}
.qe-mv{width:28px;height:19px;border:1px solid var(--line-2);background:var(--surface);border-radius:6px;display:grid;place-items:center;color:var(--ink-2);cursor:pointer;transition:.12s;}
.qe-mv:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-tint);}
.qe-mv:disabled{opacity:.3;cursor:not-allowed;}
.qe-mv .ic{width:13px;height:13px;}
.qe-opt-input{flex:1;min-width:0;padding:10px 13px;font-size:14px;}
.qe-opt-del{width:38px;height:38px;flex:none;border:1px solid var(--line-2);background:var(--surface);border-radius:9px;display:grid;place-items:center;color:var(--muted);cursor:pointer;transition:.12s;}
.qe-opt-del:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-tint);}
.qe-opt-del .ic{width:16px;height:16px;}
.qe-list .qe-add{margin:0;}

/* Groupe (Éco-conception / Domaines) */
.qe-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:16px 18px;}
.qe-group .qe-list{border:0;box-shadow:none;padding:0;}
.qe-group-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px dashed var(--line);}
.qe-group-ic{color:var(--line-2);display:inline-flex;flex:none;}
.qe-group-ic .ic{width:18px;height:18px;}
.qe-group-input{flex:1;min-width:0;font-weight:600;font-size:14.5px;padding:9px 12px;}

@media (max-width:900px){
  .qe-layout{grid-template-columns:1fr;}
  .qe-outline{position:static;max-height:none;}
}

/* Bandeau d'accueil : masqué en mobile (le lanceur d'aide prend le relais) */
@media (max-width:640px){
  .onboard-banner{display:none;}
  /* Barre d'outils : segmenté pleine largeur (plus de débordement), recherche + bouton empilés */
  .panel-tools{padding:14px 16px;gap:10px;}
  .panel-tools .segmented{display:flex;width:100%;}
  .panel-tools .seg{flex:1;justify-content:center;padding:8px 5px;font-size:12.5px;white-space:nowrap;}
  .panel-tools .seg .ic{display:none;}
  .panel-search{max-width:none;margin-left:0;}
  .panel-tools .btn{width:100%;}
}

/* ===================================================================
   AJOUTS — versioning, notifications, filtres, éditeur, compteurs
   =================================================================== */

/* ---- Sélecteur natif harmonisé ---- */
.ui-select{appearance:none;-webkit-appearance:none;border:1px solid var(--line-2);border-radius:12px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236e645b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;background-size:16px;padding:9px 38px 9px 14px;font:inherit;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer;transition:.13s;flex:none;}
.ui-select:hover{border-color:var(--primary);}
.ui-select:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring);}

/* ---- Badge de version (V1/V2 dans le bilan et l'historique) ---- */
.ver-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em;padding:2px 8px;border-radius:999px;background:var(--primary-tint);color:var(--primary-deep);border:1px solid var(--primary-soft);line-height:1.4;vertical-align:middle;}
.ver-badge-lg{font-size:13px;padding:3px 11px;margin-left:8px;}
/* ---- Pastille « N version(s) » (tables) — point d'entrée vers l'historique / le comparateur ---- */
.ver-pill{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-2);background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:4px 11px;cursor:pointer;white-space:nowrap;transition:.13s;}
.ver-pill .ic{width:13px;height:13px;color:var(--muted);transition:color .13s;}
.ver-pill:hover{border-color:var(--primary);color:var(--primary-deep);background:var(--primary-tint);}
.ver-pill:hover .ic{color:var(--primary);}
.t-name .ver-pill{margin-left:8px;vertical-align:middle;}
.kebab-item.kebab-accent{color:var(--primary-deep);font-weight:600;}
.kebab-item.kebab-accent .ic{color:var(--primary);}
.kebab-item.kebab-accent:hover{background:var(--primary-tint);}

/* ---- Modale historique des versions ---- */
.version-list{display:flex;flex-direction:column;gap:10px;margin:6px 0 4px;}
.version-row{display:flex;align-items:center;gap:14px;padding:13px 15px;border:1px solid var(--line);border-radius:var(--r-row);background:var(--surface);}
.version-row.is-current{border-color:var(--primary-soft);background:var(--primary-tint);}
.version-meta{flex:1;min-width:0;}
.version-tag{font-size:13.5px;font-weight:600;color:var(--ink);}
.version-date{font-size:12.5px;color:var(--muted);}

/* ---- Centre de notifications ---- */
.notif{position:relative;}
.notif-menu{position:absolute;top:calc(100% + 10px);right:0;width:360px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);z-index:70;overflow:hidden;animation:kebab-in .16s var(--ease);}
.notif-menu[hidden]{display:none;}
.notif-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--line);font-weight:700;font-size:15px;color:var(--ink);}
.notif-count{font-size:11.5px;font-weight:700;color:var(--primary-deep);background:var(--primary-tint);border:1px solid var(--primary-soft);padding:2px 9px;border-radius:999px;}
.notif-list{max-height:390px;overflow-y:auto;}
.notif-item{display:flex;gap:12px;padding:13px 18px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s;position:relative;}
.notif-item:last-child{border-bottom:0;}
.notif-item:hover{background:var(--paper);}
.notif-item.is-unread{background:var(--primary-tint);}
.notif-item.is-unread:hover{background:var(--primary-soft);}
.notif-item.is-unread::before{content:"";position:absolute;left:7px;top:50%;transform:translateY(-50%);width:6px;height:6px;border-radius:50%;background:var(--primary);}
.notif-ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--nc) 12%,#fff);color:var(--nc);}
.notif-ic .ic{width:18px;height:18px;}
.notif-body{min-width:0;}
.notif-text{margin:0;font-size:13.5px;line-height:1.45;color:var(--ink-2);}
.notif-text b{color:var(--ink);font-weight:600;}
.notif-target{color:var(--ink);font-weight:500;}
.notif-time{font-size:12px;color:var(--muted);}
.notif-foot{display:block;width:100%;border:0;background:var(--surface);border-top:1px solid var(--line);padding:12px;font:inherit;font-size:13px;font-weight:600;color:var(--primary-deep);cursor:pointer;transition:background .12s;}
.notif-foot:hover{background:var(--primary-tint);}

/* ---- Utilisateurs : rôles & permissions ---- */
.role-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.role-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:20px 22px;}
.role-card.is-admin-role{border-color:var(--primary-soft);}
.role-card-head{display:flex;align-items:center;gap:13px;margin-bottom:16px;}
.role-card-ic{width:44px;height:44px;border-radius:12px;background:var(--paper-2);color:var(--ink-2);display:grid;place-items:center;flex:none;}
.role-card.is-admin-role .role-card-ic{background:var(--primary-tint);color:var(--primary-deep);}
.role-card-ic .ic{width:22px;height:22px;}
.role-card-head h3{font-size:16px;margin:0;}
.role-card-head p{font-size:12.5px;color:var(--muted);margin:2px 0 0;}
.perm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.perm-list li{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink-2);}
.perm-list .ic{width:16px;height:16px;flex:none;}
.perm-yes .ic{color:var(--vertueux);}
.perm-no{color:var(--muted);}
.perm-no .ic{color:var(--primary);}
.role-select-wrap{display:inline-flex;align-items:center;gap:8px;}
.role-select-wrap > .ic{width:15px;height:15px;color:var(--muted);flex:none;}
.role-select-wrap.is-admin-role > .ic{color:var(--primary-deep);}
.role-select{padding:7px 34px 7px 12px;font-size:13px;background-position:right 10px center;}

/* ---- Barre de filtres des statistiques ---- */
.stats-toolbar{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-sm);padding:16px 20px;margin-bottom:22px;}
.stats-filter{display:flex;flex-direction:column;gap:7px;}
.stats-filter > label,.stats-filter-lbl{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);}
.stats-note{display:flex;align-items:center;gap:9px;background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-row);padding:11px 15px;margin-bottom:18px;font-size:13.5px;color:var(--ink-2);}
.stats-note .ic{width:17px;height:17px;color:var(--ink-2);flex:none;}
.stats-note b{color:var(--ink);font-weight:700;}

/* ---- En-têtes de tableau triables ---- */
.th-sort{cursor:pointer;user-select:none;transition:color .12s;white-space:nowrap;}
.th-sort:hover{color:var(--ink);}
.th-sort.is-active{color:var(--primary-deep);}
.th-sort-i{display:inline-block;width:12px;margin-left:4px;font-size:11px;}
.sort-btn.is-active{background:var(--primary-tint);border-color:var(--primary-soft);color:var(--primary-deep);}
.row-actions-aq{justify-content:flex-end;}

/* ---- Éditeur : type de réponse + pastilles de catégorie ---- */
.qe-type{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-row);padding:10px 13px;margin-bottom:12px;}
.qe-type-lbl{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);}
.qe-type-lbl .ic{width:15px;height:15px;}
.qe-type-seg{display:inline-flex;flex-wrap:wrap;gap:5px;}
.qe-type-btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);background:var(--surface);border-radius:9px;padding:7px 12px;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:.12s;}
.qe-type-btn .ic{width:15px;height:15px;color:var(--muted);}
.qe-type-btn:hover{border-color:var(--primary);color:var(--primary-deep);}
.qe-type-btn.is-sel{background:var(--primary);border-color:var(--primary);color:#fff;}
.qe-type-btn.is-sel .ic{color:#fff;}
.qe-cat-hint{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);margin:0 0 12px;}
.qe-cat-hint .ic{width:14px;height:14px;flex:none;}
.qe-cat-dot{width:34px;height:34px;flex:none;border-radius:9px;border:1px dashed var(--line-2);background:var(--surface);display:grid;place-items:center;color:var(--muted);cursor:pointer;transition:.12s;}
.qe-cat-dot .ic{width:16px;height:16px;}
.qe-cat-dot:hover{border-color:var(--primary);color:var(--primary-deep);}
.qe-cat-dot.qe-cat-none{border-style:dashed;}
.qe-cat-dot.aq-v{border-style:solid;background:#e7f6ee;border-color:#bce3cb;color:#15803d;}
.qe-cat-dot.aq-e{border-style:solid;background:#eef4ff;border-color:#cdddff;color:#1d4ed8;}
.qe-cat-dot.aq-w{border-style:solid;background:#fff3e6;border-color:#f1d3a6;color:#c2620a;}
.qe-cat-dot.aq-a{border-style:solid;background:#fdeaf1;border-color:#f6c9d9;color:#be123c;}
.qe-cat-wrap{flex:none;}
.qe-cat-dot[aria-expanded="true"]{border-color:var(--primary);box-shadow:var(--ring);}
/* Menu déroulant des catégories */
.qe-cat-menu{position:fixed;z-index:80;min-width:236px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:7px;display:flex;flex-direction:column;gap:2px;animation:kebab-in .16s var(--ease);}
.qe-cat-menu[hidden]{display:none;}
.qe-cat-opt{display:flex;align-items:center;gap:11px;width:100%;border:0;background:none;font:inherit;font-size:13.5px;font-weight:500;color:var(--ink);padding:8px 10px;border-radius:9px;text-align:left;cursor:pointer;transition:background .12s;}
.qe-cat-opt:hover{background:var(--paper);}
.qe-cat-opt.is-sel{background:var(--paper-2);}
.qe-cat-opt-lbl{flex:1;min-width:0;}
.qe-cat-check{display:inline-flex;color:var(--primary-deep);}
.qe-cat-check .ic{width:16px;height:16px;}
.qe-cat-swatch{width:28px;height:28px;flex:none;border-radius:8px;display:grid;place-items:center;border:1px dashed var(--line-2);background:var(--surface);color:var(--muted);}
.qe-cat-swatch .ic{width:15px;height:15px;}
.qe-cat-swatch.aq-v{border-style:solid;background:#e7f6ee;border-color:#bce3cb;color:#15803d;}
.qe-cat-swatch.aq-e{border-style:solid;background:#eef4ff;border-color:#cdddff;color:#1d4ed8;}
.qe-cat-swatch.aq-w{border-style:solid;background:#fff3e6;border-color:#f1d3a6;color:#c2620a;}
.qe-cat-swatch.aq-a{border-style:solid;background:#fdeaf1;border-color:#f6c9d9;color:#be123c;}

/* ---- Nouvelle question (aperçu par type) ---- */
.nq-type-lbl{display:block;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:12px 0 6px;}
.nq-btns{display:flex;gap:8px;flex-wrap:wrap;}
.nq-opt-btn{border:1px solid var(--line-2);background:var(--surface);border-radius:10px;padding:9px 15px;font:inherit;font-size:13.5px;font-weight:500;color:var(--ink-2);cursor:pointer;}
.nq-dd{display:flex;flex-direction:column;gap:6px;}
.nq-dd-row{display:flex;align-items:center;gap:9px;border:1px solid var(--line-2);background:var(--surface);border-radius:9px;padding:9px 12px;font-size:13.5px;color:var(--ink-2);}
.nq-dd-row .ic{width:15px;height:15px;color:var(--muted);}

/* ---- Compteurs de ressources (alignement) ---- */
.res-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.res-field{display:flex;flex-direction:column;gap:8px;}
.res-label{display:inline-flex;align-items:center;gap:8px;margin:0;min-height:20px;}
.res-label > .ic{width:16px;height:16px;color:var(--muted);flex:none;}
.res-unit{font-weight:400;color:var(--muted);font-size:12.5px;}
.res-field .counter{align-self:flex-start;}
@media (max-width:640px){ .res-grid{grid-template-columns:1fr;} }

/* ---- Modale d'avertissement (peu de sélections) ---- */
.modal-head-warn{align-items:center;gap:13px;margin-bottom:16px;}
.confirm-ic-warn{background:#fff3e6;color:var(--vigilance);}

@media (max-width:720px){
  .role-cards{grid-template-columns:1fr;}
  .notif-menu{width:320px;}
}

/* ===================================================================
   AJOUTS — pagination, aperçu monteur, comparateur de versions, charts
   =================================================================== */

/* ---- Pagination (listes admin — décorative dans ce prototype) ---- */
.pager{display:flex;align-items:center;gap:14px;padding:13px 22px;border-top:1px solid var(--line);background:var(--surface);flex-wrap:wrap;}
.pager:empty{display:none;}
.pager-info{font-size:12.5px;color:var(--muted);}
.pager-info b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;}
.pager-ctrl{display:flex;align-items:center;gap:5px;margin-left:auto;}
.pager-btn{min-width:34px;height:34px;padding:0 8px;border:1px solid var(--line-2);background:var(--surface);border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font:inherit;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-2);cursor:pointer;transition:.13s;}
.pager-btn .ic{width:15px;height:15px;}
.pager-btn:hover:not(:disabled):not(.is-current){border-color:var(--primary);color:var(--primary-deep);background:var(--primary-tint);}
.pager-btn.is-current{background:var(--primary);border-color:var(--primary);color:#fff;cursor:default;}
.pager-btn:disabled{opacity:.4;cursor:not-allowed;}
.pager-gap{color:var(--muted);padding:0 3px;font-weight:600;}

/* ---- Bannière d'aperçu monteur (état temporaire de l'éditeur) ---- */
.preview-banner{position:sticky;top:69px;z-index:31;display:flex;align-items:center;gap:14px;background:var(--ink);color:#fff;padding:11px 32px;font-size:13.5px;font-weight:600;}
.preview-banner .pb-msg{display:inline-flex;align-items:center;gap:10px;min-width:0;}
.preview-banner .pb-msg .ic{width:17px;height:17px;flex:none;}
.preview-banner .pb-quit{margin-left:auto;display:inline-flex;align-items:center;gap:7px;background:#fff;color:var(--ink);border:0;border-radius:9px;padding:8px 15px;font:inherit;font-weight:600;font-size:12.5px;cursor:pointer;flex:none;transition:.13s;}
.preview-banner .pb-quit .ic{width:15px;height:15px;}
.preview-banner .pb-quit:hover{background:var(--paper-2);}

/* ---- Comparateur de versions (diff côte à côte, style GitHub) ---- */
.modal-diff{max-width:880px;}
.diff-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:16px 0 10px;}
.diff-list{display:flex;flex-direction:column;gap:16px;max-height:min(54vh,480px);overflow-y:auto;padding-right:6px;}
.diff-name{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:7px;}
.diff-sec{flex:none;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;background:var(--paper-2);padding:2px 9px;border-radius:6px;}
.diff-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.diff-cell{border-radius:10px;padding:10px 14px;font-size:13.5px;line-height:1.5;border:1px solid;}
.diff-old{background:#fdecef;border-color:#f6c2cb;color:#9f1239;}
.diff-old .diff-txt{text-decoration:line-through;text-decoration-color:rgba(159,18,57,.4);}
.diff-new{background:#e9f9f0;border-color:#b4e6c8;color:#166534;font-weight:500;}
.diff-empty{background:var(--paper);border:1px dashed var(--line-2);color:var(--muted);font-style:italic;}
.diff-count{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--primary-deep);background:var(--primary-tint);border:1px solid var(--primary-soft);padding:3px 11px;border-radius:999px;margin-left:10px;vertical-align:middle;}
@media (max-width:640px){.diff-row,.diff-cols{grid-template-columns:1fr;}.diff-cols span:last-child{display:none;}}

/* ---- Bilan : synthèse au visuel du formulaire (lecture seule) ----
   Les commandes d'édition (+/-, ajouter, réordonner, glisser) sont retirées
   au rendu ; les cartes prennent un fond légèrement teinté pour marquer
   l'état figé. */
.bilan-form{display:flex;flex-direction:column;gap:16px;}
.bilan-form .recap-step-title{margin:14px 0 0;}
.bilan-form .recap-step-title:first-child{margin-top:0;}
.bilan-form .card{animation:none;box-shadow:var(--shadow-sm);background:#faf8f4;}
.bilan-form .choice,.bilan-form .cb,.bilan-form .too-early,.bilan-form .toggle,.bilan-form .accordion-trigger,.bilan-form .act-trigger{cursor:default;}
.bilan-form .choice{animation:none;}
.bilan-form a,.bilan-form .qmark-plain{pointer-events:none;}
/* Bandeau lecture seule en tête de synthèse */
.bf-empty{color:var(--muted);font-style:italic;font-size:13.5px;margin-top:6px;}
.recap-step-title .rs-edit{margin-left:auto;text-transform:none;letter-spacing:0;}
.bf-banner{display:flex;align-items:center;gap:11px;background:var(--paper-2);border:1px solid var(--line-2);border-radius:var(--r-row);padding:12px 16px;font-size:13.5px;color:var(--ink-2);line-height:1.5;}
.bf-banner .ic{width:17px;height:17px;color:var(--muted);flex:none;}
.bf-banner strong{color:var(--ink);}
/* Valeur statique remplaçant le compteur +/- */
.bf-val{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;min-width:48px;background:var(--paper-2);border:1px solid var(--line);border-radius:9px;padding:9px 15px;font-size:14.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);}
/* Les valeurs saisies gardent leur lisibilité malgré le disabled
   (champs texte uniquement : ne pas écraser le fond des cases cochées) */
.bilan-form .input:disabled,.bilan-form .textarea:disabled,.bilan-form select.input:disabled{opacity:1;color:var(--ink-2);-webkit-text-fill-color:var(--ink-2);background:var(--surface);}
.bilan-form .counter-input:disabled{opacity:1;color:var(--ink);-webkit-text-fill-color:var(--ink);background:var(--surface);}

/* ---- Statistiques : graphiques SVG additionnels (radar, courbes, colonnes) ---- */
.chartsvg{display:block;width:100%;height:auto;}
.radar-wrap{display:flex;justify-content:center;}
.radar-wrap svg{width:100%;max-width:440px;height:auto;}

/* ---- Saisie libre validée (Entrée ou bouton) → option cochée ---- */
.repeat-row .repeat-ok{flex:none;}
.choice-custom .icon-sm,.cb-custom .icon-sm{width:34px;height:34px;}
.cb-custom .cb-lab{flex:1;}

/* ---- Domaines d'application : cas spéciaux « multiples marchés » / « Non connus » ---- */
.tree-cat-head .info-badge{white-space:normal;line-height:1.35;text-align:right;}
.tree-cat-head .cb .qmark-plain{margin-left:2px;}
.tree-cat.is-off,#custom-domains.is-off,.btn-add.is-off{opacity:.45;pointer-events:none;filter:grayscale(.4);}
