/* Device utilities (duplicated in theme for safety) */
.only-desktop{ display: none; }
.only-tablet{ display: none; }
.only-mobile{ display: block; }
@media (min-width: 641px){ .only-mobile{ display:none;} .only-tablet{ display:block;} }
@media (min-width: 1025px){ .only-tablet{ display:none;} .only-desktop{ display:block;} }

/* Resizer component */
.ultra-resizer{ display:inline-flex; align-items:center; gap:.5rem; border:1px solid #e5e7eb; padding:.25rem .5rem; border-radius:.5rem; background:#fff; }
.ultra-resizer__btn{ appearance:none; border:0; background:#f3f4f6; padding:.25rem .5rem; border-radius:.375rem; cursor:pointer; }
.ultra-resizer__value{ min-width:3ch; text-align:center; color:#334155; }

/* Horizontal scroll (Quick Access) */
.qax { display: flex; gap: .75rem; overflow-x: auto; padding: .5rem 1rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.qax a { white-space: nowrap; scroll-snap-align: start; padding: .5rem .75rem; border-radius: .5rem; background: #f5f5f7; color:#111; text-decoration: none; }
.qax::-webkit-scrollbar { height: 6px; }
.qax::-webkit-scrollbar-thumb { background: #ddd; border-radius: 3px; }

/* Global text scale hook */
html { font-size: calc(16px * var(--ultra-text-scale, 1)); }
