/* ==========================================================================
   Utilities — deliberately few. Components own their styling.
   ========================================================================== */
.xn-u-center   { text-align: center; }
.xn-u-muted    { color: var(--xn-text-muted); }
.xn-u-nowrap   { white-space: nowrap; }
.xn-u-tabular  { font-variant-numeric: tabular-nums; }
.xn-u-ltr      { direction: ltr; unicode-bidi: isolate; }
.xn-u-mt-0     { margin-top: 0 !important; }
.xn-u-mb-0     { margin-bottom: 0 !important; }
.xn-u-full     { width: 100%; }
.xn-u-surface  { background: var(--xn-surface); border-radius: var(--xn-radius-lg); border: 1px solid var(--xn-border); padding: var(--xn-card-pad); }
.xn-on-dark    { color: var(--xn-text-inverse); }
@media (max-width: 767px)  { .xn-u-hide-mobile  { display: none !important; } }
@media (min-width: 768px)  { .xn-u-only-mobile  { display: none !important; } }
@media print {
	.xn-header, .xn-bar, .xn-drawer, .xn-footer, .xn-portal__nav, .xn-toast-region { display: none !important; }
	body { padding: 0 !important; background: #fff; }
	.xn-main { padding-top: 0; }
}
