/* #343 (the owner 2026-11-03, about the pay button with no hand and no sign of what was missing):
   everything that can be pressed shows the hand; a control that cannot be pressed yet looks off, shows the stop sign and says what is missing. ONE source for every page, linked from every page (the gate holds it). */
button, [role="button"], summary, select, input[type="checkbox"], input[type="radio"], input[type="submit"], input[type="button"], input[type="file"], .aopt { cursor: pointer; }
label:has(input[type="checkbox"]), label:has(input[type="radio"]) { cursor: pointer; }
button:disabled, button[aria-disabled="true"], [role="button"][aria-disabled="true"], select:disabled, input:disabled, input:disabled + span, input:disabled ~ label { cursor: not-allowed; }
button:disabled:not(.coming) { opacity: .45; filter: grayscale(.5); box-shadow: none; }
button:disabled:hover { transform: none; }
/* off is off, whatever the style of a page says about the same button (the pay button of the meetings is gold when it is not disabled) */
button[aria-disabled="true"], [role="button"][aria-disabled="true"], a[aria-disabled="true"] { cursor: not-allowed !important; }
button[aria-disabled="true"], [role="button"][aria-disabled="true"] { opacity: .45 !important; filter: grayscale(.5) !important; box-shadow: none !important; transform: none !important; }
/* The line above a button that waits for something: what is missing, in the words of the page, gone when it is done. */
.needs-line { display: block; margin: .6rem auto .75rem; max-width: 34rem; text-align: center; font-size: .95rem; line-height: 1.45; color: #f0cf7a; }
.needs-line[hidden] { display: none; }
[data-theme="light"] .needs-line { color: #8a6510; }
html:not([data-theme]) body[data-skin="business"] .needs-line { color: var(--accent, #8a6510); }
/* A press on an off button shows where the missing thing is. */
.needs-flash { outline: 2px solid #f0cf7a; outline-offset: 3px; border-radius: 8px; animation: needs-flash 1.8s ease 1; }
@keyframes needs-flash { 0%, 100% { outline-color: transparent; } 25%, 75% { outline-color: #f0cf7a; } }
@media (prefers-reduced-motion: reduce) { .needs-flash { animation: none; } }
