/**
 * WINWIN — Canonical z-index ladder (single source of truth).
 *
 * One scale, large gaps, every fixed/overlay actor maps onto a named tier.
 * Rule: nothing uses raw magic numbers or max-int anymore. If you need a new
 * layer, add a token here — do NOT invent an ad-hoc value in a component.
 *
 * Order (low -> high):
 *   sticky    100   in-card badges, sticky table headers, dropdowns
 *   chrome    1000  fixed header, sidebar, mobile bottom-nav
 *   banner    3000  impersonation / view-mode banners
 *   chat      4000  chat widget launcher + AI chatbot + panels
 *   overlay   5000  generic page overlays, lightboxes, galleries, lang switcher
 *   modal     6000  base modals (.modal, .ugc-modal-overlay) — JS raises the
 *                   active one within 6000-6899 so last-opened wins
 *   modal-top 6900  stacked sub-modals (reject/revision opened over a base modal)
 *   confirm   7000  confirm dialogs — must beat any modal
 *   blocker   8500  payment-blocked reconnect card (hard gate)
 *   tour      9000  guided tour overlay — above all app UI
 *   pwa       9500  PWA install prompt
 *   tooltip   9600  help tooltips — must stay visible above everything
 *   toast     9700  toasts / feedback — the very top, never hidden
 *
 * tooltip and toast sit ABOVE the tour on purpose: transient feedback and help
 * bubbles must never be hidden, even mid-tour or behind a modal. (This replaces
 * the old WW_LAYER_POLICY max-int override.)
 *
 * JS that sets inline z-index (tour engines, pwa.js, the modal raiser, toasts
 * built via el.style/Object.assign) uses the matching numeric literals — the
 * `z-index` IDL setter rejects var(), so those spots cannot use the tokens.
 */
:root {
    --z-sticky: 100;
    --z-chrome: 1000;
    --z-banner: 3000;
    --z-chat: 4000;
    --z-overlay: 5000;
    --z-modal: 6000;
    --z-modal-top: 6900;
    --z-confirm: 7000;
    --z-blocker: 8500;
    --z-tour: 9000;
    --z-pwa: 9500;
    --z-tooltip: 9600;
    --z-toast: 9700;
}
