/* Buttons, Arc-style (piece 5, 2026-10-29).
 *
 * Arc references: button, action-button, split-button, button-group,
 * copy-button. Tokens: arc_tokens.css only.
 *
 * 1. .oc-btn — the component for new markup.
 *      variants  .oc-btn--primary | --secondary (default) | --ghost | --danger
 *      sizes     .oc-btn--sm (28px) | md (32px, default)
 *      forms     .oc-btn--icon (square, needs aria-label)
 *      states    :disabled / [aria-disabled="true"], [aria-busy="true"] (spinner)
 *      label     <span class="oc-btn__label">…</span>; OcBtn.setLabel() in
 *                arc_buttons.js crossfades a new label while the width springs
 *      groups    .oc-btn-group (joined, hairline dividers), .oc-split (action
 *                plus a menu anchor), .oc-copy (copy, then a check)
 *    Presses scale to .97 (.94 for icon buttons); anchors of popups
 *    ([aria-haspopup], [aria-expanded]) answer with colour, not scale.
 *
 * 2. Legacy adapter — the portal's button classes take the same proportions
 *    and states without template edits, scoped with the two-id prefix so
 *    they outrank controls.css and flat.css. Out of reach: the top bar
 *    (piece 2), the left menu, PM OS plates (D7), chart toolbars (chart_kit),
 *    the chat pane and Helm dock (group F). Public pages do not load this.
 *    Inline row actions (watchlist, timeline, sessions) keep their height
 *    so table rows do not grow before the table piece; they take the corner,
 *    weight, tints and press.
 */

/* ======================================================================
   1. .oc-btn
   ====================================================================== */
.oc-btn {
  --oc-btn-h: var(--arc-control-md);
  --oc-btn-press: .97;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--arc-space-2);
  box-sizing: border-box;
  min-height: var(--oc-btn-h);
  min-width: 0;
  margin: 0;
  padding: 0 var(--arc-space-3);
  border: 1px solid var(--arc-border-strong);
  border-radius: var(--arc-radius-button);
  background: var(--arc-surface);
  color: var(--arc-foreground);
  font: inherit;
  font-size: var(--arc-text-sm);
  font-weight: var(--arc-weight-strong);
  letter-spacing: var(--arc-tracking);
  line-height: 1.25;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition:
    color var(--arc-dur-fast) var(--arc-ease),
    background-color var(--arc-dur-fast) var(--arc-ease),
    border-color var(--arc-dur-fast) var(--arc-ease),
    opacity var(--arc-dur-fast) var(--arc-ease),
    width var(--arc-dur) var(--arc-smooth),
    transform var(--arc-dur) var(--arc-spring);
}
.oc-btn--sm { --oc-btn-h: var(--arc-control-sm); font-size: var(--arc-text-xs); }
.oc-btn--icon { --oc-btn-press: .94; width: var(--oc-btn-h); padding: 0; }
.oc-btn svg, .oc-btn .oc-ico { flex: none; width: 16px; height: 16px; }
.oc-btn--sm svg, .oc-btn--sm .oc-ico { width: 14px; height: 14px; }

.oc-btn--primary {
  background: var(--arc-foreground);
  border-color: var(--arc-foreground);
  color: var(--arc-background);
}
.oc-btn--ghost {
  background: transparent;
  border-color: transparent;
  color: var(--arc-text-secondary);
}
.oc-btn--danger { color: var(--arc-danger); }

