/* Canonical action controls for cockpit, canvas and management.
 * public/ui-controls.css is generated by scripts/sync_ui_controls.py.
 * Low-specificity fallback covers unclassified actions without changing chart,
 * tab, menu, drag-handle or metric-button geometry. Use semantic classes below
 * for action emphasis; do not give every clickable chart a primary-button class.
 */
:root {
  --action-primary:#2563eb; --action-primary-hover:#1d4ed8;
  --action-report:#7c3aed; --action-report-hover:#6d28d9;
  --action-text:#344964; --action-line:#d5deeb;
  --action-soft:#f3f6fb; --action-radius:6px; --action-height:32px;
  --action-danger:#b42318; --action-danger-soft:#fff0ed;
}
:where(button) {
  appearance:none; font:inherit; color:var(--action-text);
  background:#fff; border:1px solid var(--action-line);
  border-radius:var(--action-radius); padding:6px 10px; cursor:pointer;
}
:where(button:hover:not(:disabled)) { background:var(--action-soft) }
:is(.primary-button,.secondary-button,.button,.ui-button) {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  min-height:var(--action-height); padding:6px 12px;
  border:1px solid var(--action-line); border-radius:var(--action-radius);
  font-size:13px; font-weight:500; line-height:1.4; text-decoration:none;
  background:#fff; color:var(--action-text); box-shadow:none;
}
:is(.primary-button,.secondary-button,.button,.ui-button):hover:not(:disabled) {
  background:var(--action-soft); border-color:#b9cae1;
}
:is(.primary-button,.button.primary,.ui-button-primary) {
  background:var(--action-primary); border-color:var(--action-primary); color:#fff;
}
:is(.primary-button,.button.primary,.ui-button-primary):hover:not(:disabled) {
  background:var(--action-primary-hover); border-color:var(--action-primary-hover); color:#fff;
}
/* Report entry uses one semantic accent in cockpit and canvas. */
.ui-button.ui-button-report {
  background:var(--action-report); border-color:var(--action-report); color:#fff;
}
.ui-button.ui-button-report:hover:not(:disabled) {
  background:var(--action-report-hover); border-color:var(--action-report-hover); color:#fff;
}
.ui-button.ui-button-report:focus-visible { outline-color:var(--action-report) }
:is(.text-button,.text-link,.ui-button-text) {
  border:1px solid transparent; border-radius:var(--action-radius);
  background:transparent; color:var(--action-primary); padding:4px 6px;
  font-size:12px; line-height:1.4; box-shadow:none;
}
:is(.text-button,.text-link,.ui-button-text):hover:not(:disabled) { background:#eef4ff }
:is(button.danger,button[data-tone="danger"],.ui-button-danger) {
  color:var(--action-danger); border-color:#f0c8c2; background:#fff;
}
:is(button.danger,button[data-tone="danger"],.ui-button-danger):hover:not(:disabled) {
  background:var(--action-danger-soft); border-color:#e4aaa1;
}
:is(.icon-button,.dialog-head>button[aria-label="关闭"],button[data-monitor-close]) {
  display:inline-grid; place-items:center; width:28px; height:28px; min-height:28px;
  padding:0; border:0; border-radius:var(--action-radius); background:transparent;
  color:#687b93; font-size:20px; line-height:1;
}
:is(.icon-button,.dialog-head>button[aria-label="关闭"],button[data-monitor-close]):hover:not(:disabled) {
  background:var(--action-soft); color:var(--action-text);
}
/* Every modal footer shares the same neutral default, including legacy actions. */
:is(.modal-actions,.modal-buttons,.dialog-actions,.wb-detail-pages)>button:where(:not(.primary-button):not(.primary):not(.ui-button-primary):not(.danger):not([data-tone="danger"]):not(.text-button):not(.text-link)) {
  min-height:var(--action-height); padding:6px 12px;
  border:1px solid var(--action-line); border-radius:var(--action-radius);
  background:#fff; color:var(--action-text); font-size:13px; font-weight:500; line-height:1.4;
}
:is(.modal-actions,.modal-buttons,.dialog-actions,.wb-detail-pages)>button:where(:not(.primary-button):not(.primary):not(.ui-button-primary):not(.danger):not([data-tone="danger"]):not(.text-button):not(.text-link)):hover:not(:disabled) {
  background:var(--action-soft); border-color:#b9cae1;
}
button:disabled,.button[aria-disabled="true"] { opacity:.5; cursor:not-allowed; box-shadow:none }
button:focus-visible,.button:focus-visible,a.text-link:focus-visible {
  outline:2px solid var(--action-primary); outline-offset:2px;
}
@media(pointer:coarse) {
  :is(.primary-button,.secondary-button,.button,.ui-button),.modal-actions>button { min-height:40px }
}

:is(.button.small,.ui-button-small){min-height:28px;padding:4px 10px;font-size:12px}

:is(.secondary-button,.ui-button)[aria-pressed="true"]{background:#edf3ff;border-color:#a9c3f9;color:var(--action-primary)}
