/* Remaining customer pages share the storefront palette. Transaction layouts remain in their page CSS. */
body.storefront-theme {
  --customer-page-bg: #101014;
  --customer-page-surface: #18181c;
  --customer-page-raised: #24242b;
  --customer-page-line: #34343d;
  --customer-page-text: #f1f1f5;
  --customer-page-muted: #b1b1bd;
  --customer-page-accent: #22b9ed;
}
html:has(> body.storefront-theme:is(.orders-list-route, .library-route, .wallet-route, .promotions-route, .home-news-route, .utility-route)) { background: #101014; }
body.storefront-theme:is(.orders-list-route, .library-route, .wallet-route, .promotions-route, .home-news-route, .utility-route) { background: var(--customer-page-bg); color: var(--customer-page-text); }
body.storefront-theme:is(.orders-list-route, .library-route, .wallet-route, .promotions-route, .home-news-route, .utility-route) :is(a, button, input, summary, [tabindex]):focus-visible { outline-color: #8ee1fc; }

/* Orders and library: retain grids, pagination, downloads and instructions. */
body.storefront-theme:is(.orders-list-route, .library-route) :is(.commerce-panel, .commerce-order-list, .commerce-order-row, .commerce-empty, .commerce-library-card) { border-color: var(--customer-page-line); background: var(--customer-page-surface); box-shadow: none; }
body.storefront-theme:is(.orders-list-route, .library-route) :is(.commerce-line, .commerce-delivery, .commerce-totals .total) { border-color: var(--customer-page-line); }
body.storefront-theme:is(.orders-list-route, .library-route) :is(.commerce p, .commerce small, .commerce dt, .commerce-nav a, .commerce-pagination) { color: var(--customer-page-muted); }
body.storefront-theme:is(.orders-list-route, .library-route) :is(.commerce h1, .commerce h2, .commerce h3, .commerce dd, .commerce-order-row strong, .commerce-order-row > b, .commerce-totals .total dd) { color: var(--customer-page-text); }
body.storefront-theme:is(.orders-list-route, .library-route) :is(.commerce-kicker, .commerce-nav a.active, .commerce-nav a:hover) { color: #6bd7f8; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-order-row:hover { border-color: #4c4c59; background: #23232b; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-order-row > b span { color: #a3a3b1; }
body.storefront-theme:is(.orders-list-route, .library-route) :is(.commerce-library-card summary, .commerce-instructions) { color: #d2d2dd; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-cover-placeholder { background: #24242e; color: #a3a3b3; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-pagination a { color: #81dbf9; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-button { border-color: #50505d; background: #24242b; color: var(--customer-page-text); box-shadow: none; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-button:hover { border-color: #91919e; background: #30303a; color: #fff; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-button.primary { border-color: #43c7f1; background: #22b9ed; color: #10151b; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-button.primary:hover { border-color: #9ce5ff; background: #69d3f7; color: #10151b; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-button.danger { border-color: #864b51; background: #281c21; color: #ffb2b7; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-button:disabled { border-color: #565661; background: #383841; color: #dedee7; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-badge { background: #3b301d; color: #e4bc71; }
body.storefront-theme:is(.orders-list-route, .library-route) :is(.commerce-badge.paid, .commerce-badge.completed) { background: #19372b; color: #a2dfbd; }
body.storefront-theme:is(.orders-list-route, .library-route) :is(.commerce-badge.cancelled, .commerce-badge.refunded) { background: #2a2a32; color: #c6c6d2; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-badge.failed { background: #48262b; color: #ffb2b7; }
body.storefront-theme:is(.orders-list-route, .library-route) .commerce-notice { border-color: #6f5b38; background: #2c2519; color: #edd3a0 !important; }

/* Wallet/top-up: colors only; the original QR image stays white and keeps its dimensions. */
body.storefront-theme.wallet-route .dc-wallet { color: var(--customer-page-text); }
body.storefront-theme.wallet-route .wallet-panel { border-color: var(--customer-page-line); background: var(--customer-page-surface); box-shadow: none; }
body.storefront-theme.wallet-route .wallet-balance { border-color: #3d5968; background: linear-gradient(120deg, #1a3039, #18181c); }
body.storefront-theme.wallet-route :is(.wallet-balance h2, .dc-wallet p, .dc-wallet small, .wallet-bank dt, .wallet-section-heading > span) { color: var(--customer-page-muted); }
body.storefront-theme.wallet-route :is(.dc-wallet h1, .dc-wallet h2, .dc-wallet h3, .wallet-balance > strong, .wallet-topup-row, .wallet-bank dd) { color: var(--customer-page-text); }
body.storefront-theme.wallet-route .wallet-heading > div > span { color: #6bd7f8; }
body.storefront-theme.wallet-route :is(.wallet-nav a, .wallet-pagination a, .wallet-history-row a) { color: #81dbf9; }
body.storefront-theme.wallet-route :is(.wallet-nav a:hover, .wallet-pagination a:hover, .wallet-history-row a:hover) { color: #b7edff; }
body.storefront-theme.wallet-route :is(.wallet-topup-row, .wallet-history-row, .wallet-bank > div) { border-color: var(--customer-page-line); }
body.storefront-theme.wallet-route .wallet-button { border-color: #50505d; background: #24242b; color: var(--customer-page-text); box-shadow: none; }
body.storefront-theme.wallet-route .wallet-button:hover { border-color: #91919e; background: #30303a; color: #fff; }
body.storefront-theme.wallet-route .wallet-button.primary { border-color: #43c7f1; background: #22b9ed; color: #10151b; }
body.storefront-theme.wallet-route .wallet-button.primary:hover { border-color: #9ce5ff; background: #69d3f7; color: #10151b; }
body.storefront-theme.wallet-route .wallet-button[data-topup-cancel] { border-color: #864b51; background: #281c21; color: #ffb2b7; }
body.storefront-theme.wallet-route .wallet-button[data-topup-cancel]:hover { border-color: #d38a91; background: #3a2228; color: #ffd0d4; }
body.storefront-theme.wallet-route .wallet-button:disabled { border-color: #565661; background: #383841; color: #dedee7; }
body.storefront-theme.wallet-route .wallet-form input[type="number"] { border-color: #555562; background: #101014; color: var(--customer-page-text); }
body.storefront-theme.wallet-route .wallet-form input[type="number"]:focus { border-color: #22b9ed; }
body.storefront-theme.wallet-route :is(.wallet-presets button, .wallet-bank button) { border-color: #4c4c59; background: #24242d; color: #e4e4ed; }
body.storefront-theme.wallet-route :is(.wallet-presets button:hover, .wallet-bank button:hover) { border-color: #81dbf9; background: #29333c; color: #b7edff; }
body.storefront-theme.wallet-route .wallet-qr { background: #fff; }
body.storefront-theme.wallet-route .dc-wallet .wallet-notice { border-color: #6f5b38; background: #2c2519; color: #edd3a0; }
body.storefront-theme.wallet-route .dc-wallet .wallet-notice.error { border-color: #864b51; background: #2a1b20; color: #ffb2b7; }
body.storefront-theme.wallet-route .wallet-tag { background: #2a2a32; color: #c6c6d2; }
body.storefront-theme.wallet-route .wallet-tag.pending { background: #3b301d; color: #e4bc71; }
body.storefront-theme.wallet-route .wallet-tag.review { background: #482623; color: #f5b5a2; }
body.storefront-theme.wallet-route :is(.wallet-tag.completed, .wallet-tag.simulated) { background: #19372b; color: #a2dfbd; }
body.storefront-theme.wallet-route .wallet-history-amount .credit { color: #a2dfbd; }
body.storefront-theme.wallet-route .wallet-history-amount .debit { color: #ffb2b7; }

/* Promotions retain real sale/voucher controls and existing pagination. */
body.storefront-theme.promotions-route { --shop-bg: #101014; --shop-text: #f1f1f5; --shop-muted: #b1b1bd; --shop-accent: #22b9ed; --shop-line: #34343d; }
body.storefront-theme.promotions-route .promotion-banner { border-color: #34343d; background: #18181c; }
body.storefront-theme.promotions-route .promotion-banner::after { background: linear-gradient(90deg, #18181c 5%, #18181cf2 27%, #18181c5c 68%, #18181c12), linear-gradient(0deg, #10101460, transparent 68%); }
body.storefront-theme.promotions-route :is(.promotion-banner-copy p, .promotion-empty p, .promotion-voucher-name, .promotion-voucher-limit, .promotion-voucher-conditions p, .promotion-recommendations-heading > a, .promotion-pages) { color: var(--customer-page-muted); }
body.storefront-theme.promotions-route :is(.promotion-banner-copy h2, .promotion-empty h3, .promotion-voucher h3, .promotion-recommendations-heading h2) { color: var(--customer-page-text); }
body.storefront-theme.promotions-route :is(.promotion-tabs, .promotion-voucher-conditions > div) { border-color: var(--customer-page-line); }
body.storefront-theme.promotions-route :is(.promotion-voucher-heading code, .promotion-voucher-conditions summary) { color: #81dbf9; }
body.storefront-theme.promotions-route .promotion-search { border-color: #4a4a56; background: #18181c; }
body.storefront-theme.promotions-route .promotion-search:focus-within { border-color: #22b9ed; outline-color: #22b9ed3d; }
body.storefront-theme.promotions-route .promotion-search input { color: var(--customer-page-text); }
body.storefront-theme.promotions-route .promotion-search input::placeholder { color: #a1a1af; }
body.storefront-theme.promotions-route :is(.promotion-empty, .promotion-voucher, .shop-game-card) { border-color: var(--customer-page-line); background: var(--customer-page-surface); box-shadow: none; }
body.storefront-theme.promotions-route :is(.shop-game-card:hover, .shop-game-card:focus-within) { border-color: #627582; background: #202027; }
body.storefront-theme.promotions-route .shop-card-cover { background: #25252d; }
body.storefront-theme.promotions-route .shop-cover-fallback { background: linear-gradient(135deg, #2a2a36, #191920); color: #8e8e9f; }
body.storefront-theme.promotions-route .shop-card-discount { border-color: #3b6a7b; background: #14313c; color: #bcefff; }
body.storefront-theme.promotions-route :is(.promotion-primary, .promotion-voucher-actions > button) { border-color: #43c7f1; background: #22b9ed; color: #10151b; }
body.storefront-theme.promotions-route :is(.promotion-primary:hover, .promotion-voucher-actions > button:hover) { border-color: #9ce5ff; background: #69d3f7; color: #10151b; }
body.storefront-theme.promotions-route :is(.promotion-pages a, .promotion-voucher-actions > a) { border-color: #50505d; background: #24242b; color: var(--customer-page-text); }
body.storefront-theme.promotions-route :is(.promotion-pages a:hover, .promotion-voucher-actions > a:hover) { border-color: #91919e; background: #30303a; color: #fff; }
body.storefront-theme.promotions-route .promotion-voucher-actions > button:disabled { border-color: #565661; background: #383841; color: #b1b1bd; }
body.storefront-theme.promotions-route :is(.promotion-voucher-availability, .promotion-copy-status) { border-color: #3f6954; background: #192b23; color: #a2dfbd; }
body.storefront-theme.promotions-route .promotion-voucher.is-exhausted .promotion-voucher-availability { border-color: #454550; background: #2a2a32; color: #b1b1bd; }
body.storefront-theme.promotions-route .promotion-copy-status.is-error { border-color: #864b51; background: #2a1b20; color: #ffb2b7; }

/* News uses the shared header search; the page's actual empty state stays intact. */
body.storefront-theme.home-news-route .news-empty { border-color: var(--customer-page-line); background: var(--customer-page-surface); }
body.storefront-theme.home-news-route :is(.news-page > h1, .news-empty h2) { color: var(--customer-page-text); }
body.storefront-theme.home-news-route :is(.news-empty p, .news-empty > svg) { color: var(--customer-page-muted); }
body.storefront-theme.home-news-route .news-empty > svg { stroke: var(--customer-page-muted); }
body.storefront-theme.home-news-route .news-empty-actions a { border-color: #50505d; background: #24242b; color: var(--customer-page-text); }
body.storefront-theme.home-news-route .news-empty-actions a:hover { border-color: #91919e; background: #30303a; }
body.storefront-theme.home-news-route .news-empty-actions .news-store-link { border-color: #43c7f1; background: #22b9ed; color: #10151b; }
body.storefront-theme.home-news-route .news-empty-actions .news-store-link:hover { border-color: #9ce5ff; background: #69d3f7; color: #10151b; }

/* Utility pages replace the unstyled framework placeholders. */
body.storefront-theme.utility-route .utility-page { width: min(920px, calc(100% - 48px)); min-width: 0; margin: 0 auto; padding: 48px 0 64px; }
body.storefront-theme.utility-route .utility-panel { min-width: 0; padding: 32px; border: 1px solid var(--customer-page-line); border-radius: 12px; background: var(--customer-page-surface); }
body.storefront-theme.utility-route .utility-panel h1 { margin: 0; color: var(--customer-page-text); font-size: clamp(28px, 3.4vw, 38px); font-weight: 700; letter-spacing: -.4px; line-height: 1.25; overflow-wrap: anywhere; }
body.storefront-theme.utility-route .utility-panel p { margin: 16px 0 0; color: var(--customer-page-muted); font-size: 16px; line-height: 1.7; overflow-wrap: anywhere; }
body.storefront-theme.utility-route .utility-panel .utility-request-id { font-size: 14px; }
body.storefront-theme.utility-route .utility-request-id code { padding: 3px 6px; border-radius: 4px; background: #24242b; color: #d2d2dd; }
body.storefront-theme.utility-route .utility-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
body.storefront-theme.utility-route .utility-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 11px 18px; border: 1px solid #50505d; border-radius: 6px; background: #24242b; color: var(--customer-page-text); font-size: 14px; font-weight: 600; line-height: 1.4; }
body.storefront-theme.utility-route .utility-button:hover { border-color: #91919e; background: #30303a; color: #fff; }
body.storefront-theme.utility-route .utility-button.primary { border-color: #43c7f1; background: #22b9ed; color: #10151b; }
body.storefront-theme.utility-route .utility-button.primary:hover { border-color: #9ce5ff; background: #69d3f7; color: #10151b; }

/* Shared footer color overrides preserve all existing footer layouts. */
body.storefront-theme .site-footer { border-color: #34343d; background: #101014; color: #f1f1f5; }
body.storefront-theme :is(.footer-wordmark, .footer-wordmark > span, .footer-column h2, .footer-connect h2, .footer-support-copy > strong) { color: #f1f1f5; }
body.storefront-theme :is(.footer-tagline, .footer-brand > p, .footer-column :is(a, .footer-link-unavailable), .site-footer .copyright, .footer-back-to-top) { color: #b1b1bd; }
body.storefront-theme :is(.footer-support, .site-footer .social-list > :is(a, .footer-social-icon), .site-footer .footer-bank, .site-footer .payment-list > span, .footer-top-icon) { border-color: #41414c; background: #18181c; color: #d2d2dd; }
body.storefront-theme :is(.footer-support-icon, .footer-support-copy > span, .footer-column a:hover, .site-footer .social-list a:hover, .footer-back-to-top:hover) { color: #81dbf9; }
body.storefront-theme :is(.footer-support:hover, .site-footer .social-list a:hover) { border-color: #81dbf9; background: #24242b; }
body.storefront-theme :is(.site-footer .copyright, .footer-connect) { border-color: #34343d; }
body.storefront-theme .footer-back-to-top:hover .footer-top-icon { border-color: #81dbf9; }
body.storefront-theme .site-footer :is(a, button):focus-visible { outline-color: #8ee1fc; }

@media (max-width: 640px) {
  body.storefront-theme.utility-route .utility-page { width: calc(100% - 24px); padding: 28px 0 40px; }
  body.storefront-theme.utility-route .utility-panel { padding: 22px; }
}