@media (hover: hover) and (pointer: fine) {
  .oc-btn:hover:not(:disabled):not([aria-disabled="true"]) { background: var(--arc-surface-muted); }
  .oc-btn--primary:hover:not(:disabled):not([aria-disabled="true"]) {
    background: color-mix(in srgb, var(--arc-foreground) 88%, var(--arc-background));
    border-color: color-mix(in srgb, var(--arc-foreground) 88%, var(--arc-background));
  }
  .oc-btn--ghost:hover:not(:disabled):not([aria-disabled="true"]) { background: var(--arc-hover); color: var(--arc-foreground); }
  .oc-btn--danger:hover:not(:disabled):not([aria-disabled="true"]) { background: var(--arc-danger-subtle); border-color: var(--arc-danger); }
}
.oc-btn:active:not(:disabled):not([aria-disabled="true"]) {
  transform: scale(var(--oc-btn-press));
  transition-duration: var(--arc-dur-fast), var(--arc-dur-fast), var(--arc-dur-fast), var(--arc-dur-fast), var(--arc-dur), var(--arc-dur-instant);
  transition-timing-function: var(--arc-ease);
}
.oc-btn:is(.oc-btn--secondary, :not(.oc-btn--primary, .oc-btn--ghost, .oc-btn--danger)):active:not(:disabled) { background: var(--arc-surface-muted); }
.oc-btn--ghost:active:not(:disabled) { background: var(--arc-press); color: var(--arc-foreground); }
.oc-btn--primary:active:not(:disabled) { opacity: .88; }
/* Anchors of popups never scale: the menu measures a steady box. */
.oc-btn:is([aria-haspopup]:not([aria-haspopup="false"]), [aria-expanded]):active { transform: none; }
.oc-btn[aria-expanded="true"] { background: var(--arc-selected); }
.oc-btn--primary[aria-expanded="true"] { background: color-mix(in srgb, var(--arc-foreground) 88%, var(--arc-background)); }

.oc-btn:focus { outline: none; }
.oc-btn:focus-visible { outline: 2px solid var(--arc-focus); outline-offset: 2px; }

/* Disabled: primary fades whole; outlined ones keep their shape. */
.oc-btn:is(:disabled, [aria-disabled="true"]) { cursor: not-allowed; }
.oc-btn--primary:is(:disabled, [aria-disabled="true"]) { opacity: .52; }
.oc-btn:not(.oc-btn--primary):not(.oc-btn--ghost):is(:disabled, [aria-disabled="true"]) {
  background: var(--arc-surface-muted);
  border-color: var(--arc-border);
  color: var(--arc-text-muted);
}
.oc-btn--danger:is(:disabled, [aria-disabled="true"]) { color: color-mix(in srgb, var(--arc-danger) 55%, var(--arc-surface-muted)); }
.oc-btn--ghost:is(:disabled, [aria-disabled="true"]) { color: var(--arc-text-muted); }

/* Loading: the label holds its width, a spinner turns in its place. */
.oc-btn[aria-busy="true"] { cursor: progress; color: transparent; }
.oc-btn[aria-busy="true"] > * { visibility: hidden; }
.oc-btn[aria-busy="true"]::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  box-sizing: border-box;
  border: 1.5px solid var(--arc-foreground);
  border-right-color: transparent;
  border-radius: 50%;
  animation: oc-btn-spin .7s linear infinite;
}
.oc-btn--primary[aria-busy="true"]::after { border-color: var(--arc-background); border-right-color: transparent; }
.oc-btn--danger[aria-busy="true"]::after { border-color: var(--arc-danger); border-right-color: transparent; }
@keyframes oc-btn-spin { to { transform: rotate(360deg); } }

/* Label crossfade (OcBtn.setLabel): the outgoing label lifts out of flow and
   fades up while the incoming one rises in; the button width springs. */
.oc-btn__label { display: inline-flex; align-items: center; gap: var(--arc-space-2); }
.oc-btn__label.is-out {
  position: absolute;
  inset: 0;
  justify-content: center;
  pointer-events: none;
  animation: oc-btn-label-out var(--arc-dur-exit) var(--arc-ease-exit) both;
}
.oc-btn__label.is-in { animation: oc-btn-label-in var(--arc-dur) var(--arc-ease-enter) both; }
@keyframes oc-btn-label-out { to { opacity: 0; transform: translateY(-4px); filter: blur(2px); } }
@keyframes oc-btn-label-in { from { opacity: 0; transform: translateY(4px); filter: blur(2px); } }

/* Button group: one surface, hairline dividers, presses stay in place. */
.oc-btn-group {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--arc-border-strong);
  border-radius: var(--arc-radius-button);
  background: var(--arc-surface);
  overflow: hidden;
}
.oc-btn-group > .oc-btn {
  --oc-btn-press: 1;
  border: 0;
  border-radius: 0;
  background: transparent;
  min-height: calc(var(--oc-btn-h) - 2px);
}
.oc-btn-group > .oc-btn + .oc-btn { box-shadow: -1px 0 0 var(--arc-border); }
@media (hover: hover) and (pointer: fine) {
  .oc-btn-group > .oc-btn:hover:not(:disabled) { background: var(--arc-hover); }
}
.oc-btn-group > .oc-btn:active:not(:disabled) { background: var(--arc-press); }
.oc-btn-group > .oc-btn:focus-visible { outline-offset: -2px; }

