/* Interactive workspace: Actions (with the Studio pop-up: an action's video and music), Chat, Vision and Settings. Owns its page; never changes the teleoperation controls. */
body.interactive-view .app-shell>main,body.interactive-view #performance-page,body.interactive-view #destination-controls,body.interactive-view #help-button,body.interactive-view #details-toggle{display:none!important}
body.interactive-view .app-shell .topbar.has-destination-controls{height:var(--toolbar);min-height:var(--toolbar);flex-basis:var(--toolbar)}
body.interactive-view .has-destination-controls .top-actions{grid-column:2}
/* Full width, so its scrollbar sits at the window edge; the padding keeps the 1240 px column. position:relative
   keeps absolutely placed bits (screen-reader labels, switch inputs) inside it: outside, a long open section
   made the whole window scroll and slid the top bar away. */
.interactive-page{--ds-star:#ff9f0a;position:relative;width:100%;margin:0;padding:22px max(28px,calc((100% - 1184px)/2)) 24px;min-height:0;flex:1;overflow:auto;scrollbar-gutter:stable;color:var(--label)}
.ia-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Header and the section switch. */
.ia-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}
.ia-header h1{font-size:24px;letter-spacing:-.6px;font-weight:650;line-height:1.2;outline:none}
.ia-header p{font-size:13px;margin-top:3px}
/* Info (interactive_controls.js), at Interactive's header right on every sub-tab. Reset to normal walking is a row
   under Stop everything in Actions; its checklist shows inside that Stop card, just below the button. */
