/* Shared public interaction and operation feedback. */
:where(.ek-directory,.ek-place,.ek-account,.ek-account-login,.ek-auth-modal,body) :where(button,input[type="button"],input[type="submit"],input[type="reset"],.ek-button,[role="button"]){
  transition:transform .12s ease,filter .12s ease,box-shadow .12s ease,opacity .12s ease;
}

:where(.ek-directory,.ek-place,.ek-account,.ek-account-login,.ek-auth-modal,body) :where(button,input[type="button"],input[type="submit"],input[type="reset"],.ek-button,[role="button"]):not(:disabled):active,
:where(.ek-directory,.ek-place,.ek-account,.ek-account-login,.ek-auth-modal,body) :where(button,input[type="button"],input[type="submit"],input[type="reset"],.ek-button,[role="button"]).ek-is-pressed{
  transform:translateY(2px) scale(.985);
  filter:brightness(.88);
  box-shadow:inset 0 2px 5px rgba(0,0,0,.2)!important;
}

:where(.ek-directory,.ek-place,.ek-account,.ek-account-login,.ek-auth-modal,body) :where(button,input[type="button"],input[type="submit"],input[type="reset"],.ek-button,[role="button"]):focus-visible{
  outline:3px solid rgba(23,105,224,.34);
  outline-offset:3px;
}

:where(button,.ek-button,[role="button"]).ek-is-processing,
:where(button,.ek-button,[role="button"])[aria-busy="true"]{
  cursor:progress!important;
  filter:saturate(.82);
}

:where(button,.ek-button,[role="button"]).ek-is-processing::after,
:where(button,.ek-button,[role="button"])[aria-busy="true"]::after{
  content:"";
  display:inline-block;
  width:.78em;
  height:.78em;
  margin-left:.55em;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  vertical-align:-.08em;
  animation:ek-feedback-spin .7s linear infinite;
}

@keyframes ek-feedback-spin{to{transform:rotate(360deg)}}

:where(.ek-account-status,.ek-form-status,.ek-auth-status,.ek-share-status,.ek-reaction-status,.ek-feedback-status,[role="status"].ek-operation-status):empty{
  display:none!important;
}

:where(.ek-account-status,.ek-form-status,.ek-auth-status,.ek-share-status,.ek-reaction-status,.ek-feedback-status,[role="status"].ek-operation-status).is-feedback-success,
.ek-account-status.is-suggestion-success{
  display:block;
  width:100%;
  box-sizing:border-box;
  margin:12px 0 0;
  padding:13px 16px;
  border:1px solid #67aa72!important;
  border-left:6px solid #2e7d32!important;
  border-radius:10px!important;
  background:#e7f6e9!important;
  color:#174c1d!important;
  box-shadow:0 4px 14px rgba(23,76,29,.09);
  font-weight:700;
  line-height:1.45;
}

:where(.ek-account-status,.ek-form-status,.ek-auth-status,.ek-share-status,.ek-reaction-status,.ek-feedback-status,[role="status"].ek-operation-status).is-feedback-error,
.ek-account-status.is-error{
  display:block;
  width:100%;
  box-sizing:border-box;
  margin:12px 0 0;
  padding:13px 16px;
  border:1px solid #d99595!important;
  border-left:6px solid #b42318!important;
  border-radius:10px!important;
  background:#fff1f0!important;
  color:#7a1b14!important;
  box-shadow:0 4px 14px rgba(122,27,20,.08);
  font-weight:700;
  line-height:1.45;
}

:where(.ek-account-status,.ek-form-status,.ek-auth-status,.ek-share-status,.ek-reaction-status,.ek-feedback-status,[role="status"].ek-operation-status).is-feedback-loading,
.ek-account-status.is-submitting{
  display:block;
  width:100%;
  box-sizing:border-box;
  margin:12px 0 0;
  padding:13px 16px;
  border:1px solid #92b9eb!important;
  border-left:6px solid #1769e0!important;
  border-radius:10px!important;
  background:#edf5ff!important;
  color:#104f9f!important;
  font-weight:700;
  line-height:1.45;
}

.ek-reaction-status:is(.is-feedback-success,.is-feedback-error,.is-feedback-loading),
.ek-share-status:is(.is-feedback-success,.is-feedback-error,.is-feedback-loading){
  padding:8px 11px;
  font-size:.85rem;
}

.ek-review-form .ek-stars[aria-invalid="true"]{
  width:max-content;
  max-width:100%;
  padding:7px 10px;
  border:2px solid #b42318;
  border-radius:9px;
  background:#fff1f0;
  box-shadow:0 0 0 3px rgba(180,35,24,.1);
}

.ek-review-form .ek-stars[aria-invalid="true"] label{
  color:#d99595;
}

@media (prefers-reduced-motion:reduce){
  :where(button,input[type="button"],input[type="submit"],input[type="reset"],.ek-button,[role="button"]){transition:none!important}
  :where(button,.ek-button,[role="button"]).ek-is-processing::after,
  :where(button,.ek-button,[role="button"])[aria-busy="true"]::after{animation-duration:1.4s}
}