/* Split button: the action and its menu anchor share one edge. */
.oc-split { display: inline-flex; align-items: stretch; }
.oc-split > .oc-btn:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.oc-split > .oc-btn:last-child {
  width: var(--oc-btn-h);
  padding: 0;
  margin-left: -1px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.oc-split > .oc-btn--primary:last-child { box-shadow: inset 1px 0 0 color-mix(in srgb, var(--arc-background) 28%, transparent); }

/* Copy button: the copy glyph swaps for a check, both on the same spot. */
.oc-copy .oc-copy__done { display: none; color: var(--arc-success); }
.oc-copy.is-done .oc-copy__idle { display: none; }
.oc-copy.is-done .oc-copy__done { display: inline-flex; animation: oc-btn-label-in var(--arc-dur) var(--arc-ease-enter) both; }

@media (hover: none) and (pointer: coarse) {
  .oc-btn:not(.oc-btn--sm) { --oc-btn-h: var(--arc-control-touch); }
}

/* ======================================================================
   2. Legacy adapter
   ====================================================================== */
/* Every adapted class, outside the shell and the out-of-scope surfaces. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
  .btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-danger,
  .wl-btn-primary, .wl-btn-secondary, .wl-btn-ghost,
  .im-btn-primary, .im-btn-secondary, .im-btn-danger, .im-iconbtn, .im-conv-more,
  .an-btn, .an-btn-primary, .an-btn-secondary, .an-btn-ghost,
  .cal-btn, .cal-btn-primary, .cal-btn-secondary, .cal-btn-ghost,
  .pf-btn, .pf-btn-primary, .pf-btn-danger, .pf2-act,
  .dd-btn, .mem-btn, .mem-btn-primary, .mem-btn-ghost, .mem-btn-danger,
  .mdl-btn, .un-act, .pm-btn, .mc-b, .pub-refresh, .finder-tool-btn, .desk-bar__btn,
  .oc-expand-btn, .pc-tool, .au-addteam-btn, .au-btn, .ind-btn-secondary, .co-act,
  .dash-ask-follow, .dash-empty-ask, .dash-more, .filters-toggle, .sc-filter-btn, .sc-rules-btn,
  .press-fresh__btn, .mkt-strip-refresh, .th-peers-refresh, .earn-retry, .research-iconbtn, .ico-btn
):not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, #th-chat-panel *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *, :is(.ck-shell, .ck-rail, .ck-rail-flyout, .ck-rail-flyout-menu, .ck-dd-menu, .ck-ctx-menu, .ck-tools-sheet, .ck-tools-grid, .ck-sheet__panel, .ck-object-bar, .ck-replay-bar, .ck-ohlc--toolbar) *) {
  --oc-btn-h: var(--arc-control-md);
  --oc-btn-press: .97;
  box-sizing: border-box;
  height: auto;
  min-height: var(--oc-btn-h) !important;
  padding-block: 0;
  padding-inline: var(--arc-space-3);
  border-radius: var(--arc-radius-button) !important;
  border: 1px solid var(--arc-border-strong) !important;
  background: var(--arc-surface) !important;
  color: var(--arc-foreground) !important;
  box-shadow: none !important;
  font-family: inherit;
  font-size: var(--arc-text-sm);
  font-weight: var(--arc-weight-strong) !important;
  letter-spacing: var(--arc-tracking) !important;
  line-height: 1.25;
  text-transform: none !important;
  -webkit-tap-highlight-color: transparent;
  transition:
    color var(--arc-dur-fast) var(--arc-ease),
    background-color var(--arc-dur-fast) var(--arc-ease),
    border-color var(--arc-dur-fast) var(--arc-ease),
    opacity var(--arc-dur-fast) var(--arc-ease),
    transform var(--arc-dur) var(--arc-spring) !important;
}
/* Links styled as buttons need a box to take the height. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) a:is(.btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-danger,
  .an-btn, .cal-btn, .pf-btn, .dd-btn, .mdl-btn, .un-act):not(.hidden, .is-hidden, [hidden]):not(.top-bar *, .sidebar *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--arc-space-1);
  text-decoration: none;
}

/* Small: .btn-sm and the families that ran 22–26px. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
  .btn-sm, .pf-btn-sm, .mdl-btn-sm, .an-ctx__btn-sm,
  .scout-page :is(.btn, .btn-ghost, .btn-primary, .btn-danger),
  .un-act, .pm-btn, .mc-b, .pub-refresh, .finder-tool-btn, .desk-bar__btn, .pc-tool, .au-addteam-btn, .co-act,
  .oc-expand-btn, .press-fresh__btn, .mkt-strip-refresh, .th-peers-refresh, .earn-retry, .ico-btn
):not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, #th-chat-panel *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *, :is(.ck-shell, .ck-rail, .ck-rail-flyout, .ck-rail-flyout-menu, .ck-dd-menu, .ck-ctx-menu, .ck-tools-sheet, .ck-tools-grid, .ck-sheet__panel, .ck-object-bar, .ck-replay-bar, .ck-ohlc--toolbar) *) {
  --oc-btn-h: var(--arc-control-sm);
  min-height: var(--oc-btn-h) !important;
  font-size: var(--arc-text-xs);
  padding-inline: var(--arc-space-3);
}

/* Icon buttons: square. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(.research-iconbtn, .im-iconbtn, .im-conv-more, .ico-btn):not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *) {
  --oc-btn-press: .94;
  width: var(--oc-btn-h);
  min-width: var(--oc-btn-h);
  height: var(--oc-btn-h);
  padding: 0;
}

/* Icon-only legacy buttons (one icon child, named by aria-label or title):
   no side padding, never narrower than tall, whatever width they set. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
  .btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-danger, .wl-btn-primary, .wl-btn-secondary, .wl-btn-ghost,
  .im-btn-secondary, .an-btn, .an-btn-ghost, .cal-btn, .pf-btn, .dd-btn, .mem-btn, .mdl-btn, .un-act, .pm-btn, .mc-b,
  .pub-refresh, .finder-tool-btn, .desk-bar__btn, .oc-expand-btn, .pc-tool, .co-act, .filters-toggle, .sc-filter-btn,
  .press-fresh__btn, .mkt-strip-refresh, .th-peers-refresh, .earn-retry
):is(.wl-fs-btn, :is([aria-label], [title], [data-tip]):has(> :is(svg, .oc-ico, [data-ico], img, i):only-child)):not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *) {
  --oc-btn-press: .94;
  padding-inline: 0;
  min-width: var(--oc-btn-h);
}

/* Buttons inside table cells and row actions stay inside the row (the table piece sets rows). */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) .scout-page .btn.sc-row-btn:not(.top-bar *, #chat-drawer *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *),
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) td :is(
  .btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-danger, .wl-btn-primary, .wl-btn-secondary, .wl-btn-ghost,
  .an-btn, .cal-btn, .pf-btn, .dd-btn, .mem-btn, .mdl-btn, .un-act, .pm-btn, .mc-b, .pc-tool, .co-act
):not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *) {
  --oc-btn-h: calc(var(--arc-control-sm) - 4px);
  min-height: var(--oc-btn-h) !important;
  padding-inline: var(--arc-space-2);
  border-radius: var(--arc-radius-chip) !important;
  font-size: var(--arc-text-xs);
}

