/* Compatibility layout/icon adapters; common component visuals follow below. */
/* Retail Delivery 2.0.242 — canonical shared UI components.
   Compatibility target: conservative Android System WebView CSS.
   IMPORTANT: avoid modern selector functions so old WebViews parse every rule. */

/* Icon presentation only. */
.uiButtonEmoji:not([data-ui-owned~="layout"]),.navEmoji:not([data-ui-owned~="layout"]){flex:0 0 auto;}.uiButtonEmoji:not([data-ui-owned~="font"]),.navEmoji:not([data-ui-owned~="font"]){font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-style:normal;font-weight:400;line-height:1;}.uiButtonEmoji,.navEmoji{transform-origin:50% 50%;}.uiButtonEmoji:not([data-ui-owned~="paint"]),.navEmoji:not([data-ui-owned~="paint"]){transition:transform .12s ease,filter .12s ease;}
button.uiEmojiRight{position:relative;}button.uiEmojiRight:not([data-ui-owned~="spacing"]){padding-right:2.25em;}
button.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="layout"]){display:inline-block;}button.uiEmojiRight>.uiButtonEmoji{position:absolute;right:.58em;top:50%;pointer-events:none;}button.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="margin"]){margin:0;}button.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]){font-size:1.12em;}button.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:translateY(-50%);}
button.uiEmojiOnly:not([data-ui-owned~="font"]){font-size:0;}button.uiEmojiOnly:not([data-ui-owned~="spacing"]){padding:0;}
button.uiEmojiOnly>.uiButtonEmoji{position:static;}button.uiEmojiOnly>.uiButtonEmoji:not([data-ui-owned~="layout"]){display:inline-block;}button.uiEmojiOnly>.uiButtonEmoji:not([data-ui-owned~="margin"]){margin:0;}button.uiEmojiOnly>.uiButtonEmoji:not([data-ui-owned~="font"]){font-size:22px;}button.uiEmojiOnly>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:none;}
button.uiEmojiRight:active>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:translateY(-50%) scale(.86);}
button.uiEmojiRight[data-ui-anim="spin"]:active>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:translateY(-50%) rotate(180deg) scale(.94);}
button.uiEmojiRight[data-ui-anim="move"]:active>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:translateY(-50%) translateX(3px) scale(.94);}
button.uiEmojiRight[data-ui-anim="swap"]:active>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:translateY(-50%) rotate(12deg) scale(.94);}
button.uiEmojiRight[data-ui-anim="shake"]:active>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:translateY(-50%) translateX(-3px) rotate(-5deg);}
button.uiEmojiRight[data-ui-anim="ring"]:active>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:translateY(-50%) rotate(10deg) scale(.96);}
button.uiEmojiRight[data-ui-anim="bounce"]:active>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:translateY(calc(-50% - 3px)) scale(1.04);}
button.uiEmojiRight[data-ui-anim="pulse"]:active>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:translateY(-50%) scale(1.10);}
.bottomNav button>.uiButtonEmoji,.bottomNav button>.navEmoji{position:static;}.bottomNav button>.uiButtonEmoji:not([data-ui-owned~="layout"]),.bottomNav button>.navEmoji:not([data-ui-owned~="layout"]){display:block;}.bottomNav button>.uiButtonEmoji:not([data-ui-owned~="margin"]),.bottomNav button>.navEmoji:not([data-ui-owned~="margin"]){margin:0 0 2px;}.bottomNav button>.uiButtonEmoji:not([data-ui-owned~="font"]),.bottomNav button>.navEmoji:not([data-ui-owned~="font"]){font-size:28px;line-height:1;}.bottomNav button>.uiButtonEmoji:not([data-ui-owned~="effect"]),.bottomNav button>.navEmoji:not([data-ui-owned~="effect"]){transform:none;}
.bottomNav button>span:last-of-type:not([data-ui-owned~="font"]){font-size:10px;}
.staffBottomNav button>.uiButtonEmoji:not([data-ui-owned~="font"]),.staffBottomNav button>.navEmoji:not([data-ui-owned~="font"]){font-size:28px;}
#staffBottomNav button>span:last-child:not([data-ui-owned~="font"]){font-size:10px;}
#workSections button.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]){font-size:24px;}
.checkoutQuick button.uiEmojiRight:not([data-ui-owned~="spacing"]){padding-right:31px;}
.checkoutQuick button.uiEmojiRight>.uiButtonEmoji{right:8px;}.checkoutQuick button.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]){font-size:16px;}
button.statusAction.uiEmojiRight:not([data-ui-owned~="layout"]),button.paymentAction.uiEmojiRight:not([data-ui-owned~="layout"]),button.statusBadge.uiEmojiRight:not([data-ui-owned~="layout"]),button.paidBadge.uiEmojiRight:not([data-ui-owned~="layout"]){display:inline-flex;align-items:center;justify-content:center;gap:.36em;}button.statusAction.uiEmojiRight:not([data-ui-owned~="spacing"]),button.paymentAction.uiEmojiRight:not([data-ui-owned~="spacing"]),button.statusBadge.uiEmojiRight:not([data-ui-owned~="spacing"]),button.paidBadge.uiEmojiRight:not([data-ui-owned~="spacing"]){padding-right:.75em;}
button.statusAction.uiEmojiRight>.uiButtonEmoji,button.paymentAction.uiEmojiRight>.uiButtonEmoji,button.statusBadge.uiEmojiRight>.uiButtonEmoji,button.paidBadge.uiEmojiRight>.uiButtonEmoji{position:static;inset:auto;order:2;}button.statusAction.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="margin"]),button.paymentAction.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="margin"]),button.statusBadge.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="margin"]),button.paidBadge.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="margin"]){margin:0;}button.statusAction.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]),button.paymentAction.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]),button.statusBadge.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]),button.paidBadge.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]){font-size:1em;}button.statusAction.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="effect"]),button.paymentAction.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="effect"]),button.statusBadge.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="effect"]),button.paidBadge.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:none;}
#profileNameBtn.uiEmojiRight:not([data-ui-owned~="spacing"]),#profileBirthBtn.uiEmojiRight:not([data-ui-owned~="spacing"]),#profilePhoneBtn.uiEmojiRight:not([data-ui-owned~="spacing"]),#profileAddressBtn.uiEmojiRight:not([data-ui-owned~="spacing"]){padding-right:34px;}
#profileNameBtn.uiEmojiRight>.uiButtonEmoji,#profileBirthBtn.uiEmojiRight>.uiButtonEmoji,#profilePhoneBtn.uiEmojiRight>.uiButtonEmoji,#profileAddressBtn.uiEmojiRight>.uiButtonEmoji{top:7px;right:9px;}#profileNameBtn.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="effect"]),#profileBirthBtn.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="effect"]),#profilePhoneBtn.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="effect"]),#profileAddressBtn.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:none;}#profileNameBtn.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]),#profileBirthBtn.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]),#profilePhoneBtn.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]),#profileAddressBtn.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]){font-size:14px;line-height:1;}
#clearCartBtn.uiEmojiRight:not([data-ui-owned~="layout"]){display:inline-flex;align-items:center;justify-content:center;gap:6px;}#clearCartBtn.uiEmojiRight:not([data-ui-owned~="spacing"]){padding:0 10px;}#clearCartBtn.uiEmojiRight{white-space:nowrap;}
#clearCartBtn.uiEmojiRight>.uiButtonEmoji{position:static;inset:auto;order:2;}#clearCartBtn.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="margin"]){margin:0;}#clearCartBtn.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="font"]){font-size:1em;}#clearCartBtn.uiEmojiRight>.uiButtonEmoji:not([data-ui-owned~="effect"]){transform:none;}
.uiEmojiDecorated>.barcodeIcon{display:none!important;}

/* 2.0.242: one close control everywhere. JS adds uiCloseControl to dynamic legacy buttons too. */
button.uiCloseControl:not([data-ui-owned~="layout"]),button.uiFormClose:not([data-ui-owned~="layout"]),button.orderMessengerClose:not([data-ui-owned~="layout"]),button.reviewViewerClose:not([data-ui-owned~="layout"]),button.deliveryAddressClose:not([data-ui-owned~="layout"]),button.profileQrClose:not([data-ui-owned~="layout"]),button.supportPanelClose:not([data-ui-owned~="layout"]),button.supportCreateClose:not([data-ui-owned~="layout"]),button.authGateCloseBtn:not([data-ui-owned~="layout"]),button.productDetailClose:not([data-ui-owned~="layout"]),button.clientPaymentClose:not([data-ui-owned~="layout"]),button.closeOrderBtn:not([data-ui-owned~="layout"]),button.orderMessengerComposeCancel:not([data-ui-owned~="layout"]){display:inline-grid!important;place-items:center!important;}button.uiCloseControl,button.uiFormClose,button.orderMessengerClose,button.reviewViewerClose,button.deliveryAddressClose,button.profileQrClose,button.supportPanelClose,button.supportCreateClose,button.authGateCloseBtn,button.productDetailClose,button.clientPaymentClose,button.closeOrderBtn,button.orderMessengerComposeCancel{-webkit-tap-highlight-color:transparent!important;}


/* Green non-emoji confirmation in checkout editor header. */
.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:not([data-ui-owned~="paint"]){-webkit-appearance:none!important;appearance:none!important;color:var(--ui-success)!important;background:transparent!important;outline:0!important;box-shadow:none!important;}.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:not([data-ui-owned~="size"]){width:36px!important;min-width:36px!important;}.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:not([data-ui-owned~="height"]){height:36px!important;min-height:36px!important;}.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:not([data-ui-owned~="spacing"]){padding:4px!important;}.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:not([data-ui-owned~="layout"]){display:inline-grid!important;place-items:center!important;}.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:not([data-ui-owned~="border"]){border:0!important;}.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:not([data-ui-owned~="radius"]){border-radius:8px!important;}
.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn svg:not([data-ui-owned~="size"]){width:28px!important;}.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn svg:not([data-ui-owned~="height"]){height:28px!important;}.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn svg{fill:none!important;stroke:var(--ui-success)!important;stroke-width:2.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;}
.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:hover:not([data-ui-owned~="paint"]),.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:focus:not([data-ui-owned~="paint"]),.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:active:not([data-ui-owned~="paint"]){background:transparent!important;outline:0!important;box-shadow:none!important;}.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:hover:not([data-ui-owned~="border"]),.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:focus:not([data-ui-owned~="border"]),.checkoutEditorHead .checkoutApplyHead.uiConfirmIconBtn:active:not([data-ui-owned~="border"]){border:0!important;}

/* Choice contract. uiChoiceControl is always idle/outlined; uiSelected is the only selected visual state. */
button.uiChoiceControl:not([data-ui-owned~="paint"]){-webkit-appearance:none!important;appearance:none!important;background:transparent!important;background-color:transparent!important;background-image:none!important;color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;outline:0!important;box-shadow:none!important;}button.uiChoiceControl:not([data-ui-owned~="border"]){border:1px solid var(--ui-border)!important;}
button.uiChoiceControl.uiSelected:not([data-ui-owned~="paint"]),button.uiChoiceControl.selectedChoice:not([data-ui-owned~="paint"]),button.uiChoiceControl[data-ui-selected="true"]:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;outline:0!important;box-shadow:none!important;}button.uiChoiceControl.uiSelected:not([data-ui-owned~="border"]),button.uiChoiceControl.selectedChoice:not([data-ui-owned~="border"]),button.uiChoiceControl[data-ui-selected="true"]:not([data-ui-owned~="border"]){border:2px solid var(--ui-accent)!important;}
html[data-native-theme="dark"] button.uiChoiceControl:not([data-ui-owned~="paint"]){color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;background:transparent!important;}html[data-native-theme="dark"] button.uiChoiceControl:not([data-ui-owned~="border"]){border-color:var(--ui-border)!important;}
html[data-native-theme="dark"] button.uiChoiceControl.uiSelected:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] button.uiChoiceControl.selectedChoice:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] button.uiChoiceControl[data-ui-selected="true"]:not([data-ui-owned~="paint"]){color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;background:transparent!important;box-shadow:none!important;}html[data-native-theme="dark"] button.uiChoiceControl.uiSelected:not([data-ui-owned~="border"]),html[data-native-theme="dark"] button.uiChoiceControl.selectedChoice:not([data-ui-owned~="border"]),html[data-native-theme="dark"] button.uiChoiceControl[data-ui-selected="true"]:not([data-ui-owned~="border"]){border-color:var(--ui-accent)!important;}

