/* Shared accessible text and focus tokens. Business palettes belong to their
 * page stylesheet, never to a generic .card/.panel selector. */
:root{--vtik-ds-brand:#45B96B;--vtik-ds-focus:#2F8F50;--vtik-ds-text:#f7f9fa;--vtik-ds-muted:#c2cbd1;--vtik-ds-canvas:#0b0f12;--vtik-ds-surface:#12181d;--vtik-ds-border:#35424b}
:root[data-vtik-theme="light"]{--vtik-ds-brand:#2F8F50;--vtik-ds-text:#172027;--vtik-ds-muted:#53616d;--vtik-ds-canvas:#f6f7f8;--vtik-ds-surface:#fff;--vtik-ds-border:#d6dde3}
body.vtik-shop-page :is(.card .meta,.recommend-grid .meta,.related-status,.recent-product small,.shop-more-card small){color:var(--vtik-ds-muted)}
body.vtik-shell-scroll-page :is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--vtik-ds-focus);outline-offset:2px}

/* 1.13.343 — canonical semantic tokens. Additive only: legacy page palettes keep
 * ownership until each consumer is migrated, while new/shared components use
 * semantic names instead of page-specific magic values. */
:root{
 --vtik-space-1:4px;--vtik-space-2:8px;--vtik-space-3:12px;--vtik-space-4:16px;--vtik-space-5:20px;--vtik-space-6:24px;
 --vtik-radius-sm:10px;--vtik-radius-md:14px;--vtik-radius-lg:18px;--vtik-radius-sheet:24px;
 --vtik-control-min-h:44px;--vtik-touch-target:44px;
 --vtik-state-success:#16a34a;--vtik-state-warning:#d97706;--vtik-state-danger:#dc2626;--vtik-state-info:#087c75;
 --vtik-shadow-float:0 16px 48px rgba(0,0,0,.24);
}
.vtik-ui-control{min-height:var(--vtik-control-min-h);font:inherit}
.vtik-ui-button{min-height:var(--vtik-touch-target);display:inline-flex;align-items:center;justify-content:center;gap:var(--vtik-space-2);border-radius:var(--vtik-radius-md);font:inherit;font-weight:750;cursor:pointer}
.vtik-ui-button:disabled{cursor:not-allowed;opacity:.58}
.vtik-ui-surface{background:var(--vtik-ds-surface);color:var(--vtik-ds-text);border:1px solid var(--vtik-ds-border);border-radius:var(--vtik-radius-lg)}
.vtik-ui-muted{color:var(--vtik-ds-muted)}
.vtik-ui-status[data-state="success"]{color:var(--vtik-state-success)}
.vtik-ui-status[data-state="warning"]{color:var(--vtik-state-warning)}
.vtik-ui-status[data-state="danger"],.vtik-ui-status[data-state="error"]{color:var(--vtik-state-danger)}
@media(prefers-reduced-motion:reduce){.vtik-ui-button,.vtik-ui-control{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
