/* Shared app-action-button feedback, including older page-specific controls.
   Important declarations in this layer intentionally outrank legacy unlayered
   !important rules. Keep page geometry, selected state and business logic intact.
   Selected / toggled buttons and open menus keep their semantic glow;
   ordinary enabled buttons glow only on hover or while pressed. Plain document links retain their normal underline. */
@layer terminal-action-feedback {
  @media screen {
  :where(button,
    input:is([type="button"], [type="submit"], [type="reset"]),
    summary,
    [role="button"],
    a:is([class*="button"], [download], .sc-clear, .btn, .app-action-button, .admin-log-pill,
      .panel-action-link, .container-edi-action, .container-service-primary-action,
      .container-service-row-action, .employee-edit-action, .employee-list-action,
      .report-calendar-action, .report-header-neutral-action, .timesheet-print-action,
      .timesheet-sign-action, .train-detail-edit-action, .train-plan-new-trigger,
      .train-plan-edit-cancel, .shift-plan-export-link, .shift-plan-print-link,
      .predavka-source-link, .mfa-primary-link, .import-relation-archive,
      .import-upload-file-download, .driver-inspection-overview-link,
      .gate-estimate-history-link, .debug-live-link, .debug-pill,
      .empty-wagon-db-folder-link, .table_filter, .selected_tab),
    :is(.import-workbench-actions, .export-action-row, .preview-actions,
      .dalsi-row-actions, .train-plan-toolbar-actions, .debug-replay-toolbar-actions,
      .msc-check-tabs, [class*="-actions"], [class*="-tabs"],
      [class*="-filters"], [class*="-toolbar"]) > a) {
    --action-glow: var(--action-neutral-glow, #94a3b8);
    --action-fill: var(--action-neutral-fill, rgba(36, 48, 58, 0.90));
    --action-ink: var(--action-neutral-ink, #f5f8fa);
    text-decoration: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    transition: border-color 150ms ease, background-color 150ms ease,
      color 150ms ease, box-shadow 150ms ease !important;
  }
  /* A child label/icon must not retain an old underline or drop-shadow. */
  :is(button,
    input:is([type="button"], [type="submit"], [type="reset"]),
    summary,
    [role="button"],
    a:is([class*="button"], [download], .sc-clear, .btn, .app-action-button, .admin-log-pill,
      .panel-action-link, .container-edi-action, .container-service-primary-action,
      .container-service-row-action, .employee-edit-action, .employee-list-action,
      .report-calendar-action, .report-header-neutral-action, .timesheet-print-action,
      .timesheet-sign-action, .train-detail-edit-action, .train-plan-new-trigger,
      .train-plan-edit-cancel, .shift-plan-export-link, .shift-plan-print-link,
      .predavka-source-link, .mfa-primary-link, .import-relation-archive,
      .import-upload-file-download, .driver-inspection-overview-link,
      .gate-estimate-history-link, .debug-live-link, .debug-pill,
      .empty-wagon-db-folder-link, .table_filter, .selected_tab),
    :is(.import-workbench-actions, .export-action-row, .preview-actions,
      .dalsi-row-actions, .train-plan-toolbar-actions, .debug-replay-toolbar-actions,
      .msc-check-tabs, [class*="-actions"], [class*="-tabs"],
      [class*="-filters"], [class*="-toolbar"]) > a) :is(span, strong, em, i, svg) {
    text-decoration: none !important;
    text-shadow: none !important;
    filter: none !important;
  }
  /* Reuse the existing upload/app-action semantic palette. */
  :root :where(.app-action-button--neutral, .export-secondary-button, .preview-button,
    .export-back-button, .train-import-list-button, .report-header-neutral-action,
    .map-neutral-button) { --action-glow: var(--action-neutral-glow, #94a3b8); }
  :root :where(.app-action-button--success, .btn-success, .export-primary-button,
    .import-primary-button, .export-file-action, :where(.preview-button:not(.secondary)),
    .disposition-download-ready, .documents-pill, .predavka-primary-button, .pickup-save-button,
    .shift-plan-save-button, .vacation-save-button, .done-button,
    .container-service-primary-action, .camera-action-primary,
    .import-upload-details > summary, .import-upload-files > summary,
    .login-form button, .mfa-form button, .mfa-primary-link),
  button[name="action"]:is([value^="save_"], [value="confirm"], [value="update"],
    [value="approve_gate_estimate"], [value="confirm_attendance_day"],
    [value="confirm_handover_read"], [value="sign_timesheet"]),
  form:has(> input[name="action"][value^="save_"]) button:not([type="button"], [type="reset"]) {
    --action-glow: #32e678;
    --action-fill: rgba(36, 115, 70, 0.96);
    --action-ink: #fff;
  }
  :root :where(.app-action-button--info, .btn-info, .shift-plan-export-link,
    .shift-plan-print-link, .timesheet-print-action, .container-service-print-button,
    .map-alert-print-button, .yardo-api-pill, .import-upload-file-download, a[download]) {
    --action-glow: #4db0ff;
    --action-fill: #1766a8;
    --action-ink: #fff;
  }
  :root :where(.app-action-button--warning, .btn-warning, .is-warning,
    .summary-warning-trigger, .problem-report-pill, .anomaly-pill, .import-summary-badge,
    .map-empty-release-trigger,
    .map-mobile-release-trigger) {
    --action-glow: #ffc042;
    --action-fill: #8b5b12;
    --action-ink: #fff;
  }
  :root :where(.app-action-button--danger, .btn-danger, .danger, .is-danger,
    .shift-plan-reset-button, .driver-inspection-button--reject,
    .timesheet-sign-cancel-action),
  button[name="action"]:is([value^="delete"], [value^="remove_"], [value^="reject"],
    [value="bulk_delete_trains"], [value="reset_shift_plan"], [value="revoke_sessions"]),
  form:has(> input[name="action"]:is([value^="delete"], [value^="remove_"],
    [value^="reject"], [value="reset_shift_plan"])) button:not([type="button"], [type="reset"]) {
    --action-glow: #ef4444;
    --action-fill: linear-gradient(135deg, #b91c1c, #dc2626);
    --action-ink: #fff;
  }
  :root :where(.cameras-pill) { --action-glow: #b38aff; }
  /* Same surface as train upload actions, without changing size/placement.
     Selection still uses each page's established fill/border. */
  :is(.app-action-button, .export-primary-button, .export-secondary-button,
    .export-back-button, .export-list-button, .preview-button, .btn,
    .predavka-primary-button, .driver-account-button, .pickup-save-button,
    .shift-plan-save-button, .shift-plan-reset-button, .vacation-save-button,
    .container-service-primary-action, .container-service-row-action,
    .report-header-neutral-action, .employee-list-action, .employee-edit-action,
    .timesheet-print-action, .shift-plan-export-link, .shift-plan-print-link,
    .train-detail-edit-action, .train-plan-edit-cancel, .mfa-primary-link,
    .login-form button, .mfa-form button, .import-upload-files > summary,
    .import-upload-details > summary):not(.is-active, .active, .selected, .is-selected, .selected_tab, .is-current,
    [aria-expanded="true"], [aria-selected="true"],
    [aria-current], [aria-pressed="true"]) {
    border-color: color-mix(in srgb, var(--action-glow) 48%, transparent) !important;
    border-radius: 8px !important;
    background: var(--action-fill) !important;
    color: var(--action-ink) !important;
  }
  body.theme-light {
    --action-neutral-fill: #f1f5f9;
    --action-neutral-ink: #101b24;
    --action-neutral-glow: #64748b;
  }
  /* Keyboard focus has a distinct outline; focus alone does not activate a button. */
  :is(button,
    input:is([type="button"], [type="submit"], [type="reset"]),
    summary,
    [role="button"],
    a:is([class*="button"], [download], .sc-clear, .btn, .app-action-button, .admin-log-pill,
      .panel-action-link, .container-edi-action, .container-service-primary-action,
      .container-service-row-action, .employee-edit-action, .employee-list-action,
      .report-calendar-action, .report-header-neutral-action, .timesheet-print-action,
      .timesheet-sign-action, .train-detail-edit-action, .train-plan-new-trigger,
      .train-plan-edit-cancel, .shift-plan-export-link, .shift-plan-print-link,
      .predavka-source-link, .mfa-primary-link, .import-relation-archive,
      .import-upload-file-download, .driver-inspection-overview-link,
      .gate-estimate-history-link, .debug-live-link, .debug-pill,
      .empty-wagon-db-folder-link, .table_filter, .selected_tab),
    :is(.import-workbench-actions, .export-action-row, .preview-actions,
      .dalsi-row-actions, .train-plan-toolbar-actions, .debug-replay-toolbar-actions,
      .msc-check-tabs, [class*="-actions"], [class*="-tabs"],
      [class*="-filters"], [class*="-toolbar"]) > a):focus-visible {
    outline: 2px solid var(--action-glow) !important;
    outline-offset: 3px !important;
  }
  /* Selected/toggled is an intentional persistent state, unlike focus/enabled. */
  :is(button,
    input:is([type="button"], [type="submit"], [type="reset"]),
    summary,
    [role="button"],
    a:is([class*="button"], [download], .sc-clear, .btn, .app-action-button, .admin-log-pill,
      .panel-action-link, .container-edi-action, .container-service-primary-action,
      .container-service-row-action, .employee-edit-action, .employee-list-action,
      .report-calendar-action, .report-header-neutral-action, .timesheet-print-action,
      .timesheet-sign-action, .train-detail-edit-action, .train-plan-new-trigger,
      .train-plan-edit-cancel, .shift-plan-export-link, .shift-plan-print-link,
      .predavka-source-link, .mfa-primary-link, .import-relation-archive,
      .import-upload-file-download, .driver-inspection-overview-link,
      .gate-estimate-history-link, .debug-live-link, .debug-pill,
      .empty-wagon-db-folder-link, .table_filter, .selected_tab),
    :is(.import-workbench-actions, .export-action-row, .preview-actions,
      .dalsi-row-actions, .train-plan-toolbar-actions, .debug-replay-toolbar-actions,
      .msc-check-tabs, [class*="-actions"], [class*="-tabs"],
      [class*="-filters"], [class*="-toolbar"]) > a):is(.is-active, .active, .selected, .is-selected, .selected_tab, .is-current, [aria-pressed="true"], [aria-selected="true"], [aria-current="page"], [aria-expanded="true"]):not(:disabled):not([aria-disabled="true"]):not(.disabled),
  details[open] > summary:not([aria-disabled="true"]) {
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--action-glow) 25%, transparent),
      0 0 22px color-mix(in srgb, var(--action-glow) 30%, transparent) !important;
  }
  @media (hover: hover) and (pointer: fine) {
    :is(button,
    input:is([type="button"], [type="submit"], [type="reset"]),
    summary,
    [role="button"],
    a:is([class*="button"], [download], .sc-clear, .btn, .app-action-button, .admin-log-pill,
      .panel-action-link, .container-edi-action, .container-service-primary-action,
      .container-service-row-action, .employee-edit-action, .employee-list-action,
      .report-calendar-action, .report-header-neutral-action, .timesheet-print-action,
      .timesheet-sign-action, .train-detail-edit-action, .train-plan-new-trigger,
      .train-plan-edit-cancel, .shift-plan-export-link, .shift-plan-print-link,
      .predavka-source-link, .mfa-primary-link, .import-relation-archive,
      .import-upload-file-download, .driver-inspection-overview-link,
      .gate-estimate-history-link, .debug-live-link, .debug-pill,
      .empty-wagon-db-folder-link, .table_filter, .selected_tab),
    :is(.import-workbench-actions, .export-action-row, .preview-actions,
      .dalsi-row-actions, .train-plan-toolbar-actions, .debug-replay-toolbar-actions,
      .msc-check-tabs, [class*="-actions"], [class*="-tabs"],
      [class*="-filters"], [class*="-toolbar"]) > a):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled) {
      box-shadow: 0 0 0 1px color-mix(in srgb, var(--action-glow) 25%, transparent),
        0 0 22px color-mix(in srgb, var(--action-glow) 30%, transparent) !important;
    }
  }
  :is(button,
    input:is([type="button"], [type="submit"], [type="reset"]),
    summary,
    [role="button"],
    a:is([class*="button"], [download], .sc-clear, .btn, .app-action-button, .admin-log-pill,
      .panel-action-link, .container-edi-action, .container-service-primary-action,
      .container-service-row-action, .employee-edit-action, .employee-list-action,
      .report-calendar-action, .report-header-neutral-action, .timesheet-print-action,
      .timesheet-sign-action, .train-detail-edit-action, .train-plan-new-trigger,
      .train-plan-edit-cancel, .shift-plan-export-link, .shift-plan-print-link,
      .predavka-source-link, .mfa-primary-link, .import-relation-archive,
      .import-upload-file-download, .driver-inspection-overview-link,
      .gate-estimate-history-link, .debug-live-link, .debug-pill,
      .empty-wagon-db-folder-link, .table_filter, .selected_tab),
    :is(.import-workbench-actions, .export-action-row, .preview-actions,
      .dalsi-row-actions, .train-plan-toolbar-actions, .debug-replay-toolbar-actions,
      .msc-check-tabs, [class*="-actions"], [class*="-tabs"],
      [class*="-filters"], [class*="-toolbar"]) > a):active:not(:disabled):not([aria-disabled="true"]):not(.disabled) {
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--action-glow) 35%, transparent),
      0 0 16px color-mix(in srgb, var(--action-glow) 38%, transparent) !important;
  }
  :is(button,
    input:is([type="button"], [type="submit"], [type="reset"]),
    summary,
    [role="button"],
    a:is([class*="button"], [download], .sc-clear, .btn, .app-action-button, .admin-log-pill,
      .panel-action-link, .container-edi-action, .container-service-primary-action,
      .container-service-row-action, .employee-edit-action, .employee-list-action,
      .report-calendar-action, .report-header-neutral-action, .timesheet-print-action,
      .timesheet-sign-action, .train-detail-edit-action, .train-plan-new-trigger,
      .train-plan-edit-cancel, .shift-plan-export-link, .shift-plan-print-link,
      .predavka-source-link, .mfa-primary-link, .import-relation-archive,
      .import-upload-file-download, .driver-inspection-overview-link,
      .gate-estimate-history-link, .debug-live-link, .debug-pill,
      .empty-wagon-db-folder-link, .table_filter, .selected_tab),
    :is(.import-workbench-actions, .export-action-row, .preview-actions,
      .dalsi-row-actions, .train-plan-toolbar-actions, .debug-replay-toolbar-actions,
      .msc-check-tabs, [class*="-actions"], [class*="-tabs"],
      [class*="-filters"], [class*="-toolbar"]) > a):is(:disabled, [aria-disabled="true"], .disabled) {
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    transform: none !important;
  }
  @media (prefers-reduced-motion: reduce) {
    :is(button,
    input:is([type="button"], [type="submit"], [type="reset"]),
    summary,
    [role="button"],
    a:is([class*="button"], [download], .sc-clear, .btn, .app-action-button, .admin-log-pill,
      .panel-action-link, .container-edi-action, .container-service-primary-action,
      .container-service-row-action, .employee-edit-action, .employee-list-action,
      .report-calendar-action, .report-header-neutral-action, .timesheet-print-action,
      .timesheet-sign-action, .train-detail-edit-action, .train-plan-new-trigger,
      .train-plan-edit-cancel, .shift-plan-export-link, .shift-plan-print-link,
      .predavka-source-link, .mfa-primary-link, .import-relation-archive,
      .import-upload-file-download, .driver-inspection-overview-link,
      .gate-estimate-history-link, .debug-live-link, .debug-pill,
      .empty-wagon-db-folder-link, .table_filter, .selected_tab),
    :is(.import-workbench-actions, .export-action-row, .preview-actions,
      .dalsi-row-actions, .train-plan-toolbar-actions, .debug-replay-toolbar-actions,
      .msc-check-tabs, [class*="-actions"], [class*="-tabs"],
      [class*="-filters"], [class*="-toolbar"]) > a) { transition: none !important; }
  }
  }
}
