:root {
  --bg: #f6f7f9; --card: #ffffff; --ink: #17202c; --muted: #64748b;
  --line: #e2e8f0; --accent: #2563eb; --accent-ink: #ffffff;
  --up: #16a34a; --down: #dc2626; --flat: #94a3b8;
  --map-growth-strong: #15803d; --map-growth-mild: #4fbf75;
  --map-decline-mild: #ca8a04; --map-decline-strong: #dc2626;
  --chip: #eef2f7; --shadow: 0 1px 3px rgba(15, 23, 42, .08);
  --radius: 14px;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #0f172a; --card: #1e293b; --ink: #e2e8f0; --muted: #94a3b8;
    --line: #334155; --accent: #3b82f6; --chip: #263449;
    --map-growth-strong: #22c55e; --map-growth-mild: #86efac;
    --map-decline-mild: #facc15; --map-decline-strong: #f87171;
    --shadow: 0 1px 3px rgba(0, 0, 0, .4);
  }
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
  background: var(--bg); color: var(--ink);
  font: 16px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.hidden { display: none !important; }
.muted { color: var(--muted); }
.error { color: var(--down); font-size: .9rem; margin-top: .5rem; }

/* ---------- login ---------- */
.login { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; overflow-y: auto; background: var(--bg); z-index: 50; }
.login-card { text-align: center; width: min(320px, 88vw); }
.login-card h1 { margin: .4rem 0 0; font-size: 1.7rem; }
.login-card p { margin: .2rem 0 1.2rem; }
.login-card input {
  width: 100%; margin: .35rem 0; padding: .8rem .9rem; border-radius: 10px;
  border: 1px solid var(--line); background: var(--card); color: var(--ink); font-size: 1rem;
}
.logo-ring { color: var(--accent); }
.hosted-auth-btn { display: block; text-decoration: none; }
.auth-note { color: var(--muted); font-size: .82rem; line-height: 1.45; }
.paywall-card { width: min(480px, 92vw); padding: 1.25rem; margin: auto; }
.paywall-card .btn { width: 100%; margin-top: .55rem; }
.paywall-price { font-size: 1.15rem; }
.paywall-price strong { font-size: 1.7rem; color: var(--ink); }
.paywall-features { margin: .8rem 0 1rem; padding-left: 1.25rem; text-align: left; color: var(--ink); }
.paywall-features li { margin: .45rem 0; }
.btn.secondary { background: var(--chip); color: var(--ink); }
.btn.text-btn { background: transparent; color: var(--muted); }

/* ---------- shell ---------- */
.boot-screen { min-height: 100dvh; display: flex; flex-direction: column; }
.boot-view { width: 100%; }
.boot-line {
  height: .78rem; margin: .65rem 0; border-radius: 999px;
  background: linear-gradient(100deg, var(--chip) 40%, var(--card) 50%, var(--chip) 60%);
  background-size: 200% 100%; animation: sk 1.2s infinite;
}
.boot-line.short { width: 32%; }
.boot-line.medium { width: 62%; }
.boot-line.stat { width: 46%; height: 1.75rem; }
.boot-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem 1rem; }
.app { display: flex; flex-direction: column; min-height: 100dvh; }
.topbar {
  position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: .6rem;
  padding: calc(.6rem + env(safe-area-inset-top)) .9rem .6rem; background: var(--card);
  border-bottom: 1px solid var(--line);
}
.brand { display: flex; align-items: center; gap: .4rem; font-weight: 700; color: var(--accent); }
.coverage { margin-left: auto; font-size: .72rem; color: var(--muted); }
.icon-btn { min-width: 44px; min-height: 44px; border: 0; background: none; color: var(--muted); font-size: 1.1rem; cursor: pointer; padding: .45rem; }
.account-control { width: auto; font-size: .8rem; font-weight: 700; }
.view { flex: 1; width: 100%; max-width: 760px; margin: 0 auto; padding: 1rem .9rem calc(4.6rem + env(safe-area-inset-bottom)); }
.bottomnav {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 20; display: flex;
  background: var(--card); border-top: 1px solid var(--line);
  padding-bottom: env(safe-area-inset-bottom);
}
.bottomnav a {
  flex: 1; text-align: center; padding: .5rem 0 .55rem; text-decoration: none;
  color: var(--muted); font-size: .72rem; font-weight: 600;
}
.bottomnav a.active { color: var(--accent); }
.nav-ico { display: block; font-size: 1.15rem; line-height: 1.2; }
@media (min-width: 720px) {
  .bottomnav { position: sticky; top: 0; bottom: auto; order: -1; border-top: 0; border-bottom: 1px solid var(--line); justify-content: center; gap: 2rem; }
  .bottomnav a { flex: 0 0 auto; display: flex; gap: .4rem; align-items: center; font-size: .9rem; padding: .7rem .4rem; }
  .nav-ico { display: inline; font-size: 1rem; }
  .view { padding-bottom: 2rem; }
}

