/* The same component is shared by Classique and Lab. */
#revoltxWorkspace{display:none}
#configChoices:has(#chooseRevoltx){display:flex;flex-wrap:wrap;justify-content:center;max-width:calc(var(--config-choice-columns,2)*var(--config-choice-size,300px) + (var(--config-choice-columns,2) - 1)*16px);gap:16px;margin:12px auto;align-items:stretch}
#patchDialog:not([data-view=choices]) #configChoices:has(#chooseRevoltx){display:none}
#configChoices:has(#chooseRevoltx) .configChoice{box-sizing:border-box;flex:0 0 var(--config-choice-size,300px);width:var(--config-choice-size,300px);height:var(--config-choice-size,300px);min-width:0;min-height:0;aspect-ratio:1;padding:22px;gap:12px}
.revoltxLibraryRow{display:flex;align-items:center;gap:10px;font-size:12px}
#revoltxLibrary{padding:6px;max-width:100%;min-width:0}
#patchDialog[data-view=revoltx] #fixtureWorkspace,#patchDialog[data-view=revoltx]> .bar{display:none}
html[data-interface] body[data-mode=patch]:not(.separateStageScreen) #patchDialog[data-view=revoltx]{height:var(--revoltx-height,calc(100dvh - 210px));max-height:var(--revoltx-height,calc(100dvh - 210px));overflow:hidden;display:flex;flex-direction:column}
#patchDialog[data-view=revoltx] #revoltxWorkspace{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}
#revoltxWorkspace .bar{gap:12px;flex-shrink:0;margin:0}
#revoltxWorkspace h2,#revoltxWorkspace h3{margin:0}
#revoltxWorkspace h2{font-size:22px}
#revoltxWorkspace h3{font-size:15px}
.revoltxCountForm{display:flex;align-items:flex-end;gap:12px;flex-shrink:0}
.revoltxCountForm label{display:flex;align-items:center;gap:12px;font-size:14px}
#revoltxCount{width:105px}
#revoltxCount,#revoltxJump,#revoltxModelSearch{background:#101722;color:#edf4fa;border:1px solid #43526a;border-radius:7px;padding:7px}
#revoltxStatus{margin:0;color:#b8d8e7;font-size:13px;flex-shrink:0;min-height:18px}
#revoltxStatus.error,#revoltxAssignError{color:#ffabab}
#revoltxEmpty{margin:16px 0}
.revoltxBody{display:flex;flex-direction:column;gap:14px;flex:1;min-height:0}
.revoltxBody[hidden]{display:none}
.revoltxPanel{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0}
.revoltxChannelsPanel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;flex:none}
.revoltxChannelsPanel h3,.revoltxChannels{grid-column:1/-1}
.revoltxChannelsPanel .revoltxJumpForm{grid-column:2;grid-row:3}
.revoltxResultsPanel{flex:1}
.revoltxChannels{display:grid;grid-template-columns:repeat(var(--revoltx-channel-columns,8),minmax(0,1fr));grid-template-rows:60px;gap:8px;min-height:0}
.revoltxChannel{display:grid;grid-template-columns:18px minmax(0,1fr);grid-template-rows:22px auto;align-content:center;justify-items:center;column-gap:4px;row-gap:3px;text-align:center;padding:6px;min-width:0;min-height:42px;border:1px dashed #42516a;background:#171f2b}
.revoltxChannel.known{border-style:solid;border-color:#53bfd1;background:#203442}
.revoltxChannelNumber{grid-column:1;grid-row:1;justify-self:start;color:#9ab2c9;font-size:12px;font-variant-numeric:tabular-nums}
.revoltxChannel>.revoltxIcon{grid-column:1/-1;grid-row:1}
.revoltxChannel strong{grid-column:1/-1;grid-row:2;font-size:12px;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.revoltxIcon{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;color:currentColor}
.revoltxIcon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.revoltxIcon:has(svg+svg) svg{width:17px;height:17px}
.revoltxPager{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;flex-shrink:0;min-width:0}
.revoltxPager button{padding:5px 12px}
.revoltxPager span{min-width:0;overflow-wrap:anywhere}
.revoltxJumpForm{display:flex;align-items:center;gap:8px;font-size:12px;flex-shrink:0}
.revoltxJumpForm input{width:80px;padding:5px}
.revoltxJumpForm button{padding:5px 10px}
.revoltxSearchLabel{font-size:12px}
#revoltxModelSearch{padding:7px;min-width:0;width:100%}
#revoltxResults{width:100%;min-width:0;min-height:80px;flex:1;font-size:12px;padding:4px;white-space:nowrap}
#revoltxResults option{padding:5px}
#revoltxNoResults{margin:0;font-size:12px}
#revoltxCompare{font-size:12px;padding:8px}
.revoltxFootnote{margin:0;font-size:11px;color:#a8b8ca;flex-shrink:0}
.revoltxDialog{width:min(900px,calc(100vw - 40px));max-height:85dvh;overflow:auto;box-sizing:border-box;padding:20px}
.revoltxDialog .bar{gap:14px;align-items:center}
.revoltxDialog h2{font-size:20px;overflow-wrap:anywhere}
.revoltxRoleTools{display:flex;align-items:flex-end;gap:12px;margin:12px 0}
.revoltxRoleTools label{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0;font-size:13px}
.revoltxRoleTools input{width:100%;min-width:0}
.revoltxRoles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.revoltxRole{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;min-width:0;padding:10px 6px;min-height:90px;overflow-wrap:anywhere}
.revoltxRole[aria-pressed=true]{border-color:#5bc5db;background:#244451}
.revoltxRole strong{font-size:12px}
.revoltxRole small{font-size:11px;color:#b9cadd}
.revoltxDialog table{width:100%;border-collapse:collapse}
.revoltxDialog td,.revoltxDialog th{padding:8px;text-align:left;border-bottom:1px solid #344154}
.revoltxDialog td small{display:block;color:#9fb4ca}
@media(max-height:700px) and (min-width:701px){
 #revoltxWorkspace{gap:5px!important}.revoltxChannel{display:flex;align-items:center;gap:5px;padding:5px;text-align:left}.revoltxChannels{gap:5px;grid-template-rows:42px}.revoltxPanel{gap:5px}.revoltxFootnote{display:none}.revoltxCountForm input,.revoltxCountForm button{padding:6px}
 #revoltxWorkspace>.bar button{padding:7px 10px;font-size:12px}.revoltxBody{gap:8px}
 .revoltxSearchLabel{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#revoltxResults{min-height:40px}
}
@media(max-width:700px){
 html[data-interface] body[data-mode=patch]:not(.separateStageScreen) #patchDialog[data-view=revoltx]{overflow:auto;height:auto}
 .revoltxBody{flex:none}.revoltxChannels{grid-template-rows:52px}
 .revoltxChannelsPanel{grid-template-columns:minmax(0,1fr)}.revoltxChannelsPanel .revoltxJumpForm{grid-column:1;grid-row:auto}
 #configChoices:has(#chooseRevoltx) .configChoice{padding:14px;gap:8px}#configChoices:has(#chooseRevoltx) .choiceIcon{font-size:28px}#configChoices:has(#chooseRevoltx) .configChoice strong{font-size:18px}#configChoices:has(#chooseRevoltx) .configChoice>span:not(.choiceIcon):not(.choiceGo){font-size:11px;line-height:1.3}
 .revoltxCountForm{flex-wrap:wrap}.revoltxCountForm label{flex-wrap:wrap}.revoltxRoles{grid-template-columns:repeat(3,minmax(0,1fr))}
 #revoltxResults{height:160px;flex:none}.revoltxRoleTools{align-items:stretch;flex-direction:column}
}
@media print{#revoltxWorkspace,.revoltxDialog{display:none!important}}

/* Readable discovery desks: channels in one vertical list, matches on the right. */
#revoltxWorkspace{--rx-cyan:#75e1ed}
#revoltxWorkspace h2{font-size:26px;color:var(--rx-cyan)}
#revoltxWorkspace h3{font-size:18px;color:#a0eff5}
#revoltxWorkspace button,#revoltxWorkspace input,#revoltxWorkspace select{font-size:15px}
.revoltxCountForm label{font-size:16px}
#revoltxStatus{font-size:15px;color:#a2e4ec;min-height:22px}
.revoltxBody{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.35fr);gap:18px}
.revoltxPanel{border:1px solid #344c60;border-radius:10px;background:#151f2b;padding:12px}
.revoltxChannelsPanel{display:flex;flex-direction:column;background:linear-gradient(155deg,#17343d,#172331)}
.revoltxResultsPanel{background:linear-gradient(155deg,#1b2a3c,#17212e)}
.revoltxChannels{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(var(--revoltx-visible-rows,8),minmax(36px,1fr));flex:1;gap:7px}
.revoltxChannel{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:7px 10px;text-align:left;background:#1b2b39;min-height:36px}
.revoltxChannelNumber{width:26px;flex-shrink:0;font-size:14px;color:#b2d3e0}
.revoltxChannel>.revoltxIcon{color:#8de2ef}
.revoltxChannel strong{font-size:16px;white-space:nowrap}
.revoltxChannel.known{background:linear-gradient(120deg,#225763,#244059);border-color:#65d5e2}
.revoltxPager{font-size:14px}
.revoltxJumpForm{font-size:14px;flex-wrap:wrap}
.revoltxChannelsPanel .revoltxJumpForm{grid-column:auto;grid-row:auto}
.revoltxSearchLabel,.revoltxLibraryRow{font-size:14px}
#revoltxResults,#revoltxResults option{font-size:15px}
#revoltxResults option:checked{background:#285a6d;color:#e8fcff}
#revoltxCompare{font-size:15px;background:#63d1de;border-color:#63d1de;color:#0e2730}
.revoltxFootnote{font-size:12px}
.revoltxRole strong{font-size:14px}.revoltxRole small{font-size:12px;color:#d0e4ef}.revoltxRole .revoltxIcon{color:#91e5ed}.revoltxRole[aria-pressed=true]{background:#235862}
.revoltxDialog h2{font-size:23px}.revoltxRoleTools label{font-size:15px}.revoltxRoleTools input{font-size:16px}
.revoltxDialog td,.revoltxDialog th{font-size:14px}.revoltxDialog td small{font-size:13px}
@media(max-height:800px) and (min-width:701px){.revoltxPanel{padding:8px;gap:6px}.revoltxFootnote{display:none}.revoltxBody{gap:12px}}
@media(max-width:700px){.revoltxBody{grid-template-columns:minmax(0,1fr)}.revoltxChannels{grid-template-rows:repeat(var(--revoltx-visible-rows,4),48px);flex:none}.revoltxResultsPanel{min-height:330px}}

/* Warm actions and distinct attribute families, shared by both interfaces. */
#revoltxWorkspace{background:linear-gradient(145deg,#252b35,#192530 70%);padding:10px;border-radius:10px}
#revoltxWorkspace h2{color:#ffd09d}
#revoltxStart{background:#e8b373;border-color:#f2c58d;color:#2c2015}
#revoltxRoleClear{background:#422d3d;border-color:#a46b87;color:#ffd0e2}
.revoltxResultsPanel{border-color:#716047;background:linear-gradient(155deg,#343127,#202937)}
#revoltxWorkspace .revoltxResultsPanel h3{color:#ffdaa3}
#revoltxLibrary{background:#443729;border-color:#a77840;color:#ffdda7}
#revoltxResults{background:#172432;border-color:#607487;color:#e1edf6}
#revoltxResults option:nth-child(even){background:#203244}
#revoltxResults option:checked{background:#71603a;color:#fff1cd}
.revoltxChannel{border-left:4px solid #687a90}
.revoltxChannel.known{border-color:var(--role-edge,#9f9ae8);border-left-width:4px;background:linear-gradient(110deg,var(--role-bg,#37324e),#202c3b);color:var(--role-ink,#ded9ff)}
.revoltxChannel[data-family=movement]{--role-edge:#60d3e2;--role-bg:#214b57;--role-ink:#a1f3fb}
.revoltxChannel[data-family=intensity]{--role-edge:#e8b35e;--role-bg:#52432a;--role-ink:#ffe0a2}
.revoltxChannel[data-family=color]{--role-edge:#ca91e8;--role-bg:#493250;--role-ink:#f2c8ff}
.revoltxChannel[data-family=control]{--role-edge:#ed90a4;--role-bg:#51333f;--role-ink:#ffc8d4}
.revoltxChannel[data-family=effect]{--role-edge:#8ba8f4;--role-bg:#2c3c62;--role-ink:#c9d9ff}
.revoltxChannel.known>.revoltxIcon{color:var(--role-ink)}
.revoltxChannel:hover{filter:brightness(1.16)}
.revoltxChannel:focus-visible{outline:2px solid #fff0bc;outline-offset:2px}