/* Ghost family: no edge, secondary ink. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
  .btn-ghost, .wl-btn-ghost, .an-btn-ghost, .cal-btn-ghost, .mem-btn-ghost, .dash-more,
  .research-iconbtn, .im-iconbtn, .im-conv-more, .ico-btn, .oc-expand-btn, .th-peers-refresh, .mkt-strip-refresh, .sc-filter-btn
):not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, #th-chat-panel *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *, :is(.ck-shell, .ck-rail, .ck-rail-flyout, .ck-rail-flyout-menu, .ck-dd-menu, .ck-ctx-menu, .ck-tools-sheet, .ck-tools-grid, .ck-sheet__panel, .ck-object-bar, .ck-replay-bar, .ck-ohlc--toolbar) *) {
  background: transparent !important;
  border-color: transparent !important;
  color: var(--arc-text-secondary) !important;
}

/* Primary: the foreground ink, as uiarc.dev's primary button (once per surface). */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
  .btn-primary, .wl-btn-primary, .im-btn-primary, .an-btn-primary, .cal-btn-primary, .pf-btn-primary,
  .mem-btn-primary, .dd-btn.primary, .dash-empty-ask, .au-btn--primary
):not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, #th-chat-panel *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *, :is(.ck-shell, .ck-rail, .ck-rail-flyout, .ck-rail-flyout-menu, .ck-dd-menu, .ck-ctx-menu, .ck-tools-sheet, .ck-tools-grid, .ck-sheet__panel, .ck-object-bar, .ck-replay-bar, .ck-ohlc--toolbar) *) {
  background: var(--arc-foreground) !important;
  border-color: var(--arc-foreground) !important;
  color: var(--arc-background) !important;
}

