:root{color-scheme:light dark;--bg:#f4f6f8;--card:#fff;--ink:#16202a;--muted:#5b6b7a;--line:#d8dee4;--line-strong:#b4bfca;--hover:#f0f4f8;--chip:#e6ecf2;--accent:#1f5fbf;--on-accent:#fff;--ok:#146c3f;--warn:#8f5200;--bad:#b3261e;--on-bad:#fff;--high:#d9910a}
@media (prefers-color-scheme:dark){:root{--bg:#10161c;--card:#18212a;--ink:#e6edf3;--muted:#93a4b3;--line:#2a3846;--line-strong:#3e5163;--hover:#1f2a35;--chip:#263442;--accent:#6aa5ff;--on-accent:#0b1726;--ok:#4ac083;--warn:#e0a040;--bad:#ff7b72;--on-bad:#1f0705;--high:#e0a040}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}
.top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line)}
.who{margin-left:auto;color:var(--muted)}
main{max-width:1000px;margin:0 auto;padding:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px;margin:0 0 14px}
h1,h2,h3{margin:0 0 10px}h1{font-size:20px}h2{font-size:17px}h3{font-size:15px}
label{display:block;margin:8px 0 3px;color:var(--muted);font-size:13px}
input,select,textarea{width:100%;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);font:inherit}
button{padding:8px 14px;border:0;border-radius:6px;background:var(--accent);color:var(--on-accent);font:inherit;cursor:pointer}
button.ghost{background:transparent;color:var(--accent);border:1px solid var(--line)}
button.danger{background:var(--bad);color:var(--on-bad)}
button:disabled{opacity:.5;cursor:default}
.hidden{display:none}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1 1 160px}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.tabs button{background:transparent;color:var(--ink);border:1px solid var(--line)}.tabs button.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.pill{display:inline-block;padding:1px 8px;border-radius:99px;border:1px solid var(--line);font-size:12px}
.pill.active,.pill.ok{color:var(--ok)}.pill.suspended,.pill.warn{color:var(--warn)}.pill.archived,.pill.bad{color:var(--bad)}
.msg{padding:8px 10px;border-radius:6px;margin:8px 0}.msg.err{background:color-mix(in srgb,var(--bad) 15%,transparent);color:var(--bad)}.msg.ok{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}
code,.secret{font-family:ui-monospace,Consolas,monospace;word-break:break-all}.secret{display:block;padding:8px;border:1px dashed var(--line);border-radius:6px;margin:6px 0;user-select:all}
.muted{color:var(--muted)}a{color:var(--accent)}
.modgroup{margin:0 0 6px}.modgroup h4{margin:16px 0 2px;font-size:15px}.modgroup>p{margin:0 0 4px;font-size:13px}.modgroup.folded{border-top:1px solid var(--line);margin-top:10px}.modgroup>summary{cursor:pointer;padding:8px 0}.modgroup table{table-layout:fixed}.modgroup td:nth-child(1){width:34%}.modgroup td:nth-child(2){width:38%}.modgroup td:nth-child(3){width:28%}
/* ---------- Lot 1.103.0 : tickets attribués à un SuperAdmin (tickets.js) — même aspect que le gestionnaire des clients (lot 1.98.0). Cibles tactiles de 44 px (application Android Console). ---------- */
.tabs button{min-height:44px}
.tab-count{display:inline-block;min-width:20px;margin-left:6px;padding:0 6px;border-radius:99px;background:var(--bad);color:var(--on-bad);font-size:12px;font-weight:700;line-height:20px;text-align:center}.tab-count:empty{display:none}
.tk-page{min-width:0}
.tk-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px 16px;margin:0 0 6px}.tk-head h2{margin:0 0 2px;font-size:19px}.tk-head p{margin:0;font-size:13px}
.tk-head-act{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tk-head-act button{min-height:44px}.tk-checked{font-size:12px}
.tk-banner{margin:6px 0;padding:8px 12px;border-radius:8px;border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);background:color-mix(in srgb,var(--warn) 7%,var(--card));color:var(--ink);font-size:13px}
.tk-status{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 10px}
.tk-chip{min-height:44px;padding:6px 14px;border-radius:99px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);font-weight:600;font-size:14px}
.tk-chip b{display:inline-block;min-width:22px;margin-left:6px;padding:0 7px;border-radius:99px;background:var(--chip);color:var(--ink);font-size:12px;line-height:20px;text-align:center}
.tk-chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.tk-chip.on b{background:color-mix(in srgb,var(--on-accent) 22%,transparent);color:inherit}
.tk-filters{border:1px solid var(--line);border-radius:10px;background:var(--card);margin:0 0 10px}.tk-filters>summary{cursor:pointer;padding:0 14px;min-height:44px;display:flex;align-items:center;gap:4px;font-weight:600}
.tk-filters>summary .tab-count{background:var(--accent);color:var(--on-accent)}
.tk-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;padding:2px 14px 14px;align-items:end}
label.tk-field{display:grid;gap:4px;margin:0;font-size:12px;color:var(--muted)}.tk-field select,.tk-field input{min-height:44px}.tk-search{grid-column:span 2}.tk-reset{min-height:44px}
.tk-summary{margin:4px 2px 8px;font-size:13px;color:var(--muted)}.tk-summary:empty{display:none}
.tk-list{display:grid;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}
.tk-row{display:grid;grid-template-columns:5px minmax(0,1fr) 160px 84px 148px;align-items:center;gap:12px;padding:10px 14px 10px 0;min-height:64px;border-bottom:1px solid var(--line);background:var(--card);cursor:pointer}
.tk-row:last-child{border-bottom:0}.tk-row:hover{background:var(--hover)}.tk-row:focus-visible{background:var(--hover);outline:2px solid var(--accent);outline-offset:-2px}
.tk-prio{align-self:stretch;background:var(--line-strong)}.priority-critical>.tk-prio{background:var(--bad)}.priority-high>.tk-prio{background:var(--high)}.priority-normal>.tk-prio{background:var(--accent)}
.tk-main{min-width:0}.tk-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.tk-title{font-weight:700;font-size:15px;overflow-wrap:anywhere;min-width:0}
.tk-suspended{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:6px;border:1px solid var(--line-strong);color:var(--ink);font-size:11px;font-weight:600}
.tk-client{display:inline-block;max-width:100%;padding:1px 8px;border-radius:6px;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 12%,var(--card));color:var(--ink);font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:4px;font-size:12px;color:var(--muted)}
.tk-service{padding:0 7px;border-radius:99px;border:1px solid var(--line-strong);color:var(--ink);font-weight:600}
.tk-pill{padding:0 8px;border-radius:99px;border:1px solid currentColor;font-weight:600}.tk-pill.status-new{color:var(--bad)}.tk-pill.status-in-progress{color:var(--warn)}.tk-pill.status-resolved{color:var(--ok)}.tk-pill.status-ignored{color:var(--muted)}
.tk-prio-text{font-weight:700}.tk-prio-text.prio-critical{color:var(--bad)}.tk-prio-text.prio-high{color:var(--warn)}
.tk-cat,.tk-count{color:var(--muted)}
.tk-who{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%;font-size:13px;font-weight:600}.tk-who-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-avatar{flex:none;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:var(--accent);color:var(--on-accent)}
.tk-who.large{font-size:15px}.tk-who.large .tk-avatar{width:32px;height:32px;font-size:12px}
.tk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tk-age{font-size:12px;color:var(--muted);white-space:nowrap}
.tk-act{display:flex;justify-content:flex-end}.tk-act button{min-height:44px;white-space:nowrap}.tk-primary{font-weight:700}
.tk-empty{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0;padding:28px 16px;border:1px dashed var(--line-strong);border-radius:12px;color:var(--muted);text-align:center}.tk-empty p{margin:0}.tk-empty button{min-height:44px}
p.tk-empty{flex-direction:row;justify-content:center}
.tk-spinner{flex:none;display:inline-block;width:16px;height:16px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:tk-spin .8s linear infinite}
@keyframes tk-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tk-spinner{animation:none}}
/* détail : boîte de dialogue modale (Échap ferme), en-tête et actions toujours visibles, le contenu défile */
.tk-dialog{width:min(780px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);padding:0;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);box-shadow:0 18px 60px rgba(0,0,0,.35);overflow:hidden}
.tk-dialog[open]{display:flex}.tk-dialog::backdrop{background:rgba(8,14,20,.55)}
.tk-detail{display:flex;flex-direction:column;flex:1;min-height:0;width:100%}
.tk-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 12px;border-bottom:1px solid var(--line)}
.tk-detail-titles{min-width:0}.tk-detail-titles h2{margin:6px 0 0;font-size:18px;overflow-wrap:anywhere}.tk-close{flex:none;min-height:44px}
.tk-detail-body{flex:1;min-height:0;overflow:auto;padding:14px 16px}
.tk-detail-body .tk-meta{margin:0 0 12px;font-size:13px}.tk-prio-chip{padding:0 8px;border-radius:99px;border:1px solid var(--line-strong);color:var(--ink);font-weight:600}.tk-prio-chip.prio-critical{color:var(--bad);border-color:currentColor}.tk-prio-chip.prio-high{color:var(--warn);border-color:currentColor}
.tk-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin:0 0 12px}.tk-facts>div{min-width:0;padding:8px 12px;border:1px solid var(--line);border-radius:10px}
.tk-facts dt{font-size:12px;color:var(--muted);font-weight:600}.tk-facts dd{margin:2px 0 0;overflow-wrap:anywhere}
.tk-description{margin:0 0 12px;white-space:pre-wrap;overflow-wrap:anywhere}
.tk-photos{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.tk-thumb{padding:0;border:1px solid var(--line);border-radius:10px;background:var(--bg);overflow:hidden;width:96px;height:96px}.tk-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.tk-history>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}.tk-history ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.tk-event{padding:6px 0 6px 12px;border-left:3px solid var(--line-strong)}.tk-event.private{border-left-color:var(--warn)}
.tk-event-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.tk-event-meta{display:block;font-size:12px;color:var(--muted)}
.tk-event small{display:block;color:var(--muted);overflow-wrap:anywhere}.tk-event blockquote{margin:4px 0 0;padding:6px 10px;border-radius:8px;background:var(--bg);white-space:pre-wrap;overflow-wrap:anywhere}
.tk-private{padding:0 7px;border-radius:99px;border:1px solid currentColor;color:var(--warn);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.tk-detail-foot{padding:12px 16px;border-top:1px solid var(--line);background:var(--card)}
.tk-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.tk-buttons button{min-height:44px}
button.tk-danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 50%,transparent)}
.tk-form{display:grid;gap:6px}.tk-form>label{margin:0}.tk-form textarea{resize:vertical;min-height:88px}.tk-form select{min-height:44px}.tk-hint,.tk-confirm{margin:0}.tk-confirm{font-weight:600}
label.tk-check{display:flex;align-items:center;gap:10px;min-height:44px;margin:0;color:var(--ink);font-size:14px;cursor:pointer}.tk-check input{flex:none;width:22px;height:22px;margin:0}
.tk-form-error{margin:0;color:var(--bad);font-size:13px}.tk-form-error:empty{display:none}
.tk-photo-dialog{padding:0;border:0;background:transparent;max-width:100vw;max-height:100vh;overflow:visible}.tk-photo-dialog::backdrop{background:rgba(0,0,0,.85)}
.tk-photo-dialog[open]{display:flex;flex-direction:column;align-items:center;gap:10px}.tk-photo-dialog img{display:block;max-width:calc(100vw - 32px);max-height:calc(100vh - 110px);border-radius:8px;cursor:zoom-out}
.tk-photo-close{min-height:44px}
@media (max-width:720px){
  .tk-row{grid-template-columns:5px minmax(0,1fr) auto;grid-template-areas:"p m m" "p w a" "p g a";row-gap:6px;padding:10px 12px 10px 0}
  .tk-prio{grid-area:p}.tk-main{grid-area:m}.tk-assignee{grid-area:w;min-width:0}.tk-age{grid-area:g}.tk-act{grid-area:a;align-self:center}.tk-search{grid-column:auto}
  .tk-filter-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
  .tk-facts{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
}
@media (max-width:600px){
  main{padding:12px 16px}
  .tk-dialog{width:100vw;max-height:100vh;height:100%;margin:0;border:0;border-radius:0}
  .tk-buttons button{flex:1 1 auto}
}
/* ---------- Lot 1.108.0 : mises à jour (deploy.js). L'essai puis la production, de gauche à droite ; cibles tactiles de 44 px ; mêmes variables (clair / sombre). ---------- */
.dp-page{min-width:0}
.dp-live:empty,.dp-flash:empty{display:none}
.dp-targets{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:10px;margin:12px 0 14px}
.dp-flow{align-self:center;font-size:22px;font-weight:700;color:var(--muted)}
.dp-target{display:flex;flex-direction:column;gap:10px;min-width:0;padding:14px;border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:12px;background:var(--card)}
.dp-target.dp-prod{border-top-color:var(--bad)}
.dp-target-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px}
.dp-target-name{display:inline-block;padding:2px 10px;border-radius:6px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:color-mix(in srgb,var(--accent) 14%,var(--card));color:var(--ink);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}
.dp-prod .dp-target-name,.dp-target-name.dp-prod{background:color-mix(in srgb,var(--bad) 12%,var(--card));border-color:color-mix(in srgb,var(--bad) 45%,transparent)}
.dp-version{display:grid;gap:0}.dp-version-label{font-size:12px;color:var(--muted);font-weight:600}
.dp-version-value{font:700 30px/1.15 ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.01em;overflow-wrap:anywhere}
.dp-health{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--ink)}
.dp-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--line-strong);box-shadow:0 0 0 3px color-mix(in srgb,var(--line-strong) 30%,transparent)}
.dp-health.ok .dp-dot{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 25%,transparent)}
.dp-health.bad{color:var(--bad)}.dp-health.bad .dp-dot{background:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 25%,transparent);animation:dp-pulse 1.6s ease-in-out infinite}
.dp-health.unknown{color:var(--muted)}
@keyframes dp-pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--bad) 8%,transparent)}}
.dp-target-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 12px;margin:0}
.dp-target-facts dt{font-size:12px;color:var(--muted);font-weight:600}.dp-target-facts dd{margin:1px 0 0;font-size:14px;overflow-wrap:anywhere}.dp-target-facts .dp-fail{color:var(--bad);font-weight:600}
.dp-target-act{margin-top:auto;display:grid;gap:4px}.dp-target-act button{min-height:44px;width:100%}
button.dp-rollback{color:var(--ink);border-color:var(--line-strong)}
.dp-gate{margin:0;font-size:12px;color:var(--muted)}.dp-gate[data-code="ESSAI_FIRST"]{color:var(--warn);font-weight:600}.dp-gate[data-code="INVALID"]{color:var(--bad);font-weight:600}
.dp-packages{display:grid;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.dp-package{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--card)}
.dp-package:last-child{border-bottom:0}.dp-package:hover{background:var(--hover)}
.dp-package-main{min-width:0}
.dp-package-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.dp-package-version{font:700 18px/1.2 ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums}
.dp-package-meta{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:4px;font-size:12px;color:var(--muted)}
.dp-file{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.dp-sha code{font-size:12px;color:var(--ink)}
.dp-package-act{display:grid;grid-template-columns:auto auto;gap:6px 8px;justify-items:stretch;max-width:440px}
.dp-package-act button{min-height:44px;white-space:nowrap}.dp-package-act .dp-gate{grid-column:1/-1;text-align:right}
.dp-badge{display:inline-block;padding:1px 8px;border-radius:99px;border:1px solid currentColor;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.dp-badge.prod{color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent)}.dp-badge.ok{color:var(--ok)}.dp-badge.essai{color:var(--accent)}
.dp-badge.bad{color:var(--bad)}.dp-badge.warn{color:var(--warn)}
.dp-empty{margin:0;padding:22px 16px;border:1px dashed var(--line-strong);border-radius:12px;color:var(--muted);text-align:center}.dp-empty p{margin:4px 0}.dp-empty b{color:var(--ink)}
/* suivi en direct */
.dp-current,.dp-last{margin:12px 0;padding:14px 16px;border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:12px;background:var(--card)}
.dp-current.stalled,.dp-current.recovering{border-left-color:var(--warn);background:color-mix(in srgb,var(--warn) 6%,var(--card))}
.dp-current p{margin:6px 0}
.dp-current-head{display:flex;align-items:center;gap:10px}.dp-current-head h3{margin:0;flex:1;min-width:0;overflow-wrap:anywhere}
.dp-elapsed{font:600 14px ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}
.dp-step-now{font-size:15px}
.dp-warn{padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--warn) 12%,transparent);color:var(--ink)}
.dp-track{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:10px 0;padding:0}
.dp-step{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:3px 10px 3px 6px;border-radius:99px;border:1px solid var(--line);font-size:13px;color:var(--muted)}
.dp-step-mark{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--line-strong);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;line-height:1}
.dp-step.done{color:var(--ink)}.dp-step.done .dp-step-mark{background:var(--ok);border-color:var(--ok);color:var(--card)}.dp-step.done .dp-step-mark::before{content:"✓"}
.dp-step.current{color:var(--ink);font-weight:700;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--card))}
.dp-step.current .dp-step-mark{border-color:var(--accent);border-top-color:transparent;animation:tk-spin .9s linear infinite}
.dp-log{list-style:none;margin:8px 0;padding:8px 10px;max-height:240px;overflow:auto;border-radius:8px;border:1px solid var(--line);background:var(--bg);font:12px/1.5 ui-monospace,Consolas,monospace}
.dp-log li{white-space:pre-wrap;overflow-wrap:anywhere}.dp-log-empty{font-size:13px}
/* dernier résultat */
.dp-last.ok{border-left-color:var(--ok)}.dp-last.bad{border-left-color:var(--bad);background:color-mix(in srgb,var(--bad) 5%,var(--card))}
.dp-last-head{display:flex;align-items:flex-start;gap:12px}.dp-last-head h3{margin:2px 0}.dp-last-head p{margin:0}
.dp-last-mark{flex:none;width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;background:var(--ok);color:var(--card)}
.dp-last.bad .dp-last-mark{background:var(--bad)}
.dp-last-meta{margin:6px 0 0;font-size:12px}.dp-last-error{margin:8px 0 0;color:var(--bad);font-weight:600;overflow-wrap:anywhere}
.dp-steps{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px}
.dp-step-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:4px 0 4px 10px;border-left:3px solid var(--ok);font-size:14px}.dp-step-row.bad{border-left-color:var(--bad)}
.dp-step-ok{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--ok)}.dp-step-row.bad .dp-step-ok{color:var(--bad)}
.dp-step-row small{flex-basis:100%;color:var(--muted);overflow-wrap:anywhere}
.dp-last-log>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}
.dp-last button{min-height:44px}
/* historique */
.dp-history-wrap{overflow-x:auto}.dp-history{font-size:14px}.dp-history th{font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}.dp-history td code{white-space:nowrap}
.dp-history-empty{margin:0}
/* réglage « L'essai d'abord » */
.dp-policy p{margin:6px 0}
label.dp-switch{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;margin:0;color:var(--ink);font-size:15px;cursor:pointer}
.dp-switch input{position:absolute;left:0;top:7px;opacity:0;width:52px;height:30px;margin:0;cursor:pointer}
.dp-switch-track{flex:none;position:relative;width:52px;height:30px;border-radius:99px;background:var(--line-strong);transition:background .15s}
.dp-switch-track::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s}
.dp-switch input:checked+.dp-switch-track{background:var(--accent)}.dp-switch input:checked+.dp-switch-track::after{transform:translateX(22px)}
.dp-switch input:focus-visible+.dp-switch-track{outline:2px solid var(--accent);outline-offset:2px}
.dp-switch-state{color:var(--muted);font-size:13px}
.dp-policy-form{display:grid;gap:6px;margin-top:8px}.dp-policy-form>label{margin:0}.dp-policy-form input{min-height:44px}.dp-policy-meta{font-size:12px}
.dp-form-error{margin:0;color:var(--bad);font-size:13px;font-weight:600}.dp-form-error:empty{display:none}
/* confirmation */
.dp-dialog .tk-detail-body{display:grid;gap:12px;align-content:start}.dp-dialog .tk-facts{margin:0}.dp-dialog .tk-form>label{margin:0}
.dp-impact{margin:0;padding:10px 12px;border-radius:10px;border-left:4px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card));font-weight:600}
.dp-impact.prod{border-left-color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,var(--card))}
.dp-sha-full{font-size:12px}
.dp-dialog textarea{resize:vertical;min-height:76px}.dp-dialog select{min-height:44px}
@media (prefers-reduced-motion:reduce){.dp-health.bad .dp-dot,.dp-step.current .dp-step-mark{animation:none}.dp-switch-track,.dp-switch-track::after{transition:none}}
@media (max-width:720px){
  .dp-targets{grid-template-columns:minmax(0,1fr)}
  .dp-flow{justify-self:center;transform:rotate(90deg);line-height:1}
  .dp-package{grid-template-columns:minmax(0,1fr)}
  .dp-package-act{grid-template-columns:minmax(0,1fr);max-width:none}.dp-package-act .dp-gate{text-align:left}
  .dp-package-act button{white-space:normal}
  .dp-version-value{font-size:26px}
  .dp-history thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .dp-history,.dp-history tbody,.dp-history tr,.dp-history td{display:block;width:100%}
  .dp-history tr{padding:8px 0;border-bottom:1px solid var(--line)}.dp-history tr:last-child{border-bottom:0}
  .dp-history td{display:flex;gap:10px;padding:2px 0;border:0}.dp-history td::before{content:attr(data-label);flex:none;width:72px;font-size:12px;color:var(--muted);font-weight:600}
}