.ia-tools{display:flex;gap:8px;flex:none;align-items:center}
.ia-tools .ds-btn[aria-expanded=true]{background:var(--accent-wash);color:var(--accent-text)}
.ia-reset-card,.ia-info{margin-bottom:16px;padding:14px 18px;font-size:13px}
.ia-reset-ask{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:6px 0 8px;color:var(--label-2)}
.ia-reset-card[data-tone=error]{box-shadow:inset 3px 0 0 var(--red),var(--shadow-card)}
.ia-reset-card[data-tone=ok]{box-shadow:inset 3px 0 0 var(--green),var(--shadow-card)}
.ia-reset-card[data-tone=busy]{box-shadow:inset 3px 0 0 var(--accent),var(--shadow-card)}
/* Inside the Stop card (2 Nov 2026): a panel joined to the rows above it, its colour stripe on the left */
.ia-group>.ia-reset-card{margin:12px 0 0;padding:12px 14px;border-radius:12px;background:var(--fill);box-shadow:inset 3px 0 0 var(--accent)}
.ia-group>.ia-reset-card[data-tone=error]{box-shadow:inset 3px 0 0 var(--red)}
.ia-group>.ia-reset-card[data-tone=ok]{box-shadow:inset 3px 0 0 var(--green)}
.ia-reset-line{font-weight:600;overflow-wrap:anywhere}
.ia-reset-checks{list-style:none;margin:8px 0 6px;padding:0;display:grid;gap:4px;color:var(--label-2)}
.ia-reset-checks li{overflow-wrap:anywhere}.ia-reset-checks span{display:inline-block;width:18px;color:var(--green)}
.ia-reset-checks li[data-ok="0"] span,.ia-reset-checks li[data-ok="0"] b{color:var(--red)}
.ia-reset-checks li[data-warn="1"] span,.ia-reset-checks li[data-warn="1"] b{color:var(--orange,#c77700)}
.ia-reset-checks b{margin-right:6px}
.ia-info-head{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}.ia-info-head h2{font-size:15px}
.ia-info-note{flex:1;color:var(--label-3);font-size:12px}
.ia-info-state{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px 16px;margin:0 0 12px}
.ia-info-state dt{font-size:11px;color:var(--label-3)}.ia-info-state dd{margin:0;overflow-wrap:anywhere}
.ia-info-feeds{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.ia-info-feeds h3{font-size:12px;color:var(--label-2);margin-bottom:4px}
.ia-feed{list-style:none;margin:0;padding:6px 8px;max-height:260px;overflow:auto;background:var(--fill);border-radius:var(--radius-control);font:11px/1.45 var(--mono);color:var(--label-2)}
.ia-feed li{padding:2px 0;border-bottom:1px solid var(--hairline);overflow-wrap:anywhere}.ia-feed li:last-child{border-bottom:0}
.ia-feed time{color:var(--label-3);margin-right:4px}.ia-feed b{color:var(--label)}.ia-feed b[data-ok="0"]{color:var(--red)}
.ia-feed-empty{color:var(--label-3)}
/* The section switch stays pinned at the top while the page scrolls, on a band of the page colour (the huge
   shadow, clipped to a strip) so nothing shows around it; Actions' sticky bar pins just under it.
   The band reaches only 14 px above the switch: any further covers the header and its voice switch. */
.interactive-page{--ia-tabs-pin:38px}
.ia-tabs{position:sticky;top:-8px;z-index:3;display:flex;width:fit-content;gap:2px;padding:3px;background:var(--fill-2);border-radius:11px;margin-bottom:18px;box-shadow:0 0 0 100vmax var(--bg);clip-path:inset(-14px -100vmax -10px)}
.ia-tabs button{white-space:nowrap;border:0;border-radius:8px;background:transparent;color:var(--label-2);font-size:13px;font-weight:600;height:30px;padding:0 14px}
.ia-tabs button:hover{color:var(--label)}
.ia-tabs button[aria-selected=true]{background:var(--surface);color:var(--label);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.ia-note{display:flex;align-items:center;gap:12px;max-width:640px;padding:18px 20px;background:var(--surface);border-radius:var(--radius-group);box-shadow:var(--shadow-card)}
.ia-note svg{color:var(--label-3)}
.ia-note p{font-size:13px}

/* The Studio pop-up: an action's simulator video and, for a dance, its music. Scrolls inside; the close stays. */
.ds-dialog{position:fixed;width:min(1080px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);margin:auto;padding:0;border:0;border-radius:var(--radius-card);background:var(--surface);color:var(--label);box-shadow:0 24px 64px rgba(17,24,39,.22),0 2px 8px rgba(17,24,39,.08);overflow:hidden}
.ds-dialog[open]{animation:ds-in .22s cubic-bezier(.23,1,.32,1)}
.ds-dialog::backdrop{background:rgba(17,24,39,.32);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
@keyframes ds-in{from{opacity:0;transform:translateY(8px) scale(.98)}}
.ds-dialog-body{max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain}
.ds-dialog .ia-note{margin:24px;box-shadow:none;background:var(--fill)}
.ds-close{position:absolute;top:14px;right:14px;z-index:3;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:var(--fill-2);color:var(--label-2);font-size:20px;line-height:1}
.ds-close:hover{background:var(--hover);color:var(--label)}
.ds-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ds-detail{padding:22px 28px 28px;min-width:0}
.ds-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-right:44px}
.ds-title-block{flex:1;min-width:0}
.ds-run{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:260px}
.ds-run-buttons{display:flex;gap:8px}
.ds-run .ds-btn-stop{min-width:0;height:36px}
.ds-run .ds-fine{margin:0;text-align:right}
.ds-name-row{font-size:24px;font-weight:650;letter-spacing:-.6px;line-height:1.25;display:flex;min-width:0}
.ds-name{display:inline-flex;align-items:center;gap:8px;max-width:100%;border:0;background:none;padding:1px 8px;margin-left:-8px;border-radius:9px;font:inherit;letter-spacing:inherit;color:var(--label);text-align:left}
.ds-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-name svg{width:15px;height:15px;color:var(--label-3);opacity:0;transition:opacity .15s}
.ds-name:hover:not(:disabled){background:var(--fill)}
.ds-name:hover svg,.ds-name:focus-visible svg{opacity:1}
.ds-name-input{font:inherit;letter-spacing:inherit;color:var(--label);width:min(440px,100%);padding:0 7px;margin-left:-8px;border:1px solid var(--accent);border-radius:9px;background:var(--surface);outline:3px solid var(--accent-wash)}
.ds-subline{display:flex;align-items:center;gap:10px;margin-top:3px;font-size:12px;color:var(--label-3)}
.ds-link{border:0;background:none;padding:0;font-size:12px;font-weight:600;color:var(--accent-text)}
.ds-link:hover:not(:disabled){text-decoration:underline}
.ds-link-danger{color:var(--red)}
.ds-error{font-size:12px;color:var(--red);margin-top:8px}
.ds-fine{font-size:12px;color:var(--label-3);margin-top:8px}
.ds-fine[data-tone=error]{color:var(--red)}

/* Buttons. */
.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 16px;border:0;border-radius:10px;font-size:13px;font-weight:650;white-space:nowrap;transition:background .15s,transform .08s}
.ds-btn svg{width:15px;height:15px;stroke-width:2.2}
.ds-btn:active:not(:disabled){transform:scale(.98)}
.ds-btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px rgba(0,113,227,.25)}
.ds-btn-primary:hover:not(:disabled){background:var(--accent-text)}
.ds-btn-primary svg{fill:currentColor}
.ds-btn-stop{background:var(--red);color:#fff;min-width:120px;height:40px;box-shadow:0 1px 2px rgba(215,0,21,.25)}
.ds-btn-stop:hover:not(:disabled){background:#b80012}
.ds-btn-stop svg{fill:currentColor}
.ds-btn-secondary{background:var(--fill-2);color:var(--label)}
.ds-btn-secondary:hover:not(:disabled){background:var(--hover);filter:brightness(.97)}
.ds-btn-danger{background:var(--red);color:#fff}
.ds-btn-small{height:30px;padding:0 12px;font-size:12px}
.ds-btn:disabled{background:var(--fill-2);color:var(--label-3);box-shadow:none;cursor:default}

/* Cool demo factor: stars (a radio group). */
.ds-stars{display:inline-flex;gap:1px}
.ds-star{display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:6px;background:none;color:var(--label-4);cursor:pointer}
.ds-star{color:var(--label-3)}
/* Hollow until chosen (James, 28 Oct: on a grey screen grey filled stars looked chosen); chosen ones are filled. */
.ds-star svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;transition:transform .12s cubic-bezier(.23,1,.32,1)}
.ds-star.is-on{color:var(--ds-star)}.ds-star.is-on svg{fill:currentColor}
.ds-stars:has(.ds-star:hover:not(:disabled)) .ds-star{color:var(--ds-star)}
.ds-stars:has(.ds-star:hover:not(:disabled)) .ds-star svg{fill:currentColor}
.ds-stars .ds-star:hover:not(:disabled)~.ds-star{color:var(--label-3)}.ds-stars .ds-star:hover:not(:disabled)~.ds-star svg{fill:none}
.ds-star:hover:not(:disabled) svg{transform:scale(1.12)}
.ds-star:focus-visible{outline:2px solid var(--accent);outline-offset:0}
.ds-star:disabled{cursor:default}
@keyframes ds-pulse{50%{opacity:.35}}

/* Preview and music. */
.ds-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin-top:18px}
@media(min-width:1000px){.ds-columns{grid-template-columns:minmax(0,1fr) 300px;align-items:start}.ds-columns.is-single{grid-template-columns:minmax(0,1fr)}}
.ds-name.is-fixed{cursor:default}
.ds-name.is-fixed svg{display:none}
.ds-stand-in{color:var(--label-2)}
.ds-stage{position:relative;aspect-ratio:16/9;border-radius:var(--radius-group);overflow:hidden;background:var(--fill)}
.ds-stage[data-state=loaded]{background:#000}
.ds-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.ds-poster{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:0;background:linear-gradient(180deg,var(--fill),var(--fill-2));color:var(--label-2);border-radius:inherit;outline-offset:-4px}
.ds-poster-play{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--surface);color:var(--accent);box-shadow:0 2px 10px rgba(17,24,39,.1);transition:transform .15s cubic-bezier(.23,1,.32,1)}
.ds-poster-play svg{width:22px;height:22px;fill:currentColor;margin-left:3px}
.ds-poster:hover:not(:disabled) .ds-poster-play{transform:scale(1.04)}
.ds-poster-caption{font-size:13px;font-weight:600}
.ds-stage[data-state=loading] .ds-poster-play{animation:ds-pulse 1.2s ease-in-out infinite}
.ds-takeover{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);padding:6px 12px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-size:12px;font-weight:600;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.ds-empty-preview{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;text-align:center}
.ds-empty-preview>svg{width:30px;height:30px;color:var(--label-3)}
.ds-empty-preview strong{font-size:15px;font-weight:650}
.ds-empty-preview p{font-size:12px;max-width:340px}
.ds-empty-preview .ds-btn{margin-top:4px}
.ds-transport{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;align-items:center;gap:6px 14px;margin-top:12px}
.ds-preview-toggle{min-width:108px}
.ds-preview-toggle svg{fill:currentColor}
.ds-scrub{position:relative;flex:1;height:28px;min-width:120px;border-radius:8px}
.ds-scrub:has(input:focus-visible){outline:3px solid #7ab8fb;outline-offset:2px}
.ds-track{position:absolute;left:0;right:0;top:50%;height:6px;transform:translateY(-50%);border-radius:3px;background:var(--fill-2)}
.ds-progress{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:3px;background:var(--accent)}
.ds-band{position:absolute;top:0;bottom:0;border-radius:3px;background:color-mix(in srgb,var(--accent) 26%,transparent)}
.ds-tick{position:absolute;top:-5px;width:2px;height:16px;margin-left:-1px;border-radius:1px;background:var(--label-3)}
.ds-tick[data-mark=command]{background:var(--label-2)}
.ds-tick[data-mark=dance_start]{background:var(--green-fill)}
.ds-head{position:absolute;top:50%;left:0;width:14px;height:14px;border-radius:50%;background:var(--surface);transform:translate(-50%,-50%);box-shadow:0 0 0 1px var(--hairline),0 1px 4px rgba(0,0,0,.2)}
.ds-scrub input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ds-scrub input:disabled{cursor:default}
.ds-time{font-size:12px;color:var(--label-2);font-variant-numeric:tabular-nums;min-width:96px;text-align:right}
.ds-cue-row{display:contents}
.ds-cue-label{justify-self:end;font-size:12px;color:var(--label-2)}
.ds-cue{position:relative;height:24px;border-radius:8px}
.ds-cue:has(input:focus-visible){outline:3px solid #7ab8fb;outline-offset:2px}
.ds-cue-track{position:absolute;left:0;right:0;top:50%;height:2px;transform:translateY(-50%);border-radius:1px;background:var(--fill-2)}
.ds-cue-thumb{position:absolute;top:50%;left:0;width:12px;height:12px;border-radius:50%;background:var(--accent);transform:translate(-50%,-50%);box-shadow:0 0 0 2px var(--surface),0 1px 3px rgba(0,0,0,.25);transition:transform .15s cubic-bezier(.23,1,.32,1)}
.ds-cue:hover .ds-cue-thumb,.ds-cue:active .ds-cue-thumb{transform:translate(-50%,-50%) scale(1.2)}
.ds-cue input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ds-cue input:disabled{cursor:default}
.ds-cue:has(input:disabled) .ds-cue-thumb{background:var(--label-3)}
@media(prefers-reduced-motion:reduce){.ds-cue-thumb{transition:none}}
.ds-legend{display:flex;flex-wrap:wrap;gap:4px 10px;margin:10px 0 0 -6px}
.ds-legend-item{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:3px 6px;border-radius:7px;font-size:12px;color:var(--label-2)}
button.ds-legend-item:hover:not(:disabled){background:var(--fill)}
button.ds-legend-item:disabled{cursor:default}
.ds-legend-time{color:var(--label-3);font-variant-numeric:tabular-nums}
.ds-legend-dot{width:8px;height:8px;border-radius:50%;background:var(--label-3)}
.ds-legend-item[data-mark=command] .ds-legend-dot{background:var(--label-2)}
.ds-legend-item[data-mark=dance_start] .ds-legend-dot{background:var(--green-fill)}
.ds-legend-band{width:14px;height:6px;border-radius:3px;background:color-mix(in srgb,var(--accent) 26%,transparent)}

.ds-music{background:var(--fill);border-radius:var(--radius-group);padding:16px 18px 18px;min-width:0}
.ds-music-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.ds-music-head h3{font-size:15px;font-weight:650;letter-spacing:-.2px}
.ds-music-status{font-size:12px;color:var(--label-3);font-variant-numeric:tabular-nums}
.ds-music-status[data-state=saving]{color:var(--accent-text)}
.ds-callout{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--orange-wash);color:var(--orange);font-size:12px;line-height:1.5}
.ds-callout code{font-size:11.5px;background:rgba(255,255,255,.7);padding:1px 5px;border-radius:5px;white-space:nowrap}
.ds-add-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ds-add-actions .ds-btn{background:var(--surface);box-shadow:0 0 0 1px var(--hairline)}
.ds-add-actions .ds-btn:disabled{box-shadow:none;background:var(--fill-2)}
.ds-link-form{display:flex;align-items:center;gap:8px;margin-top:10px}
.ds-link-form input,.ds-library select{min-width:0;height:34px;padding:0 10px;border:1px solid var(--separator);border-radius:10px;background:var(--surface);font-size:13px}
.ds-link-form input{flex:1}
.ds-library{display:grid;gap:6px;margin-top:14px}
.ds-library span{font-size:12px;color:var(--label-2)}
.ds-editor{display:grid;gap:14px;margin-top:12px}
.ds-track-row{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border-radius:10px;background:var(--surface)}
.ds-track-row svg{width:16px;height:16px;color:var(--accent)}
.ds-track-row div{display:grid;min-width:0}
.ds-track-row strong{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ds-track-row span{font-size:12px;color:var(--label-3)}
.ds-slider{display:grid;gap:4px;min-width:0}
.ds-slider-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.ds-slider label{font-size:12px;font-weight:600;color:var(--label-2)}
.ds-slider output{font-size:12px;color:var(--label);font-variant-numeric:tabular-nums}
.ds-slider input[type=range]{width:100%;margin:2px 0 0;accent-color:var(--accent)}
.ds-slider small{font-size:11px;color:var(--label-3)}
.ds-switch{display:inline-flex;align-items:center;gap:8px;margin-top:4px;font-size:12px;color:var(--label-2);cursor:pointer;justify-self:start}
.ds-switch input{appearance:none;-webkit-appearance:none;position:relative;width:30px;height:18px;margin:0;border-radius:9px;background:var(--fill-2);box-shadow:inset 0 0 0 1px var(--hairline);cursor:pointer;transition:background .15s}
.ds-switch input::before{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .15s cubic-bezier(.23,1,.32,1)}
.ds-switch input:checked{background:var(--green-fill)}
.ds-switch input:checked::before{transform:translateX(12px)}
.ds-more{border-top:1px solid var(--separator);padding-top:10px}
.ds-more summary{font-size:12px;font-weight:600;color:var(--label-2);cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:4px;border-radius:6px}
.ds-more summary::-webkit-details-marker{display:none}
.ds-more summary::before{content:"";width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg);margin:0 4px 0 2px;transition:transform .15s}
.ds-more[open] summary::before{transform:rotate(45deg)}
.ds-more[open]{display:grid;gap:14px}
.ds-remove{border-top:1px solid var(--separator);padding-top:12px}
.ds-remove-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--label-2)}
.ds-remove-confirm>span{flex-basis:100%}

/* Actions: the voice guide in sections, a button per action that sends it to Tony (no conversation) and, under
   it, the video button (the Studio pop-up). A sticky bar: the jump menu, what Tony is doing and Stop robot. */
.ia-actions{display:grid;gap:14px}
.ia-card{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:18px 22px}
.ia-card h2{font-size:15px;font-weight:650;letter-spacing:-.2px;margin-bottom:8px}
.ia-how-card{padding-top:12px;padding-bottom:12px}
.ia-how-card summary{display:flex;align-items:center;gap:8px;width:max-content;font-size:13px;font-weight:600;color:var(--label-2);cursor:pointer;list-style:none;border-radius:6px}
.ia-how-card summary::-webkit-details-marker{display:none}
.ia-how-card summary::before{content:"";width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg);margin:0 2px;transition:transform .15s}
.ia-how-card summary:hover{color:var(--label)}
.ia-how-card[open] summary::before{transform:rotate(45deg)}
.ia-how-card[open]{padding-bottom:18px}
.ia-how-card[open] summary{margin-bottom:10px}
.ia-how{margin:0;padding-left:18px;font-size:13px;line-height:1.55;color:var(--label-2)}
.ia-how li+li{margin-top:4px}
.ia-groups{display:grid;gap:14px}
.ia-group-note{margin:-2px 0 8px;font-size:12px;line-height:1.4;color:var(--label-2)}
/* The Difficulty cell's screen-reader text stays inside its table's scroller (on a phone it widened the page) */
.ia-group td.ia-effort{position:relative}
/* Fixed layout: the header sets the widths, padding included (dragged ones from the grips at each header's right edge);
   Say takes up the rest. */
.ia-group table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px}
.ia-group th{position:relative;text-align:left;font-weight:600;color:var(--label-3);padding:4px 10px 6px 0;border-bottom:1px solid var(--separator)}
.ia-group td{vertical-align:top;padding:7px 10px 7px 0;border-bottom:1px solid var(--separator);color:var(--label)}
.ia-group tr:last-child td{border-bottom:0}
.ia-group td{overflow-wrap:anywhere}
.ia-group th.ia-label{width:20%}.ia-group th.ia-desc{width:26%}.ia-group th.ia-remote-cell{width:16%}
.ia-group td.ia-label{font-weight:600}.ia-group td.ia-desc,.ia-group td.ia-remote-cell{color:var(--label-2)}
.ia-group tr.is-unavailable td{color:var(--label-3)}
.ia-group.is-rated th.ia-label{width:12%}.ia-group.is-rated th.ia-desc{width:15%}.ia-group.is-rated th.ia-remote-cell{width:8%}
.ia-group.is-rated th.ia-cool{width:128px}.ia-group.is-rated td.ia-cool{padding-top:2px;padding-bottom:2px;white-space:nowrap}
.ia-group.is-rated th.ia-comment{width:17%}.ia-group.is-rated td.ia-comment{padding-top:5px}
/* Difficulty: the score out of 10 as the headline, then each number with its word (the word lighter): "peak 1.3x" (peak
   motor effort) and "87.5% safe" (simulator success, orange under 100%). move_effort.py. Same on a phone (mobile.css). */
