.main-tabs{display:flex;gap:8px;border-bottom:1px solid var(--rule);margin-bottom:26px;overflow:auto}.main-tabs button{white-space:nowrap;background:transparent;border:0;border-bottom:3px solid transparent;padding:15px 20px;color:var(--muted);font-weight:650}.main-tabs button.selected{border-color:var(--steel);color:var(--steel);background:var(--blue-wash)}.section-intro{color:var(--muted);font-size:.88rem;padding:0 24px}.source-card{position:relative;min-height:195px}.import-big{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;background:var(--steel);color:white;border-radius:5px;font-weight:650;cursor:pointer;margin-top:18px}.import-big:hover{background:var(--steel-hover)}.import-big:focus-within{outline:3px solid #267db9;outline-offset:3px}.import-settings,.run-settings,.compare-controls{display:flex;gap:20px;align-items:flex-end;flex-wrap:wrap;padding:22px 24px;background:#fafbfd;border-top:1px solid var(--soft)}.import-settings label,.run-settings label,.compare-controls label{display:flex;flex-direction:column;gap:7px;font-size:.85rem;font-weight:600;flex:1;min-width:200px}.import-settings small,.run-settings small{font-weight:400;color:var(--muted);max-width:520px}.run-settings input,.run-settings select,.import-settings input,.import-settings select,.compare-controls input,.compare-controls select{padding:9px;border:1px solid var(--rule);border-radius:4px;background:white;min-height:42px;width:100%}.help{display:inline-flex;align-items:center;justify-content:center;position:relative;width:20px;height:20px;font-size:12px;border:1px solid var(--muted);border-radius:50%;color:var(--steel);cursor:help}.help:hover::after,.help:focus::after{content:attr(data-tip);position:absolute;z-index:10;bottom:28px;left:-15px;width:260px;background:#142d40;color:white;font-weight:400;padding:12px;border-radius:5px;font-size:13px;line-height:1.5;box-shadow:0 4px 12px #0003}.timeline{display:grid;gap:12px;padding:22px 24px}.trend-row{display:grid;grid-template-columns:180px 1fr 100px;align-items:center;gap:12px;font-size:.8rem}.trend-track{display:flex;height:20px;background:var(--soft);border-radius:3px;overflow:hidden}.trend-change{background:#315f7d}.trend-add{background:#549681}.trend-absent{background:#b17e3e}.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.8rem;margin:16px 24px}.legend i{width:10px;height:10px;display:inline-block;margin-right:5px}.history-card{background:white;border:1px solid var(--rule);border-radius:7px;margin-bottom:20px;overflow:hidden}.history-card h3{margin:20px 24px 8px}.history-card p.explain{margin:8px 24px 20px;color:var(--muted);font-size:.85rem}.history-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.history-kpis article{background:white;border:1px solid var(--rule);border-radius:5px;padding:18px}.history-kpis strong{font-size:1.9rem;display:block;color:var(--steel)}.history-kpis span{font-size:.8rem;color:var(--muted)}.history-warning{background:var(--amber-bg);border-left:3px solid var(--amber);padding:14px 18px;margin:16px 0;font-size:.86rem}.diff-values{white-space:normal;min-width:240px;line-height:1.65}.diff-values del{color:var(--red);text-decoration:none}.diff-values ins{color:var(--green);text-decoration:none;font-weight:600}.history-table td{vertical-align:top}.history-table .text-button{font-size:.8rem}.history-table th{white-space:nowrap}.history-card details{padding:18px 24px}.history-card summary{cursor:pointer;font-weight:600}.history-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin:18px 0}.history-toolbar input,.history-toolbar select{padding:9px;border:1px solid var(--rule);border-radius:4px}.muted{color:var(--muted)}#account{font-size:.75rem;max-width:240px;overflow-wrap:anywhere}#metrics{margin-top:20px}.history-empty{padding:35px;text-align:center}.danger-text{color:var(--red)}.saved-label{color:var(--green)}.source-card .file-name{overflow-wrap:anywhere}.source-grid{align-items:stretch}.source-label{min-height:40px}button[aria-busy=true]{cursor:wait}.history-scroll{max-height:450px;overflow:auto}.events-pagination{display:flex;justify-content:space-between;padding:14px;align-items:center}.events-pagination button{padding:7px 16px;margin-left:6px;background:white;border:1px solid var(--rule)}.file-label{cursor:pointer}
@media(max-width:850px){.history-kpis{grid-template-columns:repeat(2,1fr)}.source-grid{grid-template-columns:1fr}.trend-row{grid-template-columns:110px 1fr 70px}.header-right{gap:12px;flex-wrap:wrap}.import-settings,.run-settings{padding:18px}.run-settings button{width:100%}.main-tabs button{padding:12px;font-size:.85rem}}
@media print{.main-tabs,.title-actions,.help,#message,#account{display:none!important}[data-section=home],[data-section=history]{display:none!important}[data-section=results]{display:block!important}.metrics{break-inside:avoid}.table-wrap{overflow:visible!important}}
.trend-identical{background:#549681}
.drop-zone{border:2px dashed transparent;transition:border-color .15s,background .15s,box-shadow .15s}.source-card.drop-zone{border-color:var(--rule)}.drop-instruction{margin:20px 0 2px;color:var(--steel);font-weight:700}.drop-zone.drag-over{border-color:#267db9;background:#e6f3fc;box-shadow:0 0 0 4px #267db926}.history-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:120px;margin:0 0 22px;padding:24px;border-color:var(--rule);border-radius:7px;background:white;color:var(--steel);cursor:pointer;text-align:center}.history-drop strong{font-size:1.05rem}.history-drop span{color:var(--muted);font-size:.88rem}.history-drop:hover{border-color:var(--steel);background:var(--blue-wash)}
/* Suivi du portail — sélecteur de méthode et vue « Images des besoins par jour » */
.needs-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;padding:22px 24px;align-items:center;border-top:1px solid var(--soft)}.needs-hero .eyebrow{margin-bottom:.35rem}.needs-hero strong{display:block;font-size:clamp(2.4rem,5vw,3.6rem);letter-spacing:-.04em;line-height:1;color:var(--steel);font-variant-numeric:tabular-nums}.needs-hero p{margin:.6rem 0 0;color:var(--muted);font-size:.88rem;max-width:520px}.needs-hero dl{display:grid;gap:10px;margin:0}.needs-hero dl div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--soft);padding-bottom:8px;font-size:.85rem}.needs-hero dt{color:var(--muted)}.needs-hero dd{margin:0;font-weight:650;font-variant-numeric:tabular-nums}
.needs-chart{margin:0 24px 8px}.needs-chart svg{width:100%;height:auto;display:block}.needs-chart .grid{stroke:var(--soft);stroke-width:1}.needs-chart .axis{font-size:11px;fill:var(--muted)}.needs-chart .axis.muted{fill:#8a98a3}.needs-chart .value{font-size:11px;fill:var(--ink);font-weight:600}.needs-chart .value.dense{font-size:9px}.needs-chart .series-main{fill:none;stroke:var(--steel);stroke-width:2;stroke-linejoin:round}.needs-chart .series-ma{fill:none;stroke:#8a98a3;stroke-width:2;stroke-dasharray:6 5}.needs-chart .dot circle{fill:var(--steel);stroke:white;stroke-width:2;cursor:default}.needs-chart .dot:hover circle{r:7}
.swatch-main,.swatch-ma,.swatch-frozen,.swatch-backlog,.swatch-ref,.swatch-future{width:12px;height:12px;display:inline-block;margin-right:6px;vertical-align:-1px;border-radius:2px}.swatch-main{background:var(--steel)}.swatch-ma{background:repeating-linear-gradient(90deg,#8a98a3 0 4px,transparent 4px 7px);height:3px;vertical-align:3px}.swatch-frozen{background:rgba(32,69,95,.14)}.swatch-hot{background:rgba(32,69,95,.8)}.swatch-backlog{background:var(--amber-bg);border-left:3px solid var(--amber)}.swatch-ref{background:white;outline:2px solid var(--steel);outline-offset:-2px}.swatch-future{background:#fff;border:1px solid var(--rule)}
.inline-check{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-weight:400}.inline-check select{padding:6px 8px;border:1px solid var(--rule);border-radius:4px;background:white}
.needs-table th.number,.needs-table td.number{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.needs-table td small{color:var(--muted)}.needs-table .count{background:var(--soft);border-radius:10px;padding:1px 8px;font-size:.75rem;margin-left:6px}
.zone-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 24px}.zone-tile{border:1px solid var(--rule);border-radius:5px;padding:14px 16px;display:grid;gap:4px;background:white}.zone-tile .zone-name{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.zone-tile strong{font-size:1.7rem;color:var(--steel);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.zone-tile span{font-size:.8rem;color:var(--muted)}.zone-tile small{font-size:.72rem;color:var(--muted);line-height:1.45}.zone-frozen{border-color:var(--steel);box-shadow:inset 3px 0 0 var(--steel)}.zone-backlog{box-shadow:inset 3px 0 0 var(--amber)}.zone-elapsed{box-shadow:inset 3px 0 0 #8a98a3}
.bar-cell{min-width:150px;position:relative}.bar-cell .bar{position:absolute;left:8px;top:8px;bottom:8px;background:rgba(32,69,95,.16);border-radius:3px;max-width:calc(100% - 70px)}.bar-cell b{position:relative;font-variant-numeric:tabular-nums}
.day-detail td{background:#fafbfd;border-bottom:2px solid var(--soft)}.day-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;padding:6px 4px}.day-detail-grid h4{margin:0 0 8px;font-size:.85rem}.day-detail-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:.82rem}.day-detail-grid li{border-left:2px solid var(--rule);padding-left:10px}.day-detail-grid .diff-values{min-width:0;font-size:.8rem}
.grid-scroll{max-height:560px}.needs-grid{border-collapse:separate;border-spacing:0;font-size:.8rem;min-width:100%}.needs-grid th,.needs-grid td{padding:0;border-bottom:1px solid var(--soft);text-align:center}.needs-grid thead th{position:sticky;top:0;background:white;z-index:2;padding:10px 8px;border-bottom:1px solid var(--rule)}.needs-grid tbody th{position:sticky;left:0;background:white;z-index:1;text-align:left;padding:0 12px;font-family:var(--mono);font-weight:500;white-space:nowrap;border-right:1px solid var(--rule)}.needs-grid .entry{color:var(--muted);font-family:var(--mono);padding:0 8px;white-space:nowrap}.needs-grid td button{width:100%;min-width:58px;min-height:40px;border:0;background:rgba(32,69,95,var(--a,0));color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;line-height:1.1}.needs-grid td button small{font-size:.65rem;color:var(--muted)}.needs-grid .cell-dark button{color:white}.needs-grid .cell-dark button small{color:#dbe4ea}.needs-grid .cell-backlog button{box-shadow:inset 3px 0 0 var(--amber);background:linear-gradient(rgba(32,69,95,var(--a,0)),rgba(32,69,95,var(--a,0))),var(--amber-bg)}.needs-grid .cell-future button{color:var(--muted);background:transparent}.needs-grid .cell-completed button{color:var(--green);background:var(--green-bg)}.needs-grid .cell-none{color:var(--rule)}.needs-grid .cell-ref button{outline:2px solid var(--steel);outline-offset:-2px;font-weight:700}.needs-grid tr.focused th{background:var(--blue-wash);color:var(--steel)}.needs-grid td button:hover{filter:brightness(.94)}
.ref-row td{background:var(--blue-wash)}.reconcile td:first-child{font-weight:600}
@media(max-width:1000px){.zone-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.needs-hero{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.needs-grid td button:hover{filter:none}}

.heading-links{display:flex;align-items:center;gap:14px;font-size:.85rem}.results-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}

/* Navigation Outils / Analyse */
.main-tabs{align-items:flex-end;gap:28px}.tab-group{display:flex;align-items:flex-end;gap:4px;position:relative;padding-top:18px}.tab-group-label{position:absolute;top:0;left:20px;font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.tab-group+.tab-group{border-left:1px solid var(--rule);padding-left:20px}.tab-group+.tab-group .tab-group-label{left:40px}
/* Tableau de bord : barre, niveaux, KPI, narratif, classement */
.analysis-bar{background:white;border:1px solid var(--rule);border-radius:7px;margin-bottom:20px;overflow:hidden}.analysis-bar .compare-controls{border-top:0}.level-tabs{display:flex;gap:4px;padding:10px 24px;border-top:1px solid var(--soft);overflow:auto}.level-tabs button{border:1px solid transparent;background:transparent;padding:10px 16px;border-radius:5px;font-weight:650;color:var(--muted);white-space:nowrap;transition:background .15s}.level-tabs button[aria-selected="true"]{background:var(--steel);color:white}.level-tabs button:hover:not([aria-selected="true"]){background:var(--blue-wash);color:var(--steel)}
.kpi-row{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:12px;margin-bottom:20px}.kpi{background:white;border:1px solid var(--rule);border-radius:7px;padding:18px 20px;display:grid;gap:6px;align-content:start}.kpi-main{border-color:var(--steel);box-shadow:inset 4px 0 0 var(--steel)}.kpi-label{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.kpi strong{font-size:2.1rem;letter-spacing:-.03em;line-height:1;color:var(--steel);font-variant-numeric:tabular-nums}.kpi-main strong{font-size:3rem}.kpi strong small{font-size:.9rem;font-weight:500;color:var(--muted);letter-spacing:0}.kpi-note{font-size:.8rem;color:var(--muted)}
.narrative-card{padding-bottom:8px}.narrative-card p{margin:0 24px 12px;max-width:78ch;font-size:.97rem;line-height:1.6}.narrative-card p.explain{font-size:.82rem}
.ranking{list-style:none;margin:0;padding:6px 24px 22px;display:grid;gap:12px}.ranking li{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start}.rank{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--soft);font-family:var(--mono);font-size:.78rem;color:var(--steel)}.ranking li:first-child .rank{background:var(--steel);color:white}.rank-body{display:grid;gap:4px}.rank-head{display:flex;justify-content:space-between;gap:12px;font-size:.9rem}.rank-track{height:10px;background:var(--soft);border-radius:3px;overflow:hidden}.rank-bar{display:block;height:100%;background:var(--steel);border-radius:3px}.ranking li:nth-child(n+2) .rank-bar{background:#6a8ba3}.rank-body small{color:var(--muted);font-size:.78rem}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-right:24px}.card-head h3{margin:20px 24px 8px}.inline-field{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600}.inline-field select,.inline-field input{padding:7px 9px;border:1px solid var(--rule);border-radius:4px;background:white;font-weight:400}.inline-field input[type=number]{width:64px}
.pair-card .compare-controls{border-top:0}
/* Archives */
.archive-table .actions{display:flex;flex-wrap:wrap;gap:4px 14px;min-width:220px}.archive-table .text-button{padding:.25rem 0}.archive-table .text-button:disabled{opacity:.4;text-decoration:none}.open-row td{background:var(--blue-wash)}.detail-row td{background:#fafbfd;border-bottom:2px solid var(--soft)}.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 24px;padding:6px 0}.meta-grid div{display:grid;gap:2px}.meta-grid dt{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.meta-grid dd{margin:0;font-size:.88rem;overflow-wrap:anywhere}
@media(max-width:1000px){.kpi-row{grid-template-columns:1fr 1fr}}@media(max-width:600px){.kpi-row{grid-template-columns:1fr}.tab-group+.tab-group{border-left:0;padding-left:0}.tab-group+.tab-group .tab-group-label{left:20px}}
/* ===== Charte ABIPA International (identité visuelle v1.0, août 2026) =====
   Blanc dominant (60 %), anthracite pour le texte et les aplats (30 %), orange en signal (≤ 10 %, jamais en texte courant).
   Chiffres clés en orange foncé #C55A11 (contraste AA). Police de production : Arial. */
:root{--anthracite:#3A3A3C;--anthracite-2:#232325;--gris-texte:#595959;--gris-neutre:#E9E9E9;--gris-vide:#FAFAFA;--gris-bord:#D0D0D0;--orange:#F2951E;--orange-fonce:#C55A11;--orange-moyen:#ED7D31;--orange-clair:#F4B183;--sable:#FBE5D6;
 --steel:var(--anthracite);--steel-hover:var(--anthracite-2);--steel-2:var(--gris-texte);--signal:var(--orange);--signal-bg:var(--sable);--signal-ink:var(--orange-fonce);--titanium:#999999;--ink:#2b2b2d;--muted:var(--gris-texte);--rule:var(--gris-bord);--soft:var(--gris-neutre);--blue-wash:#f3f3f3;--ground:#ffffff;--amber:var(--orange-fonce);--amber-bg:var(--sable);
 --c-identical:#2f7f5a;--c-identical-bg:#e6f3ec;--c-modified:#3A3A3C;--c-modified-bg:#ececec;--c-moved:#6b4fbb;--c-moved-bg:#eeeaf9;--c-disappeared:#b3413a;--c-disappeared-bg:#fbe9e7;--c-created:#177f86;--c-created-bg:#e3f3f4;--ease:cubic-bezier(.22,.61,.36,1);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif}
body{background:var(--ground)}
.photo-band{height:64px;background:#3A3A3C url(banner.jpg) center/cover no-repeat;filter:grayscale(1)}
.masthead{background:white;border-bottom:1px solid var(--gris-bord);position:relative}.masthead::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--orange);width:140px}
.header-inner{padding-top:.8rem;padding-bottom:.8rem}.brand{gap:1rem}.brand-logo{width:72px;height:auto;display:block}.brand-text b{display:block;font-size:1.05rem;letter-spacing:.02em;color:var(--anthracite)}.brand-text small{color:var(--gris-texte)}
.masthead a{color:var(--anthracite)}.masthead #account{color:var(--gris-texte);font-family:var(--mono);font-size:.78rem}
.eyebrow{color:var(--orange-fonce)}h1{color:var(--anthracite)}h1 span{color:var(--orange-fonce);font-weight:400}
.main-tabs button.selected{border-color:var(--orange);color:var(--anthracite);background:var(--gris-vide)}.main-tabs button{transition:color .2s var(--ease),background .2s var(--ease)}.tab-group-label{color:var(--gris-texte)}
.primary{background:var(--anthracite);border-color:var(--anthracite);box-shadow:none}.primary:hover:not(:disabled){background:var(--anthracite-2);transform:translateY(-1px)}.secondary{color:var(--anthracite);border-color:var(--gris-bord)}.secondary:hover:not(:disabled){background:var(--gris-vide);border-color:var(--orange-fonce)}.button{transition:transform .18s var(--ease),background .18s,border-color .18s;border-radius:4px}
.import-big{background:var(--anthracite)}.import-big:hover{background:var(--anthracite-2)}.badge.amber{background:var(--sable);color:var(--orange-fonce)}
.level-tabs button[aria-selected="true"]{background:var(--anthracite);color:white;box-shadow:none}.level-tabs button:hover:not([aria-selected="true"]){background:var(--gris-vide);color:var(--anthracite)}
/* En-têtes de colonne : orange clair (charte) ; bandeau de section : anthracite, capitales blanches */
th{background:var(--orange-clair)!important;color:var(--anthracite)!important;font-family:Arial,sans-serif!important;font-weight:700!important;letter-spacing:.04em;text-transform:uppercase;font-size:.72rem!important}.needs-grid thead th{background:var(--orange-clair)}.needs-grid tbody th{background:white!important;color:var(--anthracite)!important;text-transform:none;font-family:var(--mono)!important;font-weight:500!important;font-size:.8rem!important}
.section-heading{background:var(--anthracite);color:white}.section-heading h2{color:white;text-transform:uppercase;letter-spacing:.06em;font-size:.85rem}.section-heading .badge.neutral{background:#555;color:white}.heading-links a{color:white;text-decoration:underline}
.results-heading h2{color:var(--anthracite)}
/* Portées : période = anthracite (trait plein hiérarchique), comparaison Avant → Après = orange (lien fonctionnel) */
.scope-field{position:relative;padding-left:14px}.scope-field::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:2px;background:var(--scope)}.scope-field select{border-left:4px solid var(--scope)!important}
.scope-period::before,.scope-band.scope-period,.scope-field.scope-period{--scope:var(--anthracite)}.scope-pair::before,.scope-band.scope-pair,.scope-field.scope-pair{--scope:var(--orange)}
.scope-band{position:relative;padding-left:18px;margin:0 0 26px}.scope-band::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;border-left:2px solid var(--scope)}.scope-band.scope-pair::before{border-left-style:dashed}.scope-band::after{content:"";position:absolute;left:-5px;top:-6px;width:12px;height:12px;border-radius:50%;background:var(--scope);box-shadow:0 0 0 3px white}
.scope-band>.history-card,.scope-band .kpi-row>.kpi,.scope-band .zone-tiles>.zone-tile{border-left:3px solid var(--scope)}
.scope-band.scope-pair .pair-card{background:linear-gradient(90deg,var(--sable),white 45%)}.scope-band.scope-pair .pair-card .compare-controls{background:transparent}.scope-band .zone-tiles{margin-left:0;margin-right:0}
/* Cartes : coin 4 px, filet orange foncé sur la carte principale, ombre très discrète */
.history-card,.kpi,.zone-tile,.analysis-bar,.source-panel{border-radius:4px;box-shadow:0 1px 3px #99999933}.kpi-main{border-color:var(--orange-fonce);box-shadow:inset 4px 0 0 var(--orange-fonce),0 1px 3px #99999933}
.kpi strong,.zone-tile strong,.needs-hero strong{color:var(--orange-fonce);background:none;-webkit-text-fill-color:initial}.kpi-label,.zone-name{color:var(--gris-texte)}
.kpi,.zone-tile,.history-card{transition:transform .2s var(--ease),box-shadow .2s var(--ease)}.kpi:hover,.zone-tile:hover{transform:translateY(-2px);box-shadow:0 8px 20px -12px #3A3A3C66}
.zone-frozen{border-color:var(--anthracite)!important;box-shadow:inset 3px 0 0 var(--anthracite)}.zone-backlog{box-shadow:inset 3px 0 0 var(--orange-fonce)}
/* Nature des changements : couleur + libellé, jamais la couleur seule */
.chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:700;line-height:1.5;white-space:nowrap}.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.chip-identical{color:var(--c-identical);background:var(--c-identical-bg)}.chip-modified{color:var(--c-modified);background:var(--c-modified-bg)}.chip-moved{color:var(--c-moved);background:var(--c-moved-bg)}.chip-disappeared{color:var(--c-disappeared);background:var(--c-disappeared-bg)}.chip-created{color:var(--c-created);background:var(--c-created-bg)}
.chip-backlog{color:var(--orange-fonce);background:var(--sable)}.chip-frozen{color:var(--anthracite);background:var(--gris-neutre)}.chip-future{color:var(--gris-texte);background:var(--gris-vide);border:1px dashed var(--gris-bord)}
.rank{background:var(--gris-neutre);color:var(--anthracite)}.ranking li:first-child .rank{background:var(--orange-fonce);color:white}.rank-track{background:var(--gris-neutre)}.rank-bar{width:var(--w);transform-origin:left;animation:grow .7s var(--ease) both;background:var(--anthracite)}.ranking li:nth-child(n+2) .rank-bar{background:#8a8a8c}.rank-qty{background:var(--anthracite)!important}.rank-status{background:var(--orange)!important}.rank-date{background:var(--c-moved)!important}.rank-disappeared{background:var(--c-disappeared)!important}.rank-created{background:var(--c-created)!important}.rank-plant,.rank-po{background:#999!important}
.needs-chart .grid{stroke:var(--gris-neutre)}.needs-chart .series-main{stroke:var(--anthracite);stroke-width:2;stroke-dasharray:2000;stroke-dashoffset:2000;animation:draw 1.2s var(--ease) forwards}.needs-chart .series-ma{stroke:var(--orange);opacity:1}.needs-chart .dot circle{fill:var(--orange-fonce)}.picker-row.selected{background:var(--gris-vide);box-shadow:inset 3px 0 0 var(--orange-fonce)}.swatch-main{background:var(--anthracite)}.swatch-ma{background:repeating-linear-gradient(90deg,var(--orange) 0 4px,transparent 4px 7px)}
.needs-grid td button{transition:filter .15s,transform .15s var(--ease);background:rgba(58,58,60,var(--a,0))}.needs-grid td button:hover{transform:scale(1.04)}.needs-grid .cell-backlog button{box-shadow:inset 3px 0 0 var(--orange-fonce);background:linear-gradient(rgba(58,58,60,var(--a,0)),rgba(58,58,60,var(--a,0))),var(--sable)}.needs-grid .cell-ref button{outline:2px solid var(--orange-fonce)}.swatch-frozen{background:rgba(58,58,60,.14)}.swatch-hot{background:rgba(58,58,60,.8)}.swatch-backlog{background:var(--sable);border-left:3px solid var(--orange-fonce)}.swatch-ref{outline-color:var(--orange-fonce)}
.bar-cell .bar{background:linear-gradient(90deg,var(--gris-neutre),var(--anthracite));transform-origin:left;animation:grow .6s var(--ease) both}
.trend-track,.coverage-track{background:var(--gris-neutre)}.coverage-fill{background:var(--orange-fonce)}.metric-number,.coverage-number{color:var(--orange-fonce)}
.history-warning{background:var(--sable);border-left-color:var(--orange-fonce)}#message{border-left:3px solid var(--orange-fonce)!important;background:var(--sable)!important}
/* Aperçu d'archive lisible */
.detail-row td{white-space:normal;padding:0 0 12px}.meta-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px 32px;padding:14px 16px 6px;background:var(--gris-vide);border-top:2px solid var(--orange-fonce)}.meta-group{margin:0;display:grid;gap:10px;align-content:start}.meta-group h4{margin:0 0 2px;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-fonce)}.meta-item{display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:baseline;font-size:.88rem}.meta-item dt{font-size:.78rem;color:var(--gris-texte);font-weight:700}.meta-item dd{margin:0;overflow-wrap:anywhere;white-space:normal}.meta-item.wrap dd{line-height:1.5}.meta-item small{color:var(--gris-texte)}
@media(max-width:600px){.meta-item{grid-template-columns:1fr;gap:2px}.photo-band{height:40px}.brand-logo{width:52px}}
/* Mouvement : entrée en cascade, tracé, croissance ; désactivé si réduction demandée */
.enter{animation:rise .45s var(--ease) both;animation-delay:calc(var(--i,0)*45ms)}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.enter,.rank-bar,.bar-cell .bar,.needs-chart .series-main{animation:none!important;stroke-dashoffset:0}.kpi:hover,.zone-tile:hover,.primary:hover:not(:disabled),.needs-grid td button:hover{transform:none}}
@media print{.photo-band{display:none}}

/* ===== v7.3 : vue globale minimaliste, panneaux repliables, bulles d'aide ===== */
.bar-actions{display:flex;gap:8px;margin-left:auto;align-self:flex-end}
.kpi-row{margin:0 0 20px}.kpi{padding:22px 24px;gap:8px}.kpi strong{font-size:2.6rem}.kpi-main strong{font-size:3.6rem}.kpi-label{display:inline-flex;align-items:center;gap:6px}
.help{width:18px;height:18px;font-size:11px;border-color:var(--gris-bord);color:var(--gris-texte);background:white;vertical-align:middle;font-weight:700}.help:hover,.help:focus{border-color:var(--orange-fonce);color:var(--orange-fonce)}.help:hover::after,.help:focus::after{background:var(--anthracite);bottom:26px;left:-10px;width:280px;font-family:Arial,sans-serif;text-transform:none;letter-spacing:0;font-weight:400}
details.panel{margin-bottom:12px;overflow:visible}details.panel>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto 24px;align-items:center;gap:16px;padding:16px 20px 16px 24px;min-height:60px}details.panel>summary::-webkit-details-marker{display:none}details.panel>summary:hover{background:var(--gris-vide)}details.panel>summary:focus-visible{outline:3px solid var(--orange-fonce);outline-offset:-3px}
.panel-title{font-weight:700;font-size:1rem;color:var(--anthracite);display:inline-flex;align-items:center;gap:8px}.panel-headline{font-size:.9rem;color:var(--gris-texte);text-align:right;font-variant-numeric:tabular-nums;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.panel-headline b{color:var(--orange-fonce);font-size:1.15rem}
.panel-caret{width:10px;height:10px;border-right:2px solid var(--gris-texte);border-bottom:2px solid var(--gris-texte);transform:rotate(-45deg);transition:transform .2s var(--ease);justify-self:center}details.panel[open]>.panel-caret,details.panel[open]>summary .panel-caret{transform:rotate(45deg)}
.panel-body{border-top:1px solid var(--gris-neutre);padding-bottom:12px;animation:rise .3s var(--ease) both}.panel-body>.card-head{padding:14px 24px 0}.panel-body>.card-head .explain{margin:0;flex:1;min-width:240px}.panel-body>.explain{margin:14px 24px}.panel-body .zone-tiles{margin:14px 24px}.panel-body .narrative-card p{margin:14px 24px}.panel-body .ranking{padding:14px 24px 10px}.panel-body .table-wrap{margin:0}.panel-body .needs-chart{margin-top:8px}.panel-body .legend{margin:8px 24px}.panel-body .history-warning{margin:12px 24px}
.pair-controls{border-top:0;background:linear-gradient(90deg,var(--sable),white 45%)}.pair-controls .explain{flex-basis:100%;margin:0}
details.sub{margin:8px 24px 14px}details.sub>summary{cursor:pointer;font-weight:700;font-size:.85rem;color:var(--anthracite);padding:8px 0}details.sub>summary:hover{color:var(--orange-fonce)}details.sub .ranking{padding:8px 0}
.chip-neutral{color:var(--anthracite);background:var(--gris-neutre)}
.focus-card{margin:16px 24px 8px;border:1px solid var(--gris-bord);border-radius:4px;background:var(--gris-vide)}.focus-card .card-head{padding:10px 16px 0}.focus-card h4{margin:0}.focus-card .explain{margin:6px 16px 10px}.focus-card .table-wrap{margin:0 16px 12px}
.blocked-trend .bars{display:flex;align-items:flex-end;gap:10px;padding:14px 24px 6px;height:190px;overflow-x:auto}.bar-col{flex:1 0 56px;max-width:110px;background:none;border:0;display:grid;grid-template-rows:1fr auto auto;justify-items:center;gap:4px;height:100%;padding:0;border-radius:4px}.bar-col:hover{background:var(--gris-vide)}.bar-col.current b{color:var(--orange-fonce)}.bar-stack{width:100%;max-width:64px;height:var(--h);background:rgba(58,58,60,.18);border-radius:3px 3px 0 0;align-self:end;position:relative;overflow:hidden;transform-origin:bottom;animation:growY .6s var(--ease) both}.bar-persist{position:absolute;left:0;right:0;bottom:0;height:var(--p);background:var(--anthracite)}.bar-col b{font-variant-numeric:tabular-nums}.bar-col small{color:var(--gris-texte)}
@keyframes growY{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.line-list{list-style:none;margin:0;padding:8px 0;display:grid;gap:8px;font-size:.85rem}.line-list li{border-left:2px solid var(--gris-bord);padding-left:10px}
.search-input{padding:9px 12px;border:1px solid var(--gris-bord);border-radius:4px;min-width:240px}
@media(max-width:700px){details.panel>summary{grid-template-columns:1fr 20px}.panel-headline{grid-column:1;justify-content:flex-start}.kpi-main strong{font-size:2.8rem}}
@media(prefers-reduced-motion:reduce){.bar-stack,.panel-body{animation:none!important}}
.compare-controls label{position:relative}.compare-controls label>.help{position:absolute;right:0;top:-2px}.scope-field>.help{right:0}
@media(max-width:600px){.brand-text{display:none}.header-right{gap:.8rem;font-size:.8rem}}
/* Séparateur du tableau de bord (ex-style inline, retiré pour la CSP) */
.dash-rule{border:0;border-top:1px solid var(--soft);margin:1.4rem 0}
/* Tableau de bord v10 : onglets Période / Comparaison / Analyse, note de portée, histogrammes empilés */
.level-tabs{padding:8px 16px;border-top:0;border-bottom:1px solid var(--gris-neutre);gap:2px}.level-tabs button{border-radius:4px 4px 0 0;padding:12px 18px;color:var(--gris-texte);border-bottom:3px solid transparent;transition:color .2s var(--ease),background .2s var(--ease)}.level-tabs button[aria-selected="true"]{background:var(--gris-vide);color:var(--anthracite);border-bottom-color:var(--orange)}.level-tabs button:hover:not([aria-selected="true"]){background:var(--gris-vide);color:var(--anthracite)}.level-tabs button:focus-visible{outline:3px solid var(--orange-fonce);outline-offset:-3px}
.scope-note{flex-basis:100%;margin:0;padding:8px 12px;font-size:.85rem;color:var(--gris-texte);border-left:3px solid var(--scope,var(--anthracite));background:white;border-radius:0 4px 4px 0}.scope-note b{color:var(--anthracite);font-variant-numeric:tabular-nums}.scope-note.scope-pair{--scope:var(--orange)}
.needs-chart.stacked .seg{stroke:none}.seg-identical,.hatch-bg.hatch-identical{fill:var(--c-identical)}.seg-modified{fill:var(--c-modified)}.seg-disappeared,.hatch-fg.hatch-disappeared{fill:var(--c-disappeared)}.hatch-bg.hatch-disappeared{fill:var(--c-disappeared-bg)}.seg-moved{fill:var(--c-moved)}.seg-created{fill:var(--c-created)}.seg-qty{fill:var(--anthracite)}.seg-status{fill:var(--orange-fonce)}.seg-date{fill:var(--c-moved)}.seg-other{fill:#8a8a8c}
.needs-chart.stacked .hit{fill:transparent}.needs-chart.stacked .col:hover .seg{filter:brightness(1.12)}.needs-chart.stacked .col:hover .hit{fill:rgba(58,58,60,.05)}.needs-chart .ref-line{stroke:var(--orange-fonce);stroke-width:1.5;stroke-dasharray:6 4}.needs-chart .ref-text{fill:var(--orange-fonce);font-weight:700}
.legend .sw{width:12px;height:12px;display:inline-block;margin-right:6px;vertical-align:-1px;border-radius:2px}.sw-identical{background:var(--c-identical)}.sw-modified{background:var(--c-modified)}.sw-disappeared{background:var(--c-disappeared)}.sw-disappeared.sw-hatch{background:repeating-linear-gradient(45deg,var(--c-disappeared) 0 2px,var(--c-disappeared-bg) 2px 5px)}.sw-moved,.sw-date{background:var(--c-moved)}.sw-created{background:var(--c-created)}.sw-qty{background:var(--anthracite)}.sw-status{background:var(--orange-fonce)}.sw-other{background:#8a8a8c}.sw-ref{background:repeating-linear-gradient(90deg,var(--orange-fonce) 0 5px,transparent 5px 8px);height:2px;vertical-align:3px}
.panel-body>.explain{max-width:90ch}
.needs-chart .ref-mark{stroke:var(--orange-fonce);stroke-width:2;stroke-dasharray:4 3}.needs-chart.stacked .col.later .hit{fill:var(--gris-vide)}.needs-chart.stacked .col.later:hover .hit{fill:var(--gris-neutre)}.drift-controls{display:inline-flex;gap:14px;flex-wrap:wrap;align-items:center}

/* v12 — bascule visuelle « Tableau de bord » : rouge = exclue, vert = incluse. La couleur n'est jamais le seul signal :
   le libellé (Incluse/Exclue) et aria-checked portent l'état. */
.dash-switch{display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:2px;min-height:32px;font:inherit}
.dash-switch-track{position:relative;width:38px;height:21px;border-radius:11px;background:var(--red-bg);border:1px solid var(--red);flex-shrink:0;transition:background .18s var(--ease),border-color .18s var(--ease)}
.dash-switch-thumb{position:absolute;top:1px;left:1px;width:17px;height:17px;border-radius:50%;background:var(--red);transition:transform .18s var(--ease)}
.dash-switch.on .dash-switch-track{background:var(--green-bg);border-color:var(--green)}
.dash-switch.on .dash-switch-thumb{background:var(--green);transform:translateX(17px)}
.dash-switch-text{font-size:.78rem;font-weight:700;color:var(--red)}
.dash-switch.on .dash-switch-text{color:var(--green)}
.dash-switch:hover .dash-switch-track{filter:brightness(.96)}
.dash-switch:focus-visible{outline:3px solid #267db9;outline-offset:3px;border-radius:4px}
@media(prefers-reduced-motion:reduce){.dash-switch-track,.dash-switch-thumb{transition:none}}
/* Sous-titres de sous-tableaux à l'intérieur d'un panneau (ex. Cycle hebdomadaire : par jour, par semaine). */
.sub-title{margin:18px 24px 6px;font-size:.85rem;font-weight:700;color:var(--anthracite)}
.sub-title:first-of-type{margin-top:4px}
/* v17 — Regroupement de sous-traitance : saisie des BT, en-têtes de séquence, alerte rouge (jamais la couleur seule : libellé toujours présent). */
.sc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bt-input textarea{font-family:var(--mono);font-size:.9rem;padding:10px;border:1px solid var(--rule);border-radius:4px;background:white;min-height:150px;resize:vertical;width:100%;line-height:1.5}.bt-input textarea:focus-visible{outline:3px solid #267db9;outline-offset:2px}.sc-heading{margin-top:24px}.sc-table td{white-space:normal}.sc-table tr.seq-head th{position:static;background:var(--gris-neutre,#f0f3f5);color:var(--anthracite,#3A3A3C);text-transform:none;letter-spacing:0;font-size:.9rem;padding:12px 14px;border-top:2px solid var(--anthracite,#3A3A3C);display:table-cell}.seq-label b{font-family:var(--mono);font-size:1rem}.seq-meta{margin-left:14px;font-weight:400;color:var(--muted);font-family:var(--mono);font-size:.8rem}.badge.red{background:var(--red-bg);color:var(--red)}
@media(max-width:850px){.sc-grid{grid-template-columns:1fr}.seq-meta{display:block;margin:6px 0 0}}

/* Retour au lanceur du portail depuis une application : pastille distincte de « Déconnexion ». */
.back-link{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;color:var(--anthracite);text-decoration:none;border:1px solid var(--gris-bord);border-radius:999px;padding:.32rem .85rem;background:#fff;white-space:nowrap}.back-link:hover,.back-link:focus-visible{border-color:var(--anthracite);text-decoration:none;box-shadow:0 2px 6px -2px rgba(58,58,60,.35)}

/* ===== v18 — Relief : commandes en volume (charte ABIPA conservée : blanc, anthracite, orange en signal) =====
   Règle : seul ce qui se manipule a du relief (boutons, onglets, pastilles de repli, tuiles) ; ce qui se lit reste plat (chips, badges, texte).
   Anatomie d'une commande : une face (dégradé léger), une arête basse (ombre dure 0 3px 0) et une ombre portée douce ;
   au survol elle se soulève (-2px, arête 5px), au clic elle s'enfonce (+2px, arête 1px, ombre interne) en 60 ms.
   Onglets = languettes : l'onglet actif est blanc, plus haut, soudé à la ligne de base et coiffé du trait orange ; les autres reculent en gris.
   Panneaux repliables = pastille ronde en relief dont le chevron (orange quand fermé) tourne à l'ouverture.
   Champs et zones de dépôt sont creusés (ombre interne) pour s'opposer aux commandes soulevées. Mouvement retiré si prefers-reduced-motion. */
:root{--edge-dark:#1f1f21;--edge-light:#c6c6c8;--edge-red:#7f2c26;--face-dark:linear-gradient(180deg,#505053 0%,#3A3A3C 55%,#313133 100%);--face-dark-hover:linear-gradient(180deg,#5b5b5e 0%,#404042 55%,#313133 100%);--face-light:linear-gradient(180deg,#ffffff 0%,#f2f2f2 100%);--face-light-hover:linear-gradient(180deg,#ffffff 0%,#f8f8f8 100%);--face-tab:linear-gradient(180deg,#f6f6f6 0%,#e8e8e8 100%);--rest:0 6px 12px -8px rgba(58,58,60,.45);--lift:0 12px 20px -10px rgba(58,58,60,.55);--press-time:.06s}
/* Boutons */
.button{position:relative;border-radius:6px;transition:transform .16s var(--ease),box-shadow .16s var(--ease),background .16s var(--ease),border-color .16s var(--ease),color .16s}
.primary{background:var(--face-dark);border-color:#2a2a2c;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 3px 0 var(--edge-dark),var(--rest)}
.primary:hover:not(:disabled){background:var(--face-dark-hover);transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 5px 0 var(--edge-dark),var(--lift)}
.primary:active:not(:disabled){background:#2f2f31;transform:translateY(2px);box-shadow:inset 0 2px 4px rgba(0,0,0,.45),0 1px 0 var(--edge-dark);transition-duration:var(--press-time)}
.secondary{background:var(--face-light);color:var(--anthracite);border-color:var(--gris-bord);box-shadow:inset 0 1px 0 #fff,0 3px 0 var(--edge-light),var(--rest)}
.secondary:hover:not(:disabled){background:var(--face-light-hover);border-color:var(--orange-fonce);transform:translateY(-2px);box-shadow:inset 0 1px 0 #fff,0 5px 0 var(--edge-light),var(--lift)}
.secondary:active:not(:disabled){background:#ebebeb;transform:translateY(2px);box-shadow:inset 0 2px 4px rgba(58,58,60,.25),0 1px 0 var(--edge-light);transition-duration:var(--press-time)}
.button.danger{box-shadow:inset 0 1px 0 #fff,0 3px 0 var(--edge-red),var(--rest)}
.button.danger:hover:not(:disabled){transform:translateY(-2px);box-shadow:inset 0 1px 0 #fff,0 5px 0 var(--edge-red),var(--lift)}
.button.danger:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px 4px rgba(127,44,38,.3),0 1px 0 var(--edge-red);transition-duration:var(--press-time)}
.button:disabled{box-shadow:none;transform:none;background:var(--gris-neutre);color:var(--gris-texte);border-color:var(--gris-bord);opacity:.7}
.button:focus-visible,.main-tabs button:focus-visible,.level-tabs button:focus-visible,.tabs .tab:focus-visible,details.panel>summary:focus-visible,details.sub>summary:focus-visible{outline:3px solid var(--orange-fonce);outline-offset:3px}
details.panel>summary:focus-visible{outline-offset:-3px}
/* Commandes secondaires assimilées à des boutons clairs : sélecteur de fichier, pagination, pastilles de navigation, retour au lanceur */
.file-label,.pager button,.events-pagination button,.doc-nav a,.back-link{background:var(--face-light);color:var(--anthracite);border:1px solid var(--gris-bord);box-shadow:inset 0 1px 0 #fff,0 2px 0 var(--edge-light),var(--rest);transition:transform .16s var(--ease),box-shadow .16s var(--ease),background .16s,border-color .16s}
.file-label:hover,.pager button:hover:not(:disabled),.events-pagination button:hover:not(:disabled),.doc-nav a:hover,.back-link:hover,.back-link:focus-visible{background:var(--face-light-hover);border-color:var(--orange-fonce);transform:translateY(-1px);box-shadow:inset 0 1px 0 #fff,0 3px 0 var(--edge-light),var(--lift);text-decoration:none}
.file-label:active,.pager button:active:not(:disabled),.events-pagination button:active:not(:disabled),.doc-nav a:active,.back-link:active{background:#ebebeb;transform:translateY(1px);box-shadow:inset 0 2px 3px rgba(58,58,60,.22),0 0 0 var(--edge-light);transition-duration:var(--press-time)}
.pager button:disabled,.events-pagination button:disabled{box-shadow:none;transform:none}
/* Grand bouton d'import : même volume que le bouton principal */
.import-big{background:var(--face-dark);border:1px solid #2a2a2c;border-radius:6px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 3px 0 var(--edge-dark),var(--rest);transition:transform .16s var(--ease),box-shadow .16s var(--ease),background .16s}
.import-big:hover{background:var(--face-dark-hover);transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 5px 0 var(--edge-dark),var(--lift)}
.import-big:active{background:#2f2f31;transform:translateY(2px);box-shadow:inset 0 2px 4px rgba(0,0,0,.45),0 1px 0 var(--edge-dark);transition-duration:var(--press-time)}
/* Onglets en languettes : sections principales (.main-tabs), vues du tableau de bord (.level-tabs), résultats (.tabs .tab) */
/* La ligne de base est une ombre interne (pas une bordure) : l'onglet actif, à fond blanc, la recouvre même dans un conteneur défilant. */
.main-tabs,.level-tabs,.tabs{align-items:flex-end;border-bottom:0;box-shadow:inset 0 -2px 0 var(--gris-bord);padding-bottom:0;background:transparent}
.main-tabs{gap:24px;padding-left:4px}.level-tabs{padding:10px 16px 0;gap:4px}.tabs{padding:.6rem .6rem 0;gap:4px;background:var(--gris-vide)}
.tab-group{gap:4px}
/* Languette inactive : 5 px plus basse (marge haute) pour que la hauteur du groupe — et donc l'alignement des libellés de groupe — ne dépende pas de l'onglet actif. */
.main-tabs button,.level-tabs button,.tabs .tab{position:relative;margin:5px 0 0;border:1px solid var(--gris-bord);border-bottom:2px solid var(--gris-bord);border-radius:8px 8px 0 0;background:var(--face-tab);color:var(--gris-texte);font-weight:650;padding:10px 18px 10px;min-height:0;box-shadow:inset 0 1px 0 #fff;transition:transform .16s var(--ease),background .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease),border-color .16s var(--ease),padding .16s var(--ease)}
.main-tabs button.selected,.level-tabs button[aria-selected="true"],.tabs .tab[aria-selected=true]{margin-top:0;background:#fff;color:var(--anthracite);font-weight:700;padding:13px 20px 12px;border-color:var(--gris-bord);border-top:3px solid var(--orange);border-bottom:2px solid #fff;box-shadow:inset 0 1px 0 #fff,0 -8px 14px -10px rgba(58,58,60,.45);z-index:1}
.main-tabs button:hover:not(.selected),.level-tabs button:hover:not([aria-selected="true"]),.tabs .tab:hover:not([aria-selected=true]){background:var(--face-light-hover);color:var(--anthracite);border-color:var(--gris-bord);border-bottom-color:var(--gris-bord);transform:translateY(-2px);box-shadow:inset 0 1px 0 #fff,0 -6px 12px -10px rgba(58,58,60,.45)}
.main-tabs button:active,.level-tabs button:active,.tabs .tab:active{transform:translateY(1px);transition-duration:var(--press-time)}
.tabs .tab[aria-selected=true]::after{display:none}
.tab .count{background:var(--gris-neutre);border-radius:999px;padding:.1rem .45rem}.tab[aria-selected=true] .count{background:var(--sable);color:var(--orange-fonce)}
/* Panneaux repliables : pastille ronde en relief, chevron orange fermé / anthracite ouvert */
.panel-caret{width:30px;height:30px;border:1px solid var(--gris-bord);border-right-color:var(--gris-bord);border-bottom-color:var(--gris-bord);border-radius:50%;background:var(--face-light);box-shadow:inset 0 1px 0 #fff,0 2px 0 var(--edge-light),0 5px 8px -6px rgba(58,58,60,.45);display:grid;place-items:center;transform:none;transition:transform .16s var(--ease),box-shadow .16s var(--ease),border-color .16s}
.panel-caret::before{content:"";width:9px;height:9px;border-right:2.5px solid var(--orange-fonce);border-bottom:2.5px solid var(--orange-fonce);transform:translateX(-2px) rotate(-45deg);transition:transform .2s var(--ease),border-color .2s}
details.panel[open]>summary .panel-caret{transform:none}
details.panel[open]>summary .panel-caret::before{border-color:var(--anthracite);transform:translateY(-2px) rotate(45deg)}
details.panel>summary:hover .panel-caret{border-color:var(--orange-fonce);transform:translateY(-1px);box-shadow:inset 0 1px 0 #fff,0 3px 0 var(--edge-light),var(--lift)}
details.panel>summary:active .panel-caret{transform:translateY(1px);box-shadow:inset 0 2px 3px rgba(58,58,60,.22),0 0 0 var(--edge-light);transition-duration:var(--press-time)}
details.panel:not([open])>summary .panel-title::after{content:"Développer";font-size:.72rem;font-weight:600;color:var(--orange-fonce);letter-spacing:.04em;text-transform:uppercase;margin-left:4px;opacity:0;transition:opacity .16s}
details.panel:not([open])>summary:hover .panel-title::after{opacity:1}
/* Sous-panneaux (tableaux secondaires) : pastille « + » / « − » */
details.sub>summary{list-style:none;display:flex;align-items:center;gap:10px}details.sub>summary::-webkit-details-marker{display:none}
details.sub>summary::before{content:"+";display:grid;place-items:center;width:22px;height:22px;flex-shrink:0;border:1px solid var(--gris-bord);border-radius:50%;background:var(--face-light);color:var(--orange-fonce);font-size:1rem;font-weight:700;line-height:1;box-shadow:inset 0 1px 0 #fff,0 2px 0 var(--edge-light),0 4px 6px -5px rgba(58,58,60,.45);transition:transform .16s var(--ease),box-shadow .16s var(--ease),border-color .16s}
details.sub[open]>summary::before{content:"−";color:var(--anthracite)}
details.sub>summary:hover::before{border-color:var(--orange-fonce);transform:translateY(-1px);box-shadow:inset 0 1px 0 #fff,0 3px 0 var(--edge-light),var(--lift)}
details.sub>summary:active::before{transform:translateY(1px);box-shadow:inset 0 2px 3px rgba(58,58,60,.22);transition-duration:var(--press-time)}
/* Cartes : légère épaisseur (arête basse claire) ; les filets de statut sont conservés */
.history-card,.kpi,.zone-tile,.analysis-bar,.source-panel,.results-panel,.access-card,.dash-card,.metric,.focus-card{box-shadow:inset 0 1px 0 #fff,0 2px 0 #e4e4e4,0 10px 18px -14px rgba(58,58,60,.4)}
.kpi-main,.kpi-main:hover{box-shadow:inset 4px 0 0 var(--orange-fonce),0 2px 0 #e4e4e4,0 10px 18px -14px rgba(58,58,60,.4)}
.zone-frozen,.zone-frozen:hover{box-shadow:inset 3px 0 0 var(--anthracite),0 2px 0 #e4e4e4,0 10px 18px -14px rgba(58,58,60,.4)}
.zone-backlog,.zone-backlog:hover{box-shadow:inset 3px 0 0 var(--orange-fonce),0 2px 0 #e4e4e4,0 10px 18px -14px rgba(58,58,60,.4)}
.zone-elapsed,.zone-elapsed:hover{box-shadow:inset 3px 0 0 #8a8a8c,0 2px 0 #e4e4e4,0 10px 18px -14px rgba(58,58,60,.4)}
.kpi:hover,.zone-tile:hover{box-shadow:inset 0 1px 0 #fff,0 2px 0 #e4e4e4,0 14px 24px -14px rgba(58,58,60,.55)}
.kpi-main:hover{box-shadow:inset 4px 0 0 var(--orange-fonce),0 2px 0 #e4e4e4,0 14px 24px -14px rgba(58,58,60,.55)}
/* Creux : champs de saisie et zones de dépôt, en opposition aux commandes soulevées */
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),select,textarea{box-shadow:inset 0 1px 3px rgba(58,58,60,.14);transition:box-shadow .16s,border-color .16s}
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):focus,select:focus,textarea:focus{border-color:var(--anthracite);box-shadow:inset 0 1px 3px rgba(58,58,60,.14),0 0 0 3px rgba(197,90,17,.15)}
.history-drop{box-shadow:inset 0 2px 8px rgba(58,58,60,.14)}.history-drop:hover,.drop-zone.drag-over{box-shadow:inset 0 2px 8px rgba(58,58,60,.14),0 0 0 4px rgba(242,149,30,.18)}
/* Bulle d'aide et bascule : petit relief cohérent */
.help{box-shadow:0 1px 0 var(--edge-light);background:var(--face-light)}.help:hover,.help:focus{transform:translateY(-1px);box-shadow:0 2px 0 var(--edge-light),var(--rest)}
.dash-switch-track{box-shadow:inset 0 1px 3px rgba(0,0,0,.18)}.dash-switch-thumb{box-shadow:0 1px 2px rgba(0,0,0,.35)}
/* Petits écrans : onglets plus compacts, même anatomie */
@media(max-width:850px){.main-tabs{gap:14px}.main-tabs button{padding:9px 12px;font-size:.85rem}.main-tabs button.selected{padding:11px 14px 10px}}
/* Mouvement réduit : ni translation ni transition ; le volume statique reste */
@media(prefers-reduced-motion:reduce){.button,.file-label,.pager button,.events-pagination button,.doc-nav a,.back-link,.import-big,.main-tabs button,.level-tabs button,.tabs .tab,.panel-caret,.panel-caret::before,details.sub>summary::before,.help,input,select,textarea{transition:none!important;transform:none!important}details.panel:not([open])>summary .panel-title::after{transition:none}}
@media print{.button,.history-card,.kpi,.zone-tile,.analysis-bar,.source-panel,.results-panel,.access-card,.dash-card,.metric,.focus-card,.panel-caret{box-shadow:none!important}}
/* ===== v19 — Courbes (lineChart de charts.mjs) et tons des séries « MAS vs ÉPICOR intégration » : anthracite pour le
   succès / la référence, orange foncé pour le signal, gris pour le contexte ; jamais la couleur seule (légende + titres). ===== */
.needs-chart.lines .line{fill:none;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}.needs-chart.lines .dot{stroke:#fff;stroke-width:1}
.line-success,.dot-success,.line-main,.dot-main{stroke:var(--anthracite)}.dot-success,.dot-main{fill:var(--anthracite)}
.line-oprseq,.dot-oprseq,.line-signal,.dot-signal{stroke:var(--orange-fonce)}.dot-oprseq,.dot-signal{fill:var(--orange-fonce)}
.line-resgrp,.dot-resgrp{stroke:var(--orange)}.dot-resgrp{fill:var(--orange)}
.line-jobnum,.dot-jobnum{stroke:#8a8a8c}.dot-jobnum{fill:#8a8a8c}
.line-clock,.dot-clock,.line-other,.dot-other{stroke:#b9b9bb}.dot-clock,.dot-other{fill:#b9b9bb}
.line-stage,.dot-stage{stroke:var(--anthracite);stroke-dasharray:6 4}.dot-stage{fill:#fff;stroke-dasharray:none}
.line-manque,.dot-manque{stroke:var(--orange-fonce)}.dot-manque{fill:var(--orange-fonce)}.line-trop,.dot-trop{stroke:var(--anthracite)}.dot-trop{fill:var(--anthracite)}
.sw-success,.sw-main{background:var(--anthracite)}.sw-oprseq,.sw-signal,.sw-manque{background:var(--orange-fonce)}.sw-resgrp{background:var(--orange)}.sw-jobnum{background:#8a8a8c}.sw-clock,.sw-other{background:#b9b9bb}.sw-stage{background:repeating-linear-gradient(90deg,var(--anthracite) 0 5px,transparent 5px 8px);height:2px;vertical-align:3px}.sw-trop{background:var(--anthracite)}
.seg-success{fill:var(--anthracite)}.seg-oprseq{fill:var(--orange-fonce)}.seg-resgrp{fill:var(--orange)}.seg-jobnum{fill:#8a8a8c}.seg-clock{fill:#b9b9bb}.seg-manque{fill:var(--orange-fonce)}.seg-trop{fill:var(--anthracite)}.seg-en_cours{fill:#b9b9bb}.seg-ok{fill:#d9d9d9}.sw-en_cours{background:#b9b9bb}.sw-ok{background:#d9d9d9}.seg-bts_error{fill:var(--orange-fonce)}.sw-bts_error{background:var(--orange-fonce)}