/* Canonical checkbox uses the real 22px input below (.uiCheckboxInput + .uiCheckLabel).
   The retired pseudo-marker/absolute-input owner was removed: it placed the
   checkbox top edge at 50% while ui-components.js marked the input as owned,
   which visually pushed the marker below its label in Android WebView. */

/* Checkout editors. */
.checkoutEditorSheet:not([data-ui-owned~="paint"]){color:var(--ui-text)!important;}
html[data-native-theme="dark"] .checkoutEditorSheet:not([data-ui-owned~="paint"]){background:var(--ui-surface)!important;background-color:var(--ui-surface)!important;}html[data-native-theme="dark"] .checkoutEditorSheet:not([data-ui-owned~="border"]){border:1px solid var(--ui-border)!important;}
#deliveryQuote.deliveryQuote:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;}
#deliveryQuote.deliveryQuote:not([data-ui-owned~="border"]){border:1px solid var(--ui-accent)!important;}
#deliveryQuote.deliveryQuote b:not([data-ui-owned~="paint"]),#deliveryQuote.deliveryQuote small:not([data-ui-owned~="paint"]),#deliveryQuote.deliveryQuote span:not([data-ui-owned~="paint"]){color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;}
html[data-native-theme="dark"] #deliveryQuote.deliveryQuote:not([data-ui-owned~="paint"]){background:var(--ui-surface)!important;background-color:var(--ui-surface)!important;color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;}
html[data-native-theme="dark"] #deliveryQuote.deliveryQuote b:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] #deliveryQuote.deliveryQuote small:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] #deliveryQuote.deliveryQuote span:not([data-ui-owned~="paint"]){color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;}
#commentEditor:not([data-ui-owned~="layout"]){gap:0!important;}
#commentEditor #orderComment:not([data-ui-owned~="size"]){width:100%!important;}#commentEditor #orderComment:not([data-ui-owned~="height"]){min-height:86px!important;}#commentEditor #orderComment:not([data-ui-owned~="layout"]){box-sizing:border-box!important;}#commentEditor #orderComment:not([data-ui-owned~="border"]){border:1px solid var(--ui-border)!important;}#commentEditor #orderComment:not([data-ui-owned~="radius"]){border-radius:var(--ui-radius-control)!important;}#commentEditor #orderComment:not([data-ui-owned~="spacing"]){padding:10px 12px!important;}#commentEditor #orderComment:not([data-ui-owned~="paint"]){background:transparent!important;color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;outline:0!important;}
#commentEditor #orderComment:focus:not([data-ui-owned~="border"]){border:2px solid var(--ui-accent)!important;}#commentEditor #orderComment:focus:not([data-ui-owned~="paint"]){box-shadow:none!important;}

/* Messenger. */
.orderMessengerBox:not([data-ui-owned~="border"]){border:1px solid var(--ui-border)!important;}
.orderMessengerHead:not([data-ui-owned~="border"]){border-bottom:1px solid var(--ui-border)!important;}
.orderMessengerMessages:not([data-ui-owned~="border"]){border:0!important;}
.orderMessengerForm:not([data-ui-owned~="border"]){border-top:1px solid var(--ui-border)!important;}
html[data-native-theme="dark"] .orderMessengerBox:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .orderMessengerHead:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .orderMessengerMessages:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .orderMessengerForm:not([data-ui-owned~="paint"]){background:var(--ui-surface)!important;color:var(--ui-text)!important;box-shadow:none!important;}
button.orderMessengerSend:not([data-ui-owned~="size"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="size"]){width:42px!important;min-width:42px!important;}button.orderMessengerSend:not([data-ui-owned~="height"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="height"]){height:42px!important;min-height:42px!important;}button.orderMessengerSend:not([data-ui-owned~="spacing"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="spacing"]){padding:0!important;}button.orderMessengerSend:not([data-ui-owned~="radius"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="radius"]){border-radius:14px!important;}button.orderMessengerSend:not([data-ui-owned~="paint"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="paint"]){background:var(--ui-accent)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;outline:0!important;box-shadow:none!important;}button.orderMessengerSend:not([data-ui-owned~="border"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="border"]){border:0!important;}
html[data-native-theme="dark"] button.orderMessengerSend:not([data-ui-owned~="paint"]){background:transparent!important;color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;}html[data-native-theme="dark"] button.orderMessengerSend:not([data-ui-owned~="border"]){border:0!important;}

/* Generic confirmation sheet. Both actions idle with white/theme outline. Only focused/pressed action becomes accent. */
.siteConfirmOverlay .siteConfirmSheet:not([data-ui-owned~="paint"]){background:var(--ui-surface)!important;color:var(--ui-text)!important;box-shadow:0 18px 60px rgba(15,23,42,.25)!important;}.siteConfirmOverlay .siteConfirmSheet:not([data-ui-owned~="border"]){border:1px solid var(--ui-border-strong)!important;}.siteConfirmOverlay .siteConfirmSheet:not([data-ui-owned~="radius"]){border-radius:var(--ui-radius-sheet)!important;}.siteConfirmOverlay .siteConfirmSheet:not([data-ui-owned~="spacing"]){padding:14px!important;}
.siteConfirmOverlay .siteConfirmSheet .scannerHead:not([data-ui-owned~="spacing"]){padding-bottom:8px!important;}.siteConfirmOverlay .siteConfirmSheet .scannerHead:not([data-ui-owned~="border"]){border-bottom:1px solid var(--ui-border)!important;}
.siteConfirmOverlay .siteConfirmSheet .siteConfirmMessage:not([data-ui-owned~="paint"]){color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;}
.siteConfirmOverlay .siteConfirmSheet .scannerActions:not([data-ui-owned~="layout"]){display:grid!important;gap:8px!important;}.siteConfirmOverlay .siteConfirmSheet .scannerActions:not([data-ui-owned~="columns"]){grid-template-columns:1fr 1fr!important;}
.siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:not([data-ui-owned~="paint"]){-webkit-appearance:none!important;appearance:none!important;background:transparent!important;background-color:transparent!important;background-image:none!important;color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;outline:0!important;}.siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:not([data-ui-owned~="height"]){min-height:42px!important;}.siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:not([data-ui-owned~="border"]){border:1px solid var(--ui-border)!important;}.siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:not([data-ui-owned~="radius"]){border-radius:var(--ui-radius-control)!important;}
.siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:focus:not([data-ui-owned~="paint"]),.siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:active:not([data-ui-owned~="paint"]){background:transparent!important;box-shadow:none!important;outline:0!important;}.siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:focus:not([data-ui-owned~="border"]),.siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:active:not([data-ui-owned~="border"]){border:2px solid var(--ui-accent)!important;}
.siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiDangerAction:not([data-ui-owned~="paint"]){color:var(--ui-danger)!important;-webkit-text-fill-color:currentColor!important;background:transparent!important;}.siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiDangerAction:not([data-ui-owned~="border"]){border-color:var(--ui-danger)!important;}
html[data-native-theme="dark"] .siteConfirmOverlay .siteConfirmSheet:not([data-ui-owned~="paint"]){box-shadow:none!important;}
html[data-native-theme="dark"] .siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:not([data-ui-owned~="border"]){border-color:var(--ui-border)!important;}html[data-native-theme="dark"] .siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:not([data-ui-owned~="paint"]){color:var(--ui-text)!important;background:transparent!important;}
html[data-native-theme="dark"] .siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:focus:not([data-ui-owned~="border"]),html[data-native-theme="dark"] .siteConfirmOverlay .siteConfirmSheet .scannerActions button.uiConfirmAction:active:not([data-ui-owned~="border"]){border-color:var(--ui-accent)!important;}

/* Generic icon-only controls. */
button.uiIconOnlyControl:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] button.uiIconOnlyControl:not([data-ui-owned~="paint"]){-webkit-appearance:none!important;appearance:none!important;background:transparent!important;background-image:none!important;outline:0!important;box-shadow:none!important;}button.uiIconOnlyControl:not([data-ui-owned~="border"]),html[data-native-theme="dark"] button.uiIconOnlyControl:not([data-ui-owned~="border"]){border:0!important;}button.uiIconOnlyControl,html[data-native-theme="dark"] button.uiIconOnlyControl{-webkit-tap-highlight-color:transparent!important;}

/* Staff detail totals/actions: never produce a light island in dark theme. */
html[data-native-theme="dark"] .layout.detailMode #detail .actions:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .layout.detailMode #detail .courierActions:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .layout.detailMode #detail .totalBox:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .layout.detailMode #detail .totalsPanel:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .layout.detailMode #detail .totalsFull:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .layout.detailMode #detail .grandTotal:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .layout.detailMode #detail .orderTotals:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;}
html[data-native-theme="dark"] .layout.detailMode #detail .actions:not([data-ui-owned~="border"]),html[data-native-theme="dark"] .layout.detailMode #detail .courierActions:not([data-ui-owned~="border"]),html[data-native-theme="dark"] .layout.detailMode #detail .totalBox:not([data-ui-owned~="border"]),html[data-native-theme="dark"] .layout.detailMode #detail .totalsPanel:not([data-ui-owned~="border"]),html[data-native-theme="dark"] .layout.detailMode #detail .orderTotals:not([data-ui-owned~="border"]){border:0!important;}
html[data-native-theme="dark"] .layout.detailMode #detail .grandTotal:not([data-ui-owned~="border"]){border-top-color:#334155!important;}
html[data-native-theme="dark"] .layout.detailMode #detail .totalsPanel span:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .layout.detailMode #detail .totalsPanel b:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .layout.detailMode #detail .totalBox span:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .layout.detailMode #detail .totalBox b:not([data-ui-owned~="paint"]){color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;}
html[data-native-theme="dark"] .layout.detailMode #detail .totalsPanel .discountRow b:not([data-ui-owned~="paint"]){color:#34d399!important;-webkit-text-fill-color:currentColor!important;}

/* 2.0.265 — canonical modal/order/messenger controls.
   These rules live in the shared component layer on purpose: renderers now
   emit the same component classes instead of release-specific CSS patches. */


