/* Four complete light palettes. Semantic warning/success and seat colors stay
   independent; photographs, uploaded artwork and exported images are untouched. */
html[data-ui-theme="blue"], .ap-card[data-theme="blue"] {
  --ap-primary:#2459d3; --ap-primary-hover:#1947ad; --ap-primary-alt:#3664cf;
  --ap-ink:#182640; --ap-muted:#52627a; --ap-bg:#eef2f9; --ap-soft:#e7efff;
  --ap-line:#d5deec; --ap-line-strong:#b3c5e5; --ap-quiet:#f5f7fc;
  --ap-hover:#eaf0fb; --ap-chrome:#f8faff; --ap-nav:#e1e9f6;
  --ap-price:#1649ad; --ap-focus:#2459d32b; --ap-selection:#cee0ff;
}
html[data-ui-theme="violet"], .ap-card[data-theme="violet"] {
  --ap-primary:#7140bb; --ap-primary-hover:#593098; --ap-primary-alt:#7d4bc2;
  --ap-ink:#2d203f; --ap-muted:#6a5d7c; --ap-bg:#f3eff9; --ap-soft:#eee5fa;
  --ap-line:#ddd2eb; --ap-line-strong:#c3aadf; --ap-quiet:#f8f5fc;
  --ap-hover:#f0eaf8; --ap-chrome:#fcfaff; --ap-nav:#e9e0f2;
  --ap-price:#6834a8; --ap-focus:#7140bb29; --ap-selection:#dfccf7;
}
html[data-ui-theme="amber"], .ap-card[data-theme="amber"] {
  --ap-primary:#895712; --ap-primary-hover:#70450d; --ap-primary-alt:#96601a;
  --ap-ink:#3b2e21; --ap-muted:#76634e; --ap-bg:#f6f0e5; --ap-soft:#f4e5cd;
  --ap-line:#e4d7c2; --ap-line-strong:#ccb084; --ap-quiet:#fbf7f0;
  --ap-hover:#f4eadc; --ap-chrome:#fffaf1; --ap-nav:#ece0cd;
  --ap-price:#865114; --ap-focus:#9560142b; --ap-selection:#ecd2a8;
}
html[data-ui-theme="classic"], .ap-card[data-theme="classic"] {
  --ap-primary:#23766d; --ap-primary-hover:#195e57; --ap-primary-alt:#28796f;
  --ap-ink:#1d1d1f; --ap-muted:#626268; --ap-bg:#f5f5f7; --ap-soft:#eaf3f0;
  --ap-line:#e1e2e6; --ap-line-strong:#bdd3c9; --ap-quiet:#f6f7f7;
  --ap-hover:#f0f2f3; --ap-chrome:#fafafc; --ap-nav:#ecefed;
  --ap-price:#1d625a; --ap-focus:#23766d2e; --ap-selection:#cce5d9;
}
html[data-ui-theme] {
  color-scheme:light;
  --ui-primary:var(--ap-primary); --ui-primary-hover:var(--ap-primary-hover);
  --ui-ink:var(--ap-ink); --ui-muted:var(--ap-muted); --ui-bg:var(--ap-bg);
  --ui-surface:#fff; --ui-line:var(--ap-line); --ui-soft:var(--ap-soft);
  --ui-focus:var(--ap-focus);
  --ui-shadow:0 2px 9px #14203808, 0 1px 2px #14203805;
  --ui-shadow-raised:0 20px 56px #14203825, 0 2px 8px #1420380d;
  --violet:var(--ui-primary); --violet2:var(--ap-primary-alt);
  --vsoft:var(--ui-soft); --vline:var(--ap-line-strong);
  --ink:var(--ui-ink); --ink2:var(--ui-ink); --gray:var(--ui-muted);
  --bg:var(--ui-bg); --card:var(--ui-surface); --line:var(--ui-line);
  --primary-hover:var(--ui-primary-hover); --price:var(--ap-price);
  --quiet:var(--ap-quiet); --hover:var(--ap-hover); --focus:var(--ui-focus);
}
html[data-ui-theme] ::selection { background:var(--ap-selection); color:var(--ui-ink); }
html[data-ui-theme] :is(input,textarea)::placeholder { color:var(--ui-muted); }
html[data-ui-theme] .ui-admin { --admin-wash:var(--ap-quiet); --admin-border-strong:var(--ap-line-strong); }
html[data-ui-theme] :is(.ui-admin,.ui-query,.ui-mall) .topbar,
html[data-ui-theme] .ui-mine > header { background:var(--ap-chrome); border-bottom-color:var(--ui-line); }
html[data-ui-theme] .ui-shop .hero { background:var(--ui-soft); border-color:var(--ap-line-strong); }
html[data-ui-theme] .ui-shop .hero h1 { color:var(--ui-ink); }
html[data-ui-theme] .ui-shop .hero .sub { color:var(--ui-muted); }
html[data-ui-theme] .ui-admin .admin-brand-mark { background:var(--ui-primary); color:white; }
html[data-ui-theme] .ui-admin .admin-version { background:var(--ui-soft); border-color:var(--ui-line); color:var(--ui-primary); }
html[data-ui-theme] .ui-admin #app > .tabs { background:var(--ap-nav); border-color:var(--ui-line); }
html[data-ui-theme] .ui-admin #app > .tabs > .tab:not(.review-attention) { color:var(--ui-muted); background:transparent; }
html[data-ui-theme] .ui-admin #app > .tabs > .tab.active { background:var(--ui-primary); border-color:var(--ui-primary); color:white; box-shadow:none; }
html[data-ui-theme] .ui-admin #app > .tabs > .tab:hover:not(.active,.review-attention) { background:var(--ui-surface); color:var(--ui-primary); }
html[data-ui-theme] .ui-admin :is(.card,#tab-agents .card,#tab-calendar .card,#psub-config .card) { border-color:var(--ui-line); box-shadow:var(--ui-shadow); }
html[data-ui-theme] .ui-admin :is(.tblwrap,.scroll,.btn.gray) { border-color:var(--ui-line); }
html[data-ui-theme] .ui-admin :is(th,.admin-collection-filters > label,.card .fg > input,.card .fg > select) { background-color:var(--ap-quiet); }
html[data-ui-theme] .ui-admin :is(.data-subnav,.cm-top) { background:var(--ap-nav); border-color:var(--ui-line); }
html[data-ui-theme] .ui-admin .cm-tab.active { background:var(--ui-soft); border-color:var(--ap-line-strong); }
html[data-ui-theme] .ui-query .login-wrap { background:linear-gradient(145deg,var(--ui-soft),var(--ui-bg) 65%); }
html[data-ui-theme] .ui-query :is(.field input,.fg select,.fg input,th) { background-color:var(--ap-quiet); }
html[data-ui-theme] .ui-query .results-head { background:var(--ap-chrome); }
html[data-ui-theme] .ui-query .sortbar { background:var(--ap-nav); }
html[data-ui-theme] .ui-query .sortchip.on { background:var(--ui-primary); color:white; box-shadow:none; }
html[data-ui-theme] .ui-query tbody tr:hover { background:var(--ap-hover); }
html[data-ui-theme] .ui-query .filter-map-entry { background:var(--ui-primary); box-shadow:none; }
html[data-ui-theme] .ui-query .filter-map-entry small { color:#fff; }
html[data-ui-theme] .ui-query .filter-map-entry:disabled { background:var(--ap-nav); color:var(--ui-muted); }
html[data-ui-theme] .ui-query .filter-map-entry:disabled small { color:var(--ui-muted); }
html[data-ui-theme] :is(.ui-mine,.ui-shop) .ccard.sel { background:var(--ui-soft); border-color:var(--ui-primary); }
html[data-ui-theme] :is(.ui-mine,.ui-shop) .ccard:where(:not(.sel)):hover { border-color:var(--ap-line-strong); }
html[data-ui-theme] .ui-shop :is(.daybar,.catbar) .chip { background:var(--ap-quiet); }
html[data-ui-theme] .ui-shop :is(.daybar,.catbar) .chip.on { background:var(--ui-primary); color:white; border-color:var(--ui-primary); box-shadow:none; }
html[data-ui-theme] .ui-shop :is(.pts-badge,.promo-entry-row #textBtn:not(.on),.sp-upload) { border-color:var(--ap-line-strong); }
html[data-ui-theme] .ui-shop :is(.sp-hero,.sp-upload) { background:var(--ui-soft); }
html[data-ui-theme] .ui-shop .bar { background:var(--ap-chrome); }
html[data-ui-theme] .ui-mall { --pink:var(--ui-primary); --deep:var(--ui-primary-hover); --light:var(--ap-line-strong); --text:var(--ui-ink); --sub:var(--ui-muted); }
html[data-ui-theme] .ui-mall .ann { background:var(--ui-primary); }
html[data-ui-theme] .ui-mall .coupon { background:var(--ui-soft); border-color:var(--ap-line-strong); }
html[data-ui-theme] .ui-mall :is(.chip,.gtab) { background:var(--ap-nav); }
html[data-ui-theme] .ui-mall :is(.chip.on,.gtab.on) { background:var(--ui-primary); color:white; border-color:var(--ui-primary); box-shadow:none; }
/* Lazily loaded map/venue styles define their own local variables. These scoped
   overrides only theme the controls; map availability/selection keeps its key. */
html[data-ui-theme] .smv-overlay { --smv-muted:var(--ui-muted); --smv-soft:var(--ui-soft); --smv-accent-hover:var(--ui-primary-hover); --smv-price:var(--ap-price); }
html[data-ui-theme] :is(.vm-manager,.vm-overlay) { --vm-muted:var(--ui-muted); --vm-soft:var(--ui-soft); --vm-paper:var(--ui-bg); }
html[data-ui-theme] .smv-ticket-actions [data-copy] { color:var(--ui-primary); background:var(--ui-soft); border-color:var(--ap-line-strong); }
html[data-ui-theme] .smv-mobile-selection [data-show-tickets] { background:var(--ui-primary); border-color:var(--ui-primary); }
html[data-ui-theme] .smv-mobile-selection :is(strong,span) { color:var(--ap-price); }
html[data-ui-theme] .vm-btn.primary:hover { background:var(--ui-primary-hover); border-color:var(--ui-primary-hover); }
html[data-ui-theme] .vm-btn.active { background:var(--ui-soft); color:var(--ui-primary); border-color:var(--ap-line-strong); }
@media (max-width:640px) {
  html[data-ui-theme] .ui-admin #app > .tabs { background:var(--ui-bg); }
  html[data-ui-theme] .ui-admin #app > .tabs > .tab:not(.active,.review-attention) { background:var(--ap-nav); }
  html[data-ui-theme] .ui-query .results-head { background:transparent; }
}
