/* Failed 24x24 (WCAG 2.5.8 AA) on every pointer, not just touch. */
#copy-session {
  min-width: 24px;
  min-height: 24px;
}

/* ---- Touch targets ------------------------------------------------------
   WCAG 2.5.8 (AA) asks 24x24 for any pointer; 2.5.5 (AAA) and every touch
   guideline ask 44x44. Blanket-sizing a mouse-driven SOC console to 44px would
   inflate chrome that works fine with a cursor, so the 44px floor is scoped to
   `pointer: coarse` - touch and pen - where a miss costs the user a tap.

   This is deliberately GENERIC rather than a list of selectors. Enumerating the
   controls measured under the threshold meant a new small button shipped
   unprotected, and it missed .copy, .tab, .configure and the home quick-asks
   on the first pass. One rule over every interactive element cannot go stale.

   `min-height` has no effect on a non-replaced INLINE box, so a text link inside
   a paragraph is untouched by this - only block, inline-block, flex and grid
   controls grow, which is exactly the set that wants growing.

   `!important` is confined to this block: base.css loads early and
   controls/palette/premium/responsive set their own min-height later, so
   without it a component's 34px wins. No stylesheet loads last on every page,
   so ordering cannot solve it. */

@media (pointer: coarse) {
  a[href],
  button,
  summary,
  [role='button'],
  input:not([type='hidden']),
  select,
  textarea,
  .switch {
    min-height: 44px !important;
  }

  /* Icon-only controls are square and sized to their glyph, so they need width
     as well - and the glyph is then re-centred in the larger box. */
  .copy,
  .chat-more,
  .send,
  .tab,
  .panel-action-btn,
  .command-trigger,
  .sidebar-close,
  #menu,
  #copy-session,
  #credential-close,
  #view-all,
  .close,
  .icon-button,
  .template-add,
  .side-panel-toggle,
  .toast-close {
    min-width: 44px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  /* The composer fields set an explicit `height` with border-box sizing, which
     swallows padding - so they need the floor as a height, not as padding, and
     `auto` lets the floor win while the field still grows as you type. */
  #chat-input {
    height: auto !important;
  }

  /* The switch track is a fixed 44x25 piece of artwork and must not stretch.
     The hit area is the <label>; the input inside it is inset:0/100%, so
     growing the label grows the target while the track stays centred. */
  .switch {
    display: inline-flex;
    align-items: center;
  }
}
