/* Shared user text preference rules. Size-only values live in the selected preference sheet. */
body,
 .card,
 .btn,
 input,
 select,
 textarea,
 .input,
 .muted,
 .order-info-tile,
 .command-status-panel,
 .command-progress-panel,
 .command-money-panel,
 .command-client-panel,
 .previous-order-compact-row,
 .history-table,
 .status-action {
 font-size: var(--goic-pref-body-font-size);
}

.header-title-block h1 {
 font-size: var(--goic-pref-header-title-block-h1-font-size) !important;
}

.card h2,
 .card-toolbar h3,
 .section-head h3 {
 font-size: var(--goic-pref-card-h2-font-size);
}

.card h3,
 .command-panel-kicker {
 font-size: var(--goic-pref-card-h3-font-size);
}

.small,
 .tiny-text,
 .card small,
 .order-info-tile small,
 .account-toggle-row small,
 .account-size-head small {
 font-size: var(--goic-pref-small-font-size);
}

.order-compact-id {
 font-size: var(--goic-pref-order-compact-id-font-size);
 line-height: 1;
}

.order-compact-client strong {
 font-size: var(--goic-pref-order-compact-client-strong-font-size);
 line-height: 1.05;
}

.order-compact-client span {
 font-size: var(--goic-pref-order-compact-client-span-font-size);
 line-height: 1.08;
}

.order-compact-status {
 font-size: var(--goic-pref-order-compact-status-font-size);
}

.order-compact-total {
 font-size: var(--goic-pref-order-compact-total-font-size);
}

.order-extended-title strong {
 font-size: var(--goic-pref-order-extended-title-strong-font-size);
 line-height: 1;
}

.order-extended-client strong {
 font-size: var(--goic-pref-order-extended-client-strong-font-size);
 line-height: 1.05;
}

.order-extended-title span,
 .order-extended-meta span {
 font-size: var(--goic-pref-order-extended-title-span-font-size);
}

.order-extended-client span {
 font-size: var(--goic-pref-order-extended-client-span-font-size);
 line-height: 1.08;
}

.order-extended-status,
 .order-extended-total {
 font-size: var(--goic-pref-order-extended-status-font-size);
}

.header-title-block,
 .header-title-block h1,
 .order-compact-client,
 .order-compact-client strong,
 .order-compact-client span,
 .order-compact-status,
 .order-compact-total,
 .order-extended-title,
 .order-extended-title strong,
 .order-extended-client,
 .order-extended-client strong,
 .order-extended-client span,
 .order-extended-status,
 .order-extended-total,
 .quick-action-btn span,
 .dashboard-metric-card .muted,
 .account-size-option span {
 min-width: 0;
 overflow: hidden;
 text-overflow: ellipsis;
}

.command-status-panel strong,
 .command-money-panel strong,
 .command-client-panel strong,
 .order-info-tile strong,
 .products-save-confirm-copy strong,
 .products-save-confirm-copy p {
 overflow-wrap: anywhere;
 word-break: normal;
}

.qr-status-choice-main,
 .qr-status-choice-main strong,
 .qr-status-choice-main small {
 min-width: 0;
}

.qr-status-choice-main strong,
 .qr-status-choice-main small {
 display: -webkit-box;
 -webkit-box-orient: vertical;
 overflow: hidden;
}

.qr-status-choice-main strong {
 -webkit-line-clamp: 2;
}

.qr-status-choice-main small {
 -webkit-line-clamp: 2;
}

.order-hero-card-test-2 .order-number-line {
 display: grid !important;
 grid-template-columns: auto auto minmax(0, 1fr) !important;
 align-items: center !important;
 justify-content: stretch !important;
 flex-wrap: initial !important;
 gap: var(--goic-pref-order-hero-card-test-2-order-number-line-gap) !important;
 width: 100% !important;
}

.order-hero-card-test-2 .order-number-badge,
 .order-hero-card-test-2 .order-items-count-badge,
 .order-hero-card-test-2 .order-mode-pill {
 white-space: nowrap !important;
}

.order-hero-card-test-2 .order-number-badge {
 min-height: var(--order-hero-chip-min-height) !important;
 padding: var(--order-hero-chip-padding) !important;
 font-size: var(--order-hero-chip-font-size) !important;
 letter-spacing: 0 !important;
}

.order-hero-card-test-2 .order-items-count-badge {
 min-height: var(--goic-pref-order-hero-card-test-2-order-items-count-badge-min-height) !important;
 padding: var(--goic-pref-order-hero-card-test-2-order-items-count-badge-padding) !important;
 font-size: var(--goic-pref-order-hero-card-test-2-order-items-count-badge-font-size) !important;
}

.order-hero-card-test-2 .order-mode-pill {
 justify-self: end !important;
 min-width: 0 !important;
 width: auto !important;
 max-width: 100% !important;
 min-height: var(--goic-pref-order-hero-card-test-2-order-mode-pill-min-height) !important;
 padding: var(--goic-pref-order-hero-card-test-2-order-mode-pill-padding) !important;
 overflow: hidden !important;
 text-overflow: ellipsis !important;
 font-size: var(--goic-pref-order-hero-card-test-2-order-mode-pill-font-size) !important;
}

/* UI-TEMPLATE:PREFERENCE-END */

/* One readability contract for every CRM page. The selected size is not a
 * mobile-only setting. Component colours, icons and visibility stay local. */
/* Component display:flex must never override the native HTML hidden state. */
body [hidden] {
 display: none !important;
}

body {
 --goic-ui-text: var(--goic-pref-body-font-size, 16px);
 --goic-ui-heading: var(--goic-pref-card-h2-font-size, 20px);
 --goic-ui-section: var(--goic-pref-card-h3-font-size, 18px);
 --goic-ui-small: max(12px, var(--goic-pref-small-font-size, 13px));
 --goic-ui-field: max(16px, var(--goic-ui-text));
 --goic-ui-control-height: 44px;
 --goic-ui-control-radius: 12px;
 --goic-toggle-width: 52px;
 --goic-toggle-height: 30px;
 --goic-toggle-knob: 22px;
 --goic-toggle-travel: 22px;
 --goic-toggle-mid: 11px;
}

/* Simple mode is always LARGE, even if Small was chosen before entering it.
 * Existing oversized order numbers and operational action icons are retained. */
body.user-simple-mode {
 --goic-simple-text-scale: 1.1875;
 --goic-pref-body-font-size: 24px;
 --goic-pref-header-title-block-h1-font-size: 30px;
 --goic-pref-card-h2-font-size: 30px;
 --goic-pref-card-h3-font-size: 26px;
 --goic-pref-small-font-size: 20px;
 --goic-ui-control-height: 56px;
 --goic-toggle-width: 60px;
 --goic-toggle-height: 34px;
 --goic-toggle-knob: 26px;
 --goic-toggle-travel: 26px;
 --goic-toggle-mid: 13px;
 --order-hero-chip-font-size: 22px;
 --order-hero-chip-min-height: 46px;
 --goic-pref-order-hero-card-test-2-order-items-count-badge-font-size: 22px;
 --goic-pref-order-hero-card-test-2-order-items-count-badge-min-height: 46px;
 --goic-pref-order-hero-card-test-2-order-mode-pill-font-size: 20px;
 --goic-pref-order-hero-card-test-2-order-mode-pill-min-height: 44px;
}

/* No forced display, height, background or positioning: hidden actions,
 * status colours, loading states and compact icon-only controls keep working. */
body .main .btn:not(.icon-btn):not(.btn-icon),
body .ui-modal .btn:not(.icon-btn):not(.btn-icon),
body .notification-menu .btn:not(.icon-btn):not(.btn-icon) {
 box-sizing: border-box;
 min-width: 0;
 max-width: 100%;
 min-height: var(--goic-ui-control-height);
 border-radius: var(--goic-ui-control-radius);
 font-family: inherit;
 font-size: var(--goic-ui-text) !important;
 line-height: 1.25 !important;
 text-align: center;
 white-space: normal;
 overflow-wrap: anywhere;
}

body .main :is(.field, .admin-field, .admin-field-grid, .company-settings-fields, .user-form-grid) label,
body .main :is(.admin-field, .admin-field-grid > label, .company-settings-fields > label) > span,
body .main :is(.orders-filter-grid, .order-edit-section, .product-edit-fields, .carpet-edit-fields, .fixed-edit-fields) label {
 font-size: var(--goic-ui-text) !important;
 line-height: 1.35;
}

body .main :is(input, select, textarea):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="image"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
body .ui-modal :is(input, select, textarea):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="image"]):not([type="button"]):not([type="submit"]):not([type="reset"]) {
 box-sizing: border-box;
 min-width: 0;
 max-width: 100%;
 min-height: var(--goic-ui-control-height);
 font-family: inherit;
 font-size: var(--goic-ui-field) !important;
 line-height: 1.35;
}

/* Auxiliary copy has one legible floor. It must not become 8-10px simply
 * because a later page bundle defines its own card or footer. */
