/* DEV72 tactile affordances: motion is optional, never flash or pulse. */
:where(button,a,[role="button"],summary){touch-action:manipulation}
:where(button,a,[role="button"],summary):focus-visible{outline:3px solid #f8ce74!important;outline-offset:3px}
:where(button,a,[role="button"],summary).teddy-pressed{filter:brightness(1.08)}
@media(prefers-reduced-motion:reduce){.teddy-pressed{filter:none!important}}
/* R4 shared feedback states (one service: public/js/dev83-press-feedback.js). Pressed is subtle, selected is clear, busy and results are
   visible without colour alone (outline style + cursor + the caller's own text), and motion is dropped when reduced motion is preferred. */
:where(button,a,[role="button"],[role="tab"],summary,label).teddy-pressed{filter:brightness(1.1);transform:translateY(1px) scale(.985);transition:transform 60ms ease-out,filter 60ms ease-out}
:where(button,a,[role="button"],[role="tab"])[aria-pressed="true"],:where([role="tab"])[aria-selected="true"],:where(a)[aria-current="page"]{box-shadow:0 0 0 2px #f8ce74 inset,0 0 14px rgba(248,206,116,.45)}
[aria-busy="true"].teddy-busy{cursor:progress;opacity:.82}
.teddy-ok{outline:3px solid #46d39a!important;outline-offset:3px}
.teddy-err{outline:3px dashed #ff7a7a!important;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.teddy-pressed{transform:none!important;transition:none!important}}
/* R4: on touch screens the static pages' header, footer, navigation and back links are at least 44x44 CSS px (desktop mouse layout
   unchanged; the app shell sets data-page on <body> and is not affected). Checkbox rows get a 44px tall label. */
@media (pointer:coarse){
 body:not([data-page]) :is(header,footer,nav) a[href],body:not([data-page]) a.brand,body:not([data-page]) .skip:focus{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}
 body:not([data-page]) label:has(> input[type=checkbox]),body:not([data-page]) label:has(> input[type=radio]){min-height:44px;display:flex;align-items:center;gap:8px}
 body:not([data-page]) .login-links a[href]{min-height:44px;display:inline-flex;align-items:center}
 body:not([data-page]) input[type=checkbox],body:not([data-page]) input[type=radio]{min-width:24px;min-height:24px}
}
