/* BILSTORE_THEME_UNIFIED_V1
 * Colours sampled from the existing Member & notifikasi page.
 * This overlay changes colours only; page geometry and media stay untouched.
 */
@media screen and (forced-colors: none) {
:root {
  --bilstore-bg: #171316;
  --bilstore-panel: #241c22;
  --bilstore-panel-alt: #30212a;
  --bilstore-header: #1d171b;
  --bilstore-table-head: #1c161b;
  --bilstore-border: #49313f;
  --bilstore-input-border: #59404f;
  --bilstore-secondary: #372730;
  --bilstore-secondary-border: #48303e;
  --bilstore-text: #fff6fa;
  --bilstore-muted: #bca6b2;
  --bilstore-subtle: #a38a99;
  --bilstore-primary: #d92359;
  --bilstore-primary-hover: #c81d50;
  --bilstore-accent-soft: #f7a8c3;
  --bilstore-accent-tint: #542438;
  /* Existing page tokens: semantic state, tier and artwork tokens are retained. */
  --bg: var(--bilstore-bg);
  --background: var(--bilstore-bg);
  --surface: var(--bilstore-panel);
  --panel: var(--bilstore-panel);
  --card: var(--bilstore-panel);
  --surface-raised: var(--bilstore-panel-alt);
  --raised: var(--bilstore-panel-alt);
  --panel2: var(--bilstore-panel-alt);
  --card2: var(--bilstore-panel-alt);
  --line: var(--bilstore-border);
  --border: var(--bilstore-border);
  --soft-line: var(--bilstore-border);
  --text: var(--bilstore-text);
  --ink: var(--bilstore-text);
  --muted: var(--bilstore-muted);
  --muted-soft: var(--bilstore-subtle);
  --subtle: var(--bilstore-subtle);
  --rose: var(--bilstore-accent-soft);
  --soft: var(--bilstore-accent-soft);
  --accent2: var(--bilstore-accent-soft);
  --accent: var(--bilstore-primary);
  --brand: var(--bilstore-primary);
  --pink: var(--bilstore-primary);
  --maroon: var(--bilstore-primary);
  --maroon2: #6a1832;
  --deposit-bg: var(--bilstore-bg);
  --deposit-card: var(--bilstore-panel);
  --deposit-border: var(--bilstore-border);
  --deposit-text: var(--bilstore-text);
  --deposit-muted: var(--bilstore-muted);
  --deposit-accent: var(--bilstore-primary);
  --sp-bg: var(--bilstore-bg);
  --sp-card: var(--bilstore-panel);
  --sp-card2: var(--bilstore-panel-alt);
  --sp-line: var(--bilstore-border);
  --sp-line2: var(--bilstore-input-border);
  --sp-text: var(--bilstore-text);
  --sp-muted: var(--bilstore-muted);
  --sp-soft: #dbc9d3;
  --sp-accent: var(--bilstore-accent-soft);
  --sp-accent2: var(--bilstore-accent-soft);
  --sp-red: var(--bilstore-primary);
  background-color: var(--bilstore-bg);
  color: var(--bilstore-text);
}

/* These pages use --accent for readable small text, unlike admin.css buttons. */
:root:has(link[href*="admin-coin-v2.css"]),
:root:has(link[href*="admin-wallet.css"]),
:root:has(link[href*="admin-report-v1.css"]),
:root:has(link[href*="news-v1.css"]) { --accent: var(--bilstore-accent-soft); }
body { background-color: var(--bilstore-bg); color: var(--bilstore-text); }
.topbar, .site-header, .nav, .deposit-header, .news-header, .sp-header {
  background-color: var(--bilstore-header);
  border-color: var(--bilstore-border);
}
:root:has(link[href*="admin.css"]) .brand span { background-color: var(--bilstore-accent-tint); color: var(--bilstore-accent-soft); }

/* Shared actions. State/danger actions, WhatsApp and reseller tiers keep their colours. */
button.primary, a.primary, .button.primary, .button-primary, .pay,
.sp-btn-primary, .news-topup, .news-button, .wallet-button.primary,
.ad-btn:not(.quiet):not(.danger), .ra-btn:not(.quiet), .rv-btn:not(.quiet),
.game-calc-actions .primary, #autoApplyProfit {
  background-color: var(--bilstore-primary);
  border-color: var(--bilstore-primary);
  color: #fff;
}
button.primary:hover:not(:disabled), a.primary:hover, .button.primary:hover:not(:disabled),
.button-primary:hover:not(:disabled), .pay:hover:not(:disabled), .sp-btn-primary:hover,
.news-topup:hover, .news-button:hover, .wallet-button.primary:hover,
.ad-btn:not(.quiet):not(.danger):hover:not(:disabled), .ra-btn:not(.quiet):hover:not(:disabled),
.rv-btn:not(.quiet):hover:not(:disabled), .game-calc-actions .primary:hover:not(:disabled) {
  background-color: var(--bilstore-primary-hover);
  border-color: var(--bilstore-primary-hover);
  color: #fff;
}
.quiet, .button.secondary, .button-secondary, .wallet-button.secondary,
.game-calc-actions .ghost, .calculator-chooser-head button {
  background-color: var(--bilstore-secondary);
  border-color: var(--bilstore-secondary-border);
  color: var(--bilstore-text);
}
.quiet:hover:not(:disabled), .button.secondary:hover:not(:disabled),
.button-secondary:hover:not(:disabled), .wallet-button.secondary:hover {
  background-color: var(--bilstore-secondary-border);
}
:where(input).search, input.field, select.field, textarea.field, .ad-in, .ad-select, .ra-in, .ra-select, .rv-in, .rv-select {
  background-color: var(--bilstore-bg);
  color: var(--bilstore-text);
}
:where(input).search, :is(input,select,textarea).field:where(:not(.error):not(.has-error):not([aria-invalid=true])), .ad-in:not([aria-invalid=true]),
.ad-select:not([aria-invalid=true]), .ra-in:not([aria-invalid=true]),
.ra-select:not([aria-invalid=true]), .rv-in:not([aria-invalid=true]),
.rv-select:not([aria-invalid=true]) { border-color: var(--bilstore-input-border); }
:where(input).search::placeholder, .field::placeholder { color: var(--bilstore-muted); }
.transaction-panel, .box, .leader-card, .calc-card { border-color: var(--bilstore-border); }
.social-link { background-color: var(--bilstore-panel); border-color: var(--bilstore-border); }
.social-link:hover { background-color: var(--bilstore-secondary); }
.store-tab-nav { background-color: var(--bilstore-primary); border-color: var(--bilstore-border); color: #fff; }
.store-tab { background-color: var(--bilstore-secondary); color: var(--bilstore-text); }
.store-tab.is-active { background-color: var(--bilstore-primary); color: #fff; border-color: var(--bilstore-primary); }
.quick-tool.active, .quick-tool:hover {
  color: var(--bilstore-accent-soft);
  border-bottom-color: var(--bilstore-accent-soft);
}
.catalog-filter .store-tab.is-active, .catalog-filter .store-tab[aria-selected=true] {
  background-color: var(--bilstore-bg);
  color: var(--bilstore-accent-soft);
  border-bottom-color: var(--bilstore-accent-soft);
}
.purchase-shell .pay { background-image: linear-gradient(135deg, #d92359, #b91d4b); }
.sp-card { background-image: linear-gradient(135deg, #2b1e26, #21191f); }
.sp-table th { background-color: var(--bilstore-table-head); }
.sp-footer { background-color: var(--bilstore-bg); }

/* Existing admin tools with a few literal colours outside their shared tokens. */
:root:has(link[href*="admin.css"]) input:not([type=checkbox]):not([type=radio]),
:root:has(link[href*="admin-products.css"]) select,
:root:has(link[href*="admin-products.css"]) textarea,
.ad-input, .ra-input, .rv-input,
:root:has(link[href*="admin-coin-v2.css"]) .field input,
:root:has(link[href*="admin-coin-v2.css"]) .field select,
:root:has(link[href*="admin-coin-v2.css"]) .field textarea {
  background-color: var(--bilstore-bg);
  color: var(--bilstore-text);
}
:root:has(link[href*="admin.css"]) th,
:root:has(link[href*="admin-member-orders-v2.css"]) th,
:root:has(link[href*="admin-insights-v1.css"]) th { background-color: var(--bilstore-table-head); }
.pw-facts div, .pw-item { background-color: var(--bilstore-panel); border-color: var(--bilstore-border); }
.pw-actions button.primary, .pw-actions button.primary[data-confirm=true] {
  background-color: var(--bilstore-primary); color: #fff; border-color: var(--bilstore-primary);
}
.pw-cands label:has(input:checked) { background-color: var(--bilstore-secondary); }
:root:has(link[href*="admin-coin-v2.css"]) .wallet-card {
  background-image: linear-gradient(130deg, #3b2430, #281e24 85%);
}
:root:has(link[href*="admin-coin-v2.css"]) .preview-card {
  background-image: linear-gradient(140deg, #30212a, #241c22 80%);
}

/* Customer manual Roblox and redeem pages: all media/hero selectors are excluded. */
:root:has(link[href*="robux-manual-v1.css"]) header,
:root:has(link[href*="code-redeem-v1.css"]) header { border-color: var(--bilstore-border); }
:root:has(link[href*="robux-manual-v1.css"]) .card { background-color: var(--bilstore-panel); border-color: var(--bilstore-border); }
:root:has(link[href*="robux-manual-v1.css"]) a:not(.login-format-wa):not(.primary):not(.brand),
:root:has(link[href*="code-redeem-v1.css"]) a:not(.primary):not(.brand) { color: var(--bilstore-accent-soft); }
:root:has(link[href*="robux-manual-v1.css"]) h2 > span { background-color: var(--bilstore-primary); }
:root:has(link[href*="robux-manual-v1.css"]) :is(input,select,textarea),
:root:has(link[href*="code-redeem-v1.css"]) :is(input,select) {
  background-color: var(--bilstore-bg); color: var(--bilstore-text);
}
:root:has(link[href*="robux-manual-v1.css"]) :is(input,select,textarea):not([aria-invalid=true]),
:root:has(link[href*="code-redeem-v1.css"]) :is(input,select):not([aria-invalid=true]) { border-color: var(--bilstore-input-border); }
:root:has(link[href*="robux-manual-v1.css"]) button:not(.primary),
:root:has(link[href*="code-redeem-v1.css"]) button:not(.primary) {
  background-color: var(--bilstore-secondary); border-color: var(--bilstore-secondary-border); color: var(--bilstore-text);
}
:root:has(link[href*="robux-manual-v1.css"]) button[aria-pressed=true],
:root:has(link[href*="code-redeem-v1.css"]) button[aria-pressed=true] {
  background-color: var(--bilstore-accent-tint); border-color: var(--bilstore-accent-soft);
}
:root:has(link[href*="robux-manual-v1.css"]) .muted,
:root:has(link[href*="robux-manual-v1.css"]) small { color: var(--bilstore-muted); }
.login-format { background-color: var(--bilstore-panel); border-color: var(--bilstore-border); }
.login-format pre { background-color: var(--bilstore-bg); }

/* Checkout uses inline route tokens. Only these three colours need priority. */
.purchase-route, .purchase-route.topup-maroon-v1 {
  --route-accent: var(--bilstore-accent-soft) !important;
  --route-tone: #692139 !important;
  --route-base: var(--bilstore-bg) !important;
  --topup-surface: var(--bilstore-panel);
  --topup-border: var(--bilstore-border);
  --topup-muted: var(--bilstore-muted);
}
body .purchase-route.topup-maroon-v1 .route-top { background-color: var(--bilstore-header); }
body .purchase-route.topup-maroon-v1 :is(.six-card,.route-summary-card,.catalog-rating-card,.catalog-help-card) {
  background-color: var(--bilstore-panel); border-color: var(--bilstore-border);
}
body .purchase-route.topup-maroon-v1 .six-heading { background-image: linear-gradient(90deg, #391923, #27191f); }
body .purchase-route.topup-maroon-v1 .six-heading b { background-color: var(--bilstore-primary); color: #fff; }
body .purchase-route.topup-maroon-v1 .six-form :is(input,select):not([type=radio]):not([type=checkbox]) {
  background-color: var(--bilstore-bg); color: var(--bilstore-text);
}
body .purchase-route.topup-maroon-v1 .six-form :is(input,select):not([aria-invalid=true]) { border-color: var(--bilstore-input-border); }
body .purchase-route.topup-maroon-v1 #packs .pack { background-color: var(--bilstore-secondary); border-color: var(--bilstore-secondary-border); }
body .purchase-route.topup-maroon-v1 #packs .pack.active { background-color: var(--bilstore-accent-tint); border-color: var(--bilstore-accent-soft); }
body .purchase-route.topup-maroon-v1 .six-payment { background-color: var(--bilstore-panel); border-color: var(--bilstore-input-border); }
body .purchase-route.topup-maroon-v1 .six-payment:has(input:checked) { background-color: var(--bilstore-accent-tint); border-color: var(--bilstore-accent-soft); }
body .purchase-route.topup-maroon-v1 .route-summary-card #payButton { background-color: var(--bilstore-primary); border-color: var(--bilstore-primary); color: #fff; }
body .purchase-route.topup-maroon-v1 .route-summary-card #payButton:hover:not(:disabled) { background-color: var(--bilstore-primary-hover); }

/* Deposit/invoice surroundings. QR frames, white quiet zones and brand assets stay white. */
.deposit-step { background-color: var(--bilstore-accent-tint); }
.deposit-amount-field, .deposit-presets button { background-color: var(--bilstore-bg); border-color: var(--bilstore-input-border); }
.deposit-presets button.selected { background-color: var(--bilstore-accent-tint); border-color: var(--bilstore-accent-soft); }
.deposit-method { background-color: var(--bilstore-panel); border-color: var(--bilstore-input-border); }
.deposit-submit { background-image: linear-gradient(110deg, #d92359, #b91d4b); color: #fff; }
.inv-page header, .inv-page section { border-color: var(--bilstore-border); }
.inv-page section { background-color: var(--bilstore-panel); }
.inv-page a, .inv-page .eyebrow, .inv-page .total { color: var(--bilstore-accent-soft); }
.inv-page .intro, .inv-page .muted { color: var(--bilstore-muted); }
.inv-page :is(input,select) { background-color: var(--bilstore-bg); color: var(--bilstore-text); }
.inv-page :is(input,select):not([aria-invalid=true]) { border-color: var(--bilstore-input-border); }
.inv-page h2 span, .inv-page button { background-color: var(--bilstore-primary); border-color: var(--bilstore-primary); color: #fff; }
.inv-page #history button { background-color: var(--bilstore-secondary); border-color: var(--bilstore-secondary-border); }
.inv-page #notice { background-color: var(--bilstore-panel-alt); }

/* Calculators and neutral reseller surfaces; success/error and plan tiers stay distinct. */
.calculator-page { background-image: radial-gradient(ellipse at top right, #451b2d88, transparent 55%); color: var(--bilstore-text); }
.game-calc-panel, .calculator-chooser { background-color: var(--bilstore-panel); border-color: var(--bilstore-border); }
.game-calc-field input, .robux-mode-grid label { background-color: var(--bilstore-bg); color: var(--bilstore-text); }
.game-calc-field input:not([aria-invalid=true]), .robux-mode-grid label { border-color: var(--bilstore-input-border); }
.robux-mode-grid label:has(input:checked) { background-color: var(--bilstore-accent-tint); border-color: var(--bilstore-accent-soft); }
.game-calc-result { background-image: linear-gradient(130deg, #492336, #291d25); }
.calculator-choices a { background-color: var(--bilstore-secondary); border-color: var(--bilstore-secondary-border); }
.calculator-choices a:hover { background-color: var(--bilstore-accent-tint); }
.reseller-page { background-color: var(--bilstore-bg); color: var(--bilstore-text); }

/* Legal/privacy pages previously used blue or light themes. */
:root:has(link[href*="legal.css"]) body { color: var(--bilstore-text); }
:root:has(link[href*="legal.css"]) :is(header,footer) { border-color: var(--bilstore-border); }
:root:has(link[href*="legal.css"]) :is(a,.eyebrow) { color: var(--bilstore-accent-soft); }
:root:has(link[href*="legal.css"]) :is(h1,h2) { color: var(--bilstore-text); }
:root:has(link[href*="legal.css"]) .date { color: var(--bilstore-muted); }
:root:has(link[href*="legal.css"]) a:focus-visible { outline-color: var(--bilstore-accent-soft); }
.bsm-policy { background-color: var(--bilstore-bg); color: var(--bilstore-text); }
.bsm-policy a { color: var(--bilstore-accent-soft); }
.bsm-privacy-footer .bsm-consent {
  background-color: var(--bilstore-panel) !important;
  color: var(--bilstore-text) !important;
  border-color: var(--bilstore-input-border) !important;
}
.bsm-privacy-footer .bsm-consent a { color: var(--bilstore-accent-soft) !important; }
.bsm-privacy-footer .bsm-actions button {
  background-color: var(--bilstore-secondary) !important;
  border-color: var(--bilstore-input-border) !important;
  color: var(--bilstore-text) !important;
}
.bsm-privacy-footer .bsm-close { color: var(--bilstore-muted) !important; }

/* Package editor: its independent stylesheet contains violet literals.
 * The two existing IDs scope these rules to that page, including its dialogs.
 */
body:has(#packageDialog):has(#priceList) {
  --bg: var(--bilstore-bg);
  --panel: var(--bilstore-panel);
  --panel2: var(--bilstore-panel-alt);
  --border: var(--bilstore-border);
  --text: var(--bilstore-text);
  --muted: var(--bilstore-muted);
  --pink: var(--bilstore-accent-soft);
  --purple: var(--bilstore-accent-soft);
  background-color: var(--bilstore-bg);
  background-image: radial-gradient(ellipse at 85% 0, rgba(112, 28, 57, .16), transparent 42%);
  color: var(--bilstore-text);
}
body:has(#packageDialog):has(#priceList) .topbar { border-color: var(--bilstore-border); }
body:has(#packageDialog):has(#priceList) .brand span {
  background-color: var(--bilstore-accent-tint);
  border-color: #6d334d;
  color: var(--bilstore-accent-soft);
}
body:has(#packageDialog):has(#priceList) .button.primary,
body:has(#packageDialog):has(#priceList) .skip {
  background-color: var(--bilstore-primary);
  border-color: var(--bilstore-primary);
  color: #fff;
}
body:has(#packageDialog):has(#priceList) .button.primary:hover:not(:disabled) {
  background-color: var(--bilstore-primary-hover);
  border-color: var(--bilstore-primary-hover);
}
body:has(#packageDialog):has(#priceList) .button.secondary {
  background-color: var(--bilstore-secondary);
  border-color: var(--bilstore-secondary-border);
}
body:has(#packageDialog):has(#priceList) .button.secondary:hover:not(:disabled) { background-color: var(--bilstore-secondary-border); }
body:has(#packageDialog):has(#priceList) .overview {
  background-image: linear-gradient(115deg, #2b1e26, #241c22);
}
body:has(#packageDialog):has(#priceList) .overview-draft { background-color: rgba(217, 35, 89, .04); }
body:has(#packageDialog):has(#priceList) .price-panel { background-color: rgba(36, 28, 34, .92); }
body:has(#packageDialog):has(#priceList) .tabs {
  background-color: var(--bilstore-bg);
  border-color: var(--bilstore-border);
}
body:has(#packageDialog):has(#priceList) .tabs button[aria-selected=true] {
  background-color: var(--bilstore-accent-tint);
  color: var(--bilstore-accent-soft);
  box-shadow: 0 1px 3px #10090d;
}
body:has(#packageDialog):has(#priceList) .tabs button span {
  background-color: var(--bilstore-header);
  color: var(--bilstore-muted);
}
body:has(#packageDialog):has(#priceList) .search {
  background-color: var(--bilstore-bg);
  color: var(--bilstore-muted);
}
body:has(#packageDialog):has(#priceList) .search input::placeholder { color: var(--bilstore-subtle); }
body:has(#packageDialog):has(#priceList) .panel-note {
  background-color: var(--bilstore-panel-alt);
  border-color: var(--bilstore-border);
}
body:has(#packageDialog):has(#priceList) .panel-note p { color: var(--bilstore-muted); }
body:has(#packageDialog):has(#priceList) .panel-note strong { color: var(--bilstore-text); }
body:has(#packageDialog):has(#priceList) .note-dot {
  border-color: var(--bilstore-muted);
  color: var(--bilstore-accent-soft);
}
body:has(#packageDialog):has(#priceList) thead { background-color: var(--bilstore-table-head); }
body:has(#packageDialog):has(#priceList) th { color: var(--bilstore-muted); }
body:has(#packageDialog):has(#priceList) td { border-color: var(--bilstore-border); }
body:has(#packageDialog):has(#priceList) tbody tr.is-dirty { background-color: rgba(217, 35, 89, .045); }
body:has(#packageDialog):has(#priceList) .gem {
  background-color: #36212b;
  border-color: #613246;
}
body:has(#packageDialog):has(#priceList) .product small { color: var(--bilstore-subtle); }
body:has(#packageDialog):has(#priceList) .badge.paused {
  background-color: var(--bilstore-secondary);
  color: var(--bilstore-muted);
}
body:has(#packageDialog):has(#priceList) td.amount { color: #dbc9d3; }
body:has(#packageDialog):has(#priceList) .price-field { background-color: var(--bilstore-bg); }
body:has(#packageDialog):has(#priceList) .price-field:not(.has-error) { border-color: var(--bilstore-input-border); }
body:has(#packageDialog):has(#priceList) .price-field > span { color: var(--bilstore-subtle); }
body:has(#packageDialog):has(#priceList) .price-field:focus-within:not(.has-error) {
  border-color: var(--bilstore-accent-soft);
  box-shadow: 0 0 0 2px #f7a8c312;
}
body:has(#packageDialog):has(#priceList) .is-dirty .price-field:not(.has-error) { border-color: #bd6484; }
body:has(#packageDialog):has(#priceList) .row-help:not(.error) { color: #e4a0bc; }
body:has(#packageDialog):has(#priceList) .reset-row { color: var(--bilstore-muted); }
body:has(#packageDialog):has(#priceList) .reset-row:hover { color: var(--bilstore-accent-soft); }
body:has(#packageDialog):has(#priceList) .panel-footer,
body:has(#packageDialog):has(#priceList) .footnote { color: var(--bilstore-subtle); }
body:has(#packageDialog):has(#priceList) .empty-icon { color: var(--bilstore-accent-soft); }
body:has(#packageDialog):has(#priceList) .empty strong { color: var(--bilstore-text); }
body:has(#packageDialog):has(#priceList) .savebar {
  background-color: rgba(55, 39, 48, .97);
  border-color: #6d334d;
  box-shadow: 0 12px 32px #10090d77;
}
body:has(#packageDialog):has(#priceList) .savebar p,
body:has(#packageDialog):has(#priceList) .dialog-intro,
body:has(#packageDialog):has(#priceList) .review-table small { color: var(--bilstore-muted); }
body:has(#packageDialog):has(#priceList) dialog {
  background-color: var(--bilstore-panel);
  border-color: var(--bilstore-secondary-border);
}
body:has(#packageDialog):has(#priceList) dialog::backdrop { background-color: #10090dc9; }
body:has(#packageDialog):has(#priceList) .icon-button { background-color: var(--bilstore-secondary); }
body:has(#packageDialog):has(#priceList) .review-table-wrap { border-color: var(--bilstore-secondary-border); }
body:has(#packageDialog):has(#priceList) .edit-package {
  background-color: var(--bilstore-secondary);
  border-color: #6d334d;
  color: var(--bilstore-text);
}
body:has(#packageDialog):has(#priceList) .edit-package:hover { background-color: var(--bilstore-secondary-border); }
body:has(#packageDialog):has(#priceList) .form-field > span { color: var(--bilstore-text); }
body:has(#packageDialog):has(#priceList) .form-field input,
body:has(#packageDialog):has(#priceList) .form-field select { background-color: var(--bilstore-bg); }
body:has(#packageDialog):has(#priceList) .form-field input:not([aria-invalid=true]),
body:has(#packageDialog):has(#priceList) .form-field select:not([aria-invalid=true]) { border-color: var(--bilstore-input-border); }
body:has(#packageDialog):has(#priceList) #priceList td:nth-child(3)::before { color: var(--bilstore-subtle); }
}
