/* ===========================================================================
   MARY'S TAMALES — MINIMAL UI SYSTEM
   Single visual source of truth for the authenticated application.
   Brand palette: #396743, #D7191B, #75160F, #FFD62E, charcoal/neutrals.
   Loaded LAST on purpose so legacy/template colors cannot leak into the UI.
   ========================================================================== */
:root {
  --marys-green: #396743;
  --marys-green-dark: #315a3a;
  --marys-green-soft: #edf5ef;
  --marys-red: #d7191b;
  --marys-red-dark: #75160f;
  --marys-red-soft: #fbeaec;
  --marys-yellow: #ffd62e;
  --marys-yellow-dark: #765b00;
  --marys-yellow-soft: #fff7d6;
  --marys-charcoal: #2b2f33;
  --marys-text: #2f3431;
  --marys-text-muted: #6f7772;
  --marys-page: #f7f8f7;
  --marys-surface: #ffffff;
  --marys-surface-muted: #f1f3f2;
  --marys-border: #e2e6e3;
  --marys-border-strong: #cdd3cf;
  --marys-focus: rgba(57, 103, 67, .16);

  /* Bootstrap semantic bridge */
  --bs-primary: #396743;
  --bs-primary-rgb: 57, 103, 67;
  --bs-success: #396743;
  --bs-success-rgb: 57, 103, 67;
  --bs-danger: #d7191b;
  --bs-danger-rgb: 215, 25, 27;
  --bs-warning: #ffd62e;
  --bs-warning-rgb: 255, 214, 46;
  --bs-info: #59635d;
  --bs-info-rgb: 89, 99, 93;
  --bs-body-color: #2f3431;
  --bs-body-bg: #f7f8f7;
  --bs-border-color: #e2e6e3;
  --bs-link-color: #396743;
  --bs-link-hover-color: #315a3a;
}

html, body { background: var(--marys-page); color: var(--marys-text); }
body, .content-page, .content { background-color: var(--marys-page) !important; }
a { color: var(--marys-green); }
a:hover { color: var(--marys-green-dark); }

/* Structure: quiet surfaces, thin borders, almost no decorative shadow. */
.card,
.modal-content,
.dropdown-menu,
.offcanvas,
.accordion-item,
.list-group-item,
.table-responsive,
.bootstrap-table .fixed-table-container {
  border-color: var(--marys-border) !important;
  box-shadow: none !important;
}
.card { border-radius: 12px !important; background: var(--marys-surface); }
.card-header, .card-footer { background: var(--marys-surface) !important; border-color: var(--marys-border) !important; }
.page-title-box h4, h1, h2, h3, h4, h5, h6 { color: var(--marys-charcoal); }
.text-muted { color: var(--marys-text-muted) !important; }

