:root {
  color-scheme: light;
  font-size: 15px;
  --bs-primary: #2f7354;
  --bs-primary-rgb: 47, 115, 84;
  --bs-success: #2f7354;
  --bs-success-rgb: 47, 115, 84;
  --bs-body-font-family: Inter, "Segoe UI", system-ui, sans-serif;
  --bs-body-color: #20251f;
  --bs-body-bg: #f7f7f3;
  --ink: #20251f;
  --muted: #8b9086;
  --line: #e9e9e3;
  --canvas: #f7f7f3;
  --paper: #fff;
  --green: #2f7354;
  --green-dark: #225b41;
  --green-pale: #eaf3ed;
  --orange: #e69b4c;
  --red: #c85c4e;
  font-family: Inter, "Segoe UI", system-ui, sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--canvas); font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
button, input, select { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.app-shell { min-height: 100vh; }
.sidebar { width: 246px; position: fixed; inset: 0 auto 0 0; display: flex; flex-direction: column; padding: 27px 16px 14px; background: #fff; border-right: 1px solid var(--line); z-index: 3; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); font: 800 20px Inter, "Segoe UI", system-ui, sans-serif; letter-spacing: -1px; line-height: 1; padding: 0 10px; }
.brand-mark { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; background: var(--green); color: #fff; font: 800 19px Inter, "Segoe UI", system-ui, sans-serif; }
.brand-light { color: var(--green); }
.brand small { display: block; margin-top: 5px; font: 700 9px Inter, "Segoe UI", system-ui, sans-serif; color: #858a80; letter-spacing: 1.5px; }
.side-label { margin: 42px 10px 12px; color: #898e84; font-size: 10px; font-weight: 700; letter-spacing: 1.4px; }
.main-nav { display: grid; gap: 5px; }
.nav-link { border: 0; width: 100%; padding: 11px 12px; display: flex; align-items: center; gap: 12px; border-radius: 8px; background: transparent; color: #777d73; text-align: left; font-size: 13px; font-weight: 600; }
.nav-link:hover { background: #f6f7f3; color: var(--ink); }
.nav-link.active { background: var(--green-pale); color: var(--green-dark); }
.nav-icon { width: 17px; font-size: 15px; text-align: center; }
.new-badge { margin-left: auto; padding: 3px 6px; border-radius: 4px; background: #eaf3ed; color: var(--green); font-size: 9px; font-weight: 800; }
.sidebar-bottom { margin-top: auto; }
.sidebar-note { padding: 15px; border: 1px solid #e6ece5; border-radius: 10px; background: #f6f9f5; }
.note-icon { color: var(--green); font-size: 17px; }
.sidebar-note strong { display: block; margin-top: 10px; font: 700 13px Inter, "Segoe UI", system-ui, sans-serif; }
.sidebar-note p { margin: 5px 0 9px; color: #73796f; font-size: 12px; line-height: 1.6; }
.sidebar-note button { padding: 0; border: 0; background: transparent; color: var(--green); font-size: 12px; font-weight: 700; }
.sidebar-note button i { margin-left: 5px; }
.profile { display: flex; align-items: center; gap: 9px; margin: 15px 3px 0; padding-top: 13px; border-top: 1px solid var(--line); }
.avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--green-dark); background: #e5eee7; font-size: 13px; font-weight: 700; }
.profile-meta { min-width: 0; flex: 1; }
.profile-meta strong, .profile-meta span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-meta strong { font-size: 12px; }
.profile-meta span { margin-top: 3px; color: var(--muted); font-size: 11px; text-transform: capitalize; }
.icon-button { border: 0; background: none; color: #858980; font-size: 16px; }
.profile { padding-bottom: 4px; }
.main-content { max-width: 1600px; min-height: 100vh; margin-left: 246px; padding: 104px 38px 44px; }
.topbar { position: fixed; top: 0; left: 246px; right: 0; z-index: 2; width: auto; max-width: none; min-height: 104px; padding: 0 38px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); background: var(--canvas); }
.eyebrow { margin: 0 0 5px; color: #858a80; font-size: 10px; font-weight: 700; letter-spacing: 1.6px; }
h1 { margin: 0; font: 700 26px Inter, "Segoe UI", system-ui, sans-serif; letter-spacing: -.5px; }
.topbar-right { display: flex; align-items: center; gap: 9px; color: #70766c; font-size: 13px; }
.live-dot { width: 7px; height: 7px; border-radius: 50%; background: #62a278; }
.today-label { margin-right: 14px; }
.header-dropdown { position: relative; }
.header-icon-button { position: relative; width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: #62695f; font-size: 16px; }
.header-icon-button:hover, .header-icon-button[aria-expanded="true"] { border-color: #d3e2d6; background: #f6f9f5; color: var(--green-dark); }
.notification-badge { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; display: grid; place-items: center; padding: 0 4px; border: 2px solid var(--canvas); border-radius: 10px; background: var(--red); color: #fff; font-size: 9px; font-weight: 800; line-height: 1; }
.user-menu-button { display: flex; align-items: center; gap: 9px; padding: 4px 8px 4px 4px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--ink); text-align: left; }
.user-menu-button:hover, .user-menu-button[aria-expanded="true"] { border-color: var(--line); background: #fff; }
.user-menu-button .avatar { width: 36px; height: 36px; flex: 0 0 36px; }
.header-user-meta { min-width: 76px; }
.header-user-meta strong, .header-user-meta small { display: block; }
.header-user-meta strong { max-width: 130px; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.header-user-meta small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.user-menu-chevron { margin-left: 4px; color: #8b9086; font-size: 10px; }
.dropdown-panel { position: absolute; top: calc(100% + 12px); right: 0; z-index: 8; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 14px 40px #17251d1c; }
.notification-panel { width: min(340px, calc(100vw - 32px)); }
.dropdown-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 15px 16px 12px; border-bottom: 1px solid #f0f0eb; }
.dropdown-heading strong { color: var(--ink); font-size: 14px; }
.dropdown-heading span { color: var(--muted); font-size: 10px; }
.notification-list { max-height: 320px; overflow-y: auto; }
.notification-item { width: 100%; display: flex; align-items: center; gap: 11px; padding: 12px 15px; border: 0; border-bottom: 1px solid #f2f2ef; background: #fff; text-align: left; }
.notification-item:last-child { border-bottom: 0; }
.notification-item:hover { background: #f8faf7; }
.notification-warning { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 9px; background: #fff1df; color: #bd7730; font-size: 14px; }
.notification-copy { min-width: 0; }
.notification-copy strong, .notification-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notification-copy strong { color: var(--ink); font-size: 12px; }
.notification-copy small { margin-top: 3px; color: #73796f; font-size: 10px; }
.notification-empty { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 25px 12px; }
.notification-empty i { color: var(--green); font-size: 16px; }
.user-panel { width: 220px; padding: 8px; }
.user-panel-identity { display: flex; align-items: center; gap: 10px; padding: 9px 8px 13px; border-bottom: 1px solid #f0f0eb; }
.user-panel-identity > div { min-width: 0; }
.user-panel-identity strong, .user-panel-identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-panel-identity strong { color: var(--ink); font-size: 12px; }
.user-panel-identity small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.dropdown-action { width: 100%; display: flex; align-items: center; gap: 9px; margin-top: 6px; padding: 10px 9px; border: 0; border-radius: 8px; background: transparent; color: var(--red); font-size: 12px; font-weight: 600; text-align: left; text-decoration: none; }
.dropdown-action:hover { background: #fff2ef; }
.primary-button { font-weight: 700; box-shadow: 0 3px 8px #2f735426; }
.primary-button i { margin-right: 5px; }
.primary-button:disabled { opacity: .6; cursor: wait; }
.btn-success { --bs-btn-bg: var(--green); --bs-btn-border-color: var(--green); --bs-btn-hover-bg: var(--green-dark); --bs-btn-hover-border-color: var(--green-dark); --bs-btn-active-bg: var(--green-dark); --bs-btn-active-border-color: var(--green-dark); }
.page-section { padding-top: 25px; }
.welcome-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 21px; }
.welcome-row h2 { margin: 0 0 5px; font: 700 18px Inter, "Segoe UI", system-ui, sans-serif; }
.welcome-row p { margin: 0; color: #73796f; font-size: 13px; }
.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-bottom: 20px; }
.stat-card { min-height: 117px; padding: 16px; border: 1px solid var(--line); border-radius: 9px; background: var(--paper); }
.stat-head { display: flex; justify-content: space-between; align-items: center; color: #70766c; font-size: 12px; font-weight: 600; }
.stat-icon { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 7px; background: var(--green-pale); color: var(--green); font-size: 14px; }
.stat-value { display: block; margin-top: 14px; font: 700 24px Inter, "Segoe UI", system-ui, sans-serif; letter-spacing: -.6px; }
.stat-caption { margin-top: 4px; color: #858a80; font-size: 11px; }
.content-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(250px,1fr); gap: 15px; }
.ai-content-grid { grid-template-columns: minmax(0, 1fr); }
.panel { border: 1px solid var(--line); border-radius: 9px; background: var(--paper); }
.panel-header { padding: 16px 17px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #f0f0eb; }
.panel-header h3 { margin: 0; font: 700 14px Inter, "Segoe UI", system-ui, sans-serif; }
.panel-header p { margin: 4px 0 0; color: #73796f; font-size: 11px; }
.text-button { padding: 0; border: 0; background: transparent; color: var(--green); font-size: 12px; font-weight: 700; }
.table-wrap { overflow-x: auto; }
.sale-row { cursor: pointer; }
.sale-row:hover, .sale-row:focus-visible { --bs-table-bg: #f5f9f5; outline: none; }
.sale-row:focus-visible { box-shadow: inset 0 0 0 2px #8bb99a; }
.sale-detail-body { display: grid; gap: 16px; }
.sale-detail-items { display: grid; gap: 9px; }
.sale-detail-item { padding: 12px; border: 1px solid var(--line); border-radius: 9px; background: #fcfcfa; }
.sale-detail-item-heading { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; }
.sale-detail-item-heading strong:last-child { white-space: nowrap; }
.sale-detail-item p { margin: 6px 0 0; color: #62695f; font-size: 11px; }
.sale-detail-item .sale-detail-note { color: var(--green-dark); }
.sale-detail-item small { display: block; margin-top: 6px; color: var(--red); font-size: 10px; }
.sale-detail-summary { display: grid; gap: 8px; }
.sale-detail-summary > div { display: flex; justify-content: space-between; gap: 12px; color: #62695f; font-size: 12px; }
.sale-detail-summary > div strong { color: var(--ink); text-align: right; }
.sale-detail-summary .sale-detail-total { padding-top: 10px; border-top: 1px solid var(--line); color: var(--ink); font-size: 15px; font-weight: 700; }
.sale-detail-summary .sale-detail-total strong { color: var(--green-dark); }
.table { --bs-table-bg: #fff; --bs-table-color: var(--ink); --bs-table-border-color: #edf0ea; --bs-table-hover-bg: #f7faf7; --bs-table-hover-color: var(--ink); margin-bottom: 0; }
.table thead th { background: #f7faf7; }
table { width: 100%; border-collapse: collapse; text-align: left; }
th { padding: 11px 15px; background: #fcfcfa; color: #7c8177; font-size: 10px; letter-spacing: .6px; text-transform: uppercase; }
td { padding: 12px 15px; border-top: 1px solid #f1f1ed; color: #555c52; font-size: 12px; }
td strong { color: var(--ink); font-size: 12px; }
.money { color: var(--ink); font-weight: 700; white-space: nowrap; }
.status-pill { padding: 4px 8px; border-radius: 20px; background: var(--green-pale); color: var(--green); font-size: 10px; font-weight: 700; }
.status-pill.warning { background: #fff1df; color: #bd7730; }
.stock-list { padding: 4px 16px 12px; }
.stock-row { display: flex; align-items: center; gap: 10px; padding: 11px 0; border-bottom: 1px solid #f2f2ef; }
.stock-row:last-child { border-bottom: 0; }
.product-dot { width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; overflow: hidden; border-radius: 8px; background: #f5f1e8; font-size: 18px; }
.product-dot img { width: 100%; height: 100%; object-fit: cover; }
.product-dot i, .product-table-image i, .product-image-preview i { font-size: inherit; }
.stock-name { min-width: 0; flex: 1; }
.stock-name strong, .stock-name span { display: block; }
.stock-name strong { font-size: 12px; }
.stock-name span { margin-top: 3px; color: #73796f; font-size: 10px; }
.stock-count { color: var(--red); font-size: 12px; font-weight: 700; }
.empty-state { padding: 25px 12px; color: #73796f; text-align: center; font-size: 12px; }
.section-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.section-heading h2 { margin: 0; font: 700 18px Inter, "Segoe UI", system-ui, sans-serif; }
.section-heading p { margin: 5px 0 0; color: #73796f; font-size: 12px; }
.pos-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(270px,.8fr); gap: 16px; }
.toolbar { display: flex; gap: 9px; margin-bottom: 13px; }
.toolbar .form-control { flex: 1 1 auto; }
.toolbar .form-select { width: min(220px, 42%); flex: 0 1 220px; }
.input, .select { min-width: 0; width: 100%; }
.product-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.product-card { min-height: 190px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; text-align: left; }
.product-card:hover { border-color: #a3c4ad; transform: translateY(-1px); }
.product-card:disabled { opacity: .58; cursor: not-allowed; }
.product-card-image { width: 100%; height: 100px; display: grid; place-items: center; overflow: hidden; border-radius: 6px; background: #f5f1e8; color: #947c5b; font-size: 29px; }
.product-card-image img { width: 100%; height: 100%; object-fit: cover; }
.product-card strong { display: block; margin-top: 8px; font-size: 13px; }
.product-card small { display: block; margin-top: 4px; color: #73796f; font-size: 11px; }
.product-price { margin-top: 9px; color: var(--green); font-size: 12px; font-weight: 700; }
.product-price del { margin-right: 4px; color: #8b9086; font-size: 10px; font-weight: 500; }
.discount-badge { padding: 2px 5px; border-radius: 4px; background: #fff0ed; color: var(--red); font-size: 9px; }
.option-hint { color: var(--green) !important; }
.cart-panel { align-self: start; }
.cart-items { min-height: 160px; max-height: 350px; overflow-y: auto; padding: 3px 15px; }
.cart-item { display: flex; align-items: center; gap: 8px; padding: 11px 0; border-bottom: 1px solid #f0f0ec; }
.cart-item-main { flex: 1; }
.cart-item-main strong, .cart-item-main span { display: block; }
.cart-item-main strong { font-size: 12px; }
.cart-item-main span { margin-top: 4px; color: #73796f; font-size: 11px; }
.cart-item-main .cart-option-copy { color: var(--green-dark); }
.qty-controls { flex: 0 0 auto; display: flex; align-items: center; gap: 3px; padding: 3px; border: 1px solid #e8eee8; border-radius: 10px; background: #f7f9f6; }
.qty-controls button.btn { flex: 0 0 30px; width: 30px; height: 30px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 7px; background: #fff; color: var(--green-dark); line-height: 1; box-shadow: 0 1px 2px #17251d12; transition: background .15s ease, color .15s ease, transform .15s ease; }
.qty-controls button.btn:hover { background: var(--green); color: #fff; transform: translateY(-1px); }
.qty-controls button.btn:active { transform: translateY(0); }
.qty-controls button.btn:focus-visible { outline: 2px solid #8bb99a; outline-offset: 1px; }
.qty-controls button.btn i { display: block; font-size: 11px; line-height: 1; }
.qty-controls span { min-width: 24px; display: block; margin: 0 !important; color: var(--ink); text-align: center; font-size: 12px; font-weight: 700; line-height: 1; }
.cart-summary { padding: 14px 15px; border-top: 1px solid var(--line); }
.summary-row { display: flex; justify-content: space-between; margin: 6px 0; color: #666d62; font-size: 12px; }
.summary-row.total { margin: 13px 0; color: var(--ink); font-size: 15px; font-weight: 700; }
.cart-summary #cart-product-discount, .cart-summary #cart-restaurant-discount { color: var(--red); }
.checkout { width: 100%; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.field label { display: block; margin-bottom: 5px; color: #62695f; font-size: 11px; font-weight: 600; }
.field.full { grid-column: 1/-1; }
.form-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.modal-dialog { width: min(100% - 32px, 540px); max-width: 540px; }
.modal-content { overflow: hidden; border: 1px solid #e8ebe4; border-radius: 16px; background: var(--paper); color: var(--ink); box-shadow: 0 24px 80px #17251d30; }
.modal-backdrop.show { opacity: .55; }
.modal-header { display: flex; align-items: flex-start; gap: 14px; padding: 23px 24px 19px; border-bottom: 1px solid #eff0eb; }
.modal-heading-icon { width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center; border-radius: 12px; background: var(--green-pale); color: var(--green); font-size: 22px; font-weight: 600; }
.modal-heading-icon.danger-icon { background: #fff0ed; color: var(--red); font-size: 19px; font-weight: 800; }
.modal-header > div:nth-child(2) { min-width: 0; flex: 1; }
.modal-header .eyebrow { margin: 0 0 5px; font-size: 9px; }
.modal-header h2 { margin: 0; font: 700 20px Inter, "Segoe UI", system-ui, sans-serif; letter-spacing: -.3px; }
.modal-description { margin: 5px 0 0; color: #73796f; font-size: 12px; line-height: 1.5; }
.modal-close { width: 32px; height: 32px; flex: 0 0 32px; border: 0; border-radius: 8px; opacity: .55; }
.modal-close:hover { background-color: #f2f3ef; color: var(--ink); }
.modal-body { padding: 21px 24px 22px; }
.modal-body .form-grid { gap: 15px 13px; }
.modal-body .field label { margin-bottom: 7px; color: #50574d; font-size: 12px; }
.modal-footer { gap: 9px; margin-top: 21px; padding-top: 16px; border-top: 1px solid #eff0eb; }
.modal-error { min-height: 0; margin-top: 4px; color: var(--red); font-size: 12px; }
.modal-error:not(:empty) { margin-top: 13px; }
.modal-danger-button:disabled, .modal-footer button:disabled { opacity: .6; cursor: wait; }
.delete-product-card { display: flex; align-items: center; gap: 12px; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfa; }
.delete-product-card .product-dot { width: 42px; height: 42px; font-size: 19px; }
.delete-product-card strong, .delete-product-card span { display: block; }
.delete-product-card strong { font-size: 13px; }
.delete-product-card div span { margin-top: 4px; color: #73796f; font-size: 11px; }
.product-table-image { width: 44px; height: 44px; display: grid; place-items: center; overflow: hidden; border-radius: 8px; background: #f5f1e8; color: #947c5b; font-size: 20px; }
.product-table-image img { width: 100%; height: 100%; object-fit: cover; }
.product-image-field { display: flex; align-items: center; gap: 14px; }
.product-image-preview { width: 94px; height: 94px; flex: 0 0 94px; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #f5f1e8; color: #947c5b; font-size: 27px; }
.product-image-preview img { width: 100%; height: 100%; object-fit: cover; }
.product-image-controls { min-width: 0; flex: 1; }
.product-image-input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; clip-path: inset(50%); }
.product-image-dropzone { min-height: 94px; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 3px; margin: 0 !important; padding: 10px 12px; border: 1px dashed #cfd8ce; border-radius: 10px; background: #fbfcfa; color: #62695f !important; text-align: center; cursor: pointer; transition: border-color .15s, background .15s; }
.product-image-dropzone:hover, .product-image-dropzone:focus-visible, .product-image-dropzone.drag-over { border-color: var(--green); outline: 0; background: var(--green-pale); }
.product-image-dropzone > i { margin-bottom: 2px; color: var(--green); font-size: 18px; }
.product-image-dropzone > strong { color: var(--ink); font-size: 11px; }
.product-image-dropzone > span { font-size: 10px; }
.product-image-dropzone .dropzone-browse { color: var(--green); font-weight: 700; }
.product-image-dropzone > small { color: #858a80; font-size: 9px; }
.product-image-dropzone.has-image { min-height: 54px; }
.product-image-dropzone.has-image > i, .product-image-dropzone.has-image > span { display: none; }
.field-help { display: block; margin-top: 6px; color: #73796f; font-size: 10px; }
.remove-image-option { display: flex !important; align-items: center; gap: 6px; margin-top: 8px; color: var(--red) !important; font-size: 11px !important; font-weight: 500 !important; }
.remove-image-option input { margin: 0; accent-color: var(--red); }
.product-options-field { padding-top: 12px; border-top: 1px solid var(--line); }
.product-options-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.product-options-heading .field-help { margin-top: 0; }
.option-add-buttons { display: flex; flex-wrap: wrap; gap: 6px; }
.product-option-group { margin-top: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 8px; background: #fcfcfa; }
.product-option-group-heading { display: grid; grid-template-columns: minmax(90px,.7fr) minmax(130px,1.3fr) minmax(120px,1fr) auto 34px; align-items: center; gap: 7px; }
.product-option-group-heading .form-control, .product-option-group-heading .form-select { min-width: 0; font-size: 11px; }
.product-option-required { display: flex; align-items: center; gap: 4px; margin: 0 !important; white-space: nowrap; }
.product-option-required .form-check-input { margin: 0; }
.product-option-required .form-check-label { margin: 0 !important; font-size: 10px !important; }
.product-option-row { display: grid; grid-template-columns: minmax(130px,1fr) minmax(110px,.7fr) 34px; gap: 7px; margin-top: 7px; }
.product-option-row .form-control, .product-option-row .form-select { min-width: 0; font-size: 11px; }
.product-option-row button { padding: 5px; }
.product-add-option { margin-top: 8px; }
.cart-summary { display: grid; gap: 8px; }
.cart-summary .summary-row { margin: 0; }
.cart-utensils { display: flex; align-items: center; gap: 7px; margin: 0 0 4px; padding: 9px; border: 1px solid var(--line); border-radius: 7px; }
.cart-utensils .form-check-input { margin: 0; }
.cart-utensils .form-check-label { color: #555c52; font-size: 11px; }
.cart-utensils i { margin-right: 4px; color: var(--green); }
.cart-restaurant-discount { display: grid; grid-template-columns: 1fr 54px auto; align-items: center; gap: 7px; }
.cart-restaurant-discount label { font-size: 11px; }
.cart-restaurant-discount input { height: 30px; padding: 4px 6px; font-size: 11px; text-align: right; }
.cart-restaurant-discount strong { min-width: 67px; text-align: right; }
.cart-item-note { width: 100%; max-width: 230px; height: 30px; margin-top: 4px; padding: 4px 7px; font-size: 10px; }
.cart-note-label { display: block; margin-top: 4px; color: #73796f; font-size: 10px; }
.item-note-field { margin-top: 14px; }
.pos-option-list { display: grid; gap: 14px; }
.pos-option-group { margin: 0; padding: 0; border: 0; }
.pos-option-group legend { margin-bottom: 7px; color: var(--ink); font-size: 12px; font-weight: 700; }
.required-option, .optional-option { color: #73796f; font-size: 10px; font-weight: 500; }
.required-option { color: var(--red); }
.pos-option { display: flex; align-items: center; gap: 9px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 7px; cursor: pointer; }
.pos-option + .pos-option { margin-top: 6px; }
.pos-option .form-check-input { margin: 0; }
.pos-option span { flex: 1; font-size: 12px; }
.pos-option strong { color: var(--green); font-size: 11px; }
.pos-option-total { display: flex; justify-content: space-between; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 12px; }
.pos-option-total strong { color: var(--green-dark); font-size: 14px; }
.table-actions { display: flex; gap: 7px; }
.table-actions button i { margin-right: 3px; }
.ai-image-input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; clip-path: inset(50%); }
.ai-image-dropzone { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; min-height: 180px; padding: 24px; border: 1px dashed #cfd8ce; border-radius: 9px; background: #fbfcfa; color: var(--ink); text-align: center; cursor: pointer; transition: border-color .15s, background .15s; }
.ai-image-dropzone:hover, .ai-image-dropzone:focus-visible, .ai-image-dropzone.drag-over { border-color: var(--green); outline: 0; background: var(--green-pale); }
.ai-image-dropzone .upload-icon { margin-bottom: 4px; }
.ai-image-dropzone strong { font-size: 13px; }
.ai-image-dropzone > span { color: #73796f; font-size: 11px; }
.ai-image-dropzone .dropzone-browse { color: var(--green); font-weight: 700; }
.ai-image-dropzone small { color: #858a80; font-size: 10px; }
.ai-image-dropzone.has-file { min-height: 220px; }
.ai-image-dropzone.has-file .upload-icon, .ai-image-dropzone.has-file > span { display: none; }
.ai-image-dropzone img { width: min(100%, 240px); max-height: 150px; border-radius: 8px; object-fit: cover; }
.ai-image-status { margin-top: 7px; color: #73796f; font-size: 11px; overflow-wrap: anywhere; }
.ai-image-status:not(:empty) { min-height: 16px; }
.ai-image-dropzone[hidden] { display: none; }
.upload-icon { color: var(--green); font-size: 28px; }
.ai-result { margin-top: 14px; }
.settings-card { max-width: 640px; padding: 20px; }
.settings-card form { display: grid; gap: 16px; }
.ai-instructions-card { margin-top: 16px; }
.ai-instructions-card h3 { margin: 0; font-size: 15px; }
.ai-instructions-card > div > p { margin: 6px 0 0; color: #73796f; font-size: 11px; line-height: 1.5; }
.settings-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.ai-model-status { min-height: 18px; color: #62695f; font-size: 11px; overflow-wrap: anywhere; }
.ai-model-status:not(:empty) { padding: 9px 11px; border-radius: 7px; background: #f6f9f5; }
.settings-security-note { display: flex; align-items: flex-start; gap: 8px; margin: 0; color: #73796f; font-size: 11px; line-height: 1.5; }
.settings-security-note i { margin-top: 2px; color: var(--green); }
.ai-result h3 { margin: 0 0 7px; font: 700 15px Inter, "Segoe UI", system-ui, sans-serif; }
.ai-result p { color: #62695f; font-size: 12px; line-height: 1.6; }
.ai-provider-note { margin-top: 12px; font-size: 10px !important; }
.ai-ocr-text { margin: 12px 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fbfcfa; }
.ai-ocr-text summary { color: var(--green-dark); font-size: 11px; font-weight: 700; cursor: pointer; }
.ai-ocr-text pre { margin: 8px 0 0; color: #62695f; font-family: inherit; font-size: 11px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.ai-order-summary { margin-top: 13px; padding: 12px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.ai-order-summary h4 { margin: 0 0 9px; font-size: 13px; font-weight: 700; }
.ai-order-item { padding: 10px 0; border-top: 1px solid #f0f0ec; }
.ai-order-item:first-of-type { border-top: 0; }
.ai-order-title { color: var(--ink); font-size: 12px; }
.ai-order-item > p { margin: 5px 0; font-size: 11px; }
.ai-order-item .ai-order-note { color: #a56826; font-weight: 600; }
.ai-order-item .match-card { gap: 8px; padding: 8px; }
.ai-order-item .match-card > span { min-width: 0; flex: 1; }
.ai-order-item .match-card small { display: block; margin-top: 3px; color: #73796f; font-size: 10px; }
.ai-order-item .match-card .ai-match-type { color: #69705f; }
.ai-order-item .match-card.ai-best-match { border-color: #b7d5bd; background: #f5faf5; }
.ai-order-item .match-card.ai-best-match .ai-match-type { color: var(--green-dark); font-weight: 700; }
.ai-order-item .match-card button { flex: 0 0 auto; max-width: 145px; white-space: normal; }
.ai-no-match { margin: 6px 0 !important; color: #9c6037 !important; }
.ai-order-utensils { margin: 9px 0 !important; color: var(--green-dark) !important; font-weight: 600; }
.ai-order-amounts { display: grid; gap: 5px; margin: 10px 0; padding-top: 9px; border-top: 1px solid #eff0eb; }
.ai-order-amounts div { display: flex; justify-content: space-between; gap: 8px; color: #62695f; font-size: 11px; }
.ai-order-amounts strong { color: var(--ink); }
.ai-order-summary > small { display: block; color: #858a80; font-size: 10px; line-height: 1.5; }
.configured-item-quantity { margin-top: 14px; }
.configured-item-quantity input { max-width: 120px; }
.match-list { display: grid; gap: 7px; margin-top: 10px; }
.match-card { display: flex; align-items: center; justify-content: space-between; padding: 9px 10px; border: 1px solid var(--line); border-radius: 6px; font-size: 12px; }
.match-card button { padding: 7px 9px; border: 0; border-radius: 5px; background: var(--green-pale); color: var(--green); font-size: 11px; font-weight: 700; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 10; max-width: 360px; padding: 12px 16px; border-radius: 7px; background: #24352b; color: #fff; font-size: 13px; box-shadow: 0 8px 24px #1112; opacity: 0; transform: translateY(8px); transition: .2s ease; pointer-events: none; }
.toast.show { opacity: 1; transform: translateY(0); }
.toast.toast-actionable { pointer-events: auto; }
.toast-action { display: block; margin-top: 8px; padding: 0; border: 0; background: transparent; color: #b8e3c4; font: inherit; font-weight: 700; text-decoration: underline; }
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 20px; background: radial-gradient(circle at 18% 20%, #edf4ed, transparent 32%), var(--canvas); }
.auth-card { width: min(100%,390px); padding: 30px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 16px 50px #173a2010; }
.auth-card .brand { padding: 0; }
.auth-card h1 { margin-top: 28px; font-size: 23px; }
.auth-card > p { margin: 8px 0 21px; color: #73796f; font-size: 13px; line-height: 1.6; }
.auth-card form { display: grid; gap: 13px; }
.auth-card .primary-button { margin-top: 4px; }
.auth-error { min-height: 15px; color: var(--red); font-size: 10px; }
.notice { margin-top: 16px; padding: 10px; border-radius: 6px; background: #f7f7f3; color: #62695f; font-size: 11px; line-height: 1.5; }

@media (max-width: 1050px) {
  .sidebar { width: 215px; }
  .main-content { margin-left: 215px; padding: 104px 24px 44px; }
  .topbar { left: 215px; padding-inline: 24px; }
  .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .toolbar { flex-direction: column; }
  .toolbar .form-select { width: 100%; flex-basis: auto; }
  .topbar-right .today-label, .topbar-right .live-dot, .header-user-meta, .user-menu-chevron { display: none; }
  .primary-button.compact { white-space: nowrap; }
}
@media (max-width: 760px) {
  .sidebar { width: 62px; padding: 18px 8px; }
  .brand { justify-content: center; padding: 0; }
  .brand > span:last-child, .side-label, .nav-link:not(.active)::after, .nav-link { font-size: 0; }
  .nav-link { justify-content: center; padding: 12px 5px; }
  .nav-icon { font-size: 17px; }
  .new-badge, .sidebar-note, .profile-meta, .profile .icon-button { display: none; }
  .profile { justify-content: center; margin-inline: 0; }
  .main-content { margin-left: 62px; padding: 82px 14px 44px; }
  .topbar { left: 62px; min-height: 82px; padding-inline: 14px; }
  .topbar-right { gap: 6px; }
  .header-icon-button { width: 36px; height: 36px; }
  .user-menu-button { gap: 0; padding: 3px; }
  .user-menu-button .avatar { width: 34px; height: 34px; flex-basis: 34px; }
  .primary-button.compact { font-size: 0; padding: 10px; }
  .primary-button.compact i { margin: 0; font-size: 15px; }
  .content-grid, .pos-layout { grid-template-columns: 1fr; }
  .stats-grid { gap: 8px; }
  .stat-card { min-height: 105px; padding: 12px; }
  .stat-value { font-size: 18px; }
  .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .welcome-row { align-items: flex-start; gap: 10px; }
  .section-heading { align-items: flex-start; gap: 8px; }
  .product-table-wrap { overflow: visible; }
  .product-table { display: block; }
  .product-table thead { display: none; }
  .product-table tbody { display: grid; gap: 10px; padding: 10px; }
  .product-table tbody tr:not(.product-empty-row) { display: grid; padding: 3px 12px; border: 1px solid var(--line); border-radius: 9px; background: #fff; --bs-table-bg: #fff; }
  .product-table tbody td { min-width: 0; display: grid; grid-template-columns: minmax(78px, .75fr) minmax(0, 1.25fr); align-items: center; gap: 8px; padding: 8px 0; border-top: 1px solid #f1f1ed; overflow-wrap: anywhere; }
  .product-table tbody td:first-child { border-top: 0; }
  .product-table tbody td::before { content: attr(data-label); color: #7c8177; font-size: 10px; font-weight: 600; }
  .product-table tbody td strong { overflow-wrap: anywhere; }
  .product-table .money { white-space: normal; }
  .product-table .table-actions { flex-wrap: wrap; }
  .product-table .table-actions button { padding: 6px; font-size: 10px; }
  .product-table .product-empty-row { display: block; }
  .product-table .product-empty-row td { display: block; border: 0; text-align: center; }
  .product-table .product-empty-row td::before { content: none; }
  .modal-dialog { width: calc(100% - 22px); }
  .modal-content { border-radius: 13px; }
  .modal-header { gap: 11px; padding: 19px 17px 16px; }
  .modal-heading-icon { width: 38px; height: 38px; flex-basis: 38px; border-radius: 10px; }
  .modal-header h2 { font-size: 18px; }
  .modal-description { font-size: 11px; }
  .modal-body { padding: 17px; }
  .modal-body .form-grid { gap: 12px 9px; }
  .modal-body .field.full { grid-column: 1/-1; }
  .product-image-preview { width: 68px; height: 68px; flex-basis: 68px; }
  .product-image-field { align-items: flex-start; gap: 10px; }
  .product-image-dropzone { min-height: 68px; }
  .product-option-group-heading { grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto; }
  .product-option-group-heading [name="optionGroupName"] { grid-row: 2; grid-column: 1/3; }
  .product-option-group-heading [name="optionSelectionMode"] { grid-row: 3; grid-column: 1/2; }
  .product-option-group-heading .product-option-required { grid-row: 3; grid-column: 2/3; }
  .product-option-group-heading [data-remove-product-option-group] { grid-row: 1; grid-column: 3; }
  .product-option-group-heading [name="optionGroupType"] { grid-row: 1; grid-column: 1/3; }
  .product-option-row { grid-template-columns: minmax(0,1fr) minmax(86px,.65fr) 32px; }
  .modal-footer { gap: 7px; }
  .modal-footer .btn { padding-inline: 11px; font-size: 11px; }
}
