/* Commande d'état compacte, commune au cockpit, aux activités et au planning. */
.activity-command{--glide-running:#176441;--glide-waiting:#915913;display:flex;align-items:center;gap:4px;position:relative;min-width:0;margin-left:auto;max-width:100%;flex-shrink:0}
html[data-theme=night] .activity-command{--glide-running:#8ee6b3;--glide-waiting:#f0c181}
.activity-command .activity-glider{--activity-status-color:var(--blue)}
.activity-card.state-running .activity-glider,.activity-card.state-done .activity-glider{--activity-status-color:var(--glide-running)}

.activity-glider{--glide-x:0px;--glide-start:0px;--glide-distance:0px;--glide-progress:0;--glide-stretch:1;--glide-color:var(--activity-status-color);position:relative;flex:0 0 112px;width:112px;min-width:0;height:30px;margin-left:0;border:1px solid var(--line);border-radius:11px;background:var(--surface-soft);isolation:isolate;user-select:none;transition:border-color .18s,box-shadow .18s}
.activity-glider[data-direction=left]{--glide-color:var(--glide-waiting)}
.activity-glider-fill{position:absolute;top:2px;bottom:2px;left:calc(50% - 37px + var(--glide-start));width:calc(74px + var(--glide-distance));border-radius:8px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--glide-color) 22%,transparent));opacity:var(--glide-progress);transition:left .32s,width .32s,opacity .2s;pointer-events:none}
.activity-glider[data-direction=left] .activity-glider-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--glide-color) 22%,transparent),transparent)}
.activity-glider-arrow{position:absolute;top:0;bottom:0;width:14px;display:grid;place-items:center;color:var(--muted);opacity:.55;pointer-events:none;transition:opacity .15s,color .15s}
.activity-glider-arrow svg{width:10px;height:10px}.glider-left{left:2px}.glider-left svg{transform:rotate(180deg)}.glider-right{right:2px}.activity-glider-arrow.unavailable{opacity:.18}
.activity-glider.locked .activity-glider-arrow{opacity:0}
.activity-glider-thumb{position:absolute;top:2px;left:50%;width:74px;height:24px;padding:0 5px;display:flex;align-items:center;justify-content:center;gap:4px;border:1px solid color-mix(in srgb,var(--activity-status-color) 24%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--activity-status-color) 9%,var(--surface));color:var(--activity-status-color);box-shadow:0 1px 3px #152c350f;transform:translateX(calc(-50% + var(--glide-x))) scaleX(var(--glide-stretch));transition:transform .36s cubic-bezier(.18,1.35,.35,1),background .18s,color .18s,box-shadow .18s;touch-action:pan-y;cursor:grab;z-index:1}
/* The app's generic button :active transform must never replace the thumb's centering. */
.activity-command .activity-glider-thumb,.activity-command .activity-glider-thumb:active:not(:disabled){transform:translateX(calc(-50% + var(--glide-x))) scaleX(var(--glide-stretch))}
.activity-command .activity-glider-thumb{background:color-mix(in srgb,var(--activity-status-color) 9%,var(--surface))}
.activity-glider-thumb svg{width:11px;height:11px;flex:none;pointer-events:none}
.activity-glider-thumb svg{stroke-width:1.8}
.activity-glider-thumb strong{font-size:10px;font-weight:650;white-space:nowrap;pointer-events:none}
.activity-glider-thumb:disabled{cursor:default;opacity:.65}
.activity-glider.locked .activity-glider-thumb,.activity-glider.validated .activity-glider-thumb{opacity:1}
.activity-glider.pending .activity-glider-thumb{opacity:1;cursor:progress}
.activity-glider.pending::after{content:'';position:absolute;left:20px;right:20px;bottom:1px;height:1px;border-radius:2px;background:var(--activity-status-color);opacity:.3;pointer-events:none}
.activity-glider.dragging .activity-glider-thumb,.activity-glider.dragging .activity-glider-fill{transition:none}
.activity-glider.dragging .activity-glider-thumb{cursor:grabbing;animation:none}
.activity-glider.dragging .activity-glider-thumb{scale:1}
.activity-glider.armed .activity-glider-thumb,.activity-glider.validated .activity-glider-thumb{background:var(--glide-color);color:var(--surface);border-color:var(--glide-color);box-shadow:0 2px 7px color-mix(in srgb,var(--glide-color) 18%,transparent)}
.activity-glider.armed{border-color:color-mix(in srgb,var(--glide-color) 40%,var(--line));box-shadow:0 0 0 2px color-mix(in srgb,var(--glide-color) 9%,transparent)}
.activity-glider[data-direction=left] .glider-left,.activity-glider[data-direction=right] .glider-right{opacity:1;color:var(--glide-color)}
.activity-glider:hover:not(.locked) .activity-glider-arrow:not(.unavailable){opacity:1}
.activity-glider:hover:not(.locked):not(.dragging):not(.validated) .glider-right svg{animation:glider-hint .8s ease-in-out 2}
.activity-glider:hover:not(.locked):not(.dragging):not(.validated) .glider-left:not(.unavailable) svg{animation:glider-hint-left .8s ease-in-out 2}
.activity-glider-thumb.settled{animation:glider-settle .38s cubic-bezier(.2,.8,.2,1)}
.activity-glider-feedback{position:absolute;inset:auto auto calc(100% + 7px) 50%;transform:translate(-50%,3px) scale(.97);display:block;width:max-content;max-width:210px;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--glide-color);box-shadow:0 3px 12px #152c3510;font-size:10px;font-weight:650;line-height:1.4;white-space:nowrap;opacity:0;transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.2,1);pointer-events:none;z-index:3}
.activity-glider:hover .activity-glider-feedback,.activity-glider:focus-within .activity-glider-feedback,.activity-glider.dragging .activity-glider-feedback,.activity-glider.validated .activity-glider-feedback{opacity:1;transform:translate(-50%,0) scale(1)}
.activity-glider:not(.locked) .activity-glider-feedback{width:132px;text-align:center;white-space:normal}

