/* Only the no-JavaScript fallback uses these wrappers. Runtime keeps its existing DOM. */
[data-static-layout="mobile"] { display: none; }
[data-static-layout] .character-card-summary { cursor: default; }
@media (max-width: 850px) {
  [data-static-layout="desktop"] { display: none; }
  [data-static-layout="mobile"] { display: block; }
}
.character-search:disabled,
.character-filter-select:disabled,
[data-static-layout] button:disabled { opacity: 0.6; cursor: not-allowed; }
