﻿:root {
  --ink: #17212b;
  --muted: #64707d;
  --line: #dce3e8;
  --soft: #f4f7f8;
  --white: #fff;
  --teal: #006d68;
  --teal-dark: #004e4b;
  --lime: #c8e64a;
  --gold: #f4b942;
  --danger: #b42318;
  --pos-bg: #101820;
  --shadow: 0 12px 30px rgba(23, 33, 43, .12);
}

/* Supplier portal */
body.dedicated-supplier-domain .club-location { display: none; }
.supplier-shell { min-height: calc(100vh - 72px); display: grid; grid-template-columns: 250px minmax(0,1fr); background: #f3f6f4; }
.supplier-menu { background: #12392f; color: #fff; padding: 24px 14px; display: flex; flex-direction: column; gap: 7px; }
.supplier-menu-toggle { display: none; }
.supplier-menu-heading { padding: 4px 12px 20px; display: grid; gap: 4px; border-bottom: 1px solid rgba(255,255,255,.14); margin-bottom: 8px; }
.supplier-menu-heading small { color: #9ed7c5; text-transform: uppercase; letter-spacing: .09em; font-size: .68rem; font-weight: 700; }
.supplier-menu-heading strong { font-family: Manrope, sans-serif; font-size: 1.05rem; }
.supplier-menu button { border: 0; background: transparent; color: #d9ebe5; display: flex; align-items: center; gap: 11px; padding: 11px 13px; border-radius: 9px; font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.supplier-menu button:hover,.supplier-menu button.active { background: rgba(255,255,255,.12); color: #fff; }
.supplier-menu button svg { width: 18px; height: 18px; }
.supplier-workspace { min-width: 0; padding: 30px; overflow: auto; }
.supplier-content { max-width: 1500px; margin: 0 auto; display: grid; gap: 22px; }
.supplier-page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.supplier-page-heading h1 { margin: 3px 0; font: 800 clamp(1.65rem,3vw,2.35rem)/1.1 Manrope,sans-serif; color: #17372f; }
.supplier-page-heading p:last-child { color: #61736d; margin: 8px 0 0; }
.supplier-heading-actions { display: flex; gap: 9px; }
.supplier-card { background: #fff; border: 1px solid #dfe8e4; border-radius: 14px; box-shadow: 0 8px 28px rgba(21,54,45,.06); padding: 22px; }
.supplier-card h2 { color: #17372f; margin: 0 0 15px; font-family: Manrope,sans-serif; }
.supplier-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.supplier-metrics button { border: 1px solid #dfe8e4; background: #fff; border-radius: 14px; padding: 18px; display: grid; grid-template-columns: auto 1fr; text-align: left; align-items: center; gap: 5px 11px; color: #476159; cursor: pointer; box-shadow: 0 8px 24px rgba(21,54,45,.05); }
.supplier-metrics button svg { grid-row: 1/3; color: #1c8068; background: #e7f4ef; padding: 9px; width: 42px; height: 42px; border-radius: 11px; }
.supplier-metrics button strong { font: 800 1.65rem Manrope,sans-serif; color: #17372f; }
.supplier-dashboard-grid { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(400px,1.5fr); gap: 18px; }
.supplier-company-row,.supplier-notification { display: flex; align-items: center; justify-content: space-between; padding: 13px 0; border-top: 1px solid #e9efec; }
.supplier-company-row div,.supplier-notification div { display: grid; gap: 3px; }
.supplier-company-row small,.supplier-notification small,.admin-table td small { display: block; color: #71837d; margin-top: 3px; }
.supplier-notification { justify-content: flex-start; gap: 12px; }
.supplier-notification.unread { background: #f0f9f6; margin: 0 -10px; padding: 13px 10px; border-radius: 9px; }
.supplier-notification p { margin: 3px 0; color: #536a62; }
.supplier-table-card { padding: 0; overflow: auto; }
.supplier-table-card .admin-table { margin: 0; }
.supplier-table-card tbody tr[data-supplier-po] { cursor: pointer; }
.supplier-table-card tbody tr[data-supplier-po]:hover { background: #f0f8f5; }
.supplier-status { display: inline-flex; align-items: center; width: fit-content; border-radius: 999px; padding: 5px 9px; background: #edf1ef; color: #4e625c; font-size: .76rem; font-weight: 700; white-space: nowrap; }
.supplier-status.approved,.supplier-status.received,.supplier-status.posted,.supplier-status.paid { background: #dff5e9; color: #17663d; }
.supplier-status.submitted,.supplier-status.in-transit,.supplier-status.under-review { background: #e2efff; color: #245d94; }
.supplier-status.rejected,.supplier-status.cancelled,.supplier-status.denied { background: #ffe4e3; color: #9b302c; }
.supplier-status.changes-requested,.supplier-status.partially-received,.supplier-status.open { background: #fff0cf; color: #825c05; }
.supplier-form { display: grid; gap: 22px; }
.supplier-detail-strip { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; padding-bottom: 18px; border-bottom: 1px solid #e4ebe8; }
.supplier-detail-strip > div { display: grid; gap: 6px; }
.supplier-detail-strip span:first-child { color: #71837d; font-size: .76rem; text-transform: uppercase; letter-spacing: .05em; }
.supplier-line-table { overflow: auto; }
.supplier-line-table .admin-table input,.supplier-line-table .admin-table select { min-width: 100px; width: 100%; }
.supplier-review-note { border-left: 4px solid #31896f; background: #edf7f3; padding: 13px 16px; border-radius: 4px 10px 10px 4px; }
.supplier-review-note p { margin: 5px 0 0; color: #456159; }
.supplier-claim-list,.supplier-company-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(320px,1fr)); gap: 16px; }
.supplier-claim-heading { display: flex; justify-content: space-between; gap: 16px; }
.supplier-claim-heading h2 { margin: 3px 0; }
.supplier-claim-meta { display: flex; flex-wrap: wrap; gap: 14px; color: #647771; font-size: .82rem; margin: 16px 0; }
.supplier-profile-lines { display: grid; gap: 10px; color: #526860; }
.supplier-profile-lines span { display: flex; gap: 9px; align-items: center; }
.supplier-profile-lines svg { width: 17px; color: #27836b; }
@media(max-width:900px){
  .supplier-shell{grid-template-columns:1fr;align-content:start}
  .supplier-menu-toggle{position:sticky;top:72px;z-index:12;width:100%;min-height:50px;display:flex;align-items:center;gap:10px;padding:10px 16px;border:0;border-bottom:1px solid rgba(255,255,255,.16);background:#12392f;color:#fff;font-weight:800;text-align:left}
  .supplier-menu-toggle span{flex:1}
  .supplier-menu-toggle svg{width:19px;height:19px}
  .supplier-menu-toggle[aria-expanded="true"] svg:last-child{transform:rotate(180deg)}
  .supplier-menu{position:sticky;top:122px;z-index:11;display:none;max-height:calc(100vh - 122px);overflow:auto;padding:8px 10px 12px;box-shadow:0 14px 24px rgba(9,31,25,.22)}
  .supplier-menu.open{display:flex}
  .supplier-menu-heading{display:none}
  .supplier-menu button{width:100%;white-space:normal}
  .supplier-workspace{padding:20px 14px}
  .supplier-metrics{grid-template-columns:repeat(2,1fr)}
  .supplier-dashboard-grid{grid-template-columns:1fr}
  .supplier-detail-strip{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){.supplier-metrics{grid-template-columns:1fr}.supplier-page-heading{align-items:flex-start;flex-direction:column}.supplier-detail-strip{grid-template-columns:1fr}}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Inter, sans-serif; color: var(--ink); background: var(--soft); overflow-x: hidden; }
body.startup-pending > .topbar, body.startup-pending > main { visibility: hidden; }
button, input { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3, .brand strong { font-family: Manrope, sans-serif; letter-spacing: 0; }
.topbar { height: 72px; display: grid; grid-template-columns: minmax(230px, 1fr) auto auto; gap: 28px; align-items: center; padding: 0 28px; background: var(--white); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 50; }
.brand { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; color: var(--ink); width: max-content; }
.brand-mark { width: 38px; height: 38px; background: var(--teal); color: white; display: grid; place-items: center; transform: rotate(45deg); border-radius: 6px; }
.brand-mark svg { transform: rotate(-45deg); width: 20px; }
.brand-mark img { width: 100%; height: 100%; padding: 3px; object-fit: contain; transform: rotate(-45deg); border-radius: inherit; background: white; }
.brand-mark.club-logo-mark { width: 58px; height: 44px; transform: none; background: transparent; border-radius: 4px; }
.brand-mark.club-logo-mark img { padding: 0; transform: none; object-fit: contain; background: transparent; }
.brand-mark.small { width: 32px; height: 32px; background: rgba(255,255,255,.16); }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 18px; line-height: 1; }
.brand small { font-size: 10px; text-transform: uppercase; color: var(--muted); margin-top: 4px; font-weight: 700; }
.club-location { display: flex; align-items: center; border-left: 1px solid var(--line); padding-left: 24px; }
.club-location small, .club-location strong { display: block; font-size: 11px; }
.club-location small { color: var(--ink); font-weight: 800; line-height: 1.05; }
.club-store-caption { display: block; margin-top: 2px; color: var(--muted); font-size: 8px; font-weight: 700; line-height: 1; text-transform: uppercase; }
.club-location label { display: block; }
.club-location select { display: block; max-width: 230px; border: 0; background: transparent; color: var(--ink); font: 800 11px Inter, sans-serif; padding: 1px 20px 1px 0; cursor: pointer; }
.club-location select:focus { outline: 2px solid rgba(0,112,103,.25); outline-offset: 2px; }
.dedicated-pos-domain.associate-auth-required #pos-app { visibility: hidden; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.icon-button { width: 38px; height: 38px; border: 1px solid var(--line); background: var(--white); display: grid; place-items: center; border-radius: 6px; position: relative; color: var(--ink); }
.icon-button svg { width: 18px; }
.icon-button.dark { background: #1b2732; border-color: #34424f; color: white; }
.avatar-button { width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--teal); color: white; font-weight: 800; }
.app-mode, .member-view, .pos-view { display: none; }
.app-mode.active, .member-view.active, .pos-view.active { display: block; }
.member-shell { min-height: calc(100vh - 72px); }
.member-nav { position: fixed; left: 0; top: 72px; bottom: 0; width: 88px; background: var(--white); border-right: 1px solid var(--line); padding: 18px 10px; display: flex; flex-direction: column; gap: 6px; z-index: 20; }
.nav-item { border: 0; background: transparent; min-height: 62px; border-radius: 6px; display: grid; place-items: center; gap: 3px; color: var(--muted); font-size: 10px; font-weight: 700; }
.nav-item svg { width: 21px; }
.nav-item.active { color: var(--teal); background: #e8f4f3; }
.member-content { margin-left: 88px; padding: 34px clamp(24px, 4vw, 64px) 80px; max-width: 1600px; min-width: 0; }
.shop-heading, .section-heading, .pos-page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; min-width: 0; }
.shop-heading > *, .section-heading > *, .pos-page-heading > * { min-width: 0; }
.shop-heading h1, .section-heading h1, .pos-page-heading h1 { margin-bottom: 0; font-size: clamp(28px, 3vw, 42px); }
.eyebrow { margin-bottom: 6px; color: var(--teal); text-transform: uppercase; letter-spacing: .11em; font-size: 10px; font-weight: 800; }
.scan-cta { min-width: 260px; border: 0; background: var(--teal); color: white; padding: 13px 16px; border-radius: 7px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; text-align: left; box-shadow: var(--shadow); }
.scan-cta > svg { width: 22px; }
.scan-cta small, .scan-cta strong { display: block; }
.scan-cta small { opacity: .76; margin-top: 2px; font-size: 10px; }
.search-row { display: grid; grid-template-columns: 1fr auto; gap: 12px; margin: 28px 0 18px; }
.search-box, .pos-search { background: white; border: 1px solid var(--line); min-height: 48px; display: flex; align-items: center; gap: 10px; padding: 0 14px; border-radius: 6px; }
.search-box:focus-within { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(0,109,104,.1); }
.search-box svg, .pos-search svg { width: 19px; color: var(--muted); }
.search-box input, .pos-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; }
kbd { color: var(--muted); border: 1px solid var(--line); background: var(--soft); border-radius: 4px; padding: 2px 6px; }
.outline-button, .light-button, .primary-button { border-radius: 6px; min-height: 42px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; border: 1px solid var(--line); }
.outline-button { background: white; color: var(--ink); }
.outline-button.dark { background: transparent; color: white; border-color: #42505c; }
.outline-button svg, .light-button svg, .primary-button svg { width: 17px; }
.light-button { background: white; color: var(--teal-dark); border: 0; }
.primary-button { background: var(--teal); border-color: var(--teal); color: white; }
.wide { width: 100%; }
.category-strip { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 18px; scrollbar-width: none; }
.category-strip button, .pos-category-strip button { white-space: nowrap; border: 1px solid var(--line); background: white; color: var(--muted); border-radius: 5px; padding: 9px 13px; font-size: 12px; font-weight: 700; }
.category-strip button.active { color: white; background: var(--ink); border-color: var(--ink); }
.promo-band { background: linear-gradient(100deg, #004e4b, #007e77); color: white; min-height: 210px; padding: 30px 42px; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 6px 0 34px; border-radius: 8px; overflow: hidden; position: relative; }
.promo-band::after { content: ""; position: absolute; width: 320px; height: 320px; right: -80px; top: -140px; border: 46px solid rgba(255,255,255,.08); transform: rotate(20deg); border-radius: 50%; }
.promo-band h2 { font-size: clamp(24px, 3vw, 38px); max-width: 670px; margin: 8px 0; }
.promo-tag { display: inline-block; background: var(--lime); color: #263100; padding: 5px 9px; border-radius: 4px; text-transform: uppercase; font-size: 9px; letter-spacing: .1em; font-weight: 800; }
.reward-meter { z-index: 1; padding-right: 20px; }
.reward-ring { width: 128px; height: 128px; border: 10px solid rgba(255,255,255,.24); border-top-color: var(--lime); border-radius: 50%; display: grid; place-content: center; text-align: center; }
.reward-ring strong, .reward-ring span { display: block; }
.reward-ring strong { font: 800 28px Manrope; }
.reward-ring span { font-size: 10px; text-transform: uppercase; }
.section-heading { margin: 24px 0 16px; }
.section-heading.compact { align-items: center; margin-top: 28px; }
.section-heading h2 { margin-bottom: 0; font-size: 22px; }
.muted { color: var(--muted); font-size: 12px; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.member-product-grid { gap: 9px; }
.member-shop-product { min-height: 126px; cursor: pointer; }
.member-shop-product .pos-product-heading img { width: 46px; height: 46px; flex-basis: 46px; }
.member-product-name { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.member-product-name strong { margin: 0; }
.member-product-name small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.member-shop-product .product-unit { margin-bottom: 7px; }
.member-shop-price { display: flex; flex-direction: column; align-items: flex-start; }
.member-shop-price strong { margin: 0; color: var(--ink); font: 800 14px Manrope; }
.member-shop-price del, .member-shop-price small { color: var(--muted); font-size: 9px; }
.product-card { background: white; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; display: flex; flex-direction: column; min-width: 0; transition: transform .18s, box-shadow .18s; }
.product-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.product-image { aspect-ratio: 4 / 3; background: #edf1f2; overflow: hidden; position: relative; }
.product-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.savings-badge { position: absolute; top: 10px; left: 10px; background: #fff4d5; color: #7b4d00; padding: 5px 8px; border-radius: 4px; font-size: 9px; font-weight: 800; }
.product-info { padding: 15px; display: flex; flex-direction: column; flex: 1; }
.product-brand { color: var(--muted); text-transform: uppercase; font-size: 9px; font-weight: 800; }
.product-info h3 { font-size: 14px; line-height: 1.35; margin: 6px 0; min-height: 38px; }
.product-unit { font-size: 11px; color: var(--muted); }
.product-bottom { margin-top: auto; padding-top: 13px; display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; }
.price strong { font: 800 21px Manrope; display: block; }
.price del { font-size: 10px; color: var(--muted); }
.add-button { width: 36px; height: 36px; border-radius: 5px; border: 0; background: var(--teal); color: white; display: grid; place-items: center; }
.add-button svg { width: 18px; }
.scan-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; align-items: start; }
.status-chip { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #b9ddd8; color: var(--teal); padding: 7px 10px; border-radius: 5px; font-size: 11px; font-weight: 700; background: white; }
.status-chip span, .register-status span { width: 7px; height: 7px; border-radius: 50%; background: #2db96b; }
.scanner-panel { display: grid; grid-template-columns: 220px 1fr; gap: 28px; align-items: center; background: white; border: 1px solid var(--line); padding: 26px; border-radius: 7px; }
.scanner-frame { height: 220px; background: #14212a; border-radius: 6px; display: grid; place-items: center; color: #99fff3; position: relative; overflow: hidden; }
.scanner-frame::after { content: ""; position: absolute; z-index: 3; left: 22px; right: 22px; height: 2px; background: #6fffe8; box-shadow: 0 0 14px #6fffe8; animation: scan 2.2s infinite ease-in-out; pointer-events: none; }
@keyframes scan { 0%,100% { top: 28px; } 50% { top: 145px; } }
.scanner-frame.camera-active::after { top: 50%; animation: none; }
.scanner-placeholder { display: grid; place-items: center; gap: 8px; }
.scanner-placeholder svg { width: 54px; height: 54px; opacity: .5; }
.scanner-placeholder small { color: white; opacity: .7; font-weight: 700; }
.camera-active .scanner-placeholder { display: none; }
#barcode-reader { position: absolute; inset: 0; z-index: 1; }
#barcode-reader video { width: 100% !important; height: 100% !important; object-fit: cover; }
#barcode-reader img, #barcode-reader__dashboard { display: none !important; }
.scanner-frame span { z-index: 4; position: absolute; width: 26px; height: 26px; border-color: white; border-style: solid; pointer-events: none; }
.scanner-frame span:nth-child(1) { left: 18px; top: 18px; border-width: 3px 0 0 3px; }
.scanner-frame span:nth-child(2) { right: 18px; top: 18px; border-width: 3px 3px 0 0; }
.scanner-frame span:nth-child(3) { right: 18px; bottom: 18px; border-width: 0 3px 3px 0; }
.scanner-frame span:nth-child(4) { left: 18px; bottom: 18px; border-width: 0 0 3px 3px; }
.scanner-status { min-height: 38px; color: var(--muted); line-height: 1.5; }
.scanner-status.success { color: #16794a; }
.scanner-status.error { color: var(--danger); }
.scanner-actions { display: flex; gap: 8px; margin-top: 14px; }
.scanner-actions button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.scanner-actions svg { width: 17px; }
.manual-entry-label { margin: 18px 0 -8px; color: var(--muted); font-size: 11px; font-weight: 700; }
.barcode-entry { display: flex; gap: 8px; margin-top: 18px; }
.barcode-entry input { height: 44px; flex: 1; border: 1px solid var(--line); border-radius: 5px; padding: 0 12px; min-width: 0; }
.barcode-entry button { border: 0; background: var(--teal); color: white; border-radius: 5px; padding: 0 14px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; }
.barcode-entry button svg { width: 16px; }
.checkout-summary { position: sticky; top: 100px; background: white; border: 1px solid var(--line); padding: 22px; border-radius: 7px; }
.summary-row, .summary-total { display: flex; justify-content: space-between; gap: 18px; padding: 10px 0; font-size: 13px; }
.summary-row.savings, .savings { color: #16794a; }
.summary-total { border-top: 1px solid var(--line); margin-top: 8px; padding-top: 18px; font-size: 18px; }
.summary-total strong { font-family: Manrope; }
.secure-note { color: var(--muted); font-size: 10px; display: flex; gap: 6px; line-height: 1.5; margin: 12px 0 0; }
.secure-note svg { width: 15px; flex: 0 0 auto; }
.cart-line { background: white; border-bottom: 1px solid var(--line); padding: 14px; display: grid; grid-template-columns: 58px minmax(0,1fr) auto; gap: 13px; align-items: center; }
.cart-line img { width: 58px; height: 58px; object-fit: cover; border-radius: 5px; background: var(--soft); }
.cart-line h3 { font-size: 12px; margin-bottom: 3px; }
.cart-line small { color: var(--muted); }
.qty-control { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.qty-control button { width: 25px; height: 25px; border: 1px solid var(--line); background: white; border-radius: 4px; }
.line-price { text-align: right; font-weight: 800; }
.line-price button { display: block; margin: 8px 0 0 auto; border: 0; color: var(--danger); background: transparent; font-size: 10px; }
.empty-state { min-height: 150px; display: grid; place-items: center; color: var(--muted); border: 1px dashed #bdc9ce; border-radius: 7px; background: rgba(255,255,255,.45); text-align: center; padding: 20px; }
.text-button { border: 0; background: transparent; color: var(--teal); font-weight: 700; font-size: 11px; padding: 3px; }
.text-button.danger, .danger { color: var(--danger); }
.test-barcode-help { color: var(--muted); line-height: 1.5; margin-top: 0; }
.test-barcode-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.test-barcode-card { border: 1px solid var(--line); border-radius: 6px; padding: 14px; background: white; min-width: 0; }
.test-barcode-card strong, .test-barcode-card small { display: block; }
.test-barcode-card strong { font-size: 12px; }
.test-barcode-card small { color: var(--muted); margin: 4px 0 10px; }
.product-test-barcode { width: 100%; height: auto; display: block; }
.order-list, .transaction-list { background: white; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.order-row, .transaction-row { display: grid; grid-template-columns: 1.2fr 1fr .8fr auto; align-items: center; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.order-row:last-child, .transaction-row:last-child { border-bottom: 0; }
.order-row strong, .order-row small, .transaction-row strong, .transaction-row small { display: block; }
.order-row small, .transaction-row small { color: var(--muted); margin-top: 3px; }
.membership-layout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(320px,.75fr); gap: 48px; align-items: center; max-width: 1100px; margin: 30px auto; }
.lead { color: var(--muted); line-height: 1.7; max-width: 650px; }
.membership-card { background: linear-gradient(140deg, #073f3d, #008078); color: white; width: min(100%, 560px); aspect-ratio: 1.65; border-radius: 8px; padding: 28px; box-shadow: 0 24px 50px rgba(0,78,75,.24); margin-top: 26px; display: flex; flex-direction: column; }
.membership-card-top, .membership-card-bottom { display: flex; align-items: center; justify-content: space-between; }
.membership-name { font: 800 27px Manrope; margin-top: auto; }
.barcode { font-family: monospace; letter-spacing: 5px; margin: 18px 0 5px; overflow: hidden; white-space: nowrap; }
.membership-number { font-family: monospace; letter-spacing: 3px; }
.membership-card-bottom { margin-top: auto; font-size: 10px; opacity: .75; text-transform: uppercase; }
.membership-details { background: white; border: 1px solid var(--line); border-radius: 7px; padding: 20px; }
.detail-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 4px; border-bottom: 1px solid var(--line); }
.detail-row span { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; }
.detail-row svg { width: 18px; color: var(--teal); }
.cart-drawer { position: fixed; z-index: 80; top: 72px; right: 0; bottom: 0; width: min(420px, 100vw); background: white; box-shadow: -16px 0 40px rgba(23,33,43,.2); transform: translateX(105%); transition: transform .25s; display: flex; flex-direction: column; }
.cart-drawer.open { transform: translateX(0); }
.drawer-header { padding: 20px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.drawer-header h2 { margin: 0; }
.drawer-lines { overflow: auto; flex: 1; }
.drawer-footer { padding: 20px; border-top: 1px solid var(--line); }
.floating-cart { position: fixed; z-index: 35; bottom: 24px; right: 28px; width: 58px; height: 58px; border: 0; border-radius: 50%; background: var(--teal); color: white; box-shadow: var(--shadow); display: grid; place-items: center; }
.floating-cart span { position: absolute; right: -2px; top: -2px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--gold); color: #332000; font-size: 10px; font-weight: 800; display: grid; place-items: center; }

/* Shared B2B storefront */
.b2b-storefront { background: #f6f5f0; }
.b2b-storefront .member-content { max-width: none; }
.shop-hero { min-height: 110px; display: grid; grid-template-columns: minmax(0,1fr) 150px; overflow: hidden; border-radius: 18px; background: #edf1e8; box-shadow: 0 20px 55px rgba(28,52,41,.09); }
.shop-hero-copy { padding: 16px 22px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.shop-hero-copy h1 { margin: 0; max-width: 700px; color: #17352d; font-size: clamp(18px,2vw,24px); line-height: 1.2; letter-spacing: -.045em; }
.shop-hero-copy > p:not(.eyebrow):not(.shop-welcome) { max-width: 650px; color: #53645d; font-size: 16px; line-height: 1.75; }
.shop-hero-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.shop-welcome { margin: 8px 0 0; padding: 4px 10px; border-left: 3px solid var(--teal); color: #36564d; background: rgba(255,255,255,.6); font-weight: 650; }
.shop-hero-image,.about-company-image { min-height: 360px; position: relative; overflow: hidden; background: radial-gradient(circle at 30% 25%,#b8d9c5,#527c69 58%,#234e42); background-position: center; background-size: cover; }
.shop-hero-image:not(.has-image)::before,.about-company-image:not(.has-image)::before { content:""; position:absolute; inset:15%; border:1px solid rgba(255,255,255,.3); border-radius:50% 35% 55% 40%; transform:rotate(-12deg); }
.shop-hero-image > span { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.72); }
.shop-hero-image.has-image > span { display:none; }
.shop-hero-image svg { width: 44px; height: 44px; }
.shop-confidence { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; margin: 10px 0 20px; overflow: hidden; border: 1px solid #dce1da; border-radius: 12px; background: #dce1da; }
.shop-confidence article { min-height: 40px; display: flex; align-items: center; gap: 8px; padding: 8px 12px; background: white; }
.shop-confidence svg { width: 24px; color: var(--teal); flex: 0 0 auto; }
.shop-confidence strong,.shop-confidence small { display:block; }
.shop-confidence strong { color:#243d35; font-size:13px; }
.shop-confidence small { margin-top:4px; color:var(--muted); font-size:10px; line-height:1.4; }
.shop-catalog-heading { scroll-margin-top: 90px; }
.catalog-access-note { margin: 0 0 20px; padding: 14px 16px; display: flex; align-items: center; gap: 12px; border: 1px solid #cfe0d9; border-radius: 9px; background: #f0f7f4; color: #315248; }
.catalog-access-note[hidden] { display:none; }
.catalog-access-note svg { width:20px; flex:0 0 auto; }
.catalog-access-note span { flex:1; font-size:12px; }
.store-product-card { min-width:0; overflow:hidden; display:flex; flex-direction:column; border:1px solid #dde2dd; border-radius:12px; background:white; box-shadow:0 7px 22px rgba(29,50,42,.05); transition:transform .18s,box-shadow .18s; }
.store-product-card:hover { transform:translateY(-3px); box-shadow:0 15px 32px rgba(29,50,42,.11); }
.store-product-image { aspect-ratio:4/3; position:relative; overflow:hidden; display:grid; place-items:center; background:linear-gradient(145deg,#e9eee8,#d8e3dc); color:#769486; }
.store-product-image img { width:100%; height:100%; object-fit:cover; }
.store-product-image > svg { width:48px; height:48px; opacity:.65; }
.availability-dot { position:absolute; top:12px; left:12px; padding:5px 8px; border-radius:99px; background:rgba(255,255,255,.92); color:#197346; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.store-product-body { flex:1; display:flex; flex-direction:column; padding:17px; }
.store-product-body h3 { min-height:42px; margin:6px 0 9px; font-size:16px; line-height:1.3; color:#20372f; }
.store-product-body > p { margin:10px 0 0; color:var(--muted); font-size:11px; line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.product-attributes { min-height:25px; display:flex; flex-wrap:wrap; gap:5px; }
.product-attributes span { padding:4px 7px; border-radius:4px; background:#f1f3ef; color:#607067; font-size:9px; font-weight:700; }
.store-product-order { margin-top:auto; padding-top:18px; display:flex; align-items:flex-end; justify-content:space-between; gap:12px; }
.store-product-order strong,.store-product-order small,.store-product-order span { display:block; }
.store-product-order strong { color:#16392f; font:800 22px Manrope; }
.store-product-order small { color:var(--muted); font-size:9px; }
.store-product-order span { margin-top:5px; color:#347257; font-size:10px; font-weight:700; }
.product-login-gate { width:100%; min-height:46px; margin-top:auto; padding:10px; display:flex; align-items:center; justify-content:center; gap:8px; border:1px solid #d9e1dc; border-radius:6px; background:#f7f8f6; color:#38574c; font-size:10px; font-weight:800; }
.product-login-gate svg { width:15px; }
.account-signin-panel { min-height:360px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:36px; border:1px solid #dce2dc; border-radius:14px; background:white; text-align:center; }
.account-signin-panel > svg { width:46px; height:46px; color:var(--teal); }
.account-signin-panel h2 { margin:16px 0 7px; }
.account-signin-panel p { max-width:520px; margin:0 0 20px; color:var(--muted); }
.customer-account-grid { display:grid; grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr); gap:24px; }
.account-profile-card,.account-addresses { padding:28px; border:1px solid #dde2dd; border-radius:14px; background:white; }
.account-profile-card > p:not(.eyebrow) { color:var(--muted); }
.account-profile-card dl { margin:24px 0 0; }
.account-profile-card dl div { display:flex; justify-content:space-between; gap:18px; padding:14px 0; border-top:1px solid var(--line); }
.account-profile-card dt { color:var(--muted); }
.account-profile-card dd { margin:0; font-weight:750; text-align:right; }
.account-addresses article { position:relative; margin-top:12px; padding:18px; border:1px solid var(--line); border-radius:8px; }
.account-addresses article span { position:absolute; top:14px; right:14px; color:var(--teal); font-size:9px; font-weight:800; text-transform:uppercase; }
.account-addresses article p { margin:7px 0 0; color:var(--muted); line-height:1.5; }
.about-company-layout { min-height:620px; display:grid; grid-template-columns:minmax(340px,1fr) minmax(0,1fr); gap:clamp(30px,6vw,90px); align-items:center; }
.about-company-image { min-height:520px; border-radius:18px; box-shadow:0 18px 48px rgba(24,52,42,.14); }
.about-values { display:grid; gap:13px; margin:26px 0; }
.about-values span { display:flex; align-items:center; gap:10px; font-weight:700; color:#36564b; }
.about-values svg { width:20px; color:var(--teal); }
.customer-order-modal { width:min(720px,100%); }
.customer-order-form { display:grid; gap:18px; }
.customer-order-form label { display:grid; gap:7px; color:#334a42; font-size:11px; font-weight:750; }
.customer-order-form label > span { color:var(--muted); font-size:9px; font-weight:600; }
.customer-order-form input,.customer-order-form select,.customer-order-form textarea { width:100%; border:1px solid #cfd8d2; border-radius:6px; padding:11px 12px; background:white; color:var(--ink); font:inherit; }
.customer-order-form input[readonly] { background:#f4f5f2; color:#647269; }
.order-review-banner { display:flex; gap:12px; align-items:center; padding:14px; border-radius:8px; background:#eef6f2; color:#31564a; }
.order-review-banner svg { width:23px; }
.order-review-banner strong,.order-review-banner span { display:block; }
.order-review-banner span { margin-top:3px; color:#60736b; font-size:10px; }
.order-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fulfillment-choice { margin:0; padding:0; border:0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.fulfillment-choice legend { margin-bottom:8px; font-size:11px; font-weight:800; color:#334a42; }
.fulfillment-choice label { display:block; position:relative; }
.fulfillment-choice input { position:absolute; opacity:0; }
.fulfillment-choice label > span { min-height:82px; padding:14px; display:grid; grid-template-columns:auto 1fr; column-gap:10px; border:1px solid #d5ddd8; border-radius:7px; background:white; color:#334a42; }
.fulfillment-choice label > span svg { grid-row:1/3; width:22px; color:var(--teal); }
.fulfillment-choice label > span strong,.fulfillment-choice label > span small { display:block; }
.fulfillment-choice input:checked + span { border-color:var(--teal); box-shadow:0 0 0 2px rgba(0,109,104,.12); background:#f2f8f5; }
.customer-shipping-fields { display:grid; gap:12px; }
.customer-shipping-fields[hidden] { display:none; }
.order-review-total { display:flex; align-items:center; justify-content:flex-end; gap:22px; padding-top:16px; border-top:1px solid var(--line); }
.order-review-total span { color:var(--muted); font-size:11px; }
.order-review-total strong { color:#173a30; font:800 24px Manrope; }

.pos-shell { min-height: calc(100vh - 72px); background: #e8edf0; display: grid; grid-template-columns: 220px minmax(0,1fr); align-items: start; }
.pos-tabs { height: 52px; background: white; border-bottom: 1px solid #cbd4da; padding-left: 22px; display: flex; gap: 4px; }
.pos-tabs button { border: 0; border-bottom: 3px solid transparent; background: transparent; min-width: 130px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; color: var(--muted); }
.pos-tabs button svg { width: 17px; }
.pos-tabs button.active { color: var(--teal); border-bottom-color: var(--teal); }
.associate-menu { position: sticky; z-index: 25; top: 72px; grid-column: 1; grid-row: 1; width: 220px; height: calc(100vh - 72px); max-height: none; border-radius: 0; align-self: start; }
.pos-view { grid-column: 2; grid-row: 1; margin: 0; padding-top: 0; align-self: start; }
.pos-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 410px; min-height: calc(100vh - 72px); }
.pos-catalog { padding: 0 16px 16px; }
.pos-toolbar { display: flex; gap: 8px; }
.pos-search { flex: 1; border-color: #bac6cd; }
.pos-scan-trigger { width: 36px; height: 36px; flex: 0 0 36px; display: inline-flex; align-items: center; justify-content: center; margin-left: -8px; border: 0; border-radius: 5px; background: transparent; color: var(--teal); cursor: pointer; }
.pos-scan-trigger:hover, .pos-scan-trigger:focus-visible { background: #e7f4f2; outline: 2px solid rgba(0,109,104,.22); }
.pos-scan-trigger svg { width: 22px; height: 22px; }
.pos-camera-scanner { display: grid; gap: 14px; }
.pos-camera-reader { min-height: 260px; overflow: hidden; border-radius: 7px; background: #111d25; }
.pos-camera-reader video { width: 100% !important; object-fit: cover; }
.pos-camera-status { min-height: 40px; margin: 0; color: var(--muted); line-height: 1.5; }
.pos-camera-status.success { color: #16794a; }
.pos-camera-status.error { color: var(--danger); font-weight: 700; }
.pos-camera-actions { display: flex; gap: 8px; }
.pos-search.narrow { max-width: 330px; }
.pos-category-strip { display: flex; gap: 7px; padding: 12px 0; overflow-x: auto; }
.pos-category-tools { display: flex; align-items: center; gap: 9px; min-width: 0; }
.pos-category-tools > select { flex: 0 0 170px; min-width: 150px; padding: 8px 28px 8px 9px; border: 1px solid #bfc9cf; border-radius: 5px; background-color: white; font-size: 11px; font-weight: 700; }
.pos-category-tools .pos-category-strip { flex: 1; min-width: 0; }
.pos-category-strip button { background: #f8fafb; border-color: #bfc9cf; }
.pos-category-strip button.active { background: #25333e; color: white; border-color: #25333e; }
.pos-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 9px; max-height: calc(100vh - 260px); overflow: auto; padding-right: 4px; }
.pos-product-load-status { grid-column: 1 / -1; padding: 10px; color: var(--muted); font-size: 10px; font-weight: 700; text-align: center; }
.pos-product { border: 1px solid #c2ccd2; background: white; border-radius: 5px; padding: 10px; text-align: left; min-height: 112px; display: flex; flex-direction: column; }
.pos-product:hover { border-color: var(--teal); }
.pos-product .pos-sku { font-size: 9px; color: var(--muted); }
.pos-product-attributes { display: block; margin-top: 3px; overflow: hidden; color: #53636d; font-size: 8px; font-weight: 700; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.pos-product strong { font-size: 11px; line-height: 1.35; margin: 5px 0; }
.pos-product-heading { display: flex; align-items: center; gap: 8px; margin: 5px 0; }
.pos-product-heading img { width: 38px; height: 38px; flex: 0 0 38px; border: 1px solid var(--line); border-radius: 4px; object-fit: cover; background: #f5f7f8; }
.pos-product-heading strong { margin: 0; }
.pos-product-name-block { min-width: 0; display: flex; flex-direction: column; }
.pos-product-vendor { overflow: hidden; color: #53636d; font-size: 8px; font-weight: 700; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.pos-product-description { display: -webkit-box; margin: 1px 0 8px; overflow: hidden; color: var(--muted); font-size: 9px; line-height: 1.35; cursor: pointer; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.pos-product-description:hover, .pos-product-description:focus { color: var(--teal); text-decoration: underline; outline: none; }
.pos-product-description-full { margin: 0; color: var(--ink); font-size: 13px; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.pos-product .pos-product-bottom { margin-top: auto; display: flex; justify-content: space-between; align-items: end; }
.pos-product .stock-low { color: var(--danger); font-size: 9px; font-weight: 700; }
.fresh-flower-pos-product { min-height: 58px; padding: 7px 9px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: start; }
.fresh-flower-pos-main { min-width: 0; }
.fresh-flower-pos-product .pos-product-heading { margin: 0; min-width: 0; }
.fresh-flower-pos-product .pos-product-heading img { width: 34px; height: 34px; flex-basis: 34px; }
.fresh-flower-pos-product .pos-product-heading strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.fresh-flower-pos-metrics { display: flex; flex-direction: column; align-items: flex-end; white-space: nowrap; }
.fresh-flower-pos-metrics strong { margin: 0; color: var(--ink); font: 800 14px Manrope; }
.fresh-flower-pos-metrics small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.pos-ticket { background: white; border-left: 1px solid #bcc8ce; display: flex; flex-direction: column; min-height: 100%; }
.member-lookup { min-height: 64px; padding: 11px 14px; background: #edf8f6; border-bottom: 1px solid #bfdbd7; display: flex; align-items: center; justify-content: space-between; }
.member-lookup small, .member-status { display: block; }
.member-status { font-size: 12px; font-weight: 800; color: var(--teal-dark); display: flex; align-items: center; gap: 7px; }
.member-status svg { width: 17px; }
.member-lookup small { color: var(--muted); font-size: 9px; margin-top: 4px; }
.ticket-heading { height: 42px; padding: 0 14px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; font-weight: 800; font-size: 11px; text-transform: uppercase; }
.pos-cart-lines { flex: 1; min-height: 170px; max-height: calc(100vh - 560px); overflow: auto; }
.pos-cart-line { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.pos-cart-line strong, .pos-cart-line small { display: block; }
.pos-cart-line strong { font-size: 11px; }
.pos-cart-line small { font-size: 9px; color: var(--muted); margin-top: 3px; }
.pos-line-controls { display: flex; align-items: center; gap: 6px; margin-top: 8px; }
.pos-line-controls button { border: 1px solid #c8d1d6; background: white; border-radius: 3px; width: 24px; height: 24px; }
.pos-line-total { text-align: right; font-weight: 800; font-size: 12px; }
.pos-totals { border-top: 1px solid var(--line); padding: 10px 14px; }
.pos-totals > div { display: flex; justify-content: space-between; padding: 4px 0; font-size: 11px; }
.pos-grand-total { margin-top: 7px; padding-top: 11px !important; border-top: 1px solid var(--line); font-size: 18px !important; }
.pos-grand-total strong { font-family: Manrope; }
.pos-actions { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); }
.pos-actions[hidden] { display: none; }
.pos-actions button { min-height: 58px; border: 0; border-right: 1px solid var(--line); background: #f7f9fa; font-size: 9px; font-weight: 700; color: #52606b; }
.pos-actions svg { display: block; margin: 0 auto 4px; width: 17px; }
.pay-button { min-height: 62px; border: 0; background: var(--teal); color: white; margin: 12px; border-radius: 5px; display: grid; grid-template-columns: 1fr auto auto; align-items: center; padding: 0 18px; gap: 16px; text-align: left; }
.pay-button strong { font: 800 20px Manrope; }
.pay-button svg { width: 19px; }
.pos-page-heading { padding: 0 24px 24px; align-items: center; }
.pos-page-heading h1 { font-size: 30px; }
.heading-actions { display: flex; align-items: center; gap: 8px; }
.inventory-filter-bar { display: grid; grid-template-columns: minmax(150px,1.1fr) minmax(190px,1.5fr) repeat(2,minmax(135px,1fr)) repeat(2,minmax(90px,.65fr)) minmax(125px,.9fr) auto; gap: 9px; align-items: end; padding: 12px 24px; background: #f5f7f8; border-top: 1px solid #c7d0d6; }
.inventory-filter-bar label { color: #53616c; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.inventory-filter-bar input, .inventory-filter-bar select { display: block; width: 100%; min-height: 36px; margin-top: 4px; border: 1px solid #bac6cd; border-radius: 4px; padding: 7px 8px; background: white; color: var(--ink); font: 11px Inter,sans-serif; text-transform: none; }
.inventory-filter-bar button { min-height: 36px; white-space: nowrap; }
.metric-strip { display: grid; grid-template-columns: repeat(4,1fr); background: white; border-top: 1px solid #c7d0d6; border-bottom: 1px solid #c7d0d6; }
.metric-strip > div { padding: 18px 24px; border-right: 1px solid var(--line); }
.metric-strip span, .metric-strip strong { display: block; }
.metric-strip span { color: var(--muted); font-size: 10px; text-transform: uppercase; font-weight: 800; }
.metric-strip strong { font: 800 25px Manrope; margin-top: 5px; }
.inventory-table-wrap { margin: 20px 24px; background: white; border: 1px solid #c7d0d6; overflow: auto; }
.inventory-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.inventory-table th { background: #f0f3f5; color: #53616c; text-align: left; padding: 8px 10px; font-size: 8px; text-transform: uppercase; letter-spacing: .06em; white-space: nowrap; }
.inventory-table td { padding: 2px 10px; border-top: 1px solid var(--line); line-height: 1.15; white-space: nowrap; }
.inventory-item { display: flex; align-items: center; gap: 6px; min-width: 210px; }
.inventory-item img { width: 22px; height: 22px; border-radius: 3px; object-fit: cover; }
.stock-chip { padding: 3px 6px; border-radius: 4px; font-size: 8px; font-weight: 800; }
.inventory-pagination { position: sticky; left: 0; min-width: 100%; }
.stock-chip.good { background: #e5f7ec; color: #13733f; }
.stock-chip.low { background: #fff1d5; color: #835500; }
.stock-chip.out { background: #fee9e7; color: #a42b22; }
.transaction-list { margin: 0 24px 30px; border-color: #c7d0d6; }
.transaction-row { grid-template-columns: 1.2fr 1fr .7fr .7fr auto; }
.admin-layout { display: block; margin: 0 24px 30px; }
.admin-menu-toggle { display: none; }
.pos-toolbar-menu-toggle { flex: 0 0 48px; }
.admin-menu { background: #17232c; color: white; padding: 6px; border-radius: 6px; position: sticky; top: 12px; max-height: calc(100vh - 96px); overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.admin-menu p { margin: 7px 8px 3px; color: #8fa1ae; font-size: 8px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.admin-menu button { width: 100%; border: 0; border-radius: 4px; background: transparent; color: #dce4e9; display: flex; gap: 7px; align-items: center; padding: 4px 8px; min-height: 24px; text-align: left; font-size: 10px; line-height: 1.2; font-weight: 700; }
.admin-menu button[hidden], .admin-menu p[hidden] { display: none !important; }
.admin-menu button:hover, .admin-menu button.active { background: #29404e; color: white; }
.admin-menu button svg { width: 15px; }
.business-nav-group { display: block; }
.business-nav-tools { margin-top: 8px; border-top: 1px solid rgba(255,255,255,.12); padding-top: 6px; }
.business-nav-tools summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 8px; color: #aebdc6; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; list-style: none; }
.business-nav-tools summary::-webkit-details-marker { display: none; }
.business-nav-tools summary span { display: flex; align-items: center; gap: 7px; }
.business-nav-tools summary svg { width: 14px; height: 14px; transition: transform .18s; }
.business-nav-tools[open] summary > svg:last-child { transform: rotate(180deg); }
.business-nav-tools:not([open]) .business-nav-buttons { display: none; }
.business-nav-group[hidden] { display: none !important; }
.admin-menu::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
.admin-content { min-width: 0; }
.inventory-admin-panel { margin: 0 24px 30px; }
.dashboard-panel-body { padding: 12px; }
.dashboard-store-panel { margin-top: 12px; }
.admin-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.admin-card { background: white; border: 1px solid #c7d0d6; border-radius: 6px; padding: 18px; }
.admin-card span, .admin-card strong { display: block; }
.admin-card span { color: var(--muted); text-transform: uppercase; font-size: 9px; font-weight: 800; }
.admin-card strong { font: 800 27px Manrope; margin-top: 5px; }
.supplier-command-center { display: grid; gap: 16px; padding: 18px 24px 30px; }
.supplier-command-hero { display: flex; align-items: center; justify-content: space-between; gap: 28px; overflow: hidden; padding: 28px 30px; border-radius: 10px; background: linear-gradient(120deg,#163440,#235b61); color: white; box-shadow: 0 12px 28px rgba(22,52,64,.18); }
.supplier-command-hero h2 { margin: 2px 0 8px; color: white; font: 800 28px Manrope,sans-serif; }
.supplier-command-hero p:not(.eyebrow) { max-width: 720px; margin: 0; color: #d7e7e8; font-size: 12px; line-height: 1.6; }
.supplier-command-hero .eyebrow { color: #8fd3cb; }
.supplier-command-identity { min-width: 190px; padding: 15px 18px; border: 1px solid rgba(255,255,255,.18); border-radius: 8px; background: rgba(255,255,255,.08); }
.supplier-command-identity span,.supplier-command-identity strong,.supplier-command-identity small { display: block; }
.supplier-command-identity span { color: #8fd3cb; font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.supplier-command-identity strong { margin-top: 4px; font: 800 15px Manrope,sans-serif; }
.supplier-command-identity small { margin-top: 5px; color: #cfdee0; }
.supplier-attention-panel,.supplier-process-section,.supplier-snapshot { overflow: hidden; border: 1px solid #c7d0d6; border-radius: 8px; background: white; }
.supplier-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; border-bottom: 1px solid var(--line); }
.supplier-section-heading h3 { margin: 1px 0 0; font: 800 17px Manrope,sans-serif; }
.supplier-section-heading > span,.supplier-section-heading > small { color: var(--muted); font-size: 10px; font-weight: 800; }
.supplier-attention-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; padding: 14px; }
.supplier-attention-grid button { min-width: 0; min-height: 82px; display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; border: 1px solid #d5dde1; border-radius: 7px; padding: 12px; background: #fbfcfc; color: var(--ink); text-align: left; }
.supplier-attention-grid button:hover { border-color: #68a9a5; background: #f0f9f8; }
.supplier-attention-grid button > svg { width: 18px; color: var(--teal); }
.supplier-attention-grid button > svg:last-child { width: 14px; color: #84949d; }
.supplier-attention-grid strong,.supplier-attention-grid small { display: block; }
.supplier-attention-grid strong { font: 800 24px Manrope,sans-serif; }
.supplier-attention-grid small { margin-top: 2px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.supplier-process-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); }
.supplier-process-grid article { min-width: 0; display: flex; flex-direction: column; gap: 11px; padding: 18px 14px; border-right: 1px solid var(--line); }
.supplier-process-grid article:last-child { border-right: 0; }
.supplier-step-number { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: #dff3f1; color: var(--teal-dark); font: 800 11px Manrope,sans-serif; }
.supplier-process-grid h4 { margin: 0; font: 800 13px Manrope,sans-serif; }
.supplier-process-grid article > div > p { min-height: 52px; margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.supplier-command-links { display: grid; gap: 6px; margin-top: auto; }
.supplier-command-link { min-width: 0; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 7px; align-items: center; border: 1px solid #d6dfe3; border-radius: 5px; padding: 8px; background: white; color: #263842; text-align: left; }
.supplier-command-link:hover { border-color: var(--teal); color: var(--teal-dark); }
.supplier-command-link svg { width: 14px; }
.supplier-command-link span,.supplier-command-link strong,.supplier-command-link small { min-width: 0; display: block; }
.supplier-command-link strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.supplier-command-link small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.supplier-snapshot .admin-summary { grid-template-columns: repeat(4,minmax(0,1fr)); padding: 14px; }
.farm-command-hero { background: linear-gradient(120deg,#20492f,#567431); box-shadow: 0 12px 28px rgba(32,73,47,.2); }
.farm-command-hero .eyebrow { color: #d6e87d; }
.farm-command-hero p:not(.eyebrow) { color: #e2ecdd; }
.farm-command-center .supplier-attention-grid button:hover { border-color: #829c48; background: #f7faed; }
.farm-command-center .supplier-attention-grid button > svg { color: #54702e; }
.farm-command-center .supplier-step-number { color: #415c24; background: #eef4d8; }
.farm-command-center .supplier-command-link:hover { border-color: #718c3e; color: #415c24; }
.wholesaler-command-hero { background: linear-gradient(120deg,#273c59,#376f8c); box-shadow: 0 12px 28px rgba(39,60,89,.2); }
.wholesaler-command-hero .eyebrow { color: #9edcf2; }
.wholesaler-command-hero p:not(.eyebrow) { color: #e0edf4; }
.wholesaler-command-center .supplier-attention-grid button:hover { border-color: #5b91ac; background: #f0f7fa; }
.wholesaler-command-center .supplier-attention-grid button > svg { color: #376f8c; }
.wholesaler-command-center .supplier-step-number { color: #274e67; background: #deeff6; }
.wholesaler-command-center .supplier-command-link:hover { border-color: #4d829e; color: #274e67; }
.farm-portal-callout { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; border: 1px solid #cdd9a8; border-radius: 8px; background: linear-gradient(90deg,#f7faed,#fff); }
.farm-portal-callout > div { display: flex; align-items: center; gap: 14px; }
.farm-portal-callout > div > span { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: #49662b; background: #e6efc9; }
.farm-portal-callout > div > span svg { width: 20px; }
.farm-portal-callout h3 { margin: 1px 0 4px; font: 800 15px Manrope,sans-serif; }
.farm-portal-callout p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.farm-portal-callout .primary-button { flex: 0 0 auto; background: #567431; border-color: #567431; }
.admin-panel { background: white; border: 1px solid #c7d0d6; border-radius: 6px; overflow: auto; }
.admin-panel-heading { padding: 16px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; }
.admin-panel-heading h2 { margin: 0; font-size: 18px; }
.admin-list-heading-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; flex: 0 0 auto; }
.admin-panel-heading:has(> .admin-list-heading-actions) > .admin-heading-actions,
.admin-panel-heading > button:has(+ .admin-list-heading-actions) { margin-left: auto; }
.admin-panel-heading > .admin-heading-actions + .admin-list-heading-actions,
.admin-panel-heading > button + .admin-list-heading-actions { margin-left: 8px; }
.admin-list-heading-actions .outline-button { width: 32px; min-width: 32px; height: 32px; padding: 5px; display: inline-flex; align-items: center; justify-content: center; }
.admin-list-heading-actions .admin-list-transfer-button { font-size: 0; gap: 0; }
.admin-list-heading-actions .admin-list-transfer-button span { display: none; }
.admin-list-heading-actions svg { width: 16px; height: 16px; }
.scheduled-jobs-table .scheduled-job-description { min-width: 320px; max-width: 520px; line-height: 1.45; white-space: normal; }
.scheduled-job-processors { display: grid; gap: 8px; padding: 0 16px 12px; }
.scheduled-job-processors p { margin: 0; line-height: 1.45; }
@media (max-width: 700px) { .admin-panel > .admin-panel-heading > .admin-list-heading-actions { align-self: flex-end; width: auto; } }
.scanner-lookup { padding: 18px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg,#f3f9f8,#fff); }
.scanner-instructions { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; color: #274842; }
.scanner-instructions > svg { width: 30px; height: 30px; flex: 0 0 auto; }
.scanner-instructions strong, .scanner-instructions span { display: block; }
.scanner-instructions strong { font: 800 14px Manrope,sans-serif; }
.scanner-instructions span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.scanner-lookup-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; }
.scanner-lookup-form input { min-height: 58px; border: 2px solid #55847c; border-radius: 6px; padding: 10px 14px; font: 700 18px Inter,sans-serif; letter-spacing: .02em; }
.scanner-lookup-form button { min-height: 58px; }
.scanner-message { min-height: 18px; margin-top: 8px; color: #53676a; font-size: 10px; font-weight: 700; }
.scanner-found { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: start; gap: 14px; margin: 18px; padding: 18px; border: 1px solid #9dc8b7; border-radius: 7px; background: #f2fbf6; }
.scanner-found-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #d8f1e2; color: #247044; }
.scanner-found-icon svg { width: 24px; }
.scanner-found h3, .scanner-section-heading h3 { margin: 2px 0 10px; font: 800 17px Manrope,sans-serif; }
.scanner-product-facts { display: flex; flex-wrap: wrap; gap: 8px 20px; color: #41525a; font-size: 11px; }
.scanner-product-facts span, .scanner-product-facts strong { display: block; }
.scanner-product-facts strong { margin-bottom: 2px; color: #718087; font-size: 8px; text-transform: uppercase; }
.scanner-uom-results { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.scanner-uom-results span { padding: 6px 8px; border: 1px solid #cfe1da; border-radius: 4px; background: white; font-size: 10px; }
.scanner-quick-add { border-top: 1px solid var(--line); }
.scanner-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 12px; padding: 18px 20px 0; }
.scanner-section-heading span { color: var(--muted); font-size: 10px; }
.scanner-uom-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; padding: 14px; border: 1px solid #cbd7dc; border-radius: 6px; background: #f7fafb; }
.scanner-accounting { border: 1px solid var(--line); border-radius: 5px; padding: 11px 13px; }
.scanner-accounting summary { cursor: pointer; color: #465660; font-size: 10px; font-weight: 800; }
.scanner-accounting > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding-top: 12px; }
.admin-list-tools { padding: 14px 16px; border-bottom: 1px solid var(--line); background: white; }
.admin-list-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.admin-list-tools input, .admin-list-tools select { width: min(460px, 100%); min-height: 42px; border: 1px solid var(--line); border-radius: 4px; padding: 8px 10px 8px 14px; background: white; font: 11px Inter,sans-serif; color: #23313a; }
.admin-list-tools select { width: min(220px, 100%); }
.admin-list-tools .po-date-filter { display: inline-flex; align-items: center; gap: 6px; font: 700 11px Inter,sans-serif; color: #344650; white-space: nowrap; }
.admin-list-tools .po-date-filter input { width: 155px; }
.admin-list-tools input:focus, .admin-list-tools select:focus { outline: 0; border-color: var(--teal); box-shadow: 0 0 0 3px rgba(0,109,104,.1); }
.admin-list-tools .admin-list-action { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.category-csv-option { display: flex; align-items: center; gap: 8px; margin: 12px 0; font-size: 11px; font-weight: 700; color: #344650; }
.category-csv-option input { margin: 0; }
.club-list-logo { width: 52px; height: 38px; object-fit: contain; }
.club-logo-editor { display: grid; grid-template-columns: minmax(120px,220px) minmax(220px,1fr) auto; gap: 16px; align-items: end; padding: 16px; border: 1px solid var(--line); border-radius: 6px; }
.club-logo-editor img { display: block; max-width: 210px; max-height: 90px; object-fit: contain; }
.club-landing-editor img { width: min(420px,100%); max-width: 420px; height: 160px; max-height: 160px; border-radius: 7px; object-fit: cover; }
.company-integration-editor { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; align-items: start; padding: 16px; border: 1px solid var(--line); border-radius: 6px; }
.company-integration-details { min-width: 0; }
.company-integration-details > strong { display: block; margin-bottom: 8px; }
.company-integration-details > p { margin-top: 8px; }
.company-integration-endpoints code { overflow-wrap: anywhere; word-break: break-word; }
.company-integration-actions { min-width: 230px; display: grid; grid-template-columns: repeat(2,max-content); justify-content: end; gap: 8px; }
.company-integration-actions [data-company-integration-result] { grid-column: 1 / -1; min-width: 0; }
.company-integration-actions .import-token-result { max-width: 440px; margin-top: 8px; }
.admin-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--line); background: #fff; color: var(--muted); font-size: 10px; }
.admin-pagination label, .admin-pagination > div { display: flex; align-items: center; gap: 8px; }
.admin-pagination select { min-height: 34px; border: 1px solid var(--line); border-radius: 4px; padding: 5px 28px 5px 8px; background: #fff; color: #23313a; font: 10px Inter,sans-serif; }
.admin-pagination [data-page-number] { min-width: 90px; text-align: center; color: #23313a; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 10px; }
.admin-table th { text-align: left; text-transform: uppercase; font-size: 8px; letter-spacing: .06em; color: var(--muted); background: #f3f5f6; padding: 8px 10px; white-space: nowrap; }
.admin-sort-button { display: inline-flex; align-items: center; gap: 5px; margin: -8px -10px; padding: 8px 10px; border: 0; background: transparent; color: inherit; font: inherit; font-weight: 800; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }
.admin-sort-button:hover, .admin-sort-button:focus-visible { color: var(--teal); outline: none; }
.admin-sort-button [data-sort-indicator] { min-width: 8px; font-size: 10px; }
.admin-table td { padding: 6px 10px; border-top: 1px solid var(--line); max-width: 250px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 1.25; }
.admin-table td small { color: var(--muted); }
.admin-compact-master-table td { padding-top: 2px; padding-bottom: 2px; line-height: 1.15; }
.sales-order-list-table td { padding-top: 5px; padding-bottom: 5px; }
.admin-compact-master-table td small { margin-top: 0; line-height: 1.05; }
.admin-compact-master-table .compact-button { min-height: 20px; padding: 0 7px; line-height: 1; }
.admin-click-table tbody tr { cursor: pointer; transition: background-color .12s ease; }
.admin-click-table tbody tr:nth-child(even) { background: #fcfdfd; }
.admin-click-table tbody tr:hover { background: #eef2f4; }
.admin-click-table tbody tr:focus-within { background: #eef7f6; }
.compact-button { min-height: 26px; padding: 0 9px; font-size: 9px; }
.admin-product-copy-column, .admin-vendor-copy-column { width: 42px; text-align: center; }
.admin-product-copy, .admin-vendor-copy { display: inline-flex; align-items: center; justify-content: center; width: 27px; min-height: 27px; padding: 0; }
.admin-product-copy svg, .admin-vendor-copy svg { width: 14px; height: 14px; }
.vendor-status-field { display: grid; gap: 6px; }
.vendor-status-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.vendor-status-actions .check-field { margin: 0; }
.admin-editor { overflow: visible; }
.sales-order-editor-form { display: grid; grid-template-columns: minmax(310px, 34%) minmax(0, 1fr); gap: 0; }
.sales-order-header-pane, .sales-order-lines-pane { min-width: 0; padding: 18px 20px; }
.sales-order-header-pane { border-right: 1px solid var(--line); background: #f9fbfb; }
.sales-order-header-pane h3, .sales-order-lines-heading h3 { margin: 0; font: 800 14px Manrope,sans-serif; color: #23313a; }
.sales-order-editor .sales-order-header-fields { padding: 14px 0 0; gap: 13px; }
.sales-order-header-fields [data-sales-pickup-date][hidden] { display: none; }
.standing-month-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px 10px; }
.standing-month-grid label { display: flex; align-items: center; gap: 5px; font-size: .85rem; }
.customer-standing-toolbar { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 10px 18px; padding: 12px 16px; }
.customer-standing-toolbar label, .customer-standing-filters label { display: grid; gap: 4px; color: #52616a; font-size: 10px; font-weight: 800; }
.customer-standing-toolbar select, .customer-standing-filters select { min-height: 32px; border: 1px solid #bac6cd; border-radius: 5px; padding: 5px 9px; background: white; color: var(--ink); font: 11px Inter,sans-serif; }
.customer-standing-store select { min-width: 190px; }
.customer-standing-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.customer-standing-actions [data-standing-selection-count] { color: var(--muted); font-size: 10px; font-weight: 700; white-space: nowrap; }
.customer-standing-actions .outline-button, .customer-standing-actions .primary-button { min-height: 32px; padding: 5px 11px; font-size: 10px; }
.customer-standing-filters { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; padding: 10px 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f8fafb; }
.customer-standing-filters select { min-width: 150px; }
.customer-standing-table th:first-child, .customer-standing-table td:first-child { min-width: 190px; text-align: left; }
.customer-standing-table th[aria-sort="ascending"] .admin-sort-button::after { content: ' ▲'; }
.customer-standing-table th[aria-sort="descending"] .admin-sort-button::after { content: ' ▼'; }
.customer-standing-table td:nth-child(2) small { display: block; margin-top: 2px; }
.customer-standing-table [data-standing-generate] { min-height: 26px; padding: 3px 8px; font-size: 10px; white-space: nowrap; }
.customer-standing-panel > h3 { margin: 16px 16px 8px; font-size: 12px; }
.customer-standing-panel > [data-standing-results] { padding: 0 16px 14px; }
@media (max-width: 700px) { .customer-standing-toolbar { align-items: stretch; } .customer-standing-actions { width: 100%; } .customer-standing-filters label { flex: 1 1 150px; } .customer-standing-filters select { width: 100%; min-width: 0; } }
.customer-standing-preview-table { max-height: 50vh; overflow: auto; }
.modal:has(.customer-standing-preview-table) { width: min(900px, 96vw); }
.modal:has(.picking-slip-chooser) { width: min(980px, 96vw); }
.picking-slip-chooser .admin-filter-bar { margin: 0 0 12px; }
.picking-slip-chooser .admin-subtable-wrap { max-height: 54vh; overflow: auto; }
.picking-slip-chooser .admin-subtable-wrap table { width: 100%; }
.sales-order-header-fields [data-standing-pull][hidden] { display: none; }
.sales-order-lines-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 5px 12px; margin-bottom: 12px; }
.sales-order-lines-heading small { color: var(--muted); font-size: 10px; }
.sales-order-product-search { display: grid; grid-template-columns: minmax(110px,.85fr) minmax(130px,1.1fr) minmax(160px,1.4fr) auto; gap: 7px; margin-bottom: 7px; }
.sales-order-product-search [data-sales-product-results] { grid-column: span 3; }
.sales-order-product-search [data-sales-add-line] { justify-self: start; align-self: start; }
.sales-order-product-search input, .sales-order-product-search select { min-width: 0; min-height: 36px; border: 1px solid var(--line); border-radius: 4px; padding: 6px 9px; background: white; }
.sales-order-product-search .sales-order-instock-filter { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; font-size: 11px; }
.sales-order-product-search .sales-order-instock-filter input { min-height: 0; width: 15px; height: 15px; margin: 0; padding: 0; }
.sales-order-product-pages { display: flex; justify-content: flex-end; align-items: center; gap: 7px; margin-bottom: 14px; }
.sales-order-product-pages small { margin-right: auto; color: var(--muted); }
.sales-order-line-list { display: grid; gap: 7px; }
.sales-order-line-card { border: 1px solid var(--line); border-radius: 6px; background: white; overflow: hidden; }
.sales-order-line-card-heading { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-bottom: 1px solid var(--line); background: #f6f9f9; }
.sales-order-line-card-heading > div { display: grid; gap: 2px; flex: 1; min-width: 0; }
.sales-order-line-card-heading span { color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.sales-order-editor .sales-order-line-fields { grid-template-columns: minmax(130px,1.2fr) minmax(145px,1.4fr) repeat(4,minmax(65px,.7fr)); gap: 5px 8px; padding: 7px 10px; }
.sales-order-line-fields label:first-child { grid-column: auto; }
.sales-order-line-fields input { min-height: 28px !important; height: 28px; margin-top: 2px !important; padding: 3px 6px !important; font-size: 10px !important; }
.sales-order-discount-button { width: 100%; min-height: 28px; margin-top: 2px; padding: 3px 6px; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: #176e67; font-size: 10px; font-weight: 800; text-align: left; cursor: pointer; }
.sales-order-discount-button:hover { border-color: #176e67; background: #f1f8f6; }
.sales-order-discount-button:disabled { color: #52616a; cursor: default; background: #f2f4f5; }
.sales-order-line-extension { align-self: end; min-height: 28px; display: flex; align-items: center; font-size: 10px; font-weight: 800; color: #23313a; white-space: nowrap; }
.sales-order-discount-preview { margin: 12px 0 0; color: #465660; font-size: 12px; }
.sales-order-quantity-control { display: flex; gap: 3px; min-width: 0; }
.sales-order-editor .sales-order-quantity-control input { flex: 1 1 48px; min-width: 42px; width: 48px; }
.sales-order-editor .sales-order-quantity-control select { flex: 0 1 108px; min-width: 86px; max-width: 108px; height: 28px; min-height: 28px; margin-top: 2px; padding: 2px 3px; font-size: 10px; }
.sales-order-line-fields input:disabled { background: #f2f4f5; color: #52616a; }
.sales-order-editor-actions { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--line); }
.sales-order-editor-actions strong { margin-right: auto; }
.admin-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 20px; }
@media (max-width: 1150px) {
  .sales-order-editor-form { grid-template-columns: 1fr; }
  .sales-order-header-pane { border-right: 0; border-bottom: 1px solid var(--line); }
}
@media (max-width: 700px) {
  .sales-order-product-search { grid-template-columns: minmax(0,1fr) auto; }
  .sales-order-product-search [data-sales-product-type] { grid-column: 1 / -1; }
  .sales-order-product-search [data-sales-main-category] { grid-column: 1 / -1; }
  .sales-order-product-search [data-sales-product-results] { grid-column: auto; }
  .sales-order-editor .sales-order-line-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sales-order-editor-actions strong { flex-basis: 100%; }
}
.admin-section-title { margin: 8px 0 -4px; padding-top: 12px; border-top: 1px solid var(--line); font: 800 13px Manrope,sans-serif; color: #23313a; }
.admin-note { margin: 0; padding: 10px 12px; border: 1px solid #d6e4e2; border-radius: 4px; background: #f2f8f7; color: #44605c; font-size: 11px; }
.admin-error { margin: 0; padding: 10px 12px; border: 1px solid #e0b4b4; border-radius: 4px; background: #fff3f3; color: #9b2424; font-size: 11px; font-weight: 800; }
.company-create-status { margin: 0; padding: 12px; border: 1px solid #b8ced8; border-radius: 4px; background: #f0f7fa; color: #294b5c; font-size: 11px; line-height: 1.5; white-space: pre-line; }
.company-create-status.is-success { border-color: #93c5ad; background: #eef9f3; color: #236442; }
.daily-posting-page { display: grid; gap: 16px; }
.daily-posting-summary { grid-template-columns: repeat(4,minmax(0,1fr)); padding: 16px; }
.daily-posting-message { margin: 0 16px 16px; }
.daily-pending-dates .admin-table tr.daily-pending-date-selected,
.daily-pending-dates .admin-table tr.daily-pending-date-selected:nth-child(even) { background: #e7f4f1; box-shadow: inset 3px 0 0 var(--teal); }
.daily-batch-history { margin-top: 0; }
.posting-balanced, .posting-mapped { color: #13733f; }
.posting-unbalanced, .posting-unmapped { color: #a42b22; }
.posting-mapped, .posting-unmapped { font-weight: 800; }
.qbo-actions { padding: 0 16px 16px; }
.qbo-settings-page select[data-qbo-gl] { width: 100%; min-width: 260px; }
.admin-subheading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.admin-subheading h3 { margin: 0; font: 800 13px Manrope,sans-serif; color: #23313a; }
.uom-detail-panel { border-top: 1px solid var(--line); padding-top: 12px; }
.uom-detail-table input:not([type="radio"]), .uom-detail-table select { min-height: 32px; margin: 0; font-size: 10px; }
.uom-detail-table input[type="radio"] { width: 12px; height: 12px; }
.tax-detail-table input, .tax-detail-table select { min-height: 34px !important; margin: 0 !important; }
.tax-detail-table th:last-child, .tax-detail-table td:last-child { width: 1%; }
.customer-editor { display: grid; gap: 0; }
.customer-admin-form { border-bottom: 1px solid var(--line); }
.customer-dashboard, .customer-activity { margin: 16px 20px 0; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; background: #fff; }
.customer-dashboard-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.customer-dashboard-heading h3, .customer-activity h3, .customer-detail-section h3 { margin: 0; font: 800 14px Manrope,sans-serif; }
.customer-dashboard-heading small, .customer-detail-section small { color: var(--muted); }
.customer-dashboard-heading select { min-height: 34px; border: 1px solid var(--line); border-radius: 4px; padding: 6px 28px 6px 9px; background: #fff; }
.customer-chart-controls { display: flex; align-items: center; gap: 8px; }
.import-api-settings { margin: 20px; }
.import-api-settings > code, .import-token-result code { display: block; margin: 10px 0; padding: 12px; border: 1px solid var(--line); border-radius: 4px; background: #f7f8fa; overflow-wrap: anywhere; user-select: all; }
.import-token-result { margin-top: 18px; padding: 16px; border: 1px solid var(--accent); border-radius: 6px; background: #f7fff9; }
[data-customer-chart] { min-height: 270px; padding: 18px; }
.customer-bar-chart { height: 230px; display: grid; grid-template-columns: repeat(12,minmax(42px,1fr)); align-items: end; gap: 8px; overflow-x: auto; }
.customer-bar-column { height: 100%; min-width: 42px; display: grid; grid-template-rows: 24px 1fr 26px; gap: 5px; align-items: end; text-align: center; }
.customer-bar-column strong { color: #344953; font-size: 8px; overflow: hidden; text-overflow: ellipsis; }
.customer-bar-track { height: 100%; display: flex; align-items: end; justify-content: center; border-bottom: 1px solid #aebbc2; }
.customer-bar-track span { width: min(38px,72%); min-height: 2px; border-radius: 4px 4px 0 0; background: linear-gradient(180deg,var(--teal),#174d5c); }
.customer-bar-track.comparison { gap: 3px; }
.customer-bar-track.comparison span { width: min(18px,30%); }
.customer-bar-track.comparison.year-series-count-1 span { width: min(38px,72%); }
.customer-bar-track.comparison.year-series-count-2 span { width: min(22px,42%); }
.customer-bar-column small { color: var(--muted); font-size: 8px; white-space: nowrap; }
.customer-chart-legend { display: flex; justify-content: flex-end; gap: 18px; margin-bottom: 4px; color: var(--muted); font-size: 11px; }
.customer-chart-legend span::before { content: ''; display: inline-block; width: 18px; height: 4px; margin-right: 6px; border-radius: 2px; vertical-align: middle; background: var(--series-color,var(--teal)); }
.customer-line-chart { width: 100%; height: 230px; overflow: visible; }
.customer-line-chart text { fill: var(--muted); font-size: 8px; }
.chart-axis { stroke: #aebbc2; stroke-width: 1; }
.chart-line { fill: none; stroke: var(--teal); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.chart-point { fill: white; stroke: var(--teal); stroke-width: 3; }
.customer-activity-controls { display: flex; align-items: center; gap: 12px; }
.customer-activity-controls select { min-height: 34px; border: 1px solid var(--line); border-radius: 4px; padding: 6px 28px 6px 9px; background: #fff; }
.customer-detail-section { padding-top: 12px; border-top: 1px solid var(--line); }
.customer-notes-section { display: grid; gap: 12px; }
.customer-notes-section textarea { width: 100%; min-height: 96px; resize: vertical; }
.customer-note-history { display: grid; gap: 8px; max-height: 340px; overflow-y: auto; }
.customer-note { padding: 11px 13px; border: 1px solid var(--line); border-radius: 6px; background: var(--soft); }
.customer-note > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.customer-note strong { color: var(--teal-dark); font-size: 11px; }
.customer-note time { color: var(--muted); font-size: 10px; }
.customer-note p { margin: 7px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; line-height: 1.5; }
.customer-entry-table input, .customer-entry-table select { min-width: 110px; min-height: 34px !important; margin: 0 0 4px !important; }
.customer-entry-table td { overflow: visible; white-space: normal; vertical-align: top; }
.customer-address-table { min-width: 1180px; }
.customer-address-table td:nth-child(3) { min-width: 220px; }
.customer-address-scroll { overflow-x: auto; }
.inline-check { display: inline-flex !important; align-items: center; gap: 5px; min-height: 34px; white-space: nowrap; }
.inline-check input { width: 15px !important; height: 15px; margin: 0 !important; }
.customer-documents { display: grid; gap: 8px; }
.customer-documents h4 { margin: 0; }
.customer-documents a { display: flex; align-items: center; gap: 9px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 5px; color: var(--teal); text-decoration: none; }
.customer-documents a svg { width: 18px; }
.customer-documents a span, .customer-documents a small { display: block; }
.customer-documents a small { color: var(--muted); }
.customer-activity { margin-bottom: 20px; }
.customer-activity .negative-amount { color: #b3261e; font-weight: 800; }
.admin-form label, .vendor-status-field > span { color: #465660; font-size: 10px; font-weight: 800; }
.admin-form input:not([type="checkbox"]), .admin-form select, .admin-form textarea { display: block; width: 100%; min-height: 42px; margin-top: 6px; border: 1px solid var(--line); border-radius: 4px; padding: 8px 10px; background: white; font: 11px Inter,sans-serif; }
.admin-form.was-validated input:not([type="checkbox"]):not([type="radio"]):invalid,
.admin-form.was-validated select:invalid,
.admin-form.was-validated textarea:invalid { border-color: #d33a3a; box-shadow: 0 0 0 2px rgba(211,58,58,.12); background: #fffafa; }
.admin-form.was-validated input:not([type="checkbox"]):not([type="radio"]):invalid:focus,
.admin-form.was-validated select:invalid:focus,
.admin-form.was-validated textarea:invalid:focus { outline: none; border-color: #b82828; box-shadow: 0 0 0 3px rgba(211,58,58,.18); }
.admin-form textarea { min-height: 92px; resize: vertical; }
.admin-form .full { grid-column: 1 / -1; }
.freight-bill-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 16px; padding: 16px; border: 1px solid var(--line); border-radius: 6px; background: #f8fafb; }
.freight-bill-heading { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 3px; color: #263842; }
.freight-bill-heading small { color: #6b7b84; font-weight: 500; }
.freight-bill-fields input[readonly] { background: #eef2f4; color: #30434d; }
.admin-form .check-field { display: flex; align-items: center; gap: 8px; min-height: 42px; }
.admin-form .check-field input { width: 16px; height: 16px; }
.admin-form-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
.company-profile-step { display: flex; align-items: end; gap: 12px; padding: 24px; }
.company-profile-step label { flex: 1; max-width: 420px; color: #465660; font-size: 11px; font-weight: 800; }
.company-profile-step select { display: block; width: 100%; min-height: 44px; margin-top: 7px; border: 1px solid var(--line); border-radius: 4px; padding: 8px 10px; background: white; }
.company-setup-section { border: 1px solid var(--line); border-radius: 6px; padding: 14px; }
.company-setup-section legend { padding: 0 7px; color: #23343d; font-weight: 800; }
#company-create-form > label, #company-create-form fieldset, #company-create-form .admin-form-grid > label { min-width: 0; }
#company-create-form .admin-form-grid .wide { grid-column: 1 / -1; }
#company-create-form .company-catalog-picker { max-height: none; overflow: visible; }
#company-create-form .company-required-marker { color: #9b2424; font-size: 9px; font-weight: 600; }
#company-create-form [data-company-create-error] ul { margin: 7px 0 0; padding-left: 18px; }
#company-create-form .company-invalid-field-link { padding: 3px 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; text-decoration: underline; cursor: pointer; }
#company-create-form .company-invalid-field-link:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.form-help { margin: 0 0 12px; color: #62727b; font-size: 11px; }
.company-catalog-picker { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; max-height: 520px; overflow: auto; }
.company-catalog-picker section { border: 1px solid #dbe2e6; border-radius: 5px; padding: 10px; background: #fafcfc; }
.company-catalog-picker label { display: flex; align-items: center; gap: 7px; font-size: 11px; text-transform: none; }
.company-catalog-picker input { flex: 0 0 auto; width: 16px; height: 16px; }
.catalog-type { padding-bottom: 8px; color: #163f35 !important; font-size: 12px !important; }
.catalog-main-list { display: grid; gap: 8px; padding-left: 8px; }
.catalog-main { border-left: 2px solid #cbd9d4; padding-left: 9px; }
.catalog-sub-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px 12px; padding: 7px 0 0 23px; }
.catalog-sub-list label { color: #607078; font-weight: 600; }
.company-default-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 18px; }
.setup-summary-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.setup-summary-chips span { border-radius: 999px; background: #e9f4ef; color: #245646; padding: 7px 10px; font-size: 10px; font-weight: 800; }
.customer-company-choices { display: grid; gap: 9px; margin: 14px 0; max-height: 360px; overflow: auto; }
.customer-company-choices button { display: grid; grid-template-columns: 42px 1fr 20px; align-items: center; gap: 11px; width: 100%; border: 1px solid var(--line); border-radius: 7px; padding: 10px; background: #fff; color: #26383f; text-align: left; cursor: pointer; }
.customer-company-choices button:hover { border-color: #1c7969; background: #f5fbf8; }
.customer-company-choices img { width: 42px; height: 42px; object-fit: contain; }
.customer-company-choices button > svg:first-child { width: 26px; height: 26px; margin: 8px; color: #297663; }
.customer-company-choices span { display: grid; gap: 3px; }
.customer-company-choices strong { font-size: 12px; }
.customer-company-choices small { color: #718087; font-size: 10px; }
.customer-heading-actions { display: flex; gap: 8px; }
.customer-portal-users-box { display: grid; gap: 12px; padding: 16px; border: 1px solid #bcd8ce; border-radius: 7px; background: #f7fbf9; }
.customer-portal-users-box .admin-subheading { margin: 0; }
.customer-portal-users-box .admin-subheading small { display: block; margin-top: 4px; color: #607078; font-weight: 500; }
.customer-portal-users-box [data-portal-users] { display: grid; gap: 8px; }
.customer-portal-user-row { display: grid; grid-template-columns: minmax(180px,1.3fr) minmax(155px,.8fr) minmax(220px,1.5fr); align-items: center; gap: 12px; padding: 11px; border: 1px solid #d6e4de; border-radius: 6px; background: white; }
.customer-portal-user-identity { min-width: 0; display: grid; gap: 3px; }
.customer-portal-user-identity strong { overflow-wrap: anywhere; font-size: 11px; }
.customer-portal-status { color: #527067; font-size: 10px; font-weight: 700; }
.customer-portal-correspondence { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.customer-portal-correspondence input { width: 16px; height: 16px; margin: 0; }
.customer-portal-correspondence small { flex-basis: 100%; padding-left: 21px; color: #607078; font-size: 9px; font-weight: 500; }
.customer-portal-user-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.customer-portal-add { display: grid; grid-template-columns: minmax(180px,1fr) minmax(155px,.75fr) auto; align-items: end; gap: 12px; padding-top: 12px; border-top: 1px solid #d6e4de; }
.customer-portal-add > button { min-height: 42px; }
.customer-portal-users-box [data-portal-error] { margin: 0; }
@media (max-width: 850px) { .customer-portal-user-row, .customer-portal-add { grid-template-columns: 1fr; } .customer-portal-user-actions { justify-content: flex-start; } }
.customer-portal-access { display: grid; gap: 6px; border: 1px solid #bcd8ce; border-radius: 6px; padding: 13px; background: #f4faf7; }
.customer-portal-access > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.customer-portal-access strong { color: #214d40; font-size: 12px; }
.customer-portal-access span { border-radius: 999px; padding: 5px 9px; background: #deeee7; color: #245646; font-size: 10px; font-weight: 800; }
.customer-portal-access small { color: #607078; font-size: 10px; }
.customer-portal-access em { color: #a32a2a; font-size: 10px; font-style: normal; }
.customer-access-modal { width: min(720px,100%); }
.customer-invite-options { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.customer-invite-option { min-width:0; padding:18px; border:1px solid var(--line); border-radius:8px; background:#fafbf9; }
.customer-invite-option.is-active { grid-column:1/-1; border-color:#bcd8ce; background:#f2f8f5; }
.customer-invite-option-heading { display:flex; align-items:flex-start; gap:11px; }
.customer-invite-option-heading > svg { width:22px; flex:0 0 auto; color:var(--teal); }
.customer-invite-option-heading h3 { margin:0 0 5px; font-size:15px; }
.customer-invite-option-heading p { margin:0; color:var(--muted); font-size:10px; line-height:1.5; }
.customer-invite-email { margin:18px 0 12px; padding:11px; border-radius:6px; background:white; border:1px solid var(--line); }
.customer-invite-email span,.customer-invite-email strong { display:block; }
.customer-invite-email span { color:var(--muted); font-size:9px; text-transform:uppercase; font-weight:800; }
.customer-invite-email strong { margin-top:4px; overflow-wrap:anywhere; font-size:11px; }
.customer-invite-option > small { display:block; margin-top:8px; line-height:1.4; }
.manual-customer-activation { display:grid; gap:12px; margin-top:18px; }
.manual-customer-activation label { display:grid; gap:6px; color:#334a42; font-size:10px; font-weight:750; }
.manual-customer-activation input { width:100%; min-height:42px; padding:8px 10px; border:1px solid #cfd8d2; border-radius:5px; font:inherit; }
.manual-customer-activation .admin-error { margin:0; }
.manual-password-warning { margin:0; padding:10px; display:flex; align-items:flex-start; gap:8px; border:1px solid #ead39b; border-radius:5px; background:#fff8e7; color:#735513; font-size:10px; line-height:1.45; }
.manual-password-warning svg { width:16px; flex:0 0 auto; }
.admin-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 20px; }
.admin-form-grid > label { color: #465660; font-size: 10px; font-weight: 800; }
.admin-form-grid > label input:not([type="checkbox"]), .admin-form-grid > label select, .admin-form-grid > label textarea { display: block; width: 100%; min-height: 42px; margin-top: 6px; border: 1px solid var(--line); border-radius: 4px; padding: 8px 10px; background: white; font: 11px Inter,sans-serif; }
.admin-form-grid .full { grid-column: 1 / -1; }
.admin-filter-bar { display: grid; grid-template-columns: minmax(180px,1.6fr) repeat(4,minmax(120px,1fr)) auto; gap: 9px; align-items: end; padding: 12px 16px; background: #f5f7f8; border-bottom: 1px solid var(--line); }
.admin-filter-bar label { color: #53616c; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.admin-filter-bar input, .admin-filter-bar select { display: block; width: 100%; min-height: 36px; margin-top: 4px; border: 1px solid #bac6cd; border-radius: 4px; padding: 7px 8px; background: white; color: var(--ink); font: 11px Inter,sans-serif; text-transform: none; }
@media (min-width: 801px) {
  .admin-filter-bar[data-vendor-invoice-filters] { grid-template-columns: 140px 116px 116px minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr) auto; gap: 7px; }
  .admin-filter-bar[data-vendor-invoice-filters] label { min-width: 0; }
  .admin-filter-bar[data-vendor-invoice-filters] input, .admin-filter-bar[data-vendor-invoice-filters] select { min-width: 0; }
  .admin-filter-bar[data-vendor-invoice-filters] .admin-form-actions { flex-wrap: nowrap; padding-top: 0; border-top: 0; }
}
.job-monitor-filters { grid-template-columns: minmax(145px,1fr) minmax(200px,1.5fr) minmax(145px,1fr) minmax(145px,1fr) auto; margin: 12px 0; }
.fg-invoice-resolution-modal { width: min(980px,96vw); max-width: 980px; }
.fg-invoice-resolution { display: grid; gap: 12px; }
.fg-invoice-resolution p { margin: 0; }
.fg-invoice-resolution label { display: grid; gap: 5px; font-weight: 700; }
.fg-invoice-resolution select { min-height: 34px; max-width: 100%; border: 1px solid #bac6cd; border-radius: 4px; padding: 5px; background: white; }
.fg-invoice-resolution input[data-fg-qty] { width: 96px; min-height: 34px; border: 1px solid #bac6cd; border-radius: 4px; padding: 5px; }
.fg-invoice-resolution .admin-table-wrap { max-height: 42vh; overflow: auto; }
@media (max-width: 820px) { .job-monitor-filters { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) { .job-monitor-filters { grid-template-columns: 1fr; } }
.admin-subtable-wrap { overflow-x: auto; }
.admin-detail-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: var(--line); border-bottom: 1px solid var(--line); }
.admin-detail-grid > div { display: grid; gap: 4px; padding: 14px 16px; background: white; }
.admin-detail-grid span { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.admin-total-panel { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 18px; padding: 16px; border-top: 1px solid var(--line); }
.admin-row-actions { display: flex; align-items: center; gap: 6px; }
.po-vendor-mapping-toolbar, .po-vendor-mapping-row-actions { display: flex; align-items: center; gap: 4px; }
.po-vendor-mapping-toolbar { flex-wrap: wrap; flex-shrink: 0; }
.po-vendor-mappings-panel .icon-button, .po-vendor-mapping-editor .icon-button { width: 32px; height: 32px; min-height: 0; padding: 0; text-decoration: none; cursor: pointer; }
.po-vendor-mappings-panel .icon-button svg, .po-vendor-mapping-editor .icon-button svg { width: 16px; height: 16px; }
.po-vendor-mappings-panel .icon-button:hover, .po-vendor-mapping-editor .icon-button:hover { background: #f3f5f6; border-color: #aab8b0; }
.po-vendor-mappings-panel .icon-button:focus-visible, .po-vendor-mapping-editor .icon-button:focus-visible { outline: 2px solid var(--teal-dark); outline-offset: 2px; }
.po-vendor-mappings-panel .icon-button:disabled, .po-vendor-mapping-editor .icon-button:disabled { opacity: .5; cursor: wait; }
.po-vendor-mappings-panel .admin-table th { padding: 6px 8px; }
.po-vendor-mappings-panel .admin-table td { padding: 3px 8px; line-height: 1.15; }
.po-vendor-mappings-panel .admin-table td:last-child { width: 64px; }
.po-vendor-mappings-panel [data-open-vendor-mapping] { cursor: pointer; }
.po-vendor-mappings-panel [data-open-vendor-mapping]:hover { background: #f3f5f6; }
.po-vendor-mappings-panel [data-open-vendor-mapping]:focus-visible { outline: 2px solid var(--teal-dark); outline-offset: -2px; }
.po-vendor-mappings-panel [data-open-box-type] { cursor: pointer; }
.po-vendor-mappings-panel [data-open-box-type]:hover { background: #f3f5f6; }
.po-vendor-mappings-panel [data-open-box-type]:focus-visible { outline: 2px solid var(--teal-dark); outline-offset: -2px; }
.po-vendor-mapping-row-actions .icon-button { width: 24px; height: 24px; border-radius: 4px; }
.po-vendor-mapping-delete { color: #a33434; }
.po-vendor-mapping-editor .po-vendor-mapping-save { color: white; background: var(--teal-dark); border-color: var(--teal-dark); }
.po-vendor-mapping-editor .po-vendor-mapping-save:hover { background: var(--ink); border-color: var(--ink); }
.po-vendor-mappings-panel [data-vendor-mapping-status]:empty { display: none; }
@media (pointer: coarse) {
  .po-vendor-mappings-panel .icon-button, .po-vendor-mapping-editor .icon-button { width: 40px; height: 40px; }
}
.admin-table input:not([type="checkbox"]) { min-width: 100px; width: 100%; border: 1px solid var(--line); border-radius: 3px; padding: 5px 6px; font: inherit; }
.admin-table input[type="checkbox"] { width: 15px; height: 15px; }
.admin-table tr.is-inactive { opacity: .55; }
.product-import-heading-actions { padding-top: 0; border-top: 0; }
.product-import-body { display: grid; gap: 14px; padding: 20px; }
.product-import-body > p { margin: 0; color: #465660; font-size: 11px; line-height: 1.55; }
.product-import-file { display: grid; gap: 7px; padding: 18px; border: 1px dashed #91a4ae; border-radius: 6px; background: #f7fafb; color: #344650; font-size: 10px; font-weight: 800; }
.product-import-file input { font: 11px Inter,sans-serif; }
.product-import-message { padding: 12px 14px; border: 1px solid; border-radius: 4px; font-size: 11px; font-weight: 800; }
.product-import-message.is-valid { border-color: #93c5ad; background: #eef9f3; color: #236442; }
.product-import-message.is-error { border-color: #e0b4b4; background: #fff3f3; color: #9b2424; }
.product-import-preview-table { border: 1px solid var(--line); }
.product-import-preview-table tr.is-import-error td { background: #fff3f3; color: #8c2424; }
.product-import-preview-table td:last-child { max-width: 520px; white-space: normal; }
.bulk-adjustment-heading small { color: var(--muted); }
.bulk-adjustment-filters small { color: var(--muted); font-weight: 700; }
.bulk-adjustment-fields { display: grid; grid-template-columns: minmax(180px,.7fr) minmax(320px,1.5fr) auto; gap: 12px; align-items: end; padding: 14px 16px; border-bottom: 1px solid var(--line); background: #f8fafb; }
.bulk-adjustment-fields label { color: #465660; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.bulk-adjustment-fields input { display: block; width: 100%; min-height: 38px; margin-top: 5px; border: 1px solid #bac6cd; border-radius: 4px; padding: 7px 9px; background: white; color: var(--ink); font: 11px Inter,sans-serif; text-transform: none; }
.bulk-adjustment-summary { display: grid; gap: 3px; justify-items: end; padding-bottom: 5px; }
.bulk-adjustment-summary strong { color: var(--teal-dark); font-size: 13px; }
.bulk-adjustment-summary span { color: var(--muted); font-size: 9px; }
.bulk-adjustment-instructions { margin: 12px 16px; }
.bulk-adjustment-table-wrap { max-height: calc(100vh - 390px); overflow: auto; }
.bulk-adjustment-table { min-width: 1750px; }
.bulk-adjustment-table thead { position: sticky; top: 0; z-index: 3; }
.bulk-adjustment-table td { max-width: 210px; }
.bulk-adjustment-table td:nth-last-child(-n+3) { background: #f8fbfb; }
.bulk-adjustment-table input[data-bulk-adjust-qty] { min-width: 92px; border-width: 2px; border-color: #8ba0aa; font-weight: 800; text-align: right; }
.bulk-adjustment-table tr.is-adjusted td { background: #eef9f3; }
.bulk-adjustment-table tr.is-adjusted input { border-color: #31845a; background: white; }
.bulk-adjustment-table tr.is-invalid-adjustment td { background: #fff3f3; }
.bulk-adjustment-onhand { text-align: right; font-weight: 800; }
.bulk-adjustment-pager { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 10px 16px; font-size: 11px; }
.bulk-adjustment-pager label { display: inline-flex; align-items: center; gap: 6px; }
.bulk-adjustment-pager select { min-height: 28px; }
.credit-lines-heading { padding-left: 0; padding-right: 0; }
.outline-button.compact, .primary-button.compact { min-height: 28px; padding: 0 9px; font-size: 9px; }
.admin-loading, .admin-empty { padding: 35px; text-align: center; color: var(--muted); background: white; border: 1px solid var(--line); }
.movement-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.movement-form label { font-size: 10px; font-weight: 800; color: #465660; }
.movement-form input, .movement-form select, .movement-form textarea { display: block; width: 100%; min-height: 42px; margin-top: 5px; border: 1px solid var(--line); border-radius: 4px; padding: 9px; font: inherit; }
.movement-form .full { grid-column: 1 / -1; }
.modal.bulk-receipt-modal { position: relative; width: calc(100vw - 12px); max-width: 1800px; min-width: min(1000px, calc(100vw - 12px)); height: calc(100vh - 12px); max-height: calc(100vh - 12px); min-height: min(650px, calc(100vh - 12px)); display: flex; flex-direction: column; resize: both; }
.modal-backdrop.bulk-receipt-backdrop { padding: 6px; }
.bulk-receipt-modal .modal-header, .bulk-receipt-modal .modal-footer { flex: 0 0 auto; }
.bulk-receipt-modal .modal-body { flex: 1 1 auto; min-height: 0; overflow: hidden; padding: 14px 16px; }
.bulk-receipt-form { height: 100%; min-height: 0; display: flex; flex-direction: column; gap: 14px; }
.bulk-receipt-form > .bulk-receipt-toolbar, .bulk-receipt-form > .bulk-receipt-fields, .bulk-receipt-form > .bulk-receipt-error { flex: 0 0 auto; }
.bulk-receipt-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.bulk-receipt-toolbar p { margin: 0 0 3px; }
.bulk-receipt-summary { margin-left: auto; color: var(--muted); font-size: 11px; font-weight: 700; }
.bulk-receipt-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.bulk-receipt-fields label { font-size: 10px; font-weight: 800; color: #465660; }
.bulk-receipt-fields input, .bulk-receipt-fields select { display: block; width: 100%; min-height: 40px; margin-top: 5px; border: 1px solid var(--line); border-radius: 4px; padding: 8px; font: inherit; }
.bulk-receipt-error { padding: 10px 12px; border: 1px solid #e2a1a1; border-radius: 5px; background: #fff1f1; color: #8e1f1f; font-size: 12px; font-weight: 800; }
.bulk-receipt-table-wrap { flex: 1 1 0; height: auto; min-height: 0; overflow: auto; border: 1px solid var(--line); border-radius: 5px; }
.bulk-receipt-pages { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex: 0 0 auto; }
.bulk-receipt-table { margin: 0; }
.bulk-receipt-table thead { position: sticky; top: 0; z-index: 1; background: #edf2f4; }
.bulk-receipt-table th, .bulk-receipt-table td { padding: 8px 9px; white-space: nowrap; }
.bulk-receipt-table td.bulk-receipt-detail { min-width: 280px; max-width: 420px; white-space: normal; }
.bulk-receipt-table input[type="number"] { width: 105px; min-height: 34px; border: 1px solid var(--line); border-radius: 4px; padding: 6px; }
.bulk-receipt-product-choice { width: 225px; display: flex; align-items: center; gap: 4px; }
.bulk-receipt-product-choice > span { min-width: 0; flex: 1; display: grid; line-height: 1.15; }
.bulk-receipt-product-choice strong, .bulk-receipt-product-choice small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bulk-product-edit-button { width: 26px; height: 26px; flex: 0 0 26px; display: inline-flex; align-items: center; justify-content: center; margin: 0; border: 1px solid var(--line); border-radius: 3px; background: white; color: var(--accent); cursor: pointer; }
.bulk-product-edit-button:hover { background: #edf4f7; }
.bulk-product-edit-button:disabled { opacity: .45; cursor: not-allowed; }
.bulk-product-edit-button svg { width: 13px; height: 13px; }
.bulk-product-picker-backdrop { position: absolute; inset: 0; z-index: 20; display: grid; place-items: center; padding: 16px; background: rgba(9,18,25,.62); border-radius: inherit; }
.bulk-product-picker { width: min(820px, 100%); height: min(680px, calc(100% - 20px)); display: grid; grid-template-rows: auto auto auto minmax(0,1fr); overflow: hidden; background: white; border-radius: 7px; box-shadow: 0 24px 70px rgba(0,0,0,.35); }
.bulk-product-picker > header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.bulk-product-picker h3, .bulk-product-picker header p { margin: 0; }
.bulk-product-picker-filters { display: grid; grid-template-columns: minmax(220px,1.5fr) 1fr 1fr; gap: 8px; padding: 12px 16px; }
.bulk-product-picker-filters input, .bulk-product-picker-filters select { width: 100%; min-height: 36px; border: 1px solid var(--line); border-radius: 4px; padding: 6px 8px; font: inherit; }
.bulk-product-picker-summary { padding: 0 16px 9px; color: var(--muted); font-size: 11px; font-weight: 700; }
.bulk-product-picker-list { min-height: 0; overflow: auto; padding: 0 16px 16px; }
.bulk-product-picker-item { width: 100%; display: grid; grid-template-columns: 140px minmax(180px,1fr) minmax(160px,.8fr); gap: 10px; align-items: center; padding: 9px 10px; border: 0; border-bottom: 1px solid var(--line); background: white; color: inherit; text-align: left; cursor: pointer; }
.bulk-product-picker-item:hover, .bulk-product-picker-item:focus { background: #edf4f7; outline: none; }
.bulk-product-picker-item small { color: var(--muted); }
.bulk-receipt-table input.bulk-receipt-small-input { width: 78px; }
.bulk-receipt-na { display: block; text-align: center; color: var(--muted); }
.bulk-receipt-table small { color: var(--muted); }
.bulk-receipt-table .danger-text { color: var(--danger); }
.bulk-receipt-select-all { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; }
.bulk-receipt-ready > td { padding: 5px 9px; }
.bulk-ready-first { display: flex; align-items: center; gap: 11px; min-height: 29px; white-space: nowrap; }
.bulk-ready-first { font-size: 11px; }
.bulk-ready-first > span { flex: 0 0 auto; }
.bulk-ready-first b, .bulk-receipt-facts b { color: #52616a; }
.bulk-ready-identity { min-width: 190px; }
.bulk-ready-first label { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700; }
.bulk-ready-first [data-bulk-split][hidden] { display: none; }
.bulk-receipt-ready input[type="number"] { width: 64px; min-height: 28px; height: 28px; padding: 3px 5px; font-size: 11px; }
.bulk-receipt-ready [data-bulk-quantity] { width: 78px; }
.bulk-receipt-facts { display: grid; grid-template-columns: 260px 125px 125px 125px 110px minmax(160px,1fr) minmax(330px,1.5fr); align-items: center; gap: 10px; min-width: 1320px; min-height: 29px; border-top: 1px solid #edf0f1; color: #586873; font-size: 11px; white-space: nowrap; }
.po-mapping-sku { min-width: 260px; }
.bulk-receipt-facts > .bulk-fact { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.bulk-receipt-facts .bulk-ready-product { display: inline-flex; align-items: center; gap: 5px; min-width: 0; }
.bulk-receipt-facts [data-bulk-split-note] { margin-left: 4px; }
.bulk-ready-product [data-bulk-product-display] { overflow: hidden; text-overflow: ellipsis; }
.bulk-ready-product .bulk-product-edit-button { width: 24px; height: 24px; flex-basis: 24px; }
.modal-backdrop { position: fixed; inset: 0; z-index: 100; background: rgba(9,18,25,.62); display: grid; place-items: center; padding: 20px; }
.modal { width: min(520px, 100%); max-height: 90vh; overflow: auto; background: white; border-radius: 8px; box-shadow: 0 30px 80px rgba(0,0,0,.3); }
.modal-header { padding: 20px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.modal-header h2 { margin: 0; }
.modal-body { padding: 20px; }
.modal-footer { padding: 16px 20px; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: 9px; }
.modal-input { width: 100%; height: 46px; border: 1px solid var(--line); border-radius: 5px; padding: 0 12px; margin-top: 8px; }
.member-result { width: 100%; border: 1px solid var(--line); background: white; text-align: left; padding: 14px; border-radius: 5px; margin-top: 10px; }
.receipt-success { text-align: center; }
.receipt-check { width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: #e1f6e9; color: #13733f; margin: 0 auto 14px; }
.receipt-check svg { width: 30px; }
.receipt-code { background: #101820; color: white; padding: 16px; border-radius: 6px; font: 800 18px monospace; letter-spacing: .08em; margin: 18px 0; }
.tender-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.tender-button { border: 1px solid var(--line); background: white; min-height: 86px; border-radius: 6px; display: grid; place-items: center; gap: 6px; font-weight: 700; }
.tender-button:hover { border-color: var(--teal); color: var(--teal); }
.tender-button svg { width: 24px; }
.toast-root { position: fixed; right: 20px; bottom: 20px; z-index: 120; display: grid; gap: 8px; }
.toast { background: #15232d; color: white; border-radius: 6px; padding: 13px 16px; box-shadow: var(--shadow); min-width: 260px; font-size: 12px; animation: toast-in .2s ease-out; }
@keyframes toast-in { from { transform: translateY(10px); opacity: 0; } }

@media (max-width: 1100px) {
  .topbar { grid-template-columns: 1fr auto auto; }
  .dedicated-pos-domain .topbar { grid-template-columns: 1fr auto; }
  .club-location { display: none; }
  .product-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .pos-product-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .pos-workspace { grid-template-columns: minmax(0,1fr) 360px; }
  .inventory-filter-bar { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .shop-hero { grid-template-columns:minmax(0,1fr) 120px; }
  .shop-confidence { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 800px) {
  .supplier-menu-toggle { top: 64px; }
  .supplier-menu { top: 114px; max-height: calc(100vh - 114px); }
  .pos-shell { display: block; width: 100%; max-width: 100%; min-width: 0; overflow-x: hidden; }
  .modal.bulk-receipt-modal { width: calc(100vw - 12px); min-width: 0; height: calc(100vh - 12px); min-height: 0; resize: none; }
  .topbar { height: 64px; padding: 0 14px; gap: 10px; }
  .brand small { display: none; }
  .top-actions .icon-button { display: none; }
  .member-nav { top: auto; left: 0; right: 0; bottom: 0; width: auto; height: 66px; flex-direction: row; padding: 6px; border-right: 0; border-top: 1px solid var(--line); }
  .nav-item { flex: 1; min-height: 54px; }
  .member-content { margin-left: 0; padding: 24px 14px 90px; }
  .member-content, .member-view, .shop-heading, .promo-band { width: 100%; max-width: 100%; min-width: 0; }
  .shop-heading h1, .promo-band h2, .promo-band p { max-width: 100%; overflow-wrap: anywhere; }
  .shop-heading { align-items: stretch; flex-direction: column; }
  .scan-cta { min-width: 0; width: 100%; }
  .search-row { grid-template-columns: 1fr; }
  .product-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; }
  .promo-band { padding: 24px; min-height: 240px; }
  .reward-meter { display: none; }
  .scan-layout, .membership-layout { grid-template-columns: 1fr; }
  .scanner-panel { grid-template-columns: 1fr; }
  .checkout-summary { position: static; }
  .membership-card { padding: 20px; }
  .order-row { grid-template-columns: 1fr auto; }
  .order-row > div:nth-child(2), .order-row > div:nth-child(3) { display: none; }
  .floating-cart { bottom: 82px; right: 16px; }
  .cart-drawer { top: 64px; bottom: 66px; }
  .shop-hero { min-height:0; grid-template-columns:1fr; }
  .shop-hero-copy { padding:14px 16px; }
  .shop-hero-copy h1 { font-size:20px; }
  .shop-hero-image { display:none; }
  .shop-confidence { margin-bottom:18px; }
  .customer-account-grid,.about-company-layout { grid-template-columns:1fr; }
  .about-company-image { min-height:320px; }
  .about-company-layout { min-height:0; }
  .customer-invite-options { grid-template-columns:1fr; }
  .pos-shell > .admin-menu-toggle { width: calc(100% - 24px); margin: 12px; }
  .pos-shell.checkout-active > .admin-menu-toggle { display: none; }
  .pos-shell:not(.checkout-active) { position: relative; }
  .pos-shell:not(.checkout-active) > .admin-menu-toggle { position: absolute; z-index: 40; top: 12px; left: 12px; width: 42px; min-width: 42px; min-height: 42px; margin: 0; padding: 0; }
  .pos-shell:not(.checkout-active) > .admin-menu-toggle span { display: none; }
  .pos-shell:not(.checkout-active) .pos-view.active .pos-page-heading,
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel-heading { padding-left: 64px; min-height: 66px; }
  .pos-shell:not(.checkout-active):has(.admin-menu.is-open) > .admin-menu-toggle { display: none; }
  .pos-shell:not(.checkout-active) .admin-menu.is-open { padding-top: 6px; }
  .pos-toolbar .pos-toolbar-menu-toggle { display: inline-flex; width: 48px; min-width: 48px; min-height: 48px; padding: 0; }
  .pos-view { margin-left: 0; width: 100%; max-width: 100%; min-width: 0; }
  .pos-workspace { grid-template-columns: minmax(0,1fr); width: 100%; max-width: 100%; min-width: 0; }
  .pos-catalog { min-height: 50vh; width: 100%; max-width: 100%; min-width: 0; }
  .pos-toolbar, .pos-category-tools, .pos-product-grid { width: 100%; max-width: 100%; min-width: 0; }
  .pos-toolbar > .pos-search { min-width: 0; }
  .pos-category-tools { overflow: hidden; }
  .pos-category-tools .pos-category-strip { max-width: 100%; }
  .pos-product-grid { max-height: 46vh; }
  .pos-ticket { border-left: 0; border-top: 2px solid #aebac1; width: 100%; max-width: 100%; min-width: 0; }
  .fresh-flower-pos-product { width: 100%; max-width: 100%; min-width: 0; grid-template-columns: minmax(0,1fr) max-content; }
  .fresh-flower-pos-main, .fresh-flower-pos-product .pos-product-heading { max-width: 100%; overflow: hidden; }
  .fresh-flower-pos-product .pos-product-heading strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .fresh-flower-pos-metrics { min-width: 52px; }
  .metric-strip { grid-template-columns: repeat(2,1fr); }
  .pos-page-heading { align-items: stretch; flex-direction: column; }
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading:first-child { align-items: stretch; flex-direction: column; gap: 12px; }
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading:first-child > button { align-self: flex-start; }
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading:first-child > .heading-actions,
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading:first-child > .admin-form-actions,
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading:first-child > .admin-row-actions { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
  .pos-page-heading > button:has(svg),
  .pos-page-heading > .heading-actions button:has(svg),
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading:first-child > button:has(svg),
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading:first-child > .heading-actions button:has(svg),
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading:first-child > .admin-form-actions button:has(svg),
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading:first-child > .admin-row-actions button:has(svg) { width: 42px; min-width: 42px; height: 42px; padding: 0; gap: 0; font-size: 0; }
  .pos-page-heading > button:has(svg) svg,
  .pos-page-heading > .heading-actions button:has(svg) svg,
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading:first-child button:has(svg) svg { width: 18px; margin: 0; }
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .customer-page-heading:first-child { align-items: center; flex-direction: row; gap: 8px; }
  .customer-page-heading > div:first-child { flex: 1; min-width: 0; overflow: hidden; }
  .customer-page-heading > div:first-child h2,
  .customer-page-heading > div:first-child small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .customer-heading-actions { display: flex; flex: 0 0 auto; gap: 8px; }
  .customer-page-heading > button:has(svg),
  .customer-heading-actions button:has(svg) { width: 42px; min-width: 42px; height: 42px; padding: 0; gap: 0; font-size: 0; }
  .customer-page-heading > button:has(svg) svg,
  .customer-heading-actions button:has(svg) svg { width: 18px; margin: 0; }
  .pos-shell:not(.checkout-active) .pos-view.active .pos-mobile-icon-heading,
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading.pos-mobile-icon-heading:first-child { align-items: center; flex-direction: row; gap: 8px; }
  .pos-mobile-icon-heading > :first-child { flex: 1; min-width: 0; overflow: hidden; }
  .pos-mobile-icon-heading > :first-child h1,
  .pos-mobile-icon-heading > :first-child h2,
  .pos-mobile-icon-heading > :first-child small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .pos-mobile-icon-heading > div:has(> .mobile-pos-heading-action),
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading.pos-mobile-icon-heading:first-child > div:has(> .mobile-pos-heading-action) { display: flex; flex: 0 0 auto; width: auto; gap: 8px; justify-content: flex-end; flex-wrap: nowrap; }
  .pos-mobile-icon-heading .mobile-pos-heading-action,
  .pos-shell:not(.checkout-active) .pos-view.active .admin-panel > .admin-panel-heading.pos-mobile-icon-heading:first-child > .mobile-pos-heading-action { align-self: center; flex: 0 0 42px; width: 42px; min-width: 42px; height: 42px; padding: 0; gap: 0; font-size: 0; }
  .pos-mobile-icon-heading .mobile-pos-heading-action svg { width: 18px; margin: 0; }
  .pos-search.narrow { max-width: none; }
  .heading-actions { align-items: stretch; flex-wrap: wrap; }
  .inventory-filter-bar { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 12px; }
  .bulk-receipt-toolbar { align-items: stretch; flex-wrap: wrap; }
  .bulk-receipt-summary { width: 100%; margin-left: 0; order: 3; }
  .bulk-receipt-fields { grid-template-columns: 1fr 1fr; }
  .bulk-product-picker-filters { grid-template-columns: 1fr; }
  .bulk-product-picker-item { grid-template-columns: 1fr; gap: 2px; }
  .admin-layout, .inventory-admin-panel { margin: 0 12px 24px; }
  .admin-menu-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; width: 100%; border: 1px solid #c7d0d6; border-radius: 6px; background: white; color: #23313a; font-weight: 800; }
  .admin-menu-toggle svg { width: 18px; }
  .admin-menu, .admin-menu.associate-menu { position: static; display: none; width: auto; height: min(70dvh, 520px); max-height: min(70vh, 520px); overflow-x: hidden; overflow-y: scroll; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
  .admin-menu.is-open { display: block; }
  .admin-menu::-webkit-scrollbar { width: 10px; }
  .admin-menu::-webkit-scrollbar-track { background: #22313b; }
  .admin-menu::-webkit-scrollbar-thumb { background: #78909e; border: 2px solid #22313b; border-radius: 8px; }
  .admin-menu p { display: block; }
  .admin-menu button { width: 100%; white-space: normal; }
  .admin-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-form { grid-template-columns: 1fr; }
  .admin-form .full { grid-column: auto; }
  .scanner-lookup-form, .scanner-found, .scanner-uom-grid, .scanner-accounting > div { grid-template-columns: 1fr; }
  .scanner-found-icon { display: none; }
  .scanner-found > button { justify-self: start; }
  .company-integration-editor { grid-template-columns: minmax(0,1fr); }
  .company-integration-actions { min-width: 0; grid-template-columns: repeat(2,minmax(0,1fr)); justify-content: stretch; }
  .company-integration-actions .primary-button, .company-integration-actions .outline-button { width: 100%; }
  .company-integration-actions .import-token-result { max-width: none; }
  .company-profile-step { align-items: stretch; flex-direction: column; }
  .company-catalog-picker, .company-default-grid, .catalog-sub-list { grid-template-columns: 1fr; }
  .admin-form-grid, .admin-filter-bar, .admin-detail-grid { grid-template-columns: 1fr; }
  .admin-form-grid .full { grid-column: auto; }
  .freight-bill-fields { grid-template-columns: 1fr; }
  .freight-bill-heading { grid-column: auto; }
}
@media (max-width: 480px) {
  .brand strong { font-size: 15px; }
  .product-grid { grid-template-columns: 1fr 1fr; }
  .inventory-filter-bar { grid-template-columns: 1fr; }
  .product-info { padding: 11px; }
  .product-info h3 { font-size: 12px; }
  .product-bottom { align-items: center; }
  .price strong { font-size: 17px; }
  .promo-band h2 { font-size: 25px; }
  .shop-confidence { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .shop-hero-actions { width:100%; }
  .shop-hero-actions button { flex:1 1 auto; }
  .catalog-access-note { align-items:flex-start; flex-wrap:wrap; }
  .catalog-access-note .text-button { width:100%; text-align:left; }
  .order-form-grid,.fulfillment-choice { grid-template-columns:1fr; }
  .order-review-total { flex-wrap:wrap; gap:9px 16px; }
  .scanner-panel { padding: 16px; }
  .scanner-frame { height: min(58vw, 280px); }
  .scanner-actions { flex-direction: column; }
  .test-barcode-grid { grid-template-columns: 1fr; }
  .barcode-entry { flex-direction: column; }
  .barcode-entry button { min-height: 42px; justify-content: center; }
  .membership-card { aspect-ratio: auto; min-height: 250px; }
  .pos-category-tools { align-items: stretch; flex-direction: column; gap: 0; }
  .pos-category-tools > select { flex: none; width: 100%; min-width: 0; }
  .pos-product-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .fresh-flower-pos-product { grid-column: 1 / -1; }
  .bulk-receipt-fields { grid-template-columns: 1fr; }
  .pos-actions button { min-height: 52px; }
}

@media print {
  body * { visibility: hidden; }
  .modal, .modal * { visibility: visible; }
  .modal { position: absolute; inset: 0; width: 100%; max-width: none; box-shadow: none; }
  .modal-header button, .modal-footer { display: none; }
  .test-barcode-grid { grid-template-columns: repeat(2, 1fr); }
  .test-barcode-card { break-inside: avoid; }
  .bulk-adjustment-panel, .bulk-adjustment-panel * { visibility: visible; }
  .bulk-adjustment-panel { position: absolute; inset: 0; width: 100%; overflow: visible; border: 0; }
  .bulk-adjustment-actions, .bulk-adjustment-filters, .bulk-adjustment-instructions, .bulk-adjustment-pager { display: none !important; }
  .bulk-adjustment-fields { grid-template-columns: 1fr 2fr; padding: 8px 0; }
  .bulk-adjustment-summary { display: none; }
  .bulk-adjustment-table-wrap { max-height: none; overflow: visible; }
  .bulk-adjustment-table { min-width: 0; table-layout: fixed; font-size: 6.5px; }
  .bulk-adjustment-table th, .bulk-adjustment-table td { padding: 3px 4px; white-space: normal; overflow: visible; }
  .bulk-adjustment-table input[data-bulk-adjust-qty] { min-width: 0; width: 100%; height: 24px; padding: 2px; background: white; }
  .bulk-adjustment-table tr { break-inside: avoid; }
  @page { size: landscape; margin: .3in; }
}
.login-landing { position: fixed; inset: 0; z-index: 1000; min-height: 100dvh; display: grid; grid-template-columns: minmax(420px,1.15fr) minmax(420px,.85fr); overflow: auto; background: #f7faf9; }
.login-hero { position: relative; min-height: 100dvh; overflow: hidden; color: white; background: linear-gradient(145deg,#082d32 0%,#005f5b 54%,#087f76 100%); }
.login-hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .3; filter: saturate(.8) contrast(1.08); }
.login-hero::before { content: ''; position: absolute; width: 520px; height: 520px; right: -210px; top: -180px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.035),0 0 0 140px rgba(255,255,255,.025); }
.login-hero::after { content: ''; position: absolute; width: 420px; height: 420px; left: -260px; bottom: -250px; border-radius: 50%; background: rgba(200,230,74,.12); box-shadow: 0 0 90px rgba(200,230,74,.16); }
.login-hero-content { position: relative; z-index: 1; min-height: 100%; padding: clamp(34px,6vw,82px); display: flex; flex-direction: column; }
.login-hero-brand { display: flex; align-items: center; gap: 18px; }
.login-club-logo { width: 112px; height: 72px; object-fit: contain; object-position: left center; padding: 7px; border-radius: 10px; background: white; box-shadow: 0 12px 30px rgba(0,0,0,.16); }
.login-club-logo.morestems-brand-logo { width: 260px; height: 108px; padding: 4px 8px; }
.login-logo-fallback { width: 62px; height: 62px; display: grid; place-items: center; color: #073f42; background: var(--lime); border-radius: 14px; transform: rotate(45deg); box-shadow: 0 12px 30px rgba(0,0,0,.16); }
.login-logo-fallback svg { width: 29px; transform: rotate(-45deg); }
.login-hero-brand span span { display: block; }
.login-hero-brand small { display: block; margin-bottom: 4px; color: rgba(255,255,255,.7); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.login-hero-brand strong { display: block; max-width: 420px; font: 800 clamp(20px,2.3vw,30px)/1.15 Manrope,sans-serif; }
.login-welcome-copy { max-width: 650px; margin: auto 0; padding: 70px 0; }
.login-kicker { margin-bottom: 18px; color: var(--lime); font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.login-welcome-copy h1 { margin-bottom: 24px; font: 800 clamp(44px,5.4vw,76px)/.99 Manrope,sans-serif; letter-spacing: -.045em; }
.login-value-copy { max-width: 580px; margin-bottom: 0; color: rgba(255,255,255,.76); font-size: clamp(15px,1.4vw,19px); line-height: 1.7; }
.login-commerce-path { max-width: 680px; display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 12px; margin-top: 34px; }
.login-commerce-path > span { min-width: 0; display: grid; grid-template-columns: 34px 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 13px 14px; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; background: rgba(255,255,255,.08); backdrop-filter: blur(8px); }
.login-commerce-path > span > svg { width: 24px; height: 24px; grid-row: 1 / 3; color: var(--lime); }
.login-commerce-path strong { font-size: 12px; }
.login-commerce-path small { margin-top: 2px; color: rgba(255,255,255,.62); font-size: 9px; font-weight: 600; }
.login-path-arrow { width: 17px; color: rgba(255,255,255,.5); }
.login-company-hero .login-welcome-copy { max-width: 720px; padding: 36px 0; }
.login-company-hero .login-hero-content { min-height: 100dvh; }
.login-company-hero .login-welcome-copy h1 { font-size: clamp(40px,4.4vw,64px); }
.login-company-hero .login-value-copy { font-size: clamp(14px,1.15vw,17px); line-height: 1.65; }
.login-company-landing { grid-template-rows: max-content; }
.login-all-in-one { margin-top: 20px; padding-left: 14px; border-left: 3px solid var(--lime); font-size: 13px; line-height: 1.6; }
.login-all-in-one strong { color: white; }
.login-all-in-one p { margin: 4px 0 0; color: rgba(255,255,255,.8); }
.login-company-features { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 28px; }
.login-company-features article { display: flex; align-items: flex-start; gap: 11px; padding: 16px; border: 1px solid rgba(255,255,255,.17); border-radius: 12px; background: rgba(255,255,255,.065); }
.login-company-features article > svg { width: 22px; height: 22px; flex: 0 0 auto; color: var(--lime); }
.login-company-features h2 { margin: 0 0 5px; font: 800 12px/1.4 Manrope,sans-serif; color: white; }
.login-company-features p { margin: 0; color: rgba(255,255,255,.76); font-size: 11px; line-height: 1.6; }
.login-mobile-signin { display: none; }
@media (min-width: 901px) {
  .login-company-landing { min-height: 0; height: 100dvh; grid-template-rows: minmax(0,1fr); }
  .login-company-hero { min-height: 0; height: 100%; overflow: hidden; }
  .login-company-hero .login-hero-content { min-height: 0; height: 100%; overflow-y: auto; padding: clamp(20px,4dvh,48px) clamp(28px,4vw,64px); }
  .login-company-hero .login-hero-brand { flex-shrink: 0; }
  .login-company-hero .login-club-logo { height: clamp(48px,8dvh,72px); }
  .login-company-hero .login-club-logo.morestems-brand-logo { width: clamp(170px,18vw,240px); height: clamp(56px,9dvh,90px); }
  .login-company-hero .login-welcome-copy { padding: clamp(12px,2.5dvh,28px) 0; }
  .login-company-hero .login-kicker { margin-bottom: clamp(8px,1.5dvh,16px); }
  .login-company-hero .login-welcome-copy h1 { margin-bottom: clamp(12px,2dvh,22px); font-size: clamp(32px,5.5dvh,60px); }
  .login-company-hero .login-value-copy { font-size: clamp(13px,1.75dvh,16px); line-height: 1.5; }
  .login-company-hero .login-all-in-one { margin-top: clamp(12px,2dvh,18px); font-size: 12px; line-height: 1.5; }
  .login-company-features { margin-top: clamp(14px,2.5dvh,24px); gap: clamp(8px,1.3dvh,12px); }
  .login-company-features article { padding: clamp(10px,1.5dvh,15px); gap: 9px; }
  .login-company-features p { line-height: 1.45; }
  .login-company-landing .login-panel { min-height: 0; height: 100%; overflow-y: auto; padding: clamp(24px,4dvh,64px) clamp(28px,4vw,64px); }
}
@media (min-width: 901px) and (max-height: 760px) {
  .login-company-hero .login-hero-content { padding-top: 20px; padding-bottom: 20px; }
  .login-company-hero .login-welcome-copy { padding: 14px 0; }
  .login-company-hero .login-welcome-copy h1 { font-size: clamp(30px,4.8dvh,36px); }
  .login-company-hero .login-feature-row { display: none; }
  .login-company-landing .login-card { gap: 15px; }
}
@media (min-width: 901px) and (max-height: 650px) {
  .login-company-features article { align-items: center; padding: 10px; }
  .login-company-features h2 { margin: 0; }
  .login-company-features p { display: none; }
  .login-company-hero .login-hero-brand strong { font-size: 22px; }
  .login-company-landing .login-card input { min-height: 44px; }
  .login-company-landing .login-help { padding-top: 10px; }
}
@media (max-width: 900px) {
  .login-landing { grid-template-rows: max-content max-content; align-content: start; }
  .login-company-hero .login-hero-content { min-height: 0; }
  .login-company-hero .login-welcome-copy { margin: 34px 0 0; padding: 0; }
  .login-mobile-signin { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; color: white; font-size: 13px; font-weight: 700; text-underline-offset: 4px; }
  .login-mobile-signin svg { width: 16px; height: 16px; }
}
@media (max-width: 520px) {
  .login-company-hero .login-welcome-copy h1 { font-size: 36px; }
  .login-company-features { grid-template-columns: 1fr; gap: 8px; margin-top: 22px; }
  .login-company-features article { padding: 12px; }
}
.login-feature-row { display: flex; flex-wrap: wrap; gap: 12px 24px; color: rgba(255,255,255,.78); font-size: 11px; font-weight: 700; }
.login-feature-row span { display: inline-flex; align-items: center; gap: 7px; }
.login-feature-row svg { width: 16px; color: var(--lime); }
.login-panel { min-height: 100dvh; display: grid; place-items: center; padding: clamp(28px,6vw,84px); background: radial-gradient(circle at 100% 0,rgba(0,109,104,.08),transparent 34%),#f7faf9; }
.login-card { width: min(460px,100%); display: grid; gap: 21px; }
.login-form-heading { display: flex; align-items: center; gap: 14px; }
.login-form-heading .eyebrow { margin-bottom: 5px; }
.login-form-heading h2 { margin: 0; font: 800 clamp(32px,4vw,44px)/1 Manrope,sans-serif; color: #17232c; }
.login-lock { width: 50px; height: 50px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 12px; color: var(--teal); background: #e0f1ef; }
.login-lock svg { width: 23px; }
.login-intro { margin: -4px 0 5px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.login-card label { display: grid; gap: 8px; color: #34434d; font-size: 11px; font-weight: 800; }
.login-card input { width: 100%; min-height: 52px; border: 1px solid #cbd6dc; border-radius: 8px; padding: 10px 14px; background: white; color: var(--ink); font: 14px Inter,sans-serif; outline: none; transition: border-color .15s,box-shadow .15s; }
.login-card input:focus { border-color: var(--teal); box-shadow: 0 0 0 4px rgba(0,109,104,.11); }
.login-card input::placeholder { color: #98a4ab; }
.login-card input:disabled { background: #edf1f2; color: #7b878e; cursor: not-allowed; }
.login-cooldown { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid #f1c68d; border-radius: 8px; color: #713b0c; background: #fff7e8; }
.login-cooldown > svg { width: 22px; flex: 0 0 auto; }
.login-cooldown strong,.login-cooldown span { display: block; }
.login-cooldown strong { margin-bottom: 3px; font-size: 12px; }
.login-cooldown span { font-size: 11px; }
.login-actions { display: flex; justify-content: flex-end; gap: 10px; }
.login-submit { min-width: 150px; min-height: 50px; border-color: var(--teal); background: var(--teal); color: white; box-shadow: 0 10px 22px rgba(0,109,104,.2); }
.login-submit:hover { background: var(--teal-dark); }
.login-submit svg { width: 17px; }
.login-submit[aria-busy="true"] { cursor: wait; opacity: .82; }
.login-spinner { width: 16px; height: 16px; display: inline-block; flex: 0 0 auto; border: 2px solid rgba(255,255,255,.45); border-top-color: white; border-radius: 50%; animation: login-spinner-turn .7s linear infinite; }
@keyframes login-spinner-turn { to { transform: rotate(360deg); } }
.login-help { display: flex; align-items: center; gap: 8px; margin: 3px 0 0; padding-top: 18px; border-top: 1px solid var(--line); color: #7a8790; font-size: 10px; }
.login-help svg { width: 15px; flex: 0 0 auto; }
.login-forgot-button { justify-self: end; margin-top: -12px; padding: 0; border: 0; background: transparent; color: var(--teal); font: 700 12px Inter,sans-serif; cursor: pointer; }
.login-forgot-button:hover { text-decoration: underline; }
.login-reset-success { margin: 0; padding: 12px 14px; border: 1px solid rgba(0,109,104,.22); border-radius: 8px; background: rgba(0,109,104,.08); color: #075e59; font-size: 12px; line-height: 1.55; }
body.public-landing-active > .topbar, body.public-landing-active > main { display: none; }
.public-landing { min-height: 100dvh; color: #f8fffd; background: #072d31; }
.public-landing-nav { height: 110px; max-width: 1440px; margin: auto; padding: 0 clamp(22px,5vw,76px); display: flex; align-items: center; justify-content: space-between; }
.public-landing-nav img { display: block; width: 260px; height: 94px; padding: 4px 8px; border-radius: 10px; object-fit: contain; background: #fff; }
.public-landing-nav .outline-button { border-color: rgba(255,255,255,.34); color: #fff; background: rgba(255,255,255,.06); }
.public-hero { min-height: 660px; max-width: 1440px; margin: auto; padding: clamp(64px,9vw,126px) clamp(22px,5vw,76px); display: grid; grid-template-columns: minmax(0,1.15fr) minmax(330px,.85fr); align-items: center; gap: clamp(48px,8vw,120px); }
.public-hero-copy h1 { max-width: 790px; margin-bottom: 28px; font: 800 clamp(54px,7.2vw,104px)/.91 Manrope,sans-serif; letter-spacing: -.065em; }
.public-hero-copy > p:not(.login-kicker) { max-width: 690px; color: rgba(255,255,255,.72); font-size: clamp(16px,1.55vw,21px); line-height: 1.7; }
.public-hero-actions { margin-top: 32px; display: flex; flex-wrap: wrap; align-items: center; gap: 24px; }
.public-hero-actions .primary-button { min-height: 52px; background: var(--lime); border-color: var(--lime); color: #143b37; }
.public-hero-actions > a { color: #fff; font-size: 13px; font-weight: 800; text-underline-offset: 5px; }
.public-network { display: grid; justify-items: center; gap: 7px; text-align: center; }
.public-network-globe { position: relative; width: min(33vw,410px); min-width: 290px; aspect-ratio: 1; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; background: radial-gradient(circle,rgba(49,166,145,.28),rgba(255,255,255,.025) 67%); box-shadow: 0 0 0 34px rgba(255,255,255,.025),0 0 0 70px rgba(255,255,255,.018); }
.public-network-globe::before,.public-network-globe::after { content: ''; position: absolute; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; }
.public-network-globe::before { inset: 10% 35%; }.public-network-globe::after { inset: 35% 10%; }
.public-network-globe > svg { width: 48%; height: 48%; color: rgba(200,230,74,.85); stroke-width: 1; }
.network-node { position: absolute; width: 54px; height: 54px; display: grid; place-items: center; border: 5px solid #0a3d3e; border-radius: 50%; color: #143b37; background: var(--lime); box-shadow: 0 12px 30px rgba(0,0,0,.25); }
.network-node svg { width: 22px; }.node-one { left: 4%; top: 25%; }.node-two { right: 3%; top: 19%; }.node-three { right: 16%; bottom: 3%; }
.public-network > strong { margin-top: 34px; font: 800 19px Manrope,sans-serif; }.public-network > small { color: rgba(255,255,255,.62); }
.public-platform { padding: clamp(74px,9vw,126px) clamp(22px,7vw,110px); color: #18342f; background: #f5f9f7; }
.public-platform > div:first-child { max-width: 680px; margin: 0 auto 38px; text-align: center; }.public-platform h2 { font: 800 clamp(34px,4vw,56px)/1.08 Manrope,sans-serif; letter-spacing: -.035em; }
.public-role-grid { max-width: 1250px; margin: auto; display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.public-role-grid article { padding: 32px; border: 1px solid #dbe7e1; border-radius: 16px; background: #fff; box-shadow: 0 16px 42px rgba(16,63,52,.06); }
.public-role-grid article > svg { width: 42px; height: 42px; padding: 9px; border-radius: 10px; color: #087368; background: #e3f3ed; }.public-role-grid h3 { margin: 22px 0 10px; font-size: 21px; }.public-role-grid p { margin: 0; color: #667a73; font-size: 13px; line-height: 1.65; }
.public-flow { padding: 31px 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: clamp(12px,3vw,38px); color: rgba(255,255,255,.76); font-size: clamp(12px,1.5vw,17px); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.public-flow svg { width: 17px; color: var(--lime); }
@media (max-width: 900px) {
  .login-landing { grid-template-columns: 1fr; }
  .login-hero { min-height: auto; }
  .login-hero-content { min-height: auto; padding: 28px clamp(22px,6vw,54px); }
  .login-welcome-copy { margin: 50px 0 35px; padding: 0; }
  .login-welcome-copy h1 { font-size: clamp(38px,9vw,58px); }
  .login-commerce-path { max-width: 640px; }
  .login-feature-row { display: none; }
  .login-panel { min-height: auto; padding: 48px 24px 64px; }
  .public-hero { grid-template-columns: 1fr; text-align: center; }.public-hero-copy > p:not(.login-kicker) { margin-left: auto; margin-right: auto; }.public-hero-actions { justify-content: center; }.public-network-globe { width: 330px; }.public-role-grid { grid-template-columns: 1fr; max-width: 620px; }
}
@media (max-width: 520px) {
  .login-hero-brand { gap: 12px; }
  .login-club-logo { width: 82px; height: 58px; }
  .login-club-logo.morestems-brand-logo { width: 190px; height: 82px; }
  .login-logo-fallback { width: 50px; height: 50px; }
  .login-welcome-copy { margin: 38px 0 10px; }
  .login-welcome-copy h1 { margin-bottom: 16px; font-size: 38px; }
  .login-value-copy { font-size: 13px; line-height: 1.55; }
  .login-commerce-path { grid-template-columns: 1fr; gap: 8px; margin-top: 24px; }
  .login-commerce-path > span { padding: 10px 12px; }
  .login-path-arrow { display: none; }
  .login-panel { padding: 38px 22px 52px; }
  .login-actions { flex-direction: column-reverse; }
  .login-actions button { width: 100%; }
  .public-landing-nav { height: 92px; }.public-landing-nav img { width: 190px; height: 72px; }.public-hero { padding-top: 55px; }.public-hero-copy h1 { font-size: 54px; }.public-network-globe { min-width: 250px; width: 250px; }.public-flow { gap: 9px; }.public-flow svg { width: 12px; }.public-role-grid article { padding: 25px; }
}
.admin-check-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 14px; }
.admin-check-grid label { min-height: 34px; display: flex; align-items: center; gap: 8px; padding: 8px; border: 1px solid var(--line); border-radius: 4px; background: #fbfcfc; }
.admin-check-grid small { color: var(--muted); margin-left: auto; }
.role-permission-groups { display: grid; gap: 14px; }
.role-permission-section { overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: #fbfcfc; }
.role-permission-section h4 { margin: 0; padding: 11px 14px; border-bottom: 1px solid var(--line); background: #eef3f5; color: #263640; font: 800 12px Manrope,sans-serif; }
.role-permission-pages { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 10px; }
.role-permission-page { display: flex; align-items: flex-start; gap: 9px; min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 5px; background: white; cursor: pointer; }
.role-permission-page input { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 1px; }
.role-permission-page span { min-width: 0; }
.role-permission-page strong, .role-permission-page small { display: block; }
.role-permission-page strong { font-size: 11px; }
.role-permission-page small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.role-permission-page:has(input:checked) { border-color: #65a9a4; background: #eef8f7; }
.role-permission-page { justify-content: space-between; }
.role-permission-access { display: flex; align-items: flex-start; gap: 9px; min-width: 0; flex: 1 1 auto; cursor: pointer; }
.role-view-only { display: flex; align-items: center; gap: 5px; flex: 0 0 auto; padding-left: 8px; color: #43545e; font-size: 10px; font-weight: 800; cursor: pointer; }
.role-view-only input { margin-top: 0; }
.role-view-only:has(input:disabled) { opacity: .45; cursor: default; }
.admin-view-only-banner { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; padding: 10px 12px; border: 1px solid #9ab8c4; border-radius: 6px; background: #eef7fa; color: #274b59; font-size: 11px; font-weight: 800; }
.admin-view-only-banner svg { width: 16px; height: 16px; }
.admin-view-only button[hidden] { display: none !important; }
@media (max-width: 760px) { .admin-check-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .role-permission-pages { grid-template-columns: 1fr; } }
@media (max-width: 1100px) { .supplier-attention-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.supplier-process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.supplier-process-grid article { border-bottom: 1px solid var(--line); }.supplier-snapshot .admin-summary { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 760px) { .supplier-command-center { padding: 14px 12px 24px; }.supplier-command-hero { align-items: flex-start; flex-direction: column; padding: 22px; }.supplier-command-identity { width: 100%; }.supplier-attention-grid,.supplier-process-grid,.supplier-snapshot .admin-summary { grid-template-columns: 1fr; }.supplier-process-grid article { border-right: 0; }.farm-portal-callout,.farm-portal-callout > div { align-items: flex-start; flex-direction: column; }.farm-portal-callout .primary-button { width: 100%; } }
.top-actions { position: relative; }
.profile-menu { position: absolute; top: 48px; right: 0; width: 240px; background: white; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 18px 45px rgba(23,35,44,.18); padding: 12px; display: grid; gap: 8px; z-index: 90; }
.profile-menu strong, .profile-menu small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-menu small { color: var(--muted); font-size: 11px; }
.profile-menu button { border: 1px solid var(--line); background: #f7f9fa; border-radius: 6px; min-height: 38px; display: flex; align-items: center; justify-content: center; gap: 8px; font-weight: 800; color: #23313a; }
.profile-menu button:hover { background: #eef2f4; }
.profile-menu button svg { width: 16px; }
.profile-menu[hidden] { display: none; }
.login-button { min-height: 38px; border: 1px solid var(--line); border-radius: 6px; background: white; color: var(--ink); padding: 0 14px; font-weight: 800; }
.login-button:hover { background: #eef2f4; }
.image-file-root { display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-bottom: 1px solid var(--line); background: #f7f9fa; color: var(--muted); font-size: 10px; }
.image-file-root span { flex: 0 0 auto; font-weight: 800; text-transform: uppercase; }
.image-file-root code { min-width: 0; overflow: hidden; color: #263842; text-overflow: ellipsis; white-space: nowrap; }
.image-folder-tools { display: grid; grid-template-columns: minmax(220px,1fr) minmax(300px,1.5fr); gap: 14px; align-items: end; padding: 16px; border-bottom: 1px solid var(--line); }
.image-folder-tools label { color: #465660; font-size: 10px; font-weight: 800; }
.image-folder-tools select, .image-folder-tools input { display: block; width: 100%; min-height: 40px; margin-top: 6px; border: 1px solid var(--line); border-radius: 4px; padding: 7px 9px; background: white; font: 11px Inter,sans-serif; }
.image-folder-tools form { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: end; }
.image-file-notice { margin: 16px 16px 0; padding: 11px 13px; border: 1px solid #d8c182; border-radius: 5px; background: #fff9e8; color: #6e5512; font-size: 11px; font-weight: 700; }
.image-drop-zone { display: grid; justify-items: center; gap: 7px; margin: 16px; padding: 30px 18px; border: 2px dashed #91a4ae; border-radius: 8px; background: #f7fafb; color: #344650; cursor: pointer; transition: .15s ease; }
.image-drop-zone:hover, .image-drop-zone:focus, .image-drop-zone.is-dragging { border-color: var(--teal); background: #edf8f6; outline: 0; transform: translateY(-1px); }
.image-drop-zone svg { width: 30px; height: 30px; color: var(--teal); }
.image-drop-zone strong { font-size: 13px; }
.image-drop-zone small { color: var(--muted); font-size: 10px; text-align: center; }
.image-upload-status { margin: 0 16px 16px; padding: 11px 13px; border: 1px solid #8bb8ae; border-radius: 5px; background: #eef9f5; color: #235f50; font-size: 11px; font-weight: 800; }
.image-upload-status.is-error { border-color: #e0b4b4; background: #fff3f3; color: #9b2424; }
.image-file-summary { display: flex; justify-content: space-between; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #f7f9fa; font-size: 10px; }
.image-file-summary span { color: var(--muted); }
.image-file-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(210px,1fr)); gap: 12px; padding: 16px; }
.image-file-grid > .empty-state { grid-column: 1 / -1; }
.image-file-card { display: grid; grid-template-columns: 72px minmax(0,1fr) 34px; gap: 10px; align-items: center; min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 6px; background: white; }
.image-file-card > a:first-child { width: 72px; height: 64px; overflow: hidden; border-radius: 4px; background: #eef2f4; }
.image-file-card img { width: 100%; height: 100%; object-fit: contain; }
.image-file-card div { min-width: 0; }
.image-file-card strong, .image-file-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.image-file-card strong { color: #263842; font-size: 10px; }
.image-file-card small { margin-top: 5px; color: var(--muted); font-size: 8px; }
@media (max-width: 760px) { .image-folder-tools { grid-template-columns: 1fr; } .image-folder-tools form { grid-template-columns: 1fr auto; } .image-file-grid { grid-template-columns: 1fr; } }

/* Contextual help center */
.help-button { color: var(--teal); background: #eef8f5; border-color: #c7e3da; }
.help-button:hover { color: #fff; background: var(--teal); }
.top-actions .help-button[hidden] { display: none; }
.help-center-root[hidden] { display: none; }
.help-center-root { position: fixed; inset: 0; z-index: 1500; display: flex; justify-content: flex-end; }
.help-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(9,25,29,.48); backdrop-filter: blur(2px); }
.help-drawer { position: relative; width: min(920px,92vw); height: 100dvh; display: grid; grid-template-rows: auto auto auto minmax(0,1fr); color: #263842; background: #f5f8f7; box-shadow: -24px 0 70px rgba(4,24,27,.24); animation: help-drawer-in .22s ease-out; }
@keyframes help-drawer-in { from { transform: translateX(40px); opacity: .5; } }
.help-drawer-header { min-height: 78px; display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; color: #fff; background: #083f42; }
.help-drawer-header h2,.help-drawer-header p { margin: 0; }.help-drawer-header .eyebrow { color: #b9d934; }.help-drawer-header .icon-button { border-color: rgba(255,255,255,.25); color: #fff; background: rgba(255,255,255,.08); }
.help-search { margin: 18px 20px 10px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px; padding: 0 14px; border: 1px solid #cfdcda; border-radius: 8px; background: #fff; }
.help-search svg { width: 18px; color: #71817e; }.help-search input { min-height: 46px; border: 0; outline: 0; font: 12px Inter,sans-serif; }
.help-context { margin: 0 20px 13px; color: #657571; font-size: 10px; }
.help-context:empty { display: none; }
.help-layout { min-height: 0; display: grid; grid-template-columns: 280px minmax(0,1fr); border-top: 1px solid #dbe4e1; }
.help-topic-list { overflow: auto; padding: 14px; border-right: 1px solid #dbe4e1; background: #edf3f1; }
.help-topic-list section + section { margin-top: 18px; }.help-topic-list h3 { margin: 0 7px 7px; color: #71817e; font-size: 9px; letter-spacing: .09em; text-transform: uppercase; }
.help-topic-list button { width: 100%; min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 9px; border: 0; border-radius: 6px; color: #3a4d49; background: transparent; font: 700 10px Inter,sans-serif; text-align: left; cursor: pointer; }
.help-topic-list button:hover,.help-topic-list button.active { color: #075e59; background: #fff; box-shadow: 0 4px 14px rgba(21,65,57,.07); }.help-topic-list button svg { width: 14px; }
.help-no-results { padding: 16px 8px; color: #71817e; font-size: 11px; line-height: 1.6; }
.help-article { overflow: auto; padding: clamp(24px,4vw,42px); background: #fff; }
.help-article-heading > span { display: inline-block; padding: 5px 8px; border-radius: 4px; color: #075e59; background: #e5f3ee; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.help-article-heading h2 { margin: 14px 0 10px; font: 800 clamp(24px,3vw,36px)/1.12 Manrope,sans-serif; letter-spacing: -.025em; }.help-article-heading p { margin: 0; color: #657571; font-size: 13px; line-height: 1.7; }
.help-article > section { margin-top: 30px; }.help-article section > h3 { display: flex; align-items: center; gap: 7px; margin: 0 0 14px; font-size: 13px; }.help-article section > h3 svg { width: 17px; }
.help-article ol { margin: 0; padding: 0; list-style: none; counter-reset: help-step; }.help-article li { position: relative; min-height: 38px; padding: 4px 0 16px 42px; color: #40534f; font-size: 12px; line-height: 1.55; counter-increment: help-step; }.help-article li::before { content: counter(help-step); position: absolute; left: 0; top: 0; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #08736b; font-size: 10px; font-weight: 800; }
.help-tip { padding: 17px 18px; border: 1px solid #dbe6aa; border-radius: 8px; background: #f8fbe9; }.help-tip p { margin: 0; color: #55602a; font-size: 11px; line-height: 1.6; }.help-tip p + p { margin-top: 8px; }
.help-guide-intro { margin: -5px 0 16px; color: #657571; font-size: 11px; line-height: 1.6; }
.help-guide-steps { display: grid; gap: 10px; }
.help-guide-steps details { overflow: hidden; border: 1px solid #d8e4e1; border-radius: 9px; background: #fbfdfc; transition: border-color .18s ease,box-shadow .18s ease; }
.help-guide-steps details[open] { border-color: #9fc9c2; box-shadow: 0 8px 22px rgba(21,65,57,.08); background: #fff; }
.help-guide-steps summary { min-height: 64px; display: grid; grid-template-columns: 34px minmax(0,1fr) 18px; align-items: center; gap: 11px; padding: 11px 13px; cursor: pointer; list-style: none; }
.help-guide-steps summary::-webkit-details-marker { display: none; }
.help-guide-steps summary > span:nth-child(2) { min-width: 0; }
.help-guide-steps summary strong { display: block; color: #304741; font: 800 12px/1.35 Inter,sans-serif; }
.help-guide-steps summary small { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 4px; color: #71817e; font-size: 9px; line-height: 1.4; }
.help-guide-steps summary em { padding: 3px 6px; border-radius: 999px; color: #6c5b12; background: #f6edbd; font-style: normal; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.help-guide-steps summary > svg { width: 16px; color: #63807a; transition: transform .18s ease; }
.help-guide-steps details[open] > summary > svg { transform: rotate(180deg); }
.help-guide-number { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #08736b; font-size: 10px; font-weight: 800; }
.help-guide-detail { padding: 5px 18px 18px 58px; border-top: 1px solid #edf2f0; }
.help-guide-detail ol { padding-top: 16px; }
.help-open-page { min-height: 34px; display: inline-flex; align-items: center; gap: 7px; margin-top: 5px; font-size: 10px; }
.help-open-page svg { width: 14px; }
.help-article footer { margin-top: 34px; padding-top: 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid #e3e9e7; color: #7a8986; font-size: 9px; }.help-article footer .text-button { display: flex; align-items: center; gap: 6px; }.help-article footer svg { width: 14px; }
body.help-center-open { overflow: hidden; }

/* Shareable marketing tours */
.public-landing-nav > div { display: flex; gap: 10px; }.public-role-grid { grid-template-columns: repeat(4,1fr); }.public-role-grid article { display: flex; flex-direction: column; }.public-role-grid article .text-button { margin-top: auto; padding-top: 20px; display: flex; align-items: center; gap: 6px; color: #087368; font-size: 10px; }.public-role-grid article .text-button svg { width: 14px; }
.marketing-tour-root { position: fixed; inset: 0; z-index: 1700; display: grid; place-items: center; padding: 18px; }
.marketing-tour-backdrop { position: absolute; inset: 0; border: 0; background: rgba(2,22,25,.78); backdrop-filter: blur(7px); }
.marketing-tour { position: relative; width: min(940px,96vw); overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; color: #eefcf8; background: #092f33; box-shadow: 0 35px 100px rgba(0,0,0,.42); }
.marketing-tour > header { min-height: 112px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; padding: 22px 26px; border-bottom: 1px solid rgba(255,255,255,.1); }.marketing-tour header h2,.marketing-tour header p { margin: 0; }.marketing-tour header h2 { font: 800 clamp(20px,3vw,31px) Manrope,sans-serif; }.marketing-tour header small { display: block; margin-top: 5px; color: rgba(255,255,255,.58); }.marketing-tour header .eyebrow { color: #c8df55; }.marketing-tour header .icon-button { color: #fff; border-color: rgba(255,255,255,.2); background: rgba(255,255,255,.06); }
.marketing-avatar { position: relative; width: 64px; height: 64px; display: grid; place-items: center; border: 2px solid rgba(255,255,255,.25); border-radius: 50%; color: #fff; background: var(--tour-color); box-shadow: 0 0 0 9px color-mix(in srgb,var(--tour-color) 25%,transparent); }.marketing-avatar > svg { width: 29px; }.marketing-avatar span { position: absolute; right: -4px; bottom: -1px; width: 24px; height: 24px; display: grid; place-items: center; border: 3px solid #092f33; border-radius: 50%; color: #173a36; background: #c8df55; }.marketing-avatar span svg { width: 11px; }
.marketing-stage { min-height: 390px; position: relative; display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: clamp(20px,5vw,62px); padding: clamp(38px,7vw,78px); background: radial-gradient(circle at 12% 50%,color-mix(in srgb,var(--tour-color) 36%,transparent),transparent 32%),linear-gradient(135deg,rgba(255,255,255,.025),transparent); }
.marketing-slide-number { color: color-mix(in srgb,var(--tour-color) 70%,white); font: 800 clamp(58px,10vw,105px)/1 Manrope,sans-serif; opacity: .7; }.marketing-stage > div:last-child > p { margin: 0 0 13px; color: #c8df55; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.marketing-stage h3 { max-width: 650px; margin: 0 0 20px; font: 800 clamp(30px,5vw,55px)/1.05 Manrope,sans-serif; letter-spacing: -.04em; animation: marketing-copy-in .4s ease-out; }.marketing-stage span { display: block; max-width: 670px; color: rgba(255,255,255,.72); font-size: clamp(13px,1.7vw,18px); line-height: 1.7; animation: marketing-copy-in .55s ease-out; }
@keyframes marketing-copy-in { from { transform: translateY(8px); opacity: 0; } }
.marketing-progress { display: flex; gap: 7px; padding: 0 26px 20px; }.marketing-progress button { height: 5px; flex: 1; border: 0; border-radius: 8px; background: rgba(255,255,255,.17); cursor: pointer; }.marketing-progress button.active { background: #c8df55; }
.marketing-tour > footer { display: flex; justify-content: space-between; gap: 10px; padding: 18px 26px; border-top: 1px solid rgba(255,255,255,.1); }.marketing-tour footer .outline-button { color: #fff; border-color: rgba(255,255,255,.22); background: transparent; }.marketing-tour footer .primary-button { background: #c8df55; border-color: #c8df55; color: #173a36; }
@media (max-width: 1100px) { .public-role-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 720px) {
  .top-actions .help-button { display: grid; }
  .help-drawer { width: 100vw; }.help-layout { grid-template-columns: 1fr; }.help-topic-list { max-height: 190px; border-right: 0; border-bottom: 1px solid #dbe4e1; }.help-topic-list section { display: inline; }.help-topic-list h3 { margin-top: 9px; }.help-article { padding: 24px 20px; }.help-guide-detail { padding-left: 18px; }
  .public-landing-nav > div [data-marketing-tour] { display: none; }.public-role-grid { grid-template-columns: 1fr; }
  .marketing-tour-root { padding: 0; }.marketing-tour { width: 100vw; min-height: 100dvh; border-radius: 0; }.marketing-tour > header { grid-template-columns: auto 1fr auto; padding: 18px; }.marketing-avatar { width: 50px; height: 50px; }.marketing-stage { min-height: 430px; grid-template-columns: 1fr; align-content: center; gap: 12px; padding: 34px 24px; }.marketing-slide-number { font-size: 52px; }.marketing-tour > footer { flex-wrap: wrap; padding: 14px 18px; }.marketing-tour footer [data-tour-share] { order: 3; width: 100%; }
}

/* Compact storefront banner: keep the catalog near the top. */
.shop-hero-copy > .eyebrow, .shop-hero-copy > p:not(.shop-welcome) { display: none; }
.shop-hero-copy h1 br { display: none; }
.shop-hero-image { min-height: 110px; }
.shop-hero-actions button { min-height: 36px; padding: 8px 12px; font-size: 12px; }
.shop-confidence small { display: none; }


/* Shop catalog: compact cards and an optional single-row details layout. */
.shop-catalog-heading { gap: 12px; flex-wrap: wrap; }
.shop-catalog-tools { display: flex; align-items: center; gap: 14px; }
.shop-view-switch { display: flex; padding: 3px; gap: 3px; border: 1px solid #d5dfd8; border-radius: 8px; background: white; }
.shop-view-switch button { display: grid; place-items: center; width: 36px; height: 34px; padding: 0; border: 0; border-radius: 5px; background: transparent; color: #53645d; cursor: pointer; }
.shop-view-switch button.active { color: white; background: var(--teal); }
.shop-view-switch button:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }
.shop-view-switch svg { width: 18px; height: 18px; }
.member-product-grid { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; }
.member-product-grid .store-product-card { border-radius: 8px; }
.member-product-grid .store-product-image { aspect-ratio: 3/2; }
.member-product-grid .store-product-body { padding: 10px; }
.member-product-grid .store-product-body h3 { min-height: 34px; margin: 4px 0 6px; font-size: 13px; line-height: 1.3; }
.member-product-grid .product-brand { font-size: 9px; }
.member-product-grid .product-attributes { min-height: 0; gap: 3px; }
.member-product-grid .product-attributes span { padding: 3px 4px; }
.member-product-grid .store-product-body > p { margin-top: 6px; font-size: 10px; -webkit-line-clamp: 1; }
.member-product-grid .store-product-order { padding-top: 10px; gap: 6px; }
.member-product-grid .store-product-order strong { font-size: 17px; }
.member-product-grid .product-login-gate { min-height: 34px; padding: 6px; gap: 4px; font-size: 9px; }
.member-product-grid .availability-dot { top: 6px; left: 6px; padding: 3px 5px; font-size: 8px; }
.member-product-grid > .empty-state { grid-column: 1 / -1; }
.member-product-grid.shop-details-view { grid-template-columns: minmax(0,1fr); gap: 6px; }
.shop-details-view .store-product-card { flex-direction: row; align-items: center; padding: 8px; gap: 12px; }
.shop-details-view .store-product-card:hover { transform: none; }
.shop-details-view .store-product-image { flex: 0 0 64px; width: 64px; height: 64px; aspect-ratio: 1; border-radius: 5px; }
.shop-details-view .availability-dot { display: none; }
.shop-details-view .store-product-body { min-width: 0; padding: 0; display: grid; grid-template-columns: minmax(0,1fr) auto; column-gap: 18px; align-items: center; }
.shop-details-view .store-product-body > .product-brand,
.shop-details-view .store-product-body > h3,
.shop-details-view .store-product-body > .product-attributes,
.shop-details-view .store-product-body > p { grid-column: 1; }
.shop-details-view .store-product-body h3 { min-height: 0; margin: 2px 0 4px; font-size: 13px; }
.shop-details-view .store-product-body > p { margin-top: 4px; }
.shop-details-view .store-product-order,
.shop-details-view .product-login-gate { grid-column: 2; grid-row: 1 / span 4; margin: 0; padding-top: 0; align-self: center; }
.shop-details-view .store-product-order { min-width: 145px; align-items: center; }
.shop-details-view .product-login-gate { width: auto; max-width: 190px; padding: 8px; }
@media (max-width: 1200px) {
  .member-product-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .member-product-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
}
@media (max-width: 540px) {
  .member-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .shop-catalog-tools { gap: 8px; }
  .shop-details-view .store-product-card { gap: 8px; align-items: flex-start; }
  .shop-details-view .store-product-image { flex-basis: 52px; width: 52px; height: 52px; }
  .shop-details-view .store-product-body { grid-template-columns: minmax(0,1fr); }
  .shop-details-view .store-product-order,
  .shop-details-view .product-login-gate { grid-column: 1; grid-row: auto; margin-top: 6px; min-width: 0; }
  .shop-details-view .store-product-order { justify-content: space-between; }
}


.checkout-payment-choice { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.checkout-payment-choice legend { margin-bottom: 8px; color: #334a42; font-size: 12px; font-weight: 800; }
.customer-order-form .checkout-payment-choice label { display: flex; align-items: center; gap: 9px; flex: 1 1 145px; padding: 12px; border: 1px solid #cfd8d2; border-radius: 7px; cursor: pointer; }
.customer-order-form .checkout-payment-choice input { width: 16px; height: 16px; margin: 0; accent-color: var(--teal); }
.checkout-payment-choice svg { width: 20px; height: 20px; color: var(--teal); flex-shrink: 0; }
.checkout-payment-choice label:has(input:checked) { border-color: var(--teal); background: #eef6f2; }
.checkout-payment-choice label:focus-within { outline: 2px solid var(--teal); outline-offset: 2px; }
.checkout-payment-choice strong,.checkout-payment-choice small { display: block; }
.checkout-payment-choice strong { color: #334a42; font-size: 12px; }
.checkout-payment-choice small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.checkout-payment-notice { margin: 0; padding: 10px 12px; border-radius: 6px; background: #eef6f2; color: #31564a; font-size: 12px; line-height: 1.5; }
.checkout-payment-notice.payment-required { background: #fff5de; color: #77551c; }

.shop-campaigns { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
.shop-campaigns[hidden] { display:none; }
.shop-campaign-banner { display:flex; flex-direction:column; align-items:flex-start; gap:6px; flex:1 1 260px; padding:18px 22px; border:1px solid #c6ddd3; border-radius:12px; background:#edf6ef; color:#214838; text-align:left; cursor:pointer; }
.shop-campaign-banner strong { font-size:20px; }
.shop-campaign-banner span:not(.eyebrow) { line-height:1.5; }
.shop-campaign-banner small { margin-top:4px; font-weight:700; }
.shop-campaign-banner.selected { border:2px solid #24725b; background:#dcefe3; }
.campaign-product-results { max-height:320px; overflow:auto; margin-top:12px; border:1px solid #dce1da; padding:8px; border-radius:8px; }
.campaign-product-row { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid #e5ebe7; }
.campaign-product-row > span { flex:1; min-width:0; }
.campaign-product-row small { display:block; color:var(--muted); }
.campaign-product-row label { max-width:115px; }
.campaign-product-row input { width:100%; }
.campaign-price { display:block; color:#21664e; font-size:12px; }
.campaign-original-price { display:block; color:var(--muted); font-size:12px; }

.shop-filter-line { display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; margin:8px 0; font-size:11px; color:var(--muted); }
.shop-filter-line label { display:flex; align-items:center; gap:5px; white-space:nowrap; }
.shop-filter-line select,.shop-filter-line input { min-height:30px; height:30px; padding:4px 7px; border:1px solid #d9e2dc; border-radius:6px; background:white; color:#243d35; font:inherit; font-size:12px; }
.shop-filter-line select { max-width:160px; }
.shop-filter-line input { width:78px; }
.shop-filter-line .text-button { padding:4px 6px; min-height:30px; font-size:11px; }
.shop-filter-line input:disabled,.shop-filter-line select:disabled { opacity:.55; }
.shop-filter-line input:invalid { border-color:#ad3939; }
@media(max-width:600px) { .shop-filter-line { gap:6px; } .shop-filter-line select { max-width:125px; } .shop-filter-line input { width:70px; } }

/* Buyer vendor catalog: compact checkout cards and sortable detail rows. */
.vendor-catalog-panel { min-width:0; }
.vendor-catalog-filters { display:grid; grid-template-columns:repeat(4,minmax(130px,1fr)); gap:8px 12px; padding:12px; background:var(--soft); border:1px solid var(--line); border-radius:6px; }
.vendor-catalog-filters label { font-size:.76rem; gap:3px; }
.vendor-catalog-filters input,.vendor-catalog-filters select { min-height:34px; padding:6px 8px; }
.vendor-catalog-filters small { font-size:.68rem; }
.vendor-catalog-filters .vendor-catalog-search { grid-column:span 3; }
.vendor-catalog-filters .admin-form-actions { margin:0; align-self:end; }
.vendor-catalog-help { color:var(--muted); font-size:.76rem; margin:10px 0; }
.vendor-catalog-body { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:14px; align-items:start; }
.vendor-catalog-body:has([data-catalog-cart]:empty) { grid-template-columns:minmax(0,1fr); }
.vendor-catalog-body>[data-catalog-results] { min-width:0; }
.vendor-catalog-cart:empty { display:none; }
.vendor-catalog-cart { position:sticky; top:12px; padding:12px; background:#f4f8f7; border:1px solid #c2d7d1; border-radius:6px; max-height:85vh; overflow:auto; }
.vendor-catalog-cart h3 { margin:0 0 6px; }.vendor-catalog-cart p { font-size:.77rem; }
.vendor-catalog-cart .admin-table { min-width:0; }.vendor-catalog-cart .admin-table thead { display:none; }
.vendor-catalog-cart .admin-table tbody { display:block; }.vendor-catalog-cart .admin-table tr { display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--line); padding:8px 0; }
.vendor-catalog-cart .admin-table td { border:0; padding:4px; font-size:.76rem; }.vendor-catalog-cart .admin-table td:first-child { grid-column:1/-1; }
.vendor-catalog-cart .admin-table td:nth-child(4)::before { content:'Units: '; }.vendor-catalog-cart .admin-table input { width:70px; padding:5px; }
.vendor-catalog-cart button { padding:7px 10px; font-size:.77rem; }
.vendor-catalog-toolbar { display:flex; gap:8px 12px; align-items:center; flex-wrap:wrap; margin-bottom:8px; font-size:.76rem; }
.vendor-catalog-toolbar>div:first-child { margin-right:auto; }.vendor-catalog-toolbar small { display:block; color:var(--muted); font-size:.7rem; }
.vendor-catalog-toolbar label { display:flex; align-items:center; gap:6px; margin:0; white-space:nowrap; }
.vendor-catalog-view-switch { display:flex; }.vendor-catalog-view-switch button,.vendor-catalog-pages button { border:1px solid var(--line); background:white; padding:6px 9px; color:var(--ink); cursor:pointer; border-radius:4px; }
.vendor-catalog-view-switch button[aria-pressed=true],.vendor-catalog-pages button[aria-current=page] { background:var(--teal); color:white; border-color:var(--teal); }
.vendor-catalog-toolbar .outline-button { padding:6px 9px; font-size:.76rem; }
.vendor-catalog-pages { display:flex; align-items:center; flex-wrap:wrap; gap:4px; margin:8px 0; font-size:.75rem; }
.vendor-catalog-pages label { display:flex; align-items:center; gap:5px; margin:0 0 0 auto; white-space:nowrap; }.vendor-catalog-pages button:disabled { opacity:.4; cursor:default; }
.vendor-catalog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px; }
.vendor-catalog-card.pos-product { min-height:0; padding:9px; gap:5px; border-radius:5px; }.vendor-catalog-card:hover { border-color:var(--teal); }
.vendor-catalog-card-heading { display:flex; align-items:center; gap:8px; min-width:0; }.vendor-catalog-card-heading>div { min-width:0; }
.vendor-catalog-card-heading strong { font-size:.84rem; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.vendor-catalog-card-heading small { display:block; color:var(--muted); font-size:.72rem; margin-top:3px; }
.vendor-catalog-image { position:relative; display:flex; flex:none; align-items:center; justify-content:center; width:54px; height:54px; border:1px solid var(--line); background:#f0f4f2; border-radius:4px; overflow:hidden; color:var(--muted); font-size:.6rem; }
.vendor-catalog-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:white; }
.vendor-catalog-attributes,.vendor-catalog-offer { color:var(--muted); font-size:.69rem; line-height:1.35; }.vendor-catalog-offer { overflow-wrap:anywhere; }
.vendor-catalog-metrics,.vendor-catalog-dates { display:flex; align-items:center; justify-content:space-between; gap:5px; font-size:.71rem; }
.vendor-catalog-metrics strong { font-size:.91rem; color:var(--teal-dark); }.vendor-catalog-metrics strong small { font-size:.66rem; font-weight:400; }
.vendor-catalog-badge { background:#e7f2ee; color:#21594a; border-radius:3px; padding:2px 5px; font-size:.65rem; }
.vendor-catalog-order { display:flex; gap:6px; align-items:center; margin-top:auto; }.vendor-catalog-order label { margin:0; }.vendor-catalog-order input { width:68px; min-height:30px; padding:4px 6px; }.vendor-catalog-order button { flex:1; padding:6px 12px; min-height:30px; font-size:.76rem; }
.vendor-catalog-unavailable { font-size:.7rem; color:var(--muted); }
.vendor-catalog-details .admin-table { font-size:.74rem; }.vendor-catalog-details th,.vendor-catalog-details td { padding:7px 8px; }.vendor-catalog-details th button { background:none; border:0; color:inherit; font:inherit; font-weight:700; padding:0; white-space:nowrap; cursor:pointer; }
.vendor-catalog-details td small { display:block; font-size:.65rem; color:var(--muted); }.vendor-catalog-detail-name { display:flex; gap:7px; align-items:center; min-width:210px; }.vendor-catalog-detail-name .vendor-catalog-image { width:40px; height:40px; }.vendor-catalog-details .vendor-catalog-order { min-width:120px; }
@media(max-width:1200px) { .vendor-catalog-body { grid-template-columns:minmax(0,1fr); }.vendor-catalog-cart { position:static; max-height:none; }.vendor-catalog-cart .admin-table tr { grid-template-columns:2fr repeat(5,1fr); }.vendor-catalog-cart .admin-table td:first-child { grid-column:auto; } }
@media(max-width:650px) { .vendor-catalog-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }.vendor-catalog-filters .vendor-catalog-search { grid-column:1/-1; }.vendor-catalog-grid { grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); }.vendor-catalog-cart .admin-table tr { grid-template-columns:1fr 1fr; }.vendor-catalog-cart .admin-table td:first-child { grid-column:1/-1; }.vendor-catalog-pages label { margin-left:0; } }

.vendor-catalog-order .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Compact catalog filter strip. */
.vendor-catalog-panel>.admin-panel-heading { margin-bottom:8px; }
.vendor-catalog-panel>.admin-panel-heading h2 { font-size:1.2rem; }
.vendor-catalog-filters { display:flex; flex-wrap:wrap; align-items:flex-end; gap:6px 8px; padding:8px; margin-bottom:10px; }
.vendor-catalog-filters>label { flex:1 1 125px; min-width:0; max-width:190px; font-size:.68rem; gap:2px; margin:0; }
.vendor-catalog-filters>label.vendor-catalog-store { flex-basis:165px; max-width:220px; }
.vendor-catalog-filters>label.vendor-catalog-search { flex:0 1 145px; max-width:160px; grid-column:auto; }
.vendor-catalog-filters input:not([type=checkbox]),.vendor-catalog-filters select { width:100%; min-height:29px; height:29px; padding:4px 6px; font-size:.74rem; border-radius:4px; }
.vendor-catalog-filters .admin-form-actions { display:flex; gap:5px; padding:0; margin:0; }
.vendor-catalog-filters .admin-form-actions button { padding:5px 9px; min-height:29px; font-size:.72rem; }
.vendor-catalog-inventory-toggles { display:flex; flex-wrap:wrap; align-items:center; gap:4px; border:0; padding:0; margin:0; min-width:0; }
.vendor-catalog-inventory-toggles legend { font-size:.66rem; color:var(--muted); padding:0 0 2px; }
.vendor-catalog-inventory-toggles label { display:flex; flex-direction:row; align-items:center; gap:4px; border:1px solid var(--line); padding:5px 7px; border-radius:4px; background:white; font-size:.7rem; cursor:pointer; line-height:17px; }
.vendor-catalog-inventory-toggles label:has(input:checked) { background:#e5f2ed; border-color:#8db8a9; color:#174b3b; }
.vendor-catalog-inventory-toggles input[type=checkbox] { width:13px; height:13px; min-height:0; padding:0; margin:0; accent-color:var(--teal); }
@media(max-width:650px) { .vendor-catalog-filters>label,.vendor-catalog-filters>label.vendor-catalog-search { flex:1 1 125px; max-width:none; }.vendor-catalog-inventory-toggles { flex-basis:100%; } }

.vendor-catalog-view-switch button { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; padding:6px; }
.vendor-catalog-view-switch button svg { flex:none; }

.vendor-catalog-filter-actions { display:flex; flex-direction:column; gap:3px; align-items:flex-end; flex:0 0 auto; }
.vendor-catalog-filter-actions .vendor-catalog-view-switch { gap:3px; }
.vendor-catalog-filter-actions .vendor-catalog-view-switch button { width:25px; height:23px; padding:3px; }
.vendor-catalog-footer { margin-top:12px; padding-top:10px; border-top:1px solid var(--line); }

.vendor-catalog-bunch-progress { margin-top: 14px; border-top: 1px solid #cbdad5; padding-top: 10px; }
.vendor-catalog-bunch-progress h4 { margin: 0 0 8px; }
.vendor-catalog-bunch-group { padding: 9px 0; border-bottom: 1px solid #dce5e1; font-size: .8rem; }
.vendor-catalog-bunch-group > strong, .vendor-catalog-bunch-group > small { display: block; }
.vendor-catalog-bunch-group > small { color: #53655f; margin-top: 3px; }
.vendor-catalog-box-meter { display: flex; justify-content: space-between; gap: 8px; margin-top: 8px; }
.vendor-catalog-bunch-group progress { display: block; width: 100%; height: 12px; margin: 4px 0 6px; accent-color: #18765b; }
.vendor-catalog-bunch-group p { margin: 5px 0 0; font-weight: 600; }
.vendor-catalog-bunch-group .box-ready { color: #176347; }
.vendor-catalog-bunch-group .box-incomplete { color: #88500b; }

/* Compact ordering controls and full catalog image preview. */
button.vendor-catalog-image { padding: 0; cursor: zoom-in; }
button.vendor-catalog-image:disabled { cursor: default; }
.vendor-catalog-order { gap: 4px; }
.vendor-catalog-order input { width: 30px; min-width: 0; height: 28px; min-height: 28px; padding: 3px 4px; font-size: .76rem; }
.vendor-catalog-order button { flex: 0 0 28px; width: 28px; height: 28px; min-height: 28px; padding: 0; font-size: 1.2rem; line-height: 1; display: inline-flex; align-items: center; justify-content: center; }
.vendor-catalog-details .vendor-catalog-order { min-width: 88px; }
.modal.vendor-catalog-image-modal { width: 75vw; height: 80vh; max-height: 90vh; display: flex; flex-direction: column; }
.vendor-catalog-image-modal .modal-header { flex: 0 0 auto; padding: 10px 14px; gap: 12px; }
.vendor-catalog-image-modal .modal-header h2 { font-size: 1rem; overflow-wrap: anywhere; }
.vendor-catalog-image-modal .modal-body { flex: 1; min-height: 0; padding: 12px; display: flex; align-items: center; justify-content: center; }
.vendor-catalog-full-image { width: 100%; height: 100%; object-fit: contain; }
@media(max-width:650px) { .modal.vendor-catalog-image-modal { width: 100%; height: 75vh; } }

.vendor-cart-line-issue:not(:empty) { margin-top: 5px; padding: 6px; border-left: 3px solid #b33d25; background: #fff0eb; color: #8b2e1c; font-size: .75rem; }


.vendor-catalog-order .vendor-catalog-qoh { font-size: .7rem; font-weight: 400; color: var(--muted); white-space: nowrap; }
.vendor-catalog-card-order { margin-top: auto; }
.vendor-catalog-card-order > .vendor-catalog-offer { display: block; margin-bottom: 4px; }

.vendor-cart-items { display: grid; gap: 8px; }
.vendor-cart-item { min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 5px; background: white; display: flex; flex-direction: column; gap: 6px; }
.vendor-cart-product-info { display: flex; flex-direction: column; gap: 6px; }
.vendor-cart-item .vendor-catalog-image { padding: 0; }
.vendor-cart-quantity-row, .vendor-cart-line-total { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 5px; font-size: .74rem; }
.vendor-cart-quantity-row label { display: flex; align-items: center; gap: 4px; margin: 0; }
.vendor-cart-quantity-row input { width: 58px; min-width: 0; height: 28px; padding: 3px 4px; }
.vendor-cart-quantity-row > span { color: var(--muted); font-size: .7rem; }
.vendor-cart-line-total button { padding: 4px 7px; }
@media(min-width:651px) and (max-width:1200px) { .vendor-cart-items { grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); } }

.vendor-cart-group { margin-top: 12px; }
.vendor-cart-group h4, .vendor-cart-totals h4 { margin: 0 0 7px; font-size: .9rem; }
.vendor-cart-totals { margin-top: 14px; padding-top: 10px; border-top: 1px solid #c2d7d1; font-size: .8rem; }
.vendor-cart-totals > div { display: flex; justify-content: space-between; gap: 10px; margin: 6px 0; }
.vendor-cart-totals > small { color: var(--muted); }
.vendor-cart-totals .vendor-cart-grand-total { border-top: 1px solid var(--line); padding-top: 8px; font-size: .95rem; font-weight: 700; }

.top-actions .buyer-cart-button { display: grid; color: var(--teal); background: #eef8f5; border-color: #c7e3da; }
.top-actions .buyer-cart-button:hover { color: white; background: var(--teal); }
.top-actions .buyer-cart-button[hidden] { display: none; }

.top-actions .buyer-cart-button { position: relative; overflow: visible; }
.buyer-cart-count { position: absolute; top: -6px; right: -7px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 10px; background: #b63c29; color: white; border: 1px solid white; display: grid; place-items: center; font-size: 10px; font-weight: 700; line-height: 1; pointer-events: none; }
.buyer-cart-count[hidden] { display: none; }

.vendor-catalog-size-color { display: block; font-size: .76rem; line-height: 1.3; margin-top: 3px; overflow-wrap: anywhere; }

.vendor-cart-vendor-group { margin: 10px 0 14px; }
.vendor-cart-vendor-group h5 { margin: 0 0 6px; font-size: .8rem; color: var(--teal-dark); }
.vendor-cart-vendor-group .vendor-catalog-bunch-progress { margin-top: 6px; padding-top: 6px; }

.vendor-cart-allocation-date { display: grid; gap: 4px; font-size: .75rem; }
.vendor-cart-allocation-date input { min-width: 0; width: 100%; padding: 5px; }
.vendor-cart-allocation-date small { color: var(--muted); font-size: .68rem; }

.vendor-catalog-footer { padding-top: 10px; border-top: 1px solid var(--line); }
.vendor-catalog-toolbar select, .vendor-catalog-pages input {
  box-sizing: border-box; width: auto; min-width: 0; height: 30px; min-height: 30px;
  margin: 0; border: 1px solid #c2d0cb; border-radius: 4px; background-color: white;
  color: var(--ink); font: inherit; line-height: normal; padding: 4px 7px;
}
.vendor-catalog-toolbar [data-catalog-sort-select] { width: 205px; max-width: 100%; }
.vendor-catalog-toolbar [data-catalog-page-size] { width: 70px; }
.vendor-catalog-pages [data-catalog-jump] { width: 64px; text-align: center; }
.vendor-catalog-toolbar select:focus-visible, .vendor-catalog-pages input:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.vendor-catalog-pages button, .vendor-catalog-toolbar .outline-button { box-sizing: border-box; min-height: 30px; padding: 4px 8px; }
@media(max-width:650px) { .vendor-catalog-toolbar { gap: 8px; }.vendor-catalog-toolbar > div:first-child { flex-basis: 100%; }.vendor-catalog-toolbar [data-catalog-sort-select] { width: 185px; } }

.vendor-catalog-body > [data-catalog-results] { scroll-margin-top: 85px; }

.vendor-catalog-heading-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.vendor-catalog-heading-actions label { display: flex; align-items: center; gap: 6px; margin: 0; font-size: .75rem; }
.vendor-catalog-heading-actions select { width: 76px; height: 30px; padding: 4px 7px; border: 1px solid var(--line); border-radius: 4px; background: white; color: var(--ink); }
@media(min-width:901px) {
  .vendor-catalog-panel.vendor-catalog-filters-left { display: grid; grid-template-columns: 180px minmax(0,1fr); align-items: start; gap: 12px; overflow: visible; }
  .vendor-catalog-filters-left > .admin-panel-heading { grid-column: 1/-1; margin-bottom: 0; }
  .vendor-catalog-filters-left > .vendor-catalog-filters { display: flex; flex-direction: column; align-items: stretch; gap: 9px; margin: 0; position: sticky; top: 84px; align-self: start; max-height: calc(100vh - 100px); overflow-y: auto; overscroll-behavior: contain; }
  .vendor-catalog-filters-left > .vendor-catalog-filters > label { flex: none; width: 100%; max-width: none; }
  .vendor-catalog-filters-left > .vendor-catalog-body { min-width: 0; }
  .vendor-catalog-filters-left .vendor-catalog-filter-actions { width: 100%; }
}

/* Shared shopping and checkout catalog controls. */
.shop-filter-line [hidden] { display:none !important; }
.shop-filter-line { flex-wrap:wrap; }
#shop-vendor-packing, #pos-vendor-packing { padding:12px; border:1px solid #d4ddd6; border-radius:8px; margin:12px 0; font-size:13px; }
.vendor-cart-quantity { width:72px; padding:5px; }
.checkout-vendor-results { grid-column:1/-1; }
.checkout-vendor-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:8px; }
.checkout-catalog-list { grid-template-columns:1fr !important; }
.checkout-catalog-list .checkout-vendor-grid { grid-template-columns:1fr; }
.checkout-catalog-list .store-product-card { display:grid; grid-template-columns:90px 1fr; }
.checkout-catalog-list .store-product-image { min-height:90px; height:100%; }

.member-product-grid.has-vendor-cards:not(.shop-details-view) { grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr)); gap:8px; }

.customer-vendor-cart-group { min-width:0; }
.customer-vendor-cart-group .vendor-cart-items { grid-template-columns:minmax(0,1fr); }

/* Keep order totals after cart items in the same scrolling surface. */
.pos-ticket { align-self:start; min-height:0; }
.pos-cart-lines { flex:none; max-height:none; overflow:visible; }
.cart-drawer { overflow-y:auto; }
.cart-drawer > * { flex-shrink:0; }
.cart-drawer .drawer-lines { flex:none; overflow:visible; }
.mobile-filter-toggle { display:none; }
@media(max-width:650px) {
  .mobile-filter-toggle { display:block; width:100%; margin:8px 0; min-height:40px; text-align:left; }
  .mobile-catalog-filters:not(.filters-expanded) > .mobile-filter-content { display:none; }
}

/* Store and vendor cards share one uninterrupted checkout grid. */
.checkout-vendor-results { display:contents; }

.store-truck-day { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; min-width:0; }
.store-truck-day > label { min-width:0; }
.store-truck-day input { width:100%; min-width:0; }
@media(max-width:600px) { .store-truck-day { gap:8px; } }

.store-inventory-label { display:block; color:var(--teal-dark); font-size:11px; font-weight:600; margin:3px 0; }
.shop-details-view .store-product-body > .store-inventory-label { grid-column:1; }

/* Shop shares Checkout's compact catalog presentation. */
#shop-view .shop-search-toolbar { margin:0; }
#shop-view .shop-search-toolbar .pos-search { width:100%; }
#shop-view #category-strip { display:none; }
#product-grid.checkout-style-shop-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
#product-grid.checkout-style-shop-grid.shop-details-view { grid-template-columns:minmax(0,1fr); }
@media(max-width:1200px) { #product-grid.checkout-style-shop-grid:not(.shop-details-view) { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:650px) { #product-grid.checkout-style-shop-grid:not(.shop-details-view) { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Compact Shop edges and inline catalog search. */
.b2b-storefront .member-content:has(#shop-view.active) { padding:10px 12px 80px; }
#shop-view #catalog-start { scroll-margin-top:82px; }
#shop-view .shop-filter-line { margin:4px 0; }
#shop-view .shop-compact-search { flex:0 1 220px; min-width:140px; }
#shop-view .shop-compact-search input { width:100%; }
#shop-view #product-count { margin-left:auto; font-size:11px; }
@media(max-width:650px) {
  .b2b-storefront .member-content:has(#shop-view.active) { padding:8px 8px 90px; }
  #shop-mobile-filters:not(.filters-expanded) > .mobile-filter-content { display:block; }
  #shop-mobile-filters:not(.filters-expanded) .mobile-filter-content > :not(.shop-basic-filters),
  #shop-mobile-filters:not(.filters-expanded) .shop-basic-filters > :not(.shop-compact-search) { display:none; }
}

.catalog-product-count { margin-left:auto; font-size:11px; }

body:not(:has(#member-app.active #shop-view.active)) .top-actions .customer-cart-button { display:none; }

.customer-cart-validation { padding:10px; border-left:3px solid #b33d25; background:#fff0eb; color:#8b2e1c; font-size:13px; line-height:1.45; }
#member-checkout[aria-busy="true"] { cursor:wait; opacity:.75; }

/* Buyer cart overlays the catalog like the customer cart. */
.vendor-catalog-body { grid-template-columns:minmax(0,1fr); }
.sales-demand-controls { grid-column:1/-1; flex:0 0 100%; width:100%; min-width:0; border-top:1px solid var(--border,#ddd); padding-top:12px; }
.sales-demand-controls-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.sales-demand-header-actions { display:flex; align-items:center; justify-content:flex-end; margin-left:auto; gap:4px; }
.sales-demand-header-actions .icon-button { width:30px; height:30px; background:transparent; border-color:transparent; color:var(--muted,#666); }
.sales-demand-header-actions .icon-button:hover { color:var(--ink); background:var(--white); border-color:var(--line); }
.sales-demand-header-actions .icon-button:focus-visible { outline:2px solid var(--teal-dark); outline-offset:2px; }
.sales-demand-header-actions svg { width:16px; height:16px; pointer-events:none; }
.sales-demand-header-actions [data-demand-toggle][aria-expanded="true"] svg { transform:rotate(180deg); }
.sales-demand-controls h3 { margin:0; font-size:15px; }
.sales-demand-controls-content { display:flex; flex-wrap:wrap; align-items:end; gap:10px; margin-top:10px; }
.sales-demand-controls-content[hidden] { display:none; }
.sales-demand-period-row { display:flex; flex-wrap:wrap; align-items:flex-end; gap:4px 10px; width:100%; }
.sales-demand-period-row > label { flex:0 1 240px; min-width:0; }
.sales-demand-controls [data-demand-status] { font-size:12px; flex:1 1 140px; padding:7px 0; color:var(--muted,#666); }
.sales-demand-custom { display:flex; flex-wrap:wrap; gap:8px; align-items:end; }
.sales-demand-custom[hidden],.sales-demand-panel[hidden] { display:none; }
.vendor-catalog-body:has(> .sales-demand-panel:not([hidden])) { grid-template-columns:300px minmax(0,1fr); }
.sales-demand-panel { position:sticky; top:85px; max-height:calc(100vh - 110px); overflow:auto; padding:14px; border:1px solid var(--border,#ddd); border-radius:10px; background:var(--surface,#fff); font-size:13px; }
.sales-demand-heading { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.sales-demand-heading h3 { margin:0; }
.sales-demand-selection { color:var(--muted,#666); }
.sales-demand-category { border-top:1px solid var(--border,#ddd); padding:10px 0; }
.sales-demand-panel summary { cursor:pointer; overflow-wrap:anywhere; }
.sales-demand-panel small { display:block; color:var(--muted,#666); margin-top:4px; }
.sales-demand-order { margin:6px 0 6px 12px; }
.sales-demand-order ul { list-style:none; padding:0 0 0 10px; }
.sales-demand-order li { border-left:2px solid var(--border,#ddd); padding:6px 8px; margin:6px 0; }
.sales-demand-order li span { display:block; margin-top:5px; }
.sales-demand-panel .sales-demand-unmapped { color:#925000; }
.vendor-cart-demand-period { padding:5px 0; font-weight:600; }
.vendor-catalog-filters-left .sales-demand-controls { flex:none; }
.vendor-catalog-filters-left .sales-demand-controls-content { flex-direction:column; align-items:stretch; }
@media(max-width:1000px) {
  .vendor-catalog-body:has(> .sales-demand-panel:not([hidden])) { grid-template-columns:minmax(0,1fr); }
  .sales-demand-panel { position:static; max-height:400px; }
}
.buyer-cart-drawer { position:fixed; z-index:80; top:72px; right:0; bottom:0; width:min(420px,100vw); background:#f4f8f7; box-shadow:-16px 0 40px rgba(23,33,43,.2); overflow-y:auto; }
.buyer-cart-drawer[hidden] { display:none; }
.buyer-cart-drawer .drawer-header { background:white; }
.buyer-cart-period { display:flex; flex-direction:column; gap:6px; padding:12px 17px; background:white; border-bottom:1px solid #dce3df; font-weight:600; }
.buyer-cart-period select { width:100%; min-width:0; min-height:38px; }
.buyer-cart-period small { font-weight:400; color:#637169; }
.buyer-cart-drawer .vendor-catalog-cart { position:static; max-height:none; overflow:visible; border:0; border-radius:0; }
.buyer-cart-drawer .vendor-cart-items { grid-template-columns:minmax(0,1fr); }
@media(max-width:800px) { .buyer-cart-drawer { top:64px; bottom:0; } }

/* Customer order history */
#orders-view { max-width: 1440px; margin-inline: auto; }
.customer-orders-heading { align-items: center; gap: 16px; margin-bottom: 18px; }
.customer-orders-heading h1 { font-size: 26px; margin-bottom: 6px; }
.customer-orders-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.customer-order-count { color: var(--muted); font-size: 12px; white-space: nowrap; }
.customer-orders-list { display: grid; gap: 10px; }
.customer-order { appearance: none; width: 100%; display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(110px, .65fr) minmax(0, 1fr) minmax(100px, auto); align-items: center; gap: 20px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); color: var(--ink); text-align: left; line-height: 1.5; transition: border-color .15s, background .15s; }
.customer-order:hover { border-color: var(--teal); background: #f8fcfb; }
.customer-order:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
.customer-order-main, .customer-order-progress, .customer-order-delivery { display: grid; gap: 4px; min-width: 0; }
.customer-order-number { font-size: 13px; font-weight: 750; overflow-wrap: anywhere; }
.customer-order-meta, .customer-order-products { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.customer-order-products { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.customer-order-label { color: var(--muted); font-size: 11px; }
.customer-order-date { font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.customer-order-status { justify-self: start; display: inline-flex; padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 700; background: #eef3f7; color: #38526a; }
.customer-order-status--complete { background: #e8f5ed; color: #236642; }
.customer-order-status--cancelled { background: #f4eded; color: #874444; }
.customer-order-total { display: grid; justify-items: end; gap: 7px; white-space: nowrap; }
.customer-order-total strong { font-size: 18px; font-variant-numeric: tabular-nums; letter-spacing: -.3px; }
.customer-order-total > span { color: var(--teal); font-size: 11px; font-weight: 650; }
.customer-orders-empty { padding: 48px 24px; text-align: center; background: white; border: 1px solid var(--line); border-radius: 10px; }
.customer-orders-empty > svg { width: 32px; height: 32px; color: var(--teal); margin-bottom: 14px; }
.customer-orders-empty h2 { font-size: 18px; margin-bottom: 8px; }
.customer-orders-empty p { color: var(--muted); font-size: 13px; margin: 0; }
@media (max-width: 900px) {
  .customer-order { grid-template-columns: minmax(0, 1fr) auto; gap: 14px 18px; padding: 16px; }
  .customer-order-main { grid-column: 1; grid-row: 1; }
  .customer-order-total { grid-column: 2; grid-row: 1; align-self: start; }
  .customer-order-progress { grid-column: 2; grid-row: 2; justify-items: end; text-align: right; }
  .customer-order-status { justify-self: end; }
  .customer-order-delivery { grid-column: 1; grid-row: 2; }
}
@media (max-width: 480px) {
  .customer-orders-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .customer-orders-heading h1 { font-size: 23px; }
  .customer-order { gap: 12px; padding: 14px; }
  .customer-order-total strong { font-size: 17px; }
  .customer-order-number { font-size: 12px; }
}

/* Order detail and printable order document */
.modal.order-detail-modal { width: min(900px, 100%); }
.order-detail-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 20px; }
.order-detail-heading h2 { font-size: 21px; margin: 4px 0; overflow-wrap: anywhere; }
.order-detail-heading p, .order-detail-heading span { font-size: 12px; color: var(--muted); margin: 0; }
.order-detail-heading > strong { font-size: 12px; color: var(--teal); }
.order-detail-info { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; padding: 16px; background: var(--soft); border-radius: 8px; margin-bottom: 12px; }
.order-detail-info > div { display: grid; gap: 4px; min-width: 0; }
.order-detail-info small { color: var(--muted); font-size: 11px; }
.order-detail-info strong { font-size: 12px; overflow-wrap: anywhere; }
.order-detail-notice { color: var(--teal-dark); font-size: 13px; line-height: 1.6; }
.order-detail-line { display: grid; grid-template-columns: 84px minmax(0,1fr) auto; gap: 16px; align-items: start; padding: 20px 0; border-bottom: 1px solid var(--line); }
.order-detail-image { display: grid; place-items: center; position: relative; width: 84px; height: 84px; border: 1px solid var(--line); background: var(--soft); border-radius: 7px; overflow: hidden; color: var(--muted); font-size: 11px; }
.order-detail-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: white; }
.order-detail-description { min-width: 0; overflow-wrap: anywhere; }
.order-detail-description h3 { font-size: 14px; line-height: 1.5; margin: 0 0 6px; }
.order-detail-description p { font-size: 13px; line-height: 1.6; white-space: pre-wrap; margin: 0 0 8px; }
.order-detail-description small { font-size: 11px; color: var(--muted); }
.order-detail-price { display: grid; gap: 6px; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.order-detail-price strong { font-size: 15px; }
.order-detail-price span { color: var(--muted); font-size: 12px; }
.order-detail-totals { max-width: 320px; margin: 20px 0 0 auto; }
.order-detail-totals .summary-total { display: flex; justify-content: space-between; gap: 20px; }
.order-detail-reference { color: var(--muted); font-size: 11px; margin: 24px 0 0; }
@media (max-width: 560px) {
  .order-detail-modal .modal-body { padding: 16px; }
  .order-detail-heading h2 { font-size: 16px; }
  .order-detail-line { grid-template-columns: 60px minmax(0,1fr); gap: 12px; }
  .order-detail-image { width: 60px; height: 60px; }
  .order-detail-price { grid-column: 2; display: flex; flex-direction: row-reverse; align-items: center; justify-content: space-between; }
  .order-detail-totals { max-width: none; }
}
@media print {
  body:has(.order-detail-modal) > :not(#modal-root) { display: none !important; }
  body:has(.order-detail-modal), body:has(.order-detail-modal) #modal-root { background: white; margin: 0; padding: 0; height: auto; overflow: visible; }
  #modal-root:has(.order-detail-modal) .modal-backdrop { position: static; display: block; padding: 0; background: white; }
  #modal-root .modal.order-detail-modal { position: static; display: block; width: 100%; height: auto; max-height: none; overflow: visible; border: 0; border-radius: 0; box-shadow: none; }
  .order-detail-modal .modal-header, .order-detail-modal .modal-footer { display: none !important; }
  .order-detail-modal .modal-body { overflow: visible; max-height: none; padding: 0; }
  .order-detail-line { break-inside: avoid; grid-template-columns: 64px minmax(0,1fr) auto; }
  .order-detail-image { width: 64px; height: 64px; }
  .order-detail-price { grid-column: auto; display: grid; }
  .order-detail-totals, .order-detail-info { break-inside: avoid; }
}

.order-company-logo { display: block; width: auto; max-width: 180px; height: 60px; object-fit: contain; object-position: left center; margin-bottom: 12px; }
.order-company-logo[hidden] { display: none; }
@media (max-width: 560px) { .order-company-logo { max-width: 150px; height: 48px; } }
@media print { .order-company-logo { max-width: 180px; height: 60px; break-inside: avoid; } }

/* Keep cart dates and removal controls within narrow cart rows. */
.customer-vendor-cart-group .vendor-cart-allocation-date { min-width: 0; }
.customer-vendor-cart-group .vendor-cart-allocation-date input { box-sizing: border-box; max-width: 100%; min-height: 36px; font: inherit; }
.customer-vendor-cart-group .vendor-cart-allocation-date small { line-height: 1.45; }
.pos-cart-line { grid-template-columns: minmax(0,1fr) auto; }
.pos-cart-line > div { min-width: 0; }
.pos-cart-line strong, .pos-cart-line small { overflow-wrap: anywhere; }
.pos-line-controls { flex-wrap: wrap; }
.pos-line-controls button { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 30px; width: 30px; height: 30px; min-width: 30px; padding: 0; line-height: 1; }
.pos-line-controls button svg { display: block; width: 15px; height: 15px; flex: 0 0 15px; margin: 0; }
.vendor-cart-line-total button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 30px; }
.vendor-cart-line-total button svg { width: 15px; height: 15px; flex-shrink: 0; margin: 0; }

.customer-lookup-message { margin: 14px 0 8px; font-size: 12px; color: var(--muted); line-height: 1.5; }
.customer-lookup-results { display: grid; gap: 7px; max-height: 48vh; overflow-y: auto; padding: 3px; }
.member-result.customer-lookup-result { display: grid; grid-template-columns: minmax(80px, .65fr) minmax(0, 1.5fr) auto; align-items: center; gap: 14px; margin: 0; padding: 12px; color: var(--ink); line-height: 1.45; }
.customer-lookup-number { font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.customer-lookup-name { font-size: 13px; overflow-wrap: anywhere; }
.customer-lookup-result > span:last-child { color: var(--teal); }
.customer-lookup-result:hover { background: #f0f8f6; border-color: var(--teal); }
.customer-lookup-result:focus-visible { outline: 2px solid var(--teal); outline-offset: 1px; }
#pos-member-status { flex-wrap: wrap; column-gap: 9px; row-gap: 3px; }
#pos-member-status > span { overflow-wrap: anywhere; }

/* Extra left breathing room for cart contents. */
#member-cart-lines, #scan-cart-lines, #pos-cart-lines { padding-left: 5px; }
.buyer-cart-drawer .vendor-catalog-cart { padding-left: 17px; }

.buyer-cart-drawer .vendor-cart-allocation-date { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.buyer-cart-drawer .vendor-cart-allocation-date input { flex: 1; width: auto; min-width: 0; min-height: 32px; }
.buyer-cart-drawer .buyer-cart-remove { flex: 0 0 30px; width: 30px; height: 30px; min-width: 30px; padding: 0; }
.buyer-cart-drawer .buyer-cart-remove svg { width: 15px; height: 15px; margin: 0; }

/* Receiving mapping stays scrollable independently of single/bulk receiving forms. */
.receiving-map-backdrop { position:fixed; inset:0; z-index:2200; border-radius:0; }
.receiving-map-backdrop .bulk-product-picker { width:min(920px,100%); height:min(780px,calc(100dvh - 32px)); grid-template-rows:auto minmax(0,1fr); }
.receiving-map-backdrop [data-map-body] { overflow:auto; min-height:0; padding:16px; }
.receiving-map-backdrop label { display:flex; flex-direction:column; gap:5px; margin:10px 0; }
.receiving-map-backdrop input,.receiving-map-backdrop select { width:100%; min-width:0; padding:8px; border:1px solid var(--line); border-radius:4px; }
.receiving-map-backdrop summary { cursor:pointer; font-weight:600; padding:10px 0; }
.receiving-map-backdrop [data-map-error] { color:#a32222; white-space:pre-wrap; }

.po-receipt-status { display:inline-block; white-space:nowrap; border-radius:12px; padding:4px 8px; font-size:12px; font-weight:600; }
.po-receipt-pending { background:#edf0f3; color:#465260; }
.po-receipt-partial { background:#fff0cf; color:#805000; }
.po-receipt-complete { background:#e2f3e8; color:#21683b; }

.admin-panel.po-detail-page { padding-left:5px; }

.po-totals-row > th, .po-totals-row > td { font-weight:700; border-top:2px solid var(--line); background:#edf4f0; }

/* Product mapping stays with each bulk receipt line. */
.bulk-receipt-detail { min-width: 280px; max-width: 420px; white-space: normal; }
.bulk-receipt-description { margin: 4px 0 8px; white-space: pre-wrap; overflow-wrap: anywhere; color: #64748b; }
.bulk-receipt-mapping-label { display: block; margin-top: 8px; color: #64748b; }
.bulk-receipt-map-action { display: flex; align-items: center; gap: 12px; margin-top: 10px; flex-wrap: wrap; }
.bulk-receipt-map-action span { font-size: 12px; color: #92400e; }
.bulk-receipt-unmapped { background: #fffbeb; }
.bulk-receipt-unmapped > td { padding: 5px 9px; }
.bulk-unmapped-status { color: #92400e; }
.bulk-map-controls { display: flex; align-items: center; gap: 6px; min-width: 0; }
.bulk-map-picker { display: grid; gap: 5px; width: 330px; white-space: normal; }
.bulk-map-picker[hidden] { display: none; }
.bulk-map-filter-row, .bulk-map-actions { display: flex; align-items: center; gap: 6px; }
.bulk-map-picker input:not([type="checkbox"]), .bulk-map-picker select { height: 30px; min-height: 30px; min-width: 0; padding: 3px 6px; border: 1px solid var(--line); border-radius: 4px; font-size: 11px; }
.bulk-map-picker [data-bulk-map-category] { width: 135px; }
.bulk-map-picker [data-bulk-map-search] { width: 188px; }
.bulk-map-picker [data-bulk-map-product] { width: 100%; }
.bulk-map-actions label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; font-size: 11px; white-space: nowrap; }
.bulk-map-actions input[type="checkbox"] { width: 14px; height: 14px; margin: 0; }
.bulk-map-picker small { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.receiving-map-selected { border-left: 3px solid #2563eb; padding-left: 12px !important; }

/* Wholesale employee workspace: the same sections on the home screen and menu bar. */
.pos-shell.wholesale-employee { display: block; overflow: visible; background: #f3f6f5; }
.wholesale-employee .admin-menu-toggle { display: none !important; }
.wholesale-employee .admin-menu.associate-menu { position: sticky; top: 72px; z-index: 45; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; width: 100%; height: auto; max-height: none; padding: 6px 20px; border-radius: 0; border-bottom: 1px solid #d9e3df; background: white; color: #203c34; overflow: visible; scrollbar-gutter: auto; }
.wholesale-employee .business-nav-group { position: relative; margin: 0; padding: 0; border: 0; }
.wholesale-employee .business-nav-group > p { display: none; }
.wholesale-employee .business-nav-group summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 40px; padding: 8px 12px; border-radius: 6px; color: #304a41; font-size: 12px; font-weight: 700; letter-spacing: normal; text-transform: none; cursor: pointer; list-style: none; }
.wholesale-employee .business-nav-group summary::-webkit-details-marker { display: none; }
.wholesale-employee .business-nav-group summary span { display: flex; align-items: center; gap: 7px; }
.wholesale-employee .business-nav-group summary svg { width: 16px; height: 16px; }
.wholesale-employee .business-nav-group summary > svg { width: 12px; }
.wholesale-employee .business-nav-group[open] > summary, .wholesale-employee .business-nav-group summary:hover, .wholesale-employee .business-nav-group:has(button.active) > summary { background: #e8f3ee; color: #146849; }
.wholesale-employee details > .business-nav-buttons { position: absolute; top: calc(100% + 6px); left: 0; width: 280px; max-height: min(65dvh, 520px); overflow-y: auto; overscroll-behavior: contain; padding: 7px; border: 1px solid #d9e3df; border-radius: 10px; background: white; box-shadow: 0 14px 35px #18372a24; }
.wholesale-employee details:last-child > .business-nav-buttons { left: auto; right: 0; }
.wholesale-employee details:not([open]) > .business-nav-buttons { display: none; }
.wholesale-employee .admin-menu button { min-height: 40px; padding: 9px 11px; font-size: 12px; line-height: 1.4; color: #304a41; border-radius: 6px; }
.wholesale-employee .admin-menu button svg { flex-shrink: 0; height: 17px; }
.wholesale-employee .admin-menu button:hover, .wholesale-employee .admin-menu button.active { color: #146849; background: #e8f3ee; }
.wholesale-employee :is(summary, .wholesale-tile, .admin-menu button):focus-visible { outline: 3px solid #168259; outline-offset: 2px; }
.wholesale-dashboard { max-width: 1480px; margin: auto; padding: 28px; }
.wholesale-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.wholesale-panel { container-type: inline-size; min-width: 0; background: white; border: 1px solid #dce5e0; border-radius: 12px; box-shadow: 0 2px 4px #17382a04; overflow: hidden; }
.wholesale-panel > header { display: flex; align-items: center; gap: 13px; padding: 18px 20px; background: #fafcfb; border-bottom: 1px solid #e8eee9; }
.wholesale-panel-icon { display: grid; place-items: center; flex: 0 0 38px; height: 38px; border: 1px solid #d6e8dc; background: #edf6f0; border-radius: 10px; color: #217449; }
.wholesale-panel-icon svg { width: 21px; height: 21px; }
.wholesale-panel h3 { margin: 0 0 4px; font-size: 16px; color: #203d30; }
.wholesale-panel header p { margin: 0; font-size: 12px; line-height: 1.5; color: #6a7971; }
.wholesale-panel h4 { margin: 16px 20px 0; font-size: 10px; text-transform: uppercase; letter-spacing: .07em; color: #6a7971; }
.wholesale-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; padding: 14px; }
.wholesale-tile { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 8px; min-width: 0; min-height: 100px; padding: 12px 6px; border: 1px solid transparent; border-radius: 9px; background: white; color: #324e40; text-align: center; font: 600 12px/1.4 Inter, sans-serif; cursor: pointer; }
.wholesale-tile:hover { background: #f0f7f2; border-color: #d0e4d7; }
.wholesale-tile-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: #edf4f0; color: #297a51; }
.wholesale-tile-icon svg { width: 24px; height: 24px; }
.wholesale-tile small { display: block; margin-top: 4px; color: #768179; font-size: 10px; font-weight: 500; }
@media (max-width: 900px) {
  .wholesale-employee .admin-menu.associate-menu { top: 0; padding: 5px 8px; gap: 2px; }
  .wholesale-employee .business-nav-group summary { padding: 8px; gap: 5px; font-size: 11px; }
  .wholesale-employee .business-nav-group summary span > svg { display: none; }
  .wholesale-employee.pos-shell:not(.checkout-active) .pos-view.active .pos-page-heading,
  .wholesale-employee.pos-shell:not(.checkout-active) .pos-view.active .admin-panel-heading { padding-left: 16px; }
  .wholesale-dashboard { padding: 20px 14px; }
  .wholesale-panels { gap: 14px; }
  .wholesale-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .wholesale-employee .admin-menu.associate-menu { position: relative; top: 0; }
  .wholesale-employee .business-nav-group { position: static; }
  .wholesale-employee .business-nav-group summary, .wholesale-employee .admin-menu button { min-height: 44px; }
  .wholesale-employee details > .business-nav-buttons,
  .wholesale-employee details:last-child > .business-nav-buttons { top: 100%; left: 8px; right: 8px; width: auto; max-height: 60dvh; }
  .wholesale-panels { grid-template-columns: minmax(0, 1fr); }
  .wholesale-panel > header { padding: 16px; }
.wholesale-tile { min-height: 106px; }
}

/* Fit menu tiles to the actual card width, up to five per row. */
@container (min-width: 340px) {
  .wholesale-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@container (min-width: 440px) {
  .wholesale-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@container (min-width: 540px) {
  .wholesale-tiles { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* Direct order tabs keep their detail without the surrounding app chrome. */
body:is(.po-popup-view,.sales-order-popup-view,.ledger-popup-view) > .topbar { display: none; }
body:is(.po-popup-view,.sales-order-popup-view,.ledger-popup-view) #pos-app .pos-shell { display: block; min-height: 100vh; }
body:is(.po-popup-view,.sales-order-popup-view,.ledger-popup-view) #admin-menu,
body:is(.po-popup-view,.sales-order-popup-view,.ledger-popup-view) #admin-menu-toggle { display: none !important; }
body:is(.po-popup-view,.sales-order-popup-view,.ledger-popup-view) #pos-admin-view { display: block; width: 100%; margin: 0; }
body:is(.po-popup-view,.sales-order-popup-view,.ledger-popup-view) #pos-admin-view .admin-layout { margin: 0; padding: 16px; }
body:is(.po-popup-view,.sales-order-popup-view,.ledger-popup-view) #pos-admin-view .admin-panel > .admin-panel-heading:first-child { padding-left: 16px; min-height: 0; }

.admin-panel.sales-document { max-width: 1120px; margin: 0 auto 20px; overflow: visible; border-color: #d9e2df; box-shadow: 0 12px 32px rgba(22,45,40,.08); color: #233b36; }
.sales-document-header { display: grid; grid-template-columns: minmax(0,1fr) minmax(290px,auto) auto; gap: 20px; align-items: start; padding: 28px 32px; border-top: 5px solid #176e67; border-bottom: 1px solid #dbe5e1; }
.sales-document-brand { display: flex; gap: 18px; align-items: flex-start; min-width: 0; }
.sales-document-brand img { width: 118px; max-height: 76px; object-fit: contain; object-position: left top; flex: 0 0 auto; }
.sales-document-mark { width: 62px; height: 62px; border-radius: 14px; display: grid; place-items: center; color: white; background: #176e67; font: 800 20px Manrope,sans-serif; flex: 0 0 auto; }
.sales-document-brand strong { display: block; font: 800 16px Manrope,sans-serif; line-height: 1.2; }
.sales-document-brand span,.sales-document-brand small,.sales-document-brand address { display: block; margin-top: 4px; color: #586d65; font: normal 11px/1.45 Inter,sans-serif; overflow-wrap: anywhere; }
.sales-document-heading { text-align: right; }
.sales-document-heading > span,.sales-document-section-heading span { display: block; color: #518079; font: 800 10px Inter,sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.sales-document-heading h2 { margin: 7px 0 5px; font: 800 20px Manrope,sans-serif; overflow-wrap: anywhere; }
.sales-document-heading p { margin: 0; color: #61736e; font-size: 11px; }
.sales-document-actions { display: flex; gap: 7px; }
.sales-document-actions .outline-button { min-height: 34px; padding: 6px 12px; }
.sales-document-meta { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-bottom: 1px solid #dbe5e1; background: #f5faf8; }
.sales-document-meta > div { padding: 16px 24px; border-right: 1px solid #dbe5e1; min-width: 0; }
.sales-document-meta > div:last-child { border-right: 0; }
.sales-document-meta span { display: block; margin-bottom: 5px; color: #71817c; font: 800 9px Inter,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.sales-document-meta strong { font: 700 12px Inter,sans-serif; overflow-wrap: anywhere; }
.sales-document-status { color: #176e67; }
.sales-document-parties { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; padding: 27px 32px; }
.sales-document-parties section { min-width: 0; padding: 18px 20px; border: 1px solid #e0e8e4; border-radius: 8px; background: #fff; }
.sales-document-parties h3 { margin: 0 0 13px; color: #568078; font: 800 10px Inter,sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.sales-document-parties strong { display: block; font: 800 13px Manrope,sans-serif; line-height: 1.35; }
.sales-document-parties small,.sales-document-parties address { display: block; margin-top: 7px; color: #596b65; font: normal 11px/1.5 Inter,sans-serif; overflow-wrap: anywhere; }
.sales-document-parties dl { margin: 0; }
.sales-document-parties dl > div { display: flex; justify-content: space-between; gap: 14px; padding: 5px 0; border-bottom: 1px solid #edf1ee; font-size: 11px; }
.sales-document-parties dl > div:last-child { border-bottom: 0; }
.sales-document-parties dt { color: #71817c; }
.sales-document-parties dd { margin: 0; font-weight: 700; text-align: right; overflow-wrap: anywhere; }
.sales-document-lines { padding: 0 32px; }
.sales-document-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 0 0 12px; }
.sales-document-section-heading h3 { margin: 5px 0 0; font: 800 16px Manrope,sans-serif; }
.sales-document-section-heading small { color: #71817c; font-size: 11px; }
.sales-document-lines table { width: 100%; border-collapse: collapse; font-size: 11px; }
.sales-document-lines th { padding: 11px 12px; text-align: left; background: #edf5f2; color: #476b60; font: 800 9px Inter,sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.sales-document-lines td { padding: 13px 12px; border-bottom: 1px solid #e9efec; vertical-align: top; line-height: 1.45; overflow-wrap: anywhere; }
.sales-document-lines tbody tr:nth-child(even) { background: #fafcfb; }
.sales-document-lines td strong { font-weight: 800; }
.sales-document-lines td small { display: block; color: #71817c; font-size: 10px; }
.sales-document-lines .numeric { text-align: right; white-space: nowrap; }
.sales-document-bottom { display: grid; grid-template-columns: minmax(0,1fr) minmax(250px,340px); gap: 28px; padding: 25px 32px 32px; }
.sales-document-notes h3 { margin: 0 0 8px; font: 800 11px Manrope,sans-serif; }
.sales-document-notes p { margin: 0 0 10px; max-width: 560px; color: #657771; font-size: 11px; line-height: 1.5; white-space: pre-wrap; }
.sales-document-totals { border-top: 1px solid #dbe5e1; }
.sales-document-totals > div { display: flex; justify-content: space-between; gap: 24px; padding: 8px 0; color: #5a6e67; font-size: 11px; }
.sales-document-totals strong { color: #233b36; font-weight: 800; }
.sales-document-totals .sales-document-grand-total { margin-top: 5px; padding: 14px 0 9px; border-top: 2px solid #176e67; color: #174b43; font-size: 15px; font-weight: 800; }
.sales-document-totals .sales-document-balance { margin-top: 4px; padding: 12px; border-radius: 6px; background: #edf5f2; color: #174b43; font-size: 13px; font-weight: 800; }
@media (max-width: 820px) { .sales-document-header { grid-template-columns: minmax(0,1fr) auto; } .sales-document-heading { grid-column: 1; grid-row: 2; text-align: left; } .sales-document-actions { grid-column: 2; grid-row: 1; } .sales-document-parties { grid-template-columns: repeat(2,minmax(0,1fr)); } .sales-document-parties section:last-child { grid-column: 1 / -1; } }
@media (max-width: 560px) { .sales-document-header { grid-template-columns: 1fr; padding: 20px; } .sales-document-heading,.sales-document-actions { grid-column: 1; grid-row: auto; } .sales-document-brand img { width: 88px; max-height: 58px; } .sales-document-meta { grid-template-columns: repeat(2,minmax(0,1fr)); } .sales-document-meta > div { padding: 12px 16px; } .sales-document-parties { grid-template-columns: 1fr; padding: 20px; } .sales-document-parties section:last-child { grid-column: auto; } .sales-document-lines { padding: 0 20px; } .sales-document-bottom { grid-template-columns: 1fr; padding: 20px; } }
@media print {
  @page { size: portrait; margin: .45in; }
  body:has(.sales-document) .sales-document, body:has(.sales-document) .sales-document * { visibility: visible; }
  body:has(.sales-document) .sales-document { position: absolute; inset: 0 auto auto 0; width: 100%; max-width: none; margin: 0; border: 0; box-shadow: none; }
  .sales-document-actions { display: none !important; }
  .sales-document-header { grid-template-columns: minmax(0,1fr) minmax(220px,auto); gap: 14px; padding: 10px 0; }
  .sales-document-brand { gap: 12px; }
  .sales-document-brand img { max-height: 60px; }
  .sales-document-brand span, .sales-document-brand small, .sales-document-brand address { margin-top: 3px; line-height: 1.3; }
  .sales-document-heading { grid-column: auto; grid-row: auto; text-align: right; }
  .sales-document-heading h2 { margin: 5px 0 3px; }
  .sales-document-meta > div { padding: 11px 16px; }
  .sales-document-meta span { margin-bottom: 3px; }
  .sales-document-parties { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 14px 0; }
  .sales-document-parties section { padding: 12px; }
  .sales-document-parties section:last-child { grid-column: auto; }
  .sales-document-parties h3 { margin-bottom: 9px; }
  .sales-document-parties small, .sales-document-parties address { margin-top: 5px; line-height: 1.3; }
  .sales-document-parties dl > div { padding: 3px 0; }
  .sales-document-lines { padding: 0; }
  .sales-document-section-heading { margin-bottom: 9px; }
  .sales-document-lines th { padding: 8px 10px; }
  .sales-document-lines td { padding: 9px 10px; line-height: 1.3; }
  .sales-document-bottom { padding: 14px 0; }
  .sales-document-totals > div { padding: 6px 0; }
  .sales-document-totals .sales-document-grand-total { padding: 10px 0 7px; }
  .sales-document-totals .sales-document-balance { padding: 9px; }
  .sales-document-lines tr, .sales-document-parties section { break-inside: avoid; }
}

.modal:has(.po-export-fieldset) { width: min(760px, 96vw); }
.po-export-fieldset { border: 1px solid var(--line); border-radius: 4px; padding: 12px; min-width: 0; }
.po-export-field-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.po-export-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.admin-form .po-export-fields label { display: flex; align-items: center; gap: 6px; font-weight: normal; }
.po-export-fields input[type="checkbox"] { margin: 0; flex-shrink: 0; }
@media (max-width: 600px) { .po-export-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 380px) { .po-export-fields { grid-template-columns: 1fr; } }
.vendor-catalog-mapping-summary {
  display: block;
  margin: 8px 0;
  padding: 7px 9px;
  border-radius: 5px;
  background: #f1f2f3;
  color: #555;
  font-size: 11px;
  line-height: 1.4;
  white-space: nowrap;
  max-width: 100%;
  overflow-x: auto;
}
/* Shared progress display remains visible when an import screen or modal changes. */
#import-progress-container { position: fixed; right: 18px; bottom: 18px; z-index: 2000; width: min(390px, calc(100vw - 36px)); max-height: 45vh; overflow-y: auto; display: grid; gap: 10px; }
.import-progress-card { background: #fff; color: #17364a; border: 1px solid #b6d4df; border-radius: 12px; padding: 16px; box-shadow: 0 6px 26px #12344826; font-size: 13px; }
.import-progress-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.import-progress-heading button { border: 0; background: transparent; cursor: pointer; color: inherit; font-size: 22px; padding: 2px 8px; }
.import-progress-heading button[hidden] { display: none; }
.import-progress-stage { font-weight: 600; margin-bottom: 8px; }
.import-progress-card progress { display: block; width: 100%; height: 14px; accent-color: #087b87; margin-bottom: 8px; }
.import-progress-count { font-weight: 600; }
.import-progress-step { margin-top: 5px; overflow-wrap: anywhere; }
.import-progress-time { margin-top: 8px; color: #516a79; font-size: 12px; }
.import-progress-card.is-complete { border-color: #379772; }
.import-progress-card.is-error { border-color: #c96255; }
.import-progress-card.is-error .import-progress-stage { color: #a7382a; }
.import-progress-card.is-error progress { accent-color: #a7382a; }

.admin-list-heading-actions > [data-po-product-mapping-actions] { margin-right: 12px; }

.vendor-catalog-image-empty { border: 0; background: transparent; }
.vendor-catalog-order input { appearance: textfield; -moz-appearance: textfield; }
.vendor-catalog-order input::-webkit-inner-spin-button, .vendor-catalog-order input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.vendor-catalog-map-add { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin-left: 5px; padding: 0; border: 1px solid var(--line); border-radius: 3px; background: white; color: var(--teal); font-size: 14px; line-height: 1; cursor: pointer; vertical-align: middle; }
.vendor-catalog-map-add:disabled { opacity: .5; cursor: wait; }

.vendor-catalog-heading-actions .vendor-catalog-view-switch { gap: 3px; }
.vendor-catalog-heading-actions .vendor-catalog-view-switch button { width: 30px; height: 30px; padding: 5px; display: inline-flex; align-items: center; justify-content: center; }

.buyer-cart-override { font-size: .72rem; margin: 4px 0; }
.buyer-cart-override-button { display: inline-block; padding: 2px 6px; border: 1px solid var(--line); border-radius: 4px; color: var(--teal); background: white; cursor: pointer; }
.buyer-cart-override label { display: grid; gap: 4px; margin: 7px 0 4px; }
.buyer-cart-override select { width: 100%; min-width: 0; font-size: .74rem; padding: 5px; }
.buyer-cart-override small { display: block; color: var(--muted); }
.buyer-cart-override [data-cart-override-error] { color: #9e2727; }

.buyer-cart-box-label { display:flex; align-items:center; gap:6px; font-size:11px; margin:5px 0; }
.buyer-cart-box-label input { flex:1; min-width:0; max-width:200px; height:25px; padding:3px 6px; font-size:12px; }

.buyer-cart-sku-row { display:flex; align-items:center; gap:8px; }
.buyer-cart-override-button { flex:none; font:inherit; line-height:1.3; }
.buyer-cart-override [data-cart-override-panel][hidden] { display:none; }

.buyer-cart-override-packaging { display:flex; gap:8px; }
.buyer-cart-override-packaging label:first-child { width:78px; flex:none; }
.buyer-cart-override-packaging label:last-child { flex:1; min-width:0; }
.buyer-cart-override-packaging input { width:100%; min-width:0; font-size:.74rem; padding:5px; }

.top-actions .support-ticket-button { display:grid; position:relative; overflow:visible; color:var(--teal); }
.top-actions .support-ticket-button[hidden] { display:none; }
.support-ticket-modal { width:min(860px,calc(100vw - 40px)); max-height:90vh; overflow:auto; }
.support-ticket-toolbar,.support-ticket-filters,.support-ticket-form-row,.support-ticket-pagination { display:flex; align-items:end; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.support-ticket-filters label,.support-ticket-form label { display:grid; gap:5px; font-size:13px; }
.support-ticket-filters input,.support-ticket-filters select,.support-ticket-form input,.support-ticket-form select,.support-ticket-form textarea { width:100%; min-width:0; padding:8px; border:1px solid var(--line); border-radius:5px; background:white; color:inherit; font:inherit; }
.support-ticket-form-row label { flex:1; }
.support-ticket-form > label,.support-ticket-context { margin-bottom:14px; }
.support-ticket-list { display:grid; gap:8px; }
.support-ticket-row { display:flex; justify-content:space-between; gap:12px; width:100%; padding:12px; border:1px solid var(--line); border-radius:6px; background:white; color:inherit; text-align:left; cursor:pointer; }
.support-ticket-row small { display:block; color:var(--muted); margin-top:5px; overflow-wrap:anywhere; }
.support-ticket-tags { flex:none; display:grid; justify-items:end; gap:8px; font-size:11px; }
.support-ticket-status { padding:3px 7px; border-radius:4px; }
.support-ticket-status.open { background:#fff1cf; color:#704e09; }
.support-ticket-status.closed { background:#e9eeeb; color:#476151; }
.support-ticket-context { display:grid; gap:5px; padding:10px; background:#f1f4f3; border-radius:5px; font-size:12px; color:var(--muted); }
.support-ticket-scope { font-size:12px; color:var(--muted); }
.support-ticket-pagination { justify-content:space-between; margin-top:14px; font-size:12px; }
.support-ticket-history { font-size:12px; margin-top:12px; }
.support-ticket-history details { padding:9px 0; border-bottom:1px solid var(--line); }
.support-ticket-history summary { cursor:pointer; }
.support-ticket-history p { white-space:pre-wrap; }
[data-ticket-error] { color:#9e2727; }
@media(max-width:600px) { .support-ticket-row { flex-direction:column; }.support-ticket-tags { display:flex; justify-content:space-between; }.support-ticket-filters label { flex:1; } }

.support-ticket-diagnostics { margin-top:12px; }
.support-ticket-diagnostics pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:12px; padding:10px; background:var(--surface-alt,#f4f6f6); border-radius:8px; }
[data-ticket-conversation] { margin-top:24px; padding-top:16px; border-top:1px solid var(--border,#dce5e5); }
.support-ticket-thread { margin:12px 0 0 16px; padding-left:12px; border-left:2px solid var(--border,#dce5e5); min-width:0; }
.support-ticket-thread.thread-root,.support-ticket-thread.thread-deep { margin-left:0; }
.support-ticket-thread summary { cursor:pointer; font-weight:600; font-size:13px; overflow-wrap:anywhere; }
.support-ticket-message p { white-space:pre-wrap; overflow-wrap:anywhere; }
.support-ticket-reply-form { display:grid; gap:10px; margin-top:12px; }
.support-ticket-reply-form label { display:grid; gap:6px; }
.support-ticket-reply-form textarea { width:100%; min-width:0; resize:vertical; }
@media(max-width:600px) { .support-ticket-thread { margin-left:8px; padding-left:8px; } }

.legacy-line-hold { background:#fff7e7; }

.legacy-send-help { margin:16px; font-size:14px; line-height:1.5; }
.legacy-po-file-link.icon-button { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; min-height:26px; padding:4px; margin-left:4px; vertical-align:middle; text-decoration:none; }

.sales-order-list-table .numeric { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.sales-order-list-table .order-sort { border:0; background:transparent; color:inherit; font:inherit; font-weight:inherit; padding:4px 0; cursor:pointer; white-space:nowrap; }
.sales-order-list-table .order-sort:focus-visible { outline:2px solid var(--primary, #287d72); outline-offset:3px; }
.sales-order-list-table .order-column-filters input { width:100%; min-width:75px; max-width:190px; padding:5px 7px; box-sizing:border-box; }
.sales-order-list-table .order-column-filters small { white-space:normal; color:#64748b; }
.sales-order-list-table .order-amount-range { display:flex; gap:4px; }
.sales-order-list-table .order-amount-range input { min-width:70px; max-width:95px; text-align:right; }