/* ---------- cards ---------- */
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: .9rem 1rem; margin-bottom: .9rem; }
.card h3 { margin: 0 0 .55rem; font-size: .95rem; }
.stat-big { font-size: 1.9rem; font-weight: 800; letter-spacing: -.02em; }
.mtd-badges { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .3rem; }
.territory-card { overflow: hidden; }
.territory-card.loading { opacity: .65; pointer-events: none; }
.customer-type-filter { position: relative; overflow: visible; }
.customer-type-filter.loading { opacity: .65; pointer-events: none; }
.customer-type-filter-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.customer-type-filter-head h3 { margin: .08rem 0 .1rem; }
.customer-type-filter-head p { max-width: 31rem; margin: 0; color: var(--muted); font-size: .72rem; }
.customer-type-filter-actions { display: flex; align-items: center; gap: .4rem; }
.customer-type-picker { position: relative; }
.customer-type-picker > summary { display: flex; align-items: center; justify-content: space-between; gap: .45rem; min-width: 10rem; list-style: none; border: 1px solid var(--line); background: var(--chip); color: var(--ink); cursor: pointer; }
.customer-type-picker > summary::-webkit-details-marker { display: none; }
.customer-type-picker[open] > summary { border-color: var(--accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent); }
.customer-type-menu { position: absolute; top: calc(100% + .4rem); right: 0; z-index: 15; width: min(21rem, calc(100vw - 2rem)); padding: .65rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--card); box-shadow: 0 12px 30px rgba(15, 23, 42, .2); }
.customer-type-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; max-height: 18rem; overflow-y: auto; }
.customer-type-options label { display: flex; align-items: center; gap: .45rem; min-width: 0; padding: .42rem .48rem; border: 1px solid var(--line); border-radius: .55rem; cursor: pointer; }
.customer-type-options label:has(input:checked) { border-color: color-mix(in srgb, var(--accent) 55%, var(--line)); background: color-mix(in srgb, var(--accent) 8%, var(--card)); }
.customer-type-options input { flex: 0 0 auto; accent-color: var(--accent); }
.customer-type-options span, .customer-type-options strong, .customer-type-options small { display: block; min-width: 0; }
.customer-type-options strong { font-size: .74rem; }
.customer-type-options small { color: var(--muted); font-size: .6rem; white-space: nowrap; }
.customer-type-apply { width: 100%; margin-top: .55rem; }
.customer-type-reset:disabled { opacity: .45; cursor: default; }
.territory-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; }
.territory-head h3 { margin-bottom: .12rem; }
.territory-date-controls { display: flex; align-items: flex-end; gap: .4rem; }
.territory-date { display: grid; gap: .18rem; color: var(--muted); font-size: .68rem; font-weight: 700; }
.territory-date input {
  min-height: 36px; padding: .35rem .5rem; border: 1px solid var(--line); border-radius: .55rem;
  background: var(--chip); color: var(--ink); font: inherit; color-scheme: light;
}
@media (prefers-color-scheme: dark) { .territory-date input { color-scheme: dark; } }
.territory-primary { margin: .85rem 0 .65rem; }
.territory-primary span, .territory-primary strong { display: block; }
.territory-comparisons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.territory-comparisons > div, .territory-quality > div {
  min-width: 0; padding: .65rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--chip);
}
.territory-comparisons span, .territory-comparisons strong, .territory-quality span,
.territory-quality strong, .territory-quality small { display: block; }
.territory-comparisons strong { margin: .15rem 0 .35rem; }
.territory-comparisons .badge { display: inline-block; white-space: normal; }
.territory-quality { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin-top: .55rem; }
.territory-quality strong { margin-top: .12rem; font-size: 1.3rem; }
.territory-quality small { margin-top: .12rem; color: var(--muted); font-size: .68rem; }
.territory-foot { margin-top: .55rem; font-size: .7rem; }
@media (max-width: 600px) {
  .territory-head { flex-direction: column; }
  .territory-date-controls { width: 100%; }
  .territory-date { flex: 1; }
  .territory-date input { width: 100%; }
  .territory-comparisons { grid-template-columns: 1fr; }
}
.product-pulse-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.product-pulse-item { width: 100%; padding: .65rem .7rem; border: 1px solid rgba(148,163,184,.18); border-radius: .7rem; background: rgba(15,23,42,.22); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.product-pulse-item:hover, .product-pulse-item.active { border-color: rgba(56,189,248,.6); background: rgba(56,189,248,.08); }
.product-pulse-item .name { margin: .12rem 0 .3rem; }
.product-pulse-value { font-size: 1rem; font-weight: 750; }
.pulse-open { display: block; margin-top: .45rem; color: var(--accent, #38bdf8); font-size: .72rem; font-weight: 700; }
.product-pulse-detail { margin-top: .7rem; padding: .8rem; border: 1px solid rgba(56,189,248,.28); border-radius: .8rem; background: rgba(2,6,23,.22); }
.pulse-detail-head { display: flex; justify-content: space-between; align-items: flex-start; gap: .75rem; }
.pulse-detail-head h4 { margin: .1rem 0 .55rem; font-size: 1.05rem; }
.pulse-detail-summary { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .45rem; margin-bottom: .7rem; }
.pulse-detail-summary > div { padding: .5rem; border-radius: .55rem; background: rgba(148,163,184,.08); }
.pulse-detail-summary .sub, .pulse-detail-summary strong { display: block; }
.pulse-detail-summary strong { margin-top: .15rem; }
.pulse-detail-columns { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .8rem; }
.pulse-detail-columns h4, .pulse-lines h4 { margin: .45rem 0 .35rem; font-size: .83rem; }
.pulse-detail-row { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .45rem .25rem; border: 0; border-bottom: 1px solid rgba(148,163,184,.12); background: none; color: inherit; font: inherit; text-align: left; }
button.pulse-detail-row { cursor: pointer; }
button.pulse-detail-row:hover { background: rgba(56,189,248,.06); }
.pulse-detail-row small { display: block; color: var(--muted, #94a3b8); font-size: .68rem; margin-top: .1rem; }
.pulse-detail-row .amt { flex: 0 0 auto; text-align: right; }
.pulse-buyer-signal { margin: -.2rem 0 .45rem; }
.pulse-lines { margin-top: .65rem; }
.pulse-detail-foot { margin-top: .65rem; font-size: .7rem; }
.pulse-detail-loading .skeleton { min-height: 2.5rem; }
.product-pulse-note { margin-top: .55rem; font-size: .72rem; }
@media (max-width: 600px) {
  .product-pulse-grid, .pulse-detail-columns { grid-template-columns: 1fr; }
  .pulse-detail-summary { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
.vehicle-pulse-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.vehicle-pulse-head h3 { margin-bottom: 0; }
.vehicle-pulse-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .55rem; margin-top: .65rem; }
.vehicle-pulse-grid > div { min-width: 0; padding: .55rem; background: var(--chip); border-radius: .65rem; }
.vehicle-pulse-grid span, .vehicle-pulse-grid strong, .vehicle-pulse-grid small { display: block; }
.vehicle-pulse-grid strong { margin: .12rem 0; overflow-wrap: anywhere; }
.vehicle-pulse-grid small { color: var(--muted); font-size: .68rem; }
.vehicle-pulse-note { margin-top: .55rem; font-size: .72rem; }
@media (max-width: 600px) { .vehicle-pulse-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }

/* ---------- insights ---------- */
.insights-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; margin-bottom: .8rem; }
.insights-head h2 { margin: 0; font-size: 1.25rem; }
.insight-tabs { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; }
.insight-tabs .pill.active { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.insight-stats { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .65rem; margin-bottom: .9rem; }
.insight-stats > div { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: .75rem .85rem; }
.insight-stats span, .insight-stats strong, .insight-stats small { display: block; }
.insight-stats strong { margin-top: .12rem; font-size: 1.15rem; }
.insight-stats small { color: var(--muted); font-size: .7rem; }
.insight-note { margin: -.2rem 0 .5rem; font-size: .75rem; }
.insight-row { display: flex; width: 100%; align-items: center; gap: .65rem; padding: .62rem 0; border: 0; border-top: 1px solid var(--line); background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.insight-row:first-of-type { border-top: 0; }
.insight-row:hover { background: color-mix(in srgb, var(--accent) 6%, transparent); }
.insight-row .grow { flex: 1; min-width: 0; }
.insight-row strong, .insight-row small { display: block; }
.insight-row small { color: var(--muted); font-size: .72rem; margin-top: .1rem; }
.insight-value { flex: 0 0 auto; text-align: right; }
.insight-value .down, .insight-drill .down { color: var(--down); }
.insight-empty { padding: 1rem 0; }
.insight-drill { margin-top: .7rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.insight-drill-head { display: flex; align-items: center; gap: .65rem; margin-bottom: .5rem; }
.insight-drill-head div { flex: 1; }
.insight-drill-head strong, .insight-drill-head small { display: block; }
.insight-drill-head small { color: var(--muted); }
.hierarchy-link { border: 0; background: none; color: var(--accent); font: inherit; font-weight: 700; padding: 0; cursor: pointer; text-align: left; }
.insight-table { width: 100%; border-collapse: collapse; font-size: .8rem; }
.insight-table th, .insight-table td { padding: .42rem .5rem; border-top: 1px solid var(--line); text-align: left; }
.insight-table th { color: var(--muted); font-size: .72rem; }
.insight-table td:nth-child(n+2), .insight-table th:nth-child(n+2) { text-align: right; }
.stock-breakdown { min-width: 12rem; text-align: left; }
.stock-breakdown summary { display: flex; align-items: center; justify-content: flex-end; gap: .4rem; cursor: pointer; list-style-position: inside; white-space: nowrap; }
.stock-store-list { min-width: 25rem; margin-top: .45rem; padding: .45rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--chip); }
.stock-store-row { display: grid; grid-template-columns: 1fr 1fr 1.15fr; gap: .6rem; padding: .38rem 0; border-top: 1px solid var(--line); text-align: left; }
.stock-store-row:first-child { border-top: 0; }
.stock-store-row span, .stock-store-row strong, .stock-store-row small { display: block; }
.stock-store-row small { margin-top: .08rem; color: var(--muted); font-size: .66rem; }
.vehicle-insight-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.vehicle-insight-grid h4, .vehicle-model-heading { margin: .45rem 0 .55rem; font-size: .85rem; }
.vehicle-bar-row { display: grid; grid-template-columns: 6.3rem minmax(5rem,1fr) 3rem; align-items: center; gap: .45rem; margin: .42rem 0; font-size: .78rem; }
.vehicle-bar-row strong { text-align: right; }
.vehicle-bar-track { height: .55rem; background: var(--chip); border-radius: 999px; overflow: hidden; }
.vehicle-bar-track span { display: block; height: 100%; background: var(--accent); border-radius: inherit; }
@media (max-width: 600px) {
  .insights-head { flex-direction: column; }
  .insight-tabs { justify-content: flex-start; }
  .insight-stats { grid-template-columns: 1fr; gap: .45rem; }
  .vehicle-insight-grid { grid-template-columns: 1fr; }
  .stock-store-list { min-width: 19rem; }
  .stock-store-row { grid-template-columns: 1fr 1fr; }
  .stock-store-row span:last-child { grid-column: 1 / -1; }
}
.badge { display: inline-block; padding: .1rem .5rem; border-radius: 999px; font-size: .75rem; font-weight: 700; }
.badge.up { background: color-mix(in srgb, var(--up) 14%, transparent); color: var(--up); }
.badge.down { background: color-mix(in srgb, var(--down) 14%, transparent); color: var(--down); }
.badge.flat { background: var(--chip); color: var(--muted); }
.badge.warning { background: color-mix(in srgb, var(--warn) 15%, transparent); color: var(--warn); }
.row { display: flex; align-items: center; gap: .6rem; padding: .5rem 0; border-top: 1px solid var(--line); cursor: pointer; }
.row:first-of-type { border-top: 0; }
.row .grow { flex: 1; min-width: 0; }
.row .name { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.row .sub { font-size: .75rem; color: var(--muted); }
.row .amt { font-weight: 700; font-size: .9rem; white-space: nowrap; }
.skeleton { height: 70px; border-radius: var(--radius); background: linear-gradient(100deg, var(--card) 40%, var(--chip) 50%, var(--card) 60%); background-size: 200% 100%; animation: sk 1.2s infinite; border: 1px solid var(--line); margin-bottom: .9rem; }
@keyframes sk { to { background-position: -200% 0; } }

/* ---------- chat ---------- */
.chat { display: flex; flex-direction: column; min-height: calc(100dvh - 11rem); }
.msgs { flex: 1; }
.msg { margin: 0 0 .8rem; max-width: 100%; }
.msg.user { text-align: right; }
.msg.user .bubble { display: inline-block; background: var(--accent); color: var(--accent-ink); border-radius: 16px 16px 4px 16px; padding: .55rem .85rem; max-width: 86%; text-align: left; }
.msg.bot .bubble { background: var(--card); border: 1px solid var(--line); border-radius: 4px 16px 16px 16px; padding: .7rem .9rem; box-shadow: var(--shadow); overflow-x: auto; }
.assumptions { display: flex; flex-wrap: wrap; gap: .35rem; margin: .5rem 0 0; }
.assumptions .chip { background: var(--chip); color: var(--muted); border-radius: 999px; padding: .12rem .6rem; font-size: .72rem; font-weight: 600; }
.progress-line { font-size: .78rem; color: var(--muted); margin: .3rem 0 .8rem; }
.progress-line::before { content: "⟳ "; }
.pills { display: flex; flex-wrap: wrap; gap: .45rem; margin: .6rem 0 1rem; }
.pill { background: var(--card); border: 1px solid var(--line); color: var(--ink); border-radius: 999px; padding: .4rem .8rem; font-size: .8rem; cursor: pointer; }
.pill:active { background: var(--chip); }
.composer { position: fixed; bottom: calc(3.4rem + env(safe-area-inset-bottom)); left: 0; right: 0; padding: .5rem .9rem; }
.composer .inner { display: flex; gap: .5rem; max-width: 760px; margin: 0 auto; }
.composer input { flex: 1; padding: .75rem .95rem; border-radius: 999px; border: 1px solid var(--line); background: var(--card); color: var(--ink); font-size: 1rem; box-shadow: var(--shadow); }
.composer button { border: 0; border-radius: 999px; width: 2.9rem; background: var(--accent); color: #fff; font-size: 1.1rem; cursor: pointer; }
.composer button:disabled { opacity: .5; }
.composer .voice-dictation { flex: 0 0 2.9rem; border: 1px solid var(--line); background: var(--card); color: var(--ink); box-shadow: var(--shadow); }
.composer .voice-dictation.listening { border-color: var(--down); background: var(--down); color: #fff; box-shadow: 0 0 0 4px color-mix(in srgb, var(--down) 18%, transparent); }
.voice-status { min-height: 1rem; max-width: 760px; margin: .25rem auto 0; padding: 0 .35rem; color: var(--muted); font-size: .68rem; line-height: 1.35; }
.voice-status:empty { display: none; }
@media (prefers-reduced-motion: reduce) { .composer .voice-dictation { transition: none; } }
@media (min-width: 720px) { .composer { position: sticky; bottom: 0; } }
.newchat { font-size: .78rem; color: var(--accent); background: none; border: 0; cursor: pointer; padding: 0; }

/* ---------- markdown ---------- */
.md table { border-collapse: collapse; width: 100%; margin: .5rem 0; font-size: .85rem; }
.md th, .md td { border: 1px solid var(--line); padding: .35rem .55rem; text-align: left; white-space: nowrap; }
.md th { background: var(--chip); }
.md h2, .md h3 { margin: .7rem 0 .35rem; font-size: 1.02rem; }
.md ul { margin: .3rem 0; padding-left: 1.2rem; }
.md p { margin: .35rem 0; }
.md .table-wrap { overflow-x: auto; }

/* ---------- accounts ---------- */
.search { width: 100%; padding: .7rem .95rem; border-radius: 999px; border: 1px solid var(--line); background: var(--card); color: var(--ink); font-size: 1rem; margin-bottom: .8rem; }
.btn { border: 0; border-radius: 10px; padding: .65rem 1rem; font-weight: 700; cursor: pointer; font-size: .92rem; }
.btn.primary { background: var(--accent); color: #fff; width: 100%; margin-top: .4rem; }
.btn.ghost { background: var(--chip); color: var(--ink); }
.btn:disabled { opacity: .6; cursor: wait; }

/* ---------- account & billing ---------- */
.account-heading h1 { margin: 0 0 .9rem; font-size: 1.5rem; }
.eyebrow { margin: 0 0 .2rem !important; color: var(--accent); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.billing-status-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.billing-status-row h2, .billing-help h2 { margin: 0; font-size: 1.15rem; }
.billing-state { flex: 0 0 auto; border-radius: 999px; padding: .22rem .65rem; font-size: .72rem; font-weight: 800; text-transform: capitalize; }
.billing-state.good { background: color-mix(in srgb, var(--up) 14%, transparent); color: var(--up); }
.billing-state.attention { background: color-mix(in srgb, var(--warn) 15%, transparent); color: var(--warn); }
.billing-facts { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin: 1rem 0; }
.billing-facts div { padding: .7rem; border-radius: 10px; background: var(--chip); }
.billing-facts dt { color: var(--muted); font-size: .72rem; }
.billing-facts dd { margin: .15rem 0 0; font-weight: 700; }
.billing-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.billing-actions .btn { min-height: 44px; }
.billing-actions .btn.primary { width: auto; margin-top: 0; }
.billing-no-action { margin: .2rem 0 0; color: var(--muted); font-size: .85rem; }
.billing-notice { margin-bottom: .9rem; padding: .7rem .85rem; border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line)); border-radius: 10px; background: color-mix(in srgb, var(--accent) 8%, var(--card)); }
.billing-help p { margin-bottom: 0; }
@media (max-width: 480px) {
  .billing-facts { grid-template-columns: 1fr; }
  .billing-actions, .billing-actions .btn, .billing-actions .btn.primary { width: 100%; }
}

/* ---------- user invitations ---------- */
.invite-form-card h2, .invite-list-section h2 { margin: 0 0 .8rem; font-size: 1.1rem; }
.invite-form { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.invite-field { color: var(--muted); font-size: .75rem; }
.invite-field input, .invite-field select {
  display: block; width: 100%; min-height: 44px; margin-top: .25rem; padding: .65rem .7rem;
  border: 1px solid var(--line); border-radius: 10px; background: var(--card); color: var(--ink); font: inherit;
}
.personnel-assignment {
  grid-column: 1 / -1; display: grid; gap: .25rem; padding: .7rem .8rem;
  border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line));
  border-radius: 10px; background: color-mix(in srgb, var(--accent) 7%, var(--card));
}
.personnel-assignment strong { color: var(--ink); font-size: .85rem; }
.personnel-assignment span { color: var(--muted); font-size: .76rem; }

.invite-submit { grid-column: 1 / -1; width: auto !important; justify-self: start; min-height: 44px; }
.invitation-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; }
.invitation-email, .invitation-facts { font-size: .78rem; }
.invitation-facts { margin: .65rem 0 0; color: var(--muted); }
.invitation-actions { display: flex; gap: .5rem; margin-top: .75rem; }
.danger-action { color: var(--down) !important; }
@media (max-width: 600px) {
  .invite-form { grid-template-columns: 1fr; }
  .invite-submit { width: 100% !important; }
}
.back { color: var(--accent); text-decoration: none; font-size: .85rem; display: inline-block; margin-bottom: .6rem; }
.internal-note { font-size: .75rem; color: var(--down); margin-top: .6rem; }

/* ---------- notifications / pipeline status ---------- */
:root { --warn: #d97706; }
.bell { position: relative; }
.bell-badge {
  position: absolute; top: -.1rem; right: -.15rem; background: var(--down); color: #fff;
  border-radius: 999px; font-size: .58rem; min-width: .95rem; height: .95rem;
  line-height: .95rem; text-align: center; font-weight: 700; padding: 0 .15rem;
}
.status-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; margin-bottom: .9rem; }
@media (max-width: 480px) { .status-grid { grid-template-columns: 1fr; gap: .6rem; } }
.status-card { margin-bottom: 0; }
.status-line { font-size: .85rem; margin-top: .25rem; }
.sev { display: inline-block; font-size: .66rem; font-weight: 800; border-radius: 999px; padding: .08rem .5rem; text-transform: uppercase; letter-spacing: .03em; }
.sev.alert { background: color-mix(in srgb, var(--down) 15%, transparent); color: var(--down); }
.sev.warning { background: color-mix(in srgb, var(--warn) 15%, transparent); color: var(--warn); }
.sev.notice { background: color-mix(in srgb, var(--accent) 13%, transparent); color: var(--accent); }
.sev.info { background: color-mix(in srgb, var(--up) 13%, transparent); color: var(--up); }
.notif { padding: .6rem 0; border-top: 1px solid var(--line); }
.notif:first-of-type { border-top: 0; }
.notif.resolved { opacity: .55; }
.notif-head { display: flex; align-items: center; gap: .5rem; margin-bottom: .15rem; }
.notif-head .sub { flex: 1; }
.notif-dismiss { flex: 0 0 auto; padding: .3rem .55rem; min-height: 32px; }
.switchrow { display: flex; align-items: center; gap: .6rem; cursor: pointer; padding: .2rem 0; }
.switchrow input { display: none; }
.switch { width: 2.6rem; height: 1.5rem; border-radius: 999px; background: var(--chip); position: relative; transition: background .2s; flex: 0 0 auto; }
.switch::after { content: ""; position: absolute; top: .15rem; left: .15rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: #fff; box-shadow: var(--shadow); transition: left .2s; }
.switchrow input:checked + .switch { background: var(--accent); }
.switchrow input:checked + .switch::after { left: 1.25rem; }
.switchrow input:disabled + .switch { opacity: .5; }

/* Hierarchy data view (2026-07-18) */
.view-select {
  width: 100%; margin-top: 10px; padding: 10px 12px; border-radius: 10px;
  background: var(--card, #16213a); color: inherit; font: inherit;
  border: 1px solid rgba(148, 163, 184, 0.25);
}
.scope-badge { max-width: 40vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Live store map (2026-07-18) */
.map-card { padding: 0; overflow: hidden; }
.map-scope-controls { display: flex; align-items: center; gap: .8rem; }
.map-scope-controls .grow { flex: 1; min-width: 0; }
.map-scope-controls strong { display: block; overflow: hidden; text-overflow: ellipsis; }
.map-scope-actions, .scope-action-row { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.scope-action-row { margin-top: .7rem; justify-content: flex-start; }
#map-canvas { height: min(62vh, 560px); min-height: 340px; width: 100%; border-radius: inherit; }
.map-loading-card { position: relative; min-height: 340px; display: grid; place-items: center; }
.map-loading-copy { position: relative; z-index: 1; color: var(--muted); font-size: .85rem; }
.map-skeleton { position: absolute; inset: 0; height: auto; margin: 0; border: 0; border-radius: inherit; }
.map-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; font-size: .85rem; }
.map-arrow-icon { background: transparent; border: 0; }
.store-trend-marker {
  width: 38px; min-height: 44px; display: grid; place-items: center; align-content: center;
  border: 2px solid currentColor; border-radius: 10px; background: var(--card, #16213a);
  box-shadow: 0 4px 12px rgba(2,6,23,.28); line-height: 1;
}
.store-trend-marker.strong-growth { color: var(--map-growth-strong); }
.store-trend-marker.mild-growth { color: var(--map-growth-mild); }
.store-trend-marker.mild-decline { color: var(--map-decline-mild); }
.store-trend-marker.strong-decline { color: var(--map-decline-strong); }
.store-trend-marker.flat { color: var(--muted); }
.store-trend-marker span { font-size: 1.35rem; font-weight: 900; }
.store-trend-marker small { margin-top: 1px; font-size: .58rem; font-weight: 800; }
.map-trend-controls { width: 100%; display: flex; align-items: center; gap: .6rem; }
.map-trend-controls > div { display: flex; flex-wrap: wrap; gap: .35rem; }
.map-metric { background: var(--chip); color: var(--muted); }
.map-metric.active { background: var(--accent); color: var(--accent-ink); }
.map-trend-key { width: 100%; display: flex; flex-wrap: wrap; gap: .8rem; font-size: .72rem; font-weight: 700; }
.map-trend-key .strong-growth { color: var(--map-growth-strong); }
.map-trend-key .mild-growth { color: var(--map-growth-mild); }
.map-trend-key .mild-decline { color: var(--map-decline-mild); }
.map-trend-key .strong-decline { color: var(--map-decline-strong); }
.map-trend-key .flat { color: var(--muted); }
.map-ad-layers { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.map-legend .map-ad { display: flex; align-items: center; gap: 6px; cursor: pointer; }
.map-legend .sw { width: 12px; height: 12px; border-radius: 50%; display: inline-block;
  box-shadow: 0 0 0 1px rgba(0,0,0,.25); }
.map-views { display: flex; gap: 6px; margin-left: auto; }
.btn.small { padding: 4px 10px; font-size: .8rem; border-radius: 8px; }
.map-pop .name { font-weight: 600; margin-bottom: 2px; }
.map-pop .map-pop-stats { margin: 6px 0; }
.map-comparison-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 0; border-top: 1px solid rgba(148,163,184,.22); }
.map-comparison-row:first-child { border-top: 0; }
.map-comparison-row strong, .map-comparison-row small, .map-comparison-value { display: block; }
.map-comparison-row strong { font-size: .72rem; }
.map-comparison-row .badge.strong-growth { background: color-mix(in srgb, var(--map-growth-strong) 14%, transparent); color: var(--map-growth-strong); }
.map-comparison-row .badge.mild-growth { background: color-mix(in srgb, var(--map-growth-mild) 18%, transparent); color: var(--map-growth-strong); }
.map-comparison-row .badge.mild-decline { background: color-mix(in srgb, var(--map-decline-mild) 16%, transparent); color: var(--map-decline-mild); }
.map-comparison-row .badge.strong-decline { background: color-mix(in srgb, var(--map-decline-strong) 14%, transparent); color: var(--map-decline-strong); }
.map-comparison-row small { color: var(--muted); font-size: .65rem; }
.map-comparison-value { text-align: right; font-weight: 700; }
.map-comparison-value .badge { display: block; margin-top: 2px; }
.map-pop .map-pop-actions { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.map-account-head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.map-account-head .grow { flex: 1; min-width: 0; }
.map-osr-select { color: var(--muted); font-size: .75rem; white-space: nowrap; }
.map-osr-select select { margin-left: 6px; padding: 6px 28px 6px 9px; border-radius: 8px;
  border: 1px solid rgba(148,163,184,.3); background: var(--card, #16213a); color: inherit; }
.leaflet-popup-content { font: 13px/1.45 inherit; }
@media (max-width: 640px) {
  .customer-type-filter-head { align-items: stretch; flex-direction: column; }
  .customer-type-filter-actions { align-items: stretch; }
  .customer-type-picker { flex: 1; }
  .customer-type-picker > summary { width: 100%; }
  .customer-type-options { grid-template-columns: 1fr; }
  .map-scope-controls { align-items: stretch; flex-direction: column; }
  .map-scope-actions { justify-content: flex-start; }
  .map-trend-controls { align-items: flex-start; flex-direction: column; }
  .map-account-head { align-items: stretch; flex-direction: column; }
  .map-osr-select select { width: 100%; margin: 4px 0 0; }
}

/* Full account directory (2026-07-18) */
.account-search-row { display: flex; align-items: center; gap: .65rem; }
.account-search-row .search { flex: 1; min-width: 0; }
.account-search-row .btn { white-space: nowrap; }
.account-scope-note { margin: .4rem 0 .75rem; }
.account-filter-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem; margin: .55rem 0;
}
.account-filter-grid label { color: var(--muted, #94a3b8); font-size: .75rem; }
.account-filter-grid select {
  display: block; width: 100%; margin-top: .2rem; padding: .55rem .6rem;
  border-radius: .6rem; border: 1px solid rgba(148,163,184,.25);
  background: var(--card, #16213a); color: inherit; font: inherit;
}
.account-card { padding: .65rem .9rem; margin-bottom: .5rem; cursor: pointer; }
.account-card:hover { border-color: rgba(56,189,248,.55); }
.account-metrics { text-align: right; min-width: 12rem; }
.account-pages { display: flex; align-items: center; justify-content: center; gap: .8rem; margin: .9rem 0; }
.account-pages button:disabled { opacity: .4; cursor: default; }
@media (max-width: 600px) {
  .account-search-row { align-items: stretch; flex-direction: column; }
  .account-filter-grid { grid-template-columns: 1fr; }
  .account-metrics { min-width: 7.5rem; }
  .account-card .row { align-items: flex-start; }
}

/* Interactive Account overview (2026-07-29) */
.account-overview-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.account-overview-head h2 { margin: .08rem 0 .2rem; font-size: 1.35rem; }
.account-overview-head p { margin: 0; color: var(--muted); font-size: .78rem; }
.account-overview-actions { display: flex; align-items: flex-end; flex-direction: column; gap: .55rem; }
.account-overview-actions > [data-account-overview-close] { min-width: 7rem; min-height: 44px; }
.eyebrow { color: var(--accent); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.account-periods { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem; max-width: 26rem; }
.account-period { border: 1px solid var(--line); background: var(--chip); color: var(--muted); }
.account-period.active { border-color: var(--accent); background: var(--accent); color: var(--accent-ink); }
.account-kpi-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin-bottom: .9rem; }
.account-kpi { min-width: 0; padding: .78rem .85rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--card); box-shadow: var(--shadow); }
.account-kpi > span, .account-kpi > small { display: block; color: var(--muted); }
.account-kpi > span { font-size: .7rem; font-weight: 700; }
.account-kpi > strong { display: block; margin: .12rem 0; font-size: 1.18rem; white-space: nowrap; }
.account-kpi > small { overflow: hidden; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.account-kpi .up, .account-trend.up { color: var(--up); }
.account-kpi .down, .account-trend.down { color: var(--down); }
.account-kpi .flat, .account-trend.flat { color: var(--muted); }
.account-performance-card { padding: 0; overflow: hidden; }
.account-table-heading { display: flex; justify-content: space-between; gap: .75rem; padding: .9rem 1rem .65rem; }
.account-table-disclosure > summary { align-items: center; cursor: pointer; list-style: none; padding-bottom: .9rem; }
.account-table-disclosure > summary::-webkit-details-marker { display: none; }
.account-table-disclosure[open] > summary { border-bottom: 1px solid var(--line); }
.account-table-heading h3 { margin-bottom: .08rem; }
.account-table-heading p { margin: 0; color: var(--muted); font-size: .72rem; }
.account-table-count { display: inline-grid; min-width: 1.45rem; height: 1.45rem; margin-left: .3rem; padding: 0 .4rem; place-items: center; border-radius: 999px; background: var(--chip); color: var(--muted); font-size: .65rem; vertical-align: middle; }
.account-table-action { display: inline-flex; align-items: center; gap: .35rem; color: var(--accent); font-size: .7rem; font-weight: 750; white-space: nowrap; }
.account-table-action .open-copy { display: none; }
.account-table-disclosure[open] .account-table-action .closed-copy { display: none; }
.account-table-disclosure[open] .account-table-action .open-copy { display: inline; }
.account-table-disclosure[open] .account-table-action .tree-chevron { transform: rotate(90deg); }
.account-table-wrap { width: 100%; overflow-x: auto; }
.account-performance-table { width: 100%; min-width: 690px; border-collapse: collapse; font-size: .76rem; }
.account-performance-table th, .account-performance-table td { padding: .52rem .55rem; border-top: 1px solid var(--line); text-align: right; vertical-align: middle; }
.account-performance-table th { color: var(--muted); background: color-mix(in srgb, var(--chip) 70%, transparent); font-size: .66rem; white-space: nowrap; }
.account-performance-table th:first-child, .account-performance-table td:first-child { width: 34%; text-align: left; }
.account-performance-table th:nth-child(2), .account-performance-table td:nth-child(2),
.account-performance-table th:nth-child(3), .account-performance-table td:nth-child(3) { width: 15%; }
.account-performance-table th:nth-child(4), .account-performance-table td:nth-child(4) { width: 16%; }
.account-performance-table th:nth-child(5), .account-performance-table td:nth-child(5),
.account-performance-table th:nth-child(6), .account-performance-table td:nth-child(6) { width: 10%; }
.account-performance-table.compact { min-width: 420px; }
.account-trend { display: inline-flex; align-items: baseline; justify-content: flex-end; gap: .18rem; font-weight: 750; white-space: nowrap; }
.account-trend small { color: inherit; font-size: .58rem; opacity: .8; }
.tree-toggle { display: inline-flex; align-items: center; gap: .38rem; max-width: 100%; border: 0; padding: .12rem .2rem; background: transparent; color: var(--ink); font: inherit; font-weight: 650; text-align: left; cursor: pointer; }
.tree-toggle:hover { color: var(--accent); }
.tree-toggle:disabled { opacity: .6; cursor: wait; }
.tree-chevron { flex: 0 0 auto; color: var(--accent); font-size: 1.05rem; line-height: 1; transition: transform .16s ease; }
.tree-toggle[aria-expanded="true"] .tree-chevron { transform: rotate(90deg); }
.tree-toggle.loading .tree-chevron { animation: account-spin .7s linear infinite; }
.tree-leaf { display: inline-block; padding-left: 1.65rem; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.tree-detail > td { padding: 0 !important; background: color-mix(in srgb, var(--chip) 34%, transparent); }
.tree-branch { margin: 0 0 0 1rem; border-left: 2px solid color-mix(in srgb, var(--accent) 35%, var(--line)); }
.account-performance-table.nested { min-width: 670px; background: transparent; }
.account-performance-table.nested tr:first-child td { border-top: 0; }
.tree-empty { padding: .7rem 1rem; color: var(--muted); font-size: .72rem; }
.account-secondary { padding: .75rem 1rem; }
.account-secondary > summary { cursor: pointer; font-size: .82rem; font-weight: 750; }
.account-secondary[open] > summary { margin-bottom: .7rem; }
.account-additional { margin-top: .65rem; }
@keyframes account-spin { to { transform: rotate(360deg); } }
@media (max-width: 640px) {
  .account-overview-head { flex-direction: column; }
  .account-overview-actions { align-items: stretch; width: 100%; }
  .account-overview-actions > [data-account-overview-close] { width: 100%; }
  .account-periods { justify-content: flex-start; max-width: none; }
  .account-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-kpi > strong { font-size: 1.02rem; }
}

/* ---------- RGM executive home ---------- */
.view:has(.rgm-page-head), .view:has(.rgm-drilldown-shell) { max-width: 1280px; }
.rgm-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin: .15rem 0 .9rem; }
.rgm-drilldown-shell { animation: rgm-drilldown-in .18s ease-out; }
.rgm-drilldown-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin: .15rem 0 .9rem; padding: .85rem 1rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--card); }
.rgm-drilldown-head h2 { margin: .08rem 0; font-size: clamp(1.3rem, 2vw, 1.85rem); letter-spacing: -.025em; }
.rgm-drilldown-head p { margin: 0; color: var(--muted); font-size: .74rem; }
.rgm-drilldown-head .btn { min-height: 44px; }
@keyframes rgm-drilldown-in { from { opacity: 0; transform: translateY(4px); } }
@media (prefers-reduced-motion: reduce) { .rgm-drilldown-shell { animation: none; } }
.rgm-page-head h2 { margin: .08rem 0; font-size: clamp(1.3rem, 2vw, 1.85rem); letter-spacing: -.025em; }
.rgm-page-head p, .rgm-section-head p { margin: 0; color: var(--muted); font-size: .74rem; }
.rgm-head-actions { display: flex; align-items: flex-end; justify-content: flex-end; flex-wrap: wrap; gap: .4rem; }
.rgm-plan-sources { display: flex; flex-wrap: wrap; gap: .4rem; margin: -.35rem 0 .8rem; }
.rgm-plan-sources span { padding: .26rem .52rem; border: 1px solid var(--line); border-radius: 999px; background: var(--chip); color: var(--muted); font-size: .62rem; }
.rgm-plan-sources span.stale { border-color: color-mix(in srgb, #ca8a04 50%, var(--line)); color: #a16207; }
.rgm-upload-button { cursor: pointer; }
.rgm-upload-status { margin: -.35rem 0 .8rem; padding: .55rem .7rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--card); font-size: .72rem; }
.rgm-upload-status.loading { color: var(--muted); }
.rgm-upload-status.success { border-color: color-mix(in srgb, var(--up) 45%, var(--line)); color: var(--up); }
.rgm-upload-status.error { border-color: color-mix(in srgb, var(--down) 45%, var(--line)); color: var(--down); }
.rgm-cache-refresh { display: flex; align-items: center; gap: .65rem; margin: -.35rem 0 .8rem; padding: .55rem .7rem; border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--line)); border-radius: .65rem; background: color-mix(in srgb, var(--accent) 8%, var(--card)); font-size: .72rem; color: var(--muted); }
.rgm-cache-refresh strong { flex: 0 0 auto; color: var(--text); }
.rgm-warming-card { max-width: 760px; margin: 1rem auto; padding: 1.25rem; }
.rgm-warming-card h2 { margin: .2rem 0 .35rem; }
.rgm-warming-card p { margin: 0 0 1rem; color: var(--muted); }
.rgm-hero { display: grid; grid-template-columns: 1.15fr 1.7fr .85fr; gap: .75rem; padding: 1.05rem; overflow: hidden; }
.rgm-hero.loading { opacity: .6; pointer-events: none; }
.rgm-hero-primary, .rgm-hero-comparisons > div, .rgm-plan, .rgm-hero-support > div {
  min-width: 0; border: 1px solid var(--line); border-radius: .75rem; background: color-mix(in srgb, var(--chip) 70%, transparent);
}
.rgm-hero-primary { display: flex; flex-direction: column; justify-content: center; padding: .85rem 1rem; background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 12%, var(--card)), var(--card)); }
.rgm-hero-primary > strong { display: block; margin: .12rem 0; font-size: clamp(2rem, 4vw, 3.35rem); line-height: 1.05; letter-spacing: -.045em; }
.rgm-forecast { align-self: flex-start; margin-top: .3rem; padding: 0; border: 0; background: transparent; color: var(--accent); font: inherit; font-size: .73rem; font-weight: 750; cursor: pointer; }
.rgm-hero-comparisons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.rgm-hero-comparisons > div { display: flex; flex-direction: column; padding: .65rem; }
.rgm-hero-comparisons > div > strong { margin: .22rem 0; font-size: 1.25rem; }
.rgm-delta { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; margin-top: auto; padding: .22rem 0 0; border: 0; background: transparent; color: var(--muted); font: inherit; text-align: left; cursor: pointer; }
.rgm-delta strong { font-size: 1rem; }
.rgm-delta small { display: block; margin-top: .05rem; font-size: .62rem; line-height: 1.3; }
.rgm-delta.up, .rgm-impact-value.up, .rgm-plan-attainment.up { color: var(--up); }
.rgm-delta.down, .rgm-impact-value.down, .rgm-plan-attainment.down { color: var(--down); }
.rgm-delta.flat { color: var(--muted); }
.rgm-plan { display: flex; flex-direction: column; justify-content: center; padding: .7rem .75rem; }
.rgm-plan > strong { margin: .18rem 0; font-size: 1.15rem; }
.rgm-plan-attainment { font-weight: 800; }
.rgm-plan small { margin-top: .15rem; color: var(--muted); font-size: .64rem; line-height: 1.35; }
.rgm-plan .rgm-reconciliation.warning { color: #a16207; font-weight: 750; }
.rgm-plan .rgm-reconciliation.high { color: var(--down); font-weight: 800; }
.rgm-stale-label { align-self: flex-start; margin-top: .28rem; padding: .12rem .38rem; border-radius: 999px; background: #ca8a04; color: #fff; font-size: .56rem; font-weight: 850; letter-spacing: .035em; text-transform: uppercase; }
.rgm-plan.stale, .rgm-plan.unavailable { border-color: color-mix(in srgb, #ca8a04 45%, var(--line)); background: color-mix(in srgb, #ca8a04 8%, var(--card)); }
.rgm-hero-support { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
.rgm-hero-support > div { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; padding: .55rem .65rem; }
.rgm-hero-support span { color: var(--muted); font-size: .68rem; }
.rgm-basis { grid-column: 1 / -1; color: var(--muted); font-size: .68rem; }
.rgm-two-column { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .65fr); gap: .9rem; align-items: start; }
.rgm-two-column > .card { min-width: 0; }
.rgm-morning-priorities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
.rgm-priority-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; padding: .75rem .9rem; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.rgm-priority-card > span { min-width: 0; }
.rgm-priority-card > span:last-child { flex: 0 0 auto; text-align: right; }
.rgm-priority-card strong, .rgm-priority-card small { display: block; }
.rgm-priority-card small { color: var(--muted); font-size: .65rem; }
.rgm-priority-card .down { color: var(--down); }
.rgm-section-head, .rgm-driver-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; margin-bottom: .65rem; }
.rgm-section-head h3, .rgm-driver-head h3 { margin-bottom: .1rem; }
.rgm-table-card { padding: 0; overflow: hidden; }
.rgm-table-card .rgm-section-head { padding: .85rem 1rem 0; }
.rgm-table-wrap { width: 100%; overflow-x: auto; }
.rgm-table { width: 100%; border-collapse: collapse; font-size: .75rem; }
.rgm-table th, .rgm-table td { padding: .55rem .65rem; border-top: 1px solid var(--line); text-align: right; vertical-align: middle; }
.rgm-table thead th { color: var(--muted); background: color-mix(in srgb, var(--chip) 70%, transparent); font-size: .64rem; white-space: nowrap; }
.rgm-table th:first-child { text-align: left; }
.rgm-table td strong, .rgm-table td small { display: block; }
.rgm-table td small { margin-top: .08rem; color: var(--muted); font-size: .61rem; }
.rgm-table .rgm-delta { align-items: flex-end; text-align: right; }
.rgm-table tr.current { background: color-mix(in srgb, var(--accent) 8%, var(--card)); }
.rgm-table tr.current th { color: var(--accent); }
.rgm-table tr.current th small { display: inline-block; margin-left: .25rem; padding: .08rem .32rem; border-radius: 999px; background: var(--accent); color: var(--accent-ink); font-size: .55rem; }
.rgm-area-benchmark { padding: 0; overflow: hidden; }
.rgm-area-benchmark .rgm-section-head { padding: .85rem 1rem 0; }
.rgm-area-benchmark th small { display: block; margin-top: .08rem; color: var(--muted); font-size: .58rem; font-weight: 500; }
.rgm-area-benchmark td.up { color: var(--up); }
.rgm-area-benchmark td.down { color: var(--down); }
.rgm-sort-pair { display: inline-flex; flex-direction: column; margin-left: .2rem; vertical-align: middle; }
.rgm-sort-pair button { width: 18px; height: 14px; min-height: 0; padding: 0; border: 0; background: transparent; color: var(--muted); font-size: .48rem; line-height: 1; cursor: pointer; }
.rgm-sort-pair button[aria-pressed="true"] { color: var(--accent); }
.rgm-osr-plan-details { margin-top: .25rem; color: var(--muted); text-align: right; }
.rgm-osr-plan-details summary { cursor: pointer; font-size: .6rem; }
.rgm-osr-plan-details div { display: grid; gap: .1rem; margin-top: .2rem; font-size: .58rem; }
.rgm-row-link { border: 0; padding: 0; background: transparent; color: var(--ink); font: inherit; font-weight: 750; text-align: left; cursor: pointer; }
.rgm-row-link:hover { color: var(--accent); }
.rgm-matrix-card { padding: 0; overflow: hidden; }
.rgm-matrix-card > summary { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .8rem 1rem; cursor: pointer; list-style: none; }
.rgm-matrix-card > summary::-webkit-details-marker { display: none; }
.rgm-matrix-card > summary strong, .rgm-matrix-card > summary small { display: block; }
.rgm-matrix-card > summary small { margin-top: .08rem; color: var(--muted); font-size: .68rem; }
.rgm-matrix-open { color: var(--accent); font-size: .68rem; font-weight: 750; }
.rgm-matrix-card[open] .rgm-matrix-open { font-size: 0; }
.rgm-matrix-card[open] .rgm-matrix-open::after { content: 'Close matrix'; font-size: .68rem; }
.rgm-matrix-table { min-width: 1100px; width: 100%; border-collapse: collapse; font-size: .69rem; }
.rgm-matrix-table th, .rgm-matrix-table td { padding: .48rem .5rem; border-top: 1px solid var(--line); border-right: 1px solid var(--line); text-align: right; vertical-align: middle; }
.rgm-matrix-table th:first-child { position: sticky; left: 0; z-index: 2; min-width: 9rem; background: var(--card); text-align: left; }
.rgm-matrix-table thead th { color: var(--muted); background: var(--chip); font-size: .6rem; }
.rgm-matrix-cell { width: 100%; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; text-align: right; cursor: pointer; }
.rgm-matrix-cell strong, .rgm-matrix-cell small { display: block; }
.rgm-matrix-cell small { margin-top: .08rem; }
.rgm-matrix-cell .up { color: var(--up); }
.rgm-matrix-cell .down { color: var(--down); }
.rgm-impact-card { overflow: hidden; }
.rgm-impact-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.rgm-impact-columns.stacked { grid-template-columns: 1fr; gap: .8rem; }
.rgm-impact-columns h4, .rgm-driver-groups h4 { margin: 0 0 .25rem; color: var(--muted); font-size: .7rem; letter-spacing: .04em; text-transform: uppercase; }
.rgm-impact-row { display: flex; align-items: center; justify-content: space-between; gap: .7rem; width: 100%; padding: .48rem .15rem; border: 0; border-top: 1px solid var(--line); background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.rgm-impact-row:hover { background: color-mix(in srgb, var(--accent) 5%, transparent); }
.rgm-impact-row > span { min-width: 0; }
.rgm-impact-row strong, .rgm-impact-row small { display: block; }
.rgm-impact-row small { margin-top: .08rem; color: var(--muted); font-size: .64rem; }
.rgm-impact-value { flex: 0 0 auto; text-align: right; }
.rgm-impact-value strong { font-size: .82rem; }
.rgm-driver-panel { border-color: color-mix(in srgb, var(--accent) 38%, var(--line)); box-shadow: 0 10px 30px rgba(15, 23, 42, .12); }
.rgm-driver-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; margin-bottom: .75rem; }
.rgm-driver-summary > div { padding: .6rem; border-radius: .65rem; background: var(--chip); }
.rgm-driver-summary span, .rgm-driver-summary strong, .rgm-driver-summary small { display: block; }
.rgm-driver-summary span, .rgm-driver-summary small { color: var(--muted); font-size: .65rem; }
.rgm-driver-summary strong { margin-top: .12rem; }
.rgm-driver-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.rgm-page-foot { margin: -.15rem 0 .8rem; font-size: .68rem; }

/* RGM controls are used frequently on phones; preserve a 44px touch target
   even when the visual treatment is intentionally compact or link-like. */
.customer-type-picker > summary,
.customer-type-options label,
.customer-type-filter-actions .btn,
.rgm-head-actions .btn,
.rgm-head-actions input,
.rgm-section-head .btn,
.rgm-driver-head .btn,
.rgm-forecast,
.rgm-delta,
.rgm-row-link,
.rgm-matrix-card > summary,
.rgm-matrix-cell,
.rgm-impact-row { min-height: 44px; }
.rgm-row-link, .rgm-matrix-cell { min-width: 44px; }
.rgm-row-link { display: inline-flex; align-items: center; }
.customer-type-options input { width: 20px; height: 20px; }

@media (max-width: 900px) {
  .rgm-page-head { align-items: flex-start; flex-direction: column; }
  .rgm-head-actions { justify-content: flex-start; }
  .rgm-hero { grid-template-columns: 1fr 1fr; }
  .rgm-hero-comparisons { grid-column: 1 / -1; grid-row: 2; }
  .rgm-plan { grid-column: 2; grid-row: 1; }
  .rgm-two-column { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .view:has(.rgm-page-head), .view:has(.rgm-drilldown-shell) { padding-inline: .65rem; }
  .rgm-drilldown-head { align-items: stretch; flex-direction: column; }
  .rgm-drilldown-head .btn { width: 100%; }
  .customer-type-filter-head { align-items: flex-start; flex-direction: column; }
  .customer-type-filter-actions, .customer-type-picker, .customer-type-picker > summary { width: 100%; }
  .customer-type-filter-actions { align-items: stretch; flex-direction: column; }
  .rgm-head-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .rgm-head-actions .territory-date { grid-column: 1 / -1; }
  .rgm-head-actions .territory-date input { width: 100%; }
  .rgm-head-actions .btn { text-align: center; }
  .rgm-hero { grid-template-columns: 1fr; }
  .rgm-hero-primary, .rgm-plan, .rgm-hero-comparisons, .rgm-hero-support { grid-column: 1; grid-row: auto; }
  .rgm-hero-comparisons, .rgm-hero-support { grid-template-columns: 1fr; }
  .rgm-hero-support > div { padding: .45rem .55rem; }
  .rgm-morning-priorities { grid-template-columns: 1fr; }
  .rgm-impact-columns, .rgm-driver-groups { grid-template-columns: 1fr; }
  .rgm-driver-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rgm-secondary-column { display: none; }
  .rgm-table { font-size: .72rem; }
  .rgm-table th, .rgm-table td { padding: .5rem .45rem; }
  .rgm-table[data-rgm-sort-table="osr"] thead,
  .rgm-table[data-rgm-sort-table="store"] thead { display: none; }
  .rgm-table[data-rgm-sort-table="osr"] tbody,
  .rgm-table[data-rgm-sort-table="store"] tbody { display: grid; gap: .6rem; padding: .65rem; }
  .rgm-table[data-rgm-sort-table="osr"] tr,
  .rgm-table[data-rgm-sort-table="store"] tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; padding: .7rem; border: 1px solid var(--line); border-radius: .7rem; background: color-mix(in srgb, var(--chip) 55%, transparent); }
  .rgm-table[data-rgm-sort-table="osr"] th,
  .rgm-table[data-rgm-sort-table="store"] th { grid-column: 1 / -1; border: 0; padding: 0; }
  .rgm-table[data-rgm-sort-table="osr"] td,
  .rgm-table[data-rgm-sort-table="store"] td { display: block; border: 0; padding: 0; text-align: left; }
  .rgm-table[data-rgm-sort-table="osr"] td::before,
  .rgm-table[data-rgm-sort-table="store"] td::before { content: attr(data-label); display: block; margin-bottom: .1rem; color: var(--muted); font-size: .58rem; }
  .rgm-table[data-rgm-sort-table="osr"] .rgm-secondary-column,
  .rgm-table[data-rgm-sort-table="store"] .rgm-secondary-column { display: block; }
  .rgm-table[data-rgm-sort-table="osr"] .rgm-delta,
  .rgm-table[data-rgm-sort-table="store"] .rgm-delta { align-items: flex-start; min-height: 0; text-align: left; }
}

@media print {
  .topbar, .bottomnav, .customer-type-filter, .rgm-head-actions, [data-rgm-export-section], .rgm-driver-panel { display: none !important; }
  body, .app, .view { background: #fff; color: #111; }
  .view:has(.rgm-page-head) { max-width: none; padding: 0; }
  .card { break-inside: avoid; box-shadow: none; }
  .rgm-two-column { grid-template-columns: 1fr 1fr; }
}

/* ---------- RGM Product Category Impact hierarchy ---------- */
.view:has(.rgm-product-shell) { max-width: 1440px; }
.rgm-section-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.rgm-product-shell { animation: rgm-drilldown-in .18s ease-out; }
.rgm-product-header { position: sticky; top: 0; z-index: 15; margin: -.2rem 0 .75rem; padding: .7rem .8rem; border: 1px solid var(--line); border-radius: .8rem; background: color-mix(in srgb, var(--card) 96%, transparent); box-shadow: 0 5px 16px rgba(15, 23, 42, .08); backdrop-filter: blur(10px); }
.rgm-product-nav { display: flex; align-items: center; gap: .55rem; margin-bottom: .4rem; color: var(--muted); font-size: .68rem; }
.rgm-product-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.rgm-product-heading h2 { margin: .05rem 0; font-size: clamp(1.35rem, 2.4vw, 2rem); letter-spacing: -.03em; }
.rgm-product-heading p { margin: 0; color: var(--muted); font-size: .7rem; }
.rgm-product-stale { margin-top: .55rem; padding: .5rem .65rem; border: 1px solid color-mix(in srgb, #ca8a04 48%, var(--line)); border-radius: .58rem; background: color-mix(in srgb, #ca8a04 9%, var(--card)); color: #854d0e; font-size: .68rem; }
.rgm-product-stale strong { margin-right: .25rem; }
.rgm-product-reconciliation-error { margin-top: .55rem; padding: .5rem .65rem; border: 1px solid color-mix(in srgb, var(--down) 55%, var(--line)); border-radius: .58rem; background: color-mix(in srgb, var(--down) 8%, var(--card)); color: var(--down); font-size: .68rem; }
.rgm-product-reconciliation-error strong { margin-right: .25rem; }
.rgm-product-controls { padding: .8rem; }
.rgm-product-ranking-mode { display: inline-flex; gap: .3rem; margin-bottom: .7rem; padding: .2rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--soft); }
.rgm-product-ranking-mode button { min-height: 38px; padding: .4rem .75rem; border: 0; border-radius: .48rem; background: transparent; color: var(--muted); font: inherit; font-size: .72rem; font-weight: 800; cursor: pointer; }
.rgm-product-ranking-mode button.active { background: var(--card); color: var(--ink); box-shadow: 0 1px 4px rgba(15, 23, 42, .12); }
.rgm-product-filter-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: .55rem; }
.rgm-product-filter-grid > label { display: flex; flex-direction: column; gap: .22rem; color: var(--muted); font-size: .64rem; font-weight: 750; }
.rgm-product-filter-grid select, .rgm-product-filter-grid input[type="search"] { min-height: 42px; width: 100%; padding: .45rem .55rem; border: 1px solid var(--line); border-radius: .55rem; background: var(--card); color: var(--ink); font: inherit; font-size: .73rem; }
.rgm-product-search { grid-column: span 2; }
.rgm-product-filter-menu { position: relative; min-width: 0; }
.rgm-product-filter-menu > summary { display: flex; flex-direction: column; justify-content: center; min-height: 42px; padding: .35rem .55rem; border: 1px solid var(--line); border-radius: .55rem; background: var(--card); color: var(--muted); font-size: .62rem; cursor: pointer; list-style: none; }
.rgm-product-filter-menu > summary::-webkit-details-marker { display: none; }
.rgm-product-filter-menu > summary strong { overflow: hidden; color: var(--ink); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.rgm-product-filter-menu > div { position: absolute; z-index: 20; top: calc(100% + .25rem); left: 0; display: grid; gap: .15rem; min-width: 240px; max-height: 260px; overflow-y: auto; padding: .45rem; border: 1px solid var(--line); border-radius: .6rem; background: var(--card); box-shadow: 0 12px 28px rgba(15, 23, 42, .16); }
.rgm-product-filter-menu label { display: flex; align-items: center; gap: .45rem; min-height: 38px; padding: .25rem .35rem; border-radius: .35rem; font-size: .7rem; }
.rgm-product-filter-menu label:hover { background: var(--chip); }
.rgm-product-filter-menu input { width: 18px; height: 18px; }
.rgm-product-control-row { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; margin-top: .65rem; }
.rgm-product-tabs { display: flex; flex-wrap: wrap; gap: .35rem; }
.rgm-product-tabs button { min-height: 40px; padding: .4rem .7rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--card); color: var(--ink); font: inherit; font-size: .7rem; font-weight: 750; cursor: pointer; }
.rgm-product-tabs button.active { border-color: var(--accent); background: var(--accent); color: var(--accent-ink); }
.rgm-product-check { display: inline-flex; align-items: center; gap: .38rem; min-height: 40px; color: var(--muted); font-size: .69rem; }
.rgm-product-check input { width: 18px; height: 18px; }
.rgm-product-results { padding: 0; overflow: hidden; }
.rgm-product-table-wrap { width: 100%; overflow-x: auto; }
.rgm-product-table { width: 100%; min-width: 1050px; border-collapse: collapse; font-size: .72rem; }
.rgm-product-table th, .rgm-product-table td { padding: .58rem .55rem; border-top: 1px solid var(--line); text-align: right; vertical-align: top; }
.rgm-product-table thead th { position: sticky; top: 0; z-index: 2; border-top: 0; background: var(--chip); color: var(--muted); font-size: .63rem; }
.rgm-product-table th:first-child { position: sticky; left: 0; z-index: 3; min-width: 190px; background: var(--card); text-align: left; }
.rgm-product-table thead th:first-child { background: var(--chip); }
.rgm-product-table td strong { white-space: nowrap; }
.rgm-product-sort-label { display: inline-flex; align-items: center; justify-content: flex-end; gap: .28rem; }
.rgm-product-sort-arrows { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; }
.rgm-product-sort-arrows button { display: grid; place-items: center; width: 26px; height: 22px; padding: 0; border: 1px solid transparent; border-radius: .3rem; background: transparent; color: var(--muted); font: inherit; font-size: .72rem; cursor: pointer; }
.rgm-product-sort-arrows button:hover, .rgm-product-sort-arrows button.active { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, var(--card)); color: var(--accent); }
.rgm-product-row-link { display: flex; flex-direction: column; align-items: flex-start; min-height: 42px; max-width: 230px; padding: .15rem 0; border: 0; background: transparent; color: var(--ink); font: inherit; font-weight: 800; text-align: left; cursor: pointer; }
.rgm-product-row-link:hover { color: var(--accent); }
.rgm-product-row-link:disabled { color: var(--muted); cursor: default; }
.rgm-product-row-link small { margin: .08rem 0 0 1.1rem; color: var(--muted); font-size: .61rem; font-weight: 550; }
.rgm-product-comparison { min-width: 120px; }
.rgm-product-comparison strong, .rgm-product-comparison small { display: block; }
.rgm-product-comparison strong { font-size: .72rem; white-space: nowrap; }
.rgm-product-comparison small { max-width: 150px; margin-top: .1rem; color: var(--muted); font-size: .59rem; line-height: 1.25; }
.rgm-product-comparison.up strong { color: var(--up); }
.rgm-product-comparison.down strong { color: var(--down); }
.rgm-product-row-detail { margin-top: .15rem; color: var(--muted); font-size: .59rem; font-weight: 550; }
.rgm-product-row-detail summary { min-height: 30px; cursor: pointer; }
.rgm-product-row-detail span { display: block; padding-bottom: .2rem; }
.rgm-product-group th { position: static !important; padding: .38rem .55rem; background: color-mix(in srgb, var(--accent) 8%, var(--chip)) !important; color: var(--accent); font-size: .64rem; letter-spacing: .035em; text-transform: uppercase; }
.rgm-product-pagination { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .55rem; padding: .65rem .8rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .66rem; }
.rgm-product-pagination > span:first-child { margin-right: auto; }
.rgm-product-pagination label { display: inline-flex; align-items: center; gap: .3rem; }
.rgm-product-pagination select { min-height: 36px; border: 1px solid var(--line); border-radius: .4rem; background: var(--card); color: var(--ink); }
.rgm-product-mobile-results { display: none; }
.rgm-product-loading { display: grid; gap: .7rem; }
.rgm-product-error { max-width: 680px; margin: 2rem auto; }

@media (max-width: 900px) {
  .rgm-product-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .view:has(.rgm-product-shell) { padding-inline: .6rem; }
  .rgm-product-header { top: 0; margin-inline: -.1rem; }
  .rgm-product-heading { align-items: stretch; flex-direction: column; }
  .rgm-product-heading .btn { width: 100%; }
  .rgm-product-filter-grid { grid-template-columns: 1fr; }
  .rgm-product-ranking-mode, .rgm-product-ranking-mode button { width: 100%; }
  .rgm-product-ranking-mode button { flex: 1; }
  .rgm-product-search { grid-column: auto; }
  .rgm-product-filter-menu > div { position: static; min-width: 0; margin-top: .25rem; box-shadow: none; }
  .rgm-product-control-row, .rgm-product-tabs { align-items: stretch; flex-direction: column; }
  .rgm-product-tabs, .rgm-product-tabs button, .rgm-product-control-row > .btn { width: 100%; }
  .rgm-product-table-wrap { display: none; }
  .rgm-product-mobile-results { display: grid; gap: .55rem; padding: .65rem; }
  .rgm-product-mobile-card { padding: .65rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--card); }
  .rgm-product-mobile-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem; }
  .rgm-product-mobile-head > span { color: var(--muted); font-size: .62rem; text-align: right; }
  .rgm-product-mobile-primary { display: flex; align-items: baseline; justify-content: space-between; margin: .45rem 0; padding: .45rem .5rem; border-radius: .55rem; background: var(--chip); }
  .rgm-product-mobile-card span { color: var(--muted); font-size: .62rem; }
  .rgm-product-mobile-card > details { margin-top: .45rem; border-top: 1px solid var(--line); }
  .rgm-product-mobile-card > details > summary { min-height: 42px; padding-top: .45rem; color: var(--accent); font-size: .68rem; font-weight: 750; cursor: pointer; }
  .rgm-product-more { display: grid; grid-template-columns: minmax(85px, .7fr) minmax(0, 1.3fr); gap: .45rem; align-items: start; }
  .rgm-product-more .rgm-product-comparison { text-align: right; }
  .rgm-product-pagination { justify-content: space-between; }
  .rgm-product-pagination > span:first-child { flex-basis: 100%; margin: 0; }
}

@media print {
  .rgm-product-header .btn, .rgm-product-controls, .rgm-product-pagination, .rgm-product-row-detail { display: none !important; }
  .rgm-product-header { position: static; box-shadow: none; }
  .rgm-product-table-wrap { display: block !important; overflow: visible; }
  .rgm-product-table { min-width: 0; }
  .rgm-product-mobile-results { display: none !important; }
}