/* Legacy editors force both height and min-height to 30-42px !important.
 * A larger font alone would clip numeric measurements. Only content controls
 * and dialogs participate: header search, hidden/native switches and buttons
 * remain untouched, and textareas keep their own larger editorial heights. */
body .main .page :is(input, select):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="image"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
body .ui-modal :is(input, select):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="image"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
body.products-measure-modal-open .order-products-card.is-editing :is(input, select):not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="image"]):not([type="button"]):not([type="submit"]):not([type="reset"]) {
 min-height: var(--goic-ui-control-height) !important;
 font-size: var(--goic-ui-field) !important;
 line-height: 1.35 !important;
}

body .main :is(.small, .tiny-text, small),
body .main .admin-template-hero-copy > p:not(.eyebrow),
body .main :is(.admin-template-section-head, .company-message-section-head) p,
body .main :is(.admin-template-section-head, .company-message-section-head) > div > span,
body .main .admin-template-metrics > div > span,
body .main :is(.admin-template-tab-copy, .admin-template-hero-context-copy) > span,
body .main :is(.account-permission-row, .account-passkey-empty, .account-force-password-alert) small,
body .legal-global-links {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.4;
}

/* Dashboard and chart captions previously used independent 8-11px scales.
 * Scale the text only, not chart coordinates, live telemetry or counters. */
body .main :is(.dashboard-metric-context, .dashboard-orders-day-kicker, .dashboard-jackpot-tier em, .dashboard-orders-day-values span, .dashboard-month-switcher span, .dashboard-recent-orders-title p),
body .main .drying-room-card :is(.drying-room-eyebrow, .drying-room-sync, .drying-room-sync time, .drying-room-sensor-note, .drying-room-mode-timeline figcaption, .drying-room-mode-current, .drying-room-climate-axis, .drying-room-climate-legend, .drying-room-mode-axis, .drying-room-mode-legend, .drying-room-mode-empty, .drying-room-lot span, .drying-room-analysis-detail, .drying-room-energy-window, .drying-room-energy-stale-note, .drying-room-device-note, .drying-room-footer, .drying-room-refresh-note, .drying-room-source-details summary, .drying-room-chart-times, .drying-room-history-table, .drying-room-sensor-label),
body .main .statistics-page :is(.statistics-section-kicker, .statistics-metric-chart-title span, .statistics-metric-chart-title p, .statistics-metric-chart-summary, .statistics-chart-y-label, .statistics-chart-x-label, .statistics-time-savings-copy > span, .statistics-time-savings-empty strong, .statistics-time-savings-events article > b, .statistics-chart-selected),
body .main .production-workflow-page :is(.production-workflow-summary span, .production-workflow-selector-button > b, .production-workflow-step-branches em) {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.35;
}

body .main :is(.dashboard-month-switcher a, .notification-read-link, .orders-active-filter-clear, .orders-active-filter-chip, .orders-quick-filter-chip, .orders-toggle-btn, .route-stop-action) {
 min-height: var(--goic-ui-control-height);
 font-size: var(--goic-ui-small) !important;
 line-height: 1.3;
}

/* Financial metadata is operational text, not decorative microcopy. */
body .main :is(.payments-package-scope, .payments-package-grid em, .payments-accounting-checklist li, .payments-package-note p, .payments-kicker, .payments-anchor-nav a, .payments-hero-total > span, .payments-scope label > span, .payments-cash-actions label > span, .payments-z-reports label > span, .payments-balance-card em, .payments-subset-badge, .payments-section-head > strong, .payments-chart-summary > span, .payments-vat-card > header em, .payments-vat-card dt, .payments-vat-card > p, .payments-legal-note, .payments-disabled-feature p, .payments-cash-metrics span, .payments-cash-actions summary, .payments-z-reports summary, .payments-check, .payments-z-reports > header > span, .payments-z-list b, .payments-z-list em, .payments-z-analysis-status strong, .payments-filters label > span, .payments-event, .payments-source, .payments-month-close > div span) {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.35;
}

body .main :is(.payments-package-grid, .payments-accounting-checklist header) strong,
body .main :is(.payments-vat-card dd, .payments-chart-summary b) {
 font-size: var(--goic-ui-text) !important;
 line-height: 1.3;
}

body .main :is(.payments-table, .payments-cash-ledger table) td {
 font-size: var(--goic-ui-text);
 line-height: 1.35;
}

body .main :is(.payments-table, .payments-cash-ledger table) th {
 font-size: var(--goic-ui-small);
 line-height: 1.35;
}

body .main .payments-anchor-nav a {
 min-height: var(--goic-ui-control-height);
 align-content: center;
}

/* Inbox and conversation keep the familiar WhatsApp layout and receipt
 * icons, while their text follows the same user preference as other pages. */
body .main .whatsapp-inbox-title strong,
body .main .whatsapp-inbox-preview,
body .main .message-queue-history-title-line strong {
 font-size: var(--goic-ui-text) !important;
 line-height: 1.3;
}

body .main :is(.whatsapp-inbox-title time, .whatsapp-inbox-delivery, .whatsapp-inbox-unread-count, .message-queue-item-meta, .message-queue-item-time, .message-queue-history-status, .message-queue-history-copy > p, .message-queue-history-meta),
body .whatsapp-conversation-modal :is(.whatsapp-conversation-meta, .whatsapp-conversation-day, .whatsapp-conversation-anchor-preview > p, .whatsapp-conversation-read-error, .whatsapp-conversation-quote strong, .whatsapp-conversation-quote p, .whatsapp-conversation-footer p) {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.4;
}

body .whatsapp-conversation-modal :is(.whatsapp-conversation-older button, .whatsapp-conversation-read-button, .whatsapp-conversation-media, .whatsapp-conversation-reply) {
 min-height: var(--goic-ui-control-height);
 font-size: var(--goic-ui-text);
 line-height: 1.3;
 white-space: normal;
}

body .main :is(.payments-package-grid em, .payments-balance-card em) {
 white-space: normal;
 overflow-wrap: anywhere;
}

body .main :is(.history-note-label, .history-user-inline, .history-product-change-action, .history-device-details summary, .status-admin-usage-line, .status-admin-row em, .new-order-estimate-panel span, .new-order-estimate-breakdown > div span, .new-order-mode span, .command-estimate-breakdown > div span, .command-panel-head span, .order-schedule-chip, .order-schedule-chip-desktop, .order-compact-extra strong, .order-compact-extra span, .order-extended-meta-head span, .order-list-progress-line span, .order-list-progress-line strong, .product-chip, .status-panel-current span, .order-payment-badge, .order-day-mobile-separator, .route-stop-time-stack small, .route-stop-time-stack b, .route-stop-schedule-chip, .route-candidate-schedule-chip, .route-stop-note, .route-candidate-note, .route-proposal-active-badge, .route-proposal-live-badge, .route-proposal-incident-chip, .route-candidate-assigned, .driver-stop-result-badge, .driver-live-summary span, .routes-card-group-head > span, .routes-card-group-head p, .route-live-deviations span, .route-proposal-progress-count span, .catalog-settings-metrics span, .catalog-settings-kicker, .catalog-active-badge, .catalog-editor-card-footer > span, .catalog-archive summary b, .catalog-value-input em) {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.35;
}

body .main :is(.admin-template-tab-copy, .admin-template-hero-context-copy) > strong,
body .main :is(.admin-template-toggle-copy, .account-toggle-row, .account-size-head) > strong,
body .main :is(.company-settings-save-guide, .third-party-integration__tabs) :is(strong, button),
body .main .admin-template-metrics strong.is-text {
 font-size: var(--goic-ui-text) !important;
 line-height: 1.3;
}

/* Real settings markup uses b/em and nested metric labels, not only strong. */
body .main :is(.admin-template-hero-context-label, .company-hub-save-scope, .company-settings-save-guide > em),
body .main .admin-template-hero-context-link > span:not([aria-hidden]),
body .main .admin-template-tab > em {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.3;
}

body .main .admin-template-hero-context-link {
 min-height: var(--goic-ui-control-height);
 padding-block: 8px;
}

body .main .admin-template-tab > span:nth-child(2) b,
body .main .admin-setting-toggle-copy b,
body .main .admin-editor-head > div > strong {
 font-size: var(--goic-ui-text) !important;
 line-height: 1.3;
 white-space: normal;
 overflow-wrap: anywhere;
}

body .main .admin-template-tab > span:nth-child(2) small {
 white-space: normal;
 overflow-wrap: anywhere;
}

body .main .admin-template-tab > em {
 min-width: calc(var(--goic-ui-small) + 8px);
 min-height: calc(var(--goic-ui-small) + 8px);
}

/* Legal pages share the same template scale. Names/statuses/identity labels
 * are actual information, unlike decorative icons or numeric hero totals. */
body .main .admin-template-hero-stat > span {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.4;
}