/* Danger: red ink on the surface; the edge turns red when pointed at. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
  .btn-danger, .im-btn-danger, .pf-btn-danger, .mem-btn-danger
):not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, #th-chat-panel *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *, :is(.ck-shell, .ck-rail, .ck-rail-flyout, .ck-rail-flyout-menu, .ck-dd-menu, .ck-ctx-menu, .ck-tools-sheet, .ck-tools-grid, .ck-sheet__panel, .ck-object-bar, .ck-replay-bar, .ck-ohlc--toolbar) *) {
  background: var(--arc-surface) !important;
  border-color: var(--arc-border-strong) !important;
  color: var(--arc-danger) !important;
}

/* Hover: quiet tints, fine pointers only. */
@media (hover: hover) and (pointer: fine) {
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
    .btn, .btn-secondary, .wl-btn-secondary, .im-btn-secondary, .an-btn, .an-btn-secondary, .cal-btn, .cal-btn-secondary,
    .pf-btn, .pf2-act, .dd-btn, .mem-btn, .mdl-btn, .un-act, .pm-btn, .mc-b, .pub-refresh, .finder-tool-btn, .desk-bar__btn,
    .pc-tool, .au-addteam-btn, .au-btn, .ind-btn-secondary, .co-act, .dash-ask-follow, .filters-toggle, .sc-filter-btn, .sc-rules-btn,
    .press-fresh__btn, .earn-retry
  ):not(.btn-primary, .btn-ghost, .btn-danger, .dd-btn.primary, .au-btn--primary):not(:disabled):hover:not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, #th-chat-panel *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *, :is(.ck-shell, .ck-rail, .ck-rail-flyout, .ck-rail-flyout-menu, .ck-dd-menu, .ck-ctx-menu, .ck-tools-sheet, .ck-tools-grid, .ck-sheet__panel, .ck-object-bar, .ck-replay-bar, .ck-ohlc--toolbar) *) {
    background: var(--arc-surface-muted) !important;
    border-color: var(--arc-border-strong) !important;
    color: var(--arc-foreground) !important;
  }
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
    .btn-ghost, .wl-btn-ghost, .an-btn-ghost, .cal-btn-ghost, .mem-btn-ghost, .dash-more,
    .research-iconbtn, .im-iconbtn, .im-conv-more, .ico-btn, .oc-expand-btn, .th-peers-refresh, .mkt-strip-refresh
  ):not(:disabled):hover:not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, #th-chat-panel *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *, :is(.ck-shell, .ck-rail, .ck-rail-flyout, .ck-rail-flyout-menu, .ck-dd-menu, .ck-ctx-menu, .ck-tools-sheet, .ck-tools-grid, .ck-sheet__panel, .ck-object-bar, .ck-replay-bar, .ck-ohlc--toolbar) *) {
    background: var(--arc-hover) !important;
    color: var(--arc-foreground) !important;
  }
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
    .btn-primary, .wl-btn-primary, .im-btn-primary, .an-btn-primary, .cal-btn-primary, .pf-btn-primary,
    .mem-btn-primary, .dd-btn.primary, .dash-empty-ask, .au-btn--primary
  ):not(:disabled):hover:not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, #th-chat-panel *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *, :is(.ck-shell, .ck-rail, .ck-rail-flyout, .ck-rail-flyout-menu, .ck-dd-menu, .ck-ctx-menu, .ck-tools-sheet, .ck-tools-grid, .ck-sheet__panel, .ck-object-bar, .ck-replay-bar, .ck-ohlc--toolbar) *) {
    background: color-mix(in srgb, var(--arc-foreground) 88%, var(--arc-background)) !important;
    border-color: color-mix(in srgb, var(--arc-foreground) 88%, var(--arc-background)) !important;
  }
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
    .btn-danger, .im-btn-danger, .pf-btn-danger, .mem-btn-danger
  ):not(:disabled):hover:not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, #th-chat-panel *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *, :is(.ck-shell, .ck-rail, .ck-rail-flyout, .ck-rail-flyout-menu, .ck-dd-menu, .ck-ctx-menu, .ck-tools-sheet, .ck-tools-grid, .ck-sheet__panel, .ck-object-bar, .ck-replay-bar, .ck-ohlc--toolbar) *) {
    background: var(--arc-danger-subtle) !important;
    border-color: var(--arc-danger) !important;
    color: var(--arc-danger) !important;
  }
}

