/* A single state palette. Idle control surfaces remain in drum-workshop.css. */
.drums-workshop{
 --interaction-hover-bg:var(--workshop-sage);
 --interaction-pressed-bg:#d3e1d5;
 --interaction-hover-border:var(--workshop-hit);
 --primary-hover-bg:#294936;
 --primary-pressed-bg:#213d2c;
 --danger-fg:#a63a32;
 --danger-hover-bg:color-mix(in srgb,var(--danger-fg) 12%,var(--workshop-paper));
 --danger-pressed-bg:color-mix(in srgb,var(--danger-fg) 22%,var(--workshop-paper));
 --focus-ring:var(--workshop-green);
}
html[data-drums-theme=dark] .drums-workshop{
 --interaction-hover-bg:var(--workshop-sage);
 --interaction-pressed-bg:#3d5745;
 --interaction-hover-border:#7c9a86;
 --primary-hover-bg:#50765d;
 --primary-pressed-bg:#3f654d;
 --danger-fg:#f09b91;
}
/* Reset private inherited paint at every control boundary, including fields in
   checkbox labels. A hovered label must not repaint the checked switch itself. */
.drums-workshop :where(button,summary,input,select,textarea,label:has(>input[type=checkbox])){
 --interaction-surface:initial;--interaction-border:initial;--interaction-ink:initial;
}
.drums-workshop :where(button:not(.cell):not(.chain-bar-hit),summary,label:has(>input[type=checkbox])){
 --state-hover-bg:var(--interaction-hover-bg);
 --state-pressed-bg:var(--interaction-pressed-bg);
 --state-hover-ink:initial;--state-hover-border:var(--interaction-hover-border);
}
.drums-workshop :where(button){background:var(--interaction-surface,white);color:var(--interaction-ink,inherit)}
.drums-workshop :where(summary,label:has(>input[type=checkbox])){background:var(--interaction-surface,transparent);border-radius:5px}
/* Selected state remains recognisably selected; hover never looks like toggling. */
.drums-workshop :where(button:is([aria-selected=true],[aria-pressed=true])){
 --state-hover-bg:color-mix(in srgb,var(--workshop-sage) 94%,var(--workshop-green));
 --state-pressed-bg:var(--interaction-pressed-bg);
}
.drums-workshop :where(.primary,#play,#sequence-play){
 --state-hover-bg:var(--primary-hover-bg);--state-pressed-bg:var(--primary-pressed-bg);
}
.drums-workshop :where(.drum-clear-button,.chain-delete-bar,.danger-action,.part-clear-action){
 --state-hover-bg:var(--danger-hover-bg);--state-pressed-bg:var(--danger-pressed-bg);--state-hover-ink:var(--danger-fg);--state-hover-border:var(--danger-fg);
}
/* PDF controls retain their existing state rules. Text disclosures use ink-only hover. */
.drums-workshop :where(.note-scale-control:not(.screen-note-scale) .note-scale-buttons button,.notation-help>summary,.desktop-instrument-picker>summary,.chain-help>summary){
 --state-hover-bg:transparent;--state-hover-ink:var(--site-ink);--state-hover-border:var(--site-line);
}
.drums-workshop :where(.tempo-step,.tempo-readout){color:var(--interaction-ink,var(--site-ink))}
.drums-workshop :where(.notation-help>summary,.desktop-instrument-picker>summary,.chain-help>summary){--state-pressed-bg:transparent}
.drums-workshop :is(.notation-help,.desktop-instrument-picker,.chain-help)>summary{color:var(--interaction-ink,var(--site-muted))}
.drums-workshop :where(.workshop-menu-toggle,#score-preferences-toggle,#chain-view-toggle)[aria-expanded=true]{background:var(--interaction-surface,var(--workshop-sage))}
/* Screen-only numeric segments share the existing theme palette. */
.drums-workshop :where(.tempo-step,.tempo-readout,.screen-note-scale button,.screen-note-scale input,#tempo,#sequence-tempo){
 --state-hover-bg:var(--interaction-hover-bg);--state-pressed-bg:var(--interaction-pressed-bg);--state-hover-ink:var(--site-ink);--state-hover-border:var(--site-line);
}
/* Hover only on hover-capable pointers. The last real pointer distinguishes a
   touch on hybrid devices from their still-attached mouse. */
@media(hover:hover) and (pointer:fine){
 :where(html:not([data-interaction-pointer=touch])) .drums-workshop :where(button:not(.cell):not(.chain-bar-hit),summary,label:has(>input[type=checkbox]),#tempo,#sequence-tempo,.screen-note-scale input):where(:not(:disabled):not([aria-disabled=true]):not(:has(>input:disabled))):hover{
  --interaction-surface:var(--state-hover-bg);--interaction-border:var(--state-hover-border);--interaction-ink:var(--state-hover-ink);
 }
 html:not([data-interaction-pointer=touch]) .drums-workshop:not(:has(.chain-drag-ghost:not([hidden]))) .chain-bar-hit:not([data-selected=true]):not([data-range-selected=true]):not([data-active=true]):hover{
  background:color-mix(in srgb,var(--workshop-hit) 12%,transparent)!important;
 }
}
.drums-workshop :where(button:not(.cell):not(.chain-bar-hit),summary,label:has(>input[type=checkbox]),#tempo,#sequence-tempo,.screen-note-scale input):where(:not(:disabled):not([aria-disabled=true]):not(:has(>input:disabled))):active{
 --interaction-surface:var(--state-pressed-bg);--interaction-border:var(--state-hover-border);--interaction-ink:var(--state-hover-ink);
}
/* Drag feedback survives leaving the readout and clears on all existing ends. */
.drums-workshop :is(.tempo-readout.tempo-dragging,.note-scale-dragging){--interaction-surface:var(--state-pressed-bg)}
.drums-workshop .note-scale-value button{cursor:ew-resize}
html[data-drums-focus=keyboard] .drums-workshop :where(.drums-file-menu button,.chain-menu button,.desktop-local-menu button):focus-visible:not(:active){--interaction-surface:var(--state-hover-bg)}
.drums-workshop :is(button,summary,input,select,textarea,a[href]):focus-visible{
 outline:2px solid var(--focus-ring);outline-offset:3px;
}
html[data-drums-focus=keyboard] .drums-workshop label:has(>input[type=checkbox]:focus-visible){outline:2px solid var(--focus-ring);outline-offset:3px}
.drums-workshop label>input[type=checkbox]:focus-visible{outline:none}
.drums-workshop :where(button:not(.cell)):is(:disabled,[aria-disabled=true]){opacity:.45;cursor:default}
/* No dimensions, transforms, shadows, animation or scroll settings change here. */
/* Native notation selects keep their platform popup and keyboard behavior. */
@media(hover:hover) and (pointer:fine){
 :where(html:not([data-interaction-pointer=touch])) .drums-workshop select.notation-select:not(:disabled):hover{border-color:var(--interaction-hover-border)}
}
.drums-workshop select.notation-select:disabled{opacity:.45;cursor:default}