.activity-glider-menu{position:relative;flex:0 0 24px;width:24px}
.activity-glider-menu>summary{display:grid;place-items:center;width:24px;height:28px;padding:0;list-style:none;cursor:pointer;border:1px solid transparent;border-radius:7px;color:var(--muted)}
.activity-glider-menu>summary::-webkit-details-marker{display:none}
.activity-glider-menu>summary svg{width:15px;height:15px}
.activity-glider-menu>summary:hover,.activity-glider-menu[open]>summary{background:var(--surface-soft);border-color:var(--line);color:var(--ink)}
.activity-glider-menu>summary:focus-visible{outline:3px solid var(--scope-action);outline-offset:2px}
html[data-scope] .activity-card .activity-glider-menu .status-popover{top:calc(100% + 6px);right:0;left:auto;width:180px;max-width:calc(100vw - 32px);z-index:25}
.activity-card:has(.activity-glider-menu[open]),.activity-card:has(.activity-glider.dragging),.activity-card:has(.activity-glider:focus-within),.activity-card.glider-confirm-open{position:relative;z-index:20}
.activity-card .activity-glider.dragging{opacity:1;transform:none}
.activity-cell:has(.activity-glider-menu[open]),.activity-cell:has(.activity-glider.dragging),.activity-cell:has(.activity-glider:focus-within),.activity-cell:has(.glider-confirm-open){position:relative;z-index:20}
.activity-glider-confirm{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:25;display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);box-shadow:0 10px 28px #152c3520}
.activity-glider-confirm>strong{font-size:11px;line-height:1.5}
.activity-glider-confirm>p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.activity-glider-confirm>div{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.activity-glider-confirm button{min-height:30px;padding:5px 8px;font-size:11px}
@container activity-row (min-width:250px){
  html[data-scope] .activity-card{grid-template-columns:minmax(140px,.8fr) minmax(0,1fr)}
  html[data-scope] .activity-card .activity-command{flex-basis:100%;margin-left:0}
  .activity-glider.locked .activity-glider-feedback{left:0;transform:translateY(3px) scale(.97);white-space:normal}
  .activity-glider.locked:hover .activity-glider-feedback{transform:translateY(0) scale(1)}
}
@container activity-row (min-width:600px){
  html[data-scope] .activity-card{grid-template-columns:minmax(0,1.5fr) 154px minmax(160px,.9fr)}
}
@keyframes glider-hint{50%{transform:translateX(2px)}}
@keyframes glider-hint-left{50%{transform:rotate(180deg) translateX(2px)}}
@keyframes glider-settle{0%{scale:.92}45%{scale:1.045}100%{scale:1}}
@media(prefers-reduced-motion:reduce){.activity-glider,.activity-glider-thumb,.activity-glider-fill,.activity-glider-feedback{animation:none!important;transition:none!important}.activity-glider-arrow svg{animation:none!important}}
