/* gd-action-dock: the canonical content-bearing glass panel
   (ACTION-DOCK.md). Same float geometry as the PurchaseBar - one
   physical object, different tenants. */
gd-action-dock { display: block; position: fixed; left: var(--inset-floating); right: var(--inset-floating);
  bottom: max(var(--inset-floating), env(safe-area-inset-bottom, 0px)); z-index: 15; max-width: 456px; margin: 0 auto; }
gd-action-dock .dock-card { border-radius: var(--radius-card);
  background: var(--glass-strong); border: 1px solid var(--accent-soft-border);
  backdrop-filter: blur(var(--blur-glass-strong)) saturate(var(--glass-saturate));
  box-shadow: inset 0 1px 0 var(--glass-edge);
  padding: var(--space-md) 18px var(--space-sm); }
gd-action-dock .dock-context { display: flex; justify-content: space-between; align-items: baseline;
  font: 500 var(--type-title)/1.2 var(--font-display); color: var(--ink); }
gd-action-dock .dock-value { font: 700 var(--type-title)/1.2 var(--font-ui); color: var(--accent); }
/* The message slot: one line max, flat - the voice class (shared.css)
   carries the color and weight; a message never looks pressable. */
gd-action-dock .dock-msg { margin: var(--space-2xs) 0 0; }
/* The wait, at a glance. Under the message, above the actions: it belongs to
   what the dock just said, not to what it is asking for. */
gd-action-dock .dock-bar { margin-top: var(--space-xs); height: 3px; border-radius: var(--radius-pill);
  background: var(--accent-soft-border); overflow: hidden; }
gd-action-dock .dock-bar i { display: block; height: 100%; width: 0; background: var(--accent);
  border-radius: inherit; transition: width var(--dur-quick, .2s) ease; }
gd-action-dock .dock-actions { margin-top: var(--gap-grid); }
gd-action-dock .dock-actions a.btn { display: block; text-align: center; text-decoration: none; }
/* A busy action holds its slot while the work behind it runs: the glow
   settles to a wait so the dock does not read as pressable, and the shape
   never moves under the guest's thumb. */
gd-action-dock .dock-actions .is-busy { opacity: 0.62; cursor: default; }

/* Desktop (>= 900px): the same card docked bottom-center, never a
   sidebar - one owning object, one place. Kiosk: token overrides in
   tokens.css scale the controls; the card may also widen. */
@media (min-width: 1400px) and (pointer: coarse) {
  gd-action-dock { max-width: 560px; }
}
