@import url("/admin-assets/customer-layout.css");
/* Consume the single shared token contract. Original has no matching root attribute. */
html[data-ui-theme] body:has(#portal){background:var(--ui-shop-bg);color:var(--ui-shop-text)}
html[data-ui-theme] :is(.member-section,.address-card,.feedback-card,.order-card,.payment-order,.payment-address,.storefront-product,.room-card,.coupon-card,.panel,.member-popup,.member-popup-head,.member-popup-return,.portal-header,.portal-nav,.complaint-record){background:var(--ui-shop-surface);color:var(--ui-shop-text);border-color:var(--ui-shop-border)}
html[data-ui-theme] :is(#viewerProfileEditor,#viewerComplaintDialog,#memberDialog,.chat-emoji-panel,.vr-sheet){background:var(--ui-shop-surface);color:var(--ui-shop-text);border-color:var(--ui-shop-border)}
html[data-ui-theme] :is(#viewerProfileEditor,#viewerComplaintDialog) footer{background:var(--ui-shop-surface)}
html[data-ui-theme] :is(.profile-intro,.profile-secondary-label,.profile-library-count,.complaint-explain,.complaint-record-note,.complaint-limit,.complaint-record small,.complaint-record time,.hint,.member-id,.order-product p){color:var(--ui-shop-muted)}
html[data-ui-theme] :is(.profile-edit-entry,.viewer-complaint-panel-entry,.complaint-load-more,.portal-live-action,.complaint-history-link,.portal-header a,.portal-nav button.active){color:var(--ui-shop-accent)}
html[data-ui-theme] :is(.portal-live-card,.profile-more,.complaint-reply,.viewer-complaint-panel-entry,.complaint-record-link){background:var(--ui-shop-soft);border-color:var(--ui-shop-border);color:var(--ui-shop-text)}
html[data-ui-theme] :is(#viewerProfileEditor,#viewerComplaintDialog,#memberDialog) :is(input,select,textarea){background:var(--ui-shop-surface);color:var(--ui-shop-text);border-color:var(--ui-shop-border)}
html[data-ui-theme] :is(#viewerProfileEditor .profile-save,#viewerProfileEditor .profile-wechat,#viewerComplaintDialog [data-complaint-submit],.solid,.payment-submit){background:var(--ui-shop-accent);border-color:var(--ui-shop-accent);color:var(--ui-accent-text)}
html[data-ui-theme] :is(button,input,textarea,select,a):focus-visible{outline-color:var(--ui-focus)}
html[data-ui-theme] :is(#viewerProfileEditor,#viewerComplaintDialog) [data-message].error,
html[data-ui-theme] #viewerComplaintDialog [data-complaint-feedback].error{background:var(--ui-danger-bg);color:var(--ui-danger)}
html[data-ui-theme] .room :is(.host,.status,.notice,.chat .message){background-color:var(--ui-live-overlay);color:var(--ui-live-text)}
html[data-ui-theme] .room .chat .message span{color:var(--ui-live-name)}
html[data-ui-theme] .waiting-countdown{background:var(--ui-live-overlay);color:var(--ui-live-text)}
html[data-ui-theme] .waiting-countdown :is(span,strong,small){color:var(--ui-live-text)}
/* No media/filter selectors and no layout, size, order, or player mutations. */
html[data-ui-theme] :is(.commerce-primary,.primary,.member-popup-return){background:var(--ui-shop-accent);color:var(--ui-accent-text);border-color:var(--ui-shop-accent)}
html[data-ui-theme] :is(.room-commerce,.commerce-summary,.commerce-item,.commerce-skus,.commerce-quantity,.commerce-footer,.product-card-copy,.product-card-bar,.product-teaser,.order-footer,.sub-title){background-color:var(--ui-shop-surface);color:var(--ui-shop-text);border-color:var(--ui-shop-border)}
html[data-ui-theme] :is(.commerce-secondary,.commerce-back,.commerce-skus button,.order-footer button,.font-options button){background:var(--ui-shop-soft);color:var(--ui-shop-text);border-color:var(--ui-shop-border)}
html[data-ui-theme] .commerce-skus button[aria-pressed=true]{background:var(--ui-shop-soft);border-color:var(--ui-shop-accent);color:var(--ui-shop-accent)}
html[data-ui-theme] :is(.commerce-note,.commerce-empty,.empty-state,.order-product small,.order-footer a,.product-card-title){color:var(--ui-shop-muted)}
html[data-ui-theme] body:has(#portal){color-scheme:light}
html[data-ui-theme] :is(#viewerProfileEditor,#viewerComplaintDialog,#memberDialog,.room-commerce){color-scheme:light}
/* Checkout and room wallet consume the same public theme; amounts retain business semantics. */
html[data-ui-theme] :is(.payment-bar,.portal-reward-entry,.member-reward-status,.member-reward-detail .vr-wallet,.member-reward-detail .vr-history,.member-reward-detail .vr-withdraw){background:var(--ui-shop-surface);color:var(--ui-shop-text);border-color:var(--ui-shop-border)}
html[data-ui-theme] :is(.payment-address p,.payment-product p,.payment-totals dt,.payment-reference,.payment-bar>a,.member-reward-assets span,.member-reward-status,.member-reward-detail-head,.member-reward-detail .vr-wallet small,.member-reward-detail .vr-center-footnote,.member-reward-detail .vr-history-row small,.member-reward-detail .vr-hint,.member-reward-detail .vr-record){color:var(--ui-shop-muted)}
html[data-ui-theme] .member-reward-detail :is(.vr-withdraw input){background:var(--ui-shop-surface);color:var(--ui-shop-text);border-color:var(--ui-shop-border)}
html[data-ui-theme] :is(.member-reward-detail-head button,.member-reward-status button){background:var(--ui-shop-soft);color:var(--ui-shop-accent);border-color:var(--ui-shop-border)}
html[data-ui-theme] .member-reward-detail .vr-withdraw button{background:var(--ui-shop-accent);color:var(--ui-accent-text)}
html[data-ui-theme] :is(.payment-submit,.member-reward-detail .vr-withdraw button):disabled{background:var(--ui-shop-soft);color:var(--ui-shop-muted);opacity:.7}

/* Viewer surfaces share a neutral palette; status and reward colors stay semantic. */
html[data-ui-theme]{--ui-shop-bg:#f4f6f9;--ui-shop-surface:#fff;--ui-shop-border:#e0e6ee;--ui-shop-text:#273343;--ui-shop-muted:#667385;--ui-shop-accent:#29394d;--ui-shop-soft:#f0f3f7;--ui-accent-text:#fff;--ui-live-overlay:rgba(32,32,41,.58);--ui-live-text:#fff;--ui-live-name:#8de3e9}
html body :is(#viewerProfileEditor,#memberDialog,#sheet,.member-popup){color-scheme:light;background:#fff;color:#273343}
html body :is(#viewerProfileEditor,#memberDialog,#sheet,.member-popup) :is(h2,h3,.sheet-head){color:#273343}
html body :is(#viewerProfileEditor,#memberDialog,#sheet) :is(input:not([type=checkbox]):not([type=radio]),textarea,select){background:#f9fafc;color:#273343;border-color:#dce2ea;font-size:16px;box-sizing:border-box}
html body :is(#viewerProfileEditor,#memberDialog,#sheet) :is(.hint,.profile-intro,.commerce-note){color:#667385}
