.sortable-heading { cursor: pointer; user-select: none; }
.sortable-heading::after { content: " ⇅"; color: #98a2b3; }
.sortable-heading[data-direction="asc"]::after { content: " ↑"; color: var(--primary); }
.sortable-heading[data-direction="desc"]::after { content: " ↓"; color: var(--primary); }
.badge-modified { background: #f1e9ff; color: #7040b5; }
.row-modified { background: #fcf9ff; }
.modify-summary { display: grid; gap: 3px; margin-top: 9px; padding: 9px 10px; border-left: 3px solid #8b5cf6; border-radius: 7px; background: #f7f3ff; color: #59358b; font-size: 12px; }
.modify-summary strong { font-size: 12px; }
.order-total-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.order-total-item { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 13px; background: var(--surface2); }
.order-total-item strong { font-size: 24px; color: var(--primary); }
.order-total-item span { font-weight: 750; }
.notification-list { display: grid; gap: 10px; }
.notification-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px; border: 1px solid #e4d8ff; border-radius: 12px; background: #fbf9ff; }
.notification-row small { display: block; margin-top: 4px; color: var(--muted); }
.notification-row > div { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.notification-row > div small { flex-basis: 100%; }
.notification-unread { border-color: #9e91ff; box-shadow: inset 4px 0 0 var(--primary); }
.notification-nav { display: flex; justify-content: space-between; align-items: center; }
.notification-nav span { display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--danger); color: #fff; font-size: 11px; font-weight: 900; }
.nav-group { border: 1px solid rgba(255,255,255,.06); border-radius: 10px; background: rgba(255,255,255,.025); }
.nav-group summary { position: relative; padding: 10px 30px 10px 12px; color: #9eabbc; cursor: pointer; list-style: none; font-size: 11px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.nav-group summary::-webkit-details-marker { display: none; }
.nav-group summary::after { content: "+"; position: absolute; right: 11px; top: 8px; font-size: 16px; font-weight: 500; }
.nav-group[open] summary::after { content: "−"; }
.nav-group > div { display: grid; gap: 2px; padding: 0 5px 6px; }
.nav-group > div a { padding: 8px 9px; font-size: 13px; }
.operations-grid { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 12px; }
.operations-grid a, .operations-grid button { padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface2); color: inherit; text-align: left; font: inherit; cursor: pointer; }
.operations-grid span { display: block; color: var(--muted); font-size: 12px; font-weight: 700; }
.operations-grid strong { display: block; margin-top: 7px; font-size: 24px; }
.operations-grid .operation-warning { border-color: #f0bd60; background: #fff8e9; color: #8a5a0a; }
.operations-grid .operation-danger { border-color: #f4a8b2; background: #fff1f3; color: #a5283a; }
.seller-operations-grid { grid-template-columns: repeat(6, minmax(120px, 1fr)); }
.dashboard-unassigned-orders { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.dashboard-unassigned-orders[hidden] { display: none; }
.dashboard-customer-assign { display: grid; grid-template-columns: minmax(230px, 1fr) auto; align-items: start; gap: 7px; min-width: 365px; }
.dashboard-customer-assign input[type="search"] { padding-block: 7px; }
.dashboard-customer-assign .customer-picker-status { margin-top: 4px; }
.dashboard-customer-assign > .btn { min-height: 38px; white-space: nowrap; }
.dashboard-customer-assign .customer-search-results { position: static; max-height: 190px; margin-top: 6px; padding: 5px; box-shadow: none; }
.dashboard-customer-assign .customer-search-option { padding: 8px 9px; }
.dashboard-customer-assign .customer-search-option + .customer-search-option { border-top: 1px solid var(--line); }
.driver-expense-edit { display: flex; align-items: center; gap: 8px; min-width: 190px; }
.driver-expense-edit input[type="number"] { width: 105px; }
.seller-menu-hero-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); gap: 16px; margin-bottom: 18px; }
.seller-menu-hero-grid .hero-card { min-width: 0; margin-bottom: 0; }
.dinner-hero-card { background: linear-gradient(135deg, #312e81, #7c3aed); }
.capacity-alert-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin-top: 14px; }
.capacity-alert-list div { display: flex; justify-content: space-between; gap: 10px; padding: 11px 13px; border-radius: 11px; background: #fff7e8; color: #875810; font-size: 12px; }
@media (max-width: 620px) { .notification-row { align-items: flex-start; flex-direction: column; } }
.admin-order-filters { display: grid; grid-template-columns: minmax(160px, .7fr) minmax(240px, 1.4fr) minmax(180px, .8fr) auto auto; gap: 12px; align-items: end; }
.auto-status-form { display: grid; gap: 5px; min-width: 145px; }
.auto-status-result { min-height: 16px; color: var(--muted); font-size: 11px; font-weight: 800; }
.auto-status-result.is-saved { color: #087a55; }
.auto-status-result.is-error { color: var(--danger); }
.order-filters select { min-width: 190px; }
@media (max-width: 900px) { .admin-order-filters { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .admin-order-filters { grid-template-columns: 1fr; } .order-filters { width: 100%; } .order-filters label { flex: 1; } }
.financial-date-filter { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; }
.financial-date-filter label { min-width: 180px; }
.compact-empty { min-height: 260px; }
@media (max-width: 620px) { .financial-date-filter, .financial-date-filter label { width: 100%; } }
.payment-deduction { color: var(--success); white-space: nowrap; }
.cashier-report-filters { display: grid; grid-template-columns: repeat(6, minmax(145px, 1fr)) auto; gap: 12px; align-items: end; }
.cashier-report-table { min-width: 1500px !important; }
.admin-receipt-thumb { display: block; width: 72px; height: 105px; border: 2px solid #d9e1ec; border-radius: 8px; object-fit: cover; background: #eef2f6; transition: transform .15s ease; }
.admin-receipt-thumb:hover { transform: scale(1.08); border-color: var(--primary); }
.cashier-report-table details { min-width: 175px; }
.cashier-report-table summary { cursor: pointer; }
.report-detail-line { display: flex; justify-content: space-between; gap: 14px; padding: 5px 0; border-bottom: 1px dashed var(--line); font-size: 12px; }
.report-detail-line span { color: var(--muted); }
.discount-line strong { color: var(--danger); }
.online-receipt-card { border-color: #dcd8ff; background: linear-gradient(135deg, #fff, #f8f6ff); }
.receipt-upload-form { display: grid; gap: 16px; }
.receipt-help { display: block; margin-top: 10px; color: var(--muted); }
.receipt-editor[hidden] { display: none; }
.receipt-editor { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(320px, 1.1fr); gap: 20px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #f7f9fc; }
.receipt-canvas-wrap { display: grid; place-items: center; min-height: 360px; max-height: 640px; padding: 14px; overflow: auto; border-radius: 13px; background: #202632; background-image: linear-gradient(45deg, #262d3a 25%, transparent 25%), linear-gradient(-45deg, #262d3a 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #262d3a 75%), linear-gradient(-45deg, transparent 75%, #262d3a 75%); background-size: 24px 24px; background-position: 0 0, 0 12px, 12px -12px, -12px 0; }
.receipt-crop-stage { position: relative; display: inline-block; max-width: 100%; line-height: 0; overflow: hidden; touch-action: none; user-select: none; box-shadow: 0 10px 30px rgba(0,0,0,.28); }
.receipt-crop-stage img { display: block; max-width: 100%; max-height: 600px; pointer-events: none; }
.receipt-crop-box { position: absolute; border: 3px solid #17e43f; box-shadow: 0 0 0 9999px rgba(10,15,25,.52), inset 0 0 0 1px rgba(0,0,0,.3); cursor: move; }
.receipt-crop-box [data-crop-handle] { position: absolute; width: 15px; height: 15px; border: 2px solid #087a24; border-radius: 50%; background: #20f04b; box-shadow: 0 1px 5px rgba(0,0,0,.4); }
.receipt-crop-box [data-crop-handle="nw"] { left: -9px; top: -9px; cursor: nwse-resize; }
.receipt-crop-box [data-crop-handle="n"] { left: calc(50% - 7px); top: -9px; cursor: ns-resize; }
.receipt-crop-box [data-crop-handle="ne"] { right: -9px; top: -9px; cursor: nesw-resize; }
.receipt-crop-box [data-crop-handle="e"] { right: -9px; top: calc(50% - 7px); cursor: ew-resize; }
.receipt-crop-box [data-crop-handle="se"] { right: -9px; bottom: -9px; cursor: nwse-resize; }
.receipt-crop-box [data-crop-handle="s"] { left: calc(50% - 7px); bottom: -9px; cursor: ns-resize; }
.receipt-crop-box [data-crop-handle="sw"] { left: -9px; bottom: -9px; cursor: nesw-resize; }
.receipt-crop-box [data-crop-handle="w"] { left: -9px; top: calc(50% - 7px); cursor: ew-resize; }
.receipt-editor-controls h3 { margin: 5px 0 6px; font-size: 16px; }
.receipt-editor-controls p { margin: 0 0 14px; color: var(--muted); font-size: 13px; }
.crop-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; margin-bottom: 18px; }
.crop-controls label { display: grid; grid-template-columns: 1fr auto; align-items: center; }
.crop-controls output { color: var(--primary); font-size: 12px; font-weight: 800; }
.crop-controls input[type="range"] { grid-column: 1 / -1; padding: 0; accent-color: var(--primary); }
.receipt-editor-controls .check-row { display: flex; margin: 6px 0 16px; }
.receipt-submit-row { display: flex; align-items: center; justify-content: flex-end; gap: 12px; flex-wrap: wrap; }
.receipt-processing-message { margin: 0; color: var(--primary); font-weight: 700; }
.receipt-review-layout { display: grid; grid-template-columns: minmax(300px, .65fr) minmax(540px, 1.35fr); gap: 18px; align-items: start; }
.ocr-confidence { display: grid; grid-template-columns: 1fr minmax(180px, .5fr); gap: 14px; align-items: center; margin-bottom: 18px; padding: 14px 16px; border-radius: 13px; background: #fff; border: 1px solid var(--line); }
.ocr-confidence span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.ocr-confidence progress { width: 100%; accent-color: var(--primary); }
.ocr-confidence-good { border-color: #9ee2ca; }
.ocr-confidence-warning { border-color: #f0bd60; background: #fffaf0; }
.ocr-confidence-low { border-color: #f4a8b2; background: #fff5f6; }
.ocr-field-review input { border-color: #e7a640; background: #fffaf0; }
.receipt-review-image-card { position: sticky; top: 18px; }
.receipt-review-image-card img { display: block; width: 100%; max-height: 78vh; object-fit: contain; border-radius: 12px; background: #222936; }
.receipt-confirm-actions { display: flex; justify-content: flex-end; gap: 12px; flex-wrap: wrap; border: 2px solid #dcd8ff; }
.receipt-edit-grid input::placeholder { color: #b1551a; }
.receipt-items-edit-table input { min-width: 105px; }
.receipt-money-edit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: end; }
.receipt-total-edit { grid-column: span 3; padding: 15px; border-radius: 13px; background: linear-gradient(135deg, #f0edff, #e7e4ff); }
.receipt-total-edit input { font-size: 20px; font-weight: 900; border-color: #8c7cff; }
.receipt-total-edit small { color: #5146ad; font-weight: 700; }
.receipt-cancel-form { display: flex; justify-content: flex-end; margin: -7px 0 18px; }
.manual-sale-card summary, .raw-ocr summary { cursor: pointer; font-weight: 800; }
.manual-sale-content { margin-top: 20px; }
.receipt-meta-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.receipt-meta-grid > div, .receipt-totals > div { padding: 14px; border-radius: 12px; background: var(--surface2); }
.receipt-meta-grid span, .receipt-totals span { display: block; color: var(--muted); font-size: 12px; }
.receipt-meta-grid strong, .receipt-totals strong { display: block; margin-top: 5px; }
.receipt-totals { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.receipt-grand-total { color: #fff; background: linear-gradient(135deg, var(--primary), var(--primary2)) !important; }
.receipt-grand-total span { color: #eae7ff; }
.receipt-grand-total strong { font-size: 22px; }
.receipt-grand-total small { display: block; margin-top: 6px; color: #eae7ff; }
.raw-ocr pre { overflow: auto; max-height: 360px; padding: 14px; border-radius: 10px; background: #111827; color: #e5e7eb; white-space: pre-wrap; }
.compact-field { margin-bottom: 8px; font-size: 11px; }
.compact-field:last-child { margin-bottom: 0; }
.food-size-options { display: grid; gap: 7px; margin-top: 10px; }
.food-size-option { display: grid; grid-template-columns: minmax(70px, 1fr) 75px 105px; align-items: center; gap: 8px; min-height: 48px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface2); }
.size-option-price { color: var(--primary); font-weight: 900; text-align: right; }
.compact-quantity { display: flex; align-items: center; gap: 6px; font-size: 11px; }
.compact-quantity input { width: 62px; min-width: 0; padding: 6px 7px; text-align: center; }
.menu-card > div { padding: 13px; }
.menu-card h3 { font-size: 17px; margin-bottom: 4px; }
.seller-price-list { display: grid; gap: 14px; margin-bottom: 18px; }
.seller-price-card { display: grid; grid-template-columns: minmax(180px, .35fr) minmax(600px, 1.65fr); gap: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 15px; background: #fbfcfe; }
.seller-price-food { display: flex; align-items: center; gap: 12px; }
.seller-price-food img { width: 72px; height: 72px; border-radius: 12px; object-fit: cover; }
.seller-price-food h3, .size-price-option h4 { margin: 0; }
.size-price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.size-price-option { display: grid; gap: 9px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.size-price-option > span { color: var(--muted); font-size: 12px; }
.seller-pricing-table table { min-width: 820px; }
.seller-pricing-table td { vertical-align: middle; }
.compact-price-field { display: grid; gap: 6px; min-width: 180px; }
.compact-price-field > span { color: var(--muted); font-size: 11px; font-weight: 600; white-space: nowrap; }
.compact-price-field input { padding: 8px 10px; }
.compact-price-field small { margin: 0; color: var(--success); font-weight: 800; }
.mobile-size-label { display: none; color: var(--text) !important; font-size: 13px !important; font-weight: 900 !important; }
.food-thumb { width: 58px; height: 58px; flex: 0 0 58px; border-radius: 11px; object-fit: cover; background: var(--surface2); }
.food-edit-preview { display: block; width: 180px; max-height: 180px; border-radius: 14px; object-fit: cover; border: 1px solid var(--line); }
.analytics-filter { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)) auto; gap: 12px; align-items: end; }
.seller-analytics-filter { grid-template-columns: repeat(3, minmax(170px, 1fr)) auto; }
.analytics-export-actions { display: flex; gap: 8px; }
.analytics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.analytics-grid .card { min-width: 0; margin-bottom: 0; }
.analytics-wide { grid-column: 1 / -1; }
.chart-list { display: grid; gap: 13px; margin-top: 16px; }
.chart-row { display: grid; grid-template-columns: minmax(150px, .9fr) minmax(140px, 1.5fr) auto; gap: 12px; align-items: center; }
.chart-label { display: grid; gap: 3px; min-width: 0; }
.chart-label strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chart-label span { color: var(--muted); font-size: 11px; }
.chart-row progress, .analytics-grid table progress { width: 100%; height: 12px; accent-color: var(--primary); }
.analytics-mini-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.comparison-strip { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: -4px 0 18px; padding: 13px 16px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.comparison-strip span { margin-right: auto; color: var(--muted); font-size: 12px; }
.comparison-strip strong { padding: 6px 9px; border-radius: 9px; font-size: 12px; }
.comparison-strip .positive { color: #087451; background: #eaf9f2; }
.comparison-strip .negative { color: #a5283a; background: #fff0f2; }
.summary-grid-item { padding: 14px; border-radius: 12px; background: var(--surface2); }
.summary-grid-item span { display: block; color: var(--muted); font-size: 12px; }
.summary-grid-item strong { display: block; margin-top: 5px; font-size: 18px; }
.health-small { font-size: 14px !important; overflow-wrap: anywhere; }
.text-danger { color: var(--danger); }
.backup-restore-form { display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 12px; align-items: end; padding-top: 14px; border-top: 1px solid var(--line); }
.inventory-filter { display: grid; grid-template-columns: repeat(2, minmax(180px, 1fr)) auto; gap: 12px; align-items: end; }
.table-wrap progress { width: 150px; accent-color: var(--primary); }
.admin-customer-list { display: grid; gap: 12px; }
.admin-customer-row { display: grid; grid-template-columns: 72px 1fr auto; gap: 13px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcfe; }
.admin-customer-row img, .customer-image-placeholder { width: 72px; height: 72px; border-radius: 12px; object-fit: cover; }
.customer-image-placeholder { display: grid; place-items: center; background: var(--surface2); color: var(--muted); font-size: 10px; }
.admin-customer-row span, .admin-customer-row small { display: block; margin-top: 4px; color: var(--muted); }
.customer-edit-image { width: 220px; max-height: 180px; object-fit: cover; border-radius: 14px; }
.driver-delivery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.driver-stop-card { margin-bottom: 0; overflow: hidden; }
.driver-shop-image { width: calc(100% + 44px); height: 190px; margin: -22px -22px 20px; object-fit: cover; }
.driver-address { color: var(--muted); }
.driver-item-list { display: grid; gap: 8px; margin: 14px 0; padding: 12px; border-radius: 12px; background: var(--surface2); }
.driver-item-list div { display: flex; gap: 8px; }
.driver-actions, .driver-status-form { display: flex; gap: 9px; margin-top: 12px; }
.driver-status-form select { flex: 1; }
.driver-finance-summary { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.driver-finance-summary small { display: block; margin-top: 5px; color: var(--muted); }
.driver-collection-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.driver-collection-toolbar h2, .driver-collection-toolbar p { margin: 0; }
.driver-collection-toolbar p { margin-top: 5px; color: var(--muted); }
.driver-money-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfe; }
.driver-money-row span, .driver-money-row strong { display: block; }
.driver-money-row > div > span { margin-bottom: 4px; color: var(--muted); font-size: 13px; }
.driver-collection-form { margin-top: 9px; }
.driver-collection-form .btn { width: 100%; }
.driver-finance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.driver-finance-card { margin-bottom: 0; }
.driver-finance-numbers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 16px 0; }
.driver-finance-numbers div { padding: 12px; border-radius: 12px; background: var(--surface2); }
.driver-finance-numbers span, .driver-finance-numbers strong { display: block; }
.driver-finance-numbers span { margin-bottom: 5px; color: var(--muted); font-size: 12px; }
.driver-cost-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: end; }
.driver-cost-form .checkbox-row { align-self: center; }
.admin-order-date-card { padding-block: 16px; }
.admin-delivery-selectors { margin-bottom: 22px; padding: 16px; border-radius: 14px; background: var(--surface2); }
.admin-customer-selector { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 9px; }
.admin-customer-selector .btn { min-height: 42px; white-space: nowrap; }
.admin-food-heading { padding-top: 2px; border-top: 1px solid var(--line); }
.admin-customer-order-cards { align-items: start; margin-top: 4px; }
.admin-customer-order-cards .menu-card { min-width: 0; background: #fbfcfe; }
.admin-customer-order-cards .menu-card > div { padding: 13px; }
.admin-food-card-title { display: flex; align-items: center; gap: 11px; min-width: 0; }
.admin-food-card-title img, .admin-food-image-placeholder { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 11px; }
.admin-food-card-title img { object-fit: cover; }
.admin-food-image-placeholder { display: grid; place-items: center; background: linear-gradient(135deg, #eeeaff, #e6ecff); color: var(--primary2); font-size: 18px; font-weight: 900; }
.admin-food-card-title h3 { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.admin-order-submit { display: flex; justify-content: flex-end; margin-top: 14px; }
.admin-order-submit .btn { min-width: 220px; }
.sidebar-backdrop { display: none; }
.account-actions { display: grid; gap: 8px; margin-top: auto; }
.account-actions .logout-form { margin-top: 0; }
.login-options { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.login-options > a, .auth-back-link { color: var(--primary2); font-size: 13px; font-weight: 800; }
.profile-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(260px, .7fr); gap: 18px; }
.profile-summary { display: grid; gap: 12px; }
.profile-summary div { padding: 13px; border-radius: 12px; background: var(--surface2); }
.profile-summary span, .profile-summary strong { display: block; }
.profile-summary span { margin-bottom: 5px; color: var(--muted); font-size: 12px; }
.reset-link-box { overflow-wrap: anywhere; }
.reset-link-box a { color: var(--primary2); font-weight: 800; text-decoration: underline; }
.customer-picker { position: relative; }
.customer-picker input[type="search"] { padding-right: 38px; }
.customer-search-results { position: absolute; top: calc(100% - 2px); right: 0; left: 0; z-index: 12; display: grid; max-height: 310px; overflow-y: auto; padding: 7px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 18px 36px rgba(28,43,70,.16); }
.customer-search-results[hidden] { display: none; }
.customer-search-option { display: grid; gap: 3px; width: 100%; padding: 11px; border: 0; border-radius: 9px; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.customer-search-option:hover, .customer-search-option.active { background: var(--surface2); }
.customer-search-option strong, .customer-search-option span { display: block; }
.customer-search-option span { color: var(--muted); font-size: 12px; }
.customer-picker-status { min-height: 19px; margin-top: 7px; color: var(--muted); font-size: 12px; }
.customer-picker-status.selected { color: var(--success); font-weight: 800; }
.expense-entry-layout { grid-template-columns: minmax(430px, 1fr) minmax(330px, .8fr); }
.expense-stats { grid-template-columns: 1fr; }
.expense-category-list { display: grid; gap: 8px; }
.expense-category-list div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 12px; border-radius: 10px; background: var(--surface2); }
.expense-filters { grid-template-columns: repeat(4, minmax(150px, 1fr)) auto; }
.report-metric-card { position: relative; color: inherit; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.report-metric-card:hover { transform: translateY(-3px); border-color: #a99fff; box-shadow: 0 20px 42px rgba(79,70,229,.14); }
.report-metric-card.active { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(109,93,252,.12), var(--shadow); }
.report-metric-card small { display: block; margin-top: 9px; color: var(--primary2); font-size: 11px; font-weight: 800; }
.report-detail-card { scroll-margin-top: 18px; }
.report-detail-card h3 { margin: 24px 0 10px; }
.report-calculation { display: flex; align-items: stretch; gap: 10px; margin: 6px 0 22px; padding: 14px; border-radius: 14px; background: var(--surface2); }
.report-calculation > div { flex: 1; padding: 12px; border-radius: 10px; background: #fff; }
.report-calculation span, .report-calculation strong { display: block; }
.report-calculation div > span { color: var(--muted); font-size: 12px; }
.report-calculation div > strong { margin-top: 5px; font-size: 20px; }
.report-calculation .report-operator { align-self: center; color: var(--muted); font-size: 24px; font-weight: 900; }
.report-calculation .report-result { background: linear-gradient(135deg, #6d5dfc, #4f46e5); color: #fff; }
.report-calculation .report-result span { color: #e9e5ff; }
.report-click-hint { text-align: center; }
.balance-sheet-filter { display: grid; grid-template-columns: repeat(3, minmax(170px, 1fr)) auto auto; gap: 12px; align-items: end; }
.balance-sheet-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.balance-sheet-help { line-height: 1.6; }
.balance-sheet-table tfoot th { padding: 14px 10px; border-top: 2px solid var(--line); background: var(--surface2); text-align: left; }
.customer-order-choice { order: 1; border-color: #c9c4ff; background: linear-gradient(145deg,#fbfaff,#f4f3ff); }
.general-stock-choice { order: 2; }
.seller-account-list, .seller-driver-list { display: grid; gap: 10px; }
.seller-account-row { display: grid; grid-template-columns: minmax(220px,1fr) auto minmax(340px,auto); gap: 14px; align-items: center; padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: #fbfcfe; }
.seller-account-row span, .seller-account-row small, .seller-driver-row span, .seller-driver-row small { display: block; margin-top: 4px; color: var(--muted); }
.seller-account-balance, .driver-held-amount { text-align: right; }
.seller-account-balance span, .driver-held-amount span { font-size: 11px; }
.seller-account-balance strong, .driver-held-amount strong { display: block; margin-top: 4px; font-size: 18px; }
.seller-customer-actions { justify-content: flex-end; }
.customer-driver-strip { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(180px,.45fr) minmax(350px,1fr); gap: 14px; align-items: center; padding-top: 13px; border-top: 1px solid var(--line); }
.customer-driver-strip > div > span { margin: 0; color: var(--text); font-weight: 800; }
.customer-driver-form { display: grid; grid-template-columns: minmax(180px,1fr) auto; gap: 8px; }
.customer-driver-form select { min-width: 150px; }
.customer-share-result { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(300px,1fr) auto; gap: 12px; align-items: end; padding: 14px; border-radius: 12px; background: #f1f3ff; border: 1px solid #d8d5ff; }
.customer-share-result[hidden] { display: none !important; }
.customer-share-result > small { grid-column: 1 / -1; margin: 0; }
.customer-ledger-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
.customer-payment-layout { grid-template-columns: minmax(430px,1fr) minmax(280px,.6fr); }
.seller-driver-row { display: grid; grid-template-columns: minmax(180px,1fr) auto auto; gap: 14px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcfe; }
.driver-internal-stats { grid-template-columns: repeat(4,minmax(0,1fr)); }
.assigned-customer-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.assigned-customer-chips a { padding: 8px 11px; border-radius: 999px; background: var(--surface2); color: var(--primary2); font-weight: 800; font-size: 12px; }
.record-first-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.record-first-grid > .record-list-panel { order: 1; width: 100%; }
.record-first-grid > .add-record-panel { order: 2; width: 100%; scroll-margin-top: 18px; }
.record-first-grid > .add-record-panel[hidden] { display: none !important; }
.record-add-toolbar { display: flex; justify-content: flex-end; margin-bottom: 14px; }
.record-list-panel > .card-head .record-add-button { margin-left: auto; }
.driver-remittance-list { display: grid; gap: 14px; }
.driver-remittance-card { display: grid; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfe; }
.driver-remittance-summary { display: grid; grid-template-columns: minmax(220px,1fr) repeat(3,minmax(100px,.35fr)); gap: 14px; align-items: center; }
.driver-remittance-summary span { display: block; color: var(--muted); font-size: 12px; }
.order-row-actions { display: flex; gap: 7px; min-width: 120px; }
.general-assignment-panel { display: grid; grid-template-columns: minmax(240px,.65fr) minmax(420px,1.35fr); gap: 22px; align-items: center; margin: 4px 0 18px; padding: 18px; border: 1px solid #cbc6ff; border-radius: 15px; background: linear-gradient(135deg,#faf9ff,#f1f3ff); scroll-margin-top: 18px; }
.general-assignment-panel h3 { margin: 5px 0; }
.general-assignment-panel p { margin: 0; color: var(--muted); }
.general-assignment-picker { display: grid; grid-template-columns: minmax(260px,1fr) auto; gap: 12px; align-items: end; }
.statement-order-items { display: grid; gap: 8px; min-width: 430px; }
.statement-order-item { display: grid; grid-template-columns: minmax(180px,1fr) auto; gap: 12px; align-items: center; padding: 9px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfe; }
.item-discount-form { display: grid; grid-template-columns: 110px auto; gap: 7px; align-items: center; }
.item-discount-form input { padding: 7px 9px; }
.seller-food-search { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin: 4px 0 18px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface2); }
.seller-food-search label { width: min(520px, 100%); }
.seller-food-search input { margin-top: 7px; background: #fff; }
.pricing-size-unavailable { text-align: center; vertical-align: middle; background: #fafbfc; }
@media (max-width: 1100px) { .receipt-review-layout { grid-template-columns: 1fr; } .receipt-review-image-card { position: static; } }
@media (max-width: 1200px) { .cashier-report-filters { grid-template-columns: repeat(3, minmax(160px, 1fr)); } }
@media (max-width: 900px) {
  .general-assignment-panel, .general-assignment-picker { grid-template-columns: 1fr; }
  .seller-account-row { grid-template-columns: 1fr auto; }
  .seller-account-row .seller-customer-actions, .customer-driver-strip, .customer-share-result { grid-column: 1 / -1; }
  .driver-internal-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .balance-sheet-filter { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .balance-sheet-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .expense-entry-layout { grid-template-columns: 1fr; }
  .profile-grid { grid-template-columns: 1fr; }
  .driver-delivery-grid { grid-template-columns: 1fr; }
  .driver-finance-grid { grid-template-columns: 1fr; }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 19; border: 0; background: rgba(15, 23, 42, .48); }
  .sidebar-backdrop.open { display: block; }
  .operations-grid { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .analytics-filter { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .analytics-grid { grid-template-columns: 1fr; }
  .analytics-wide { grid-column: auto; }
  .receipt-editor { grid-template-columns: 1fr; }
  .receipt-meta-grid, .receipt-totals { grid-template-columns: repeat(2, 1fr); }
  .receipt-money-edit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .receipt-total-edit { grid-column: span 2; }
  .cashier-report-filters { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .seller-price-card { grid-template-columns: 1fr; }
  .seller-pricing-table { overflow: visible; }
  .seller-pricing-table table, .seller-pricing-table tbody, .seller-pricing-table tr, .seller-pricing-table td { display: block; width: 100%; min-width: 0; }
  .seller-pricing-table thead { display: none; }
  .seller-pricing-table tbody { display: grid; gap: 12px; }
  .seller-pricing-table tr { overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fbfcfe; }
  .seller-pricing-table td { padding: 11px 13px; border-bottom: 1px solid var(--line); }
  .seller-pricing-table td:last-child { border-bottom: 0; }
  .seller-pricing-table .pricing-food-cell { padding: 13px; background: var(--surface2); }
  .compact-price-field { grid-template-columns: minmax(90px, .7fr) minmax(120px, 1fr) auto; align-items: center; min-width: 0; }
  .compact-price-field .mobile-size-label { display: block; grid-column: 1; grid-row: 1; }
  .compact-price-field > span:not(.mobile-size-label) { grid-column: 1; grid-row: 2; white-space: normal; }
  .compact-price-field input { grid-column: 2; grid-row: 1 / span 2; }
  .compact-price-field small { grid-column: 3; grid-row: 1 / span 2; white-space: nowrap; }
}
@media (max-width: 620px) {
  .seller-food-search { align-items: stretch; flex-direction: column; }
  .seller-account-row, .seller-driver-row, .customer-ledger-stats, .driver-internal-stats, .customer-payment-layout, .customer-driver-strip, .customer-share-result { grid-template-columns: 1fr; }
  .customer-driver-form { grid-template-columns: 1fr; }
  .seller-account-balance, .driver-held-amount { text-align: left; }
  .balance-sheet-filter, .balance-sheet-stats { grid-template-columns: 1fr; }
  .expense-filters { grid-template-columns: 1fr; }
  .report-calculation { align-items: stretch; flex-direction: column; }
  .report-calculation .report-operator { transform: rotate(90deg); }
  .login-options { align-items: flex-start; flex-direction: column; }
  .admin-delivery-selectors { grid-template-columns: 1fr; padding: 13px; }
  .admin-customer-selector { grid-template-columns: 1fr; }
  .admin-order-submit .btn { width: 100%; }
  .admin-customer-row { grid-template-columns: 58px 1fr; }
  .admin-customer-row img, .customer-image-placeholder { width: 58px; height: 58px; }
  .admin-customer-row .actions { grid-column: 1 / -1; }
  .driver-actions, .driver-status-form { flex-direction: column; }
  .driver-collection-toolbar { align-items: stretch; flex-direction: column; }
  .driver-collection-toolbar .btn { width: 100%; }
  .driver-finance-numbers, .driver-cost-form { grid-template-columns: 1fr; }
  .inventory-filter { grid-template-columns: 1fr; }
  .backup-restore-form { grid-template-columns: 1fr; }
  .operations-grid { grid-template-columns: 1fr 1fr; }
  .analytics-filter, .analytics-mini-grid { grid-template-columns: 1fr; }
  .chart-row { grid-template-columns: 1fr auto; }
  .chart-row progress { grid-column: 1 / -1; grid-row: 2; }
  .receipt-meta-grid, .receipt-totals, .crop-controls, .receipt-money-edit-grid, .cashier-report-filters, .size-price-grid { grid-template-columns: 1fr; }
  .food-size-option { grid-template-columns: 1fr 70px 94px; }
  .compact-quantity span { display: none; }
  .compact-price-field { grid-template-columns: 1fr auto; }
  .compact-price-field .mobile-size-label { grid-column: 1; grid-row: 1; }
  .compact-price-field > span:not(.mobile-size-label) { grid-column: 1; grid-row: 2; }
  .compact-price-field input { grid-column: 2; grid-row: 1 / span 2; width: 105px; }
  .compact-price-field small { grid-column: 1 / -1; grid-row: 3; }
  .receipt-total-edit { grid-column: auto; }
  .receipt-submit-row .btn, .receipt-confirm-actions, .receipt-confirm-actions form, .receipt-confirm-actions .btn, .receipt-cancel-form, .receipt-cancel-form .btn { width: 100%; }
}

.captcha-field { display: grid; gap: 9px; }
.captcha-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13px; font-weight: 800; color: #344054; }
.captcha-label small { color: var(--muted); font-weight: 500; }
.captcha-row { display: grid; grid-template-columns: 190px auto; gap: 10px; align-items: center; }
.captcha-row img { width: 190px; height: 66px; border: 1px solid var(--line); border-radius: 12px; background: #f7f8fc; }
.security-filter { display: flex; align-items: end; gap: 12px; }
.security-filter label { min-width: 220px; }
.security-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.security-summary > div { padding: 18px; border: 1px solid #eadce5; border-radius: 16px; background: linear-gradient(135deg,#fff,#fff6fa); box-shadow: var(--shadow); }
.security-summary span { display: block; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.security-summary strong { display: block; margin-top: 8px; font-size: 25px; }
.security-accordion { display: grid; gap: 10px; }
.security-group { overflow: hidden; border: 1px solid #ecdfe7; border-radius: 16px; background: linear-gradient(90deg,#fff,#fff7fb); box-shadow: 0 10px 30px rgba(91,30,62,.05); }
.security-group summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; cursor: pointer; font-weight: 800; list-style: none; }
.security-group summary::-webkit-details-marker { display: none; }
.security-group summary::before { content: '+'; order: 3; display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: #b43d73; color: #fff; }
.security-group[open] summary::before { content: '−'; }
.security-group summary strong { margin-left: auto; padding: 5px 9px; border-radius: 999px; background: #eef1f5; font-size: 12px; }
.security-detail { padding: 0 18px 18px; }
.security-detail code { font-size: 12px; }
.forbidden-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 50% 10%,#3c315e,#151b27 60%); }
.forbidden-card { width: min(520px,100%); padding: 44px; border: 1px solid rgba(255,255,255,.12); border-radius: 24px; background: rgba(255,255,255,.06); color: #fff; text-align: center; box-shadow: 0 30px 70px rgba(0,0,0,.3); }
.forbidden-code { font-size: 72px; font-weight: 900; color: #ff8298; }
.forbidden-card h1 { margin: 5px 0 12px; }
.forbidden-card p { color: #d4d9e3; }
.forbidden-card small { color: #9da8ba; }
@media (max-width: 700px) { .captcha-row { grid-template-columns: 1fr; } .security-summary { grid-template-columns: repeat(2,1fr); } .security-filter { align-items: stretch; flex-direction: column; } }


/* Self-hosted authentication artwork; overrides the legacy remote image. */
.auth-visual {
  background-image: radial-gradient(circle at 20% 20%, rgba(255,255,255,.24), transparent 34%), linear-gradient(145deg, #302078, #7256ff 58%, #bb61a3) !important;
}

.security-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 18px; }
.security-toolbar .security-filter { padding: 0; margin: 0; box-shadow: none; border: 0; }
.manual-ban { position: relative; }
.manual-ban > summary { list-style: none; }
.manual-ban > summary::-webkit-details-marker { display: none; }
.security-ban-form { position: absolute; z-index: 12; right: 0; top: calc(100% + 10px); width: min(620px, 85vw); display: grid; grid-template-columns: 1fr 160px; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 24px 60px rgba(28,43,70,.18); }
.security-ban-form label:nth-of-type(3), .security-ban-form button { grid-column: 1 / -1; }
.security-summary { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.security-ban-list { display: grid; gap: 10px; }
.security-record-list { display: grid; gap: 10px; }
.security-ban-record { overflow: hidden; border: 1px solid #eadde5; border-radius: 14px; background: #fff; }
.security-ban-record > summary { display: grid; grid-template-columns: 78px 150px minmax(220px,1fr) 190px 54px; gap: 12px; align-items: center; padding: 13px 15px; cursor: pointer; list-style: none; }
.security-ban-record > summary::-webkit-details-marker { display: none; }
.security-ban-record > summary:hover { background: #fff8fb; }
.security-ban-record > summary > strong { justify-self: end; padding: 5px 8px; border-radius: 999px; background: #f3edf1; }
.security-ban-state { display: inline-flex; justify-content: center; padding: 5px 8px; border-radius: 999px; font-size: 11px; font-weight: 900; }
.security-ban-state.is-active { background: #ffebee; color: #a5283a; }
.security-ban-state.is-inactive { background: #edf1f6; color: #536176; }
.security-record-body { padding: 18px; border-top: 1px solid #eadde5; background: #fffafd; }
.security-record-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px 18px; margin: 0; }
.security-record-grid > div { display: grid; grid-template-columns: minmax(110px,.7fr) minmax(0,1.3fr); gap: 8px; padding: 9px 4px; border-bottom: 1px dashed #e5dce2; }
.security-record-grid dt { font-size: 12px; font-weight: 800; color: #725167; }
.security-record-grid dd { margin: 0; overflow-wrap: anywhere; font-size: 13px; }
.security-record-action { display: flex; justify-content: end; margin-top: 15px; }
.same-ip-groups { display: grid; gap: 9px; margin-top: 16px; }
.same-ip-groups > details { border: 1px solid #eadde5; border-radius: 12px; background: #fff; }
.same-ip-groups > details > summary { display: flex; justify-content: space-between; padding: 12px 14px; cursor: pointer; font-weight: 800; }
.same-ip-row { display: grid; grid-template-columns: minmax(240px,.8fr) minmax(0,1.2fr); gap: 12px; padding: 10px 14px; border-top: 1px solid #f0e7ec; font-size: 12px; }
.security-event-record { overflow: hidden; border: 1px solid #eadde5; border-radius: 14px; background: #fff; }
.security-event-record > summary { display: grid; grid-template-columns: 185px minmax(260px,1.4fr) 110px 145px minmax(100px,.5fr) 90px; gap: 14px; align-items: center; padding: 14px 12px; cursor: pointer; list-style: none; }
.security-event-record > summary::-webkit-details-marker { display: none; }
.security-event-record > summary:hover { border-color: #d6a9c0; background: #fff8fb; }
.security-event-record > summary > span:first-child { font-size: 12px; }
.security-event-record > summary small { display: block; max-width: 420px; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.security-event-record[open] > summary, .security-ban-record[open] > summary { background: #fff3f8; }
.security-event-record[open], .security-ban-record[open] { border-color: #dbaec3; box-shadow: 0 12px 32px rgba(91,30,62,.08); }
.same-ip-records { display: grid; gap: 10px; padding: 0 12px 12px; }
.same-ip-card { padding: 12px; border: 1px solid #eadde5; border-radius: 12px; background: #fffafd; }
.same-ip-card > header { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.same-ip-card .security-record-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (max-width: 1200px) {
  .security-summary { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .security-record-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .security-ban-record > summary { grid-template-columns: 70px 140px minmax(180px,1fr); }
  .security-ban-record > summary small, .security-ban-record > summary > strong { display: none; }
  .security-event-record > summary { grid-template-columns: 150px minmax(220px,1fr) 110px 90px; }
  .security-event-record > summary > code:nth-of-type(2), .security-event-record > summary > span:nth-last-child(2) { display: none; }
}
@media (max-width: 700px) {
  .security-toolbar { align-items: stretch; flex-direction: column; }
  .manual-ban > summary { width: 100%; }
  .security-ban-form { position: static; width: 100%; grid-template-columns: 1fr; margin-top: 10px; }
  .security-ban-form label, .security-ban-form button { grid-column: auto !important; }
  .security-summary, .security-record-grid { grid-template-columns: 1fr; }
  .security-ban-record > summary { grid-template-columns: 68px 1fr; }
  .security-ban-record > summary > span:nth-of-type(2) { grid-column: 1 / -1; }
  .security-record-grid > div, .same-ip-row { grid-template-columns: 1fr; }
  .security-event-record > summary { grid-template-columns: 1fr 90px; }
  .security-event-record > summary > span:nth-child(2) { grid-column: 1 / -1; grid-row: 1; }
  .security-event-record > summary > span:first-child, .security-event-record > summary > code { display: none; }
  .same-ip-card .security-record-grid { grid-template-columns: 1fr; }
}