button.uiHeaderConfirmControl:not([data-ui-owned~="paint"]),button.uiHeaderCloseControl:not([data-ui-owned~="paint"]){-webkit-appearance:none!important;appearance:none!important;background:transparent!important;outline:0!important;box-shadow:none!important;}button.uiHeaderConfirmControl:not([data-ui-owned~="size"]),button.uiHeaderCloseControl:not([data-ui-owned~="size"]){width:36px!important;min-width:36px!important;}button.uiHeaderConfirmControl:not([data-ui-owned~="height"]),button.uiHeaderCloseControl:not([data-ui-owned~="height"]){height:36px!important;min-height:36px!important;}button.uiHeaderConfirmControl:not([data-ui-owned~="spacing"]),button.uiHeaderCloseControl:not([data-ui-owned~="spacing"]){padding:4px!important;}button.uiHeaderConfirmControl:not([data-ui-owned~="layout"]),button.uiHeaderCloseControl:not([data-ui-owned~="layout"]){display:inline-grid!important;place-items:center!important;}button.uiHeaderConfirmControl:not([data-ui-owned~="border"]),button.uiHeaderCloseControl:not([data-ui-owned~="border"]){border:0!important;}button.uiHeaderConfirmControl:not([data-ui-owned~="radius"]),button.uiHeaderCloseControl:not([data-ui-owned~="radius"]){border-radius:8px!important;}
button.uiHeaderConfirmControl:not([data-ui-owned~="paint"]){color:#16c76f!important;-webkit-text-fill-color:#16c76f!important;}
button.uiHeaderCloseControl:not([data-ui-owned~="paint"]){color:var(--ui-text,var(--text,#111827))!important;-webkit-text-fill-color:currentColor!important;}
button.uiHeaderConfirmControl svg:not([data-ui-owned~="size"]),button.uiHeaderCloseControl svg:not([data-ui-owned~="size"]){width:28px!important;}button.uiHeaderConfirmControl svg:not([data-ui-owned~="height"]),button.uiHeaderCloseControl svg:not([data-ui-owned~="height"]){height:28px!important;}button.uiHeaderConfirmControl svg,button.uiHeaderCloseControl svg{fill:none!important;stroke:currentColor!important;stroke-width:2.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;pointer-events:none!important;}
button.uiHeaderConfirmControl svg path{stroke:#16c76f!important;}
button.uiHeaderCloseControl svg path,button.orderMessengerClose svg path{stroke:currentColor!important;}
html[data-native-theme="dark"] button.uiHeaderConfirmControl:not([data-ui-owned~="paint"]){color:#16c76f!important;-webkit-text-fill-color:#16c76f!important;}
html[data-native-theme="dark"] button.uiHeaderCloseControl:not([data-ui-owned~="paint"]){color:var(--ui-text,var(--text,#111827))!important;-webkit-text-fill-color:currentColor!important;}
button.uiHeaderConfirmControl:disabled:not([data-ui-owned~="effect"]){opacity:1!important;}button.uiHeaderConfirmControl:disabled:not([data-ui-owned~="paint"]){filter:none!important;color:#16c76f!important;-webkit-text-fill-color:#16c76f!important;}
.clientReviewHead .reviewHeadActions button.uiHeaderConfirmControl:not([data-ui-owned~="size"]),.clientReviewHead .reviewHeadActions button.uiHeaderCloseControl:not([data-ui-owned~="size"]){width:36px!important;min-width:36px!important;}.clientReviewHead .reviewHeadActions button.uiHeaderConfirmControl:not([data-ui-owned~="height"]),.clientReviewHead .reviewHeadActions button.uiHeaderCloseControl:not([data-ui-owned~="height"]){height:36px!important;min-height:36px!important;}.clientReviewHead .reviewHeadActions button.uiHeaderConfirmControl:not([data-ui-owned~="spacing"]),.clientReviewHead .reviewHeadActions button.uiHeaderCloseControl:not([data-ui-owned~="spacing"]){padding:4px!important;}.clientReviewHead .reviewHeadActions button.uiHeaderConfirmControl:not([data-ui-owned~="font"]),.clientReviewHead .reviewHeadActions button.uiHeaderCloseControl:not([data-ui-owned~="font"]){font-size:0!important;}

/* One order-information component for client/assembler/courier. */
.orderInfoOverlay,.staffOrderInfoOverlay{position:fixed!important;inset:0!important;z-index:10050!important;}.orderInfoOverlay:not([data-ui-owned~="layout"]),.staffOrderInfoOverlay:not([data-ui-owned~="layout"]){display:grid!important;place-items:center!important;box-sizing:border-box!important;}.orderInfoOverlay:not([data-ui-owned~="spacing"]),.staffOrderInfoOverlay:not([data-ui-owned~="spacing"]){padding:18px!important;}.orderInfoOverlay:not([data-ui-owned~="paint"]),.staffOrderInfoOverlay:not([data-ui-owned~="paint"]){background:rgba(15,23,42,.48)!important;}
.orderInfoSheet:not([data-ui-owned~="size"]){width:min(440px,100%)!important;}.orderInfoSheet:not([data-ui-owned~="height"]){max-height:min(78vh,620px)!important;}.orderInfoSheet:not([data-ui-owned~="layout"]){overflow:auto!important;box-sizing:border-box!important;}.orderInfoSheet:not([data-ui-owned~="paint"]){background:var(--ui-surface)!important;color:var(--ui-text)!important;box-shadow:0 20px 64px rgba(15,23,42,.28)!important;}.orderInfoSheet:not([data-ui-owned~="border"]){border:1px solid var(--ui-border-strong)!important;}.orderInfoSheet:not([data-ui-owned~="radius"]){border-radius:var(--ui-radius-sheet)!important;}.orderInfoSheet:not([data-ui-owned~="spacing"]){padding:16px!important;}
.orderInfoHead:not([data-ui-owned~="layout"]){display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;}.orderInfoHead:not([data-ui-owned~="spacing"]){padding-bottom:10px!important;}.orderInfoHead:not([data-ui-owned~="border"]){border-bottom:0!important;}
.orderInfoHead>b:not([data-ui-owned~="size"]){min-width:0!important;}.orderInfoHead>b:not([data-ui-owned~="font"]){font-size:20px!important;line-height:1.2!important;}.orderInfoHead>b:not([data-ui-owned~="layout"]){overflow-wrap:anywhere!important;}
.orderInfoRows:not([data-ui-owned~="layout"]){display:grid!important;gap:0!important;}.orderInfoRows:not([data-ui-owned~="margin"]){margin-top:4px!important;}
.orderInfoRows>div:not([data-ui-owned~="layout"]){display:grid!important;gap:12px!important;align-items:start!important;}.orderInfoRows>div:not([data-ui-owned~="columns"]){grid-template-columns:minmax(112px,.9fr) minmax(0,1.6fr)!important;}.orderInfoRows>div:not([data-ui-owned~="spacing"]){padding:9px 2px!important;}.orderInfoRows>div:not([data-ui-owned~="border"]){border:0!important;}
.orderInfoRows>div:last-child:not([data-ui-owned~="border"]){border:0!important;}
.orderInfoRows span:not([data-ui-owned~="paint"]){color:var(--ui-muted)!important;}.orderInfoRows span:not([data-ui-owned~="font"]){font-size:14px!important;line-height:1.35!important;}
.orderInfoRows b:not([data-ui-owned~="paint"]){color:var(--ui-text)!important;}.orderInfoRows b:not([data-ui-owned~="font"]){font-size:15px!important;line-height:1.35!important;}.orderInfoRows b:not([data-ui-owned~="layout"]){overflow-wrap:anywhere!important;}
button.orderInfoTrigger:not([data-ui-owned~="paint"]){-webkit-appearance:none!important;appearance:none!important;background:transparent!important;background-image:none!important;color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;outline:0!important;}button.orderInfoTrigger:not([data-ui-owned~="border"]){border:1px solid var(--ui-border-strong)!important;}button.orderInfoTrigger:not([data-ui-owned~="radius"]){border-radius:10px!important;}button.orderInfoTrigger:not([data-ui-owned~="spacing"]){padding:2px 6px!important;}button.orderInfoTrigger:not([data-ui-owned~="margin"]){margin:0!important;}button.orderInfoTrigger:not([data-ui-owned~="font"]){font:inherit!important;font-weight:inherit!important;line-height:inherit!important;text-align:left!important;}
button.orderInfoTrigger:focus:not([data-ui-owned~="border"]),button.orderInfoTrigger:active:not([data-ui-owned~="border"]){border-color:var(--ui-accent)!important;}button.orderInfoTrigger:focus:not([data-ui-owned~="paint"]),button.orderInfoTrigger:active:not([data-ui-owned~="paint"]){color:var(--ui-accent)!important;box-shadow:none!important;}

/* One product thumbnail component for client, assembler, courier and history. */
.uiProductThumb:not([data-ui-owned~="layout"]),.orderProductThumb:not([data-ui-owned~="layout"]){display:flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;overflow:hidden!important;}

.uiProductThumb>img:not([data-ui-owned~="layout"]),.orderProductThumb>img.orderProductPhoto:not([data-ui-owned~="layout"]){display:block!important;}.uiProductThumb>img:not([data-ui-owned~="size"]),.orderProductThumb>img.orderProductPhoto:not([data-ui-owned~="size"]){width:100%!important;min-width:0!important;max-width:100%!important;aspect-ratio:auto!important;}.uiProductThumb>img:not([data-ui-owned~="height"]),.orderProductThumb>img.orderProductPhoto:not([data-ui-owned~="height"]){height:100%!important;min-height:0!important;max-height:100%!important;}.uiProductThumb>img:not([data-ui-owned~="image"]),.orderProductThumb>img.orderProductPhoto:not([data-ui-owned~="image"]){object-fit:contain!important;object-position:center center!important;}.uiProductThumb>img:not([data-ui-owned~="margin"]),.orderProductThumb>img.orderProductPhoto:not([data-ui-owned~="margin"]){margin:auto!important;}.uiProductThumb>img:not([data-ui-owned~="spacing"]),.orderProductThumb>img.orderProductPhoto:not([data-ui-owned~="spacing"]){padding:0!important;}.uiProductThumb>img:not([data-ui-owned~="paint"]),.orderProductThumb>img.orderProductPhoto:not([data-ui-owned~="paint"]){background:#fff!important;}.uiProductThumb>img:not([data-ui-owned~="effect"]),.orderProductThumb>img.orderProductPhoto:not([data-ui-owned~="effect"]){transform:none!important;}


/* Informational/editable tiles are never primary filled actions. */
button.uiInfoTile:not([data-ui-owned~="paint"]){-webkit-appearance:none!important;appearance:none!important;background:transparent!important;background-color:transparent!important;background-image:none!important;color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;outline:0!important;}button.uiInfoTile:not([data-ui-owned~="border"]){border:1px solid var(--ui-border-strong)!important;}
html[data-native-theme="dark"] button.uiInfoTile:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;}html[data-native-theme="dark"] button.uiInfoTile:not([data-ui-owned~="border"]){border-color:var(--ui-border)!important;}

/* One messenger visual contract for client and staff, light and dark. */
.orderMessengerRoleTabs button:not([data-ui-owned~="paint"]){-webkit-appearance:none!important;appearance:none!important;background:transparent!important;background-color:transparent!important;color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;outline:0!important;}.orderMessengerRoleTabs button:not([data-ui-owned~="border"]){border:1px solid var(--ui-border)!important;}
.orderMessengerRoleTabs button.active:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;}.orderMessengerRoleTabs button.active:not([data-ui-owned~="border"]){border:2px solid var(--ui-accent)!important;}
html[data-native-theme="dark"] .orderMessengerRoleTabs button:not([data-ui-owned~="paint"]){background:transparent!important;color:var(--ui-text)!important;}html[data-native-theme="dark"] .orderMessengerRoleTabs button:not([data-ui-owned~="border"]){border-color:var(--ui-border)!important;}
html[data-native-theme="dark"] .orderMessengerRoleTabs button.active:not([data-ui-owned~="paint"]){background:transparent!important;color:var(--ui-accent)!important;}html[data-native-theme="dark"] .orderMessengerRoleTabs button.active:not([data-ui-owned~="border"]){border-color:var(--ui-accent)!important;}
.orderMessengerForm textarea:not([data-ui-owned~="layout"]){box-sizing:border-box!important;}.orderMessengerForm textarea:not([data-ui-owned~="border"]){border:1px solid var(--ui-border-strong)!important;}.orderMessengerForm textarea:not([data-ui-owned~="radius"]){border-radius:var(--ui-radius-control)!important;}.orderMessengerForm textarea:not([data-ui-owned~="paint"]){background:transparent!important;color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;outline:0!important;box-shadow:none!important;}
.orderMessengerForm textarea:focus:not([data-ui-owned~="border"]){border:2px solid var(--ui-accent)!important;}.orderMessengerForm textarea:focus:not([data-ui-owned~="paint"]){box-shadow:none!important;outline:0!important;}
html[data-native-theme="dark"] .orderMessengerForm textarea:not([data-ui-owned~="paint"]){background:transparent!important;color:var(--ui-text)!important;}html[data-native-theme="dark"] .orderMessengerForm textarea:not([data-ui-owned~="border"]){border-color:var(--ui-border-strong)!important;}
button.orderMessengerSend:not([data-ui-owned~="size"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="size"]){width:42px!important;min-width:42px!important;}button.orderMessengerSend:not([data-ui-owned~="height"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="height"]){height:42px!important;min-height:42px!important;}button.orderMessengerSend:not([data-ui-owned~="spacing"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="spacing"]){padding:0!important;}button.orderMessengerSend:not([data-ui-owned~="paint"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;background-image:none!important;color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;outline:0!important;box-shadow:none!important;}button.orderMessengerSend:not([data-ui-owned~="border"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="border"]){border:0!important;}button.orderMessengerSend:not([data-ui-owned~="radius"]),button.orderMessengerSend.uiIconOnlyControl:not([data-ui-owned~="radius"]){border-radius:12px!important;}
html[data-native-theme="dark"] button.orderMessengerSend:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;background-image:none!important;color:var(--ui-text)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;}html[data-native-theme="dark"] button.orderMessengerSend:not([data-ui-owned~="border"]){border:0!important;}

button.orderMessengerClose svg,html[data-native-theme="dark"] button.orderMessengerClose svg{fill:none!important;stroke:var(--ui-danger)!important;}

.uiMessengerSendControl svg:not([data-ui-owned~="size"]){width:28px!important;}.uiMessengerSendControl svg:not([data-ui-owned~="height"]){height:28px!important;}.uiMessengerSendControl svg{fill:none!important;stroke:currentColor!important;stroke-width:1.9!important;stroke-linecap:round!important;stroke-linejoin:round!important;pointer-events:none!important;}

/* 2.0.272 — final close-control authority in every server-rendered theme. */


button.uiCloseControl:not(#closeCart):not([data-ui-owned~="paint"]),button.uiCloseControl:not(#closeCart) svg:not([data-ui-owned~="paint"]),button.uiCloseControl:not(#closeCart) svg path:not([data-ui-owned~="paint"]){color:var(--ui-danger,#ef4444)!important;-webkit-text-fill-color:currentColor!important;}button.uiCloseControl:not(#closeCart) svg,button.uiCloseControl:not(#closeCart) svg path{stroke:currentColor!important;}html[data-native-theme="dark"] button.uiCloseControl:not(#closeCart):not([data-ui-owned~="paint"]),html[data-native-theme="dark"] button.uiCloseControl:not(#closeCart) svg:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] button.uiCloseControl:not(#closeCart) svg path:not([data-ui-owned~="paint"]){color:var(--ui-danger,#ef4444)!important;-webkit-text-fill-color:currentColor!important;stroke:currentColor!important;}

/* 2.0.273 — canonical UI authority is deliberately in the last shared stylesheet. */
button.noStockBtn.danger:not([data-ui-owned~="paint"]),html[data-native-theme="light"] button.noStockBtn.danger:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] button.noStockBtn.danger:not([data-ui-owned~="paint"]),html button.noStockBtn.danger:not([data-ui-owned~="paint"]){background:#fee2e2!important;background-color:#fee2e2!important;background-image:none!important;color:#dc2626!important;-webkit-text-fill-color:#dc2626!important;box-shadow:none!important;}button.noStockBtn.danger:not([data-ui-owned~="border"]),html[data-native-theme="light"] button.noStockBtn.danger:not([data-ui-owned~="border"]),html[data-native-theme="dark"] button.noStockBtn.danger:not([data-ui-owned~="border"]),html button.noStockBtn.danger:not([data-ui-owned~="border"]){border:1px solid #ef4444!important;}
button.noStockBtn.danger:hover:not([data-ui-owned~="paint"]),button.noStockBtn.danger:focus:not([data-ui-owned~="paint"]),button.noStockBtn.danger:active:not([data-ui-owned~="paint"]){background:#fecaca!important;background-color:#fecaca!important;color:#b91c1c!important;-webkit-text-fill-color:#b91c1c!important;}button.noStockBtn.danger:hover:not([data-ui-owned~="border"]),button.noStockBtn.danger:focus:not([data-ui-owned~="border"]),button.noStockBtn.danger:active:not([data-ui-owned~="border"]){border-color:#dc2626!important;}
.assemblyItemGrid:not([data-ui-owned~="columns"]),.canonicalOrderItem:not([data-ui-owned~="columns"]){grid-template-columns:60px minmax(0,1fr)!important;}.assemblyItemGrid:not([data-ui-owned~="layout"]),.canonicalOrderItem:not([data-ui-owned~="layout"]){gap:10px!important;align-items:center!important;}
.assemblyItemGrid>.uiProductThumb,.assemblyItemGrid>.orderProductThumb,.canonicalOrderItem>.uiProductThumb,.canonicalOrderItem>.orderProductThumb{justify-self:center!important;align-self:center!important;}
@media (max-width:420px){.assemblyItemGrid:not([data-ui-owned~="columns"]),.canonicalOrderItem:not([data-ui-owned~="columns"]){grid-template-columns:58px minmax(0,1fr)!important;}.assemblyItemGrid:not([data-ui-owned~="layout"]),.canonicalOrderItem:not([data-ui-owned~="layout"]){gap:8px!important;}}


/* 2.0.277 — one exact visual contract for cart/staff thumbs, close and destructive-soft action. */
.assemblyItemGrid:not([data-ui-owned~="columns"]),.canonicalOrderItem:not([data-ui-owned~="columns"]){grid-template-columns:58px minmax(0,1fr)!important;}.assemblyItemGrid:not([data-ui-owned~="layout"]),.canonicalOrderItem:not([data-ui-owned~="layout"]){gap:9px!important;align-items:center!important;}
.assemblyItemGrid>.cartLineImg.uiProductThumb:not([data-ui-owned~="layout"]),.canonicalOrderItem>.cartLineImg.uiProductThumb:not([data-ui-owned~="layout"]){box-sizing:border-box!important;overflow:hidden!important;display:grid!important;place-items:center!important;}.assemblyItemGrid>.cartLineImg.uiProductThumb,.canonicalOrderItem>.cartLineImg.uiProductThumb{justify-self:center!important;align-self:center!important;}
.assemblyItemGrid>.cartLineImg.uiProductThumb img:not([data-ui-owned~="size"]),.canonicalOrderItem>.cartLineImg.uiProductThumb img:not([data-ui-owned~="size"]){width:100%!important;}.assemblyItemGrid>.cartLineImg.uiProductThumb img:not([data-ui-owned~="height"]),.canonicalOrderItem>.cartLineImg.uiProductThumb img:not([data-ui-owned~="height"]){height:100%!important;}.assemblyItemGrid>.cartLineImg.uiProductThumb img:not([data-ui-owned~="image"]),.canonicalOrderItem>.cartLineImg.uiProductThumb img:not([data-ui-owned~="image"]){object-fit:contain!important;}.assemblyItemGrid>.cartLineImg.uiProductThumb img:not([data-ui-owned~="radius"]),.canonicalOrderItem>.cartLineImg.uiProductThumb img:not([data-ui-owned~="radius"]){border-radius:15px!important;}.assemblyItemGrid>.cartLineImg.uiProductThumb img:not([data-ui-owned~="layout"]),.canonicalOrderItem>.cartLineImg.uiProductThumb img:not([data-ui-owned~="layout"]){display:block!important;}
@media (max-width:420px){.assemblyItemGrid:not([data-ui-owned~="columns"]),.canonicalOrderItem:not([data-ui-owned~="columns"]){grid-template-columns:56px minmax(0,1fr)!important;}.assemblyItemGrid:not([data-ui-owned~="layout"]),.canonicalOrderItem:not([data-ui-owned~="layout"]){gap:8px!important;}}
button.noStockBtn.uiDangerSoftControl:not([data-ui-owned~="paint"]),html[data-native-theme="light"] button.noStockBtn.uiDangerSoftControl:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] button.noStockBtn.uiDangerSoftControl:not([data-ui-owned~="paint"]),html button.noStockBtn.uiDangerSoftControl:not([data-ui-owned~="paint"]){background:#fee2e2!important;background-color:#fee2e2!important;background-image:none!important;color:#dc2626!important;-webkit-text-fill-color:#dc2626!important;box-shadow:none!important;}button.noStockBtn.uiDangerSoftControl:not([data-ui-owned~="border"]),html[data-native-theme="light"] button.noStockBtn.uiDangerSoftControl:not([data-ui-owned~="border"]),html[data-native-theme="dark"] button.noStockBtn.uiDangerSoftControl:not([data-ui-owned~="border"]),html button.noStockBtn.uiDangerSoftControl:not([data-ui-owned~="border"]){border:1px solid #ef4444!important;}
button.orderMessengerClose.uiHeaderCloseControl:not([data-ui-owned~="layout"]){display:grid!important;place-items:center!important;}button.orderMessengerClose.uiHeaderCloseControl{align-self:center!important;}
.orderMessengerHead:not([data-ui-owned~="layout"]){align-items:center!important;}.orderMessengerHead>div{align-self:center!important;}


/* 2.0.278 — final cross-surface UI authority. */
/* Client order/history uses the exact same thumbnail canvas as Cart. */
.orderItemLine.unifiedOrderItem:not([data-ui-owned~="columns"]),.orderItemLine.clientOrderItemCard:not([data-ui-owned~="columns"]){grid-template-columns:58px minmax(0,1fr)!important;column-gap:10px!important;}.orderItemLine.unifiedOrderItem:not([data-ui-owned~="layout"]),.orderItemLine.clientOrderItemCard:not([data-ui-owned~="layout"]){align-items:center!important;}
.orderItemLine>.cartLineImg.uiProductThumb:not([data-ui-owned~="layout"]),.assemblyItemGrid>.cartLineImg.uiProductThumb:not([data-ui-owned~="layout"]),.canonicalOrderItem>.cartLineImg.uiProductThumb:not([data-ui-owned~="layout"]){box-sizing:border-box!important;overflow:hidden!important;display:grid!important;place-items:center!important;}.orderItemLine>.cartLineImg.uiProductThumb,.assemblyItemGrid>.cartLineImg.uiProductThumb,.canonicalOrderItem>.cartLineImg.uiProductThumb{justify-self:center!important;align-self:center!important;}
.orderItemLine>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="size"]),.assemblyItemGrid>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="size"]),.canonicalOrderItem>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="size"]){width:100%!important;max-width:100%!important;}.orderItemLine>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="height"]),.assemblyItemGrid>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="height"]),.canonicalOrderItem>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="height"]){height:100%!important;max-height:100%!important;}.orderItemLine>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="image"]),.assemblyItemGrid>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="image"]),.canonicalOrderItem>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="image"]){object-fit:contain!important;object-position:center!important;}.orderItemLine>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="paint"]),.assemblyItemGrid>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="paint"]),.canonicalOrderItem>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="paint"]){background:#fff!important;background-color:#fff!important;}.orderItemLine>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="radius"]),.assemblyItemGrid>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="radius"]),.canonicalOrderItem>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="radius"]){border-radius:12px!important;}.orderItemLine>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="layout"]),.assemblyItemGrid>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="layout"]),.canonicalOrderItem>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="layout"]){display:block!important;}

html[data-native-theme="dark"] .orderItemLine>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .assemblyItemGrid>.cartLineImg.uiProductThumb>img:not([data-ui-owned~="paint"]){background:#fff!important;background-color:#fff!important;}
@media (max-width:420px){.orderItemLine.unifiedOrderItem:not([data-ui-owned~="columns"]),.orderItemLine.clientOrderItemCard:not([data-ui-owned~="columns"]){grid-template-columns:56px minmax(0,1fr)!important;column-gap:8px!important;}}

/* Close belongs to the title row, not to the visual centre of title+subtitle. */
.orderMessengerHead:not([data-ui-owned~="layout"]){align-items:flex-start!important;}
.orderMessengerHeadMain,.orderMessengerHead>div{align-self:flex-start!important;}
button.orderMessengerClose.uiHeaderCloseControl{align-self:flex-start!important;}

/* Android/WebView must never paint the whole checkbox row blue on tap/focus. */
label.uiCheckControl:not([data-ui-owned~="paint"]),label.deliveryCheck:not([data-ui-owned~="paint"]),label.uiCheckControl:active:not([data-ui-owned~="paint"]),label.deliveryCheck:active:not([data-ui-owned~="paint"]),label.uiCheckControl:focus:not([data-ui-owned~="paint"]),label.deliveryCheck:focus:not([data-ui-owned~="paint"]),label.uiCheckControl:focus-within:not([data-ui-owned~="paint"]),label.deliveryCheck:focus-within:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;background-image:none!important;box-shadow:none!important;outline:none!important;}label.uiCheckControl,label.deliveryCheck,label.uiCheckControl:active,label.deliveryCheck:active,label.uiCheckControl:focus,label.deliveryCheck:focus,label.uiCheckControl:focus-within,label.deliveryCheck:focus-within{-webkit-tap-highlight-color:transparent!important;}
label.uiCheckControl *,label.deliveryCheck *{-webkit-tap-highlight-color:transparent!important;}
label.uiCheckControl input[type="checkbox"]:not([data-ui-owned~="paint"]),label.deliveryCheck input[type="checkbox"]:not([data-ui-owned~="paint"]){outline:none!important;box-shadow:none!important;}

/* Dark catalogue quantity +/-: same outlined geometry as light, no fill. */
html[data-native-theme="dark"] .catalogScroll .qty button:not([data-ui-owned~="size"]),html[data-native-theme="dark"] .productGrid .qty button:not([data-ui-owned~="size"]){width:42px!important;min-width:42px!important;}html[data-native-theme="dark"] .catalogScroll .qty button:not([data-ui-owned~="height"]),html[data-native-theme="dark"] .productGrid .qty button:not([data-ui-owned~="height"]){height:42px!important;min-height:42px!important;}html[data-native-theme="dark"] .catalogScroll .qty button:not([data-ui-owned~="border"]),html[data-native-theme="dark"] .productGrid .qty button:not([data-ui-owned~="border"]){border:1px solid #94a3b8!important;}html[data-native-theme="dark"] .catalogScroll .qty button:not([data-ui-owned~="radius"]),html[data-native-theme="dark"] .productGrid .qty button:not([data-ui-owned~="radius"]){border-radius:12px!important;}html[data-native-theme="dark"] .catalogScroll .qty button:not([data-ui-owned~="paint"]),html[data-native-theme="dark"] .productGrid .qty button:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;background-image:none!important;color:#f8fafc!important;-webkit-text-fill-color:#f8fafc!important;box-shadow:none!important;}

/* Shared component implementation. Platform and theme never own component geometry.
   Page CSS retains viewport, keyboard, native chrome, visibility and placement. */
.uiProductCard {
  box-sizing:border-box; height:100%; min-height:0; min-width:0;
  display:flex; flex-direction:column; overflow:hidden; margin:0; padding:0;
  border:1px solid var(--ui-card-border); border-radius:var(--ui-card-radius);
  background:var(--ui-card-surface); color:var(--ui-text); box-shadow:none;
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
}
.uiProductImage {
  box-sizing:border-box; display:flex; align-items:center; justify-content:center;
  flex:1 1 auto; min-height:0; width:100%; height:auto; aspect-ratio:auto;
  padding:0; margin:0; overflow:hidden; background:var(--ui-thumb-surface); font-size:34px;
}
.uiProductPhoto {
  display:block; width:100%; height:100%; min-width:0; min-height:0;
  max-width:100%; max-height:100%; padding:0; margin:0;
  object-fit:contain; object-position:center; background:var(--ui-thumb-surface);
}
.uiProductContent {
  box-sizing:border-box; display:flex; flex-direction:column; flex:0 0 auto;
  min-width:0; padding:var(--ui-card-padding); gap:var(--ui-card-gap); margin:0;
  color:var(--ui-text); background:transparent;
}
.uiProductName {
  box-sizing:border-box; height:var(--ui-card-title-height); min-height:var(--ui-card-title-height);
  max-height:var(--ui-card-title-height); display:block; overflow:hidden;
  font-size:14px; line-height:1.05; font-weight:800; color:var(--ui-text);
  overflow-wrap:anywhere; word-break:normal; padding:0; margin:0;
  -webkit-line-clamp:unset; -webkit-box-orient:initial;
}
.uiProductPrice {font-size:13px;line-height:1.1;font-weight:900;color:var(--ui-text);padding:0;margin:0}
.uiProductMeta {display:none}
.uiProductActions {height:var(--ui-qty-compact-size);min-height:var(--ui-qty-compact-size);max-height:var(--ui-qty-compact-size);padding:0;margin:0}
.uiProductThumb {
  box-sizing:border-box; width:var(--ui-thumb-size); height:var(--ui-thumb-size);
  min-width:var(--ui-thumb-size); min-height:var(--ui-thumb-size);
  max-width:var(--ui-thumb-size); max-height:var(--ui-thumb-size);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  padding:var(--ui-thumb-padding); margin:0; border:1px solid var(--ui-thumb-border);
  border-radius:var(--ui-thumb-radius); background:var(--ui-thumb-surface);
  color:#111827; font-size:20px; line-height:1; box-shadow:none;
  justify-self:center; align-self:center; flex-shrink:0;
}
.uiProductThumbImage {
  display:block; width:100%; height:100%; min-width:0; min-height:0;
  max-width:100%; max-height:100%; aspect-ratio:auto; margin:auto; padding:0;
  object-fit:contain; object-position:center; background:var(--ui-thumb-surface);
  border:0; border-radius:12px; transform:none;
}
.uiProductDetailImage,.uiProductDetailPhoto {background:var(--ui-thumb-surface);object-fit:contain;object-position:center}
.uiProductRow {grid-template-columns:58px minmax(0,1fr);column-gap:9px}
@media(max-width:420px){.uiProductRow{grid-template-columns:56px minmax(0,1fr);column-gap:8px}}
.uiQtyControl {
  display:grid; grid-template-columns:var(--ui-qty-size) minmax(0,1fr) var(--ui-qty-size);
  align-items:center; gap:7px; padding:0; border:0; border-radius:0;
  background:transparent; color:var(--ui-text); box-shadow:none;
}
.uiQtyControl.uiQtyCompact {grid-template-columns:var(--ui-qty-compact-size) minmax(0,1fr) var(--ui-qty-compact-size);gap:4px}
.uiQtyButton {
  -webkit-appearance:none; appearance:none; box-sizing:border-box;
  width:var(--ui-qty-size); height:var(--ui-qty-size);
  min-width:var(--ui-qty-size); min-height:var(--ui-qty-size);
  max-width:var(--ui-qty-size); max-height:var(--ui-qty-size);
  display:inline-flex; align-items:center; justify-content:center;
  padding:0; margin:0; border:1px solid var(--ui-qty-border);
  border-radius:var(--ui-radius-control); background:transparent; background-image:none;
  color:var(--ui-text); -webkit-text-fill-color:currentColor;
  font:800 20px/1 system-ui,-apple-system,"Segoe UI",sans-serif;
  box-shadow:none; text-shadow:none; transform:none; cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.uiQtyButton.uiQtyCompact {
  width:var(--ui-qty-compact-size); height:var(--ui-qty-compact-size);
  min-width:var(--ui-qty-compact-size); min-height:var(--ui-qty-compact-size);
  max-width:var(--ui-qty-compact-size); max-height:var(--ui-qty-compact-size);
  border-radius:10px; font-size:16px;
}
.uiQtyValue {display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;padding:0;border:0;background:transparent;color:var(--ui-text);font:800 14px/1 system-ui,sans-serif}
.uiQtyCompact .uiQtyValue {font-size:12px;line-height:30px}
/* 2.0.281: cart quantity is a two-line value, not the inline generic qty value. */
.uiCartQtyValue {
  display:grid;grid-template-rows:20px 12px;grid-template-columns:44px;
  align-items:center;justify-items:center;align-content:center;gap:0;
  min-width:40px;height:32px;padding:0;border:0;border-radius:0;
  background:transparent;color:var(--ui-text);font:800 16px/1 system-ui,sans-serif;
}
.uiCartQtyValue > .uiQuantityInput {
  box-sizing:border-box;width:44px;height:20px;min-height:20px;max-height:20px;
  padding:0;border:0;border-radius:0;background:transparent;color:var(--ui-text);
  -webkit-text-fill-color:currentColor;box-shadow:none;outline:0;
  font:900 16px/20px system-ui,-apple-system,"Segoe UI",sans-serif;text-align:center;
}
.uiCartQtyValue > span {
  display:block;align-self:start;color:var(--ui-muted);font:800 10px/10px system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media(max-width:430px){
  .uiCartQtyValue{grid-template-columns:42px}
  .uiCartQtyValue > .uiQuantityInput{width:42px;font-size:15px}
}
.uiCloseControl {
  -webkit-appearance:none; appearance:none; box-sizing:border-box;
  width:var(--ui-close-size); height:var(--ui-close-size);
  min-width:var(--ui-close-size); min-height:var(--ui-close-size);
  max-width:var(--ui-close-size); max-height:var(--ui-close-size);
  display:inline-flex; align-items:center; justify-content:center;
  padding:0; margin:0; border:0; border-radius:8px;
  background:transparent; background-image:none; color:var(--ui-danger);
  -webkit-text-fill-color:currentColor; box-shadow:none; text-shadow:none; filter:none;
  font:800 var(--ui-close-glyph)/1 system-ui,-apple-system,"Segoe UI",sans-serif;
  transform:none; flex:0 0 auto; cursor:pointer; -webkit-tap-highlight-color:transparent;
}
.uiCloseControl svg {width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.8;pointer-events:none}
.uiCloseControl svg path {stroke:currentColor}
.orderMessengerHead {align-items:flex-start!important}
.orderMessengerHeadMain,.orderMessengerHead>div {align-self:flex-start!important}
.orderMessengerHead .uiCloseControl {align-self:flex-start;margin-top:0}
.uiButton,.uiChoiceControl,.uiConfirmAction {
  -webkit-appearance:none; appearance:none; box-sizing:border-box;
  padding:var(--ui-control-padding); border:1px solid var(--ui-border);
  border-radius:var(--ui-radius-control); background:transparent; background-image:none;
  color:var(--ui-text); -webkit-text-fill-color:currentColor; box-shadow:none;
  font:800 14px/1.25 system-ui,-apple-system,"Segoe UI",sans-serif;
  cursor:pointer; -webkit-tap-highlight-color:transparent;
}
.uiButton {height:auto;min-height:40px;max-height:none}
.uiPrimaryButton {background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-on-accent)}
.uiSecondaryButton {background:transparent;color:var(--ui-text);border-color:var(--ui-border)}
.uiDangerSoftControl {background:var(--ui-danger-surface);color:var(--ui-danger-ink);border-color:var(--ui-danger)}
.uiDangerOutlineControl {background:transparent;color:var(--ui-danger);border-color:var(--ui-danger);box-shadow:none}
.uiProductAdd {width:100%;height:var(--ui-qty-compact-size);min-height:var(--ui-qty-compact-size);max-height:var(--ui-qty-compact-size);padding:5px 7px;font-size:12px;border-radius:10px;margin:0;box-sizing:border-box}
.uiChoiceControl.uiSelected,.uiChoiceControl.selectedChoice,.uiChoiceControl.active,.uiChoiceControl[data-ui-selected="true"] {
  color:var(--ui-accent);border-color:var(--ui-accent);box-shadow:inset 0 0 0 1px var(--ui-accent);background:transparent;
}
.uiConfirmAction.uiDangerAction {color:var(--ui-danger);border-color:var(--ui-danger);background:transparent}
.uiInfoTile {border:1px solid var(--ui-border-strong);border-radius:14px;background:transparent;color:var(--ui-text);box-shadow:none}
@media(max-width:430px){.uiInfoTile{border-radius:12px}}
html[data-native-theme="dark"] .profileActionButtons .uiInfoTile{border-color:#f8fafc;color:#f8fafc;border-radius:13px}
html[data-native-theme="dark"] .checkoutQuick .uiInfoTile{border-color:#f8fafc}
.uiInput {
  -webkit-appearance:none;appearance:none;box-sizing:border-box;min-width:0;
  padding:var(--ui-control-padding);border:1px solid var(--ui-border);
  border-radius:var(--ui-radius-control);background:var(--ui-surface);color:var(--ui-text);
  -webkit-text-fill-color:currentColor;font:400 16px/1.25 system-ui,-apple-system,"Segoe UI",sans-serif;
  box-shadow:none;
}
select.uiInput {-webkit-appearance:menulist;appearance:menulist}
.uiSingleLineInput {height:40px;min-height:40px;max-height:none}
.uiQuantityInput {font-weight:800;text-align:center;padding:7px 8px}
.uiCheckboxInput,.uiRadioControl {
  -webkit-appearance:none!important;appearance:none!important;position:relative!important;
  top:auto!important;left:auto!important;transform:none!important;opacity:1!important;
  display:inline-block;vertical-align:middle;box-sizing:border-box;
  width:22px;height:22px;min-width:22px;min-height:22px;max-width:22px;max-height:22px;
  border:1.5px solid var(--ui-border-strong);border-radius:5px;padding:0;margin:0;
  background:transparent;color:var(--ui-text);cursor:pointer;flex:0 0 auto;box-shadow:none;
}
.uiRadioControl {border-radius:50%}
.uiCheckboxInput:checked {border-color:var(--ui-accent);background:var(--ui-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='m5 11 4 4 8-9' fill='none' stroke='white' stroke-width='3'/%3E%3C/svg%3E") center/20px 20px no-repeat}
.uiRadioControl:checked {border-color:var(--ui-accent);background:var(--ui-accent);box-shadow:inset 0 0 0 4px var(--ui-surface)}
label.uiCheckControl {display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;align-items:center!important;column-gap:10px!important;min-height:34px!important;background:transparent!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent!important}
label.uiCheckControl>.uiCheckboxInput {grid-column:1!important;grid-row:1!important;align-self:center!important;justify-self:start!important}
label.uiCheckControl .uiCheckLabel {grid-column:2!important;grid-row:1!important;display:flex!important;align-items:center!important;min-height:22px!important;height:auto!important;padding-left:0!important;margin:0!important;line-height:22px!important;color:var(--ui-text)}
label.uiCheckControl .uiCheckLabel::before,label.uiCheckControl .uiCheckLabel::after {display:none!important;content:none!important}
.uiModalSurface {box-sizing:border-box;background:var(--ui-surface);color:var(--ui-text);border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius-sheet);box-shadow:var(--ui-modal-shadow)}
.uiCard {background:var(--ui-surface);color:var(--ui-text);border:1px solid var(--ui-border);border-radius:14px;box-shadow:none}
.uiStatusPill {padding:3px 8px;border:1px solid currentColor;border-radius:999px;font:800 12px/1.2 system-ui,sans-serif}
/* 2.0.283: one semantic status palette across client/staff/browser/native surfaces. */
span.statusPill.waiting:not([data-ui-owned~="paint"]),
span.statusPill:not(.ready):not(.cancelled):not(.addressPill):not([data-ui-owned~="paint"]),
span.paymentBadge.waiting:not([data-ui-owned~="paint"]),
span.statusBadge.waiting:not([data-ui-owned~="paint"]),
span.paidBadge.waiting:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;color:var(--ui-brand-orange)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important}
span.statusPill.waiting:not([data-ui-owned~="border"]),
span.statusPill:not(.ready):not(.cancelled):not(.addressPill):not([data-ui-owned~="border"]),
span.paymentBadge.waiting:not([data-ui-owned~="border"]),
span.statusBadge.waiting:not([data-ui-owned~="border"]),
span.paidBadge.waiting:not([data-ui-owned~="border"]){border:1px solid var(--ui-brand-orange)!important}
span.statusPill.ready:not([data-ui-owned~="paint"]),
span.paymentBadge.paid:not([data-ui-owned~="paint"]),
span.statusBadge.ready:not([data-ui-owned~="paint"]),
span.paidBadge.paid:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;color:var(--ui-brand-green)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important}
span.statusPill.ready:not([data-ui-owned~="border"]),
span.paymentBadge.paid:not([data-ui-owned~="border"]),
span.statusBadge.ready:not([data-ui-owned~="border"]),
span.paidBadge.paid:not([data-ui-owned~="border"]){border:1px solid var(--ui-brand-green)!important}
span.paymentBadge.method:not([data-ui-owned~="paint"]),span.paidBadge.method:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;color:var(--ui-brand-green)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important}
span.paymentBadge.method:not([data-ui-owned~="border"]),span.paidBadge.method:not([data-ui-owned~="border"]){border:1px solid var(--ui-brand-green)!important}
.statusPill.addressPill:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;color:var(--ui-muted)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important}
.statusPill.addressPill:not([data-ui-owned~="border"]){border:1px solid var(--ui-border)!important}
.statusPill.cancelled:not([data-ui-owned~="paint"]),.paymentBadge.cancelled:not([data-ui-owned~="paint"]),.statusBadge.cancelled:not([data-ui-owned~="paint"]),.paidBadge.cancelled:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;color:var(--ui-danger)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important}
.statusPill.cancelled:not([data-ui-owned~="border"]),.paymentBadge.cancelled:not([data-ui-owned~="border"]),.statusBadge.cancelled:not([data-ui-owned~="border"]),.paidBadge.cancelled:not([data-ui-owned~="border"]){border:1px solid var(--ui-danger)!important}
/* Any status/payment pill that is an action is blue. Semantic orange/green is reserved for passive state. */
button.statusPill:not([data-ui-owned~="paint"]),button.paymentBadge:not([data-ui-owned~="paint"]),button.statusBadge:not([data-ui-owned~="paint"]),button.paidBadge:not([data-ui-owned~="paint"]),.statusAction:not([data-ui-owned~="paint"]),.paymentAction:not([data-ui-owned~="paint"]),.clientPayStatusBtn:not([data-ui-owned~="paint"]),.reviewStatusBtn:not([data-ui-owned~="paint"]){background:transparent!important;background-color:transparent!important;color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important}
button.statusPill:not([data-ui-owned~="border"]),button.paymentBadge:not([data-ui-owned~="border"]),button.statusBadge:not([data-ui-owned~="border"]),button.paidBadge:not([data-ui-owned~="border"]),.statusAction:not([data-ui-owned~="border"]),.paymentAction:not([data-ui-owned~="border"]),.clientPayStatusBtn:not([data-ui-owned~="border"]),.reviewStatusBtn:not([data-ui-owned~="border"]){border:1px solid var(--ui-accent)!important}
.uiHeaderAction {
  -webkit-appearance:none;appearance:none;box-sizing:border-box;
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;min-width:40px;max-width:40px;height:44px;min-height:44px;max-height:44px;
  padding:0;margin:0;background:transparent;border:0;border-radius:12px;
  color:var(--system-icon,var(--staff-system-icon,var(--ui-accent)));box-shadow:none;font:800 24px/1 system-ui,sans-serif;
}
.uiHeaderAction svg {width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.uiEmptyState {display:grid;place-items:center;height:auto;min-height:100px;max-height:none;padding:18px;text-align:center;background:transparent;color:var(--ui-muted);font:400 14px/1.4 system-ui,sans-serif}
.uiButton:disabled,.uiQtyButton:disabled,.uiInput:disabled,.uiChoiceControl:disabled,.uiConfirmAction:disabled,.uiCheckboxInput:disabled,.uiRadioControl:disabled {opacity:.55;cursor:not-allowed}
.uiButton:focus-visible,.uiQtyButton:focus-visible,.uiCloseControl:focus-visible,.uiHeaderAction:focus-visible,.uiChoiceControl:focus-visible,.uiConfirmAction:focus-visible,.uiCheckboxInput:focus-visible,.uiRadioControl:focus-visible {outline:2px solid var(--ui-accent);outline-offset:2px}
.uiInput:focus {outline:2px solid var(--ui-accent);outline-offset:-2px;border-color:var(--ui-accent)}


/* 2.0.281 — restore the proven client dark-theme geometry after 2.0.280 consolidation.
   These rules are presentation-only and intentionally do not own data/state/navigation. */
.cartTotalsBox.totalsPanel.collapsed > .totalsFull {display:none!important}
.totalsPanel.collapsed > .totalsFull:not([data-ui-owned~="layout"]),.totalsPanel.collapsed .totalsFull:not([data-ui-owned~="layout"]),.orderTotals.totalsPanel.collapsed > .totalsFull:not([data-ui-owned~="layout"]){display:none!important}
.profilePrivacyActions .uiDangerOutlineControl {
  background:transparent!important;color:var(--ui-danger)!important;-webkit-text-fill-color:currentColor!important;
  border-color:var(--ui-danger)!important;box-shadow:none!important;text-align:left;
}
html[data-native-theme="dark"] .profilePrivacyActions .uiDangerOutlineControl {
  background:transparent!important;color:#fca5a5!important;-webkit-text-fill-color:currentColor!important;
  border-color:#f87171!important;box-shadow:none!important;
}
html[data-native-theme="dark"] #profileLogoutBtn.uiDangerOutlineControl {
  color:#f8fafc!important;-webkit-text-fill-color:currentColor!important;border-color:#f8fafc!important;
}
/* Order tabs retain their established compact geometry and outlined native-dark selected state. */
.clientOrderTabs button {
  flex:0 0 auto!important;min-height:38px!important;padding:8px 14px!important;
  border-radius:13px!important;font-weight:900!important;
}
html[data-native-theme="dark"] .clientOrderTabs button {
  background:transparent!important;color:#f8fafc!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid #f8fafc!important;box-shadow:none!important;
}
html[data-native-theme="dark"] .clientOrderTabs button.activeTab {
  background:transparent!important;color:var(--ui-accent)!important;-webkit-text-fill-color:currentColor!important;
  border:2px solid var(--ui-accent)!important;box-shadow:none!important;
}

/* 2.0.282: destructive/disabled controls must not introduce pale cards into dark surfaces. */
html[data-native-theme="dark"] button.noStockBtn.danger:not([data-ui-owned~="paint"]),
html[data-native-theme="dark"] button.noStockBtn.uiDangerSoftControl:not([data-ui-owned~="paint"]){
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:var(--ui-danger)!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;
}
html[data-native-theme="dark"] button.noStockBtn.danger:not([data-ui-owned~="border"]),
html[data-native-theme="dark"] button.noStockBtn.uiDangerSoftControl:not([data-ui-owned~="border"]){border:1px solid var(--ui-danger)!important;}


/* 2.0.286 — final semantic/status + totals dark authority after field acceptance.
   This block intentionally outranks legacy page-specific !important rules that were
   still winning by selector specificity in staff order details. */
:root{
  --ui-brand-orange:#f9720a;
  --ui-brand-green:#6aa72a;
}
/* Passive lifecycle/payment states: one outline language in every interface/theme. */
html span.statusPill.waiting,
html span.statusBadge.waiting,
html span.badge.statusBadge.waiting,
html span.paymentBadge.waiting,
html span.paidBadge.waiting{
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:var(--ui-brand-orange)!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid var(--ui-brand-orange)!important;box-shadow:none!important;
}
html span.statusPill.ready,
html span.statusBadge.ready,
html span.badge.statusBadge.ready,
html span.paymentBadge.paid,
html span.paidBadge.paid,
html span.paymentBadge.method,
html span.paidBadge.method{
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:var(--ui-brand-green)!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid var(--ui-brand-green)!important;box-shadow:none!important;
}
/* Interactive status/payment controls use a stable service-action blue.
   Do not inherit tenant branding here: a white/light store accent made staff actions disappear in light theme. */
html button.statusPill,
html button.statusBadge,
html button.badge.statusBadge,
html button.paymentBadge,
html button.paidBadge,
html .statusAction,
html .paymentAction,
html .clientPayStatusBtn,
html .reviewStatusBtn{
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:var(--ui-action-blue,#2481cc)!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid var(--ui-action-blue,#2481cc)!important;box-shadow:none!important;
}
/* Dark totals are text-on-dark everywhere. Discount value retains its positive green semantic. */
html[data-native-theme="dark"] .totalsPanel,
html[data-native-theme="dark"] .totalsPanel .totalsFull,
html[data-native-theme="dark"] .totalsPanel .grandTotal,
html[data-native-theme="dark"] .orderTotals,
html[data-native-theme="dark"] .totalBox{
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:#f8fafc!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;
}
html[data-native-theme="dark"] .totalsPanel .totalsFull > div,
html[data-native-theme="dark"] .totalsPanel .totalsFull > div > span,
html[data-native-theme="dark"] .totalsPanel .totalsFull > div > b,
html[data-native-theme="dark"] .totalsPanel .grandTotal > span,
html[data-native-theme="dark"] .totalsPanel .grandTotal > b,
html[data-native-theme="dark"] .orderTotals .totalsFull > div,
html[data-native-theme="dark"] .orderTotals .totalsFull > div > span,
html[data-native-theme="dark"] .orderTotals .totalsFull > div > b{
  color:#f8fafc!important;-webkit-text-fill-color:#f8fafc!important;
}
html[data-native-theme="dark"] .totalsPanel .discountRow > b,
html[data-native-theme="dark"] .orderTotals .discountRow > b{
  color:#34d399!important;-webkit-text-fill-color:#34d399!important;
}
/* Staff active-order total had a higher-specificity legacy white sticky surface.
   Match and exceed that selector so native/browser dark mode cannot fall back to white. */
html[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .actions,
html[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .courierActions,
html.nativeShell[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .actions,
html.nativeShell[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .courierActions{
  background:#0f172a!important;background-color:#0f172a!important;background-image:none!important;
  color:#f8fafc!important;box-shadow:none!important;border-top-color:#334155!important;
}
html[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .actions .totalBox,
html[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .actions .totalsPanel,
html[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .actions .totalsFull,
html[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .actions .grandTotal,
html.nativeShell[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .actions .totalBox,
html.nativeShell[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .actions .totalsPanel,
html.nativeShell[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .actions .totalsFull,
html.nativeShell[data-native-theme="dark"] .layout.detailMode #detail .staffActiveOrderCard .actions .grandTotal{
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:#f8fafc!important;-webkit-text-fill-color:currentColor!important;box-shadow:none!important;
}


/* 2.0.287 — conflict-cleanup authority after device acceptance.
   Shared component CSS is loaded last on client/staff/TSD/Admin pages. These
   rules intentionally do not depend on data-ui-owned exclusions: the bugs in
   2.0.286 were exactly ownership/specificity conflicts. */

/* Owner report legend: presentation-only values are never generic cards. */
.ownerRevenueLegend > span.noncash{
  background:transparent!important;background-color:transparent!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  min-height:0!important;overflow:visible!important;
}

/* Status authority. Passive state is outline-only; clickable state is blue.
   Review is a blue action with a white contour in dark mode, never orange. */
html body #infoPanel span.statusPill.waiting,
html body #detail span.statusBadge.waiting,
html body #detail span.badge.statusBadge.waiting,
html body #detail span.paidBadge.waiting,
html body .summary span.paidBadge.waiting[data-ui-owned],
html body .managerOrderMeta span.paidBadge.waiting[data-ui-owned]{
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:var(--ui-brand-orange,#f9720a)!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid var(--ui-brand-orange,#f9720a)!important;box-shadow:none!important;
}
html body #infoPanel span.statusPill.ready,
html body #infoPanel span.paymentBadge.paid,
html body #infoPanel span.paymentBadge.method,
html body #detail span.statusBadge.ready,
html body #detail span.badge.statusBadge.ready,
html body #detail span.paidBadge.paid,
html body #detail span.paidBadge.method,
html body .summary span.paidBadge.paid[data-ui-owned],
html body .summary span.paidBadge.method[data-ui-owned],
html body .managerOrderMeta span.paidBadge.paid[data-ui-owned],
html body .managerOrderMeta span.paidBadge.method[data-ui-owned]{
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:var(--ui-brand-green,#6aa72a)!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid var(--ui-brand-green,#6aa72a)!important;box-shadow:none!important;
}
/* Staff lifecycle authority: take is filled action-blue; current assignment is a blue outline control.
   Both use the stable service-action token and never tenant branding. */
html body button.statusAction[data-order-action="assembly-take"],
html body button.statusAction[data-order-action="courier-take"],
html body #detail button.statusAction[data-order-action="assembly-take"],
html body #detail button.statusAction[data-order-action="courier-take"]{
  background:var(--ui-action-blue,#2481cc)!important;background-color:var(--ui-action-blue,#2481cc)!important;background-image:none!important;
  color:var(--ui-action-blue-ink,#fff)!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid var(--ui-action-blue,#2481cc)!important;border-radius:999px!important;box-shadow:none!important;outline:0!important;
}
html body button.statusBadge.assignedStatusHold,
html body #detail button.statusBadge.assignedStatusHold{
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:var(--ui-brand-orange,#f9720a)!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid var(--ui-brand-orange,#f9720a)!important;border-radius:999px!important;box-shadow:none!important;outline:0!important;
  touch-action:manipulation;
}
html body button.statusPill.reviewStatusBtn,
html body button.statusPill.reviewStatusBtn.waiting,
html body button.statusPill.reviewStatusBtn.ready,
html body #infoPanel button.statusPill.reviewStatusBtn,
html body #infoPanel button.statusPill.reviewStatusBtn.waiting,
html body #infoPanel button.statusPill.reviewStatusBtn.ready{
  background:var(--ui-accent)!important;background-color:var(--ui-accent)!important;background-image:none!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  border:1px solid var(--ui-accent)!important;box-shadow:none!important;
}
html[data-native-theme="dark"] body #infoPanel button.statusPill.reviewStatusBtn,
html[data-native-theme="dark"] body #infoPanel button.statusPill.reviewStatusBtn.waiting,
html[data-native-theme="dark"] body #infoPanel button.statusPill.reviewStatusBtn.ready{
  border-color:#f8fafc!important;
}

/* Client order messenger: compact role controls under a borderless title row. */
.orderMessengerBox .orderMessengerHead{
  align-items:center!important;border-bottom:0!important;padding-bottom:3px!important;
}
.orderMessengerBox .orderMessengerClose.uiCloseControl{
  align-self:center!important;margin-top:0!important;transform:translateY(-2px)!important;
}
.orderMessengerBox .orderMessengerRoleTabsHost{
  padding:0 14px 7px!important;
}
.orderMessengerBox .orderMessengerRoleTabs{
  gap:8px!important;
}
.orderMessengerBox .orderMessengerRoleTabs button.uiChoiceControl{
  width:100%!important;height:32px!important;min-height:32px!important;max-height:32px!important;
  padding:3px 8px!important;border-radius:11px!important;
  font:800 12px/1 system-ui,-apple-system,"Segoe UI",sans-serif!important;
  box-shadow:none!important;
}
.orderMessengerBox .orderMessengerRoleName{
  margin-top:1px!important;font:800 12px/1.15 system-ui,-apple-system,"Segoe UI",sans-serif!important;
  color:var(--ui-muted)!important;
}
html[data-native-theme="dark"] .orderMessengerBox .orderMessengerRoleName{color:#cbd5e1!important;}
@media (max-width:390px){
  .orderMessengerBox .orderMessengerRoleTabs button.uiChoiceControl{height:30px!important;min-height:30px!important;max-height:30px!important;font-size:11.5px!important;}
  .orderMessengerBox .orderMessengerRoleName{font-size:11.5px!important;}
}

/* Cart quantity editing: rounded focus ring, never the rectangular WebView outline. */
#cartPanel .cartQtyInput.uiQuantityInput,
#cartPanel .cartQtyBox .cartQtyInput,
#cartPanel .cartLineControls.cartStepperInline .cartQtyInput{
  border-radius:999px!important;outline:0!important;
}
#cartPanel .cartQtyInput.uiQuantityInput:focus,
#cartPanel .cartQtyInput.uiQuantityInput:focus-visible,
#cartPanel .cartQtyBox .cartQtyInput:focus,
#cartPanel .cartQtyBox .cartQtyInput:focus-visible,
#cartPanel .cartLineControls.cartStepperInline .cartQtyInput:focus,
#cartPanel .cartLineControls.cartStepperInline .cartQtyInput:focus-visible{
  border-radius:999px!important;outline:0!important;
  border-color:transparent!important;box-shadow:0 0 0 2px var(--ui-accent) inset!important;
}

/* Three-dot totals is a text/glyph action only. No blue tile on focus/active. */
html body #cartPanel button.totalsToggle,
html body #cartPanel button.totalsToggle:hover,
html body #cartPanel button.totalsToggle:focus,
html body #cartPanel button.totalsToggle:focus-visible,
html body #cartPanel button.totalsToggle:active,
html body #infoPanel button.totalsToggle,
html body #infoPanel button.totalsToggle:hover,
html body #infoPanel button.totalsToggle:focus,
html body #infoPanel button.totalsToggle:focus-visible,
html body #infoPanel button.totalsToggle:active{
  -webkit-appearance:none!important;appearance:none!important;
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  border:0!important;border-radius:0!important;outline:0!important;box-shadow:none!important;
  -webkit-tap-highlight-color:transparent!important;
}
html[data-native-theme="dark"] body #cartPanel button.totalsToggle,
html[data-native-theme="dark"] body #infoPanel button.totalsToggle{
  color:#f8fafc!important;-webkit-text-fill-color:#f8fafc!important;
}

/* Checkout editors: the sheet title is authoritative. Inner editors are not
   secondary cards and therefore cannot introduce a light/different surface. */
#receiveEditor > label:first-child,#paymentEditor > label:first-child{display:none!important;}
html[data-native-theme="dark"] body #checkoutEditorOverlay .checkoutEditorSheet,
html[data-native-theme="dark"] body #checkoutEditorOverlay .checkoutEditor{
  background:#0f172a!important;background-color:#0f172a!important;background-image:none!important;
  color:#f8fafc!important;box-shadow:none!important;
}
html[data-native-theme="dark"] body #checkoutEditorOverlay .checkoutEditor{
  border:0!important;border-radius:0!important;
}
html[data-native-theme="dark"] body #checkoutEditorOverlay .checkoutEditorHead{
  background:#0f172a!important;background-color:#0f172a!important;
}

/* 2.0.287 semantic passive states: include the existing ownership/class
   attributes in selector specificity so historical :not(...) page rules can
   never restore muted brown/green text or remove the outline. Buttons are
   intentionally excluded: clickable status actions use the blue action rules. */
html body span.statusPill.waiting[class][data-ui-owned],
html body span.statusBadge.waiting[class][data-ui-owned],
html body span.badge.statusBadge.waiting[class][data-ui-owned],
html body span.paymentBadge.waiting[class][data-ui-owned],
html body span.paidBadge.waiting[class][data-ui-owned]{
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:var(--ui-brand-orange,#f9720a)!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid var(--ui-brand-orange,#f9720a)!important;box-shadow:none!important;
}
html body span.statusPill.ready[class][data-ui-owned],
html body span.statusBadge.ready[class][data-ui-owned],
html body span.badge.statusBadge.ready[class][data-ui-owned],
html body span.paymentBadge.paid[class][data-ui-owned],
html body span.paidBadge.paid[class][data-ui-owned],
html body span.paymentBadge.method[class][data-ui-owned],
html body span.paidBadge.method[class][data-ui-owned]{
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:var(--ui-brand-green,#6aa72a)!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid var(--ui-brand-green,#6aa72a)!important;box-shadow:none!important;
}

/* 2.0.288 — interaction/cascade authority. Device acceptance showed that
   generic button/page rules can still outrank component intent. Keep these
   selectors deliberately explicit and loaded last. */

/* Active section/tab is always the brand accent, never an outline-only state. */
html body .clientOrderTabs button.activeTab,
html body .staffOrderTabs button.activeTab,
html body .adminTabs button.activeTab,
html body .workSections button.active,
html body .assemblyPaneTabs button.active{
  background:var(--ui-accent,#0a93d5)!important;
  background-color:var(--ui-accent,#0a93d5)!important;
  background-image:none!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  border-color:var(--ui-accent,#0a93d5)!important;
  box-shadow:none!important;
}

/* Manager order/client list cards are cards, not generic primary buttons. */
html body button.managerOrderCard.standardOrderCard,
html body button.managerClientCard,
html body button.managerClientOrderCard{
  width:100%!important;text-align:left!important;
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  color:inherit!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid var(--ui-border,#94a3b8)!important;border-radius:16px!important;
  box-shadow:none!important;
}
html[data-native-theme="dark"] body button.managerOrderCard.standardOrderCard,
html[data-native-theme="dark"] body button.managerClientCard,
html[data-native-theme="dark"] body button.managerClientOrderCard{
  background:#0f172a!important;background-color:#0f172a!important;
  color:#f8fafc!important;-webkit-text-fill-color:#f8fafc!important;
  border-color:#64748b!important;
}
html body button.managerOrderCard.standardOrderCard:hover,
html body button.managerOrderCard.standardOrderCard:focus-visible,
html body button.managerClientCard:hover,
html body button.managerClientCard:focus-visible{
  background:transparent!important;background-color:transparent!important;
  border-color:var(--ui-accent,#0a93d5)!important;box-shadow:none!important;outline:0!important;
}
.managerClientCards{display:grid;gap:10px;margin-top:10px;}
.managerClientCard{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px!important;min-height:74px!important;}
.managerClientCardPrimary{display:grid;gap:4px;min-width:0;}
.managerClientCardPrimary b{font-size:15px;}
.managerClientCardPrimary span{font-size:14px;color:var(--ui-muted,#64748b);overflow-wrap:anywhere;}
.managerClientCardStats{display:flex;gap:14px;align-items:center;}
.managerClientCardStats>span{display:grid;gap:2px;text-align:right;min-width:58px;}
.managerClientCardStats small{font-size:11px;color:var(--ui-muted,#64748b);}
.managerClientCardStats b{font-size:14px;white-space:nowrap;}
html[data-native-theme="dark"] .managerClientCardPrimary span,
html[data-native-theme="dark"] .managerClientCardStats small{color:#cbd5e1!important;}
@media(max-width:420px){.managerClientCard{grid-template-columns:1fr auto!important;padding:11px 12px!important}.managerClientCardStats{gap:10px}.managerClientCardStats>span{min-width:50px}}

/* Messenger long-press actions live beside the bubble: icon-only, transparent.
   Reply is a left swipe and therefore never consumes action-menu space. */
.orderMessengerBubble{position:relative;transition:transform .12s ease;will-change:transform;}
.orderMessengerInlineActions{position:absolute;z-index:8;top:50%;right:calc(100% + 7px);transform:translateY(-50%);display:flex;gap:5px;align-items:center;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;}
.orderMessengerMessage.mine .orderMessengerInlineActions{right:calc(100% + 7px);left:auto;}
.orderMessengerMessage.theirs .orderMessengerInlineActions{left:calc(100% + 7px);right:auto;}
.orderMessengerInlineAction{
  width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;padding:6px!important;
  display:grid!important;place-items:center!important;border-radius:50%!important;
  background:transparent!important;background-color:transparent!important;background-image:none!important;
  border:1px solid #94a3b8!important;box-shadow:none!important;outline:0!important;
  color:#f8fafc!important;-webkit-text-fill-color:currentColor!important;
}
.orderMessengerInlineAction svg{width:19px;height:19px;display:block;fill:currentColor;pointer-events:none;}
.orderMessengerInlineAction.edit{color:var(--ui-accent,#0a93d5)!important;border-color:var(--ui-accent,#0a93d5)!important;}
.orderMessengerInlineAction.danger{color:#ef4444!important;border-color:#ef4444!important;}
.orderMessengerInlineAction:hover,.orderMessengerInlineAction:focus-visible,.orderMessengerInlineAction:active{background:transparent!important;background-color:transparent!important;box-shadow:none!important;outline:0!important;}
.orderMessengerMessage.replySwipeActive::before{content:"↩";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:900;color:var(--ui-accent,#0a93d5);opacity:.95;pointer-events:none;}
.orderMessengerMessage{position:relative;}
/* Historical floating sheet must never reappear visually if a stale DOM node survives. */
html body .orderMessengerContextMenu{background:transparent!important;background-color:transparent!important;border:0!important;box-shadow:none!important;}
html body .orderMessengerContextAction{background:transparent!important;background-color:transparent!important;box-shadow:none!important;}

/* Catalog/order product details: one promo language everywhere. */
.productDetailPriceRow,.staffProductDetailPriceRow{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;}
.productDetailOldPrice,.staffProductDetailPriceRow s{color:#94a3b8;text-decoration-thickness:2px;font-weight:700;}
.productDetailPromoBadge,.staffProductDetailPriceRow>span{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border-radius:999px;background:#ef4444;color:#fff;font-weight:900;font-size:12px;}

/* Staff/manager/TSD-order thumbnail product preview. */
.staffProductDetailTrigger{cursor:pointer;}
.staffProductDetailOverlay{position:fixed;inset:0;z-index:10070;display:grid;place-items:center;padding:16px;background:rgba(15,23,42,.54);backdrop-filter:blur(2px);}
.staffProductDetailSheet{position:relative;width:min(520px,calc(100vw - 24px));max-height:min(760px,calc(100vh - 28px));overflow:auto;padding:24px;border-radius:24px;background:#fff;color:#0f172a;box-shadow:0 18px 55px rgba(15,23,42,.35);}
.staffProductDetailClose{position:absolute;right:14px;top:12px;z-index:2;}
.staffProductDetailImage{height:min(48vh,390px);display:grid;place-items:center;border:1px solid #e2e8f0;border-radius:22px;background:#fff;overflow:hidden;margin:22px 0 16px;}
.staffProductDetailImage img{width:100%;height:100%;object-fit:contain;}
.staffProductDetailTrail{color:var(--ui-accent,#0a93d5);font-weight:800;font-size:13px;margin-bottom:8px;}
.staffProductDetailInfo h2{margin:0 0 12px;font-size:25px;}
.staffProductDetailPriceRow{font-size:21px;font-weight:900;}
.staffProductDetailInfo p{white-space:pre-wrap;color:#475569;line-height:1.45;}
html[data-native-theme="dark"] .staffProductDetailSheet{background:#0f172a;color:#f8fafc;border:1px solid #475569;}
html[data-native-theme="dark"] .staffProductDetailInfo p{color:#cbd5e1;}
/* Dark-mode active-tab authority must out-rank the historical :not([data-ui-owned])
   outline selectors, not merely appear later in the file. */
html[data-native-theme="dark"] body .clientOrderTabs.clientOrderTabs button.activeTab.activeTab,
html[data-native-theme="dark"] body .staffOrderTabs.staffOrderTabs button.activeTab.activeTab,
html[data-native-theme="dark"] body .adminTabs.adminTabs button.activeTab.activeTab,
html[data-native-theme="dark"] body .workSections.workSections button.active.active,
html[data-native-theme="dark"] body .assemblyPaneTabs.assemblyPaneTabs button.active.active{
  background:var(--ui-accent,#0a93d5)!important;background-color:var(--ui-accent,#0a93d5)!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  border-color:var(--ui-accent,#0a93d5)!important;box-shadow:none!important;
}


/* 2.0.289 — favorites/category state, flat tabs and product-preview parity. */
/* Messenger actions are crisp outline glyphs, not tiny filled silhouettes. */
.orderMessengerInlineAction svg{width:22px!important;height:22px!important;fill:none!important;stroke:currentColor!important;stroke-width:2.2!important;stroke-linecap:round!important;stroke-linejoin:round!important;}

/* Active/history controls are deliberately flat in both themes.  Explicitly
   cancel native/default shadows and transforms that looked like 3D buttons. */
html body .clientOrderTabs button,
html body .staffOrderTabs button,
html body .adminTabs button{
  -webkit-appearance:none!important;appearance:none!important;
  background-image:none!important;box-shadow:none!important;filter:none!important;
  transform:none!important;text-shadow:none!important;
  border-radius:14px!important;min-height:40px!important;padding:8px 16px!important;
}
html body .clientOrderTabs button:not(.activeTab),
html body .staffOrderTabs button:not(.activeTab),
html body .adminTabs button:not(.activeTab){
  background:transparent!important;background-color:transparent!important;
  color:var(--ui-text,#0f172a)!important;-webkit-text-fill-color:currentColor!important;
  border:1px solid var(--ui-border,#94a3b8)!important;
}
html body .clientOrderTabs button.activeTab,
html body .staffOrderTabs button.activeTab,
html body .adminTabs button.activeTab{
  background:var(--ui-accent,#0a93d5)!important;background-color:var(--ui-accent,#0a93d5)!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;
  border:1px solid var(--ui-accent,#0a93d5)!important;box-shadow:none!important;transform:none!important;
}
html[data-native-theme="dark"] body .clientOrderTabs button:not(.activeTab),
html[data-native-theme="dark"] body .staffOrderTabs button:not(.activeTab),
html[data-native-theme="dark"] body .adminTabs button:not(.activeTab){
  color:#f8fafc!important;-webkit-text-fill-color:#f8fafc!important;border-color:#94a3b8!important;
}
html body .clientOrderTabs button:hover,html body .clientOrderTabs button:focus,html body .clientOrderTabs button:active,
html body .staffOrderTabs button:hover,html body .staffOrderTabs button:focus,html body .staffOrderTabs button:active,
html body .adminTabs button:hover,html body .adminTabs button:focus,html body .adminTabs button:active{box-shadow:none!important;transform:none!important;filter:none!important;}

/* One pricing layout for catalog/cart/order previews. Current price is compact,
   promo badge sits opposite it, old price is always on the following line. */
.uiProductDetailPricing{display:grid!important;gap:4px!important;margin-top:10px!important;}
.uiProductDetailCurrentRow{display:flex!important;align-items:baseline!important;justify-content:space-between!important;gap:12px!important;min-width:0!important;}
html body .productDetailPrice.uiProductDetailCurrentPrice,
html body .uiProductDetailCurrentPrice{font-size:20px!important;line-height:1.15!important;font-weight:900!important;margin:0!important;min-width:0!important;}
.uiProductDetailOldPrice{display:block!important;width:max-content!important;max-width:100%!important;color:#94a3b8!important;-webkit-text-fill-color:#94a3b8!important;font-size:15px!important;line-height:1.2!important;font-weight:700!important;text-decoration-thickness:2px!important;margin:0!important;}
.uiProductDetailPromoBadge{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;min-height:25px!important;padding:3px 9px!important;border-radius:999px!important;background:#ef4444!important;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:12px!important;font-weight:900!important;white-space:nowrap!important;}

/* Staff product sheet uses the same contained image/card geometry as the client
   product sheet instead of a fixed 48vh canvas that could magnify/crop media. */
.staffProductDetailSheet{width:min(calc(100vw - 24px),560px)!important;max-height:calc(100dvh - 28px)!important;padding:16px!important;border-radius:24px!important;}
.staffProductDetailImage{height:auto!important;min-height:0!important;max-height:none!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;padding:10px!important;margin:22px 0 16px!important;background:#fff!important;border-radius:18px!important;}
.staffProductDetailImage img{display:block!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:min(46dvh,420px)!important;object-fit:contain!important;object-position:center center!important;margin:0 auto!important;background:#fff!important;}
.staffProductDetailInfo h2{margin:0 0 8px!important;font-size:24px!important;}
.staffProductDetailTrail{font-size:13px!important;line-height:18px!important;font-weight:800!important;}
html[data-native-theme="dark"] .staffProductDetailSheet{background:#0b1b31!important;color:#f8fafc!important;border-color:#233a58!important;}

/* TSD preview follows the same price hierarchy when the TSD stylesheet provides
   its own sheet geometry. */
.tsdProductDetailPricing{margin-top:8px!important;}



/* 2.0.347: moving-lens headers own focus paint; themed bottom icons keep one geometry. */
#infoPanel .infoContextHeaderActions button:focus-visible,#infoPanel .profileHeaderActions a:focus-visible,#infoPanel .profileHeaderActions button:focus-visible,
.topbar .orderScopeHeaderActions button:focus-visible,.topbar .supportScopeHeaderActions button:focus-visible,
.bottomNav button:focus-visible{outline:0!important;outline-offset:0!important;box-shadow:none!important;border-color:transparent!important;}
.bottomNav .navThemeOwned{display:grid!important;place-items:center!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;line-height:1!important;overflow:visible!important;}
.bottomNav .navThemeIconImage,.bottomNav .navThemeIconSvg{display:block!important;width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;object-fit:contain!important;object-position:center!important;color:currentColor!important;}
.bottomNav .navThemeIconSvg{fill:none!important;stroke:currentColor!important;stroke-width:1.9!important;stroke-linecap:round!important;stroke-linejoin:round!important;}
.bottomNav .navLabel{display:block!important;min-width:0!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