/* Topbar/sidebar: neutral first, brand only for selection. */
.navbar-custom, .bg-color-3 { background: var(--marys-charcoal) !important; }
.app-menu { background: var(--marys-surface) !important; border-right: 1px solid var(--marys-border); }
.app-menu .logo-box { background: var(--marys-surface) !important; }
.menu .menu-title { color: #929994 !important; letter-spacing: .055em; }
.menu .menu-item .menu-link,
.menu .menu-item .menu-link:visited,
.menu .menu-item .menu-link .menu-text,
.menu .menu-item .menu-link .menu-icon { color: #69716c !important; }
.menu .menu-item .menu-link:hover,
.menu .menu-item .menu-link:hover .menu-text,
.menu .menu-item .menu-link:hover .menu-icon { color: var(--marys-charcoal) !important; }
.menu .menu-item .menu-link.active,
.menu .menu-item.active > .menu-link,
.menu .menu-item .menu-link[aria-current="page"] {
  background: var(--marys-green-soft) !important;
  color: var(--marys-green-dark) !important;
}
.menu .menu-item .menu-link.active .menu-text,
.menu .menu-item .menu-link.active .menu-icon,
.menu .menu-item.active > .menu-link .menu-text,
.menu .menu-item.active > .menu-link .menu-icon { color: var(--marys-green-dark) !important; }

/* Primary actions: one restrained brand green. */
.btn-primary,
.btn-save,
.btn-color-4,
.btn-color-gray,
.bg-primary,
.bg-color-1,
.bg-color-2,
.bg-color-4 {
  background-color: var(--marys-green) !important;
  border-color: var(--marys-green) !important;
  color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus,
.btn-save:hover, .btn-save:focus,
.btn-color-4:hover, .btn-color-4:focus,
.btn-color-gray:hover, .btn-color-gray:focus {
  background-color: var(--marys-green-dark) !important;
  border-color: var(--marys-green-dark) !important;
  color: #fff !important;
}
.btn-outline-primary,
.btn-save-outline,
.btn-color-4-outline {
  background: #fff !important;
  border-color: var(--marys-green) !important;
  color: var(--marys-green) !important;
}
.btn-outline-primary:hover, .btn-outline-primary:focus,
.btn-save-outline:hover, .btn-color-4-outline:hover {
  background: var(--marys-green) !important;
  border-color: var(--marys-green) !important;
  color: #fff !important;
}

/* Secondary actions stay neutral instead of becoming another brand color. */
.btn-secondary, .btn-cancel {
  background: #5f6762 !important;
  border-color: #5f6762 !important;
  color: #fff !important;
}
.btn-secondary:hover, .btn-cancel:hover { background: #4d544f !important; border-color: #4d544f !important; }
.btn-outline-secondary, .btn-cancel-outline {
  background: #fff !important;
  color: #5f6762 !important;
  border-color: #aeb5b0 !important;
}
.btn-outline-secondary:hover, .btn-cancel-outline:hover { background: var(--marys-surface-muted) !important; color: var(--marys-charcoal) !important; }

/* Destructive actions use the corporate red; no decorative red elsewhere. */
.btn-danger { background: var(--marys-red) !important; border-color: var(--marys-red) !important; color:#fff !important; }
.btn-danger:hover, .btn-danger:focus { background: var(--marys-red-dark) !important; border-color: var(--marys-red-dark) !important; }
.btn-outline-danger { color: var(--marys-red-dark) !important; border-color: #d79a9a !important; background:#fff !important; }
.btn-outline-danger:hover { background: var(--marys-red-soft) !important; color: var(--marys-red-dark) !important; border-color:#d79a9a !important; }

/* Legacy info/purple/blue buttons are normalized to neutral/brand. */
.btn-info, .btn-purple, .btn-blue, .btn-light-primary { background: var(--marys-green) !important; border-color: var(--marys-green) !important; color:#fff !important; }
.btn-outline-info, .btn-outline-purple { color: var(--marys-green) !important; border-color: var(--marys-green) !important; background:#fff !important; }
.text-primary, .text-info, .text-purple, .color-1, .color-2, .color-4, .color-5 { color: var(--marys-green) !important; }

/* Forms: calm, consistent focus ring. */
.form-control, .form-select, .select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  border-color: var(--marys-border-strong) !important;
  background-color: #fff !important;
  color: var(--marys-text) !important;
}
.form-control:focus, .form-select:focus,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default .select2-selection--single:focus {
  border-color: var(--marys-green) !important;
  box-shadow: 0 0 0 .2rem var(--marys-focus) !important;
}
.form-check-input:checked { background-color: var(--marys-green) !important; border-color: var(--marys-green) !important; }
.form-check-input:focus { border-color: var(--marys-green) !important; box-shadow: 0 0 0 .2rem var(--marys-focus) !important; }

/* Tabs/pagination: subtle selected state instead of saturated blocks. */
.nav-pills .nav-link.active,
.nav-tabs .nav-link.active,
.pagination .page-item.active .page-link {
  background: var(--marys-green-soft) !important;
  border-color: var(--marys-border) !important;
  color: var(--marys-green-dark) !important;
}
.pagination .page-link { color: var(--marys-text-muted) !important; border-color: var(--marys-border) !important; }
.pagination .page-link:hover { background: var(--marys-surface-muted) !important; color: var(--marys-charcoal) !important; }

/* Semantic traffic-light states: pastel surface + dark readable text. */
.alert-success, .badge.bg-success, .bg-success-subtle, .badge-active {
  background: var(--marys-green-soft) !important;
  color: var(--marys-green-dark) !important;
  border-color: #cfe1d3 !important;
}
.alert-warning, .badge.bg-warning, .bg-warning-subtle {
  background: var(--marys-yellow-soft) !important;
  color: var(--marys-yellow-dark) !important;
  border-color: #eadb9b !important;
}
.alert-danger, .badge.bg-danger, .bg-danger-subtle {
  background: var(--marys-red-soft) !important;
  color: var(--marys-red-dark) !important;
  border-color: #e8c4c6 !important;
}
.alert-info, .badge.bg-info, .bg-info-subtle {
  background: var(--marys-surface-muted) !important;
  color: #505852 !important;
  border-color: var(--marys-border) !important;
}
.text-success { color: var(--marys-green-dark) !important; }
.text-danger { color: var(--marys-red-dark) !important; }
.text-warning { color: var(--marys-yellow-dark) !important; }
.bg-success:not(.badge), .bg-danger:not(.badge), .bg-warning:not(.badge), .bg-info:not(.badge) { color: inherit; }

/* Level badges no longer create a rainbow. Level is conveyed by text/number. */
.badge-level-1, .badge-level-2, .badge-level-3, .badge-level-4, .badge-level-5 {
  background: var(--marys-surface-muted) !important;
  color: #505852 !important;
  border: 1px solid var(--marys-border) !important;
}

/* Tables */
.table { --bs-table-bg: transparent; --bs-table-striped-bg: #fafbfa; --bs-table-hover-bg: #f4f6f4; color: var(--marys-text); }
.table > :not(caption) > * > * { border-bottom-color: var(--marys-border) !important; }
.table thead th, .bootstrap-table .fixed-table-container .table thead th { color: #59615c !important; background:#fafbfa !important; }

/* Dropdowns and SweetAlert */
.dropdown-item.active, .dropdown-item:active { background: var(--marys-green-soft) !important; color: var(--marys-green-dark) !important; }
.swal2-confirm { background: var(--marys-green) !important; }
.swal2-cancel { background: #5f6762 !important; }
.swal2-deny { background: var(--marys-red) !important; }

/* Dashboard: one visual language, semantic color only where useful. */
.dash-kpi, .dash-section, .rpt-summary-card, .rpt-chart-box, .rpt-table-section {
  border: 1px solid var(--marys-border) !important;
  border-left-width: 1px !important;
  box-shadow: none !important;
  background: var(--marys-surface) !important;
}
.dash-kpi-orders, .rpt-card-orders, .rpt-card-profit { border-top: 3px solid var(--marys-green) !important; }
.dash-kpi-income, .rpt-card-income { border-top: 3px solid var(--marys-green) !important; }
.dash-kpi-outflow, .rpt-card-expense { border-top: 3px solid var(--marys-red) !important; }
.dash-kpi-receivable, .dash-kpi-payable, .rpt-card-receivable, .rpt-card-payable { border-top: 3px solid #d7bd56 !important; }
.dash-value.text-purple, .rpt-value.text-purple, .rpt-value.text-info { color: var(--marys-charcoal) !important; }
.dash-value.text-success, .rpt-value.text-success { color: var(--marys-green-dark) !important; }
.dash-value.text-danger, .rpt-value.text-danger { color: var(--marys-red-dark) !important; }
.dash-value.text-warning, .dash-value.text-yellow, .rpt-value.text-warning { color: var(--marys-yellow-dark) !important; }
.dash-shortcut-card {
  color: var(--marys-green) !important;
  border-color: var(--marys-border) !important;
  box-shadow: none !important;
  background: #fff !important;
}
.dash-shortcut-card:hover { transform: translateY(-2px) !important; border-color: #bdc8c0 !important; box-shadow: 0 8px 20px rgba(43,47,51,.06) !important; }
.dash-shortcut-card--primary,
.dash-shortcut-card--info,
.dash-shortcut-card--secondary,
.dash-shortcut-card--warning,
.dash-shortcut-card--dark { color: var(--marys-green) !important; }
.dash-shortcut-icon { background: var(--marys-green-soft) !important; }
.dash-shortcut-icon .mdi, .dash-shortcut-icon .mdi::before { color: var(--marys-green-dark) !important; }

/* Sales workspace: remove blue/orange decorative palette. */
.sales-admin {
  --sales-border: var(--marys-border) !important;
  --sales-surface: #fff !important;
  --sales-muted: var(--marys-text-muted) !important;
  --sales-ink: var(--marys-text) !important;
  --sales-shadow: 0 10px 24px rgba(43,47,51,.06) !important;
}
.sales-context-bar, .sales-flow-card, .sales-card, .sales-panel { box-shadow: none !important; border-color: var(--marys-border) !important; }
.sales-context-bar { background: #fff !important; }
.sales-context-icon, .sales-section-icon { background: var(--marys-green-soft) !important; color: var(--marys-green-dark) !important; }
.sales-eyebrow { color: var(--marys-green-dark) !important; }
.sales-flow-card--sale, .sales-flow-card--pending, .sales-flow-card--large { color: var(--marys-green) !important; }
.sales-flow-card:hover, .sales-flow-card:focus-within { border-color: #bdc8c0 !important; transform: translateY(-2px) !important; }
.sales-context-warning { background: var(--marys-yellow-soft) !important; color: var(--marys-yellow-dark) !important; }
[data-sales-connection-state="online"], [data-sales-sync-state="idle"] { color: var(--marys-green-dark) !important; }
[data-sales-connection-state="offline"], [data-sales-sync-state="pending"] { color: var(--marys-yellow-dark) !important; }
[data-sales-sync-state="conflict"] { color: var(--marys-red-dark) !important; }

.sales-admin {
  --bs-primary: var(--marys-green) !important;
  --bs-primary-rgb: 57, 103, 67 !important;
  --bs-link-color: var(--marys-green) !important;
  --bs-link-hover-color: var(--marys-green-dark) !important;
}
.sales-stepper span.is-active { color: var(--marys-green-dark) !important; }
.sales-stepper span.is-active b { background: var(--marys-green) !important; color: #fff !important; }
.sales-product-search input:focus,
.sales-list-filter input:focus {
  border-color: var(--marys-green) !important;
  box-shadow: 0 0 0 .2rem rgba(57,103,67,.12) !important;
}
.sales-category-tab {
  background: #fff !important;
  color: var(--marys-text) !important;
  border-color: var(--marys-border) !important;
  box-shadow: none !important;
}
.sales-category-tab:hover {
  background: var(--marys-surface-muted) !important;
  color: var(--marys-text) !important;
  border-color: #cfd6d1 !important;
}
.sales-category-tab.is-active,
.sales-category-tab[aria-selected="true"] {
  background: var(--marys-green) !important;
  color: #fff !important;
  border-color: var(--marys-green) !important;
}
.sales-product-card:hover,
.sales-product-card:focus-visible {
  border-color: #c9d6cd !important;
  box-shadow: 0 12px 24px rgba(43,47,51,.08) !important;
}
.sales-product-price { color: var(--marys-charcoal) !important; }
.sales-product-add {
  background: var(--marys-green) !important;
  color: #fff !important;
  box-shadow: none !important;
}
.sales-product-add:hover,
.sales-product-add:focus {
  background: var(--marys-green-dark) !important;
  color: #fff !important;
}
.sales-cart-count {
  background: var(--marys-green-soft) !important;
  color: var(--marys-green-dark) !important;
}
.sales-cart-total {
  background: var(--marys-surface-muted) !important;
}
.sales-cart-total strong,
.sales-cart-total > span { color: var(--marys-charcoal) !important; }
.sales-order-server-state:not(:empty) {
  background: var(--marys-green-soft) !important;
  color: var(--marys-green-dark) !important;
}
.sales-customer-option:hover,
.sales-customer-option:focus { background: var(--marys-surface-muted) !important; }
.sales-selected-customer {
  background: var(--marys-green-soft) !important;
  color: var(--marys-green-dark) !important;
}
.sales-summary-pill,
.sales-status-badge {
  background: var(--marys-surface-muted) !important;
  color: var(--marys-text) !important;
}
.sales-receipt-card--pending { background: var(--marys-yellow-soft) !important; border-color: #ead9a4 !important; }
.sales-receipt-card--pending::before { background: #b28719 !important; }
.sales-receipt-card--ready {
  background: var(--marys-green-soft) !important;
  border-color: #cfe1d3 !important;
}
.sales-receipt-card--ready::before { background: var(--marys-green) !important; }
.sales-receipt-card--ready .sales-receipt-status-icon { color: var(--marys-green-dark) !important; }
.sales-presentation-option:hover {
  border-color: #c9d6cd !important;
  background: var(--marys-surface-muted) !important;
}
.sales-cart-mobile-close {
  background: var(--marys-surface-muted) !important;
  color: var(--marys-text) !important;
}
.sales-cart-mobile-trigger {
  background: var(--marys-green) !important;
  border-color: var(--marys-green) !important;
  box-shadow: 0 18px 42px rgba(43,47,51,.18) !important;
}
.sales-cart-mobile-trigger:not(:disabled):hover {
  background: var(--marys-green-dark) !important;
  box-shadow: 0 20px 46px rgba(43,47,51,.22) !important;
}
.sales-cart-mobile-trigger:focus-visible,
.sales-cart-mobile-close:focus-visible {
  outline: 3px solid rgba(57,103,67,.22) !important;
}

/* Operational modules use the same bridge variables, avoiding Bootstrap blue. */
.kitchen-orders, .accounts-receivable-workspace, .waiter-order-entry, .customer-order-entry {
  --bs-primary: var(--marys-green) !important;
  --bs-primary-rgb: 57,103,67 !important;
  --bs-success: var(--marys-green) !important;
  --bs-success-rgb: 57,103,67 !important;
  --bs-danger: var(--marys-red) !important;
  --bs-danger-rgb: 215,25,27 !important;
  --bs-warning: var(--marys-yellow) !important;
  --bs-warning-rgb: 255,214,46 !important;
}
.kitchen-hero, .kitchen-lane, .kitchen-ticket,
.ar-hero, .ar-stat-card, .ar-workspace, .ar-card { box-shadow: none !important; border-color: var(--marys-border) !important; }
.kitchen-kicker, .kitchen-context-strip i, .ar-kicker, .ar-context-strip i, .ar-stat-icon, .ar-upload-icon { color: var(--marys-green-dark) !important; }
.ar-stat-card.ar-stat-primary { background: var(--marys-green-soft) !important; border-color:#cfe1d3 !important; }
.ar-card:hover { border-color:#bdc8c0 !important; transform: translateY(-1px) !important; box-shadow:none !important; }

/* Prevent legacy theme utilities from reintroducing rainbow colors. */
.text-blue, .text-info, .text-purple, .text-pink, .text-cyan { color: var(--marys-green) !important; }
.bg-blue, .bg-purple, .bg-pink, .bg-info { background-color: var(--marys-surface-muted) !important; color: var(--marys-text) !important; }
.border-primary, .border-info, .border-purple { border-color: var(--marys-green) !important; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