body :is(.legal-center-page, .legal-my-page, .legal-document-page, .legal-acceptance-page) :is(p, label, small, td, th, dt, dd, summary, code, em),
body :is(.legal-center-page, .legal-my-page, .legal-document-page, .legal-acceptance-page) :is(.legal-form-unavailable span, .legal-readiness-badge, .legal-state-pill, .legal-document-admin-copy > span, .legal-document-admin-state span, .legal-blueprint-preflight li > span, .legal-consent-principles li > span, .legal-enforcement-card form label span, .legal-enforcement-card__locked, .legal-provider-summary__copy > span, .legal-provider-summary__state, .legal-decision-card__state, .legal-decision-card__facts span, .legal-standard-onboarding__eyebrow, .legal-standard-onboarding__state, .legal-standard-onboarding__identity span, .legal-event-pill, .legal-my-document-state, .legal-blueprint-blocked, .legal-blueprint-body):not([aria-hidden]) {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.5;
 overflow-wrap: anywhere;
}

body :is(.legal-center-page, .legal-my-page, .legal-document-page, .legal-acceptance-page) :is(strong, b):not(.admin-template-metrics strong) {
 font-size: var(--goic-ui-text) !important;
 line-height: 1.35;
 overflow-wrap: anywhere;
}

body :is(.legal-center-page, .legal-my-page, .legal-document-page, .legal-acceptance-page) h3 {
 font-size: var(--goic-ui-section) !important;
 line-height: 1.25;
 overflow-wrap: anywhere;
}

body .legal-standard-onboarding__documents a {
 min-height: var(--goic-ui-control-height);
 padding-block: 8px;
 font-size: var(--goic-ui-small) !important;
 line-height: 1.35;
 white-space: normal;
 overflow-wrap: anywhere;
}

body .main :is(.admin-template-section-head, .company-message-section-head) h3,
body .main .third-party-integrations__head strong {
 font-size: var(--goic-ui-section) !important;
 line-height: 1.2;
}

/* Do not shrink small controls below a touch target. Text-bearing buttons
 * may grow vertically instead of overflowing or truncating their action. */
body .main :is(.orders-pagination-arrow, .orders-pagination-page, .payments-pagination .btn),
body .ui-modal .ui-modal__close {
 min-width: 44px !important;
 min-height: 44px !important;
}

body .main :is(.orders-pagination-info, .orders-per-page-form, .payments-pagination) {
 font-size: var(--goic-ui-small);
}

body .main :is(.orders-pagination-info, .orders-per-page-form, .payments-pagination) :is(label, span, strong),
body .main .orders-pagination-page {
 font-size: inherit;
}

body .main :is(.admin-template-page, .account-settings-page, .company-settings-page, .routes-driver-page, .routes-office-page, .statistics-page, .message-queue-page, .production-workflow-page),
body .main :is(.admin-template-hero-copy, .admin-template-section-head, .admin-template-tab-copy, .admin-template-hero-context-copy, .field, .admin-field),
body .ui-modal :is(.ui-modal__heading, .ui-modal__body, .ui-order-edit__section > label) {
 min-width: 0;
 overflow-wrap: anywhere;
}

/* Keep horizontal scrolling inside an explicitly scrollable data table,
 * never on the full page. Do not change table semantics or hide columns. */
body .main :is(.table-wrap, .payments-table-wrap, .history-table-wrap) {
 min-width: 0;
 max-width: 100%;
 overflow-x: auto;
 overscroll-behavior-x: contain;
}

body .main :is(.btn-row, .page-actions, .orders-pagination-bar, .payments-pagination) {
 flex-wrap: wrap;
 min-width: 0;
}

/* Modal content must still scroll when enlarged text or a landscape phone
 * leaves little height. Only the dialog scrolls; overlay state is untouched. */
body .ui-modal__panel {
 min-height: 0;
}

body .ui-modal__header,
body .ui-modal__actions {
 flex-shrink: 0;
}

body .ui-modal__body {
 min-height: 0;
 overscroll-behavior: contain;
}

body .ui-modal :is(.ui-modal__title, .ui-modal__description, .ui-modal__eyebrow, .ui-modal__context-item, .ui-modal__context-item strong, .ui-modal__message-preview) {
 overflow-wrap: anywhere;
 white-space: normal;
}

/* Simple mode has a semantic text floor, including newly added subsections.
 * Keep decorative glyphs out of it; money and operational titles stay primary. */
body.user-simple-mode .main .page :is(p, label, small, summary, .eyebrow),
body.user-simple-mode .main .page label :is(span, small):not([aria-hidden]):not(.goic-icon),
body.user-simple-mode .order-products-card.is-editing :is(p, label, small, summary),
body.user-simple-mode .order-products-card.is-editing label :is(span, small):not([aria-hidden]):not(.goic-icon) {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.4;
}

body.user-simple-mode .main :is(.command-money-kicker, .command-money-terminal-status, .command-money-options > summary, .command-money-options-body > p, .simple-mode-next-status header > span, .new-order-item-total > span) {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.35;
}

body.user-simple-mode .main .new-order-mode strong,
body .main .products-total-row > :is(span, strong),
body.products-measure-modal-open .order-products-card.is-editing .products-total-row > :is(span, strong) {
 font-size: var(--goic-ui-text) !important;
 line-height: 1.3;
}

/* The measurement editor is portalled directly under BODY, outside .main
 * and .ui-modal. Match this real container rather than relying on ancestry. */
body[class*="mobile-text-size-"].products-measure-modal-open .order-products-card.is-editing :is(.product-name, .readonly-calc) {
 font-size: var(--goic-ui-text) !important;
 line-height: 1.3 !important;
 overflow-wrap: anywhere;
}

body[class*="mobile-text-size-"].products-measure-modal-open .order-products-card.is-editing .readonly-calc {
 min-width: 0;
 max-width: 100%;
 min-height: var(--goic-ui-control-height) !important;
}

body[class*="mobile-text-size-"].products-measure-modal-open .order-products-card.is-editing :is(.product-edit-fields, .carpet-edit-fields, .fixed-edit-fields) label {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.3 !important;
}

body[class*="mobile-text-size-"].products-measure-modal-open .order-products-card.is-editing .products-editor-footer .btn {
 min-height: var(--goic-ui-control-height) !important;
 font-size: var(--goic-ui-text) !important;
 line-height: 1.3 !important;
 white-space: normal !important;
}

body[class*="mobile-text-size-"].products-measure-modal-open .order-products-card.is-editing .products-section-title h3 {
 font-size: var(--goic-ui-section) !important;
 line-height: 1.2;
 white-space: normal;
}

body[class*="mobile-text-size-"].products-measure-modal-open .order-products-card.is-editing :is(.products-section-title > .muted, .product-inline-info, .product-dim-text, .order-adjustments-editor-head small, .order-adjustments-editor-count) {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.35;
}

/* Reuse the full notification component in Simple mode, never a second stub.
 * Only its menu copy/actions grow; the decorative bell badge remains compact. */
body.user-simple-mode .topbar .header-notifications:not([hidden]) {
 display: block !important;
}

body.user-simple-mode .header-notifications .notification-menu {
 width: min(460px, calc(100vw - 24px));
 max-width: calc(100vw - 24px);
 min-height: 0;
}

body.user-simple-mode .notification-menu .notification-head {
 flex-wrap: wrap;
}

body.user-simple-mode .notification-menu :is(.notification-head > strong, .notification-item strong) {
 font-size: var(--goic-ui-text) !important;
 line-height: 1.3;
 white-space: normal;
 overflow-wrap: anywhere;
}

body.user-simple-mode .notification-menu :is(.notification-head > span, .notification-item small, .notification-empty, .notification-dismiss-status, .notification-read-link) {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.4;
 white-space: normal;
 overflow-wrap: anywhere;
}

body.user-simple-mode .notification-menu .notification-head > span {
 min-width: 28px;
 min-height: 28px;
}

body.user-simple-mode .notification-menu .notification-dismiss {
 min-width: 56px;
 min-height: 56px;
 width: 56px;
 height: 56px;
}

body.user-simple-mode .notification-menu .notification-entry > .notification-item {
 padding-right: 66px;
}

body.user-simple-mode .notification-menu .notification-read-link {
 display: inline-flex;
 align-items: center;
 min-height: 56px;
}

@media (max-width: 760px) {
 body.user-simple-mode .topbar .header-notifications .notification-menu {
  position: fixed !important;
  top: calc(var(--topbar-height, 64px) + 8px) !important;
  left: 12px !important;
  right: 12px !important;
  width: auto !important;
  max-width: calc(100vw - 24px) !important;
  max-height: calc(100dvh - var(--topbar-height, 64px) - 24px - env(safe-area-inset-bottom, 0px)) !important;
 }
}

/* These operational dialogs are loaded by the order page after the head.
 * Match their existing specificity without changing their modal lifecycle. */
body[class*="mobile-text-size-"] .qr-status-suggestion-card .qr-status-suggestion-copy strong,
body[class*="mobile-text-size-"] .goic-product-tool-modal .product-tool-heading h2 {
 font-size: var(--goic-ui-heading) !important;
 line-height: 1.2;
}

