/* CCOO Platform Kit v6.4.0 · controls comuns */
:where(.ds-button,.ccoo-btn,button,[role="button"]){
  min-height:var(--touch-target-min,44px);
  touch-action:manipulation;
}
:where(.ds-button,.ccoo-btn,button,[role="button"]):active:not(:disabled):not([aria-disabled="true"]){
  transform:translateY(1px) scale(.99);
  filter:brightness(.94);
}
:where(.ds-button,.ccoo-btn,button,[role="button"]):disabled,
:where(.ds-button,.ccoo-btn,button,[role="button"])[aria-disabled="true"]{
  opacity:.5;
  cursor:not-allowed;
  transform:none;
  filter:none;
  box-shadow:none;
}
:where(.ds-button,.ccoo-btn,button,[role="button"]).is-busy{
  position:relative;
  cursor:progress;
}
:where(.ds-button,.ccoo-btn,button,[role="button"]).is-busy::before{
  width:1em;
  height:1em;
  flex:0 0 auto;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:ccoo-control-spin .7s linear infinite;
  content:"";
}
.ds-button--danger,.ccoo-btn--danger{
  border-color:var(--status-error,#E32118);
  background:var(--status-error,#E32118);
  color:#fff;
}
:where(.ds-input,.ds-select,.ds-textarea,.ccoo-form input,.ccoo-form select,.ccoo-form textarea):read-only{
  background:var(--color-surface-soft,#F7F7F7);
}
:where(.ds-input,.ds-select,.ds-textarea,.ccoo-form input,.ccoo-form select,.ccoo-form textarea):disabled{
  border-color:var(--color-border,#D2D2D2);
  background:#EAEAEA;
  color:var(--color-muted,#676767);
  cursor:not-allowed;
  opacity:1;
}
:where(.ds-input,.ds-select,.ds-textarea,.ccoo-form input,.ccoo-form select,.ccoo-form textarea)[aria-invalid="true"]{
  border-color:var(--status-error,#E32118);
  box-shadow:0 0 0 3px rgba(227,33,24,.16);
}
.ds-field__error,.ccoo-field-error{color:var(--status-error,#E32118)}
.ds-table-wrap:focus-within{border-color:var(--app-accent);box-shadow:var(--focus-ring)}
.ds-table tbody tr:focus-within,.ds-table tbody tr:hover{background:var(--color-surface-soft,#F7F7F7)}
:where(.ds-modal__footer,.ccoo-dialog__footer){flex-wrap:wrap}
:where(.ds-modal__dialog,.ccoo-dialog){outline:0}
@keyframes ccoo-control-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  :where(.ds-button,.ccoo-btn,button,[role="button"]).is-busy::before{animation-duration:1.4s}
}
@media(max-width:640px){
  :where(.ds-modal__footer,.ccoo-dialog__footer)>:where(button,.ds-button,.ccoo-btn){flex:1 1 100%;width:100%}
}
