/* ==========================================================================
   UTILITIES · STATE — visibility and interaction-state trumps. The hooks that
   JavaScript toggles, and the helpers that override component defaults.
   ========================================================================== */

[hidden] { display: none !important; }

.is-hidden   { display: none !important; }
.is-invisible { visibility: hidden !important; }

.is-active   { /* claimed by components via &.is-active; here as a no-op anchor */ }

.is-disabled {
  opacity: 0.55 !important;
  pointer-events: none !important;
  cursor: not-allowed !important;
}

.u-clickable { cursor: pointer !important; }

/* Print-only / screen-only */
@media print {
  .u-screen-only { display: none !important; }
}
.u-print-only { display: none !important; }
@media print {
  .u-print-only { display: revert !important; }
}

/* Flow control trumps */
.u-block        { display: block !important; }
.u-inline-block { display: inline-block !important; }
.u-flex         { display: flex !important; }
.u-full-width   { width: 100% !important; }