/* Press: .97 (.94 for icons); anchors of popups answer with colour. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
  .btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-danger,
  .wl-btn-primary, .wl-btn-secondary, .wl-btn-ghost, .im-btn-primary, .im-btn-secondary, .im-btn-danger, .im-iconbtn, .im-conv-more,
  .an-btn, .an-btn-primary, .an-btn-secondary, .an-btn-ghost, .cal-btn, .cal-btn-primary, .cal-btn-secondary, .cal-btn-ghost,
  .pf-btn, .pf-btn-primary, .pf-btn-danger, .pf2-act, .dd-btn, .mem-btn, .mem-btn-primary, .mem-btn-ghost, .mem-btn-danger,
  .mdl-btn, .un-act, .pm-btn, .mc-b, .pub-refresh, .finder-tool-btn, .desk-bar__btn, .oc-expand-btn, .pc-tool, .au-addteam-btn, .au-btn,
  .ind-btn-secondary, .co-act, .dash-ask-follow, .dash-empty-ask, .dash-more, .filters-toggle, .sc-filter-btn, .sc-rules-btn,
  .press-fresh__btn, .mkt-strip-refresh, .th-peers-refresh, .earn-retry, .research-iconbtn, .ico-btn,
  .wl-row-btn, .wl-x, .dash-tl-act, .sx-btn, .an-sessions__row-del
):not(:disabled):active:not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, #th-chat-panel *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *, :is(.ck-shell, .ck-rail, .ck-rail-flyout, .ck-rail-flyout-menu, .ck-dd-menu, .ck-ctx-menu, .ck-tools-sheet, .ck-tools-grid, .ck-sheet__panel, .ck-object-bar, .ck-replay-bar, .ck-ohlc--toolbar) *) {
  transform: scale(var(--oc-btn-press, .97)) !important;
  transition-duration: var(--arc-dur-fast), var(--arc-dur-fast), var(--arc-dur-fast), var(--arc-dur-fast), var(--arc-dur-instant) !important;
}
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
  .btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-danger, .wl-btn-primary, .wl-btn-secondary, .wl-btn-ghost,
  .im-btn-secondary, .im-iconbtn, .im-conv-more, .an-btn, .an-btn-ghost, .cal-btn, .pf-btn, .dd-btn, .mem-btn, .mdl-btn, .un-act,
  .pm-btn, .mc-b, .finder-tool-btn, .desk-bar__btn, .oc-expand-btn, .pc-tool, .co-act, .dash-more, .filters-toggle, .sc-filter-btn,
  .sc-rules-btn, .research-iconbtn, .ico-btn, .wl-row-btn, .dash-tl-act, .sx-btn
):is([aria-haspopup]:not([aria-haspopup="false"]), [aria-expanded]):active {
  transform: none !important;
}

/* Focus: one ring on keyboard focus, none on pointer focus. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
  .btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-danger, .wl-btn-primary, .wl-btn-secondary, .wl-btn-ghost,
  .im-btn-primary, .im-btn-secondary, .im-btn-danger, .im-iconbtn, .im-conv-more, .an-btn, .an-btn-primary, .an-btn-secondary,
  .an-btn-ghost, .cal-btn, .cal-btn-primary, .pf-btn, .pf-btn-primary, .dd-btn, .mem-btn, .mdl-btn, .un-act, .pm-btn, .mc-b,
  .pub-refresh, .finder-tool-btn, .desk-bar__btn, .oc-expand-btn, .pc-tool, .au-addteam-btn, .au-btn, .co-act, .dash-ask-follow,
  .dash-empty-ask, .dash-more, .filters-toggle, .research-iconbtn, .ico-btn, .wl-row-btn, .wl-x, .dash-tl-act, .sx-btn
):focus-visible:not(.top-bar *, .sidebar *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *) {
  outline: 2px solid var(--arc-focus) !important;
  outline-offset: 2px !important;
  box-shadow: none !important;
}

/* Disabled: primary fades whole; outlined ones keep their shape. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
  .btn, .btn-secondary, .wl-btn-secondary, .im-btn-secondary, .an-btn, .an-btn-secondary, .cal-btn, .pf-btn, .dd-btn, .mem-btn,
  .mdl-btn, .un-act, .pm-btn, .mc-b, .pub-refresh, .finder-tool-btn, .desk-bar__btn, .pc-tool, .au-btn, .co-act, .dash-ask-follow,
  .btn-danger, .im-btn-danger, .pf-btn-danger, .mem-btn-danger
):not(.btn-primary, .btn-ghost, .dd-btn.primary):is(:disabled, .is-disabled, [aria-disabled="true"]):not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *, :is(.ck-shell, .ck-rail, .ck-rail-flyout, .ck-rail-flyout-menu, .ck-dd-menu, .ck-ctx-menu, .ck-tools-sheet, .ck-tools-grid, .ck-sheet__panel, .ck-object-bar, .ck-replay-bar, .ck-ohlc--toolbar) *) {
  opacity: 1 !important;
  background: var(--arc-surface-muted) !important;
  border-color: var(--arc-border) !important;
  color: var(--arc-text-muted) !important;
  cursor: not-allowed;
}
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
  .btn-primary, .wl-btn-primary, .im-btn-primary, .an-btn-primary, .cal-btn-primary, .pf-btn-primary, .mem-btn-primary, .dd-btn.primary, .dash-empty-ask
):is(:disabled, .is-disabled, [aria-disabled="true"]):not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *) {
  opacity: .52 !important;
  cursor: not-allowed;
}

/* Loading on any adapted button: aria-busy draws the spinner. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(.btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-danger, .an-btn, .im-btn-primary, .cal-btn, .pf-btn)[aria-busy="true"] {
  position: relative;
  color: transparent !important;
  cursor: progress;
}
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(.btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-danger, .an-btn, .im-btn-primary, .cal-btn, .pf-btn)[aria-busy="true"] > * { visibility: hidden; }
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(.btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-danger, .an-btn, .im-btn-primary, .cal-btn, .pf-btn)[aria-busy="true"]::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  box-sizing: border-box;
  border: 1.5px solid var(--arc-foreground);
  border-right-color: transparent;
  border-radius: 50%;
  animation: oc-btn-spin .7s linear infinite;
}

/* Inline row actions: keep the row height; take the corner, ink and press. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(.wl-row-btn, .wl-x, .dash-tl-act, .sx-btn, .an-sessions__row-del):not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *) {
  --oc-btn-press: .94;
  border-radius: var(--arc-radius-chip) !important;
  border-color: transparent !important;
  background: transparent !important;
  color: var(--arc-text-secondary) !important;
  box-shadow: none !important;
  font-weight: var(--arc-weight-strong) !important;
  letter-spacing: var(--arc-tracking) !important;
  text-transform: none !important;
  -webkit-tap-highlight-color: transparent;
  transition:
    color var(--arc-dur-fast) var(--arc-ease),
    background-color var(--arc-dur-fast) var(--arc-ease),
    opacity var(--arc-dur-fast) var(--arc-ease),
    transform var(--arc-dur) var(--arc-spring) !important;
}
@media (hover: hover) and (pointer: fine) {
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(.wl-row-btn, .wl-x, .dash-tl-act, .sx-btn, .an-sessions__row-del):not(:disabled):hover:not(.top-bar *, .sidebar *, #chat-drawer *, .content-right *, #helm-dock *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *) {
    background: var(--arc-hover) !important;
    color: var(--arc-foreground) !important;
  }
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(.wl-row-btn.danger, .wl-x, .an-sessions__row-del):not(:disabled):hover:not(.top-bar *, .sidebar *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *) {
    background: var(--arc-danger-subtle) !important;
    color: var(--arc-danger) !important;
  }
}
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) .wl-row-btn.danger:not(.top-bar *, .sidebar *, :is(.page-pmos, .pmos, .pmos-doc, .pmos-sheet, .pmos-panel, .pmos-chip, .pmos-thesis, .pmos-sub, .pmos-meta, .pmos-foot, .pmos-flash, .pmos-eyebrow, .pmos-brick) *) { color: var(--arc-danger) !important; }

/* ---- Reduced motion ------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .oc-btn, .oc-btn__label, .oc-copy__done { transition: none; animation: none; }
  .oc-btn:active { transform: none; }
  .oc-btn[aria-busy="true"]::after { animation-duration: 1.6s; }
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(
    .btn, .btn-primary, .btn-secondary, .btn-ghost, .btn-danger, .an-btn, .cal-btn, .pf-btn, .dd-btn, .mem-btn, .mdl-btn, .un-act,
    .pm-btn, .mc-b, .finder-tool-btn, .desk-bar__btn, .pc-tool, .co-act, .dash-ask-follow, .dash-empty-ask, .research-iconbtn,
    .im-iconbtn, .ico-btn, .wl-row-btn, .wl-x, .dash-tl-act, .sx-btn, .wl-btn-primary, .wl-btn-secondary, .im-btn-primary, .im-btn-secondary
  ):active { transform: none !important; }
}

/* Screen-reader live line for button results (copy). */
.oc-sr-live {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Button-like controls the families above do not reach (crawl of 22 pages,
   2026-10-29): the Helm help chip by page titles, the ticker chat
   suggestions, the timeline's Important toggle, the quote star and the
   calendar filter chips take the same soft pill. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2) :is(.helm-help--mark, .th-chat-suggest, .dash-tl-imp, .qp-watch, .cal-chip):not(.top-bar *, .sidebar *, [class*="pmos"] *) {
  border-radius: var(--arc-radius-button) !important;
}

