/* Webtrust restaurant appearance; screen only. */
@media screen {
:root{--wt-bg:#f5f9ee;--wt-panel:#ffffff;--wt-soft:#f2f6f1;--wt-text:#24272b;--wt-muted:#565e68;--wt-border:#dce6d8;--wt-accent:#719b61;--wt-accent-light:#8bad7d;--wt-accent-text:#000000;--wt-accent-ink:#5a7a4e;--wt-accent-gradient:linear-gradient(135deg, #8bad7d, #719b61);--wt-danger:#b42333;--wt-danger-soft:#fff0f2;--wt-shadow:0 16px 48px rgba(20, 25, 30, 0.08);--wt-sidebar-panel:#ffffff;--wt-sidebar-soft:#f2f6f1;--wt-sidebar-text:#24272b;--wt-sidebar-muted:#565e68;--wt-sidebar-border:#dce6d8;--wt-sidebar-accent-ink:#59794d;color-scheme:light;}
.admin-sidebar,.sidebar,.captain-drawer{color-scheme:light;}
.app-shell,.auth-shell{--success:#166534;--warning:#854d0e;--info:#1d4ed8;--maroon-light:#9f1239;}
/* Map the existing POS, account and inventory design tokens to one theme.
   Included inside @media screen by theme_adapter.py. Print rules, dimensions,
   imagery and functional visibility classes remain owned by the original apps. */
:root {
  --page:var(--wt-bg); --bg:var(--wt-bg); --admin-bg:var(--wt-bg);
  --bg-elevated:var(--wt-panel); --surface:var(--wt-panel);
  --admin-surface:var(--wt-panel); --panel:var(--wt-panel);
  --surface-soft:var(--wt-soft); --panel-soft:var(--wt-soft); --panel-hover:var(--wt-soft);
  --ink:var(--wt-text); --text:var(--wt-text); --admin-ink:var(--wt-text);
  --text-soft:var(--wt-muted); --muted:var(--wt-muted); --admin-muted:var(--wt-muted);
  --line:var(--wt-border); --border:var(--wt-border); --admin-line:var(--wt-border);
  --brand:var(--wt-accent); --gold:var(--wt-accent); --admin-brand:var(--wt-accent);
  --brand-dark:var(--wt-accent-ink); --gold-dark:var(--wt-accent-ink); --gold-light:var(--wt-accent-ink);
  --admin-brand-dark:var(--wt-accent-ink); --border-gold:var(--wt-accent);
  --brand-soft:var(--wt-soft); --gold-soft:var(--wt-soft); --gold-faint:var(--wt-soft);
  --sidebar:var(--wt-panel); --danger:var(--wt-danger); --admin-danger:var(--wt-danger);
  --danger-bg:var(--wt-danger-soft); --shadow:var(--wt-shadow);
  --shadow-sm:var(--wt-shadow); --shadow-lg:var(--wt-shadow);
}
html, body, .admin-body, .account-body, .auth-body, .login-body,
.rider-body, .captain-body, .kitchen-body, .tracking-body {
  background-color:var(--wt-bg); color:var(--wt-text);
}
body { background-image:none; }
/* Primary shells and mobile navigation. */
.admin-sidebar, .sidebar, .captain-drawer, .admin-topbar, .account-header,
.topbar, .store-tabs, .rider-header, .kitchen-header, .captain-appbar,
.tracking-header, .webtrust-store-brand, .site-footer, .mobile-action-dock,
.customer-cart-dock:not(.hidden), .login-shell, .auth-layout,
.storefront-top-shell {
  background:var(--wt-panel); color:var(--wt-text); border-color:var(--wt-border);
}
.admin-nav a, .admin-nav-form button, .sidebar-footer a, .sidebar-footer button,
.account-nav a, .account-nav button, .rider-header form button,
.kitchen-user a, .kitchen-user button, .captain-drawer a {
  color:var(--wt-muted);
}
.admin-brand small, .rider-brand small, .rider-person small,
.kitchen-brand small, .kitchen-user small { color:var(--wt-muted); }
.admin-nav a:hover, .admin-nav-form button:hover, .account-nav a:hover,
.sidebar-footer a:hover, .sidebar-footer button:hover, .account-nav button:hover {
  background:var(--wt-soft); color:var(--wt-text);
}
.admin-nav a.active, .account-nav a.active, .nav-link.active {
  background:var(--wt-soft); color:var(--wt-accent-ink); border-color:var(--wt-accent);
  box-shadow:none;
}
/* Existing panels with literal light/dark backgrounds. */
.panel, .stat-card, .login-panel, .filter-card, .category-admin-card, .promotion-admin-card, .pos-product,
.pos-search, .rider-order, .rider-empty, .kitchen-kot-card, .kitchen-empty,
.agent-card, .admin-tool-card, .role-guide article, .account-stat-grid article,
.delete-summary div, .tracking-summary, .tracking-map-card, .tracking-help,
.home-category-card, .payment-choice-card, .payment-option,
.search-dialog, .product-dialog, .coupon-dialog, .order-success-dialog,
.location-dialog, .otp-dialog, .items-dialog, .delete-dialog, .pos-product-dialog,
.coupon-dialog-head, .location-dialog-head, .search-result,
.popular-category-list button, .saved-address-chip, .addon-group,
.dashboard-more-menu, .install-modal-card, .product-combo-menu,
.counter-card, .counter-usage-card, .sticky-mobile-actions, .fund-kpi-card, .fund-counter-card,
.fund-control-hero, .history-summary-card, .purchase-summary-card,
.admin-map-picker, .hero-slide-setting, .auth-method-tabs button.active {
  background:var(--wt-panel); color:var(--wt-text); border-color:var(--wt-border);
}
/* Keep order-state border colours and emergency banners as semantic cues. */
.booking-card, .live-order-card, .ops-table-card, .captain-table-card {
  background:var(--wt-panel); color:var(--wt-text);
}
.live-order-card.stage-pending, .live-order-card.stage-progress,
.live-order-card.stage-ready, .live-order-card.stage-transit,
.booking-card.booking-new, .booking-card.booking-confirmed,
.captain-table-card.table-ordered, .captain-table-card.table-cooking,
.captain-table-card.table-partial-ready, .captain-table-card.table-ready,
.captain-table-card.table-served {
  background:var(--wt-panel); color:var(--wt-text);
}
.live-order-card.new-order-arrival, .live-order-card.awaiting-operator-action {
  background:var(--wt-danger-soft); border-color:var(--wt-danger);
}
.bill-card, .pos-total-box, .segmented-control, .booking-fields, .coupon-box,
.coupon-ticket, .coupon-choice, .location-choice-card, .save-address-panel,
.saved-address-empty, .checkout-account-note, .secure-points, .tracking-meta > span,
.payment-mode label, .payment-option.disabled, .success-payment-summary,
.upload-control, .workflow-strip > div, .printer-test-grid form,
.admin-details, .admin-integration-panel, .inline-checkbox-stack,
.hero-slide-help, .account-coupon-grid article, .support-grid article,
.auth-method-tabs, .ops-notice.is-unread, .chat-message, .chat-message.mine,
.captain-shared-panel, .cart-incentive, .food-type-row .inline-prep,
.recent-order-strip, .table-label-chip, .captain-editor .pos-total-box,
.captain-editor .pos-customer-details > summary,
.rider-payment-panel, .order-special-instructions, .kitchen-kot-head,
.kot-ready .kitchen-kot-head, .legal-hero {
  background:var(--wt-soft); color:var(--wt-text); border-color:var(--wt-border);
}
.segmented-control input:checked + span, .payment-option.selected,
.saved-address-chip.active {
  background:var(--wt-panel); color:var(--wt-accent-ink); border-color:var(--wt-accent);
}
/* Form fields keep their original controls, spacing and disabled behaviour. */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=submit]):not([type=button]),
select, textarea, .password-wrap, .admin-field select, .admin-field textarea,
.machine-pos-layout select, .machine-pos-layout option,
.field select, .field textarea, .checkout-form > .field select,
.filter-card select, .filter-card > select, .pos-catalog-toolbar select,
.account-field textarea, .form-control, .filter-bar select, .save-address-panel select {
  background-color:var(--wt-panel); color:var(--wt-text); border-color:var(--wt-border);
}
input::placeholder, textarea::placeholder { color:var(--wt-muted); opacity:1; }
input[type=checkbox], input[type=radio], input[type=range] { accent-color:var(--wt-accent); }
.admin-field input[readonly] { background:var(--wt-soft); color:var(--wt-muted); }
.admin-field > span, .admin-field > span:first-child, .account-field,
.login-form > label, .order-type-fieldset legend, .field label,
.otp-form .field > span, .save-address-panel label, .captain-shared-form label,
.inline-checkbox-stack label, .bill-line, .live-order-items p,
.booking-card > p, .order-special-instructions p, .order-special-instructions > div,
.captain-title strong, .captain-section-head h1, .live-order-top a,
.booking-card-top a, .legal-card p, .agent-install-notes ol,
.captain-table-card .table-minutes, .captain-table-card .table-amount {
  color:var(--wt-text);
}
.captain-title small, .captain-table-card .table-number,
.captain-table-card .table-state, .account-coupon-grid small, .payment-help,
.ops-notice small, .customer-controls small, .ops-settings p, .ops-table-card small,
.recent-order-copy small, .recent-order-copy > span, .addon-group-help,
.addon-choice > small, .kitchen-order-meta small, .rider-payment-panel p,
.captain-shared-panel p { color:var(--wt-muted); }
th, .table th { background:var(--wt-soft); color:var(--wt-muted); }
td, th { border-color:var(--wt-border); }
/* Accent buttons use the engine's contrasting foreground colour. */
.admin-primary, .account-primary, .dialog-add-button, .add-dialog-button,
.coupon-ticket > button, .promotion-card a, .promotion-card button,
.coupon-input-row button:first-of-type, .location-search-row button,
.save-address-panel button, .inline-quantity, .inline-quantity button,
.pos-category-button.is-selected, .button-primary, .button-primary:hover,
.avatar, .cash-person-card > span, .cash-hero-icon, .you-tag, .order-now-button {
  background:var(--wt-accent); color:var(--wt-accent-text); border-color:var(--wt-accent);
}
.admin-primary:hover, .account-primary:hover, .dialog-add-button:hover,
.order-now-button:hover { filter:brightness(.95); }
.admin-secondary, .account-secondary, .secondary-button, .round-button,
.add-button, .icon-action, .pagination a, .view-items-button,
.password-wrap button, .items-dialog > button, .dialog-x, .menu-button,
.admin-topbar #menuButton, .user-actions a, .user-actions button,
.kot-action a, .kot-action button, .pos-row-controls button,
.popular-category-list button, .coupon-input-row button, .coupon-dialog-head button,
.pos-category-button, .captain-icon-button, .captain-refresh-pill,
.button-secondary, .button-secondary:hover {
  background:var(--wt-panel); color:var(--wt-text); border-color:var(--wt-border);
}
.admin-secondary:hover, .account-secondary:hover, .add-button:hover,
.icon-action:hover, .category-card:hover, .payment-option:hover {
  background:var(--wt-soft); color:var(--wt-accent-ink); border-color:var(--wt-accent);
}
.account-install-button, .admin-install-button,
.rider-install-button, .kitchen-install-button {
  background:var(--wt-soft)!important; color:var(--wt-accent-ink)!important;
  border-color:var(--wt-border)!important;
}
.filter-chip { color:var(--wt-text); }
.filter-chip.active { background:var(--wt-accent); color:var(--wt-accent-text); border-color:var(--wt-accent); }
.admin-user > span, .stat-icon:not(.success):not(.danger):not(.purple):not(.blue),
.category-meta span, .customer-avatar, .account-avatar, .recent-order-icon {
  background:var(--wt-soft); color:var(--wt-accent-ink);
}
.danger-button, .account-danger, .account-inline-error, .form-error,
.admin-alert.error, .account-alert.error, .dialog-stock-out,
.user-actions button.danger-link, .inline-remove-form button {
  background:var(--wt-danger-soft); color:var(--wt-danger); border-color:var(--wt-danger);
}
/* Recent source styles use !important for banner framing. Only frame surfaces
   are replaced; image pixels, logo backgrounds and hero overlays are retained. */
.store-hero.hero-carousel, .store-hero.hero-carousel .hero-slides,
.store-hero.hero-carousel .hero-slide, .store-hero.hero-carousel .hero-slide img,
.hero-carousel .hero-inner {
  background-color:var(--wt-soft)!important;
}
.hero-actions.hero-actions-below .hero-action {
  background:var(--wt-panel)!important; color:var(--wt-text)!important;
  border-color:var(--wt-border)!important;
}
.store-hero.hero-carousel .install-button,
.store-hero.hero-carousel .brand-row.brand-row-no-logo .install-button,
.store-hero.hero-carousel .brand-row.banner-install-row .install-button {
  background:var(--wt-panel)!important; color:var(--wt-text)!important;
  border-color:var(--wt-border)!important;
}
/* Inventory used fixed dark gradients even where the rest uses tokens. */
.auth-shell { background:var(--wt-bg); }
.auth-shell .login-brand { background:var(--wt-soft); color:var(--wt-text); }
.app-shell .text-link, .app-shell .eyebrow, .app-shell .nav-icon,
.app-shell .list-card-icon, .app-shell .rank-number,
.auth-shell .eyebrow { color:var(--wt-accent-ink); }
.product-combo-option:hover, .product-combo-option:focus {
  background:var(--wt-accent); color:var(--wt-accent-text);
}
.product-combo-option:hover small, .product-combo-option:focus small {
  color:var(--wt-accent-text);
}
.app-shell .badge-usage, .app-shell .badge-wastage,
.app-shell .badge-adjustment_remove, .app-shell .badge-return_supplier {
  background:var(--wt-danger-soft); color:var(--wt-danger);
}

/* Light/Dark changes only the restaurant's left navigation, never its forms. */
.admin-sidebar, .sidebar, .captain-drawer {
  --sidebar:var(--wt-sidebar-panel);
  --panel:var(--wt-sidebar-panel); --panel-soft:var(--wt-sidebar-soft);
  --text:var(--wt-sidebar-text); --muted:var(--wt-sidebar-muted);
  --border:var(--wt-sidebar-border); --gold-light:var(--wt-sidebar-accent-ink);
  background:var(--wt-sidebar-panel); color:var(--wt-sidebar-text);
  border-color:var(--wt-sidebar-border);
}
.admin-sidebar .admin-brand, .sidebar .brand-logo-link, .captain-drawer-head {
  background:var(--wt-sidebar-panel); color:var(--wt-sidebar-text);
  border-color:var(--wt-sidebar-border);
}
.admin-sidebar .admin-nav a, .admin-sidebar .admin-nav-form button,
.admin-sidebar .sidebar-footer a, .admin-sidebar .sidebar-footer button,
.sidebar .nav-link, .sidebar .sidebar-action, .captain-drawer a {
  color:var(--wt-sidebar-muted);
}
.admin-sidebar .admin-brand small, .sidebar .user-card small,
.sidebar .brand-copy small { color:var(--wt-sidebar-muted); }
.admin-sidebar .admin-nav a:hover, .admin-sidebar .admin-nav-form button:hover,
.admin-sidebar .sidebar-footer a:hover, .admin-sidebar .sidebar-footer button:hover,
.sidebar .nav-link:hover, .sidebar .sidebar-action:hover, .captain-drawer a:hover {
  background:var(--wt-sidebar-soft); color:var(--wt-sidebar-text);
}
.admin-sidebar .admin-nav a.active, .sidebar .nav-link.active,
.captain-drawer a.active {
  background:var(--wt-sidebar-soft); color:var(--wt-sidebar-accent-ink);
  border-color:var(--wt-accent);
}
.sidebar .nav-icon, .admin-sidebar .admin-brand strong,
.sidebar .user-card strong, .captain-drawer strong { color:var(--wt-sidebar-text); }
.admin-sidebar .sidebar-footer, .sidebar .sidebar-footer { border-color:var(--wt-sidebar-border); }
.admin-sidebar .sidebar-close { color:var(--wt-sidebar-text); }
/* Urgent stock cards still blink red while retaining a readable light surface. */
.app-shell .stat-alarm { animation-name:wt-stock-alert; color:var(--wt-danger); }
.app-shell .stat-alarm .stat-icon { color:var(--wt-danger); background:var(--wt-danger-soft); border-color:var(--wt-danger); }
@keyframes wt-stock-alert { 0%,100% { background:var(--wt-panel); } 50% { background:var(--wt-danger-soft); } }

}
