/* The login shell owns placement; this component owns only the CAD controls. */
.ugrc-valve-viewer { isolation: isolate; }
.ugrc-valve-canvas { touch-action: none; cursor: grab; }
.ugrc-valve-canvas.ugrc-valve-dragging { cursor: grabbing; }
.ugrc-valve-canvas:focus-visible { outline: var(--focus-ring-width) solid var(--focus-ring); outline-offset: -4px; }
.ugrc-valve-ui { position: absolute; inset: 0; z-index: 5; color: var(--ink); pointer-events: none; }
.ugrc-valve-playback {
  position: absolute; left: var(--login-editorial-inset, var(--space-4)); bottom: calc(clamp(42px, 5.5vh, 58px) + var(--space-8));
  pointer-events: auto;
}
.c-button.ugrc-valve-playback,
.c-button.ugrc-valve-playback:hover {
  color: var(--muted); background: transparent; box-shadow: none;
}
.ugrc-valve-menu-toggle { display: none; position: absolute; top: var(--space-4); right: var(--space-4); pointer-events: auto; }
.ugrc-valve-menu {
  position: absolute; top: calc(var(--space-4) + var(--control-height-sm) + var(--space-2)); right: var(--space-4);
  width: min(300px, calc(100% - var(--space-8))); max-height: calc(100% - 84px); overflow: auto; overscroll-behavior: contain;
  box-sizing: border-box; padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius);
  color: var(--ink); background: var(--card-surface); box-shadow: var(--shadow); pointer-events: auto;
  font-size: var(--type-body); line-height: 1.45;
}
.ugrc-valve-menu[hidden], .ugrc-valve-part-card[hidden] { display: none; }
.ugrc-valve-menu-head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-3); }
.ugrc-valve-menu-head h3 { margin: 0; font-size: var(--type-card); line-height: 1.4; font-weight: var(--weight-heading); }
.ugrc-valve-section { padding: var(--space-3) 0; border-top: 1px solid var(--line); }
.ugrc-valve-section h4 { margin: 0 0 var(--space-2); font-size: var(--type-body); font-weight: var(--weight-medium); }
.ugrc-valve-buttons { display: flex; gap: var(--space-1); }
.ugrc-valve-buttons .c-button { flex: 1; min-width: 0; padding-inline: var(--space-2); }
.ugrc-valve-menu .c-button[aria-pressed="true"] { color: var(--brand-primary); border-color: var(--brand-primary); background: var(--brand-primary-soft); }
.ugrc-valve-wide { width: 100%; margin-top: var(--space-2); }
.ugrc-valve-range-label { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin: var(--space-2) 0 0; font-size: var(--type-caption); font-weight: var(--weight-body); }
.ugrc-valve-range-label output { color: var(--muted); font-variant-numeric: tabular-nums; }
.ugrc-valve-menu input[type="range"] { display: block; box-sizing: border-box; width: 100%; min-height: var(--control-height-sm); margin: 0; padding: 0; accent-color: var(--brand-primary); cursor: ew-resize; }
.ugrc-valve-menu input[type="range"]:focus-visible { outline: var(--focus-ring-width) solid var(--focus-ring); outline-offset: 2px; }
.ugrc-valve-menu input:disabled { opacity: .5; cursor: default; }
.ugrc-valve-caption { margin: var(--space-2) 0 0; color: var(--muted); font-size: var(--type-caption); line-height: 1.5; }
.ugrc-valve-announcer { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ugrc-valve-part-card {
  position: absolute; z-index: 4; box-sizing: border-box; width: 280px; max-width: calc(100% - var(--space-8));
  padding: var(--space-3) var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: var(--card-surface); color: var(--ink); box-shadow: var(--shadow-soft); pointer-events: auto;
  text-align: center;
}
.ugrc-valve-part-title { margin: 0 0 var(--space-1); font-size: var(--type-body); line-height: 1.4; font-weight: var(--weight-medium); }
.ugrc-valve-part-filename { margin: 0; color: var(--muted); font-size: var(--type-caption); line-height: 1.5; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; user-select: text; }
@media (prefers-reduced-motion: reduce) {
  .ugrc-valve-viewer .c-button { transition: none; }
}
