/* Shared feedback; approved page compositions stay in their existing stylesheets. */
.admin-shell :is(tbody tr,[data-admin-row],.inventory-family-row):has(:is(a[href],button,input,select)):not([aria-selected=true],[aria-disabled=true],.selected,.active,.error,.disabled) {
  transition: background-color 140ms ease;
}
@media (hover:hover) {
  .admin-shell :is(tbody tr,[data-admin-row],.inventory-family-row):has(:is(a[href],button,input,select)):not([aria-selected=true],[aria-disabled=true],.selected,.active,.error,.disabled):hover {background-color:rgba(23,23,23,.045);}
}
.admin-shell :is(tbody tr,[data-admin-row],.inventory-family-row):has(:is(a[href],button,input,select)):not([aria-selected=true],[aria-disabled=true],.selected,.active,.error,.disabled):focus-within {background-color:rgba(23,23,23,.045);}
/* Legacy table hover paints the cells. Paint this same layer so it cannot mask
   the row feedback and reveal it only during the mouse-leave transition. */
.admin-shell #admin-section-content .wabi-table tbody tr:has(:is(a[href],button,input,select)):not([aria-selected=true],[aria-disabled=true],.selected,.active,.error,.disabled),
.admin-shell #admin-section-content .wabi-table tbody tr:has(:is(a[href],button,input,select)):not([aria-selected=true],[aria-disabled=true],.selected,.active,.error,.disabled) > :is(td,th) {
  transition:background-color 140ms ease;
}
@media (hover:hover) {
  .admin-shell #admin-section-content .wabi-table tbody tr:has(:is(a[href],button,input,select)):not([aria-selected=true],[aria-disabled=true],.selected,.active,.error,.disabled):hover,
  .admin-shell #admin-section-content .wabi-table tbody tr:has(:is(a[href],button,input,select)):not([aria-selected=true],[aria-disabled=true],.selected,.active,.error,.disabled):hover > :is(td,th) {
    background-color:color-mix(in srgb,var(--wabi-bg) 95.5%,var(--wabi-black));
  }
}
.admin-shell #admin-section-content .wabi-table tbody tr:has(:is(a[href],button,input,select)):not([aria-selected=true],[aria-disabled=true],.selected,.active,.error,.disabled):focus-within,
.admin-shell #admin-section-content .wabi-table tbody tr:has(:is(a[href],button,input,select)):not([aria-selected=true],[aria-disabled=true],.selected,.active,.error,.disabled):focus-within > :is(td,th) {
  background-color:color-mix(in srgb,var(--wabi-bg) 95.5%,var(--wabi-black));
}
.admin-shell :is(a,button,input,select,textarea):focus-visible,.admin-modal-overlay :is(a,button,input,select,textarea):focus-visible {outline:2px solid var(--wabi-accent);outline-offset:3px;}
button[aria-busy=true] {cursor:progress;}
.admin-shell button[aria-busy=true],.admin-modal-overlay button[aria-busy=true] {opacity:.65;}
.admin-shell button[aria-busy=true]::after,.admin-modal-overlay button[aria-busy=true]::after {content:' …';}
.toast .toast-close {border:0;background:transparent;color:inherit;flex-shrink:0;min-width:36px;min-height:36px;font-size:22px;cursor:pointer;}
.toast .toast-msg {min-width:0;overflow-wrap:anywhere;flex:1;}
.toast .toast-kind {font-size:11px;font-weight:600;display:block;margin-bottom:2px;}
.toast--warning {border-left:3px solid var(--wabi-black);}
.toast :focus-visible {outline:2px solid currentColor;outline-offset:2px;}
.toast.toast--exit {animation-duration:140ms;}
#toast-container {max-height:70vh;overflow-y:auto;}
.pdp-configuration-summary {font-size:12px;line-height:1.6;color:var(--wabi-black);margin-bottom:10px;overflow-wrap:anywhere;}
dialog[data-dialog-motion=enter]::backdrop {animation:dialog-backdrop-in 200ms ease-out both;}
dialog[data-dialog-motion=exit]::backdrop {animation:dialog-backdrop-out 140ms ease-out both;}
@keyframes dialog-backdrop-in {from{opacity:0}to{opacity:1}}
@keyframes dialog-backdrop-out {from{opacity:1}to{opacity:0}}
.admin-copy {background:none;border:0;color:var(--wabi-gray);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:36px;text-align:left;overflow-wrap:anywhere;}
.admin-copy:hover {color:var(--wabi-accent);}
.shop-page .product-card-img {transform:none;transition:opacity 140ms ease;}
.shop-page .product-card:hover .product-card-img {transform:none;}
.admin-shell .inventory-blank-card {background:var(--wabi-surface);}
@media (prefers-reduced-motion:reduce) {
  .admin-shell *, .admin-modal-overlay *, .pdp-dialog, .toast,dialog::backdrop {animation-duration:0s!important;transition-duration:0s!important;scroll-behavior:auto!important;}
}
