/* Outils interactifs — styles complémentaires à la feuille du site (variables .ac) */
.ac .tool{border:1px solid var(--rule);border-radius:var(--radius);padding:22px 24px;background:var(--paper);margin:18px 0}
.ac .tool-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.ac .tool-head .kicker{margin:0}
.ac .tool-back{appearance:none;background:none;border:0;padding:0;font:inherit;font-size:13.5px;color:var(--blue);cursor:pointer;text-decoration:underline}
.ac .tool-q{font-size:21px;line-height:1.3;margin:6px 0 10px}
.ac .tool-options{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.ac .tool-opt{appearance:none;text-align:left;font:inherit;font-size:15px;line-height:1.4;padding:12px 16px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper-2);color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s}
.ac .tool-opt:hover,.ac .tool-opt:focus-visible{border-color:var(--blue);background:var(--tint);outline:none}
.ac .tool-result h3{font-size:22px;margin:4px 0 10px}
.ac .tool-result ul{padding-left:20px}
.ac .tool-result li{margin-bottom:6px}
.ac .tool-search{display:flex;gap:8px;align-items:stretch;margin:6px 0 4px}
.ac .tool-search input{flex:1;min-width:0;font:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--ink-3);border-radius:var(--radius);background:var(--paper);color:var(--ink)}
.ac .tool-search input:focus{outline:2px solid var(--blue);outline-offset:1px}
.ac .tool-search .btn{white-space:nowrap}
.ac .tool-profiles{border:0;padding:0;margin:0 0 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px 18px}
.ac .tool-profiles legend{font-size:12.5px;font-weight:600;color:var(--ink-2);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}
.ac .tool-profiles label{display:flex;gap:8px;align-items:flex-start;font-size:14.5px;line-height:1.35;cursor:pointer}
.ac .tool-profiles input{margin-top:3px;flex:0 0 auto}
.ac .tool-progress{display:flex;align-items:center;gap:12px;margin:10px 0 16px;font-size:13.5px;color:var(--ink-2)}
.ac .tool-progress .bar{flex:1;height:8px;background:var(--rule);border-radius:999px;overflow:hidden}
.ac .tool-progress .bar b{display:block;height:100%;width:0;background:var(--blue);transition:width .2s}
.ac .tool-checklist{list-style:none;padding:0;margin:0;counter-reset:chk}
.ac .tool-checklist li{border-top:1px solid var(--rule);padding:12px 0}
.ac .tool-checklist label{display:flex;gap:10px;align-items:flex-start;font-size:15.5px;cursor:pointer}
.ac .tool-checklist label input{margin-top:4px;flex:0 0 auto;width:18px;height:18px}
.ac .tool-checklist li p{margin:6px 0 0 28px;color:var(--ink-2)}
.ac .tool-checklist input:checked+b{color:var(--ink-3);text-decoration:line-through}
.ac .tool-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 18px}
.ac .tool-form .f{display:flex;flex-direction:column;gap:4px}
.ac .tool-form .f.wide{grid-column:1/-1}
.ac .tool-form label{font-size:13.5px;color:var(--ink-2)}
.ac .tool-form input[type=number],.ac .tool-form select{font:inherit;font-size:15px;padding:9px 11px;border:1px solid var(--ink-3);border-radius:var(--radius);background:var(--paper);color:var(--ink);width:100%}
.ac .tool-form .opts{display:flex;flex-wrap:wrap;gap:8px 22px}
.ac .tool-form .opts label{display:flex;gap:6px;align-items:center;font-size:14px;color:var(--ink)}
.ac .ns-badge{display:flex;align-items:center;gap:16px;margin:8px 0 14px;font-size:16px}
.ac .ns-letter{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:12px;font-size:36px;font-weight:800;color:#fff;letter-spacing:0}
.ac .ns-A{background:#038141}.ac .ns-B{background:#85bb2f}.ac .ns-C{background:#fecb02;color:#1d1d1b}.ac .ns-D{background:#ee8100}.ac .ns-E{background:#e63e11}
.ac table.ns-detail{font-size:14px;max-width:520px}
.ac table.ns-detail td:last-child,.ac table.ns-detail th:last-child{text-align:right;font-variant-numeric:tabular-nums}
.ac .hbar{display:grid;grid-template-columns:minmax(0,1fr) 60px;gap:4px 12px;align-items:center;font-size:14px}
.ac .hbar .lbl{display:flex;align-items:center;gap:10px}
.ac .hbar .lbl span{flex:0 0 auto;min-width:0}
.ac .hbar .lbl b{display:block;height:10px;background:var(--blue);border-radius:2px;opacity:.85}
.ac .hbar .n{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-2)}
@media (max-width:640px){.ac .tool{padding:16px}.ac .tool-search{flex-direction:column}.ac .tool-q{font-size:19px}}
@media print{.ac .tool-profiles,.ac .tool-progress,.ac .tool .btn-row,.ac .tool-back{display:none!important}.ac .tool{border:0;padding:0}.ac .tool-checklist label input{width:14px;height:14px}}

/* ---- Mode liste et compte rendu imprimable (brique commune aux outils) ---- */
.ac .tool-modes{display:flex;gap:8px;flex-wrap:wrap}
.ac .tool-liste label{display:block;font-weight:600;font-size:14px;margin-bottom:6px;color:var(--ink-2)}
.ac .tool-liste textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;line-height:1.5;padding:12px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper);color:var(--ink);resize:vertical}
.ac .tool-liste textarea:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.ac .tool-rapport{border:1px solid var(--rule);border-radius:var(--radius);padding:20px 22px;background:var(--paper)}
.ac .tool-rapport h3{margin:0 0 4px;font-size:19px}
.ac .tool-rapport .dateline{margin:0 0 14px}
.ac table.rapport{width:100%;border-collapse:collapse;font-size:14px}
.ac table.rapport th{text-align:left;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--rule);padding:6px 10px 6px 0}
.ac table.rapport td{padding:8px 10px 8px 0;border-bottom:1px solid var(--rule-2);vertical-align:top}
.ac table.rapport code{font-size:13px;background:var(--paper-2);padding:1px 5px;border-radius:3px}

