/* PaintGem foundation — shared with app.paintgem.com's deployed editor. */
:root,[data-theme=light]{color-scheme:light;--surface:#fff;--ink:#222;--muted:#737373;--line:#e5e5e5;--soft:#e5e5e5;--well:#eee;--shop-card:#eee;--shop-badge:var(--well);--quantity-fill:rgb(0 0 0 / 6%);--selected:var(--soft);--strong-line:var(--line);--accent:#333;--on-accent:#fff;--accent-hover:#171717;--input-fill:var(--soft);--title-ink:#000;--card-border:#00000012;--card-pressed:color-mix(in srgb,var(--well),black 8%);--circle-fill:#fff;--circle-pressed:#e5e5e5;--progress-track:rgb(0 0 0 / 10%);--action-fill:#e700aa;--action-pressed:#f126bb;--control-height:60px;--control-font-size:18px;--control-weight:900;--control-radius:14px;--button-radius:12px;--control-padding:18px 20px;--control-border:0;--field-weight:600;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius-card:18px;--radius-panel:24px;--font-ui:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
[data-theme=dark]{color-scheme:dark;--surface:#000000;--ink:#f5f5f5;--muted:#a3a3a3;--line:#363636;--soft:#252525;--well:#252525;--shop-card:#121212;--shop-badge:#363636;--quantity-fill:#363636;--selected:#303030;--strong-line:#686868;--accent:#e5e5e5;--on-accent:#121212;--accent-hover:#fff;--input-fill:#242424;--title-ink:#fff;--card-border:rgb(255 255 255 / 6%);--card-pressed:color-mix(in srgb,var(--well),white 8%);--circle-fill:rgb(255 255 255 / 6%);--circle-pressed:rgb(255 255 255 / 12%);--progress-track:rgb(255 255 255 / 10%)}
html[data-ui=admin]{--control-height:36px;--control-font-size:14px;--control-weight:500;--control-radius:6px;--control-padding:8px 12px;--control-border:1px solid var(--line);--input-fill:transparent;--field-weight:400}
html{background:var(--surface);color:var(--ink);font-family:var(--font-ui)}
:where(button,input,select,textarea){font-family:inherit;color:inherit}
:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--muted);outline-offset:3px}
:where(button):disabled{opacity:.4;cursor:default}
:where(input,textarea)::placeholder{color:var(--muted);opacity:1}
:where(input[type=checkbox],input[type=radio],input[type=range]){accent-color:var(--action-fill)}
/* Shared action edge; loading indicators can independently use ::after. */
:where(.pg-primary,.beta-primary,.pg-account button[type=submit],.pg-chat-send,.bundle-cta,.quantity.empty .plus,.buy,.close,.hero-cta:not(.hero-shop),.q-player-foot>button,.q-complete .q-primary){position:relative;background:var(--action-fill);color:#fff;border:0;font-weight:900}
:where(.pg-primary,.beta-primary,.pg-account button[type=submit],.pg-chat-send,.bundle-cta,.quantity.empty .plus,.buy,.close,.hero-cta:not(.hero-shop),.q-player-foot>button,.q-complete .q-primary)::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:linear-gradient(to bottom,rgb(255 255 255 / 60%) 0%,transparent 15%,transparent 85%,rgb(255 255 255 / 30%) 100%);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}
:where(.pg-primary,.beta-primary,.pg-account button[type=submit],.pg-chat-send,.bundle-cta,.quantity.empty .plus,.buy,.close,.hero-cta:not(.hero-shop),.q-player-foot>button,.q-complete .q-primary):active:not(:disabled){background:var(--action-pressed)}
:where(.landing-menu,.landing-chat,.header-back,.q-player-head .q-quiet){position:relative;background:var(--circle-fill);color:var(--ink);border:0;backdrop-filter:blur(20px)}
:where(.landing-menu,.landing-chat,.header-back,.q-player-head .q-quiet)::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,#fffc,#ffffff24 20%,#ffffff1a 80%,#ffffff7f);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}
:where(.landing-menu,.landing-chat,.header-back,.q-player-head .q-quiet):active{background:var(--circle-pressed)}
[data-theme=light] :where(.landing-menu,.landing-chat,.header-back,.q-player-head .q-quiet){box-shadow:inset 0 0 0 1px var(--line)}