.ia-group th.ia-effort{width:86px}.ia-group.has-effort th.ia-comment{width:12%}.ia-group td.ia-effort{padding-top:4px;white-space:nowrap;overflow-wrap:normal;cursor:help}
.ia-score{line-height:1.2;color:var(--label-3);font-size:11px}.ia-score>span{margin-left:1px}
.ia-score b{font-size:15px;font-weight:600;color:var(--label);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.ia-effort-detail{margin-top:2px;font-size:11px;line-height:1.35;color:var(--label-2);font-variant-numeric:tabular-nums}
.ia-effort-detail>span{display:block}.ia-effort-detail .ia-k{color:var(--label-3)}.ia-effort-detail .ia-v{font-weight:500}
.ia-group td.ia-effort.is-none .ia-score b{color:var(--label-4);font-weight:500}.ia-group td.ia-effort.is-none .ia-effort-detail{color:var(--label-3)}
.ia-group tr.is-off td.ia-effort .ia-score b{color:var(--label-3)}
.ia-sim.is-short,.ia-sim.is-short .ia-k{color:var(--orange)}.ia-sim.is-short .ia-v{font-weight:600}
.ia-group th.ia-on,.ia-group td.ia-on{width:40px;padding-right:0}
.ia-group td.ia-on{padding-top:6px}.ia-group td.ia-on .ds-switch{margin-top:0}
.ia-group tr.is-off td:not(.ia-on){color:var(--label-3)}
.ia-group tr.is-off .ds-star.is-on{color:color-mix(in srgb,var(--ds-star) 45%,transparent)}
/* The seated lean (2 Nov 2026): a panel across the Chair table, right under Sit on chair. In a table that scrolls
   sideways (a phone) it stays in view: sticky on the left, as wide as the visible part (container units). */
.ia-group td.ia-lean-cell{padding:2px 0 10px}
.ia-table-scroll.has-lean{container-type:inline-size}
.ia-lean{position:sticky;left:0;box-sizing:border-box;width:min(560px,100cqw);display:grid;gap:6px;padding:10px 14px 12px;border-radius:12px;background:var(--fill);box-shadow:inset 3px 0 0 var(--accent);font-size:12px}
.ia-lean.is-off{box-shadow:inset 3px 0 0 var(--separator)}
.ia-lean-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.ia-lean-title{font-weight:650;color:var(--label)}
.ia-lean-value{font-weight:650;font-variant-numeric:tabular-nums;color:var(--accent-text)}
.ia-lean.is-off .ia-lean-value{color:var(--label-3)}
.ia-lean input[type=range]{width:100%;height:28px;margin:0;accent-color:var(--accent)}
.ia-lean-scale{display:flex;justify-content:space-between;color:var(--label-3);font-size:11px;margin-top:-4px}
.ia-lean-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ia-lean-buttons .ds-btn{height:34px;padding:0 8px;min-width:0}
.ia-lean-note{margin:0;color:var(--label-2);overflow-wrap:anywhere}
/* Send, then a divider, then the video button in its own column: far enough apart not to hit the wrong one. */
.ia-group th.ia-send{width:46px}.ia-group th.ia-send,.ia-group td.ia-send{padding-right:14px}
.ia-group th.ia-video{width:151px}.ia-group th.ia-video,.ia-group td.ia-video{padding-left:14px;padding-right:14px;border-left:1px solid var(--separator)}
.ia-group td.ia-send,.ia-group td.ia-video{padding-top:3px;padding-bottom:5px}
.ia-send-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:50%;background:var(--accent);color:#fff;cursor:pointer;transition:background .15s,transform .08s,opacity .15s}
.ia-send-btn svg{width:13px;height:13px;fill:currentColor;stroke:none;margin-left:2px}
.ia-send-btn.is-stop{background:var(--red)}.ia-send-btn.is-stop svg{margin-left:0}
.ia-send-btn.is-reset svg{margin-left:0;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.ia-send-btn:hover:not(:disabled){background:var(--accent-text)}.ia-send-btn.is-stop:hover:not(:disabled){background:#b80012}
.ia-send-btn:active:not(:disabled){transform:scale(.94)}
.ia-send-btn:focus-visible,.ia-video-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ia-send-btn:disabled{background:var(--fill-2);color:var(--label-3);cursor:default}
.ia-send-btn.is-armed,.ia-send-btn.is-armed:hover:not(:disabled){background:#ff9f0a;box-shadow:0 0 0 4px rgba(255,159,10,.28)}
.ia-video-btn{display:flex;align-items:center;justify-content:center;width:34px;height:30px;margin-top:1px;padding:0;border:0;border-radius:9px;background:var(--fill-2);color:var(--label-2);cursor:pointer;transition:background .15s,color .15s,transform .08s}
.ia-video-btn svg{width:17px;height:17px;stroke-width:1.8}
.ia-video-btn:hover{background:var(--accent-wash);color:var(--accent-text)}
.ia-video-btn:active{transform:scale(.94)}
/* The move's little loop, left of the video button: a still until hovered or tapped. */
.ia-media{display:flex;align-items:flex-start;gap:8px}
.ia-loop{position:relative;flex:none;width:80px;height:80px;padding:0;border:0;border-radius:12px;overflow:hidden;background:var(--fill-2);cursor:pointer;transition:transform .08s}
.ia-loop img,.ia-loop video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ia-loop:not(.has-still){visibility:hidden}  /* no recording yet: its place kept, so the columns line up */
.ia-loop video{opacity:0;transition:opacity .12s}.ia-loop video.is-on{opacity:1}
.ia-loop:active{transform:scale(.94)}
.ia-loop:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ia-send-hint,.ia-video-hint{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;vertical-align:-4px}
.ia-send-hint svg{width:8px;height:8px;fill:currentColor;stroke:none;margin-left:1px}
.ia-video-hint{width:22px;border-radius:6px;background:var(--fill-2);color:var(--label-2)}.ia-video-hint svg{width:13px;height:13px}
/* Column grips: a faint line at each resizable header's right edge, the accent while hovered or dragged. */
.ia-col-grip{position:absolute;top:0;bottom:0;right:-5px;z-index:1;width:10px;cursor:col-resize;touch-action:none;outline:none}
.ia-col-grip::after{content:"";position:absolute;left:4px;top:5px;bottom:7px;width:2px;border-radius:1px;background:var(--separator);transition:background .15s}
.ia-col-grip:hover::after,.ia-col-grip:focus-visible::after,body.ia-resizing .ia-col-grip:hover::after{background:var(--accent)}
body.ia-resizing,body.ia-resizing *{cursor:col-resize!important;user-select:none}
/* Descriptions: three lines at most; More (only under a longer one) opens the rest. */
.ia-desc-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.ia-group td.ia-desc.is-open .ia-desc-text{display:block;-webkit-line-clamp:unset}
.ia-desc-more{display:block;margin:2px 0 0;padding:0;border:0;background:none;font:inherit;font-size:11px;font-weight:600;color:var(--accent-text);cursor:pointer}
.ia-desc-more[hidden]{display:none}.ia-desc-more:hover{text-decoration:underline}
.ia-desc-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
/* Column order: drag a heading; a line shows where it will land. */
.ia-group th[data-move]{cursor:grab;user-select:none}
.ia-group th.is-moving{opacity:.4}
.ia-group th.is-drop-before{box-shadow:inset 3px 0 0 var(--accent)}.ia-group th.is-drop-after{box-shadow:inset -3px 0 0 var(--accent)}
body.ia-moving,body.ia-moving *{cursor:grabbing!important;user-select:none}
/* Comments: click (or tap) to edit in place. */
.ia-comment-btn{display:block;width:calc(100% + 12px);min-height:26px;margin:-2px -6px;padding:4px 6px;border:0;border-radius:7px;background:none;font:inherit;line-height:1.4;color:var(--label-2);text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;cursor:text}
.ia-comment-btn:hover:not(:disabled){background:var(--fill)}
.ia-comment-btn:focus-visible{outline:2px solid var(--accent);outline-offset:0}
.ia-comment-btn.is-empty::before{content:"Add a comment";color:var(--label-4)}
.ia-group tr:hover .ia-comment-btn.is-empty::before{color:var(--label-3)}
.ia-comment-btn:disabled{cursor:default}.ia-comment-btn:disabled::before{content:none}
.ia-comment-input{display:block;width:calc(100% + 12px);min-height:26px;max-height:140px;field-sizing:content;resize:none;margin:-2px -6px;padding:3px 5px;border:1px solid var(--accent);border-radius:7px;background:var(--surface);font:inherit;line-height:1.4;color:var(--label);outline:3px solid var(--accent-wash)}
.ia-name-btn{display:inline-flex;align-items:flex-start;gap:5px;max-width:calc(100% + 12px);margin:-3px -6px;padding:3px 6px;border:0;border-radius:7px;background:none;font:inherit;line-height:1.4;color:inherit;text-align:left;overflow-wrap:anywhere;cursor:text}
.ia-name-btn svg{flex:none;width:12px;height:12px;margin-top:2px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--label-3);opacity:.35;transition:opacity .15s}
.ia-name-btn:hover:not(:disabled){background:var(--fill)}
.ia-name-btn:hover svg,.ia-name-btn:focus-visible svg,.ia-group tr:hover .ia-name-btn svg{opacity:1}
.ia-name-btn:focus-visible{outline:2px solid var(--accent);outline-offset:0}
.ia-name-btn:disabled{cursor:default;color:var(--label-3)}
.ia-name-input{display:block;width:calc(100% + 12px);min-width:0;margin:-3px -6px;padding:2px 5px;border:1px solid var(--accent);border-radius:7px;background:var(--surface);font:inherit;line-height:1.4;color:var(--label);outline:3px solid var(--accent-wash)}
.ia-comment-error{display:block;margin-top:4px;color:var(--red);font-size:11px}
.ia-live{position:sticky;top:var(--ia-tabs-pin);z-index:2;display:flex;align-items:center;gap:12px;min-height:54px;padding:8px 10px;background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);font-size:13px}
.ia-jump{flex:none}
.ia-jump select{height:34px;max-width:220px;padding:0 28px 0 12px;border:0;border-radius:10px;background-color:var(--fill);font:inherit;font-size:13px;font-weight:650;color:var(--label);cursor:pointer;text-overflow:ellipsis}
.ia-jump select:hover{background-color:var(--fill-2)}
.ia-jump select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ia-jump[hidden]{display:none}
/* Rank by demo factor: every move in one list, coolest first. Lit while on. */
.ia-rank-all{flex:none;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:0;border-radius:10px;background:var(--fill);font:inherit;font-size:13px;font-weight:650;color:var(--label);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.ia-rank-all:hover{background:var(--fill-2)}
.ia-rank-all:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ia-rank-star{color:var(--label-3);font-size:14px;line-height:1}
.ia-rank-all[aria-pressed=true]{background:var(--accent-wash);color:var(--accent-text)}
.ia-rank-all[aria-pressed=true] .ia-rank-star{color:#ff9f0a}
.ia-live-send{display:flex;align-items:center;gap:12px;flex:1;min-width:0;padding-left:14px;border-left:1px solid var(--separator)}
.ia-live-send[hidden]{display:none}
.ia-live-send>span[role=status]{flex:1;min-width:0;overflow-wrap:anywhere;color:var(--label-2);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.ia-live[data-expanded] .ia-live-send>span[role=status]{display:block;-webkit-line-clamp:unset;line-clamp:none;overflow:visible;white-space:pre-wrap}
.ia-live-more{flex:none;font-size:13px}
.ia-live-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--green)}
.ia-live[data-tone=off] .ia-live-dot{background:var(--label-3)}.ia-live[data-tone=busy] .ia-live-dot{background:var(--accent)}
.ia-live[data-tone=error] .ia-live-dot{background:var(--red)}.ia-live[data-tone=error] .ia-live-send>span[role=status]{color:var(--red)}
.ia-live .ia-live-stop{min-width:0;height:34px;padding:0 14px}
.ia-group .ds-star{width:24px;height:24px}.ia-group .ds-star svg{width:15px;height:15px}
.ia-sort{display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:0;font:inherit;font-weight:600;color:inherit;white-space:nowrap}
.ia-sort:hover{color:var(--label)}
.ia-sort[aria-pressed=true]{color:var(--accent-text)}
.ia-sort[aria-pressed=true]::after{content:"\2193"}
.ia-sort.is-fixed{color:var(--accent-text)}
.ia-remote{margin-top:12px;padding-top:12px;border-top:1px solid var(--separator);font-size:12px;line-height:1.55;color:var(--label-2)}
.ia-remote strong{color:var(--label);font-weight:600}
.interactive-page kbd{font:600 11px/1 inherit;padding:2px 6px;border-radius:5px;background:var(--fill);color:var(--label);box-shadow:inset 0 0 0 1px var(--separator)}

/* Settings: the remote stop, after Chat's model, voice & key and robot audio. */
.ia-helper{border:1px solid #dfe6e6;border-radius:12px;margin-top:12px;background:#ffffffaa;padding:13px 17px;max-width:880px;box-sizing:border-box}
.ia-helper-row{display:flex;align-items:center;justify-content:space-between;gap:20px}
.ia-helper h2{font-size:11px;font-weight:600;color:#667d74}
.ia-helper .robot-helper-status{margin:0;font-size:10px;color:#8c9b96;text-align:right}
.ia-helper .robot-helper-status[data-state=update_waiting],.ia-helper .robot-helper-status[data-state=error]{color:var(--orange)}
.robot-helper-status .text-button{padding:0;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer}
.robot-helper-status .text-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ia-helper-note{margin-top:6px;font-size:11px;line-height:1.5;color:#7d8d93}
.ia-helper[hidden]{display:none}

/* A fourth workspace tab: keep the header within very narrow windows (below the app's minimum size). */
@media(max-width:600px){.has-performance-area .brand{flex:0 1 auto;min-width:0}.workspace-nav{min-width:0;overflow-x:auto;scrollbar-width:none}}
@media(max-width:1000px){.ds-detail{padding:18px 18px 20px}.interactive-page{padding:20px 22px 22px}}
@media(max-width:760px){.ia-header{flex-direction:column;align-items:stretch;gap:12px}}
@media(prefers-reduced-motion:reduce){.interactive-page *,.ds-dialog{animation:none!important;transition:none!important}}
.ds-fine[data-tone=warning]{color:var(--orange)}
