/* Shared cockpit-style three-position throw switch.
   Used by both the admin composer's per-sender switches and the
   "Work with PUB" per-persona delivery card. Visual modes are always
   voice / text / off; callers that store a different mode (e.g. PUB
   stores `mute`) should map their stored value to the visual `off`
   position via the data-mode attribute on `.cockpit-throw`. */
.convo-cockpit-switches {
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
}
.cockpit-switch {
  display: flex; flex-direction: column; align-items: center;
  background: linear-gradient(180deg, #14151a 0%, #08090c 100%);
  border: 1px solid #2a2c33;
  border-radius: 6px;
  padding: 8px 10px 10px;
  min-width: 96px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
}
.cockpit-switch-label {
  font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(255,255,255,0.55); margin-bottom: 8px;
  font-family: 'Courier New', monospace;
}
.cockpit-switch-label.signal { color: #5ee0a8; }
.cockpit-switch-label.architect { color: #d4a13a; }
.cockpit-switch-label.continuum { color: #b88cff; }
.cockpit-throw {
  position: relative;
  width: 36px; height: 84px;
  background: linear-gradient(180deg, #0a0b0e 0%, #15171c 50%, #0a0b0e 100%);
  border: 1px solid #2a2c33;
  border-radius: 4px;
  cursor: pointer;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.6);
}
.cockpit-throw-positions {
  position: absolute; inset: 4px 0; display: flex; flex-direction: column;
  justify-content: space-between; pointer-events: none;
}
.cockpit-throw-pos {
  font-size: 7.5px; letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(255,255,255,0.3); text-align: center;
  font-family: 'Courier New', monospace;
  padding: 1px 0;
}
.cockpit-throw-pos.active { color: rgba(255,255,255,0.95); font-weight: 700; }
.cockpit-toggle {
  position: absolute; left: 50%; transform: translateX(-50%);
  width: 22px; height: 26px;
  background: linear-gradient(180deg, #d8d8db 0%, #8c8c92 50%, #5a5a60 100%);
  border: 1px solid #2a2c33;
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.4);
  transition: top 180ms cubic-bezier(0.5, 1.6, 0.4, 1);
  pointer-events: none;
}
.cockpit-toggle::before {
  content: ''; position: absolute; left: 4px; right: 4px; top: 50%;
  height: 1px; background: rgba(0,0,0,0.4); transform: translateY(-50%);
}
.cockpit-throw[data-mode="voice"] .cockpit-toggle { top: 4px; }
.cockpit-throw[data-mode="text"]  .cockpit-toggle { top: 29px; }
.cockpit-throw[data-mode="off"]   .cockpit-toggle { top: 54px; }
.cockpit-led {
  width: 8px; height: 8px; border-radius: 50%;
  margin-top: 8px;
  background: #1a1b1f;
  box-shadow: inset 0 0 2px #000;
  transition: background 180ms, box-shadow 180ms;
}
.cockpit-throw[data-mode="voice"] ~ .cockpit-led { background: #5ee0a8; box-shadow: 0 0 8px #5ee0a8, inset 0 0 1px rgba(255,255,255,0.6); }
.cockpit-throw[data-mode="text"]  ~ .cockpit-led { background: #d4a13a; box-shadow: 0 0 8px #d4a13a, inset 0 0 1px rgba(255,255,255,0.6); }
.cockpit-throw[data-mode="off"]   ~ .cockpit-led { background: #c95757; box-shadow: 0 0 8px #c95757, inset 0 0 1px rgba(255,255,255,0.6); }
.cockpit-mode-readout {
  font-size: 8.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(255,255,255,0.5); margin-top: 6px;
  font-family: 'Courier New', monospace;
}
