/* Grih Upvan Commerce Admin — approved 2026 visual system */
:root {
  --gl-primary: #12b98a;
  --gl-primary-strong: #078a6d;
  --gl-primary-dark: #075e4d;
  --gl-primary-soft: #e7f8f2;
  --gl-primary-wash: #f2fbf8;
  --gl-ink: #14213a;
  --gl-body: #58677e;
  --gl-muted: #8692a5;
  --gl-border: #dce7e5;
  --gl-border-soft: #eaf0ef;
  --gl-canvas: #f5faf8;
  --gl-card: #ffffff;
  --gl-error: #d64550;
  --gl-warning: #b7791f;
  --gl-success: #078a6d;
  --radius-sm: 8px;
  --radius: 11px;
  --radius-lg: 16px;
  --shadow: 0 12px 34px rgb(20 33 58 / 5%);
}

* { box-sizing: border-box; }
html { min-width: 320px; }
body {
  margin: 0;
  color: var(--gl-ink);
  background: var(--gl-canvas);
  font-family: Inter, "DM Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--gl-primary-dark); text-decoration: none; }
a:hover { text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, strong { color: var(--gl-ink); }

.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip-link { position: fixed; top: -5rem; left: 1rem; z-index: 20; padding: .75rem 1rem; color: #fff; background: var(--gl-ink); border-radius: var(--radius-sm); }
.skip-link:focus { top: 1rem; }
.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; }

.admin-shell { display: grid; grid-template-columns: 248px minmax(0, 1fr); min-height: 100vh; }
.sidebar {
  position: sticky;
  top: 0;
  z-index: 5;
  height: 100vh;
  padding: 27px 20px 22px;
  overflow-y: auto;
  background: #fff;
  border-right: 1px solid var(--gl-border-soft);
  scrollbar-width: thin;
}
.brand { display: flex; align-items: center; gap: 13px; margin: 0 2px 36px; color: var(--gl-primary-dark); }
.brand-mark {
  position: relative;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  color: #fff;
  background: linear-gradient(145deg, #20c69b, #079574);
  border-radius: 50%;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .02em;
  box-shadow: 0 7px 18px rgb(18 185 138 / 20%);
}
.brand-mark::after { content: ""; position: absolute; right: 5px; top: 7px; width: 7px; height: 4px; border: 1.5px solid rgb(255 255 255 / 75%); border-width: 1.5px 0 0; border-radius: 50%; transform: rotate(-34deg); }
.brand-copy { font-size: 17px; font-weight: 850; line-height: 1.25; letter-spacing: -.02em; }
.brand-copy small { display: block; margin-top: 3px; color: var(--gl-muted); font-size: 11px; font-weight: 550; letter-spacing: .01em; }

.sidebar nav { display: grid; gap: 4px; }
.sidebar nav p { margin: 22px 9px 8px; color: var(--gl-primary-strong); font-size: 10px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.sidebar nav a {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 43px;
  padding: 10px 11px;
  color: var(--gl-ink);
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 590;
  transition: color .16s ease, background .16s ease, transform .16s ease;
}
.sidebar nav a:hover, .sidebar nav a:focus-visible { color: var(--gl-primary-strong); background: var(--gl-primary-wash); transform: translateX(1px); }
.sidebar nav a.active { color: var(--gl-primary-strong); background: linear-gradient(90deg, #e2f7f1, #f0faf7); font-weight: 760; }
.nav-icon { width: 19px; height: 19px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }

.sidebar-promo {
  position: relative;
  display: grid;
  gap: 14px;
  min-height: 116px;
  margin-top: 28px;
  padding: 18px 16px;
  overflow: hidden;
  color: var(--gl-ink);
  background: linear-gradient(135deg, #f0faf7, #e3f7f0);
  border: 1px solid #dff2ec;
  border-radius: 12px;
  font-size: 12px;
  line-height: 1.6;
}
.sidebar-promo strong, .sidebar-promo b { color: var(--gl-primary-strong); }
.sidebar-promo b { font-size: 12px; }
.sidebar-promo i { position: absolute; right: -5px; bottom: -24px; color: rgb(18 185 138 / 25%); font-size: 88px; font-style: normal; transform: rotate(-24deg); }

.workspace { min-width: 0; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 96px;
  padding: 17px 34px 16px 39px;
  background: rgb(255 255 255 / 96%);
  border-bottom: 1px solid var(--gl-border-soft);
  backdrop-filter: blur(14px);
}
.page-heading { min-width: 180px; }
.eyebrow { margin: 0; color: var(--gl-primary-strong); font-size: 10px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.topbar h1 { margin: 6px 0 0; color: var(--gl-ink); font-size: 23px; line-height: 1.1; letter-spacing: -.035em; }
.topbar-actions { display: flex; align-items: center; gap: 19px; }
.global-search { position: relative; width: clamp(210px, 20vw, 300px); }
.global-search svg { position: absolute; left: 14px; top: 50%; width: 17px; height: 17px; color: var(--gl-muted); fill: none; stroke: currentColor; stroke-width: 1.8; transform: translateY(-50%); }
.global-search input { height: 43px; padding: 10px 40px; border-color: var(--gl-border); background: #fff; font-size: 12px; }
.notification-button { position: relative; display: grid; place-items: center; width: 36px; height: 36px; color: var(--gl-ink); border-radius: 50%; }
.notification-button:hover { background: var(--gl-primary-wash); }
.notification-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.notification-button span { position: absolute; top: -1px; right: -1px; display: grid; place-items: center; width: 15px; height: 15px; color: white; background: var(--gl-primary); border: 2px solid white; border-radius: 50%; font-size: 8px; font-weight: 800; }
.admin-profile { display: flex; align-items: center; gap: 11px; white-space: nowrap; }
.admin-profile strong { font-size: 12px; font-weight: 720; }
.profile-avatar { display: grid; place-items: center; width: 39px; height: 39px; color: var(--gl-primary-strong); background: var(--gl-primary-soft); border-radius: 50%; font-size: 12px; font-weight: 850; }
.admin-profile form { display: flex; margin: 0; }
.logout-button { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; color: var(--gl-muted); background: transparent; border: 0; border-radius: 50%; cursor: pointer; }
.logout-button:hover { color: var(--gl-error); background: #fff2f2; }
.logout-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.content { width: 100%; max-width: 1600px; margin: auto; padding: 24px; }
.breadcrumbs { margin: -2px 0 18px; color: var(--gl-muted); font-size: 14px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: 8px; }
.breadcrumbs li + li::before { content: "›"; color: #9eabb9; font-size: 17px; line-height: 1; }
.breadcrumbs a { color: var(--gl-body); font-weight: 680; }
.breadcrumbs a:hover, .breadcrumbs a:focus-visible { color: var(--gl-primary-strong); text-decoration: underline; text-underline-offset: 3px; }
.breadcrumbs [aria-current="page"] { color: var(--gl-ink); font-weight: 780; }
.panel, .metric-card {
  background: var(--gl-card);
  border: 1px solid var(--gl-border-soft);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.panel { margin-bottom: 24px; padding: 27px 30px; }
.table-panel { min-height: calc(100vh - 144px); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 27px; }
.panel-heading h2, .panel h2 { margin: 4px 0 0; color: var(--gl-ink); font-size: 21px; line-height: 1.15; letter-spacing: -.025em; }
.panel-heading > div > p:last-child { margin: 6px 0 0; color: var(--gl-body); }

input, select, textarea {
  width: 100%;
  color: var(--gl-ink);
  background: #fff;
  border: 1px solid #cfdbdf;
  border-radius: var(--radius);
  outline: none;
  transition: border-color .16s ease, box-shadow .16s ease;
}
input, select { min-height: 43px; padding: 10px 13px; }
textarea { padding: 12px 13px; }
input::placeholder { color: #99a5b5; }
input:focus, select:focus, textarea:focus { border-color: var(--gl-primary); box-shadow: 0 0 0 3px rgb(18 185 138 / 12%); }
.mobile-input { min-height: 43px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; overflow: hidden; background: #fff; border: 1px solid #cfdbdf; border-radius: var(--radius); transition: border-color .16s ease, box-shadow .16s ease; }
.mobile-input:focus-within { border-color: var(--gl-primary); box-shadow: 0 0 0 3px rgb(18 185 138 / 12%); }
.mobile-input > span { align-self: stretch; display: grid; place-items: center; padding: 0 12px; color: var(--gl-body); background: #f5f8f8; border-right: 1px solid #cfdbdf; font-weight: 760; }
.mobile-input input { min-width: 0; min-height: 41px; padding: 10px 13px; border: 0; border-radius: 0; box-shadow: none; }
.mobile-input input:focus { box-shadow: none; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--gl-primary); outline-offset: 2px; }
select { appearance: auto; cursor: pointer; }

.primary-button, .secondary-button, .text-button, .danger-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 43px;
  padding: 10px 16px;
  border-radius: var(--radius);
  font-weight: 760;
  line-height: 1;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.primary-button { color: #fff; background: linear-gradient(135deg, #18c494, #08a97f); border: 1px solid var(--gl-primary); box-shadow: 0 6px 15px rgb(18 185 138 / 18%); }
.primary-button:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 8px 20px rgb(18 185 138 / 24%); }
.secondary-button { color: var(--gl-ink); background: #fff; border: 1px solid #cfdbdf; }
.secondary-button:hover { color: var(--gl-primary-strong); border-color: #9ddfcf; background: var(--gl-primary-wash); }
.text-button { min-height: 36px; padding: 7px 9px; color: var(--gl-primary-strong); background: transparent; border: 0; }
.danger-button { color: #b6323c; background: #fff; border: 1px solid #efc3c7; }
.danger-button:hover { background: #fff3f4; border-color: #e79da3; }
.compact { min-height: 39px; padding: 8px 13px; }
.create-button { min-width: 129px; }
.create-button > span { font-size: 19px; font-weight: 400; }

.filter-bar {
  display: grid;
  grid-template-columns: minmax(230px, 1.3fr) minmax(150px, .9fr) minmax(150px, .9fr) minmax(92px, .55fr) auto;
  align-items: end;
  gap: 15px;
  margin-bottom: 22px;
}
.filter-field { display: grid; gap: 7px; min-width: 0; }
.filter-field > span:first-child, label { color: var(--gl-body); font-size: 12px; font-weight: 720; }
.input-with-icon { position: relative; display: block; }
.input-with-icon input { padding-right: 39px; }
.input-with-icon svg { position: absolute; top: 50%; right: 13px; width: 18px; height: 18px; color: var(--gl-body); fill: none; stroke: currentColor; stroke-width: 1.7; transform: translateY(-50%); }
.filter-actions { display: flex; align-items: center; gap: 10px; }
.delivery-filter-grid { display: grid; grid-template-columns: repeat(4, minmax(145px, 1fr)) auto; align-items: end; gap: 14px; margin-bottom: 22px; }
.delivery-filter-grid label { display: grid; gap: 7px; }
.filter-submit svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.reset-button { min-width: 86px; }

.result-summary {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  margin: 0 0 12px;
  padding: 10px 15px;
  color: var(--gl-body);
  background: linear-gradient(90deg, var(--gl-primary-soft), #f3fbf9);
  border-radius: var(--radius-sm);
  font-size: 12px;
}
.result-summary > span { display: grid; place-items: center; width: 16px; height: 16px; color: white; background: var(--gl-primary); border-radius: 50%; font-family: Georgia, serif; font-size: 10px; font-weight: 700; }

.table-wrap { width: 100%; overflow: visible; border: 1px solid var(--gl-border-soft); border-radius: var(--radius-sm); }
table { width: 100%; min-width: 860px; border-collapse: collapse; color: var(--gl-ink); font-size: 12px; }
th, td { height: 63px; padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--gl-border-soft); white-space: nowrap; vertical-align: middle; }
thead th { height: 47px; color: var(--gl-ink); background: linear-gradient(90deg, #f1faf7, #f8fbfa); font-size: 11px; font-weight: 780; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr { background: #fff; transition: background .14s ease; }
tbody tr:hover { background: #fbfefd; }
.sort-link { display: inline-flex; align-items: center; gap: 4px; color: inherit; }
.sort-indicator { color: #70cdb5; font-size: 11px; }
.actions-column { width: 76px; min-width: 76px; text-align: center; }
.table-media { display: flex; align-items: center; gap: 12px; min-width: 150px; }
.table-media img, .table-media-placeholder { width: 44px; height: 45px; flex: 0 0 auto; border-radius: 8px; }
.table-media img { object-fit: contain; background: #f7faf8; }
.table-media-placeholder { display: grid; place-items: center; color: var(--gl-primary-strong); background: var(--gl-primary-soft); font-size: 10px; font-weight: 800; }
.table-media strong { font-size: 12px; font-weight: 680; }
.positive-value { color: var(--gl-primary-strong); font-weight: 750; }
.status { display: inline-flex; align-items: center; min-height: 26px; padding: 5px 10px; color: var(--gl-primary-strong); background: var(--gl-primary-soft); border-radius: 999px; font-size: 10px; font-weight: 780; }
.status-inactive, .status-blocked, .status-rejected, .status-cancelled, .status-delivery-failed, .status-off-duty { color: #b6323c; background: #fff0f1; }
.status-draft, .status-pending, .status-placed { color: #8a6414; background: #fff7df; }
.status-confirmed, .status-assigned, .status-accepted, .status-on-duty { color: #176898; background: #edf7ff; }
.status-processing { color: #8b5b12; background: #fff7df; }
.status-shipped, .status-ready-for-delivery, .status-picked-up, .status-out-for-delivery { color: #3857a6; background: #eef2ff; }
.status-published, .status-active, .status-approved, .status-delivered { color: var(--gl-primary-strong); background: var(--gl-primary-soft); }
.status-text { color: var(--gl-ink); font-weight: 800; }
.status-text-pending, .status-text-placed, .status-text-processing { color: #8a6414; }
.status-text-confirmed { color: #176898; }
.status-text-shipped { color: #3857a6; }
.status-text-delivered, .status-text-paid { color: var(--gl-success); }
.status-text-cancelled, .status-text-failed { color: #c52f3c; }
.terminal-status-note { max-width: 520px; margin: 18px 0 0; padding: 12px 14px; color: var(--gl-body); background: var(--gl-primary-wash); border: 1px solid var(--gl-border); border-radius: var(--radius-sm); font-weight: 650; }
.status-text-cancelled + p + .terminal-status-note { color: #a1262b; background: #fff2f3; border-color: #f2cbd0; }
.actions-cell { position: relative; width: 76px; text-align: center; }
.action-menu { position: relative; display: inline-block; }
.action-menu > summary, .action-status > summary { list-style: none; }
.action-menu > summary::-webkit-details-marker, .action-status > summary::-webkit-details-marker { display: none; }
.action-menu-trigger { display: grid; place-items: center; width: 35px; height: 38px; margin: auto; color: #31506e; background: transparent; border: 0; border-radius: var(--radius-sm); cursor: pointer; font-size: 22px; font-weight: 800; line-height: 1; }
.action-menu-trigger:hover, .action-menu[open] > .action-menu-trigger { color: var(--gl-primary-strong); background: var(--gl-primary-soft); }
.action-menu-popover { position: absolute; top: calc(100% + 6px); right: 0; z-index: 12; display: grid; width: 184px; padding: 7px; color: var(--gl-ink); background: #fff; border: 1px solid var(--gl-border); border-radius: 10px; box-shadow: 0 14px 34px rgb(20 33 58 / 16%); text-align: left; }
.action-menu:not([open]) > .action-menu-popover { display: none; }
.action-menu-popover form { width: 100%; margin: 0; }
.action-menu-item { display: grid; grid-template-columns: 19px minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; min-height: 39px; padding: 9px 10px; color: var(--gl-ink); background: transparent; border: 0; border-radius: 7px; cursor: pointer; font-size: 12px; font-weight: 650; text-align: left; }
.action-menu-item:hover, .action-menu-item:focus-visible { color: var(--gl-primary-strong); background: var(--gl-primary-wash); }
.action-menu-item svg { width: 17px; height: 17px; color: var(--gl-primary-strong); fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.action-status { width: 100%; }
.action-status[open] { background: var(--gl-primary-wash); border-radius: 7px; }
.menu-chevron { color: var(--gl-muted); font-size: 18px; transition: transform .16s ease; }
.action-status[open] .menu-chevron { transform: rotate(90deg); }
.status-options { display: grid; gap: 2px; margin: 0 6px 6px 35px; padding: 4px; background: #fff; border: 1px solid var(--gl-border-soft); border-radius: 7px; }
.status-option { display: grid; grid-template-columns: 9px minmax(0, 1fr) auto; align-items: center; gap: 8px; width: 100%; min-height: 31px; padding: 6px 7px; color: var(--gl-body); background: transparent; border: 0; border-radius: 5px; cursor: pointer; font-size: 11px; text-align: left; }
.status-option:hover:not(:disabled) { color: var(--gl-primary-strong); background: var(--gl-primary-soft); }
.status-option:disabled { color: var(--gl-ink); cursor: default; opacity: 1; font-weight: 750; }
.status-option-dot { width: 7px; height: 7px; background: var(--gl-muted); border-radius: 50%; }
.status-option-active, .status-option-published, .status-option-approved, .status-option-delivered { background: var(--gl-primary); }
.status-option-inactive, .status-option-blocked, .status-option-rejected, .status-option-cancelled { background: var(--gl-error); }
.status-option-draft, .status-option-pending { background: #d9a62e; }
.current-status { color: var(--gl-primary-strong); font-weight: 850; }
.delete-action { color: #d23845; }
.delete-action svg { color: #e14b57; }
.delete-action:hover, .delete-action:focus-visible { color: #c42c38; background: #fff2f3; }
tbody tr:has(.action-menu[open]) { background: linear-gradient(90deg, #eefaf7, #f7fcfa); }

.pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 20px; }
.pagination-links { display: flex; align-items: center; gap: 7px; }
.page-link { display: grid; place-items: center; min-width: 37px; height: 37px; padding: 0 9px; color: var(--gl-body); background: #fff; border: 1px solid #cfdbdf; border-radius: var(--radius-sm); font-size: 12px; font-weight: 700; }
.page-link:hover:not(.disabled), .page-link.active { color: #fff; background: linear-gradient(135deg, #18c494, #08a97f); border-color: var(--gl-primary); box-shadow: 0 5px 12px rgb(18 185 138 / 17%); }
.page-link.disabled { color: #a9b3c0; background: #fafcfc; cursor: not-allowed; }
.pagination-summary { color: var(--gl-body); font-size: 11px; }
.empty-table { min-height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--gl-muted); }
.empty-table strong { margin-bottom: 4px; color: var(--gl-ink); }

.metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.metric-card { display: grid; gap: 5px; padding: 22px; }
.metric-card span, .metric-card small { color: var(--gl-body); }
.metric-card strong { color: var(--gl-primary-dark); font-size: 30px; }
.compact-metrics { grid-template-columns: repeat(2, minmax(0, 220px)); }
.dashboard-intro { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0 0 24px; }
.dashboard-intro h2 { margin: 3px 0; color: var(--gl-ink); font-size: 27px; letter-spacing: -.035em; }
.dashboard-intro p:last-child { margin: 0; color: var(--gl-body); }
.dashboard-filter { min-height: 40px; display: inline-flex; align-items: center; gap: 3px; padding-left: 11px; color: var(--gl-primary-strong); background: #fff; border: 1px solid var(--gl-border); border-radius: var(--radius-sm); box-shadow: 0 3px 10px rgb(20 33 58 / 3%); transition: border-color .16s ease, box-shadow .16s ease; }
.dashboard-filter:focus-within { border-color: var(--gl-primary); box-shadow: 0 0 0 3px rgb(18 185 138 / 12%); }
.dashboard-filter select { width: auto; min-width: 118px; min-height: 38px; padding: 7px 11px 7px 6px; color: var(--gl-body); background: transparent; border: 0; border-radius: 0; box-shadow: none; font-size: 11px; font-weight: 700; white-space: nowrap; }
.dashboard-filter select:focus { border: 0; box-shadow: none; }
.dashboard-date-filter select { min-width: 225px; }
.dashboard-filter noscript { display: inline-flex; padding-right: 5px; }
.dashboard-metrics { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.dashboard-metrics .metric-card { min-height: 145px; align-content: center; }
.dashboard-metrics .metric-card strong { margin-block: 8px; color: var(--gl-ink); font-size: clamp(23px, 2vw, 30px); }
.dashboard-chart-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 18px; margin-bottom: 24px; }
.dashboard-chart-card { min-width: 0; margin: 0; }
.chart-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 12px; }
.chart-heading h2 { margin-top: 2px; }
.sales-chart { position: relative; height: 250px; padding: 4px 0 0 44px; }
.sales-chart svg { width: 100%; height: 205px; overflow: visible; }
.chart-grid-lines { fill: none; stroke: #e7efed; stroke-width: 1; vector-effect: non-scaling-stroke; }
.sales-area { fill: url(#sales-area); }
.sales-line { fill: none; stroke: var(--gl-primary-strong); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.sales-chart circle { fill: var(--gl-primary-strong); stroke: #fff; stroke-width: 2; vector-effect: non-scaling-stroke; }
.chart-scale { position: absolute; left: 0; color: var(--gl-muted); font-size: 10px; }
.chart-scale-top { top: 35px; }.chart-scale-middle { top: 105px; }.chart-scale-bottom { top: 176px; }
.chart-labels { display: grid; grid-template-columns: repeat(var(--chart-columns, 7), minmax(0, 1fr)); gap: 1px; margin: -7px 0 0; color: var(--gl-muted); font-size: 10px; text-align: center; }
.orders-chart { height: 250px; display: grid; grid-template-columns: repeat(var(--chart-columns, 7), minmax(0, 1fr)); align-items: end; gap: 2px; padding-top: 18px; background: repeating-linear-gradient(to bottom, transparent 0, transparent 69px, #edf2f1 70px); }
.order-bar-column { height: 215px; display: grid; grid-template-rows: 20px 1fr 22px; align-items: end; gap: 3px; min-width: 0; text-align: center; }
.order-bar-column strong { color: var(--gl-body); font-size: 10px; }
.order-bar-track { height: 168px; display: flex; align-items: end; justify-content: center; }
.order-bar-track i { width: min(30px, 100%); min-height: 2px; display: block; background: linear-gradient(180deg, #12b98a, #078a6d); border-radius: 5px 5px 1px 1px; box-shadow: 0 5px 12px rgb(18 185 138 / 15%); }
.order-bar-column small { overflow: hidden; color: var(--gl-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.inventory-batch-list { display: grid; gap: 15px; margin: 18px 0 28px; }
.inventory-batch-row { position: relative; padding: 20px; border: 1px solid var(--gl-border); border-radius: 12px; background: #fbfefd; }
.inventory-batch-row legend { padding: 0 7px; color: var(--gl-primary-strong); font-size: 12px; font-weight: 800; }
.inventory-batch-grid { display: grid; grid-template-columns: minmax(230px, 1.7fr) repeat(3, minmax(125px, 1fr)); gap: 14px; }
.inventory-batch-grid label { display: grid; gap: 7px; }
.inventory-batch-grid .inventory-reason { grid-column: 1 / -1; }
.inventory-batch-row .remove-inventory-row { position: absolute; top: -12px; right: 12px; background: #fff; }
.inventory-batch-row .remove-inventory-row:disabled { display: none; }
.inline-form, .actions { display: flex; align-items: end; gap: 12px; margin-bottom: 18px; }
.actions { flex-wrap: wrap; }
.actions form { margin: 0; }
.form-panel { padding: 28px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 20px 0 28px; }
.form-grid .wide { grid-column: 1 / -1; }
.form-grid label { display: grid; gap: 7px; }
.variant-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-top: 28px; }
.variant-heading h3 { margin-bottom: 4px; }
.section-hint { margin: 0; color: var(--gl-muted); font-size: 12px; }
.variant-list { display: grid; gap: 14px; margin: 18px 0 28px; }
.variant-row { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; padding: 20px; border: 1px solid var(--gl-border); border-radius: 12px; background: #fbfefd; }
.variant-row legend { padding: 0 7px; color: var(--gl-primary-strong); font-size: 12px; font-weight: 800; }
.variant-row label { display: grid; gap: 7px; font-size: 12px; font-weight: 650; }
.variant-row .default-variant { align-self: end; min-height: 40px; }
.variant-row .remove-variant { position: absolute; top: -10px; right: 12px; padding: 3px 8px; background: #fff; }
.variant-row .remove-variant:disabled { display: none; }
.field-hint { color: var(--gl-muted); font-size: 11px; line-height: 1.45; }
.check { display: flex !important; grid-auto-flow: column; justify-content: start; align-items: center; gap: 8px; }
.check input { width: auto; min-height: auto; }
.checkbox-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 18px; margin-top: 10px; }
.checkbox-grid .check { align-items: flex-start; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.checkbox-grid .check input { margin-top: 3px; }
.checkbox-grid .check small { color: var(--muted); }
.input-check { align-self: end; min-height: 44px; }
.field-label { display: inline; }
.required-marker { color: var(--gl-error); font-weight: 900; }
.password-info { display: inline-grid; width: 17px; height: 17px; margin-left: 4px; place-items: center; border: 1px solid var(--gl-accent); border-radius: 50%; color: var(--gl-accent); font-size: 11px; font-style: normal; font-weight: 900; cursor: help; }
.password-input { position: relative; display: block; }
.password-input input { padding-right: 64px; }
.password-input button { position: absolute; top: 50%; right: 10px; padding: 4px; border: 0; color: var(--gl-accent); background: transparent; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; transform: translateY(-50%); }
.password-pattern { display: block; margin-top: 5px; color: var(--gl-body); font-size: 11px; font-weight: 500; line-height: 1.45; }
.required-note { margin: -10px 0 12px; color: var(--gl-muted); font-size: 12px; }
.field-error { color: var(--gl-error); }
.alert { padding: 14px 16px; margin-bottom: 18px; border-radius: var(--radius); }
.alert.success { color: #076a52; background: #e5f8f1; }
.alert.error { color: #a1262b; background: #fff0f0; }
.note { padding: 14px; color: var(--gl-body); background: var(--gl-primary-wash); border-left: 3px solid var(--gl-primary); }
.detail-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; }
.large-value { color: var(--gl-primary-dark); font-size: 30px; }
.top-space { margin-top: 22px; }
.section-list { display: grid; gap: 10px; }
.section-list article { display: flex; align-items: center; gap: 14px; padding: 14px; background: #fff; border: 1px solid var(--gl-border); border-radius: 10px; }
.section-list article div { display: grid; flex: 1; }
.section-list small, label small { color: var(--gl-muted); font-weight: 500; }
.section-list .section-name { flex: 1; }
.section-list .position-field { width: 100px; }
.section-list article > .check { min-width: 100px; }
.drag { color: var(--gl-muted); }

.media-preview { display: block; width: min(240px, 100%); height: 150px; object-fit: cover; margin-top: 6px; background: var(--gl-canvas); border: 1px solid var(--gl-border); border-radius: 12px; }
.image-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 14px; margin: 0 0 28px; }
.image-card { display: grid; gap: 9px; padding: 10px; background: var(--gl-canvas); border: 1px solid var(--gl-border); border-radius: 12px; }
.image-card img { width: 100%; height: 150px; object-fit: cover; background: #fff; border-radius: 8px; }
.image-card .remove-image { color: var(--gl-error); }
input[type="file"] { padding: 8px; background: var(--gl-canvas); }

.login-page { min-height: 100vh; display: grid; place-items: center; background: radial-gradient(circle at top left, #ddf7ef, transparent 40%), linear-gradient(135deg, var(--gl-canvas), #fff); }
.login-card { width: min(440px, calc(100% - 32px)); padding: 36px; background: #fff; border: 1px solid var(--gl-border); border-radius: 24px; box-shadow: 0 24px 60px rgb(20 33 58 / 10%); }
.login-card h1 { margin: 5px 0; color: var(--gl-ink); font-size: 30px; }
.login-card > p { color: var(--gl-body); }
.login-brand { margin: 0 0 32px; }
.stack { display: grid; gap: 16px; }
.stack label { display: grid; gap: 7px; }
.login-hint { margin-top: 18px; color: var(--gl-muted); font-size: 12px; }

@media (max-width: 1180px) {
  .admin-shell { grid-template-columns: 220px minmax(0, 1fr); }
  .sidebar { padding-inline: 15px; }
  .filter-bar { grid-template-columns: repeat(4, minmax(125px, 1fr)); }
  .search-field { grid-column: span 2; }
  .filter-actions { align-self: end; }
  .global-search { width: 210px; }
  .table-wrap { overflow-x: auto; overflow-y: visible; }
  .dashboard-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .inventory-batch-grid { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
}
@media (max-width: 900px) {
  .admin-shell { grid-template-columns: 190px minmax(0, 1fr); }
  .content { padding: 18px; }
  .topbar { padding-inline: 22px; }
  .global-search { display: none; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .detail-grid { grid-template-columns: 1fr; }
  .panel { padding: 22px; }
  .filter-bar { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .delivery-filter-grid { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .search-field { grid-column: 1 / -1; }
  .section-list article { align-items: stretch; flex-direction: column; }
  .section-list .position-field { width: auto; }
  .dashboard-chart-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .admin-shell { display: block; }
  .sidebar { position: static; width: 100%; height: auto; max-height: none; padding: 20px 16px; }
  .brand { margin-bottom: 18px; }
  .sidebar nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sidebar nav p { grid-column: 1 / -1; }
  .sidebar-promo { display: none; }
  .topbar { position: static; min-height: 82px; padding: 14px 18px; }
  .topbar h1 { font-size: 20px; }
  .admin-profile strong { display: none; }
  .notification-button { display: none; }
  .content { padding: 14px; }
  .panel { padding: 18px 15px; border-radius: 13px; }
  .panel-heading { align-items: flex-start; margin-bottom: 22px; }
  .metric-grid, .form-grid, .variant-row, .inventory-batch-grid, .delivery-filter-grid { grid-template-columns: 1fr; }
  .metric-grid .metric-card, .form-grid .wide { grid-column: auto; }
  .inventory-batch-grid .inventory-reason { grid-column: auto; }
  .dashboard-intro { align-items: flex-start; flex-direction: column; }
  .dashboard-date-filter { width: 100%; }
  .dashboard-date-filter select { width: 100%; min-width: 0; }
  .dashboard-metrics { grid-template-columns: 1fr; }
  .sales-chart, .orders-chart { height: 225px; }
  .filter-bar { grid-template-columns: 1fr; }
  .search-field { grid-column: auto; }
  .filter-actions { width: 100%; }
  .filter-actions > * { flex: 1; }
  .inline-form { align-items: stretch; flex-direction: column; }
  .pagination { align-items: flex-start; flex-direction: column; }
}

/* Readable admin typography — enlarged consistently across every admin screen. */
body { font-size: 16px; line-height: 1.55; }
.brand-mark { font-size: 15px; }
.brand-copy { font-size: 19px; }
.brand-copy small { font-size: 13px; }
.sidebar nav p, .eyebrow { font-size: 12px; }
.sidebar nav a { font-size: 15px; }
.sidebar-promo, .sidebar-promo b { font-size: 14px; }
.topbar h1 { font-size: 27px; }
.global-search input { font-size: 14px; }
.notification-button span { font-size: 10px; }
.admin-profile strong, .profile-avatar { font-size: 14px; }
.panel-heading h2, .panel h2 { font-size: 24px; }
.filter-field > span:first-child, label { font-size: 14px; }
.result-summary { font-size: 14px; }
.result-summary > span { font-size: 12px; }
table { font-size: 14px; }
thead th { font-size: 13px; }
.sort-indicator { font-size: 13px; }
.table-media-placeholder { font-size: 12px; }
.table-media strong { font-size: 14px; }
.status { font-size: 12px; }
.action-menu-item { font-size: 14px; }
.status-option { font-size: 13px; }
.page-link { font-size: 14px; }
.pagination-summary { font-size: 13px; }
.metric-card strong, .large-value { font-size: 34px; }
.dashboard-intro h2 { font-size: 31px; }
.dashboard-filter select { font-size: 13px; }
.dashboard-metrics .metric-card strong { font-size: clamp(27px, 2vw, 34px); }
.chart-scale, .chart-labels, .order-bar-column strong, .order-bar-column small { font-size: 12px; }
.inventory-batch-row legend, .variant-row legend, .variant-row label { font-size: 14px; }
.section-hint, .required-note, .login-hint { font-size: 14px; }
.field-hint, .password-pattern { font-size: 13px; }
.password-info { font-size: 13px; }
.password-input button { font-size: 14px; }
.login-card h1 { font-size: 34px; }

.location-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.location-fields label { min-width: 0; }
.master-tabs { display: flex; gap: 8px; padding: 0 24px 18px; }
.master-tabs a { padding: 9px 14px; border-radius: 999px; background: #eef4ef; color: #36543d; text-decoration: none; font-weight: 700; }
.master-tabs a.active { background: #246b39; color: #fff; }
.inline-form { display: inline; }
.legacy-warning { padding: 12px 14px; border-radius: 10px; background: #fff6df; color: #7c5610; }

/* Service Location PIN selector */
.pin-picker {
  padding: 22px;
  background: linear-gradient(135deg, #fbfefd, #f7fcfa);
  border: 1px solid #dbe9e4;
  border-radius: 18px;
  box-shadow: 0 10px 30px rgb(20 80 60 / 4%);
}
.pin-picker-heading { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.pin-picker-heading > div { min-width: 0; }
.pin-picker-heading strong { display: block; font-size: 18px; }
.pin-picker-heading p { margin: 3px 0 0; color: var(--gl-body); font-size: 14px; font-weight: 500; }
.pin-picker-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  flex: 0 0 auto;
  color: var(--gl-primary-strong);
  background: var(--gl-primary-soft);
  border-radius: 14px;
  font-size: 26px;
}
.pin-multiselect-control {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 38px;
  align-items: start;
  min-height: 58px;
  padding: 8px 8px 8px 10px;
  background: #fff;
  border: 1.5px solid var(--gl-primary);
  border-radius: 12px;
  box-shadow: 0 0 0 3px rgb(18 185 138 / 5%);
}
.pin-selection-scroll {
  display: flex;
  align-items: center;
  align-content: flex-start;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
  min-height: 40px;
  max-height: 132px;
  padding-right: 7px;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-color: #a9cfc4 #eef6f3;
  scrollbar-width: thin;
}
.pin-selection-scroll::-webkit-scrollbar { width: 7px; }
.pin-selection-scroll::-webkit-scrollbar-track { background: #eef6f3; border-radius: 999px; }
.pin-selection-scroll::-webkit-scrollbar-thumb { background: #a9cfc4; border-radius: 999px; }
.pin-selection-scroll::-webkit-scrollbar-thumb:hover { background: var(--gl-primary-strong); }
.pin-chip-list { display: contents; }
.pin-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  padding: 8px 11px;
  color: #23447e;
  background: #edf4ff;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 730;
}
.pin-chip button {
  width: 20px;
  height: 20px;
  padding: 0;
  color: #74849b;
  background: transparent;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  font-size: 22px;
  line-height: 17px;
}
.pin-chip button:hover { color: #b52e3b; background: #fff; }
.pin-selection-scroll > input {
  width: auto;
  min-width: 220px;
  flex: 1 1 220px;
  min-height: 38px;
  padding: 7px 4px;
  border: 0;
  box-shadow: none;
}
.pin-selection-scroll > input:focus { border: 0; box-shadow: none; }
.pin-picker-toggle {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  color: var(--gl-body);
  background: transparent;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  font-size: 20px;
}
.pin-picker-toggle:hover { color: var(--gl-primary-strong); background: var(--gl-primary-soft); }
.pin-picker-dropdown {
  margin-top: 3px;
  padding: 10px;
  background: #fff;
  border: 1px solid #d7e2e7;
  border-radius: 12px;
  box-shadow: 0 18px 42px rgb(20 33 58 / 11%);
}
.pin-picker-dropdown[hidden] { display: none; }
.pin-picker-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.pin-dropdown-search {
  display: grid !important;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  min-height: 48px;
  padding-left: 8px;
  color: #74849b;
  background: #fbfcfd;
  border: 1px solid #dce4e8;
  border-radius: 10px;
}
.pin-dropdown-search > span { text-align: center; font-size: 25px; font-weight: 400; }
.pin-dropdown-search input { min-height: 46px; padding-left: 7px; border: 0; background: transparent; box-shadow: none; }
.pin-dropdown-search input:focus { border: 0; box-shadow: none; }
.pin-select-all { white-space: nowrap; }
.pin-all-note {
  margin: 9px 0 0;
  padding: 9px 12px;
  color: #176898;
  background: #edf7ff;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 650;
}
.pin-list {
  display: grid;
  max-height: 330px;
  overflow-y: auto;
  margin-top: 10px;
  border: 1px solid #edf1f4;
  border-radius: 9px;
  scrollbar-width: thin;
}
.pin-option {
  position: relative;
  display: grid !important;
  grid-template-columns: 26px 18px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 10px 14px;
  color: var(--gl-ink);
  background: #fff;
  border-bottom: 1px solid #edf1f4;
  cursor: pointer;
  font-size: 15px;
  font-weight: 560;
  transition: background .15s ease, color .15s ease;
}
.pin-option:last-child { border-bottom: 0; }
.pin-option:hover { background: #f7fbff; }
.pin-option.is-selected { background: linear-gradient(90deg, #eaf4ff, #f2f7ff); }
.pin-option input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; pointer-events: none; }
.pin-option-marker {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  color: transparent;
  background: #fff;
  border: 1.5px solid #76879c;
  border-radius: 4px;
  font-size: 15px;
  line-height: 1;
}
.pin-option.is-selected .pin-option-marker { color: #fff; background: #247fe3; border-color: #247fe3; }
.pin-option-location { color: #8796aa; font-size: 13px; }
.pin-option:has(input:focus-visible) { outline: 2px solid var(--gl-primary); outline-offset: -2px; }
.pin-empty { margin: 0; padding: 24px; color: var(--gl-muted); text-align: center; }

/* Order details */
.order-detail-page { min-width: 0; max-width: 1460px; margin: 0 auto; }
.order-page-header {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 20px;
}
.order-back-button {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  color: var(--gl-ink);
  background: #fff;
  border: 1px solid var(--gl-border);
  border-radius: 11px;
  box-shadow: 0 5px 16px rgb(20 33 58 / 5%);
  font-size: 25px;
}
.order-back-button:hover { color: var(--gl-primary-strong); border-color: #a8dcca; }
.order-title-block { min-width: 0; }
.order-title-line { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.order-title-line h2 { margin: 0; font-size: 28px; line-height: 1.2; letter-spacing: -.035em; }
.order-subtitle { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-top: 6px; color: var(--gl-body); font-size: 13px; }
.order-meta-pill { padding: 4px 10px; color: #44556c; background: #f4f7f8; border-radius: 999px; font-size: 11px; font-weight: 720; }
.order-meta-pill-blue { color: #1b67b0; background: #eaf3ff; }
.order-header-actions { display: flex; align-items: center; gap: 10px; }
.order-card { margin-bottom: 18px; padding: 22px; border-radius: 15px; box-shadow: 0 10px 30px rgb(20 33 58 / 4%); }
.order-primary-grid, .order-info-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); gap: 18px; }
.order-primary-grid > *, .order-info-grid > * { min-width: 0; }
.order-section-heading { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.order-section-heading h3 { margin: 0; color: var(--gl-ink); font-size: 16px; line-height: 1.25; }
.order-section-heading p { margin: 3px 0 0; color: var(--gl-body); font-size: 12px; }
.order-section-heading-split { justify-content: space-between; gap: 14px; }
.order-section-heading-split > div { display: flex; align-items: center; gap: 10px; min-width: 0; }
.order-section-heading-split > strong { font-size: 12px; white-space: nowrap; }
.order-section-icon {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  color: var(--gl-primary-strong);
  background: var(--gl-primary-soft);
  border-radius: 8px;
  font-size: 15px;
  font-weight: 850;
}
.order-section-icon-large { width: 42px; height: 42px; font-size: 21px; }
.order-status-timeline { display: grid; grid-template-columns: repeat(6, minmax(74px, 1fr)); min-width: 0; max-width: 100%; margin: 8px 0 25px; overflow-x: auto; padding-bottom: 4px; }
.order-stage { position: relative; display: grid; justify-items: center; align-content: start; min-width: 84px; color: #68788f; text-align: center; }
.order-stage:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 20px;
  left: calc(50% + 22px);
  z-index: 0;
  width: calc(100% - 44px);
  border-top: 1.5px dashed #d5dfe7;
}
.order-stage.is-complete:not(:last-child)::after { border-color: #86d8c0; }
.order-stage-dot {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  color: #728198;
  background: #f3f6f8;
  border: 1px solid #edf1f4;
  border-radius: 50%;
  font-size: 16px;
  font-weight: 800;
}
.order-stage.is-current .order-stage-dot, .order-stage.is-complete .order-stage-dot { color: #fff; background: linear-gradient(135deg, #18c494, #08a97f); border-color: var(--gl-primary); box-shadow: 0 6px 14px rgb(18 185 138 / 22%); }
.order-stage strong { margin-top: 8px; color: inherit; font-size: 12px; white-space: nowrap; }
.order-stage.is-current strong, .order-stage.is-complete strong { color: var(--gl-primary-strong); }
.order-stage small { margin-top: 4px; color: var(--gl-primary-strong); font-size: 10px; }
.order-status-form { display: grid; grid-template-columns: minmax(200px, 1fr) auto; align-items: end; gap: 12px; padding-top: 18px; border-top: 1px solid var(--gl-border-soft); }
.order-status-form label { display: grid; gap: 7px; }
.order-status-form button { min-width: 150px; }
.order-cancelled-banner { margin: -4px 0 18px; padding: 13px 14px; color: #8e2026; background: #fff2f3; border: 1px solid #f8d5d8; border-radius: 9px; }
.order-cancelled-banner > strong { display: block; }
.order-cancellation-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px 16px; margin: 12px 0 0; padding-top: 11px; border-top: 1px solid #f1cbd0; }
.order-cancellation-details > div { display: grid; gap: 2px; min-width: 0; }
.order-cancellation-details .is-wide { grid-column: 1 / -1; }
.order-cancellation-details dt { color: #a25359; font-size: 11px; font-weight: 700; }
.order-cancellation-details dd { margin: 0; overflow-wrap: anywhere; color: #5f1f24; font-size: 12px; font-weight: 650; }
.order-status-card .terminal-status-note { margin-bottom: 0; }
.order-summary-list { display: grid; gap: 12px; margin: 0; }
.order-summary-list > div { display: flex; justify-content: space-between; gap: 18px; }
.order-summary-list dt { color: var(--gl-body); }
.order-summary-list dd { margin: 0; color: var(--gl-ink); font-weight: 650; }
.order-summary-list .order-discount { color: var(--gl-primary-strong); }
.order-summary-list .order-summary-total { align-items: center; margin-top: 3px; padding-top: 14px; border-top: 1px solid var(--gl-border-soft); }
.order-summary-total dt { color: var(--gl-ink); font-weight: 800; }
.order-summary-total dd { color: var(--gl-primary-dark); font-size: 25px; font-weight: 850; }
.order-payment-banner { margin-top: 15px; padding: 14px; background: linear-gradient(135deg, #fff9eb, #fff4dc); border-radius: 10px; }
.order-payment-banner > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.order-payment-banner span { color: #815a1e; font-size: 12px; font-weight: 700; }
.order-payment-banner > strong { display: block; margin-top: 7px; font-size: 12px; }
.order-customer-layout { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(240px, 1.35fr); }
.order-customer-profile { display: flex; align-items: center; gap: 16px; padding-right: 22px; }
.order-customer-avatar { display: grid; place-items: center; width: 58px; height: 58px; flex: 0 0 auto; color: var(--gl-primary-strong); background: var(--gl-primary-soft); border-radius: 50%; font-weight: 850; }
.order-customer-profile > div { display: grid; gap: 5px; min-width: 0; }
.order-customer-profile a { color: var(--gl-body); overflow-wrap: anywhere; font-size: 13px; }
.order-delivery-address { padding-left: 22px; border-left: 1px solid var(--gl-border-soft); }
.order-delivery-address > strong { font-size: 13px; }
.order-delivery-address p { max-width: 430px; margin: 7px 0 11px; color: var(--gl-body); font-size: 13px; line-height: 1.6; }
.order-detail-list { display: grid; gap: 18px; margin: 0; }
.order-detail-list > div { display: grid; gap: 2px; padding-left: 30px; position: relative; }
.order-detail-list > div::before { content: "○"; position: absolute; left: 4px; top: 1px; color: var(--gl-primary-strong); font-weight: 850; }
.order-detail-list dt { color: var(--gl-body); font-size: 12px; }
.order-detail-list dd { margin: 0; color: var(--gl-ink); font-size: 13px; }
.order-invoice-layout { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.order-invoice-layout .order-detail-list { grid-template-columns: repeat(3, minmax(150px, 1fr)); flex: 1; }
.order-invoice-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
@media (max-width: 800px) {
    .order-invoice-layout { align-items: stretch; flex-direction: column; }
    .order-invoice-layout .order-detail-list { grid-template-columns: 1fr; }
    .order-invoice-actions { justify-content: flex-start; }
}
.order-fulfilment-card { background: linear-gradient(105deg, #fbfefd, #f5fcf9); }
.order-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.order-metric-grid article { display: grid; align-content: center; gap: 5px; min-height: 100px; padding: 15px; background: #fff; border: 1px solid var(--gl-border-soft); border-radius: 11px; }
.order-metric-grid span, .order-metric-grid small { color: var(--gl-body); font-size: 12px; }
.order-metric-grid strong { color: var(--gl-primary-dark); font-size: 20px; line-height: 1.25; }
.order-info-note { margin: 13px 0 0; padding: 9px 11px; color: var(--gl-body); background: rgb(255 255 255 / 65%); border-radius: 8px; font-size: 11px; }
.order-delivery-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 18px; }
.order-partner-warning { margin: -4px 0 14px; padding: 10px 12px; color: #176898; background: #edf7ff; border-radius: 8px; font-size: 12px; text-align: right; }
.order-delivery-form { display: grid; grid-template-columns: minmax(230px, 1fr) minmax(230px, 1fr) auto; align-items: end; gap: 14px; }
.order-delivery-form label { display: grid; gap: 7px; }
.order-delivery-form button { min-width: 135px; }
.order-items-card .table-wrap { overflow-x: auto; }
.order-items-table { min-width: 960px; }
.order-items-table th, .order-items-table td { height: 58px; }
.order-items-table tfoot td { height: 50px; background: #fbfefd; border-top: 1px solid var(--gl-border); border-bottom: 0; font-weight: 800; text-align: right; }
.order-items-table tfoot td:last-child { color: var(--gl-primary-dark); font-size: 18px; }
.order-product-image, .order-product-placeholder { display: grid; place-items: center; width: 46px; height: 46px; object-fit: cover; background: #f5faf8; border: 1px solid var(--gl-border-soft); border-radius: 8px; }
.order-product-placeholder { color: var(--gl-primary-strong); font-size: 11px; font-weight: 850; }
.order-variant-pill { padding: 5px 10px; color: var(--gl-primary-strong); background: var(--gl-primary-soft); border-radius: 999px; font-size: 11px; font-weight: 700; }
.order-activity-card { padding-top: 0; }
.order-tabs { display: flex; gap: 28px; margin: 0 -22px 18px; padding: 0 22px; border-bottom: 1px solid var(--gl-border-soft); }
.order-tabs button { padding: 16px 3px 13px; color: var(--gl-body); background: transparent; border: 0; border-bottom: 2px solid transparent; cursor: pointer; font-weight: 700; }
.order-tabs button.is-active { color: var(--gl-primary-strong); border-bottom-color: var(--gl-primary); }
.order-activity-panel[hidden] { display: none; }
.order-activity-entry { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 12px; padding: 13px 4px; border-bottom: 1px solid var(--gl-border-soft); }
.order-activity-entry:last-child { border-bottom: 0; }
.order-activity-dot { width: 9px; height: 9px; margin-top: 6px; background: var(--gl-primary); border: 2px solid #cdf0e5; border-radius: 50%; }
.order-activity-entry p { margin: 3px 0 0; color: var(--gl-body); font-size: 12px; }
.order-activity-entry time { color: var(--gl-muted); font-size: 11px; white-space: nowrap; }
.order-empty-activity { margin: 0; padding: 20px; color: var(--gl-muted); text-align: center; }

@media (max-width: 1100px) {
  .order-primary-grid, .order-info-grid { grid-template-columns: 1fr; }
  .order-primary-grid, .order-info-grid { min-width: 0; }
  .order-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .location-fields { grid-template-columns: 1fr; }
  .pin-picker { padding: 16px; }
  .pin-picker-toolbar { grid-template-columns: 1fr; }
  .pin-select-all { width: 100%; }
  .order-page-header { grid-template-columns: 42px minmax(0, 1fr); align-items: start; }
  .order-back-button { width: 42px; height: 42px; }
  .order-title-line h2 { font-size: 22px; overflow-wrap: anywhere; }
  .order-header-actions { grid-column: 1 / -1; }
  .order-header-actions > * { flex: 1; }
  .order-card { padding: 17px; }
  .order-status-timeline { grid-template-columns: repeat(6, 95px); }
  .order-status-form, .order-delivery-form { grid-template-columns: 1fr; }
  .order-cancellation-details { grid-template-columns: 1fr; }
  .order-cancellation-details .is-wide { grid-column: auto; }
  .order-status-form button, .order-delivery-form button { width: 100%; }
  .order-customer-layout { grid-template-columns: 1fr; gap: 18px; }
  .order-customer-profile { padding-right: 0; }
  .order-delivery-address { padding: 18px 0 0; border-top: 1px solid var(--gl-border-soft); border-left: 0; }
  .order-metric-grid, .order-delivery-metrics { grid-template-columns: 1fr; }
  .order-activity-entry { grid-template-columns: 12px minmax(0, 1fr); }
  .order-activity-entry time { grid-column: 2; }
}
@media print {
  .sidebar, .topbar, .breadcrumbs, .order-back-button, .order-header-actions, .order-status-form, .order-delivery-form, .order-tabs { display: none !important; }
  .admin-shell { display: block; }
  .content { max-width: none; padding: 0; }
  .order-card { break-inside: avoid; box-shadow: none; }
  .order-activity-panel[hidden] { display: block; }
}

/* Product review moderation */
.review-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.review-summary article { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 15px 18px; background: #fff; border: 1px solid var(--gl-border-soft); border-radius: 12px; box-shadow: var(--shadow); }
.review-summary span { color: var(--gl-body); font-weight: 700; }
.review-summary strong { color: var(--gl-primary-dark); font-size: 23px; }
.review-filter-bar { display: grid; grid-template-columns: repeat(6, minmax(135px, 1fr)); align-items: end; gap: 14px; margin-bottom: 22px; }
.review-search-field, .review-product-filter, .review-filter-bar .filter-actions { grid-column: span 2; }
.review-table { min-width: 1220px; }
.review-table th, .review-table td { white-space: normal; }
.review-product-cell { display: flex; align-items: center; gap: 12px; min-width: 250px; }
.review-product-cell > img, .review-product-cell > .table-media-placeholder { width: 46px; height: 46px; flex: 0 0 auto; border-radius: 8px; }
.review-product-cell > img { object-fit: contain; background: #f7faf8; border: 1px solid var(--gl-border-soft); }
.review-product-cell > span:last-child { display: grid; gap: 4px; min-width: 0; }
.review-product-cell strong { overflow: hidden; max-width: 280px; text-overflow: ellipsis; white-space: nowrap; }
.review-product-cell small, .table-subtext { display: block; margin-top: 3px; color: var(--gl-muted); font-size: 12px; line-height: 1.35; }
.table-link { color: var(--gl-primary-strong); font-weight: 740; }
.table-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.muted-value { color: var(--gl-muted); }
.rating-value { color: #9a6710; font-weight: 800; white-space: nowrap; }
.verification-badge, .record-badge, .read-only-label { display: inline-flex; align-items: center; min-height: 28px; padding: 5px 10px; color: #65766f; background: #f2f5f4; border-radius: 999px; font-size: 12px; font-weight: 760; white-space: nowrap; }
.verification-badge.is-verified { color: var(--gl-primary-strong); background: var(--gl-primary-soft); }
.record-badge { color: #5f6670; background: #edf0f2; }
.review-page-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; padding: 4px 2px; }
.review-back-link { display: inline-flex; margin-bottom: 10px; color: var(--gl-primary-strong); font-weight: 740; }
.review-title-line { display: flex; align-items: center; flex-wrap: wrap; gap: 11px; }
.review-title-line h2 { margin: 0; color: var(--gl-ink); font-size: 27px; line-height: 1.2; }
.review-page-header p { margin: 8px 0 0; color: var(--gl-body); }
.review-detail-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .7fr); gap: 20px; align-items: start; }
.review-detail-sidebar { position: sticky; top: 92px; }
.review-detail-main, .review-detail-sidebar { min-width: 0; }
.review-info-grid { display: grid; grid-template-columns: minmax(240px, .75fr) minmax(0, 1.25fr); gap: 20px; }
.review-info-grid .panel { min-width: 0; }
.review-detail-grid .panel-heading { margin-bottom: 20px; }
.review-content-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 28px; margin: 0; }
.review-content-list > div, .review-detail-list > div { display: grid; gap: 4px; min-width: 0; }
.review-content-list .is-wide { grid-column: 1 / -1; }
.review-content-list dt, .review-detail-list dt { color: var(--gl-muted); font-size: 12px; font-weight: 700; }
.review-content-list dd, .review-detail-list dd { margin: 0; overflow-wrap: anywhere; color: var(--gl-ink); font-weight: 650; }
.review-copy { padding: 14px; background: #f8fbfa; border: 1px solid var(--gl-border-soft); border-radius: 9px; line-height: 1.65; white-space: pre-wrap; }
.review-detail-list { display: grid; gap: 15px; margin: 0; }
.review-context-note { margin: 18px 0 0; padding: 12px; color: var(--gl-body); background: var(--gl-primary-wash); border-radius: 8px; line-height: 1.5; }
.review-photos { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--gl-border-soft); }
.review-photos h3 { margin: 0 0 13px; color: var(--gl-ink); font-size: 15px; }
.review-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 120px)); gap: 12px; }
.review-photo-link { display: block; border-radius: 10px; }
.review-photo-link img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: #f3f7f5; border: 1px solid var(--gl-border-soft); border-radius: 10px; }
.review-photo-link:hover img, .review-photo-link:focus-visible img { border-color: var(--gl-primary); box-shadow: 0 0 0 3px rgb(18 185 138 / 12%); }
.review-photo-dialog { width: min(92vw, 760px); max-height: 90vh; padding: 16px; border: 0; border-radius: 14px; box-shadow: 0 22px 70px rgb(12 34 28 / 28%); }
.review-photo-dialog::backdrop { background: rgb(7 24 19 / 68%); }
.review-photo-dialog > img { display: block; width: 100%; max-height: calc(90vh - 75px); object-fit: contain; border-radius: 9px; }
.review-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.review-dialog-heading h2 { margin: 0; font-size: 18px; }
.review-dialog-close { display: grid; place-items: center; width: 38px; height: 38px; color: var(--gl-ink); background: #f2f6f4; border: 0; border-radius: 50%; cursor: pointer; font-size: 24px; }
.review-moderation-actions { display: grid; gap: 18px; margin-top: 21px; padding-top: 19px; border-top: 1px solid var(--gl-border-soft); }
.review-moderation-actions form, .review-moderation-actions button { width: 100%; }
.review-reject-form { display: grid; gap: 9px; }
.review-reject-form:target { padding: 13px; background: #fff8f8; border: 1px solid #f1ced1; border-radius: 10px; }
.review-record-card { border-color: #efd5d8; }
.review-record-card p { color: var(--gl-body); line-height: 1.5; }
.moderation-history { display: grid; margin: 0; padding: 0; list-style: none; }
.moderation-history li { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 13px; padding: 15px 3px; border-bottom: 1px solid var(--gl-border-soft); }
.moderation-history li:last-child { border-bottom: 0; }
.moderation-history-dot { width: 10px; height: 10px; margin-top: 5px; background: var(--gl-primary); border: 2px solid #cdeee4; border-radius: 50%; }
.moderation-history p { margin: 4px 0 0; color: var(--gl-body); }
.moderation-history .moderation-reason { color: var(--gl-ink); }
.moderation-history time { color: var(--gl-muted); font-size: 12px; white-space: nowrap; }
.moderation-history .review-empty-history { display: block; color: var(--gl-muted); text-align: center; }

@media (max-width: 1180px) {
  .review-filter-bar { grid-template-columns: repeat(4, minmax(135px, 1fr)); }
  .review-detail-grid { grid-template-columns: 1fr; }
  .review-detail-sidebar { position: static; }
}
@media (max-width: 900px) {
  .review-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-filter-bar { grid-template-columns: repeat(2, minmax(135px, 1fr)); }
  .review-search-field, .review-product-filter { grid-column: span 2; }
  .review-info-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .review-page-header { align-items: flex-start; flex-direction: column; }
  .review-summary, .review-filter-bar, .review-content-list { grid-template-columns: 1fr; }
  .review-search-field, .review-product-filter, .review-filter-bar .filter-actions, .review-content-list .is-wide { grid-column: auto; }
  .review-title-line h2 { font-size: 22px; }
  .moderation-history li { grid-template-columns: 12px minmax(0, 1fr); }
  .moderation-history time { grid-column: 2; white-space: normal; }
}