/* "View all" on a card head: Arc's ghost icon button, the up-right arrow only
   (dashboard cards, Mission Control's recent jobs). Overrides the ghost text
   button above and Flat's quiet label. */
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2):is(body, #oc-arc-3) .dash-more-arrow {
  display: inline-grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  width: 28px !important;
  min-width: 28px !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--arc-text-secondary) !important;
  opacity: 1 !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color var(--arc-dur-fast) var(--arc-ease), color var(--arc-dur-fast) var(--arc-ease), transform var(--arc-dur-snappy) var(--arc-snappy) !important;
}
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2):is(body, #oc-arc-3) .dash-more-arrow svg {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  opacity: 1 !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.6 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  transition: translate var(--arc-dur-snappy) var(--arc-snappy);
}
@media (hover: hover) and (pointer: fine) {
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2):is(body, #oc-arc-3) .dash-more-arrow:hover {
    background: var(--arc-surface-muted) !important;
    color: var(--arc-foreground) !important;
  }
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2):is(body, #oc-arc-3) .dash-more-arrow:hover svg { translate: 1px -1px; }
}
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2):is(body, #oc-arc-3) .dash-more-arrow:active { transform: scale(.94) !important; }
html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2):is(body, #oc-arc-3) .dash-more-arrow:focus-visible {
  outline: 2px solid var(--arc-focus) !important;
  outline-offset: 1px !important;
}
@media (prefers-reduced-motion: reduce) {
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2):is(body, #oc-arc-3) .dash-more-arrow,
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2):is(body, #oc-arc-3) .dash-more-arrow svg { transition: none !important; }
  html:not(.page-pmos) body:is(body, #oc-arc):is(body, #oc-arc-2):is(body, #oc-arc-3) .dash-more-arrow:active { transform: none !important; }
}