body[class*="mobile-text-size-"] .qr-status-suggestion-card :is(.qr-status-suggestion-copy p, .qr-status-auto-row, .qr-status-auto-pill, .qr-status-current-flow span, .qr-status-next-label, .qr-status-choice-main small),
body[class*="mobile-text-size-"] .goic-product-tool-modal :is(.product-tool-eyebrow, .product-tool-context p, .product-tool-summary, .product-tool-divider),
body[class*="mobile-text-size-"] .goic-product-tool-modal :is(.product-tool-choice, .order-adjustment-option) small {
 font-size: var(--goic-ui-small) !important;
 line-height: 1.4;
}

body[class*="mobile-text-size-"] .qr-status-suggestion-card :is(.qr-status-current-flow strong, .qr-status-choice-main strong),
body[class*="mobile-text-size-"] .goic-product-tool-modal :is(.product-tool-context strong, .product-tool-rate, .product-new-picker-quantity-field > span),
body[class*="mobile-text-size-"] .goic-product-tool-modal :is(.product-tool-choice, .order-adjustment-option) strong,
body[class*="mobile-text-size-"].products-measure-modal-open .order-products-card.is-editing .goic-product-tool-modal .order-adjustment-group-title {
 font-size: var(--goic-ui-text) !important;
 line-height: 1.3;
}

body[class*="mobile-text-size-"] .goic-product-tool-modal .product-tool-footer .btn,
body[class*="mobile-text-size-"].products-measure-modal-open .order-products-card.is-editing .goic-product-tool-modal .product-new-picker-actions .btn {
 min-height: var(--goic-ui-control-height) !important;
 font-size: var(--goic-ui-text) !important;
}

body[class*="mobile-text-size-"].products-measure-modal-open .order-products-card.is-editing .goic-product-tool-modal .order-adjustments-search input,
body[class*="mobile-text-size-"].products-measure-modal-open .order-products-card.is-editing .goic-product-tool-modal .product-tool-stepper [data-new-quantity] {
 min-height: var(--goic-ui-control-height) !important;
 font-size: var(--goic-ui-field) !important;
}

body.user-simple-mode .goic-product-tool-modal .product-tool-stepper button {
 min-width: 48px;
 min-height: var(--goic-ui-control-height);
}

body.user-simple-mode .order-modal-skeleton__field,
body.user-simple-mode .order-modal-load-status {
 font-size: var(--goic-ui-small);
}

body .main :is(.btn, input, select, textarea),
body .ui-modal :is(.btn, input, select, textarea, .ui-modal__close) {
 scroll-margin-block: calc(var(--topbar-height, 76px) + 12px) 20px;
}

