/* EMWave v1.4.5a — Source Dock specificity repair.
   Based on v1.4.5a ownership extraction; removes only superseded duplicate Source Dock overrides.
   Rules moved 1:1 from instrument.css; no selector or visual changes intended. */


.source-control{
  grid-template-columns:46px minmax(116px,1fr) 64px;
}
.source-control select{
  width:100%;
  height:20px;
  min-width:0;
  border:1px solid var(--control-input-border);
  border-radius:1px;
  background:var(--control-input-bg);
  color:var(--control-text);
  font-family:"Roboto Mono","Consolas",monospace;
  font-size:10px;
  font-variant-numeric:tabular-nums;
  padding:0 4px;
}
.source-control select:focus{
  outline:1px solid var(--control-focus);
  border-color:var(--control-focus);
  background:var(--control-input-bg-focus);
}
.source-note-label{
  color:var(--color-text-muted);
  font-size:var(--font-size-xs);
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.source-note{
  color:var(--color-text-ui);
  font-family:"Roboto Mono","Consolas",monospace;
  font-size:10px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
body.source-mode-external .source-control{
  border-color:rgba(143,212,255,.42);
  background:linear-gradient(180deg,#121a24,#10151d);
}
body.source-mode-external .control-tab[data-control-view="primary"]::after{
  content:" · manual";
  color:#626c7a;
  font-weight:500;
}
body:not(.help-page) .global-control-bar .source-control{
  display:grid;
  grid-template-columns:48px minmax(130px,1fr) 66px;
  grid-template-rows:14px 20px 17px 17px 22px 16px;
  gap:4px 8px;
  align-content:start;
}
.source-control .channel-title{ grid-column:1 / -1; grid-row:1; }
.source-control label[for="signalSourceMode"]{ grid-column:1; grid-row:2; }
.source-control .source-note-label:nth-of-type(1){ grid-column:1; grid-row:3; }
.source-control .source-note-label:nth-of-type(2){ grid-column:1; grid-row:4; }
body:not(.help-page) .global-control-bar .source-control{
  grid-template-rows:14px 20px 17px 17px 20px 22px 16px;
}
.source-control .source-quality-label{ grid-column:1; grid-row:5; }
.source-control .source-quality-select{ grid-column:2; grid-row:5; }
.source-control .source-quality-value{ grid-column:3; grid-row:5; }
.source-quality-select{
  width:100%;
  height:20px;
  min-width:0;
  border:1px solid var(--control-input-border);
  border-radius:1px;
  background:var(--control-input-bg);
  color:var(--control-text);
  font-family:"Roboto Mono","Consolas",monospace;
  font-size:10px;
  padding:0 4px;
}
.source-quality-select:focus{ outline:1px solid var(--control-focus); border-color:var(--control-focus); background:var(--control-input-bg-focus); }
.source-quality-value{
  color:#b9d7ff;
  font-family:"Roboto Mono","Consolas",monospace;
  font-size:10px;
  line-height:20px;
  text-align:right;
}
body:not(.help-page) .global-control-bar .source-control{
  grid-template-rows:14px 20px 18px 18px 20px 24px 18px;
  row-gap:5px;
  padding-top:8px;
}
body.source-mode-external:not(.help-page) .plot-deck{
  grid-template-columns:.82fr 1.42fr .82fr;
}
body.source-mode-external:not(.help-page) .field-card{
  box-shadow:inset 0 0 0 1px rgba(143,212,255,.08), inset 0 0 48px rgba(143,212,255,.025);
}
body.source-mode-external:not(.help-page) .field-label::after{
  content:"Audio Observatory";
  margin-left:auto;
  color:#8fd4ff;
  font-family:"Roboto Mono","Consolas",monospace;
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.82;
}
body.source-mode-external.audio-quality-freeze:not(.help-page) .plot-deck{
  grid-template-columns:.72fr 1.72fr .72fr;
}
body.source-mode-external.audio-quality-freeze:not(.help-page) .field-label::after{
  content:"Frozen Geometry Specimen";
  color:#dff2ff;
}
body.source-mode-external.audio-quality-freeze:not(.help-page) .field-card{
  box-shadow:inset 0 0 0 1px rgba(143,212,255,.16), inset 0 0 70px rgba(143,212,255,.05);
}
body.source-mode-external.audio-quality-freeze #plot .gl-container{
  filter:drop-shadow(0 0 12px rgba(143,212,255,.18));
}@media (max-width:1500px){

  body.source-mode-external:not(.help-page) .plot-deck,
  body.source-mode-external.audio-quality-freeze:not(.help-page) .plot-deck{
    grid-template-columns:1fr 1fr;
    grid-template-rows:minmax(0,1fr) 38%;
  }
  body.source-mode-external:not(.help-page) .field-card{
    grid-column:2 / 3;
    grid-row:1 / 2;
  }
  body.source-mode-external:not(.help-page) .scope-card{
    grid-column:1 / 2;
    grid-row:1 / 2;
  }
  body.source-mode-external:not(.help-page) .analysis-card{
    grid-column:1 / -1;
    grid-row:2 / 3;
  }
}@media (max-width:820px){

  body.source-mode-external:not(.help-page) .plot-deck,
  body.source-mode-external.audio-quality-freeze:not(.help-page) .plot-deck{
    grid-template-columns:1fr;
    grid-template-rows:330px 430px 360px;
  }
  body.source-mode-external:not(.help-page) .scope-card,
  body.source-mode-external:not(.help-page) .field-card,
  body.source-mode-external:not(.help-page) .analysis-card{
    grid-column:auto;
    grid-row:auto;
  }
}
body:not(.help-page) .global-control-bar .source-control{
  grid-template-rows:14px 20px 18px 18px 20px 18px 24px 18px;
  row-gap:4px;
}
.hybrid-mix-label,
.hybrid-mix-value,
.hybrid-mix-slider{ display:none !important; }
.hybrid-mix-value{
  color:#b9d7ff;
  font-family:"Roboto Mono","Consolas",monospace;
  font-size:10px;
  line-height:18px;
  text-align:right;
}
body.source-mode-hybrid .source-control{
  border-color:rgba(137,209,133,.55);
  background:linear-gradient(180deg,#121d18,#10151d);
}
body:not(.help-page) .global-control-bar .source-control{
  grid-template-rows:14px 20px 18px 18px 20px 18px 24px 24px 18px;
  row-gap:4px;
}
body:not(.help-page) .global-control-bar > .source-control{
  min-height:210px;
}
body:not(.help-page) .source-dock{
  grid-column:1 / 2;
  grid-row:2 / 3;
  min-width:0;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  background:#0d1118;
  border-right:1px solid var(--color-border-soft);
  scrollbar-width:thin;
  scrollbar-color:var(--control-border) #0d1118;
}
body:not(.help-page) .dock-titlebar{
  position:sticky;
  top:0;
  z-index:40;
  height:24px;
  display:flex;
  align-items:center;
  padding:0 10px;
  border-bottom:1px solid var(--color-border-soft);
  background:#10151d;
  color:#8fd4ff;
  font-family:"Roboto Mono","Consolas",monospace;
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
body:not(.help-page) .source-dock .global-control-bar > .channel,
body:not(.help-page) .source-dock .control-deck > .channel{
  position:relative;
  width:100%;
  min-width:0;
  height:auto;
  min-height:0;
  padding:8px 10px;
  overflow:visible;
  border-right:none;
  border-bottom:1px solid var(--color-border-soft);
  background:var(--control-input-bg-focus);
}
body:not(.help-page) .source-dock .channel-title{
  height:16px;
  line-height:16px;
  margin:0 0 2px;
  color:var(--control-text);
}
body:not(.help-page) .source-dock .source-control,
body:not(.help-page) .source-dock .channel-count-control,
body:not(.help-page) .source-dock .audio-control{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 54px;
  grid-auto-rows:minmax(18px,auto);
  gap:4px 7px;
  align-content:start;
}
body:not(.help-page) .source-dock .source-control{
  min-height:0;
}
body:not(.help-page) .source-dock .time-control{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 58px;
  grid-auto-rows:minmax(18px,auto);
  gap:4px 7px;
  align-content:start;
}
body:not(.help-page) .source-dock .time-control .channel-title{ grid-column:1 / -1; grid-row:auto; }
body:not(.help-page) .source-dock .time-control label[for="timeDomainInput"]{ grid-column:1; grid-row:auto; }
body:not(.help-page) .source-dock .time-control .time-stepper{ grid-column:2; grid-row:auto; }
body:not(.help-page) .source-dock .time-control #timeDomainValue{ grid-column:3; grid-row:auto; }
body:not(.help-page) .source-dock .time-control .time-presets{ grid-column:1 / -1; grid-row:auto; grid-template-columns:repeat(5,minmax(0,1fr)); }
body:not(.help-page) .source-dock .time-control label[for="animationSpeedInput"]{ grid-column:1; grid-row:auto; }
body:not(.help-page) .source-dock .time-control .speed-stepper{ grid-column:2; grid-row:auto; }
body:not(.help-page) .source-dock .time-control #animationSpeedValue{ grid-column:3; grid-row:auto; }
body:not(.help-page) .source-dock .time-control .speed-presets{ grid-column:1 / -1; grid-row:auto; grid-template-columns:repeat(7,minmax(0,1fr)); }
body:not(.help-page) .source-dock .time-control #toggleAnimation{ grid-column:1 / -1; grid-row:auto; height:24px; min-height:24px; }
body:not(.help-page) .source-dock .time-control .time-stepper,
body:not(.help-page) .source-dock .time-control .speed-stepper{
  display:grid;
  grid-template-columns:22px minmax(0,1fr) 22px;
  gap:4px;
  min-width:0;
}
body:not(.help-page) .source-dock .time-control .time-button,
body:not(.help-page) .source-dock .time-control .time-presets button,
body:not(.help-page) .source-dock .time-control .speed-presets button{
  grid-column:auto;
  width:auto;
  margin:0;
  padding:0 2px;
}
body:not(.help-page) .source-dock .time-control .time-presets button,
body:not(.help-page) .source-dock .time-control .speed-presets button{
  height:17px;
  min-height:17px;
  font-size:8px;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master){
  display:grid;
  grid-template-columns:32px minmax(0,1fr) 52px 56px;
  grid-auto-rows:18px;
  gap:4px 7px;
  min-height:110px;
  align-content:start;
}
body:not(.help-page) .source-dock .freq-number{ width:56px; }
body:not(.help-page) .source-dock .amp-stepper{
  display:grid;
  grid-template-columns:22px minmax(0,1fr) 22px;
  gap:4px;
}
body.plot-focus:not(.help-page) .source-dock{
  display:none !important;
}@media (max-width:820px){

  body:not(.help-page) .source-dock{
    grid-column:1;
    grid-row:2;
    max-height:none;
    overflow:visible;
    border-right:none;
    border-bottom:1px solid var(--color-border-soft);
  }
}
body:not(.help-page) .source-dock{
  display:block;
  visibility:visible;
  opacity:1;
  z-index:12;
}
body:not(.help-page) .source-dock .global-control-bar,
body:not(.help-page) .source-dock .control-deck{
  display:block;
  visibility:visible;
  opacity:1;
}
body:not(.help-page) .source-dock .global-control-bar > .channel,
body:not(.help-page) .source-dock .control-deck > .channel,
body:not(.help-page).control-view-primary .source-dock [data-control-group],
body:not(.help-page).control-view-secondary .source-dock [data-control-group],
body:not(.help-page).control-view-utility .source-dock [data-control-group],
body:not(.help-page).analysis-mode-atlas .source-dock [data-control-group],
body:not(.help-page).analysis-mode-landscape .source-dock [data-control-group],
body:not(.help-page).analysis-mode-discovery .source-dock [data-control-group],
body:not(.help-page).analysis-mode-heatmap .source-dock [data-control-group]{
  display:grid;
  visibility:visible;
  opacity:1;
}
body:not(.help-page) .source-dock .source-control,
body:not(.help-page) .source-dock .channel-count-control,
body:not(.help-page) .source-dock .audio-control{
  display:grid;
  grid-template-columns:46px minmax(0,1fr) 54px;
}
body:not(.help-page) .source-dock .time-control{
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 58px;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master){
  display:grid;
  grid-template-columns:32px minmax(0,1fr) 52px 56px;
}
body:not(.help-page) .source-dock .statusbar,
body:not(.help-page) .source-dock .plot-deck,
body:not(.help-page) .source-dock .analysis-card,
body:not(.help-page) .source-dock .field-card,
body:not(.help-page) .source-dock .scope-card{
  display:none !important;
}
body:not(.help-page).analysis-large-dock-active .source-dock{
  grid-column:1 / 2;
  grid-row:2 / 3;
  height:100%;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
}
body:not(.help-page) .source-dock{
  contain:layout style;
}
body:not(.help-page) .source-dock select,
body:not(.help-page) .source-dock input[type="number"],
body:not(.help-page) .source-dock input[type="range"]{
  min-width:0;
}
body:not(.help-page) .source-dock output,
body:not(.help-page) .source-dock .source-note,
body:not(.help-page) .source-dock .setup-note,
body:not(.help-page) .source-dock .audio-source{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body:not(.help-page) .source-dock .source-control{
  grid-template-columns:48px minmax(0,1fr) 58px;
  grid-auto-rows:minmax(19px,auto);
  row-gap:5px;
}
body:not(.help-page) .source-dock .channel-count-control,
body:not(.help-page) .source-dock .audio-control{
  grid-template-columns:48px minmax(0,1fr) 58px;
  grid-auto-rows:minmax(19px,auto);
  row-gap:5px;
}
body:not(.help-page) .source-dock .time-control{
  grid-template-columns:48px minmax(0,1fr) 58px;
  grid-auto-rows:minmax(19px,auto);
  row-gap:5px;
}
body:not(.help-page) .source-dock .time-presets{
  grid-template-columns:repeat(5,minmax(0,1fr));
}
body:not(.help-page) .source-dock .speed-presets{
  grid-template-columns:repeat(7,minmax(0,1fr));
}
body:not(.help-page) .source-dock .time-presets button,
body:not(.help-page) .source-dock .speed-presets button{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master){
  grid-template-columns:34px minmax(0,1fr) 50px 54px;
  min-height:112px;
  row-gap:5px;
}
body:not(.help-page) .source-dock .control-deck > .channel.is-channel-hidden{
  display:none !important;
}
body:not(.help-page) .source-dock .amp-stepper{
  grid-column:2 / -1;
  grid-template-columns:22px minmax(0,1fr) 22px;
}
body:not(.help-page) .source-dock .amp-button,
body:not(.help-page) .source-dock .time-button{
  width:22px;
  min-width:22px;
}
body:not(.help-page) .source-dock .amp-number,
body:not(.help-page) .source-dock .time-number{
  min-width:0;
}
body:not(.help-page) .source-dock .freq-number{
  width:54px;
  min-width:0;
}@media (max-width:820px){

  body:not(.help-page).analysis-large-dock-active .source-dock{
    grid-column:1;
    grid-row:2;
    height:auto;
    overflow:visible;
  }
}
body:not(.help-page) .source-dock .dock-proxy-button{
  opacity:.92;
}
body:not(.help-page) .source-dock{
  width:var(--source-dock-width);
  max-width:var(--source-dock-width);
}
body.plot-focus:not(.help-page) .source-dock{
  width:0;
  max-width:0;
}
body:not(.help-page) .source-dock .source-control,
body:not(.help-page) .source-dock .channel-count-control,
body:not(.help-page) .source-dock .audio-control{
  grid-template-columns:64px minmax(0,1fr) 74px;
  column-gap:10px;
  row-gap:6px;
}
body:not(.help-page) .source-dock .time-control{
  grid-template-columns:64px minmax(0,1fr) 74px;
  column-gap:10px;
  row-gap:6px;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master){
  grid-template-columns:42px minmax(0,1fr) 64px 70px;
  column-gap:9px;
  row-gap:5px;
  min-height:118px;
}
body:not(.help-page) .source-dock .freq-number{
  width:70px;
}
body:not(.help-page) .source-dock .time-control .time-stepper,
body:not(.help-page) .source-dock .time-control .speed-stepper{
  grid-template-columns:26px minmax(0,1fr) 26px;
  gap:5px;
}
body:not(.help-page) .source-dock .amp-stepper{
  grid-template-columns:26px minmax(0,1fr) 26px;
  gap:5px;
}
body:not(.help-page) .source-dock .amp-button,
body:not(.help-page) .source-dock .time-button{
  width:26px;
  min-width:26px;
}
body:not(.help-page) .source-dock .time-presets,
body:not(.help-page) .source-dock .speed-presets{
  gap:4px;
}
body:not(.help-page) .source-dock .time-presets button,
body:not(.help-page) .source-dock .speed-presets button{
  height:18px;
  min-height:18px;
}@media (max-width:1500px){

  body:not(.help-page) .source-dock .source-control,
  body:not(.help-page) .source-dock .channel-count-control,
  body:not(.help-page) .source-dock .audio-control,
  body:not(.help-page) .source-dock .time-control{
    grid-template-columns:58px minmax(0,1fr) 66px;
  }
  body:not(.help-page) .source-dock .control-deck > .channel:not(.master){
    grid-template-columns:38px minmax(0,1fr) 58px 64px;
  }
  body:not(.help-page) .source-dock .freq-number{ width:64px; }
}
body:not(.help-page) .source-dock .source-control{
  grid-template-columns:58px minmax(0,1fr) 66px;
  grid-auto-rows:minmax(20px,auto);
  gap:6px 9px;
  padding-bottom:11px;
}
body:not(.help-page) .source-dock .source-control{
  overflow:visible;
}
body:not(.help-page) .source-dock,
body:not(.help-page) .plot-deck{
  position:relative;
  z-index:1;
}
body:not(.help-page) .dock-titlebar{
  z-index:30;
}
body:not(.help-page) .instrument-shell,
body:not(.help-page) .source-dock,
body:not(.help-page) .plot-deck,
body:not(.help-page) .plot-card,
body:not(.help-page) .scope-card,
body:not(.help-page) .field-card,
body:not(.help-page) .analysis-card,
body:not(.help-page) .statusbar{
  transition:
    grid-template-columns 220ms ease,
    grid-template-rows 220ms ease,
    width 220ms ease,
    max-width 220ms ease,
    opacity 180ms ease,
    box-shadow 180ms ease,
    border-color 180ms ease;
}
body:not(.help-page) .source-dock .source-control{
  grid-template-columns:58px minmax(0,1fr) 46px;
  grid-auto-rows:minmax(18px,auto);
  gap:5px 8px;
  align-content:start;
}
body:not(.help-page) .source-dock .source-control .channel-title{
  grid-column:1 / -1;
  grid-row:auto;
}
body:not(.help-page) .source-dock .source-control label[for="signalSourceMode"]{
  grid-column:1;
  grid-row:auto;
}
body:not(.help-page) .source-dock .source-control .source-note-label{
  grid-column:1;
  grid-row:auto;
  align-self:start;
  padding-top:2px;
}
body:not(.help-page) .source-dock .source-control .source-note{
  grid-column:2 / -1;
  grid-row:auto;
  min-width:0;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  line-height:1.35;
  word-break:normal;
}
body:not(.help-page) .source-dock .source-control .source-quality-label{
  grid-column:1;
  grid-row:auto;
}
body:not(.help-page) .source-dock .source-control .source-quality-select{
  grid-column:2 / -1;
  grid-row:auto;
  width:100%;
  min-width:0;
}@media (max-width:1280px){

  body:not(.help-page) .source-dock .source-control{
    grid-template-columns:54px minmax(0,1fr) 42px;
  }
}
body:not(.help-page) .source-dock{
  --source-label-col:58px;
}
body:not(.help-page) .source-dock .source-control{
  display:grid;
  grid-template-columns:var(--source-label-col) minmax(0,1fr);
  grid-auto-rows:auto;
  gap:5px 8px;
  align-content:start;
  padding:8px 10px 10px;
}
body:not(.help-page) .source-dock .source-control > div:empty{
  display:none !important;
}
body.source-mode-manual:not(.help-page) .source-dock .source-control,
body.source-mode-microphone:not(.help-page) .source-dock .source-control{
  padding-bottom:12px;
}@media (max-width:1280px){

  body:not(.help-page) .source-dock{ --source-label-col:54px; }
}
body:not(.help-page) .source-dock{
  width:var(--source-dock-width);
  max-width:var(--source-dock-width);
  display:flex;
  flex-direction:column;
  gap:0;
  overflow:hidden auto;
  scrollbar-width:thin;
}
body.plot-focus:not(.help-page) .source-dock{
  width:0;
  max-width:0;
  overflow:hidden;
}
body:not(.help-page) .source-dock .dock-titlebar{
  order:0;
  flex:0 0 24px;
  letter-spacing:.09em;
}
body:not(.help-page) .source-dock .global-control-bar{ display:contents; }
body:not(.help-page) .source-dock .global-control-bar::before{ content:none !important; display:none !important; }
body:not(.help-page) .source-dock .source-control{ order:1; }
body:not(.help-page) .source-dock .channel-count-control{ order:2; }
body:not(.help-page) .source-dock .control-deck{ order:3; }
body:not(.help-page) .source-dock .time-control{ order:4; }
body:not(.help-page) .source-dock .audio-control{ order:5; }
body:not(.help-page) .source-dock .source-control,
body:not(.help-page) .source-dock .channel-count-control,
body:not(.help-page) .source-dock .time-control,
body:not(.help-page) .source-dock .audio-control{
  flex:0 0 auto;
  padding:7px 10px;
  border-bottom:1px solid var(--color-border-soft);
}
body:not(.help-page) .source-dock .source-control .channel-title::after,
body:not(.help-page) .source-dock .time-control .channel-title::after,
body:not(.help-page) .source-dock .audio-control .channel-title::after{ content:""; }
body:not(.help-page) .source-dock .source-control{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  grid-auto-rows:auto;
  row-gap:6px;
  column-gap:8px;
  align-content:start;
  min-height:0;
  background:#10151d;
  overflow:hidden;
}
body:not(.help-page) .source-dock .source-control .channel-title{
  grid-column:1 / -1;
  height:16px;
  line-height:16px;
  margin:0 0 2px;
}
body:not(.help-page) .source-dock .source-control .source-note{
  grid-column:2;
  min-width:0;
  min-height:20px;
  line-height:20px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
body:not(.help-page) .source-dock .channel-count-control{
  min-height:70px;
  display:grid;
  grid-template-columns:58px minmax(0,1fr) 64px;
  grid-auto-rows:17px;
  row-gap:4px;
  background:#121821;
}
body:not(.help-page) .source-dock .control-deck{
  flex:0 0 auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:auto;
  gap:0;
  height:auto;
  min-height:0;
  overflow:visible;
  background:#0d1118;
  border-bottom:1px solid var(--color-border-soft);
}
body:not(.help-page) .source-dock .control-deck::before{
  content:"CHANNELS";
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  height:22px;
  padding:0 10px;
  border-bottom:1px solid var(--color-border-soft);
  background:#10151d;
  color:#8fd4ff;
  font-family:"Roboto Mono","Consolas",monospace;
  font-size:9px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master){
  min-height:84px;
  height:auto;
  padding:6px 8px;
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 48px 56px;
  grid-auto-rows:15px;
  gap:3px 5px;
  border-right:1px solid var(--color-border-soft);
  border-bottom:1px solid var(--color-border-soft);
  background:#101722;
  overflow:hidden;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master):nth-of-type(2n){ border-right:none; }
body:not(.help-page) .source-dock .control-deck > .channel:not(.master) .channel-title{
  height:13px;
  line-height:13px;
  font-size:9px;
  letter-spacing:.08em;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master) label,
body:not(.help-page) .source-dock .control-deck > .channel:not(.master) output{ font-size:9px; }
body:not(.help-page) .source-dock .control-deck > .channel:not(.master) input[type="range"]{ height:15px; }
body:not(.help-page) .source-dock .control-deck > .channel:not(.master) .freq-number{
  width:56px;
  height:16px;
  font-size:9px;
  padding:0 3px;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master) .amp-stepper{
  grid-template-columns:18px minmax(0,1fr) 18px;
  gap:3px;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master) .amp-button{
  width:18px;
  min-width:18px;
  height:16px;
  min-height:16px;
  font-size:10px;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master) .amp-number{
  height:16px;
  font-size:9px;
  padding:0 3px;
}
body:not(.help-page) .source-dock .time-control{
  min-height:132px;
  display:grid;
  grid-template-columns:58px minmax(0,1fr) 64px;
  grid-auto-rows:17px;
  row-gap:4px;
}
body:not(.help-page) .source-dock .audio-control{
  min-height:68px;
  display:grid;
  grid-template-columns:58px minmax(0,1fr) 64px;
  grid-auto-rows:17px;
  row-gap:4px;
}
body:not(.help-page) .source-dock .time-presets,
body:not(.help-page) .source-dock .speed-presets{ gap:3px; }
body:not(.help-page) .source-dock .time-presets button,
body:not(.help-page) .source-dock .speed-presets button{
  height:15px;
  min-height:15px;
  font-size:8px;
}
body:not(.help-page) .source-dock .time-stepper,
body:not(.help-page) .source-dock .speed-stepper{
  grid-template-columns:22px minmax(0,1fr) 22px;
  gap:4px;
}
body:not(.help-page) .source-dock .time-button{
  width:22px;
  min-width:22px;
  height:16px;
  min-height:16px;
}
body:not(.help-page) .source-dock .time-number{ height:16px; }
body:not(.help-page) .source-dock button#dockToggleAnimation,
body:not(.help-page) .source-dock button#dockToggleAudio{
  height:21px;
  min-height:21px;
}@media (max-width:820px){

  body:not(.help-page) .source-dock{ width:100%; max-width:none; }
  body:not(.help-page) .source-dock .control-deck{ grid-template-columns:1fr; }
  body:not(.help-page) .source-dock .control-deck > .channel:not(.master){ border-right:none; }
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master):not(.is-channel-hidden):nth-of-type(odd),
body:not(.help-page) .source-dock .control-deck > .channel:not(.master):not(.is-channel-hidden):nth-of-type(even){
  border-right:1px solid var(--color-border-soft);
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master):not(.is-channel-hidden):nth-child(2n + 1){
  border-right:none;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master):not(.is-channel-hidden):last-child{
  border-right:none;
}
body:not(.help-page) .source-dock .control-deck{
  grid-template-columns:1fr;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master){
  grid-column:1 / -1;
  min-height:76px;
  padding:6px 9px;
  grid-template-columns:28px minmax(0,1fr) 54px 58px;
  border-right:none;
}
body:not(.help-page) .source-dock .control-deck > .channel.is-channel-hidden,
body:not(.help-page) .source-dock .control-deck > .channel[aria-hidden="true"]{
  display:none !important;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master):not(.is-channel-hidden):nth-of-type(odd),
body:not(.help-page) .source-dock .control-deck > .channel:not(.master):not(.is-channel-hidden):nth-of-type(even),
body:not(.help-page) .source-dock .control-deck > .channel:not(.master):not(.is-channel-hidden):nth-child(2n + 1),
body:not(.help-page) .source-dock .control-deck > .channel:not(.master):not(.is-channel-hidden):last-child{
  border-right:none;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master) .amp-stepper{
  grid-template-columns:20px minmax(0,1fr) 20px;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master) .amp-button{
  width:20px;
  min-width:20px;
}
body:not(.help-page) .source-dock .time-control{
  min-height:190px;
  height:auto;
  padding:8px 10px;
  display:grid;
  grid-template-columns:64px minmax(0,1fr) 72px;
  grid-auto-rows:minmax(20px,auto);
  gap:5px 8px;
  align-content:start;
  overflow:visible;
}
body:not(.help-page) .source-dock .time-control .channel-title{
  grid-column:1 / -1;
  grid-row:1;
  height:16px;
  line-height:16px;
  margin:0 0 1px;
}
body:not(.help-page) .source-dock .time-control label[for="timeDomainInput"]{
  grid-column:1;
  grid-row:2;
  align-self:center;
}
body:not(.help-page) .source-dock .time-control .time-stepper{
  grid-column:2;
  grid-row:2;
}
body:not(.help-page) .source-dock .time-control #timeDomainValue{
  grid-column:3;
  grid-row:2;
  align-self:center;
}
body:not(.help-page) .source-dock .time-control .time-presets{
  grid-column:1 / -1;
  grid-row:3;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:4px;
}
body:not(.help-page) .source-dock .time-control label[for="animationSpeedInput"]{
  grid-column:1;
  grid-row:4;
  align-self:center;
}
body:not(.help-page) .source-dock .time-control .speed-stepper{
  grid-column:2;
  grid-row:4;
}
body:not(.help-page) .source-dock .time-control #animationSpeedValue{
  grid-column:3;
  grid-row:4;
  align-self:center;
}
body:not(.help-page) .source-dock .time-control .speed-presets{
  grid-column:1 / -1;
  grid-row:5;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:4px;
}
body:not(.help-page) .source-dock .time-control #dockToggleAnimation,
body:not(.help-page) .source-dock .time-control #toggleAnimation,
body:not(.help-page) .source-dock .time-control .run-button{
  grid-column:1 / -1;
  grid-row:6;
  height:25px;
  min-height:25px;
  margin:0;
}
body:not(.help-page) .source-dock .time-control .time-stepper,
body:not(.help-page) .source-dock .time-control .speed-stepper{
  display:grid;
  grid-template-columns:26px minmax(90px,1fr) 26px;
  gap:5px;
  height:20px;
  min-height:20px;
}
body:not(.help-page) .source-dock .time-control .time-button{
  width:26px;
  min-width:26px;
  height:20px;
  min-height:20px;
  margin:0;
  padding:0;
  font-size:11px;
}
body:not(.help-page) .source-dock .time-control .time-number{
  height:20px;
  min-height:20px;
  min-width:0;
  font-size:10px;
  padding:0 5px;
}
body:not(.help-page) .source-dock .time-control .time-presets button,
body:not(.help-page) .source-dock .time-control .speed-presets button{
  height:20px;
  min-height:20px;
  margin:0;
  padding:0 4px;
  font-size:9px;
  line-height:1;
}@media (max-width:1280px){

  body:not(.help-page) .source-dock .time-control{
    grid-template-columns:58px minmax(0,1fr) 66px;
  }
  body:not(.help-page) .source-dock .time-control .speed-presets{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
body:not(.help-page) .source-dock{
  background:#0e131b;
  border-right:1px solid rgba(90,106,128,.72);
}
body:not(.help-page) .source-dock .dock-titlebar{
  height:25px;
  padding:0 10px;
  display:flex;
  align-items:center;
  border-bottom:1px solid rgba(79,91,110,.58);
  background:linear-gradient(180deg,#121923,#0f151e);
  color:#8fd4ff;
  font-size:9px;
  letter-spacing:.11em;
}
body:not(.help-page) .source-dock .global-control-bar,
body:not(.help-page) .source-dock .control-deck{
  gap:0;
  background:#0e131b;
}
body:not(.help-page) .source-dock .channel.master,
body:not(.help-page) .source-dock .control-deck > .channel:not(.master){
  border-bottom:1px solid rgba(79,91,110,.50);
  background:linear-gradient(180deg,#111821,#0f151d);
}
body:not(.help-page) .source-dock .channel-title{
  color:#e8f1ff;
  font-size:10px;
  letter-spacing:.105em;
}
body:not(.help-page) .source-dock label,
body:not(.help-page) .source-dock .source-note-label,
body:not(.help-page) .source-dock .setup-note-label,
body:not(.help-page) .source-dock .audio-mode-label{
  color:#7f8da2;
  font-size:10px;
  letter-spacing:.055em;
}
body:not(.help-page) .source-dock output,
body:not(.help-page) .source-dock .source-note,
body:not(.help-page) .source-dock .setup-note,
body:not(.help-page) .source-dock .audio-source{
  color:#c8ddff;
}
body:not(.help-page) .source-dock select,
body:not(.help-page) .source-dock input[type="number"],
body:not(.help-page) .source-dock .time-number,
body:not(.help-page) .source-dock .freq-number,
body:not(.help-page) .source-dock .amp-number{
  border-color:#39475b;
  background:#090f17;
  color:#dcecff;
}
body:not(.help-page) .source-dock select:focus,
body:not(.help-page) .source-dock input[type="number"]:focus,
body:not(.help-page) .source-dock .time-number:focus,
body:not(.help-page) .source-dock .freq-number:focus,
body:not(.help-page) .source-dock .amp-number:focus{
  border-color:#8fd4ff;
  outline:1px solid rgba(143,212,255,.42);
  background:#0d1520;
}
body:not(.help-page) .source-dock input[type="range"]::-webkit-slider-runnable-track{
  height:3px;
  background:#3a4554;
}
body:not(.help-page) .source-dock input[type="range"]::-moz-range-track{
  height:3px;
  background:#3a4554;
}
body:not(.help-page) .source-dock input[type="range"]::-webkit-slider-thumb{
  width:10px;
  height:15px;
  margin-top:-6px;
  background:#c3cfdd;
  border-color:#eef5ff;
}
body:not(.help-page) .source-dock input[type="range"]::-moz-range-thumb{
  width:10px;
  height:15px;
  background:#c3cfdd;
  border-color:#eef5ff;
}
body:not(.help-page) .source-dock button.is-active,
body:not(.help-page) .source-dock .time-presets button.is-active,
body:not(.help-page) .source-dock .speed-presets button.is-active{
  border-color:#89d185;
  background:#102116;
  color:#e6ffe9;
}
body:not(.help-page) .source-dock .time-control{
  min-height:202px;
  padding:9px 10px 10px;
  gap:6px 8px;
}
body:not(.help-page) .source-dock .time-control .time-stepper,
body:not(.help-page) .source-dock .time-control .speed-stepper{
  height:22px;
  min-height:22px;
}
body:not(.help-page) .source-dock .time-control .time-button,
body:not(.help-page) .source-dock .time-control .time-number{
  height:22px;
  min-height:22px;
}
body:not(.help-page) .source-dock .time-control .time-presets button,
body:not(.help-page) .source-dock .time-control .speed-presets button{
  height:21px;
  min-height:21px;
}
body:not(.help-page) .source-dock .time-control #dockToggleAnimation,
body:not(.help-page) .source-dock .time-control #toggleAnimation,
body:not(.help-page) .source-dock .time-control .run-button{
  height:27px;
  min-height:27px;
  margin-top:1px;
}
body:not(.help-page) .source-dock .audio-control{
  min-height:88px;
  padding:9px 10px;
  grid-template-columns:64px minmax(0,1fr) 72px;
  grid-auto-rows:minmax(20px,auto);
  gap:6px 8px;
  align-content:start;
  overflow:visible;
}
body:not(.help-page) .source-dock .audio-control .channel-title{
  grid-column:1 / -1;
  height:16px;
  line-height:16px;
  margin:0;
}
body:not(.help-page) .source-dock .audio-control #audioVolume{
  height:22px;
}
body:not(.help-page) .source-dock .audio-control #dockToggleAudio,
body:not(.help-page) .source-dock .audio-control #toggleAudio,
body:not(.help-page) .source-dock .audio-control .audio-button{
  height:26px;
  min-height:26px;
  margin-top:1px;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master):not(.is-channel-hidden){
  min-height:78px;
  background:#101722;
}
body:not(.help-page) .source-dock .control-deck > .channel:not(.master):not(.is-channel-hidden) .channel-title{
  color:#f0f5ff;
}@media (max-width:1100px){

  body:not(.help-page) .source-dock .global-control-bar > .channel{
    height:auto;
    min-height:0;
    overflow:visible;
  }
  body:not(.help-page) .source-dock .global-control-bar > .channel.is-collapsed,
  body:not(.help-page) .source-dock .global-control-bar > .channel.collapsible-panel.is-collapsed{
    height:auto;
    min-height:0;
  }
  body:not(.help-page) .source-dock .global-control-bar > .channel.is-collapsed > :not(.channel-title),
  body:not(.help-page) .source-dock .global-control-bar > .channel.collapsible-panel.is-collapsed > :not(.channel-title){
    display:initial;
  }
  body:not(.help-page) .source-dock .global-control-bar > .channel > .channel-title .panel-toggle{
    display:none !important;
  }
  body:not(.help-page) .source-dock .global-control-bar > .channel > .channel-title{
    min-height:16px;
    height:16px;
    padding:0;
    justify-content:flex-start;
    background:transparent;
    border-bottom:none;
  }
}
body:not(.help-page) .source-dock{
  grid-column:1 / 2 !important;
  grid-row:2 / 3 !important;
  width:var(--source-dock-width) !important;
  min-width:var(--source-dock-width) !important;
  max-width:var(--source-dock-width) !important;
  position:relative;
  z-index:30 !important;
  flex:0 0 var(--source-dock-width);
}
body.plot-focus:not(.help-page) .source-dock{
  width:0 !important;
  min-width:0 !important;
  max-width:0 !important;
}@media (max-width:1100px){

  body:not(.help-page) .source-dock{
    grid-column:1 !important;
    grid-row:2 !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
  }
}

/* v1.4.5a — Removed superseded v1.4.0zc Source Setup grid hotfix block.
   The following Source Setup block is the active file/hybrid layout owner. */
body.source-mode-file:not(.help-page) .source-dock .source-control,
body.source-mode-hybrid:not(.help-page) .source-dock .source-control{
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  grid-auto-rows:auto;
  row-gap:6px;
  column-gap:10px;
  align-content:start;
  padding-bottom:11px;
}
body.source-mode-file:not(.help-page) .source-dock .source-control .channel-title,
body.source-mode-hybrid:not(.help-page) .source-dock .source-control .channel-title{
  grid-column:1 / -1;
  grid-row:1;
}
body.source-mode-file:not(.help-page) .source-dock .source-control label[for="signalSourceMode"],
body.source-mode-hybrid:not(.help-page) .source-dock .source-control label[for="signalSourceMode"]{
  grid-column:1;
  grid-row:2;
}
body.source-mode-file:not(.help-page) .source-dock .source-control .source-note-label:nth-of-type(1),
body.source-mode-hybrid:not(.help-page) .source-dock .source-control .source-note-label:nth-of-type(1){
  grid-column:1;
  grid-row:3;
}
body.source-mode-file:not(.help-page) .source-dock .source-control .source-note-label:nth-of-type(2),
body.source-mode-hybrid:not(.help-page) .source-dock .source-control .source-note-label:nth-of-type(2){
  grid-column:1;
  grid-row:4;
}
body.source-mode-file:not(.help-page) .source-dock .source-control .source-quality-label,
body.source-mode-hybrid:not(.help-page) .source-dock .source-control .source-quality-label{
  grid-column:1;
  grid-row:5;
}
body.source-mode-file:not(.help-page) .source-dock .source-control .source-quality-select,
body.source-mode-hybrid:not(.help-page) .source-dock .source-control .source-quality-select{
  grid-column:2;
  grid-row:5;
}

/* v1.4.5a — Removed superseded v1.4.0ze Source Setup module isolation block.
   The following v1.4.0zf block remains the active module baseline. */
/* v1.4.0zf — Source Setup mode-specific professional module
   Keep all changes isolated to the Source Setup block.  Manual stays compact;
   Live Audio and Microphone get one visible action button; File/Hybrid get the
   full file transport without participating in the main source form grid. */
body:not(.help-page) .source-dock .source-control.source-control--module{
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:auto auto auto;
  align-content:start;
  gap:8px;
  height:auto;
  min-height:0;
  overflow:visible;
}
body:not(.help-page) .source-dock .source-control.source-control--module > .channel-title{
  grid-column:1;
  grid-row:auto;
}