@media print{
  /* Le compte rendu est la seule chose qui doit sortir sur le papier. */
  .ac .tool-modes,.ac .tool-liste,.ac .no-print,.ac .tool-search{display:none!important}
  .ac .tool-rapport{border:0;padding:0}
  .ac .tool-rapport h3{font-size:17px}
  .ac table.rapport{font-size:11px}
  .ac table.rapport tr{break-inside:avoid}
  .ac .tag{border:1px solid currentColor;background:none!important}
}
/* ---- Vignette partageable ---- */
.ac .tool-result canvas.vignette{display:block;width:100%;max-width:560px;height:auto;border:1px solid var(--rule);border-radius:var(--radius);margin:6px 0 0}
.ac .tool-result h4{font-size:15px;margin:22px 0 8px;color:var(--ink-2)}
@media print{.ac .tool-result canvas.vignette{max-width:300px;border-color:#999}}
/* ---- En-tete d'artefact : visible seulement sur le papier ---- */
.ac .print-only{display:none}
.ac .tool-entete h3{margin:0 0 4px;font-size:17px}
.ac .tool-entete .dateline{margin:0 0 14px}
@media print{
  .ac .print-only{display:block!important}
  .ac .tool-label select,.ac .tool-label input[type=text]{display:none}
  .ac .tool-entete{border-bottom:1px solid #999;padding-bottom:10px;margin-bottom:14px}
}
/* ---- Onglets de categorie et aides contextuelles ---- */
.ac .seg{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--blue);border-radius:var(--radius);overflow:hidden}
.ac .seg-b{flex:1 1 auto;min-width:120px;padding:10px 14px;font:inherit;font-size:14px;font-weight:600;border:0;border-right:1px solid var(--blue);background:var(--paper);color:var(--blue);cursor:pointer;line-height:1.3}
.ac .seg-b:last-child{border-right:0}
.ac .seg-b:hover{background:var(--blue-soft)}
.ac .seg-b.on{background:var(--blue);color:#fff}
.ac .seg-b:focus-visible{outline:2px solid var(--red);outline-offset:-2px}
.ac .tool-form .f .aide{margin:5px 0 0;font-size:12.5px;line-height:1.45;color:var(--ink-3)}
@media (max-width:640px){.ac .seg{flex-direction:column}.ac .seg-b{border-right:0;border-bottom:1px solid var(--blue)}.ac .seg-b:last-child{border-bottom:0}}
/* ---- Echelle Nutri-Score A-E (charte graphique Sante publique France) ---- */
.ac .ns-scale{text-align:center;margin:18px 0 10px}
.ac .ns-title{margin:0 0 8px;font-size:21px;font-weight:700;letter-spacing:.01em;color:#8A8A8A}
.ac .ns-row{display:inline-flex;align-items:center;line-height:1}
.ac .ns-c{position:relative;display:flex;align-items:center;justify-content:center;width:46px;height:62px;font-size:30px;font-weight:700;color:rgba(255,255,255,.45)}
.ac .ns-c:first-child{border-radius:10px 2px 2px 10px}
.ac .ns-c:last-child{border-radius:2px 10px 10px 2px}
.ac .ns-A{background:#038141}.ac .ns-B{background:#85BB2F}.ac .ns-C{background:#FECB02}.ac .ns-D{background:#EE8100}.ac .ns-E{background:#E63E11}
.ac .ns-c.on{width:62px;height:82px;font-size:42px;color:#fff;border-radius:18px;box-shadow:0 0 0 5px #fff;z-index:2}
.ac .ns-final{margin:14px 0 0;font-size:19px;font-weight:700;color:var(--ink)}
@media print{.ac .ns-c{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* ---- Avertissement de portee, dans le resultat ---- */
.ac .tool-avis{margin:12px 0 16px;padding:12px 14px;border-left:4px solid var(--warn);background:var(--paper-2);font-size:14px;line-height:1.55;color:var(--ink-2)}
.ac .tool-avis strong{color:var(--warn)}
/* ---- Fiche de decision des assistants ---- */
.ac .tool-fiche{margin-top:26px;padding-top:22px;border-top:1px solid var(--rule)}
.ac .tool-fiche h4{margin:0 0 10px;font-size:15px;color:var(--ink-2)}
@media print{
	.ac .tool-fiche{margin:0;padding:0;border:0}
	.ac .tool-head{display:none}
	.ac .tool-fiche table.rapport{font-size:11px}
	.ac .tool-fiche table.rapport tr{break-inside:avoid}
	.ac .tool-avis{border-left:4px solid #999;background:none;page-break-inside:avoid}
}