body .main :is(.btn, input, select, textarea):focus-visible,
body .ui-modal :is(.btn, input, select, textarea, .ui-modal__close):focus-visible {
 outline: 3px solid var(--brand, #ff7a00);
 outline-offset: 3px;
}

@media (max-width: 620px) {
 body .main :is(.admin-template-hero, .admin-template-section-head, .company-message-section-head) {
  min-width: 0;
 }

 body .main :is(.admin-template-hero-actions, .admin-template-section-actions, .page-actions, .btn-row) > .btn {
  flex: 1 1 auto;
 }

 body .main :is(.orders-pagination-bar, .payments-pagination) {
  gap: 10px;
 }

 body.user-simple-mode .main .order-hero-card-test-2 .order-number-line {
  grid-template-columns: auto minmax(0, 1fr) !important;
 }

 body.user-simple-mode .main .order-hero-card-test-2 .order-mode-pill {
  grid-column: 1 / -1;
  justify-self: start !important;
  white-space: normal !important;
 }

 body.user-simple-mode .ui-modal .ui-modal__actions,
 body.user-simple-mode .ui-modal .ui-order-edit__actions {
  grid-template-columns: minmax(0, 1fr) !important;
 }

 body.user-simple-mode .ui-modal :is(.ui-modal__actions, .ui-order-edit__actions) .btn {
  flex: 1 1 100%;
  width: 100% !important;
 }
}

@media (max-width: 820px) {
 /* The old 17px/19px rows clipped enlarged financial text. Three intrinsic
  * rows also leave the full customer name readable on a 320px screen. */
 body .main .payments-table tr {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto auto;
  gap: 6px 10px;
  padding: 10px;
 }

 body .main .payments-table td:nth-child(1) {
  grid-column: 1;
  grid-row: 1;
 }

 body .main .payments-table td:nth-child(2) {
  grid-column: 1 / -1;
  grid-row: 2;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 body .main .payments-table td:nth-child(2) :is(a, strong, small) {
  white-space: normal;
 }

 body .main .payments-table td:nth-child(3) {
  grid-column: 1;
  grid-row: 3;
 }

 body .main .payments-table td:nth-child(4) {
  grid-column: 2;
  grid-row: 3;
 }

 body .main .payments-table td.is-amount {
  grid-column: 2;
  grid-row: 1;
 }
}

/* Short landscape windows and zoomed desktop layouts need one scrollable
 * dialog, not a header plus footer that leave an unreachable 0px body. */
/* UI-TEMPLATE:SIMPLE-CONTACT-FLOW
 * A visible money card used a named area absent from Simple's old client/map
 * template. That created two implicit columns and reduced the client to 0px.
 * One explicit mobile column and normal DOM rows cannot create that track. */
@media (max-width: 760px) {
 body.user-simple-mode .main .order-command-board {
  min-width: 0;
  width: 100%;
  max-width: 100%;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-areas: none !important;
 }

 body.user-simple-mode .main .order-command-board > section {
  grid-column: 1 / -1 !important;
  grid-row: auto !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: 100%;
 }

 body.user-simple-mode .main .order-command-board .command-client-panel {
  grid-template-columns: minmax(0, 1fr) !important;
  min-width: 0 !important;
  max-width: 100%;
 }

 body.user-simple-mode .main .order-command-board .command-client-panel > div {
  grid-column: 1 / -1 !important;
  min-width: 0;
  width: 100%;
  max-width: 100%;
 }

 body.user-simple-mode .main .order-command-board .command-client-panel :is(strong, a) {
  max-width: 100%;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
 }
}
/* UI-TEMPLATE:SIMPLE-CONTACT-END */

/* UI-TEMPLATE:CHECKBOX-TOGGLE
 * Opt-in markup reuses the account track; the original checkbox, name,
 * value, validation and submission behavior remain native and unchanged.
 * Legacy permission/catalog/admin wrappers may keep their operational classes. */
body label.account-toggle-row.goic-toggle-row:not([hidden]) {
 position: relative;
 display: grid !important;
 grid-template-columns: var(--goic-toggle-width) minmax(0, 1fr) !important;
 align-items: center !important;
 gap: 10px !important;
 box-sizing: border-box;
 min-width: 0 !important;
 width: 100%;
 max-width: 100%;
 min-height: 44px !important;
 height: auto !important;
 padding: 8px 10px !important;
 cursor: pointer;
 text-align: left;
 white-space: normal !important;
}

body.user-simple-mode label.account-toggle-row.goic-toggle-row:not([hidden]) {
 min-height: 56px !important;
 padding: 10px 12px !important;
}

/* Visually hidden, not display:none: keyboard and native checkbox semantics
 * remain available. The whole associated label is the touch target. */
body label.account-toggle-row.goic-toggle-row > input[type="checkbox"] {
 position: absolute !important;
 top: 0;
 left: 0;
 box-sizing: border-box;
 width: 1px !important;
 height: 1px !important;
 min-width: 1px !important;
 min-height: 1px !important;
 max-width: 1px !important;
 max-height: 1px !important;
 margin: 0 !important;
 padding: 0 !important;
 border: 0 !important;
 opacity: 0;
 overflow: hidden;
 clip-path: inset(50%);
}

body label.account-toggle-row.goic-toggle-row > input[type="checkbox"] + .account-toggle-ui {
 position: relative;
 display: block;
 grid-column: 1;
 grid-row: 1;
 align-self: center;
 flex: none;
 box-sizing: border-box;
 width: var(--goic-toggle-width) !important;
 height: var(--goic-toggle-height) !important;
 min-width: var(--goic-toggle-width) !important;
 min-height: var(--goic-toggle-height) !important;
 max-width: var(--goic-toggle-width);
 margin: 0 !important;
 padding: 0 !important;
 border-radius: 999px;
}

body label.account-toggle-row.goic-toggle-row > input[type="checkbox"] + .account-toggle-ui::after {
 top: 3px;
 left: 3px;
 width: var(--goic-toggle-knob) !important;
 height: var(--goic-toggle-knob) !important;
 transform: translateX(0);
}

body label.account-toggle-row.goic-toggle-row > input[type="checkbox"]:checked + .account-toggle-ui::after {
 transform: translateX(var(--goic-toggle-travel));
}

body label.account-toggle-row.goic-toggle-row > input[type="checkbox"]:indeterminate + .account-toggle-ui {
 background: #d97706;
 border-color: #b45309;
}

body label.account-toggle-row.goic-toggle-row > input[type="checkbox"]:indeterminate + .account-toggle-ui::after {
 transform: translateX(var(--goic-toggle-mid));
}

body label.account-toggle-row.goic-toggle-row > input[type="checkbox"]:focus-visible + .account-toggle-ui {
 outline: 3px solid var(--brand, #e87800);
 outline-offset: 3px;
}

body label.account-toggle-row.goic-toggle-row:has(> input[type="checkbox"]:disabled) {
 cursor: not-allowed;
}

body label.account-toggle-row.goic-toggle-row > input[type="checkbox"]:disabled + .account-toggle-ui {
 opacity: 0.55;
 filter: grayscale(1);
}

body label.account-toggle-row.goic-toggle-row > .goic-toggle-copy {
 display: block;
 grid-column: 2;
 grid-row: 1;
 min-width: 0 !important;
 width: auto !important;
 max-width: 100%;
 margin: 0 !important;
 font-size: var(--goic-ui-text) !important;
 line-height: 1.35 !important;
 text-align: left;
 white-space: normal !important;
 overflow: visible !important;
 text-overflow: clip !important;
 overflow-wrap: anywhere;
 word-break: normal;
}

body label.account-toggle-row.goic-toggle-row > .goic-toggle-copy > :is(strong, b) {
 display: block;
 font-size: var(--goic-ui-text) !important;
 line-height: 1.35 !important;
 white-space: normal !important;
 overflow-wrap: anywhere;
}

body label.account-toggle-row.goic-toggle-row > .goic-toggle-copy > small {
 display: block;
 margin-top: 3px;
 color: var(--muted, #64748b);
 font-size: var(--goic-ui-small) !important;
 line-height: 1.4 !important;
 white-space: normal !important;
 overflow-wrap: anywhere;
}

/* The former icon-only order switch styled every span as another track.
 * Its explanatory copy must stay plain text, and the enlarged control now
 * gets a full row rather than squeezing the current status into column 2. */
body label.command-status-auto-toggle.account-toggle-row.goic-toggle-row {
 position: relative;
 top: auto;
 right: auto;
 bottom: auto;
 left: auto;
 grid-column: 1 / -1 !important;
 grid-row: 4 !important;
 align-self: stretch;
 justify-self: stretch;
 margin-top: 12px;
}

body label.command-status-auto-toggle.goic-toggle-row > .goic-toggle-copy {
 position: static;
 width: auto !important;
 height: auto;
 min-height: 0;
 border: 0;
 border-radius: 0;
 background: none;
 box-shadow: none;
 transition: none;
}

body label.command-status-auto-toggle.goic-toggle-row > .goic-toggle-copy::after {
 content: none;
}

@media (prefers-reduced-motion: reduce) {
 body label.account-toggle-row.goic-toggle-row > input[type="checkbox"] + .account-toggle-ui,
 body label.account-toggle-row.goic-toggle-row > input[type="checkbox"] + .account-toggle-ui::after {
  transition: none !important;
 }
}

body.user-motion-off label.account-toggle-row.goic-toggle-row > input[type="checkbox"] + .account-toggle-ui,
body.user-motion-off label.account-toggle-row.goic-toggle-row > input[type="checkbox"] + .account-toggle-ui::after {
 transition: none !important;
}

@media (forced-colors: active) {
 body label.account-toggle-row.goic-toggle-row > input[type="checkbox"] + .account-toggle-ui {
  forced-color-adjust: none;
  background: Canvas;
  border-color: ButtonText;
  box-shadow: none;
 }

 body label.account-toggle-row.goic-toggle-row > input[type="checkbox"] + .account-toggle-ui::after {
  background: CanvasText;
  box-shadow: none;
 }

 body label.account-toggle-row.goic-toggle-row > input[type="checkbox"]:is(:checked, :indeterminate) + .account-toggle-ui {
  background: Highlight;
  border-color: Highlight;
 }

 body label.account-toggle-row.goic-toggle-row > input[type="checkbox"]:is(:checked, :indeterminate) + .account-toggle-ui::after {
  background: HighlightText;
 }

 body label.account-toggle-row.goic-toggle-row > input[type="checkbox"]:focus-visible + .account-toggle-ui {
  outline-color: Highlight;
 }

 body label.account-toggle-row.goic-toggle-row > input[type="checkbox"]:disabled + .account-toggle-ui {
  opacity: 1;
  filter: none;
  border-color: GrayText;
 }

 body label.account-toggle-row.goic-toggle-row > input[type="checkbox"]:disabled + .account-toggle-ui::after {
  background: GrayText;
 }
}
/* UI-TEMPLATE:CHECKBOX-TOGGLE-END */

/* UI-TEMPLATE:TOGGLE-GEOMETRY
 * One geometry for true on/off tracks, including pre-existing controls.
 * These aliases do not replace checkbox/button state or the surrounding layout.
 * Device-state dots and multi-select/radio controls deliberately stay outside. */
body :is(
 .account-toggle-row .account-toggle-ui,
 .company-label-toggle .account-toggle-ui,
 .admin-setting-toggle-switch,
 .company-message-post-completion-toggle-ui,
 .pickup-reminders-toggle-ui,
 .workflow-lab-composer-toggle-ui,
 .procedures-demo-preference-toggle,
 .production-workflow-demo-toggle > i,
 .drying-room-humidity-switch,
 .admin-setting-toggle-control
) {
 box-sizing: border-box;
 width: var(--goic-toggle-width) !important;
 height: var(--goic-toggle-height) !important;
 min-width: var(--goic-toggle-width) !important;
 min-height: var(--goic-toggle-height) !important;
 max-width: var(--goic-toggle-width);
 max-height: var(--goic-toggle-height);
 flex: 0 0 var(--goic-toggle-width) !important;
}

body :is(
 .account-toggle-row .account-toggle-ui,
 .company-label-toggle .account-toggle-ui,
 .admin-setting-toggle-switch,
 .company-message-post-completion-toggle-ui,
 .pickup-reminders-toggle-ui,
 .workflow-lab-composer-toggle-ui,
 .procedures-demo-preference-toggle,
 .production-workflow-demo-toggle > i,
 .drying-room-humidity-switch
) {
 border-width: 1px;
 border-style: solid;
 border-radius: 999px !important;
}

body :is(
 .admin-setting-toggle-switch,
 .pickup-reminders-toggle-ui,
 .workflow-lab-composer-toggle-ui,
 .procedures-demo-preference-toggle,
 .production-workflow-demo-toggle > i,
 .drying-room-humidity-switch
) {
 border-color: transparent;
}

body :is(
 .account-toggle-row .account-toggle-ui,
 .company-label-toggle .account-toggle-ui,
 .admin-setting-toggle-switch,
 .company-message-post-completion-toggle-ui,
 .pickup-reminders-toggle-ui,
 .workflow-lab-composer-toggle-ui,
 .procedures-demo-preference-toggle,
 .production-workflow-demo-toggle > i,
 .drying-room-humidity-switch
)::after {
 top: 3px !important;
 left: 3px !important;
 width: var(--goic-toggle-knob) !important;
 height: var(--goic-toggle-knob) !important;
 transform: translateX(0) !important;
}

body :is(
 .account-toggle-row input[type="checkbox"]:checked + .account-toggle-ui,
 .admin-setting-toggle-control input[type="checkbox"]:checked + .admin-setting-toggle-switch,
 .company-message-post-completion-toggle input[type="checkbox"]:checked + .company-message-post-completion-toggle-ui,
 .pickup-reminders-enabled-toggle input[type="checkbox"]:checked + .pickup-reminders-toggle-ui,
 .company-label-system-option:has(input[type="checkbox"]:checked) .account-toggle-ui,
 .account-toggle-row.is-on .account-toggle-ui,
 .account-toggle-row[aria-pressed="true"] .account-toggle-ui,
 .new-order-pickup-schedule-card[open] > summary.account-toggle-row > .account-toggle-ui,
 .workflow-lab-composer-history.is-enabled .workflow-lab-composer-toggle-ui,
 .procedures-demo-preference.is-on .procedures-demo-preference-toggle,
 .production-workflow-demo-toggle.is-on > i,
 .drying-room-humidity-toggle[aria-checked="true"] .drying-room-humidity-switch
)::after {
 transform: translateX(var(--goic-toggle-travel)) !important;
}

/* Consent used the same account UI class for a square checkmark. Restore only
 * that track/knob; the company-client label keeps its separate stacked layout. */
body .new-order-marketing-consent {
 grid-template-columns: var(--goic-toggle-width) minmax(0, 1fr) !important;
}

body .new-order-marketing-consent .account-toggle-ui {
 background: #e5e7eb;
 border-color: #cbd5e1;
}

body .new-order-marketing-consent .account-toggle-ui::before {
 content: none !important;
}

body .new-order-marketing-consent .account-toggle-ui::after {
 display: block;
}

/* This existing demo uses a fixed 38px grid track; it must follow its knob. */
body .production-workflow-demo-toggle {
 grid-template-columns: var(--goic-toggle-width) minmax(0, 1fr);
}

body :is(
 .account-toggle-row,
 .admin-setting-toggle,
 .company-message-post-completion-toggle,
 .pickup-reminders-enabled-toggle,
 .workflow-lab-composer-history,
 .procedures-demo-preference,
 .production-workflow-demo-toggle,
 .drying-room-humidity-toggle
) {
 min-height: var(--goic-ui-control-height) !important;
}

body :is(
 .account-toggle-row input[type="checkbox"]:focus-visible + .account-toggle-ui,
 .admin-setting-toggle-control input[type="checkbox"]:focus-visible + .admin-setting-toggle-switch,
 .company-message-post-completion-toggle input[type="checkbox"]:focus-visible + .company-message-post-completion-toggle-ui,
 .pickup-reminders-enabled-toggle input[type="checkbox"]:focus-visible + .pickup-reminders-toggle-ui,
 .company-label-system-option:has(input[type="checkbox"]:focus-visible) .account-toggle-ui,
 button.account-toggle-row:focus-visible .account-toggle-ui,
 summary.account-toggle-row:focus-visible .account-toggle-ui,
 .workflow-lab-composer-history:focus-visible .workflow-lab-composer-toggle-ui,
 .procedures-demo-preference:focus-visible .procedures-demo-preference-toggle,
 .production-workflow-demo-toggle:focus-visible > i,
 .drying-room-humidity-toggle:focus-visible .drying-room-humidity-switch
) {
 outline: 3px solid var(--brand, #e87800) !important;
 outline-offset: 3px;
}

body :is(
 .account-toggle-row input[type="checkbox"]:disabled + .account-toggle-ui,
 .admin-setting-toggle-control input[type="checkbox"]:disabled + .admin-setting-toggle-switch,
 .company-message-post-completion-toggle input[type="checkbox"]:disabled + .company-message-post-completion-toggle-ui,
 .pickup-reminders-enabled-toggle input[type="checkbox"]:disabled + .pickup-reminders-toggle-ui,
 .company-label-system-option:has(input[type="checkbox"]:disabled) .account-toggle-ui,
 button.account-toggle-row:disabled .account-toggle-ui,
 .workflow-lab-composer-history:disabled .workflow-lab-composer-toggle-ui,
 .procedures-demo-preference:disabled .procedures-demo-preference-toggle,
 .production-workflow-demo-toggle:disabled > i,
 .drying-room-humidity-toggle:disabled .drying-room-humidity-switch
) {
 opacity: 0.55;
 filter: grayscale(1);
}

body :is(.account-toggle-row, .admin-setting-toggle-control, .company-message-post-completion-toggle, .pickup-reminders-enabled-toggle) input[type="checkbox"]:indeterminate + :is(.account-toggle-ui, .admin-setting-toggle-switch, .company-message-post-completion-toggle-ui, .pickup-reminders-toggle-ui)::after {
 transform: translateX(var(--goic-toggle-mid)) !important;
}

@media (prefers-reduced-motion: reduce) {
 body :is(
  .account-toggle-row .account-toggle-ui,
  .company-label-toggle .account-toggle-ui,
  .admin-setting-toggle-switch,
  .company-message-post-completion-toggle-ui,
  .pickup-reminders-toggle-ui,
  .workflow-lab-composer-toggle-ui,
  .procedures-demo-preference-toggle,
  .production-workflow-demo-toggle > i,
  .drying-room-humidity-switch
 ),
 body :is(
  .account-toggle-row .account-toggle-ui,
  .company-label-toggle .account-toggle-ui,
  .admin-setting-toggle-switch,
  .company-message-post-completion-toggle-ui,
  .pickup-reminders-toggle-ui,
  .workflow-lab-composer-toggle-ui,
  .procedures-demo-preference-toggle,
  .production-workflow-demo-toggle > i,
  .drying-room-humidity-switch
 )::after {
  transition: none !important;
 }
}

body.user-motion-off :is(
 .account-toggle-row .account-toggle-ui,
 .company-label-toggle .account-toggle-ui,
 .admin-setting-toggle-switch,
 .company-message-post-completion-toggle-ui,
 .pickup-reminders-toggle-ui,
 .workflow-lab-composer-toggle-ui,
 .procedures-demo-preference-toggle,
 .production-workflow-demo-toggle > i,
 .drying-room-humidity-switch
),
body.user-motion-off :is(
 .account-toggle-row .account-toggle-ui,
 .company-label-toggle .account-toggle-ui,
 .admin-setting-toggle-switch,
 .company-message-post-completion-toggle-ui,
 .pickup-reminders-toggle-ui,
 .workflow-lab-composer-toggle-ui,
 .procedures-demo-preference-toggle,
 .production-workflow-demo-toggle > i,
 .drying-room-humidity-switch
)::after {
 transition: none !important;
}

@media (forced-colors: active) {
 body :is(
  .account-toggle-row .account-toggle-ui,
  .company-label-toggle .account-toggle-ui,
  .admin-setting-toggle-switch,
  .company-message-post-completion-toggle-ui,
  .pickup-reminders-toggle-ui,
  .workflow-lab-composer-toggle-ui,
  .procedures-demo-preference-toggle,
  .production-workflow-demo-toggle > i,
  .drying-room-humidity-switch
 ) {
  forced-color-adjust: none;
  background: Canvas !important;
  border-color: ButtonText !important;
  box-shadow: none !important;
 }

 body :is(
  .account-toggle-row .account-toggle-ui,
  .company-label-toggle .account-toggle-ui,
  .admin-setting-toggle-switch,
  .company-message-post-completion-toggle-ui,
  .pickup-reminders-toggle-ui,
  .workflow-lab-composer-toggle-ui,
  .procedures-demo-preference-toggle,
  .production-workflow-demo-toggle > i,
  .drying-room-humidity-switch
 )::after {
  background: CanvasText !important;
  box-shadow: none !important;
 }

 body :is(
  .account-toggle-row input[type="checkbox"]:checked + .account-toggle-ui,
  .admin-setting-toggle-control input[type="checkbox"]:checked + .admin-setting-toggle-switch,
  .company-message-post-completion-toggle input[type="checkbox"]:checked + .company-message-post-completion-toggle-ui,
  .pickup-reminders-enabled-toggle input[type="checkbox"]:checked + .pickup-reminders-toggle-ui,
  .company-label-system-option:has(input[type="checkbox"]:checked) .account-toggle-ui,
  .account-toggle-row.is-on .account-toggle-ui,
  .account-toggle-row[aria-pressed="true"] .account-toggle-ui,
  .new-order-pickup-schedule-card[open] > summary.account-toggle-row > .account-toggle-ui,
  .workflow-lab-composer-history.is-enabled .workflow-lab-composer-toggle-ui,
  .procedures-demo-preference.is-on .procedures-demo-preference-toggle,
  .production-workflow-demo-toggle.is-on > i,
  .drying-room-humidity-toggle[aria-checked="true"] .drying-room-humidity-switch
 ) {
  background: Highlight !important;
  border-color: Highlight !important;
 }

 body :is(
  .account-toggle-row input[type="checkbox"]:checked + .account-toggle-ui,
  .admin-setting-toggle-control input[type="checkbox"]:checked + .admin-setting-toggle-switch,
  .company-message-post-completion-toggle input[type="checkbox"]:checked + .company-message-post-completion-toggle-ui,
  .pickup-reminders-enabled-toggle input[type="checkbox"]:checked + .pickup-reminders-toggle-ui,
  .company-label-system-option:has(input[type="checkbox"]:checked) .account-toggle-ui,
  .account-toggle-row.is-on .account-toggle-ui,
  .account-toggle-row[aria-pressed="true"] .account-toggle-ui,
  .new-order-pickup-schedule-card[open] > summary.account-toggle-row > .account-toggle-ui,
  .workflow-lab-composer-history.is-enabled .workflow-lab-composer-toggle-ui,
  .procedures-demo-preference.is-on .procedures-demo-preference-toggle,
  .production-workflow-demo-toggle.is-on > i,
  .drying-room-humidity-toggle[aria-checked="true"] .drying-room-humidity-switch
 )::after {
  background: HighlightText !important;
 }

 body :is(
  .account-toggle-row input[type="checkbox"]:focus-visible + .account-toggle-ui,
  .admin-setting-toggle-control input[type="checkbox"]:focus-visible + .admin-setting-toggle-switch,
  .company-message-post-completion-toggle input[type="checkbox"]:focus-visible + .company-message-post-completion-toggle-ui,
  .pickup-reminders-enabled-toggle input[type="checkbox"]:focus-visible + .pickup-reminders-toggle-ui,
  .company-label-system-option:has(input[type="checkbox"]:focus-visible) .account-toggle-ui,
  button.account-toggle-row:focus-visible .account-toggle-ui,
  summary.account-toggle-row:focus-visible .account-toggle-ui,
  .workflow-lab-composer-history:focus-visible .workflow-lab-composer-toggle-ui,
  .procedures-demo-preference:focus-visible .procedures-demo-preference-toggle,
  .production-workflow-demo-toggle:focus-visible > i,
  .drying-room-humidity-toggle:focus-visible .drying-room-humidity-switch
 ) {
  outline-color: Highlight !important;
 }

 body :is(
  .account-toggle-row input[type="checkbox"]:disabled + .account-toggle-ui,
  .admin-setting-toggle-control input[type="checkbox"]:disabled + .admin-setting-toggle-switch,
  .company-message-post-completion-toggle input[type="checkbox"]:disabled + .company-message-post-completion-toggle-ui,
  .pickup-reminders-enabled-toggle input[type="checkbox"]:disabled + .pickup-reminders-toggle-ui,
  .company-label-system-option:has(input[type="checkbox"]:disabled) .account-toggle-ui,
  button.account-toggle-row:disabled .account-toggle-ui,
  .workflow-lab-composer-history:disabled .workflow-lab-composer-toggle-ui,
  .procedures-demo-preference:disabled .procedures-demo-preference-toggle,
  .production-workflow-demo-toggle:disabled > i,
  .drying-room-humidity-toggle:disabled .drying-room-humidity-switch
 ) {
  opacity: 1;
  filter: none;
  border-color: GrayText !important;
 }

 body :is(
  .account-toggle-row input[type="checkbox"]:disabled + .account-toggle-ui,
  .admin-setting-toggle-control input[type="checkbox"]:disabled + .admin-setting-toggle-switch,
  .company-message-post-completion-toggle input[type="checkbox"]:disabled + .company-message-post-completion-toggle-ui,
  .pickup-reminders-enabled-toggle input[type="checkbox"]:disabled + .pickup-reminders-toggle-ui,
  .company-label-system-option:has(input[type="checkbox"]:disabled) .account-toggle-ui,
  button.account-toggle-row:disabled .account-toggle-ui,
  .workflow-lab-composer-history:disabled .workflow-lab-composer-toggle-ui,
  .procedures-demo-preference:disabled .procedures-demo-preference-toggle,
  .production-workflow-demo-toggle:disabled > i,
  .drying-room-humidity-toggle:disabled .drying-room-humidity-switch
 )::after {
  background: GrayText !important;
 }
}
/* UI-TEMPLATE:TOGGLE-GEOMETRY-END */

/* Notification bulk action inherits the real shared .btn/ghost surface. */
body .notification-head:has(.notification-read-link.btn) {
 display: grid;
 grid-template-columns: auto minmax(0, 1fr) auto;
 align-items: center;
 gap: 6px;
}

body .notification-head:has(.notification-read-link.btn) > strong {
 grid-column: 1;
 grid-row: 1;
 min-width: 0;
}

body .notification-head:has(.notification-read-link.btn) > [data-header-notification-count] {
 grid-column: 3;
 grid-row: 1;
 justify-self: end;
}

body .notification-menu .notification-head .notification-read-link.btn {
 grid-column: 2;
 grid-row: 1;
 justify-self: center;
 align-self: center;
 min-width: 0;
 max-width: 100%;
 min-height: 28px !important;
 padding: 4px 6px;
 font-size: 12px !important;
 line-height: 1.2;
 letter-spacing: normal;
 text-transform: none;
 text-decoration: none;
 white-space: nowrap !important;
}

/* UI-TEMPLATE:COMPACT-HERO
 * Explicit compact exceptions requested for the notification action and the
 * automatic-suggestion icon. Other controls retain the shared Large/Simple sizes. */
body .order-view-page-v2 .command-status-panel {
 --goic-status-icon-box: 132px;
 --goic-status-icon-glyph: 120px;
 grid-template-columns: var(--goic-status-icon-box) minmax(0, 1fr);
}

body .order-view-page-v2 .command-status-panel .command-status-icon {
 width: var(--goic-status-icon-box);
 height: var(--goic-status-icon-box);
 font-size: 44px;
}

body .order-view-page-v2 .command-status-panel .command-status-icon .status-fluent-icon {
 width: var(--goic-status-icon-glyph);
 height: var(--goic-status-icon-glyph);
}

body .order-view-page-v2 .command-status-panel .command-panel-kicker {
 min-height: 32px;
 padding-right: 32px;
 white-space: normal;
 overflow-wrap: anywhere;
}

body .order-view-page-v2 .command-status-panel label.command-status-auto-toggle.is-compact-icon {
 --goic-ui-control-height: 32px;
 --goic-toggle-width: 32px;
 --goic-toggle-height: 18px;
 --goic-toggle-knob: 10px;
 --goic-toggle-travel: 14px;
 --goic-toggle-mid: 7px;
 position: absolute;
 top: 0;
 right: 6px;
 bottom: auto;
 left: auto;
 grid-column: auto !important;
 grid-row: auto !important;
 grid-template-columns: minmax(0, 1fr) !important;
 align-items: center !important;
 justify-items: center;
 gap: 0 !important;
 width: 44px !important;
 height: 32px !important;
 min-width: 44px !important;
 min-height: 32px !important;
 max-width: 44px;
 margin: 0;
 padding: 6px !important;
 border: 0;
 background: transparent;
 box-shadow: none;
}

/* A hidden visual label still gives the original native checkbox its name. */
body .order-view-page-v2 .command-status-panel .command-status-auto-toggle.is-compact-icon > .goic-toggle-copy {
 position: absolute !important;
 width: 1px !important;
 height: 1px !important;
 min-width: 1px !important;
 min-height: 1px !important;
 margin: 0 !important;
 padding: 0 !important;
 border: 0;
 overflow: hidden !important;
 white-space: nowrap !important;
 clip-path: inset(50%);
}

@media (max-width: 760px) {
 body .order-view-page-v2 .command-status-panel {
  --goic-status-icon-box: 112px;
  --goic-status-icon-glyph: 100px;
 }
}
/* UI-TEMPLATE:COMPACT-HERO-END */

/* UI-TEMPLATE:PAYMENT-ACTIONS
 * One shared row; keep native payment controls and full-width notices intact. */
body .order-view-page-v2 .command-money-panel .command-money-terminal.command-money-actions:not([hidden]) {
 display: grid;
 grid-template-columns: minmax(0, 1fr);
 align-items: stretch;
 gap: 8px;
}

body .order-view-page-v2 .command-money-panel .command-money-terminal.command-money-actions--paired:not([hidden]) {
 grid-template-columns: repeat(2, minmax(0, 1fr));
}

body .order-view-page-v2 .command-money-panel .command-money-terminal.command-money-actions > .btn {
 min-width: 0 !important;
 max-width: 100%;
 width: 100% !important;
 min-height: max(52px, var(--goic-ui-control-height, 44px));
 height: auto;
 padding: 10px 8px;
 font-size: var(--goic-ui-text, 16px) !important;
 line-height: 1.25;
 white-space: normal;
 overflow-wrap: anywhere;
}

body .order-view-page-v2 .command-money-panel .command-money-actions--paired > .command-money-online-button {
 grid-column: 1;
 grid-row: 1;
}

body .order-view-page-v2 .command-money-panel .command-money-actions--paired > .command-money-terminal-button {
 grid-column: 2;
 grid-row: 1;
}

body .order-view-page-v2 .command-money-panel .command-money-actions > .command-money-terminal-check,
body .order-view-page-v2 .command-money-panel .command-money-actions > .command-money-terminal-status {
 grid-column: 1 / -1;
}
/* UI-TEMPLATE:PAYMENT-ACTIONS-END */

/* UI-TEMPLATE:ORDER-READABILITY
 * Order copy shares the existing preference tokens, including dialogs moved
 * directly under BODY. Screen-only rules never alter printed documents.
 * Keep icons, signature/QR surfaces and measurement input geometry local. */
@media screen {
 /* Desktop/Simple use the original structure; trial keeps its own paired
  * overview values and does not match these selectors. */
 body .order-view-page-v2:not([data-order-design-trial]) :is(.command-status-panel .command-panel-kicker, .command-money-panel .command-money-kicker) {
  font-size: var(--goic-ui-section) !important;
  line-height: 1.25 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 body .order-view-page-v2:not([data-order-design-trial]) .command-status-panel > strong {
  font-size: calc(var(--goic-ui-heading) + 9px) !important;
  line-height: 1.2 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 body .order-view-page-v2:not([data-order-design-trial]) .command-money-panel.payment-summary-card .command-money-amount:not(.is-pending-copy) {
  font-size: calc(var(--goic-ui-heading) + 6px) !important;
  line-height: 1.2 !important;
  overflow-wrap: anywhere;
 }

 body .order-view-page-v2:not([data-order-design-trial]) .command-money-panel.payment-summary-card .command-money-amount.is-pending-copy {
  font-size: calc(var(--goic-ui-text) + 3px) !important;
  line-height: 1.35 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 body .order-view-page-v2:not([data-order-design-trial]) .command-money-panel.payment-summary-card .command-money-details {
  font-size: calc(var(--goic-ui-small, 13px) + 2px) !important;
  line-height: 1.4 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 body .main .order-view-page-v2 :is(.order-section-head h3, .products-section-title h3),
 body .main .order-view-page-v2 .command-estimate-panel > strong {
  font-size: var(--goic-ui-section) !important;
  line-height: 1.25 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 body .main .order-view-page-v2 :is(.command-panel-head strong, .command-client-panel strong, .command-client-panel a, .command-notes-panel strong, .command-estimate-breakdown > div strong, .order-message-history-title-line strong, .order-message-history-empty strong, .history-note-text) {
  font-size: var(--goic-ui-text) !important;
  line-height: 1.35 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 body .main .order-view-page-v2 :is(.order-section-head > .muted, .products-section-title > .muted, .command-panel-head > span, .command-label, .command-estimate-breakdown > div span, .order-message-history-copy > p, .order-message-history-status, .order-message-history-meta, .order-message-history-preview, .order-message-history-empty small, .history-table th, .history-user-inline, .history-note-label, .history-date-value, .history-status-pill) {
  font-size: calc(var(--goic-ui-small, 13px) + 2px) !important;
  line-height: 1.4 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 /* A status badge may wrap below the title, never squeeze it to zero width. */
 body .main .order-view-page-v2 .order-message-history-title-line {
  flex-wrap: wrap;
 }

 body .main .order-view-page-v2 .order-message-history-title-line > strong {
  flex: 1 1 12rem;
  min-width: 0;
 }

 /* Read-only product summaries only. Preserve Simple's larger existing
  * numbers and all edit-field sizing/measurement row geometry. */
 body:not(.user-simple-mode) .order-view-page-v2 .order-products-card:not(.is-editing) :is(.product-name, .product-dim-text) {
  font-size: var(--goic-ui-text) !important;
  line-height: 1.35 !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
 }

 body:not(.user-simple-mode) .order-view-page-v2 .order-products-card:not(.is-editing) .product-total-inline {
  font-size: var(--goic-ui-heading) !important;
  line-height: 1.25 !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
 }

 @media (max-width: 760px) {
  /* Keep short summaries compact; wrap only the pieces that do not fit. */
  body:not(.user-simple-mode) .order-view-page-v2 .order-products-card:not(.is-editing) .product-main-line {
   display: flex !important;
   flex-wrap: wrap;
  }

  body:not(.user-simple-mode) .order-view-page-v2 .order-products-card:not(.is-editing) .product-main-line > .product-name {
   flex: 1 1 12rem;
   min-width: 0;
  }

  body:not(.user-simple-mode) .order-view-page-v2 .order-products-card:not(.is-editing) .product-main-line > .product-chip {
   flex: 0 0 auto;
  }
 }

 /* The message preview is portalled outside the order's page container. */
 body .ui-modal--message-history :is(.order-message-preview-bubble pre, .order-message-preview-details dd) {
  font-size: var(--goic-ui-text) !important;
  line-height: 1.5 !important;
  overflow-wrap: anywhere;
 }

 body .ui-modal--message-history :is(.order-message-preview-status-line, .order-message-preview-status, .order-message-preview-details dt) {
  font-size: calc(var(--goic-ui-small, 13px) + 2px) !important;
  line-height: 1.4 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 body .ui-modal--message-history .order-message-preview-status-line > span:last-child {
  white-space: normal;
  overflow-wrap: anywhere;
 }

 /* Reuse the existing online-payment child dialog, never company settings. */
 body .ui-modal--online-payment .online-payment-modal__amount-summary strong {
  font-size: calc(var(--goic-ui-heading) + 5px) !important;
  line-height: 1.25 !important;
  overflow-wrap: anywhere;
 }

 body .ui-modal--online-payment :is(.online-payment-modal__fields label, .online-payment-modal__delivery strong) {
  font-size: var(--goic-ui-text) !important;
  line-height: 1.35 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 body .ui-modal--online-payment :is(.online-payment-modal__amount-summary span, .online-payment-modal__fields label > small, .online-payment-modal__delivery small, .online-payment-modal__replace-note) {
  font-size: calc(var(--goic-ui-small, 13px) + 2px) !important;
  line-height: 1.4 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 /* These launchers and totals move with the measurement card, not .main. */
 body[class*="mobile-text-size-"] .order-products-card :is(.products-tool-copy > strong, .products-tools-switcher-copy > strong, .order-classic-labels-inline > header strong, .order-classic-label-codes b) {
  font-size: var(--goic-ui-text) !important;
  line-height: 1.35 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 body[class*="mobile-text-size-"] .order-products-card :is(.products-tools-kicker, .products-tool-copy > small, .products-tools-switcher-copy > small, .products-tool-state, .products-sqm-total, .order-classic-labels-inline > header > div > span, .order-classic-labels-inline > header small, .order-classic-label-codes small, .order-classic-label-form label > span) {
  font-size: calc(var(--goic-ui-small, 13px) + 2px) !important;
  line-height: 1.4 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 /* Only the live handover dialog: no print/PDF, QR, canvas or icon sizing. */
 body .ui-modal--handover-receipt .handover-receipt-document__identity h3 {
  font-size: var(--goic-ui-heading) !important;
  line-height: 1.25 !important;
  overflow-wrap: anywhere;
 }

 body .ui-modal--handover-receipt :is(.handover-receipt-document__company strong, .handover-receipt-document__company span, .handover-receipt-document__identity p, .handover-receipt-item strong, .handover-receipt-item > b, .handover-receipt-legal-proof strong, .handover-receipt-updates legend, .handover-receipt-updates label b, .handover-signature > header strong, .handover-receipt-latest strong, .handover-receipt-blocker strong) {
  font-size: var(--goic-ui-text) !important;
  line-height: 1.35 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }

 body .ui-modal--handover-receipt .handover-receipt-items > footer strong {
  font-size: var(--goic-ui-section) !important;
  line-height: 1.3 !important;
 }

 body .ui-modal--handover-receipt :is(.handover-receipt-document__identity > span, .handover-receipt-document__company small, .handover-receipt-items__head, .handover-receipt-item__position, .handover-receipt-item small, .handover-receipt-items > footer span, .handover-receipt-risk-note p, .handover-receipt-legal-proof small, .handover-receipt-legal-proof a, .handover-receipt-updates > p, .handover-receipt-updates label small, .handover-signature > header > div > span, .handover-signature > small, .handover-receipt-latest small, .handover-receipt-blocker p, .handover-receipt-draft-note p, .handover-receipt-feedback) {
  font-size: calc(var(--goic-ui-small, 13px) + 2px) !important;
  line-height: 1.4 !important;
  white-space: normal;
  overflow-wrap: anywhere;
 }
}
/* UI-TEMPLATE:ORDER-READABILITY-END */

/* UI-TEMPLATE:NEW-ORDER-COMPACT-COPY
 * Keep pricing calculations and real fixed-product totals unchanged. */
body .new-order-page .new-order-total:has(> [data-new-order-total].is-pending-copy),
body .new-order-page .new-order-item[data-price-pending="1"] .new-order-item-total {
 display: none;
}
/* UI-TEMPLATE:NEW-ORDER-COMPACT-COPY-END */

/* UI-TEMPLATE:STREET-VERIFY
 * Keep the original input/progress shell intact. The explicit action is a
 * sibling, so stacking it cannot move the absolutely centered progress mark. */
body .geo-street-search-controls {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 8px;
 min-width: 0;
 width: 100%;
 max-width: 100%;
}

body .geo-street-search-controls > .geo-street-search-shell {
 flex: 1 1 220px;
 min-width: 0;
}

body .geo-street-search-controls > .geo-street-verify-action.btn {
 flex: 0 1 auto;
 min-width: 0;
 max-width: 100%;
 min-height: var(--goic-ui-control-height);
 font-size: var(--goic-ui-text) !important;
 line-height: 1.35;
 white-space: normal;
 overflow-wrap: anywhere;
}

@media (max-width: 520px) {
 body .geo-street-search-controls > .geo-street-search-shell {
  flex-basis: 100%;
 }

 body .geo-street-search-controls > .geo-street-verify-action.btn {
  width: 100%;
 }
}

body.user-simple-mode .geo-street-search-controls > .geo-street-search-shell {
 flex-basis: 100%;
}

body.user-simple-mode .geo-street-search-controls > .geo-street-verify-action.btn {
 width: 100%;
}
/* UI-TEMPLATE:STREET-VERIFY-END */

/* Short landscape windows and zoomed desktop layouts need one scrollable
 * dialog, not a header plus footer that leave an unreachable 0px body. */
@media (max-height: 480px) {
 body .ui-modal .ui-modal__panel {
  overflow-y: auto !important;
  overscroll-behavior: contain;
 }

 body .ui-modal .ui-modal__body {
  overflow-y: visible;
  flex: 0 0 auto;
 }
}
