.nethor-sync-side{padding:13px 12px;margin:0 9px 12px;border:1px solid rgba(147,179,227,.25);border-radius:13px;background:rgba(12,29,61,.42);color:#e9f1ff;display:grid;gap:9px}
.sync-side-heading{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.35}
.sync-indicator{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:#9eabc4}
.sync-indicator.ok{background:#56d4a4;box-shadow:0 0 9px rgba(86,212,164,.35)}
.sync-indicator.warn{background:#f4c76d}
.sync-indicator.muted{background:#9eabc4}
.sync-side-details{display:grid;gap:6px;font-size:11px;line-height:1.4;color:#d8e5fb;overflow-wrap:anywhere}
.sync-side-small{font-size:11px;line-height:1.45;color:#cbd7eb;margin:0}
.sync-error{color:#ffbdc2}
.sync-action{background:#eff5ff;border:1px solid #d6e5ff;color:#142f58;border-radius:9px;padding:9px 11px;font-weight:700;font-size:12px;cursor:pointer}
.sync-action:hover,.sync-action:focus-visible{background:white;outline-offset:2px}
.sync-subaction{background:none;border:0;color:#d6e5ff;text-decoration:underline;text-underline-offset:3px;padding:5px 3px;font-size:11px;text-align:left;cursor:pointer}
.nethor-sync-settings{margin-top:18px}
.nethor-sync-settings .card-body{display:grid;gap:12px}
@media(max-width:760px){.nethor-sync-side{margin:8px 12px 12px}}

/* Vue d'ensemble NethorSync : Desktop et PWA Desktop uniquement. */
@media (min-width:761px){
 .n2sync-home-content{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;width:100%;min-width:0}
 .n2sync-home-content>.card{width:100%;min-width:0}
 .n2sync-home-content .live-week-card{overflow:hidden}
 .n2sync-home-content .desktop-planning-table{width:100%;max-height:none;overflow-x:auto;overflow-y:visible}
 .n2sync-home-content .desktop-planning-table .table{width:100%}
 .n2sync-home-content .n2sync-card .card-body{gap:18px}
 .n2sync-home-content .n2sync-details{grid-template-columns:repeat(4,minmax(0,1fr))}
 .n2sync-history{border-top:1px solid #e8eef6;padding-top:22px;display:grid;gap:17px;min-width:0}
 .n2sync-history-top{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;flex-wrap:wrap}
 .n2sync-history-top h3{font-size:16px;line-height:1.25;margin:0;color:#233859;font-weight:850}
 .n2sync-history-top p{color:#8797ad;font-size:11px;margin:6px 0 0}
 .n2sync-period{display:inline-flex;gap:3px;padding:4px;border-radius:10px;background:#eef3fa}
 .n2sync-period button{border:0;background:transparent;color:#637b9a;padding:8px 12px;font-size:11px;font-weight:800;border-radius:8px;cursor:pointer}
 .n2sync-period button.active{color:#174c9b;background:#fff;box-shadow:0 2px 8px #1d37621b}
 .n2sync-period button:focus-visible{outline:2px solid #236cd0;outline-offset:2px}
 .n2sync-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
 .n2sync-metric{background:#f7f9fd;border:1px solid #e7edf6;border-radius:12px;padding:15px;min-width:0}
 .n2sync-metric span{display:block;color:#7587a1;font-size:11px;line-height:1.5}
 .n2sync-metric strong{display:block;margin-top:6px;color:#243e66;font-size:26px;font-weight:850;font-variant-numeric:tabular-nums}
 .n2sync-metric.success strong{color:#2468b4}
 .n2sync-metric.error strong{color:#bb555a}
 .n2sync-metric.transfer strong{color:#277e68}
 .n2sync-chart-legend{display:flex;flex-wrap:wrap;gap:16px;align-items:center;color:#647895;font-size:11px}
 .n2sync-chart-legend span{display:flex;align-items:center;gap:6px}
 .n2sync-chart-legend i{width:9px;height:9px;border-radius:3px;display:inline-block}
 .n2sync-chart-legend i.success,.n2sync-chart-bar.success{background:#4d85dd}
 .n2sync-chart-legend i.error,.n2sync-chart-bar.error{background:#e47c81}
 .n2sync-chart-legend i.transfer,.n2sync-chart-bar.transfer{background:#43ad8b}
 .n2sync-chart{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;align-items:end;gap:10px;min-width:0;min-height:205px;padding:12px 8px 4px;border-bottom:1px solid #e8eef7;background:repeating-linear-gradient(to top,transparent 0,transparent calc(25% - 1px),#edf2fa calc(25% - 1px),#edf2fa 25%)}
 .n2sync-chart-group{height:194px;min-width:0;display:flex;align-items:stretch;flex-direction:column;justify-content:end;gap:8px}
 .n2sync-chart-bars{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:5px;min-height:0}
 .n2sync-chart-bar{display:block;flex:1;max-width:28px;min-width:0;border-radius:5px 5px 0 0;transition:height .22s ease}
 .n2sync-chart-group small{display:block;text-align:center;white-space:normal;color:#798aa1;font-size:10px;line-height:1.3;min-height:27px}
 .n2sync-chart-foot{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#7a8ca6}
 .n2sync-chart-foot strong{color:#263f66;font-size:14px}
 .n2sync-chart-progress{height:7px;border-radius:12px;background:#eaf0f8;overflow:hidden;margin-top:-12px}
 .n2sync-chart-progress>span{display:block;height:100%;background:#3caa85;border-radius:12px}
 .n2sync-history-note{color:#8a97a9;font-size:10px;line-height:1.6;margin:0}
 .n2sync-history-placeholder{margin:0;padding:23px;background:#f7f9fd;border:1px dashed #d9e4f2;border-radius:11px;text-align:center;color:#7e8fa7;font-size:12px;line-height:1.6}
}
@media (min-width:761px) and (max-width:1150px){
 .n2sync-home-content .n2sync-details{grid-template-columns:repeat(2,minmax(0,1fr))}
 .n2sync-chart{gap:5px}
 .n2sync-chart-group small{font-size:9px}
 .n2sync-metric{padding:12px}
}
@media (prefers-reduced-motion:reduce){
 .n2sync-chart-bar{transition:none!important}
}

/* Publication automatique : séparer un simple transfert d'une semaine validée. */
@media (min-width:761px){
 .n2sync-auto{margin:16px 0 0;padding:13px 16px;border:1px solid #e0e8f4;border-radius:12px;background:#f8faff;color:#385170}
 .n2sync-auto strong{display:block;font-size:12px;color:#213c63}
 .n2sync-auto p{margin:4px 0 0;font-size:11px;line-height:1.5;color:#60728d}
 .n2sync-auto[data-state=published]{background:#f1f9f5;border-color:#c5e6d5}
 .n2sync-auto[data-state=published] strong{color:#176544}
 .n2sync-auto[data-state=rejected],.n2sync-auto[data-state=failed]{background:#fff8f7;border-color:#f3d0cd}
 .n2sync-auto[data-state=rejected] strong,.n2sync-auto[data-state=failed] strong{color:#a04848}
}

/* Avancement manuel : une erreur du poste ne doit pas ressembler à une attente infinie. */
.sync-manual-pipeline{display:grid;gap:6px;margin:12px 0;padding:11px;border:1px solid #dbe7f5;border-radius:12px;background:#f8fbff}
.sync-manual-pipeline>strong{font-size:11px;color:#28446a}
.sync-manual-step{display:flex;align-items:center;gap:8px;font-size:11px;color:#7b8798;line-height:1.35}
.sync-manual-step>b{height:19px;width:19px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:10px;border:1px solid #d8e1ee;background:white;color:#64748b}
.sync-manual-step[data-step=done]{color:#207454;font-weight:750}
.sync-manual-step[data-step=done]>b{color:#167650;border-color:#bce2cc;background:#e9f8ed}
.sync-manual-step[data-step=current]{color:#265d9c;font-weight:750}
.sync-manual-step[data-step=current]>b{background:#dcecff;color:#255c9b}
.sync-manual-step[data-step=error]{color:#af4550;font-weight:800}
.sync-manual-step[data-step=error]>b{background:#ffe9e9;color:#a73945;border-color:#f1c2c4}
.sync-manual-pipeline>small{font-size:10px;line-height:1.45;color:#9b4b55}

/* Historique de diagnostics NethorSync : données anonymisées, lecture compacte. */
.sync-diagnostic-panel{margin:16px 0 0;padding:12px;border:1px solid #e2e8f2;border-radius:12px;background:#f8faff;max-width:100%}
.sync-diagnostic-panel h3{margin:0 0 5px;font-size:13px;color:#263c59}
.sync-diagnostic-panel .live-muted{font-size:11px}
.sync-diagnostic-history{display:grid;gap:7px;margin-top:9px;max-height:280px;overflow-y:auto}
.sync-diagnostic-item{padding:9px;border:1px solid #e3e8f2;border-radius:10px;background:white}
.sync-diagnostic-item>div{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sync-diagnostic-item strong{color:#943c43;font-size:11px}
.sync-diagnostic-item time{color:#7e8b9b;font-size:10px}
.sync-diagnostic-item p{margin:5px 0;font-size:11px;color:#4d627b}
.sync-diagnostic-item small{display:block;font-size:10px;line-height:1.5;color:#748397}
.sync-diagnostic-empty{margin:8px 0 2px;color:#677a96;font-size:11px}
