:root{--bg:#f6f2ea;--card:#fffaf2;--ink:#1e293b;--muted:#64748b;--line:#e5dccd;--accent:#1d4ed8;--danger:#b91c1c;--warn:#b45309;--ok:#15803d;--shadow:0 18px 40px rgba(15,23,42,.10);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#fbf7ef,#f4efe6);color:var(--ink)}button{font:inherit}.app-shell{width:min(1180px,100%);margin:0 auto;padding:18px}.topbar{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.eyebrow{margin:0 0 4px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.12em}.topbar h1{margin:0;font-size:30px}.subtitle{margin:4px 0 0;color:var(--muted)}.ghost-btn,.secondary-btn,.primary-btn,.square-btn,.filter,.icon-btn{border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:11px 14px;cursor:pointer}.primary-btn{background:var(--accent);border-color:var(--accent);color:#fff}.secondary-btn{background:#fffaf2}.square-btn{width:46px;height:46px;font-size:26px;line-height:1}.week-panel{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:12px;box-shadow:var(--shadow)}.week-title{text-align:center}.week-title span{display:block;color:var(--muted);font-size:12px}.week-title strong{font-size:18px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.kpis article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.kpis span{display:block;color:var(--muted);font-size:12px}.kpis strong{font-size:26px}.toolbar,.filters{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.filter.active{background:#111827;color:#fff}.week-list{display:grid;gap:14px;margin-top:14px}.day-block{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:14px;box-shadow:var(--shadow)}.day-block h2{margin:0 0 12px;font-size:18px}.rows{display:grid;gap:10px}.access-row{display:grid;grid-template-columns:1.1fr 1.6fr auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px}.client-main{display:grid;gap:4px}.client-name{font-size:16px}.client-meta{font-size:13px;color:var(--muted)}.status-zone{display:flex;flex-wrap:wrap;gap:6px}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 9px;font-size:12px;border:1px solid var(--line);background:#f8fafc}.badge.ok{color:var(--ok);border-color:#bbf7d0;background:#f0fdf4}.badge.warn{color:var(--warn);border-color:#fed7aa;background:#fff7ed}.badge.danger{color:var(--danger);border-color:#fecaca;background:#fef2f2}.row-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.row-actions button{border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px 10px;cursor:pointer;font-size:13px}.row-actions button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.dialog{border:0;border-radius:22px;padding:0;max-width:560px;width:calc(100% - 28px);box-shadow:var(--shadow)}.dialog::backdrop{background:rgba(15,23,42,.35)}.dialog form{margin:0}.dialog header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--line)}.dialog h2{margin:0}.dialog-body{padding:16px;display:grid;gap:10px}.detail-grid{display:grid;grid-template-columns:150px 1fr;gap:8px}.detail-grid span{color:var(--muted)}@media(max-width:760px){.app-shell{padding:12px}.topbar{align-items:stretch}.topbar h1{font-size:25px}.kpis{grid-template-columns:repeat(2,1fr)}.toolbar{display:grid}.toolbar button{width:100%}.access-row{grid-template-columns:1fr}.row-actions{justify-content:flex-start}.status-zone{gap:5px}.day-block{padding:12px}.detail-grid{grid-template-columns:1fr}}@media(max-width:420px){.kpis{grid-template-columns:1fr}.filters{overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.filter{white-space:nowrap}.topbar{flex-direction:column}.ghost-btn{width:100%}}

button:disabled{cursor:not-allowed;opacity:.5}.ui-message{margin:12px 0 0;border:1px solid var(--line);border-radius:14px;padding:11px 14px;font-size:14px}.ui-message.info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.ui-message.success{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.ui-message.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.badge.neutral{color:#475569;background:#f8fafc;border-color:#cbd5e1}.error-block{border-color:#fecaca;background:#fff7f7}.day-block h2::first-letter{text-transform:uppercase}@media(max-width:760px){.access-row{align-items:start}.row-actions button{min-height:42px}.status-zone{margin-top:2px}}
.week-actions{display:flex;align-items:center;gap:8px}.week-panel{grid-template-columns:auto 1fr auto}.week-title strong{font-size:18px}.kpis small{display:block;margin-top:2px;color:var(--muted);font-size:11px}.detail-section{display:grid;gap:10px}.detail-section h3{margin:0;font-size:15px}.dialog-actions{display:flex;flex-wrap:wrap;gap:8px}.dialog-actions button,.dialog-link{border:1px solid var(--line);border-radius:12px;background:#fff;padding:9px 11px;cursor:pointer;font-size:13px;color:var(--ink);text-decoration:none}.dialog-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.dialog-link{display:inline-flex;align-items:center}.row-actions button{white-space:nowrap}@media(max-width:760px){.week-panel{grid-template-columns:auto 1fr}.week-actions{grid-column:1/-1;justify-content:space-between}.week-actions .ghost-btn{flex:1}.week-title strong{font-size:16px}.row-actions button{white-space:normal}}

/* V1.5 — parcours métier des accès */
.kpis{grid-template-columns:repeat(6,1fr)}
.status-zone{display:grid;grid-template-columns:repeat(4,minmax(125px,1fr));gap:7px}
.process-step{display:flex;align-items:center;min-height:36px;border-radius:12px;padding:8px 10px;font-size:12px;font-weight:700;border:1px solid var(--line);background:#f8fafc;color:#475569}
.process-step::before{content:"●";margin-right:7px;font-size:12px}
.process-step.ok{color:var(--ok);border-color:#bbf7d0;background:#f0fdf4}
.process-step.warn{color:var(--warn);border-color:#fed7aa;background:#fff7ed}
.process-step.danger{color:var(--danger);border-color:#fecaca;background:#fef2f2}
.process-step.neutral{color:#64748b;border-color:#cbd5e1;background:#f8fafc}
.access-progress{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.access-progress li{position:relative;border-left:4px solid #cbd5e1;padding:9px 12px;background:#f8fafc;border-radius:0 12px 12px 0;font-weight:700}
.access-progress li.ok{border-left-color:var(--ok);background:#f0fdf4;color:var(--ok)}
.access-progress li.warn{border-left-color:var(--warn);background:#fff7ed;color:var(--warn)}
.access-progress li.danger{border-left-color:var(--danger);background:#fef2f2;color:var(--danger)}
.access-progress li.neutral{color:#64748b}
@media(max-width:1050px){.kpis{grid-template-columns:repeat(3,1fr)}.status-zone{grid-template-columns:repeat(2,minmax(135px,1fr))}}
@media(max-width:760px){.kpis{grid-template-columns:repeat(2,1fr)}.status-zone{grid-template-columns:1fr}}
@media(max-width:420px){.kpis{grid-template-columns:1fr}}


/* V1.6 — mode d’envoi explicite et non ambigu */
.email-mode-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 18px;padding:18px 20px;border:2px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}
.email-mode-state{display:flex;align-items:flex-start;gap:14px;min-width:0}
.email-mode-dot{width:16px;height:16px;border-radius:50%;margin-top:7px;flex:0 0 auto;background:#94a3b8;box-shadow:0 0 0 6px rgba(148,163,184,.14)}
.email-mode-eyebrow{margin:0 0 4px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b}
.email-mode-panel h2{margin:0 0 5px;font-size:20px;line-height:1.2}
.email-mode-panel p:last-child{margin:0;color:#475569}
.email-mode-toggle{flex:0 0 auto;border:0;border-radius:12px;padding:12px 16px;font-weight:800;cursor:pointer}
.email-mode-panel.loading{border-color:#cbd5e1;background:#f8fafc}
.email-mode-panel.development{border-color:#f59e0b;background:#fff7ed}
.email-mode-panel.development .email-mode-dot{background:#f59e0b;box-shadow:0 0 0 6px rgba(245,158,11,.16)}
.email-mode-panel.development h2{color:#9a3412}
.email-mode-panel.development .email-mode-toggle{background:#f59e0b;color:#111827}
.email-mode-panel.production{border-color:#22c55e;background:#f0fdf4}
.email-mode-panel.production .email-mode-dot{background:#22c55e;box-shadow:0 0 0 6px rgba(34,197,94,.16)}
.email-mode-panel.production h2{color:#166534}
.email-mode-panel.production .email-mode-toggle{background:#166534;color:#fff}
.email-mode-panel.error{border-color:#ef4444;background:#fef2f2}
.email-mode-panel.error .email-mode-dot{background:#ef4444;box-shadow:0 0 0 6px rgba(239,68,68,.15)}
.email-mode-panel.error h2{color:#991b1b}
.email-mode-toggle:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:700px){.email-mode-panel{align-items:stretch;flex-direction:column}.email-mode-toggle{width:100%}}


/* V1.7 — indicateur d'activation très visible */
.activation-primary-status{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;margin:0 0 14px 0;padding:15px 18px;border:3px solid;border-radius:14px;font-size:18px;line-height:1.15;letter-spacing:.02em;text-transform:uppercase;box-shadow:0 2px 8px rgba(15,23,42,.08)}
.activation-primary-status .activation-dot{flex:0 0 20px;width:20px;height:20px;border-radius:50%;box-shadow:0 0 0 5px rgba(255,255,255,.72)}
.activation-primary-status.is-active{color:#14532d;background:#dcfce7;border-color:#16a34a}
.activation-primary-status.is-active .activation-dot{background:#16a34a}
.activation-primary-status.is-inactive{color:#7f1d1d;background:#fee2e2;border-color:#dc2626}
.activation-primary-status.is-inactive .activation-dot{background:#dc2626}
.kpi-activated{border:2px solid #16a34a !important;background:#f0fdf4 !important}
.kpi-activated strong,.kpi-activated span{color:#166534 !important}
.kpi-not-activated{border:2px solid #dc2626 !important;background:#fef2f2 !important}
.kpi-not-activated strong,.kpi-not-activated span{color:#991b1b !important}
@media (max-width:760px){.activation-primary-status{font-size:16px;padding:14px}}


/* V1.8 — liste principale simplifiée */
.kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.access-row{
  grid-template-columns:190px minmax(260px,1fr) auto;
  gap:16px;
  align-items:center;
  padding:14px;
}
.activation-primary-status{
  margin:0;
  min-height:54px;
  padding:10px 13px;
  border-width:2px;
  border-radius:13px;
  font-size:14px;
  box-shadow:none;
}
.activation-primary-status .activation-dot{
  flex-basis:15px;
  width:15px;
  height:15px;
  box-shadow:0 0 0 4px rgba(255,255,255,.72);
}
.client-main{gap:3px}
.client-next-action{font-size:12px;font-weight:700;color:#64748b}
.activation-primary-status.is-inactive + .client-main .client-next-action{color:#991b1b}
.activation-primary-status.is-active + .client-main .client-next-action{color:#166534}
.row-actions{flex-wrap:nowrap;align-items:center}
.row-actions button{min-width:82px}
.status-zone,.process-step{display:none!important}
@media(max-width:900px){
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .access-row{grid-template-columns:165px 1fr}
  .row-actions{grid-column:1/-1;justify-content:flex-end}
}
@media(max-width:620px){
  .kpis{grid-template-columns:1fr 1fr}
  .access-row{grid-template-columns:1fr;gap:10px}
  .activation-primary-status{width:auto;justify-content:center}
  .row-actions{grid-column:auto;justify-content:flex-start}
}
@media(max-width:420px){.kpis{grid-template-columns:1fr}}
