:root {
  --navy-950: #0c2135;
  --navy-900: #122d47;
  --navy-800: #173b5e;
  --blue-700: #1d5f93;
  --blue-600: #2775ad;
  --blue-100: #dcecf7;
  --blue-050: #eff7fc;
  --ink-900: #17212b;
  --ink-700: #465564;
  --ink-500: #687887;
  --line-300: #c7d0d8;
  --line-200: #d9e0e6;
  --line-100: #e8edf1;
  --paper: #ffffff;
  --canvas: #edf1f4;
  --green-700: #19704c;
  --green-100: #dff3e9;
  --amber-700: #8c5a08;
  --amber-100: #fff1cf;
  --red-700: #a13a36;
  --red-100: #fbe6e4;
  --shadow: 0 14px 40px rgba(16, 42, 65, .12);
  --sidebar-width: 248px;
  --workspace-section-gap: 16px;
  --search-control-height: 34px;
  --form-control-height: 38px;
  --form-control-radius: 4px;
  --form-control-border: #b9c6d6;
}

.inspection-grid,
.purchase-order-lines,
.non-stock-lines {
  display: grid;
  gap: 10px;
}

.inspection-grid article,
.purchase-order-lines > label,
.non-stock-lines > div {
  display: grid;
  grid-template-columns: minmax(220px, 1.6fr) minmax(150px, .7fr) minmax(180px, 1fr);
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--line, #d7dde7);
  border-radius: 12px;
  background: #fff;
}

.inspection-grid article > div,
.purchase-order-lines label > span {
  display: grid;
  gap: 3px;
}

.purchase-order-lines > label {
  grid-template-columns: auto minmax(220px, 1.6fr) 110px 130px;
}

.non-stock-lines > div {
  grid-template-columns: minmax(190px, 1.5fr) minmax(100px, .65fr) 78px 105px 105px 130px;
}

.bay-workspace { display: grid; gap: 16px; }
.bay-switcher { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); overflow: hidden; border: 1px solid var(--line-200); border-radius: 12px; background: #fff; box-shadow: 0 3px 12px rgba(17,44,68,.05); }
.bay-switcher__tab { position: relative; display: grid; gap: 4px; min-height: 104px; border: 0; border-right: 1px solid var(--line-100); padding: 15px; color: var(--ink-700); background: #fff; text-align: left; cursor: pointer; }
.bay-switcher__tab:last-child { border-right: 0; }
.bay-switcher__tab::after { content:""; position:absolute; inset:auto 0 0; height:4px; background:transparent; }
.bay-switcher__tab.is-active { background: var(--blue-050); }
.bay-switcher__tab.is-active::after { background: var(--blue-600); }
.bay-switcher__tab > span { color:var(--blue-700); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.bay-switcher__tab > strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bay-switcher__tab > small { color:var(--ink-500); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bay-switcher__tab > b { color:var(--green-700); font-size:9px; letter-spacing:.08em; }
.bay-workspace__panel { min-height: 360px; border:1px solid var(--line-200); border-radius:12px; background:#fff; box-shadow:var(--shadow); }
.bay-workspace__panel > header { display:flex; justify-content:space-between; gap:20px; padding:28px; border-bottom:1px solid var(--line-100); }
.bay-workspace__panel h2 { margin:7px 0 4px; font-size:28px; }
.bay-workspace__panel p { margin:0; color:var(--ink-500); }
.bay-workspace__panel > footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 28px; border-top:1px solid var(--line-100); color:var(--ink-500); }
.bay-workflow-launcher { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding:28px; }
.bay-workflow-launcher button { display:grid; gap:7px; min-height:112px; border:1px solid var(--line-200); border-radius:10px; padding:17px; color:var(--navy-800); background:#fff; text-align:left; cursor:pointer; }
.bay-workflow-launcher button:hover { border-color:var(--blue-600); background:var(--blue-050); }
.bay-workflow-launcher span { font-weight:800; }
.bay-workflow-launcher small { color:var(--ink-500); line-height:1.4; }
.ticket-workflow-tabs, .ticket-bay-shortcuts { display:flex; gap:8px; overflow-x:auto; padding:12px 0; }
.ticket-workflow-tabs button, .ticket-bay-shortcuts button { flex:1 0 auto; min-height:42px; border:1px solid var(--line-200); border-radius:8px; padding:8px 13px; color:var(--ink-700); background:#fff; font-weight:700; cursor:pointer; }
.ticket-workflow-tabs button.is-active, .ticket-bay-shortcuts button.is-active { border-color:var(--blue-600); color:var(--blue-700); background:var(--blue-050); }
.ticket-workflow-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; }
.ticket-workflow-tabs button small { border-radius: 999px; padding: 3px 7px; color: #17633a; background: #e3f4e8; font-size: 9px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.ticket-workflow-tabs button small[hidden] { display: none; }
.ticket-workflow-tabs button.has-vehicle-data:not(.is-active) { border-color: #69a77c; box-shadow: inset 0 -3px #2c8a4b; color: #17633a; background: #f3faf5; }
.ticket-bay-shortcuts { padding-top:0; }
.ticket-bay-shortcuts button { flex:0 0 auto; min-height:34px; padding:5px 12px; }
.vehicle-lock-banner { display:flex; align-items:center; gap:12px; grid-column:1/-1; border:1px solid #a8d4bf; border-radius:9px; padding:12px 14px; color:var(--green-700); background:var(--green-100); }
.vehicle-lock-banner span { flex:1; color:var(--ink-700); }
.payment-method-settings { display:grid; gap:9px; }
.payment-method-settings > div { display:grid; grid-template-columns:120px minmax(180px,1fr) 130px 110px 140px; gap:8px; align-items:center; }
.receipt-sheet { position:relative; overflow:hidden; min-height:360px; border:1px solid var(--line-200); padding:28px; background:#fff; }
.receipt-sheet > header { display:flex; justify-content:space-between; gap:20px; margin-bottom:22px; }
.receipt-sheet > header span, .receipt-sheet > header strong { display:block; }
.receipt-sheet > header strong { margin-top:5px; font-size:24px; }
.receipt-sheet.is-void { color:#69737d; }
.void-watermark { position:absolute; z-index:0; inset:100px -40px auto; transform:rotate(-22deg); color:rgba(161,58,54,.12); font-size:110px; font-weight:900; letter-spacing:.15em; text-align:center; pointer-events:none; }
.receipt-sheet > *:not(.void-watermark) { position:relative; z-index:1; }
.void-reason { display:grid; gap:6px; margin-top:22px; border:1px solid #e1aaa7; padding:14px; color:var(--red-700); background:rgba(251,230,228,.72); }
.cash-drawer-handoff { text-align:center; }
.cash-drawer-handoff h2 { margin:10px 0; font-size:42px; }
.cash-drawer-handoff .callout { margin-top:22px; text-align:left; }

@media (max-width: 860px) {
  .inspection-grid article,
  .purchase-order-lines > label,
  .non-stock-lines > div {
    grid-template-columns: 1fr;
  }
}

* { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; min-width: 320px; color: var(--ink-900); background: var(--canvas); font-family: "Segoe UI", Tahoma, Arial, sans-serif; font-size: 14px; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: var(--blue-700); }
[hidden] { display: none !important; }

.skip-link { position: fixed; left: 12px; top: -80px; z-index: 1000; padding: 10px 14px; color: #fff; background: var(--navy-950); border-radius: 4px; }
.skip-link:focus { top: 12px; }
.eyebrow { display: inline-block; color: var(--blue-700); font-size: 11px; font-weight: 700; letter-spacing: .13em; }
.text-link { border: 0; padding: 0; color: var(--blue-700); background: none; font-weight: 600; text-decoration: none; cursor: pointer; }
.text-link:hover { text-decoration: underline; }

.portal-brand { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.portal-brand__mark { display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid rgba(255,255,255,.38); color: #fff; background: var(--blue-600); font-weight: 800; letter-spacing: -.04em; }
.portal-brand strong, .portal-brand small { display: block; }
.portal-brand strong { font-size: 16px; letter-spacing: .01em; }
.portal-brand small { margin-top: 2px; color: inherit; opacity: .68; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }

.portal-auth { min-height: 100vh; display: grid; grid-template-columns: minmax(420px, 1.05fr) minmax(380px, .95fr); background: var(--paper); }
.portal-auth__story { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; min-height: 100vh; padding: clamp(32px, 6vw, 76px); color: #fff; background: linear-gradient(145deg, var(--navy-950), var(--navy-800)); }
.portal-auth__story::before, .portal-auth__story::after { content: ""; position: absolute; pointer-events: none; }
.portal-auth__story::before { width: 520px; height: 520px; right: -240px; top: -160px; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.02); }
.portal-auth__story::after { width: 42%; height: 3px; left: 0; bottom: 0; background: var(--blue-600); }
.portal-auth__copy { position: relative; z-index: 1; max-width: 680px; margin: auto 0; padding: 72px 0; }
.portal-auth__copy .eyebrow { color: #82c8ee; }
.portal-auth__copy h1 { max-width: 660px; margin: 16px 0 22px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 5vw, 72px); font-weight: 500; line-height: .99; letter-spacing: -.045em; }
.portal-auth__copy p { max-width: 630px; margin: 0; color: #c7d5e0; font-size: 17px; line-height: 1.65; }
.portal-auth__metrics { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; border-top: 1px solid rgba(255,255,255,.2); }
.portal-auth__metrics div { padding: 22px 20px 0 0; }
.portal-auth__metrics dt { font-family: Georgia, serif; font-size: 28px; }
.portal-auth__metrics dd { margin: 6px 0 0; color: #9eb2c2; font-size: 12px; text-transform: uppercase; letter-spacing: .07em; }
.portal-auth__panel { display: grid; place-items: center; padding: 40px; background: linear-gradient(180deg, #fff, #f4f7f9); }
.portal-auth__card { width: min(100%, 440px); padding: 42px; border: 1px solid var(--line-200); border-top: 4px solid var(--blue-700); background: #fff; box-shadow: var(--shadow); }
.portal-auth__card h2 { margin: 10px 0 8px; font-size: 28px; font-weight: 650; letter-spacing: -.025em; }
.portal-auth__card > p { margin: 0 0 26px; color: var(--ink-500); line-height: 1.55; }
.portal-auth__card > .device-auth-note { margin-top: -14px; padding: 10px 12px; border-left: 3px solid var(--blue-600); color: var(--ink-700); background: var(--blue-050); font-size: 12px; }
.portal-auth__card form { display: grid; gap: 17px; }
label > span { display: block; margin-bottom: 6px; color: var(--ink-700); font-size: 12px; font-weight: 700; }
input, select, textarea { width: 100%; border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); padding: 8px 10px; color: var(--ink-900); background: #fff; outline: none; }
input:not([type="checkbox"]):not([type="radio"]), select { height: var(--form-control-height); min-height: var(--form-control-height); }
input[type="checkbox"], input[type="radio"] { width: auto; min-height: 0; }
select {
  appearance: none;
  padding-right: 36px;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23465564' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 11px center;
  cursor: pointer;
}
select:hover:not(:disabled) { border-color: #8fa7b8; background-color: #fafdff; }
select:disabled { color: #7c8994; background-color: #edf1f4; cursor: not-allowed; }
textarea { min-height: 86px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--blue-600); box-shadow: 0 0 0 3px rgba(39,117,173,.14); }
.button { min-height: 38px; border: 1px solid transparent; border-radius: 3px; padding: 8px 15px; font-weight: 650; white-space: nowrap; word-break: keep-all; cursor: pointer; }
.button--primary { color: #fff; border-color: var(--blue-700); background: var(--blue-700); }
.button--primary:hover { background: var(--navy-800); }
.button--secondary { color: var(--blue-700); border-color: #9bbbd1; background: var(--blue-050); }
.button--quiet { color: var(--ink-700); border-color: var(--line-300); background: #fff; }
.form-status { min-height: 20px; margin-top: 13px; color: var(--red-700); font-size: 12px; }
.portal-auth__help { margin: 22px 0 8px !important; padding-top: 20px; border-top: 1px solid var(--line-100); font-size: 12px; }

.portal-app { min-height: 100vh; }
.portal-topbar { position: sticky; z-index: 50; top: 0; display: grid; grid-template-areas: "brand context search actions"; grid-template-columns: var(--sidebar-width) minmax(220px, 1fr) minmax(300px, 480px) auto; min-height: 64px; color: #fff; background: var(--navy-950); box-shadow: 0 1px 0 rgba(255,255,255,.08); }
.portal-topbar__brand, .portal-topbar__context, .portal-topbar__actions { display: flex; align-items: center; }
.portal-topbar__brand { grid-area: brand; padding: 9px 18px; border-right: 1px solid rgba(255,255,255,.1); }
.portal-brand--compact .portal-brand__mark { width: 34px; height: 34px; font-size: 12px; }
.portal-brand--compact strong { font-size: 13px; }
.portal-brand--compact small { font-size: 9px; }
.portal-topbar__context { grid-area: context; gap: 10px; min-width: 0; padding: 9px 18px; }
.portal-topbar__context strong, .portal-topbar__context small { display: block; }
.portal-topbar__context small { margin-top: 2px; color: #a9bccb; font-size: 11px; }
.status-light { display: none; }
.portal-topbar__actions { grid-area: actions; gap: 14px; padding: 9px 18px; white-space: nowrap; }
.portal-topbar__actions .text-link { color: #c1d8e8; }
.portal-topbar__actions .button--quiet { color: #fff; border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.06); }
.portal-topbar__search { position: relative; grid-area: search; align-self: center; width: 100%; min-width: 0; padding: 8px 6px; }
.portal-topbar__search > label { position: relative; display: flex; align-items: center; width: 100%; }
.portal-topbar__search input { width: 100%; min-width: 0; min-height: var(--search-control-height); border-color: rgba(255,255,255,.22); border-radius: 5px; padding: 6px 40px 6px 13px; color: var(--ink-900); background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.portal-topbar__search input::placeholder { color: #667785; opacity: 1; }
.portal-topbar__search input:focus { border-color: #82c5ed; box-shadow: 0 0 0 3px rgba(89,178,230,.22); }
.portal-topbar__search kbd { position: absolute; right: 12px; min-width: 22px; border: 1px solid var(--line-200); border-radius: 4px; padding: 2px 5px; color: var(--ink-500); background: var(--gray-050); font: 11px/1.2 inherit; text-align: center; pointer-events: none; }
.portal-global-search-results { position: absolute; z-index: 70; top: calc(100% + 3px); right: 6px; width: min(680px, calc(100vw - 32px)); max-height: min(620px, calc(100vh - 88px)); overflow: hidden; border: 1px solid var(--line-200); border-radius: 6px; color: var(--ink-900); background: #fff; box-shadow: 0 18px 48px rgba(6,30,49,.24); }
.portal-global-search-results > header, .portal-global-search-results > footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 42px; padding: 9px 13px; color: var(--ink-500); background: var(--gray-050); font-size: 11px; }
.portal-global-search-results > header { border-bottom: 1px solid var(--line-100); }
.portal-global-search-results > header strong { color: var(--ink-800); font-size: 12px; }
.portal-global-search-results > footer { border-top: 1px solid var(--line-100); }
.portal-global-search-list { max-height: min(520px, calc(100vh - 180px)); overflow-y: auto; overscroll-behavior: contain; }
.portal-global-search-list > button { display: grid; grid-template-columns: 112px minmax(0,1fr); align-items: center; gap: 12px; width: 100%; min-height: 58px; border: 0; border-bottom: 1px solid var(--line-100); padding: 10px 13px; color: inherit; background: #fff; text-align: left; cursor: pointer; }
.portal-global-search-list > button:last-child { border-bottom: 0; }
.portal-global-search-list > button:hover, .portal-global-search-list > button:focus { outline: 0; background: var(--blue-050); }
.portal-global-search-list > button > span:nth-child(2) { min-width: 0; }
.portal-global-search-list strong, .portal-global-search-list small { display: block; }
.portal-global-search-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-global-search-list small { margin-top: 3px; overflow: hidden; color: var(--ink-500); text-overflow: ellipsis; white-space: nowrap; }
.portal-global-search-type { overflow: hidden; color: var(--blue-700); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.portal-global-search-empty { display: grid; gap: 5px; min-height: 108px; place-content: center; padding: 20px; text-align: center; }
.portal-global-search-empty span { color: var(--ink-500); font-size: 12px; }
.context-search { display: grid; grid-template-columns: minmax(260px, 1fr) auto; align-items: center; gap: 14px; min-height: 46px; margin: 0 0 var(--workspace-section-gap); border: 1px solid var(--line-200); border-radius: 4px; padding: 5px 10px; background: #fff; }
.context-search .search-field { width: 100%; }
.context-search input { min-height: var(--search-control-height); border: 0; padding: 5px 10px 5px 12px; background: transparent; box-shadow: none; }
.context-search input:focus { box-shadow: inset 0 -2px 0 var(--blue-600); }
.context-search > span { color: var(--ink-500); font-size: 11px; white-space: nowrap; }
.text-link, .row-actions a, .row-actions button { white-space: nowrap; word-break: keep-all; }

.competitor-brand-picker { display: grid; gap: 11px; }
.competitor-brand-picker__toolbar { display: flex; align-items: center; gap: 12px; }
.competitor-brand-picker__toolbar .search-field { flex: 1 1 auto; }
.competitor-brand-picker__toolbar .text-link { flex: 0 0 auto; }
.competitor-brand-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-height: 240px; overflow-x: hidden; overflow-y: auto; border: 1px solid var(--line-200); border-radius: 4px; background: #fff; overscroll-behavior: contain; }
.competitor-brand-options > label { display: grid; grid-template-columns: 20px minmax(0,1fr); align-items: center; gap: 8px; min-height: 42px; border-bottom: 1px solid var(--line-100); padding: 8px 11px; cursor: pointer; }
.competitor-brand-options > label:nth-child(odd) { border-right: 1px solid var(--line-100); }
.competitor-brand-options input { width: 17px; min-height: 17px; }
.competitor-brand-selection { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: 10px; min-width: 0; }
.competitor-brand-selection > strong { padding-top: 7px; color: var(--ink-500); font-size: 10px; white-space: nowrap; }
.competitor-brand-chips { display: flex; flex-wrap: wrap; gap: 7px; min-height: 32px; }
.competitor-brand-chips > button { display: inline-flex; align-items: center; gap: 7px; min-height: 30px; border: 1px solid #9bbbd1; border-radius: 999px; padding: 4px 9px 4px 11px; color: var(--blue-700); background: var(--blue-050); cursor: pointer; }
.competitor-brand-chips > button:hover { border-color: var(--blue-600); background: #fff; }
.competitor-brand-chips button small { color: var(--ink-500); font-size: 9px; font-weight: 700; }
.competitor-brand-chips small { align-self: center; color: var(--ink-500); }

.vehicle-lookup-bar { display: grid; grid-template-columns: minmax(0, 720px) 1fr; align-items: end; gap: 16px; margin-bottom: var(--workspace-section-gap); }
.vehicle-lookup-bar > label { min-width: 0; }
.vehicle-lookup-bar .field-with-action { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.vehicle-lookup-bar > small { align-self: center; color: var(--ink-500); }
.vehicle-ymme-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }

.daily-shop-status { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 16px; margin-bottom: var(--workspace-section-gap); border: 1px solid var(--line-200); border-left: 4px solid var(--blue-600); padding: 13px 16px; background: #fff; }
.daily-shop-status.is-open { border-left-color: var(--green-600); background: #f8fcfa; }
.daily-shop-status > div { display: flex; align-items: center; gap: 12px; min-width: 0; }
.daily-shop-status .status-light { flex: 0 0 10px; width: 10px; height: 10px; border-radius: 50%; background: var(--ink-400); box-shadow: none; }
.daily-shop-status.is-open .status-light { background: var(--green-600); box-shadow: 0 0 0 4px rgba(37,139,91,.12); }
.daily-shop-status strong, .daily-shop-status small { display: block; }
.daily-shop-status small { margin-top: 2px; color: var(--ink-500); }
.portal-menu-button { display: none; border: 1px solid rgba(255,255,255,.28); border-radius: 4px; padding: 6px 9px; color: #fff; background: transparent; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }

.portal-layout { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); min-height: calc(100vh - 64px); }
.portal-sidebar { display: flex; flex-direction: column; justify-content: space-between; padding: 18px 12px; color: #d2dde6; background: var(--navy-900); }
body.owner-shop-selection .portal-layout { grid-template-columns: minmax(0, 1fr); }
body.owner-shop-selection .portal-sidebar,
body.owner-shop-selection .portal-context-controls,
body.owner-shop-selection .portal-menu-button { display: none; }
.nav-heading { margin: 18px 12px 8px; color: #7792a6; font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.nav-heading:first-child { margin-top: 4px; }
.nav-item { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; min-height: 41px; margin: 2px 0; border: 0; border-radius: 3px; padding: 7px 12px; color: #cbd8e1; background: transparent; text-align: left; cursor: pointer; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.065); }
.nav-item.is-active { color: #fff; background: var(--blue-700); }
.nav-item.is-active::before { content: ""; position: absolute; left: -12px; top: 0; bottom: 0; width: 3px; background: #79c9ef; }
.nav-item strong { min-width: 22px; border-radius: 12px; padding: 2px 6px; color: #d7e9f5; background: rgba(255,255,255,.12); font-size: 10px; text-align: center; }
.portal-sidebar__footer { margin: 20px 8px 0; border-top: 1px solid rgba(255,255,255,.1); padding: 18px 4px 4px; }
.portal-sidebar__footer span, .portal-sidebar__footer small { display: block; }
.portal-sidebar__footer span { color: #d7e4ed; font-size: 11px; font-weight: 700; }
.portal-sidebar__footer small { margin-top: 5px; color: #7993a6; font-size: 10px; line-height: 1.5; }

.portal-workspace { min-width: 0; }
.workspace-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; min-height: 126px; padding: 28px 34px 24px; border-bottom: 1px solid var(--line-200); background: #fff; }
.workspace-header h1 { margin: 6px 0 4px; font-size: 26px; font-weight: 650; letter-spacing: -.025em; }
.workspace-header p { margin: 0; color: var(--ink-500); }
.workspace-actions { display: flex; gap: 9px; flex-wrap: wrap; }
.readonly-access-note { align-self: center; color: var(--muted); font-size: 14px; font-weight: 700; }
.owner-code-field { display: block; max-width: 420px; margin-top: 18px; }
.owner-code-field > span { display: block; margin-bottom: 7px; font-weight: 800; }
.workspace-content { padding: 26px 34px 42px; }
.portal-flash { margin: 18px 34px 0; border: 1px solid #9fc5dc; padding: 10px 12px; color: #164d70; background: var(--blue-050); }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.owner-shop-chooser { display: grid; gap: 18px; }
.owner-shop-search { display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px solid var(--line-200); padding: 14px 16px; background: #fff; }
.owner-shop-search .search-field { flex: 1; max-width: 680px; }
.owner-shop-search > span { color: var(--ink-500); font-size: 12px; font-weight: 800; white-space: nowrap; }
.owner-shop-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 16px; }
.owner-shop-card { display: grid; grid-template-rows: auto 1fr auto; min-height: 250px; overflow: hidden; border: 1px solid var(--line-200); border-top: 4px solid var(--blue-600); padding: 0; color: var(--ink-900); background: #fff; box-shadow: 0 3px 12px rgba(17,44,68,.06); text-align: left; cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.owner-shop-card:hover, .owner-shop-card:focus-visible { border-color: var(--blue-600); box-shadow: 0 9px 24px rgba(17,44,68,.13); transform: translateY(-2px); outline: 0; }
.owner-shop-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line-100); padding: 20px; }
.owner-shop-card h2 { margin: 5px 0 4px; font-size: 20px; }
.owner-shop-card p { margin: 0; color: var(--ink-500); line-height: 1.45; }
.owner-shop-card dl { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 15px 20px; margin: 0; padding: 18px 20px; }
.owner-shop-card dt { color: var(--ink-500); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.owner-shop-card dd { margin: 4px 0 0; font-weight: 750; }
.owner-shop-card > footer { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line-100); padding: 13px 20px; color: var(--blue-700); font-weight: 800; }
.owner-shop-card > footer strong { font-size: 19px; }
.owner-shop-empty { min-height: 190px; border: 1px dashed var(--line-200); background: #fff; }
.metric-card { min-height: 116px; border: 1px solid var(--line-200); border-top: 3px solid var(--blue-600); padding: 18px; background: #fff; box-shadow: 0 2px 8px rgba(17,44,68,.04); }
.metric-card span, .metric-card small { display: block; }
.metric-card span { color: var(--ink-500); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.metric-card strong { display: block; margin: 7px 0 3px; font-family: Georgia, serif; font-size: 30px; font-weight: 500; }
.metric-card small { color: var(--ink-500); }
.metric-card--warning { border-top-color: #d5982f; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(270px, .75fr); gap: var(--workspace-section-gap); margin-top: var(--workspace-section-gap); }
.panel { border: 1px solid var(--line-200); background: #fff; box-shadow: 0 2px 8px rgba(17,44,68,.04); }
.panel > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 70px; border-bottom: 1px solid var(--line-100); padding: 16px 20px; }
.panel h2 { margin: 4px 0 0; font-size: 17px; }
.bay-preview-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.bay-preview { position: relative; min-height: 148px; border-right: 1px solid var(--line-100); padding: 22px 18px; }
.bay-preview:last-child { border-right: 0; }
.bay-preview::after { display: none; }
.bay-preview span, .bay-preview strong, .bay-preview small { display: block; }
.bay-preview span { color: var(--blue-700); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.bay-preview strong { margin: 35px 0 5px; font-size: 19px; }
.bay-preview small { color: var(--ink-500); }
.attention-list { margin: 0; padding: 4px 20px 16px; list-style: none; }
.attention-list li { display: grid; grid-template-columns: minmax(0,1fr); align-items: start; padding: 15px 0; border-bottom: 1px solid var(--line-100); }
.attention-list li:last-child { border-bottom: 0; }
.attention-list strong, .attention-list small { display: block; }
.attention-list small { margin-top: 3px; color: var(--ink-500); line-height: 1.45; }

.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; }
.portal-context-controls { display: flex; gap: 8px; margin-left: auto; padding-left: 20px; }
.portal-context-controls .portal-all-shops { min-height: 32px; border-color: rgba(255,255,255,.24); padding: 5px 10px; color: #eaf2f7; background: rgba(255,255,255,.06); font-size: 11px; }
.portal-context-controls .portal-all-shops:hover { background: rgba(255,255,255,.14); }
.portal-context-controls select { min-width: 165px; min-height: 32px; border-color: rgba(255,255,255,.24); color: #eaf2f7; background-color: #1a3a55; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23eaf2f7' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E"); font-size: 12px; }
.portal-context-controls option { color: var(--ink-900); background: #fff; }
.portal-flash[data-type="error"] { border-color: #e3aaa6; color: var(--red-700); background: var(--red-100); }
.loading-state, .empty-state { display: grid; place-items: center; min-height: 210px; padding: 36px; color: var(--ink-500); text-align: center; }
.loading-state { grid-template-columns: auto auto; justify-content: center; gap: 12px; }
.spinner { width: 18px; height: 18px; border: 2px solid var(--line-200); border-top-color: var(--blue-700); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.empty-state strong { color: var(--ink-900); font-size: 16px; }
.empty-state p { max-width: 520px; margin: 7px 0 16px; line-height: 1.55; }
.empty-state .button { margin-top: 4px; }
.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 48px; margin-bottom: var(--workspace-section-gap); color: var(--ink-500); font-size: 12px; }
.toolbar--summary { min-height: 28px; }
.toolbar--inside { margin: 0; border-bottom: 1px solid var(--line-100); padding: 12px 16px; }
.search-field { width: min(520px, 100%); }
.search-field input { min-height: 40px; padding-left: 36px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23687887' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") no-repeat 12px center; }
.portal-app .search-field input[type="search"] { min-height: var(--search-control-height); padding-top: 5px; padding-bottom: 5px; }
.inventory-toolbar { justify-content: flex-start; }
.inventory-toolbar .search-field { flex: 1; }
.inventory-toolbar select { min-width: 170px; min-height: 40px; background-color: #fff; }
.inventory-toolbar > span { margin-left: auto; white-space: nowrap; }
.callout { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: var(--workspace-section-gap); border: 1px solid #a9cbde; border-left: 4px solid var(--blue-600); padding: 13px 16px; color: #245673; background: var(--blue-050); }
.callout strong, .callout span { display: block; }
.callout span { color: var(--ink-500); font-size: 12px; }
.callout--warning { border-color: #e6ca93; border-left-color: #d5982f; color: var(--amber-700); background: var(--amber-100); }
.section-panel { margin-top: var(--workspace-section-gap); }
.table-wrap { width: 100%; overflow: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
table { width: 100%; border-collapse: collapse; }
th, td { border-bottom: 1px solid var(--line-100); padding: 12px 15px; text-align: left; vertical-align: middle; }
th { height: 42px; color: var(--ink-500); background: #f7f9fa; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
td { color: var(--ink-700); }
td strong, td small { display: block; }
td strong { color: var(--ink-900); }
td small { margin-top: 3px; color: var(--ink-500); font-size: 11px; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #fafcfd; }
.numeric { text-align: right; font-variant-numeric: tabular-nums; }
.row-warning { background: #fffaf0; }
.row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.status-pill { display: inline-flex; align-items: center; min-height: 22px; border: 1px solid var(--line-200); border-radius: 20px; padding: 2px 8px; color: var(--ink-700); background: #f5f7f8; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.status-pill--in_progress, .status-pill--open, .status-pill--enabled, .status-pill--clocked_in { border-color: #9fc5dc; color: var(--blue-700); background: var(--blue-050); }
.status-pill--complete, .status-pill--paid, .status-pill--sent, .status-pill--ready, .status-pill--default { border-color: #a8d4bf; color: var(--green-700); background: var(--green-100); }
.status-pill--on_hold, .status-pill--due, .status-pill--scheduled, .status-pill--draft { border-color: #e3c57c; color: var(--amber-700); background: var(--amber-100); }
.status-pill--void, .status-pill--disabled { border-color: #e1aaa7; color: var(--red-700); background: var(--red-100); }
.status-pill--regular, .status-pill--fleet, .status-pill--clocked_out, .status-pill--clock_in, .status-pill--clock_out, .status-pill--shop_open, .status-pill--shop_close { color: var(--ink-700); }
.metric-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bay-preview { width: 100%; border-top: 0; border-bottom: 0; border-left: 0; color: inherit; background: #fff; text-align: left; cursor: pointer; }
.bay-preview:hover { background: var(--blue-050); }
.bay-preview.is-active::after { background: #e3a63b; }
.bay-board { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.bay-card { display: flex; flex-direction: column; min-height: 300px; border: 1px solid var(--line-200); border-top: 4px solid #70ae8d; background: #fff; box-shadow: 0 3px 12px rgba(17,44,68,.05); }
.bay-card.is-occupied { border-top-color: var(--blue-600); }
.bay-card > header { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line-100); padding: 14px 18px; }
.bay-card > header > span { color: var(--blue-700); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.bay-card__body, .bay-card__empty { flex: 1; padding: 26px 20px; }
.bay-card__body h2 { margin: 0; font-size: 22px; }
.bay-card__body > p { margin: 6px 0 26px; color: var(--ink-500); }
.bay-card__body dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 0; }
.bay-card__body dt { color: var(--ink-500); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.bay-card__body dd { margin: 5px 0 0; color: var(--ink-700); }
.bay-card__empty { display: grid; align-content: center; justify-items: center; color: var(--ink-500); text-align: center; }
.bay-card__empty span { color: var(--green-700); font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.bay-card__empty p { margin: 8px 0; }
.bay-card > footer { border-top: 1px solid var(--line-100); padding: 14px 18px; }
.bay-card > footer .button { width: 100%; }
.split-grid, .report-grid, .settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.report-grid, .settings-grid { margin: 16px 0; }
.record-list article { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 67px; border-bottom: 1px solid var(--line-100); padding: 12px 18px; }
.record-list article:last-child { border-bottom: 0; }
.record-list strong, .record-list small { display: block; }
.record-list small { margin-top: 4px; color: var(--ink-500); font-size: 11px; }
.record-list__value { display: flex; align-items: center; gap: 16px; text-align: right; }
.field-readonly { display: grid; align-content: center; gap: 3px; min-height: 70px; border: 1px solid var(--line-100); padding: 10px 12px; background: #f6f8fb; }
.field-readonly span, .field-readonly small { color: var(--ink-500); font-size: 12px; }
.field-readonly strong { color: var(--navy-800); font-size: 18px; }
.money-in { color: #17683a; }
.money-out { color: #9b3d32; }
.statement-list { display: grid; gap: 0; margin: 0; padding: 8px 18px 18px; }
.statement-list > div { display: flex; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line-100); padding: 12px 0; }
.statement-list dt, .statement-list dd { margin: 0; }
.statement-list dd { color: var(--navy-800); font-weight: 800; font-variant-numeric: tabular-nums; }
.statement-list .statement-total { border-top: 2px solid var(--navy-800); border-bottom: 0; margin-top: 5px; font-size: 16px; }
.account-chip-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; padding: 16px; }
.account-chip-grid button { display: grid; gap: 4px; min-height: 84px; border: 1px solid var(--line-100); border-radius: 10px; padding: 12px; color: var(--ink-700); background: #fff; text-align: left; cursor: pointer; }
.account-chip-grid button:hover { border-color: var(--blue-300); background: var(--blue-050); }
.account-chip-grid span, .account-chip-grid small { color: var(--ink-500); font-size: 10px; }
.account-chip-grid strong { color: var(--navy-800); }
.tax-agency-row, .journal-line { display: grid; grid-template-columns: .65fr 1.25fr .55fr 1fr 34px; gap: 9px; align-items: end; margin-bottom: 10px; border-bottom: 1px solid var(--line-100); padding-bottom: 10px; }
.journal-line { grid-template-columns: 1.1fr 1.5fr .55fr .55fr 34px; }
.tax-agency-row label, .journal-line label { min-width: 0; }
.tax-agency-row > .text-link--danger, .journal-line > .text-link--danger { align-self: end; margin-bottom: 10px; }
.service-sticker { display: grid; place-items: center; width: min(360px, 100%); margin: 0 auto; border: 3px solid var(--navy-800); border-radius: 18px; padding: 20px; color: var(--navy-800); background: #fff; text-align: center; }
.service-sticker header { display: grid; gap: 2px; width: 100%; border-bottom: 2px solid var(--navy-800); padding-bottom: 10px; }
.service-sticker > span { margin-top: 14px; font-size: 11px; font-weight: 900; letter-spacing: .12em; }
.service-sticker > b { font-size: 30px; line-height: 1.12; }
.service-sticker footer { width: 100%; margin-top: 12px; border-top: 1px solid var(--line-200); padding-top: 9px; font-size: 10px; }
.reconciliation-lines { display: grid; max-height: 340px; overflow: auto; }
.reconciliation-lines > label { display: grid; grid-template-columns: 20px minmax(0,1fr) auto; gap: 10px; align-items: center; border-bottom: 1px solid var(--line-100); padding: 10px 4px; }
.reconciliation-lines span, .reconciliation-lines small { display: block; }
.reconciliation-lines small { margin-top: 3px; color: var(--ink-500); }
.reconciliation-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 14px 0; }
.reconciliation-summary span { display: grid; gap: 4px; border: 1px solid var(--line-100); padding: 12px; background: #fff; }
.reconciliation-summary strong { color: var(--navy-800); font-size: 18px; }
.purchase-line-search { display: grid; gap: 6px; margin-bottom: 12px; }
.payment-allocation-grid { display: grid; gap: 7px; min-width: 720px; }
.payment-allocation-grid__head, .payment-allocation-row { display: grid; grid-template-columns: minmax(170px, 1.4fr) .7fr .8fr .8fr .8fr; gap: 10px; align-items: center; }
.payment-allocation-grid__head { padding: 3px 12px; color: var(--ink-500); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.payment-allocation-row { padding: 10px 12px; border: 1px solid var(--line-100); border-radius: 12px; background: #fff; }
.payment-allocation-row > span { display: grid; gap: 2px; }
.payment-allocation-row input { width: 100%; }
.mobile-field-label { display: none; }
.allocation-toolbar { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 12px; }
.allocation-toolbar > div { display: flex; gap: 16px; }
.payment-preview { display: grid; gap: 16px; padding: 16px; border: 1px solid #89a99a; border-radius: 16px; background: #f4f9f6; }
.payment-preview > header { display: flex; justify-content: space-between; gap: 16px; align-items: start; }
.payment-preview h3 { margin: 3px 0 0; }
.payment-preview__totals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.payment-preview__totals span { display: grid; gap: 3px; padding: 11px; border-radius: 10px; background: #fff; }
.payment-preview__totals small, .preview-fingerprint { color: var(--ink-500); }
.payment-preview__lines { display: grid; gap: 5px; }
.payment-preview__lines > div { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--line-100); }
.payment-preview__lines span:first-child { display: grid; }
.confirmation-field { display: grid; gap: 7px; }
.confirmation-field input { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-weight: 700; letter-spacing: .02em; }
.detail-hero { display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; padding: 16px; border: 1px solid var(--line-100); border-radius: 16px; background: #f6f8fa; }
.detail-hero > div { display: grid; gap: 4px; align-content: start; }
.detail-hero strong { font-size: 21px; }
.linked-history { margin-top: var(--workspace-section-gap); }
.printable-check { display: grid; gap: 24px; min-height: 300px; padding: 32px; border: 2px solid #27364a; background: #fff; color: #172235; }
.printable-check header, .printable-check footer, .printable-check__payee { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.printable-check__payee { border-bottom: 1px solid #27364a; padding: 16px 0; }
.printable-check__payee strong { flex: 1; font-size: 19px; }
.printable-check__payee b { font-size: 21px; }
.team-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.team-card { display: grid; grid-template-columns: 52px 1fr; gap: 14px; border: 1px solid var(--line-200); padding: 18px; background: #fff; }
.avatar { display: grid; width: 52px; height: 52px; place-items: center; color: #fff; background: var(--navy-800); font-weight: 800; }
.team-card h2 { margin: 1px 0 4px; font-size: 17px; }
.team-card p { margin: 0 0 9px; color: var(--ink-500); }
.team-card__actions { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; padding-top: 12px; border-top: 1px solid var(--line-100); }
.team-card__access { display: block; margin-top: 9px; color: var(--ink-500); font-size: 10px; }
.summary-list, .detail-list { margin: 0; padding: 8px 20px 18px; }
.summary-list div, .detail-list div { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line-100); padding: 13px 0; }
.summary-list div:last-child, .detail-list div:last-child { border-bottom: 0; }
.summary-list dt, .detail-list dt { color: var(--ink-500); }
.summary-list dd, .detail-list dd { margin: 0; color: var(--ink-900); font-weight: 700; text-align: right; }
.bar-chart { display: flex; align-items: end; gap: 8px; min-height: 205px; padding: 26px 20px 18px; overflow-x: auto; }
.bar-chart > div { display: grid; grid-template-rows: 20px 124px 24px; align-items: end; justify-items: center; min-width: 48px; color: var(--ink-500); font-size: 10px; }
.bar-chart i { display: block; width: 24px; max-height: 120px; background: linear-gradient(180deg, #5da4d3, var(--blue-700)); }
.bar-chart strong { align-self: start; color: var(--ink-700); font-size: 9px; }
.ranked-list { margin: 0; padding: 6px 20px 16px 48px; }
.ranked-list li { border-bottom: 1px solid var(--line-100); padding: 11px 0 11px 4px; }
.ranked-list li:last-child { border-bottom: 0; }
.ranked-list li::marker { color: var(--blue-700); font-weight: 800; }
.ranked-list span, .ranked-list strong { display: block; }
.ranked-list strong { margin-top: 3px; color: var(--ink-500); font-size: 11px; }
.segmented { display: inline-flex; border: 1px solid var(--line-300); background: #fff; }
.segmented button { min-height: 34px; border: 0; border-right: 1px solid var(--line-200); padding: 6px 13px; color: var(--ink-700); background: #fff; text-transform: capitalize; cursor: pointer; }
.segmented button:last-child { border-right: 0; }
.segmented button.is-active { color: #fff; background: var(--blue-700); }
.panel-note { margin: 0; border-top: 1px solid var(--line-100); padding: 16px 20px; color: var(--ink-500); font-size: 12px; line-height: 1.55; }
.privacy-panel { display: grid; grid-template-columns: minmax(0,1fr) minmax(340px,.8fr); gap: 28px; margin-bottom: 16px; border: 1px solid var(--line-200); border-left: 4px solid #8798a6; padding: 22px 24px; background: #fff; box-shadow: 0 2px 8px rgba(17,44,68,.04); }
.privacy-panel.is-enabled { border-left-color: var(--green-700); background: linear-gradient(90deg,#f3fbf7,#fff 38%); }
.privacy-panel h2 { margin: 7px 0 5px; color: var(--navy-800); font-size: 19px; }
.privacy-panel p { max-width: 720px; margin: 0; color: var(--ink-500); line-height: 1.55; }
.privacy-panel form { align-self: center; }
.scope-banner, .owner-access-banner { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 16px; border: 1px solid #b9cad7; border-left: 4px solid var(--blue-600); padding: 17px 20px; background: linear-gradient(90deg,#eef6fb,#fff 54%); }
.scope-banner strong, .scope-banner span, .owner-access-banner strong, .owner-access-banner p { display: block; }
.scope-banner strong, .owner-access-banner strong { color: var(--navy-800); }
.scope-banner span, .owner-access-banner p { margin: 4px 0 0; color: var(--ink-500); line-height: 1.5; }
.employee-access-fields { border-color: #b7c9d7 !important; background: linear-gradient(180deg,#f6fafc,#fff) !important; }
.employee-access-fields > .check-field { margin: 8px 0 14px; }
.driver-access-summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px 20px; border:1px solid #b7c9d7; border-left:4px solid var(--blue-500); background:linear-gradient(180deg,#f6fafc,#fff); }
.driver-access-summary h3, .driver-access-summary p { margin:0; }
.driver-access-summary p { margin-top:5px; color:var(--ink-600); }
.ticket-fleet-panel { margin: 14px 0 0; border: 1px solid #b9cad7; border-left: 4px solid var(--blue-600); background: #f8fbfd; }
.ticket-fleet-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line-200); padding: 12px 14px; background: #fff; }
.ticket-fleet-panel > header strong, .ticket-fleet-panel > header span { display: block; }
.ticket-fleet-panel > header strong { margin-top: 3px; color: var(--navy-900); }
.fleet-ticket-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; background: var(--line-200); }
.fleet-ticket-summary > span { min-width: 0; padding: 10px 12px; color: var(--ink-500); background: #f7fafc; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.fleet-ticket-summary strong { display: block; margin-top: 3px; overflow-wrap: anywhere; color: var(--navy-900); font-size: 11px; text-transform: capitalize; }
.ticket-fleet-panel .callout { margin: 12px 14px 0; }
.fleet-ticket-fields { padding: 13px 14px 14px; }
.fleet-ticket-fields input { background: #fff; }
.linked-document-list { display:flex; flex-wrap:wrap; gap:9px; margin-top:16px; padding:14px; border:1px solid var(--line-200); background:var(--paper-100); }
.order-workspace { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(340px,.75fr); align-items: start; gap: 16px; }
.order-workspace > .panel { min-width: 0; }
.order-workspace > .panel > .field-with-action { margin: 20px 20px 0; }
.order-workspace > .panel > [data-order-results] { padding: 0 20px 20px; }
.order-product-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin-top: var(--workspace-section-gap); border: 1px solid var(--line-200); background: var(--line-100); }
.order-product-grid article { display: flex; flex-direction: column; justify-content: space-between; gap: 18px; min-width: 0; min-height: 190px; padding: 16px; background: #fff; }
.order-product-summary { display: grid; grid-template-columns: 86px minmax(0,1fr); align-items: center; gap: 14px; min-width: 0; }
.order-product-image { display: grid; place-items: center; width: 86px; height: 86px; overflow: hidden; border: 1px solid var(--line-100); border-radius: 6px; background: #fff; }
.order-product-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.order-product-summary > div:last-child { min-width: 0; }
.order-product-grid span, .order-product-grid strong, .order-product-grid small { display: block; }
.order-product-grid article > div:first-child span { color: var(--blue-700); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.order-product-grid article > div:first-child strong { margin: 4px 0; overflow: hidden; color: var(--navy-800); text-overflow: ellipsis; white-space: nowrap; }
.order-product-grid small { color: var(--ink-500); font-size: 10px; line-height: 1.45; }
.order-product-grid article > div:last-child { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 9px 12px; }
.order-product-grid article > div:last-child > b { color: var(--navy-800); font-size: 19px; }
.order-product-grid article > div:last-child > small { grid-column: 1 / -1; }
.order-product-grid label { width: 84px; }
.order-product-grid label span { margin-bottom: 3px; color: var(--ink-500); font-size: 9px; }
.order-product-grid label input { min-height: 34px; }
.portal-order-cart { border: 1px solid var(--line-200); background: #fff; }
.portal-order-cart > article { display: grid; grid-template-areas: "copy quantity total" "copy remove remove"; grid-template-columns: minmax(0,1fr) 68px auto; align-items: center; gap: 6px 10px; border-bottom: 1px solid var(--line-100); padding: 11px; }
.portal-order-cart > article:last-child { border-bottom: 0; }
.portal-order-cart__copy { grid-area: copy; min-width: 0; }
.portal-order-cart__copy strong { overflow-wrap: anywhere; }
.portal-order-cart__quantity { grid-area: quantity; }
.portal-order-cart__total { grid-area: total; justify-self: end; white-space: nowrap; }
.portal-order-cart__remove { grid-area: remove; justify-self: end; min-height: 24px; }
.portal-order-cart strong, .portal-order-cart small { display: block; }
.portal-order-cart small { margin-top: 3px; color: var(--ink-500); font-size: 10px; }
.portal-order-cart input { min-height: 32px; padding: 5px; }
.portal-order-total { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; border: 1px solid var(--line-200); border-top: 0; padding: 14px; background: #f5f8fa; }
.portal-order-total span { color: var(--ink-500); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.portal-order-total strong { color: var(--navy-800); font-size: 20px; }
.portal-order-total small { grid-column: 1 / -1; color: var(--ink-500); line-height: 1.45; }
.order-checkout-panel > [data-order-cart] { margin: 18px 20px 0; }
.order-checkout-panel form { padding: 18px 20px 20px; }
.restock-edit-banner { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin: 18px 20px 0; border: 1px solid #b9cad7; border-left: 4px solid var(--blue-600); padding: 13px 14px; background: #eef6fb; }
.restock-edit-banner strong, .restock-edit-banner small { display: block; }
.restock-edit-banner strong { margin-top: 3px; color: var(--navy-800); }
.restock-edit-banner small { margin-top: 4px; color: var(--ink-500); line-height: 1.4; }
.button--compact { min-height: 31px; padding: 5px 9px; font-size: 11px; white-space: nowrap; }
.consent-switch { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 10px; margin-bottom: 12px; cursor: pointer; }
.consent-switch input { width: 18px; min-height: 18px; margin-top: 2px; }
.consent-switch span, .consent-switch strong, .consent-switch small { display: block; }
.consent-switch span { margin: 0; }
.consent-switch small, .privacy-readonly small { margin-top: 4px; color: var(--ink-500); font-size: 11px; line-height: 1.45; }
.privacy-readonly { align-self: center; justify-self: end; text-align: right; }
.privacy-readonly small { display: block; }

.portal-dialog { width: min(960px, calc(100vw - 30px)); max-height: calc(100vh - 30px); overflow: hidden; border: 0; padding: 0; color: var(--ink-900); background: transparent; box-shadow: 0 24px 80px rgba(8,24,38,.32); }
.portal-dialog--compact { width: min(640px, calc(100vw - 30px)); }
.portal-dialog--wide { width: min(1280px, calc(100vw - 30px)); }
.portal-dialog--workspace { inset: 0; width: 100%; height: 100dvh; max-width: 100%; max-height: none; margin: 0; overflow-x: hidden; background: #f4f6f8; box-shadow: none; }
.portal-dialog--workspace .dialog-card { display: grid; grid-template-rows: auto minmax(0,1fr); height: 100%; }
.portal-dialog--workspace .dialog-body { min-height: 0; overflow-x: hidden; overflow-y: auto; padding: clamp(16px,2vw,30px); }
.portal-dialog--workspace [data-ticket-form] { width: min(1640px,100%); margin: 0 auto; }
.portal-dialog--workspace [data-customer-form] { width: min(1680px,100%); max-width: 100%; min-width: 0; margin: 0 auto; }
.portal-dialog::backdrop { background: rgba(5,23,37,.65); backdrop-filter: blur(2px); }
.dialog-card { min-width: 0; background: #f4f6f8; }
.portal-dialog:not(.portal-dialog--workspace) .dialog-card { display: grid; grid-template-rows: auto minmax(0,1fr); max-height: calc(100vh - 30px); overflow: hidden; }
.portal-dialog:not(.portal-dialog--workspace) .dialog-body { min-width: 0; min-height: 0; overflow-x: hidden; overflow-y: auto; }
.portal-dialog--overflow-visible,
.portal-dialog--overflow-visible .dialog-card,
.portal-dialog--overflow-visible .dialog-body { overflow: visible !important; }
.portal-dialog--overflow-visible .dialog-card { max-height: none !important; }
.portal-dialog--nested { z-index: 1000; }
.dialog-card > header { position: sticky; z-index: 3; top: 0; display: flex; align-items: center; justify-content: space-between; min-height: 80px; border-bottom: 1px solid var(--line-200); padding: 16px 22px; background: #fff; }
.dialog-card > header h2 { margin: 5px 0 0; font-size: 22px; }
.dialog-close { flex: 0 0 auto; width: auto; min-width: 0; min-height: 34px; padding: 6px 8px; color: var(--ink-500); font-size: 12px; font-weight: 800; }
.dialog-body { padding: 22px; }
.dialog-body fieldset { min-width: 0; margin: 0 0 17px; border: 1px solid var(--line-200); padding: 18px; background: #fff; }
.dialog-body legend { padding: 0 8px; color: var(--navy-800); font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.fieldset-note { margin: -4px 0 10px; color: var(--ink-500); font-size: 11px; line-height: 1.45; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 15px; }
.fulfillment-choice, .restock-fulfillment-choice { border: 1px solid #b9c6d6; border-radius: 8px; padding: 12px 14px; display: flex; flex-wrap: wrap; gap: 10px; }
.fulfillment-choice legend, .restock-fulfillment-choice legend { padding: 0 5px; font-weight: 800; color: var(--ink); }
.fulfillment-choice label, .restock-fulfillment-choice label { display: inline-flex; align-items: center; gap: 7px; min-width: 120px; margin: 0; }
.fulfillment-choice input, .restock-fulfillment-choice input { accent-color: var(--blue); }
.restock-fulfillment-choice { margin: 14px 0; background: #f7faff; }
.field-wide { grid-column: 1 / -1; }
.field-span-2 { grid-column: span 2; }
.field-span-3 { grid-column: span 3; }
.check-field { display: flex; align-items: center; gap: 9px; min-height: 38px; }
.check-field input { flex: 0 0 auto; width: 17px; min-height: 17px; }
.check-field span { margin: 0; }
.field-with-action { display: flex; gap: 7px; }
.field-with-action input, .field-with-action select { flex: 1; min-width: 0; }
.field-note { display: block; margin-top: 5px; color: var(--ink-500); font-size: 10px; line-height: 1.4; }
.form-actions, .dialog-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 20px; border-top: 1px solid var(--line-200); padding-top: 16px; }
.form-actions > div, .dialog-footer { flex-wrap: wrap; }
.form-actions > div { display: flex; gap: 8px; }
.record-form-workspace { display: grid; grid-template-columns: 230px minmax(0,1fr); min-height: 470px; border: 1px solid var(--line-200); background: #fff; }
.customer-record-workspace { width: 100%; max-width: 100%; min-width: 0; }
.customer-record-workspace > *, .record-form-panels, .record-form-panel, .record-form-panel > .form-grid { min-width: 0; }
.record-form-tabs { display: flex; flex-direction: column; gap: 2px; border-right: 1px solid var(--line-200); padding: 10px; background: #eef2f5; }
.record-form-tabs button { display: block; width: 100%; border: 0; border-left: 3px solid transparent; border-radius: 4px; padding: 11px 12px; color: var(--ink-700); text-align: left; background: transparent; }
.record-form-tabs button:hover { background: #fff; }
.record-form-tabs button.is-active { border-left-color: var(--blue-600); color: var(--navy-900); background: #fff; box-shadow: 0 1px 4px rgba(17,43,64,.08); }
.record-form-tabs span, .record-form-tabs small { display: block; }
.record-form-tabs span { font-size: 12px; font-weight: 800; }
.record-form-tabs small { margin-top: 4px; color: var(--ink-500); font-size: 9px; line-height: 1.35; }
.record-form-panels { min-width: 0; }
.record-form-panel { min-width: 0; }
.record-form-panel[hidden] { display: none; }
.record-form-panel > header { min-height: 70px; border-bottom: 1px solid var(--line-200); padding: 15px 18px; background: #f9fbfc; }
.record-form-panel[data-record-form-panel="vehicles"] > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.record-form-panel > header p { margin: 4px 0 0; color: var(--ink-500); font-size: 11px; }
.record-form-panel > .form-grid { max-height: min(58vh,640px); overflow-y: auto; overscroll-behavior: contain; padding: 18px; scrollbar-gutter: stable; }
.record-form-actions { position: sticky; z-index: 2; bottom: -22px; margin: 0 -22px -22px; padding: 14px 22px; background: #fff; box-shadow: 0 -8px 18px rgba(25,48,66,.07); }
.customer-detail-workspace { min-height: min(590px,calc(100vh - 190px)); }
.record-detail-panel > .record-detail-content { max-height: min(58vh,640px); overflow-y: auto; overscroll-behavior: contain; padding: 18px; scrollbar-gutter: stable; }
.record-detail-content > :first-child { margin-top: 0; }
.record-detail-content > :last-child { margin-bottom: 0; }
.record-detail-actions > span { color: var(--ink-500); font-size: 11px; }
.customer-profile-list, .vehicle-detail-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin: 14px 0 0; background: var(--line-200); }
.customer-profile-list > div, .vehicle-detail-list > div { min-width: 0; padding: 12px 14px; background: #fff; }
.customer-profile-list dt, .vehicle-detail-list dt { color: var(--ink-500); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.customer-profile-list dd, .vehicle-detail-list dd { margin: 4px 0 0; overflow-wrap: anywhere; color: var(--navy-900); font-weight: 700; }
.customer-profile-list > div:last-child { grid-column: 1 / -1; }
.vehicle-detail-workspace { display: grid; grid-template-columns: 230px minmax(0,1fr); min-height: 390px; border: 1px solid var(--line-200); }
.vehicle-detail-tabs { display: flex; flex-direction: column; gap: 1px; border-right: 1px solid var(--line-200); padding: 8px; background: #f4f7f9; }
.vehicle-detail-tabs button { width: 100%; border: 0; border-left: 3px solid transparent; padding: 11px; text-align: left; background: transparent; }
.vehicle-detail-tabs button:hover, .vehicle-detail-tabs button.is-active { background: #fff; }
.vehicle-detail-tabs button.is-active { border-left-color: var(--blue-600); box-shadow: 0 1px 4px rgba(17,43,64,.08); }
.vehicle-detail-tabs strong, .vehicle-detail-tabs span, .vehicle-detail-tabs small { display: block; }
.vehicle-detail-tabs strong { color: var(--navy-900); font-size: 11px; }
.vehicle-detail-tabs span, .vehicle-detail-tabs small { margin-top: 4px; overflow-wrap: anywhere; color: var(--ink-500); font-size: 9px; }
.vehicle-detail-panels { min-width: 0; padding: 16px; background: #fff; }
.vehicle-detail-panels > section[hidden] { display: none; }
.vehicle-detail-panels h3 { margin: 18px 0 10px; }

/* Dense modal forms use available width before asking the user to scroll. */
.portal-dialog:not(.portal-dialog--workspace) .dialog-card > header { min-height: 68px; padding: 12px 18px; }
.portal-dialog:not(.portal-dialog--workspace) .dialog-card > header h2 { margin-top: 3px; font-size: 20px; }
.portal-dialog:not(.portal-dialog--workspace) .dialog-body { padding: 16px 18px 18px; }
.portal-dialog:not(.portal-dialog--workspace) .form-grid { gap: 10px 12px; }
.portal-dialog:not(.portal-dialog--workspace) label > span { margin-bottom: 4px; font-size: 11px; }
.portal-dialog:not(.portal-dialog--workspace) input,
.portal-dialog:not(.portal-dialog--workspace) select { min-height: 34px; padding-top: 6px; padding-bottom: 6px; }
.portal-dialog:not(.portal-dialog--workspace) textarea { min-height: 58px; padding-top: 7px; padding-bottom: 7px; }
.portal-dialog:not(.portal-dialog--workspace) .dialog-body fieldset { margin-bottom: 11px; padding: 12px 14px; }
.portal-dialog:not(.portal-dialog--workspace) .fieldset-note { margin-bottom: 7px; }
.portal-dialog:not(.portal-dialog--workspace) .form-actions,
.portal-dialog:not(.portal-dialog--workspace) .dialog-footer { margin-top: 14px; padding-top: 12px; }
.portal-dialog:not(.portal-dialog--workspace) .record-form-actions { bottom: -18px; margin: 0 -18px -18px; padding: 12px 18px; }
.portal-dialog:not(.portal-dialog--workspace) .form-status { min-height: 14px; margin-top: 8px; }
.fleet-account-workspace { padding: 0 !important; overflow: hidden; }
.fleet-account-workspace > legend { margin-left: 14px; }
.fleet-account-workspace > .fieldset-note { margin: 0; border-bottom: 1px solid var(--line-200); padding: 13px 17px; background: #f7fafc; }
.fleet-control-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line-200); }
.fleet-control-grid > section { min-width: 0; background: #fff; }
.fleet-control-grid > section > header { border-bottom: 1px solid var(--line-100); padding: 12px 15px; background: #fbfcfd; }
.fleet-control-grid > section > header strong, .fleet-control-grid > section > header small { display: block; }
.fleet-control-grid > section > header small { margin-top: 3px; color: var(--ink-500); font-size: 9px; }
.fleet-control-grid > section > .form-grid, .fleet-control-grid > section > .checklist-grid { max-height: 310px; overflow-y: auto; overscroll-behavior: contain; padding: 14px 15px; }
.fleet-record-section { border: 0; background: #fff; }
.fleet-record-section > header { border-bottom: 1px solid var(--line-100); padding: 13px 15px; background: #f8fafc; }
.fleet-record-section > header strong, .fleet-record-section > header small { display: block; }
.fleet-record-section > header small { margin-top: 3px; color: var(--ink-500); font-size: 10px; }
.fleet-record-section > .form-grid, .fleet-record-section > .checklist-grid { max-height: none; overflow: visible; padding: 16px; }
.button--danger { color: var(--red-700); border-color: #dca6a2; background: var(--red-100); }
.text-link--danger { color: var(--red-700); }
.add-row { margin-top: 10px; }
.dialog-body .vehicle-row { margin: 0 0 12px; border-color: var(--line-200); padding: 15px; background: #fff; }
.vehicle-record-panel { display: block; }
.vehicle-record-list { width: 100%; min-width: 0; }
.vehicle-record-list > *, .vehicle-row .form-grid > label, .vehicle-row input { min-width: 0; }
.vehicle-panel-add { flex: 0 0 auto; margin: 0; border: 1px solid #9bbbd1; border-radius: 3px; padding: 8px 12px; background: var(--blue-050); }
.vehicle-row .form-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px 13px; }
.vehicle-row .vehicle-field-double { grid-column: span 2; }
.vehicle-row__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: -4px 0 12px; }
.vehicle-row__heading strong { color: var(--navy-800); font-size: 13px; }
.vehicle-row__heading .text-link--danger { flex: 0 0 auto; }
.vehicle-details { border-color: var(--line-100) !important; background: #f8fafc !important; }
.inventory-table-wrap { width: 100%; min-width: 0; overflow: visible; }
.inventory-table { width: 100%; min-width: 0; table-layout: fixed; }
.inventory-table th, .inventory-table td { min-width: 0; padding: 10px 11px; vertical-align: top; }
.inventory-table th:first-child { width: 29%; }
.inventory-table th:nth-child(2) { width: 23%; }
.inventory-table th:nth-child(3) { width: 15%; }
.inventory-table th:nth-child(4) { width: 12%; }
.inventory-table th:nth-child(5) { width: 21%; }
.inventory-table--editable th:nth-child(5) { width: 17%; }
.inventory-table--editable th:last-child { width: 4%; }
.inventory-table tbody tr { min-height: 72px; }
.inventory-part-title { display: flex; align-items: baseline; gap: 7px; min-width: 0; }
.inventory-part-title strong { flex: 0 0 auto; }
.inventory-part-title span { min-width: 0; overflow: hidden; color: var(--ink-500); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.inventory-part-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 3px 9px; min-height: 16px; margin-top: 4px; overflow: hidden; color: var(--ink-500); font-size: 10px; }
.inventory-product-link { flex: 0 0 auto; color: var(--blue-700); font-size: 10px; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.inventory-cross-reference-list { display: flex; flex-wrap: wrap; gap: 3px; }
.inventory-cross-reference-list > span { display: inline-flex; flex-wrap: wrap; gap: 3px; max-width: 100%; overflow: hidden; border: 1px solid #b9cfdf; border-radius: 999px; padding: 3px 7px; color: var(--blue-700); background: var(--blue-050); font-size: 9px; font-weight: 700; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.inventory-cross-reference-list > span b { color: var(--navy-800); font-weight: 800; }
.inventory-cross-reference-list > small { margin: 0; }
.inventory-cell-stack { display: grid; gap: 2px; min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.inventory-cell-stack strong { min-width: 0; overflow-wrap: anywhere; color: var(--ink-800); }
.inventory-cell-stack span { overflow-wrap: anywhere; color: var(--ink-500); font-size: 10px; line-height: 1.35; }
.inventory-competitor-fieldset { display: grid; gap: 10px; }
.inventory-competitor-picker { display: grid; grid-template-columns: minmax(160px,.8fr) minmax(190px,1fr) auto; align-items: end; gap: 9px; }
.inventory-competitor-picker .button { margin-bottom: 0; white-space: nowrap; }
.inventory-competitor-rows { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.inventory-competitor-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 9px; align-items: center; }
.inventory-competitor-row input { min-height: 34px; }
.inventory-competitor-row .text-link--danger { padding: 7px 2px; }
.ticket-status-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; border-left: 4px solid var(--blue-600); padding: 12px 14px; color: var(--ink-500); background: #fff; }
.ticket-status-bar > span:not(.status-pill) { flex: 1; }
.ticket-status-bar > b { color: var(--navy-800); font-variant-numeric: tabular-nums; }
.ticket-columns { display: grid; grid-template-columns: 1.5fr .75fr; gap: 17px; }
.ticket-service-top { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(420px,1fr); gap: 14px; align-items: stretch; }
.ticket-service-top > fieldset { min-width: 0; }
.ticket-service-selection-row { display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); gap: 12px; align-items: stretch; }
.ticket-service-selection-row > fieldset { min-width: 0; height: 100%; }
.ticket-service-technician { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); align-content: start; gap: 10px 12px; }
.ticket-service-technician > label { min-width: 0; }
.ticket-service-technician > label:nth-of-type(-n+3) { grid-column: span 2; }
.selection-list, .parts-list { display: grid; max-height: 295px; overflow: auto; }
.selection-list > label, .parts-list > label { display: grid; grid-template-columns: 20px minmax(0,1fr) 92px; align-items: center; gap: 10px; min-height: 50px; border-bottom: 1px solid var(--line-100); padding: 7px 4px; }
.parts-list > label { grid-template-columns: 20px minmax(0,1fr) 68px 92px; }
.selection-list input, .parts-list input { width: auto; min-height: auto; }
.parts-list input[type="number"] { justify-self: end; width: 62px; min-height: 32px; text-align: right; font-variant-numeric: tabular-nums; }
.selection-list strong, .selection-list small, .parts-list strong, .parts-list small { display: block; }
.selection-list small, .parts-list small { margin-top: 2px; color: var(--ink-500); font-size: 11px; }
.selection-list b, .parts-list b { justify-self: end; width: 92px; color: var(--ink-700); font-size: 12px; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.ticket-live-total { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 3px 20px; margin: -3px 0 17px; border-left: 4px solid var(--navy-800); padding: 13px 15px; background: #eaf1f6; }
.ticket-live-total span { color: var(--navy-800); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.ticket-live-total strong { grid-row: span 2; color: var(--navy-900); font-size: 25px; }
.ticket-live-total small { color: var(--ink-500); }

.ticket-part-scanner { margin: 0 0 12px; border: 1px solid #b6c6d2; border-left: 4px solid var(--navy-800); border-radius: 5px; padding: 11px 12px; background: #f4f8fb; }
.ticket-part-scanner label > span { display: block; margin-bottom: 5px; color: var(--navy-900); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.ticket-part-scanner label > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.ticket-part-scanner input { min-width: 0; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .035em; }
.ticket-part-scanner p { min-height: 18px; margin: 7px 0 0; color: var(--ink-500); font-size: 11px; line-height: 1.45; }
.ticket-part-scanner p[data-type="success"] { color: #17633a; font-weight: 700; }
.ticket-part-scanner p[data-type="error"] { color: #a11f20; font-weight: 700; }
.parts-list > label.is-scanned { background: #e3f4e8; box-shadow: inset 4px 0 #2c8a4b; }
.inventory-upc { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; white-space: nowrap; }

@media (max-width: 640px) {
  .ticket-part-scanner label > div { grid-template-columns: 1fr; }
  .inventory-competitor-picker, .inventory-competitor-rows { grid-template-columns: 1fr; }
}

@media (max-width: 1180px) {
  .inventory-table, .inventory-table tbody { display: block; }
  .inventory-table thead { display: none; }
  .inventory-table tbody { padding: 0; }
  .inventory-table tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 0; border-bottom: 1px solid var(--line-200); padding: 10px 12px; }
  .inventory-table tbody tr:last-child { border-bottom: 0; }
  .inventory-table tbody td { display: block; width: auto !important; border: 0; padding: 7px 9px; }
  .inventory-table tbody td::before { display: block; margin-bottom: 4px; color: var(--ink-500); content: attr(data-label); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
  .inventory-table tbody td:first-child, .inventory-table tbody td:nth-child(2) { grid-column: span 1; }
  .inventory-table tbody td:last-child { grid-column: 1 / -1; padding-top: 2px; text-align: right; }
}

@media (max-width: 620px) {
  .inventory-table tbody tr { grid-template-columns: 1fr; }
  .inventory-table tbody td:first-child, .inventory-table tbody td:nth-child(2) { grid-column: auto; }
}
.checklist-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 7px 20px; }
.catalog-results { min-height: 220px; margin-top: var(--workspace-section-gap); border: 1px solid var(--line-200); background: #fff; }
.catalog-grid article { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line-100); padding: 13px 16px; }
.catalog-grid article:last-child { border-bottom: 0; }
.catalog-grid span, .catalog-grid strong, .catalog-grid small { display: block; }
.catalog-grid span { color: var(--blue-700); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.catalog-grid strong { margin: 3px 0; }
.catalog-grid small { color: var(--ink-500); }
.catalog-grid article > div:last-child { display: flex; align-items: center; gap: 15px; white-space: nowrap; }
.compact-price-field { width: 112px; text-align: left; white-space: normal; }
.compact-price-field span { margin-bottom: 3px; color: var(--ink-500); font-size: 9px; letter-spacing: .03em; }
.compact-price-field input { min-height: 32px; padding: 5px 7px; }
.backend-data-status { color: var(--green-700); font-size: 11px; font-weight: 700; }
.lookup-workspace { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); }
.lookup-workspace form { border-right: 1px solid var(--line-100); padding: 20px; }
.lookup-workspace form:last-child { border-right: 0; }
.lookup-workspace h3 { margin: 0 0 5px; color: var(--navy-800); font-size: 16px; }
.lookup-workspace p { min-height: 38px; margin: 0 0 16px; color: var(--ink-500); font-size: 12px; line-height: 1.5; }
.lookup-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; margin-bottom: 14px; }
.lookup-results-panel { border-top: 1px solid var(--line-200); background: #f8fafb; }
.lookup-results-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line-100); padding: 16px 20px; background: #fff; }
.lookup-results-panel h3 { margin: 4px 0 0; }
.lookup-results-panel > header > span { color: var(--ink-500); font-size: 11px; }
.lookup-product-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line-100); }
.lookup-product-grid article { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 88px; padding: 15px 17px; background: #fff; }
.lookup-product-image { flex: 0 0 72px; width: 72px; height: 72px; overflow: hidden; border: 1px solid var(--line-200); border-radius: 6px; background: #f7f9fb; }
.lookup-product-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.lookup-product-copy { flex: 1 1 auto; min-width: 0; }
.lookup-product-copy .text-link { display: inline-block; margin-top: 7px; font-size: 10px; }
.lookup-product-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 10px; white-space: nowrap; }
.lookup-product-grid span, .lookup-product-grid strong, .lookup-product-grid small { display: block; }
.lookup-product-grid span { color: var(--blue-700); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.lookup-product-grid strong { margin: 3px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lookup-product-grid small { color: var(--ink-500); font-size: 11px; }
.lookup-product-grid small { overflow-wrap: anywhere; }
.ymme-status { display: block; min-height: 17px; margin: -4px 0 12px; color: var(--ink-500); font-size: 11px; line-height: 1.45; }
.bay-fitment { border-color: #b7c9d7 !important; background: linear-gradient(180deg,#f8fbfd,#fff 86%) !important; }
.bay-fitment__heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.bay-fitment__heading strong, .bay-fitment__heading span { display: block; }
.bay-fitment__heading strong { color: var(--navy-800); font-size: 15px; }
.bay-fitment__heading span { margin-top: 4px; color: var(--ink-500); font-size: 11px; }
.bay-fitment__actions { display: flex; align-items: center; gap: 8px; }
.fitment-adjustment-note { display: grid; gap: 3px; margin: 8px 0; border-left: 4px solid #d5982f; padding: 8px 11px; background: var(--amber-100); }
.fitment-adjustment-note[hidden] { display: none; }
.fitment-adjustment-note strong { color: var(--amber-700); font-size: 11px; }
.fitment-adjustment-note span, .fitment-adjustment-note small { color: var(--ink-600); font-size: 10px; }
.bay-fitment-results { margin-top: 15px; border: 1px solid var(--line-200); background: #fff; }
.bay-fitment-results .empty-state { min-height: 100px; }
.bay-fitment-results__head { display: flex; align-items: center; justify-content: space-between; gap: 15px; border-bottom: 1px solid var(--line-100); padding: 12px 14px; }
.bay-fitment-results__head span { color: var(--ink-500); font-size: 11px; }
.bay-fitment-group-tabs { display: flex; flex-wrap: nowrap; gap: 6px; min-width: 0; overflow-x: auto; overflow-y: hidden; padding: 8px; background: #f5f8fa; overscroll-behavior-x: contain; scrollbar-width: none; scroll-behavior: smooth; }
.bay-fitment-group-tabs::-webkit-scrollbar { display: none; }
.bay-fitment-group-tabs button { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; border: 1px solid var(--line-200); border-radius: 6px; padding: 6px 11px; color: var(--ink-600); background: #fff; font-size: 11px; font-weight: 800; cursor: pointer; }
.bay-fitment-group-tabs button:hover, .bay-fitment-group-tabs button.is-active { border-color: var(--blue-600); color: #fff; background: var(--blue-700); }
.bay-fitment-group-tabs button b, .bay-fitment-tabs button b { min-width: 20px; border-radius: 999px; padding: 2px 6px; font-size: 9px; text-align: center; }
.bay-fitment-group-tabs button b { color: var(--ink-600); background: var(--line-100); }
.bay-fitment-group-tabs button.is-active b { color: var(--blue-700); background: #fff; }
.bay-fitment-tabs-shell { display: grid; grid-template-columns: 30px minmax(0,1fr) 30px; align-items: stretch; border-bottom: 1px solid var(--line-200); background: #fff; }
.bay-fitment-tabs { display: flex; flex-wrap: nowrap; gap: 6px; overflow-x: auto; overflow-y: hidden; min-width: 0; padding: 7px 4px; background: #fff; overscroll-behavior-x: contain; scrollbar-width: none; scroll-behavior: smooth; }
.bay-fitment-tabs::-webkit-scrollbar { display: none; }
.bay-fitment-tabs-scroll { display: grid; place-items: center; min-width: 0; border: 0; padding: 0; color: var(--blue-700); background: #f5f8fb; font-size: 23px; line-height: 1; cursor: pointer; }
.bay-fitment-tabs-scroll:hover { background: var(--blue-100); }
.bay-fitment-tabs-scroll:first-child { border-right: 1px solid var(--line-100); }
.bay-fitment-tabs-scroll:last-child { border-left: 1px solid var(--line-100); }
.bay-fitment-tabs button { display: inline-flex; align-items: center; gap: 7px; min-height: 32px; border: 1px solid var(--line-200); border-radius: 999px; padding: 5px 10px; color: var(--ink-600); background: #f8fafb; font-size: 10px; font-weight: 800; cursor: pointer; }
.bay-fitment-group-tabs button, .bay-fitment-tabs button { flex: 0 0 auto; white-space: nowrap; }
.bay-fitment-tabs button[hidden] { display: none; }
.bay-fitment-tabs button:hover { border-color: var(--blue-400); color: var(--blue-700); background: #fff; }
.bay-fitment-tabs button.is-active { border-color: var(--blue-600); color: var(--blue-700); background: var(--blue-100); }
.bay-fitment-tabs button b { color: var(--ink-600); background: var(--line-100); }
.bay-fitment-tabs button.is-active b { color: var(--blue-700); background: var(--blue-100); }
.bay-fitment-tab-panels { max-height: 430px; overflow-y: auto; overscroll-behavior: contain; }
.bay-fitment-tab-panels > section[hidden] { display: none; }
.bay-fitment-results__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line-100); }
.bay-fitment-results__grid article { display: flex; align-items: center; justify-content: space-between; gap: 15px; min-width: 0; padding: 14px; background: #fff; }
.bay-fitment-results__grid article > div:first-child { min-width: 0; }
.bay-fitment-results__grid article > div:first-child span, .bay-fitment-results__grid article > div:first-child strong, .bay-fitment-results__grid article > div:first-child small { display: block; }
.bay-fitment-results__grid article > div:first-child span { color: var(--blue-700); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.bay-fitment-results__grid article > div:first-child strong { margin: 3px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bay-fitment-results__grid article > div:first-child small { color: var(--ink-500); font-size: 11px; overflow-wrap: anywhere; }
.bay-specifications { padding: 14px; background: #f4f8fc; border-bottom: 1px solid var(--line-200); }
.bay-specifications--compact { padding: 10px; }
.bay-specifications > header { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 10px; }
.bay-specifications > header h3 { margin: 2px 0 0; color: var(--navy-800); font-size: 16px; }
.bay-specifications > header small { max-width: 360px; color: var(--ink-500); font-size: 10px; text-align: right; }
.bay-specifications__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.bay-specifications--compact .bay-specifications__grid { grid-template-columns: 1fr; }
.bay-specifications__grid > article { min-width: 0; border: 1px solid var(--line-200); background: #fff; padding: 12px; }
.bay-specifications__title { display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.bay-specifications__title span, .bay-specifications__title strong { display: block; }
.bay-specifications__title span { color: var(--blue-700); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.bay-specifications__title strong { margin-top: 2px; color: var(--navy-800); font-size: 14px; }
.bay-specifications__title > small { border-radius: 999px; background: #e8f1fb; padding: 4px 7px; color: var(--blue-700); font-size: 9px; font-weight: 700; text-align: right; }
.bay-specifications dl { margin: 9px 0 0; }
.bay-specifications dl div { display: grid; grid-template-columns: 108px minmax(0,1fr); gap: 10px; border-top: 1px solid var(--line-100); padding: 7px 0; }
.bay-specifications dt { color: var(--ink-500); font-size: 10px; }
.bay-specifications dd { margin: 0; color: var(--ink-900); font-size: 11px; font-weight: 800; overflow-wrap: anywhere; }
.bay-specifications article p { margin: 7px 0 0; color: var(--ink-500); font-size: 10px; line-height: 1.45; }
.specification-link-note { display: grid; gap: 4px; border-bottom: 1px solid #b9d5ed; border-left: 4px solid var(--blue-600); padding: 13px 16px; background: #edf6fd; }
.specification-link-note strong { color: var(--navy-800); font-size: 12px; }
.specification-link-note span { color: var(--ink-500); font-size: 11px; line-height: 1.5; }
.bay-fitment-product-action { display: grid; justify-items: end; gap: 5px; min-width: 132px; }
.bay-fitment-product-action > small { color: var(--ink-500); font-size: 10px; }
.shop-price-required { color: var(--amber-700); font-size: 11px; }
.bay-fitment-product-action > label { display: flex; align-items: center; gap: 5px; color: var(--ink-500); font-size: 10px; }
.bay-fitment-product-action > label input { width: 58px; min-height: 32px; padding: 5px; }
.maintenance-guide { margin-top: 12px; border: 1px solid var(--line-200); background: #fff; }
.maintenance-guide > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 11px 13px; cursor: pointer; list-style: none; }
.maintenance-guide > summary::-webkit-details-marker { display: none; }
.maintenance-guide > summary::after { content: '+'; flex: 0 0 auto; color: var(--blue-700); font-size: 18px; font-weight: 800; }
.maintenance-guide[open] > summary { border-bottom: 1px solid var(--line-100); }
.maintenance-guide[open] > summary::after { content: '−'; }
.maintenance-guide > summary strong, .maintenance-guide > summary span { display: block; }
.maintenance-guide > summary strong { color: var(--navy-800); font-size: 13px; }
.maintenance-guide > summary span, .maintenance-guide > summary small { color: var(--ink-500); font-size: 10px; }
.maintenance-guide__note { border-bottom: 1px solid var(--line-100); padding: 7px 13px; color: var(--ink-500); font-size: 10px; }
.maintenance-guide__items { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: var(--line-100); }
.maintenance-guide__items button { min-width: 0; border-radius: 0; padding: 11px 12px; text-align: left; background: #fff; }
.maintenance-guide__items button:hover, .maintenance-guide__items button.is-selected { background: #edf5fa; }
.maintenance-guide__items span, .maintenance-guide__items strong, .maintenance-guide__items small { display: block; }
.maintenance-guide__items span { color: var(--blue-700); font-size: 9px; font-weight: 800; }
.maintenance-guide__items strong { margin: 3px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.maintenance-guide__items small { color: var(--ink-500); font-size: 10px; }
.detail-banner { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; border: 1px solid var(--line-200); border-top: 4px solid var(--blue-600); padding: 18px; background: #fff; }
.detail-banner strong, .detail-banner span, .detail-banner small { display: block; }
.detail-banner span, .detail-banner small { margin-top: 5px; color: var(--ink-500); }
.detail-banner > div:last-child { display: flex; align-items: center; gap: 12px; }
.customer-detail section { margin-bottom: var(--workspace-section-gap); }
.customer-detail h3, form h3 { margin: 20px 0 10px; color: var(--navy-800); font-size: 14px; }
.fleet-customer-summary { border: 1px solid #b9cad7; border-left: 4px solid var(--blue-600); background: #fff; }
.fleet-customer-summary > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line-200); padding: 13px 16px; background: #f7fafc; }
.fleet-customer-summary > header h3 { margin: 3px 0 0; font-size: 17px; }
.fleet-customer-summary__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; background: var(--line-200); }
.fleet-customer-summary__grid > div { min-width: 0; padding: 13px 15px; background: #fff; }
.fleet-customer-summary__grid span, .fleet-customer-summary__grid strong, .fleet-customer-summary__grid small { display: block; }
.fleet-customer-summary__grid span { color: var(--ink-500); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.fleet-customer-summary__grid strong { margin-top: 4px; overflow-wrap: anywhere; color: var(--navy-900); }
.fleet-customer-summary__grid small { margin-top: 4px; color: var(--ink-500); }
.fleet-customer-summary .callout { margin: 14px 15px; }
.fleet-customer-summary > p { margin: 14px 15px; color: var(--ink-600); font-size: 11px; text-transform: capitalize; }
.vehicle-cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.vehicle-cards article { border: 1px solid var(--line-200); padding: 15px; background: #fff; }
.vehicle-cards strong, .vehicle-cards span, .vehicle-cards small { display: block; }
.vehicle-cards span, .vehicle-cards small { margin-top: 4px; color: var(--ink-500); }
.invoice-sheet { border: 1px solid var(--line-200); padding: 30px; background: #fff; }
.invoice-sheet > header { display: flex; justify-content: space-between; gap: 24px; border-bottom: 3px solid var(--navy-800); padding-bottom: 20px; }
.invoice-sheet > header > div:last-child { text-align: right; }
.invoice-sheet > header strong, .invoice-sheet > header span, .invoice-sheet > header small { display: block; }
.invoice-sheet > header > div:first-child > strong { color: var(--navy-800); font-size: 22px; letter-spacing: .04em; }
.invoice-sheet > header span { color: var(--ink-500); }
.invoice-sheet > header > div:last-child > strong { margin: 5px 0 9px; font-size: 18px; }
.invoice-meta { display: grid; grid-template-columns: 1.1fr 1.1fr .8fr; gap: 24px; padding: 22px 0; }
.invoice-meta dl { margin: 0; }
.invoice-meta dt { margin-bottom: 7px; color: var(--blue-700); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.invoice-meta dd { margin: 0; color: var(--ink-700); line-height: 1.55; }
.invoice-bottom { display: grid; grid-template-columns: 1fr 310px; gap: 30px; padding-top: 22px; }
.invoice-bottom p { color: var(--ink-500); line-height: 1.55; }
.invoice-bottom dl { margin: 0; }
.invoice-bottom dl div { display: flex; justify-content: space-between; border-bottom: 1px solid var(--line-100); padding: 9px 0; }
.invoice-bottom dd { margin: 0; font-weight: 700; }
.invoice-bottom .invoice-total { border-top: 2px solid var(--navy-800); border-bottom: 0; margin-top: 6px; padding-top: 13px; color: var(--navy-800); font-size: 18px; }

/* Accounting-style searchable selects. Menus are anchored below the field and scroll vertically. */
.portal-select { position: relative; min-width: 0; width: 100%; }
.portal-select__native { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.portal-select__control { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; height: var(--form-control-height); min-height: var(--form-control-height); border: 1px solid var(--form-control-border); border-radius: var(--form-control-radius); padding: 8px 10px; color: var(--ink-700); background: #fff; font: inherit; text-align: left; cursor: pointer; }
.portal-select__control:hover { border-color: var(--blue-600); }
.portal-select__control:focus-visible { outline: 2px solid rgba(55, 101, 159, .22); border-color: var(--blue-600); }
.portal-select.is-disabled .portal-select__control { color: var(--ink-400); background: #f2f4f7; cursor: not-allowed; }
.portal-select__chevron { flex: 0 0 8px; width: 8px; height: 8px; border-right: 2px solid #587086; border-bottom: 2px solid #587086; transform: rotate(45deg) translateY(-2px); transform-origin: center; transition: transform .16s ease; }
.portal-select__control[aria-expanded="true"] .portal-select__chevron { transform: rotate(225deg) translate(-1px, -1px); }
.portal-select__menu { position: absolute; z-index: 120; top: calc(100% + 5px); right: 0; left: 0; min-width: 220px; border: 1px solid #aab9cb; border-radius: 6px; padding: 7px; background: #fff; box-shadow: 0 14px 32px rgba(20, 40, 65, .2); }
.portal-select__menu[hidden] { display: none; }
.portal-select__menu input { width: 100%; min-height: 38px; margin-bottom: 6px; border: 1px solid #c3cedb; border-radius: 4px; padding: 8px 10px; }
.portal-select__options { max-height: 230px; overflow-y: auto; overscroll-behavior: contain; }
.portal-select__options button { display: block; width: 100%; border: 0; border-radius: 4px; padding: 9px 10px; color: var(--ink-700); background: #fff; text-align: left; cursor: pointer; }
.portal-select__options button:hover, .portal-select__options button[aria-selected="true"] { color: var(--navy-800); background: #eaf1f8; }
.portal-select__options button[hidden] { display: none; }
.competitor-part-number { margin-top: 4px !important; color: var(--blue-700) !important; font-weight: 700; }
.form-grid input, .form-grid textarea, .lookup-form-grid input, .field-with-action input { border-color: var(--form-control-border); border-radius: var(--form-control-radius); }

.restock-proposal-section > header { align-items: flex-start; }
.restock-proposal-section > header p { max-width: 760px; margin: 6px 0 0; color: var(--ink-500); line-height: 1.5; }
.restock-proposal-grid { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 18px; }
.restock-proposal-card { display: grid; grid-template-columns: minmax(190px, .72fr) minmax(300px, 1.5fr) minmax(280px, .9fr); gap: 18px; min-width: 0; border: 1px solid var(--line-100); border-left: 4px solid var(--ink-300); padding: 17px; background: #fff; }
.restock-proposal-card.is-awaiting { border-left-color: var(--amber-700); box-shadow: 0 10px 25px rgba(31, 52, 78, .07); }
.restock-proposal-card > header, .restock-proposal-card > footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.restock-proposal-card h3 { margin: 3px 0 0; font-size: 19px; }
.restock-proposal-card header p { margin: 4px 0 0; color: var(--ink-500); font-size: 12px; }
.restock-proposal-card__body { display: grid; align-content: start; gap: 10px; min-width: 0; }
.restock-proposal-card__decision { display: grid; align-content: start; gap: 11px; min-width: 0; border-left: 1px solid var(--line-100); padding-left: 18px; }
.restock-proposal-lines { display: grid; border: 1px solid var(--line-100); background: #f8fafc; }
.restock-proposal-lines > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 11px; border-bottom: 1px solid var(--line-100); }
.restock-proposal-lines > div:last-child { border-bottom: 0; }
.restock-proposal-lines strong, .restock-proposal-lines small, .restock-proposal-card footer strong, .restock-proposal-card footer small { display: block; }
.restock-proposal-lines small, .restock-proposal-card footer small { color: var(--ink-500); }
.restock-proposal-note { margin: 0; padding: 11px 13px; border-left: 3px solid var(--blue-600); color: var(--ink-700); background: #edf4fb; line-height: 1.5; }
.restock-proposal-summary { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.restock-proposal-summary span, .restock-proposal-summary strong, .restock-proposal-summary small { display: block; }
.restock-proposal-summary strong { margin-top: 2px; font-size: 20px; }
.restock-proposal-actions { display: grid; grid-template-columns: auto auto minmax(130px,1fr); gap: 8px; }
.restock-proposal-actions .button { min-width: 0; min-height: 38px; padding: 0 10px; white-space: nowrap; }
.restock-proposal-actions .button--quiet { color: var(--blue-700); border-color: var(--line-200); background: #fff; }
.restock-fulfillment-choice input { width: 18px; height: 18px; min-height: 0; margin: 0; }
.restock-proposal-disclaimer { color: var(--ink-500); line-height: 1.45; }
.restock-proposal-table tbody tr { height: 52px; cursor: pointer; }
.restock-proposal-table tbody tr:hover { background: #f2f7fb; }
.restock-proposal-table th, .restock-proposal-table td { padding-top: 8px; padding-bottom: 8px; }
.restock-proposal-table td:first-child strong, .restock-proposal-table td:first-child small { display: block; }
.restock-proposal-table td:first-child small { margin-top: 2px; color: var(--ink-500); font-size: 9px; }
.status-pill--proposal-sent { border-color: #e3ca8b; color: #765414; background: #fff4cf; }
.status-pill--proposal-approved,
.status-pill--proposal-approved_queued { border-color: #b7d9c4; color: #2f6944; background: #e9f6ed; }
.status-pill--proposal-declined,
.status-pill--proposal-expired,
.status-pill--proposal-canceled { color: var(--ink-600); background: #f3f5f7; }

.workspace-section-tabs { display: flex; gap: 4px; overflow-x: auto; margin-bottom: var(--workspace-section-gap); border-bottom: 1px solid var(--line-200); padding: 0 2px; background: #fff; overscroll-behavior-x: contain; }
.workspace-section-tabs button { flex: 0 0 auto; border: 0; border-bottom: 3px solid transparent; padding: 12px 16px 10px; color: var(--ink-600); background: transparent; font-size: 12px; font-weight: 800; white-space: nowrap; }
.workspace-section-tabs button:hover { color: var(--blue-700); background: #f7fafc; }
.workspace-section-tabs button.is-active { border-bottom-color: var(--blue-600); color: var(--navy-900); }
.orders-workspace-tabs button { display: inline-flex; align-items: center; gap: 8px; }
.orders-workspace-tabs button b { display: inline-grid; min-width: 20px; height: 20px; place-items: center; border-radius: 999px; padding: 0 6px; color: #765414; background: #fff0bd; font-size: 9px; }
.orders-workspace-tabs + .panel > header p { max-width: 760px; margin: 6px 0 0; color: var(--ink-500); line-height: 1.5; }
.settings-grid > [data-settings-section]:not([hidden]) { grid-column: 1 / -1; }
.page-action-tabs button { display: inline-flex; align-items: center; gap: 7px; }
.page-action-tabs button b { display: inline-grid; min-width: 20px; height: 20px; place-items: center; border-radius: 999px; padding: 0 6px; color: var(--blue-700); background: var(--blue-100); font-size: 9px; }
.page-action-tabs button:disabled { color: var(--ink-400); background: #f7f8f9; cursor: not-allowed; }
.single-workspace-panel { grid-template-columns: minmax(0,1fr); }
.tax-amount-field { border-left: 3px solid var(--blue-600); padding-left: 11px; }
.tax-total-field input[readonly] { color: var(--navy-800); background: #eef4fa; font-weight: 800; }
.portal-dialog--wide [data-simple-form][data-resource="services"] > .form-grid,
.portal-dialog--wide [data-simple-form][data-resource="inventory"] > .form-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
@media (min-width: 821px) {
  .portal-dialog:not(.portal-dialog--compact) [data-simple-form][data-resource="locations"] > .form-grid,
  .portal-dialog:not(.portal-dialog--compact) [data-simple-form][data-resource="fee-rules"] > .form-grid,
  .portal-dialog:not(.portal-dialog--compact) [data-simple-form][data-resource="schedules"] > .form-grid,
  .portal-dialog:not(.portal-dialog--compact) [data-simple-form][data-resource="reminders"] > .form-grid,
  .portal-dialog:not(.portal-dialog--compact) [data-simple-form][data-resource="bills"] > .form-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .portal-dialog.portal-dialog--wide [data-simple-form][data-resource="locations"] > .form-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .portal-dialog:not(.portal-dialog--compact) [data-simple-form][data-resource="reminders"] fieldset > .form-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (min-width: 1100px) {
  .portal-dialog--wide:not(.portal-dialog--workspace) .dialog-body > form > .form-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .portal-dialog--wide [data-simple-form][data-resource="locations"] .competitor-brand-options { grid-template-columns: repeat(4,minmax(0,1fr)); max-height: 190px; }
  .portal-dialog--wide [data-simple-form][data-resource="locations"] .competitor-brand-options > label { border-right: 1px solid var(--line-100); }
  .portal-dialog--wide [data-simple-form][data-resource="locations"] .competitor-brand-options > label:nth-child(4n) { border-right: 0; }
}
.offering-summary { display: flex; align-items: center; gap: 14px; margin-top: var(--workspace-section-gap); border: 1px solid var(--line-200); border-left: 4px solid var(--blue-600); padding: 13px 16px; background: #fff; }
.offering-summary span { flex: 1; color: var(--ink-500); }
.offering-library-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.offering-library-tabs button { display: flex; align-items: center; justify-content: center; gap: 9px; min-height: 48px; border: 1px solid var(--line-200); border-radius: 7px; color: var(--ink-600); background: #fff; font-weight: 800; cursor: pointer; }
.offering-library-tabs button.is-active { border-color: var(--blue-600); color: var(--blue-700); background: #edf5fc; box-shadow: inset 0 -3px var(--blue-600); }
.offering-library-tabs b { display: inline-grid; place-items: center; min-width: 25px; height: 25px; border-radius: 999px; background: var(--line-100); font-size: 11px; }
.offering-library-search { margin: 0 0 14px; }
[data-offering-library-panel] { border: 1px solid var(--line-200); background: #fff; }
[data-offering-library-panel] > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line-200); padding: 14px 16px; }
[data-offering-library-panel] > header strong, [data-offering-library-panel] > header small { display: block; }
[data-offering-library-panel] > header small { margin-top: 3px; color: var(--ink-500); }
.offering-library-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; max-height: min(54vh,620px); overflow: auto; }
.offering-library-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; border-bottom: 1px solid var(--line-100); padding: 12px 14px; }
.offering-library-row:nth-child(odd) { border-right: 1px solid var(--line-100); }
.offering-library-row.is-archived { background: #f5f7f9; opacity: .72; }
.offering-library-row .check-field { min-width: 0; }
.offering-library-row .check-field span { min-width: 0; }
.offering-library-row strong, .offering-library-row small { display: block; }
.offering-library-row small { margin-top: 3px; color: var(--ink-500); overflow-wrap: anywhere; }

@media (min-width: 821px) {
  body.portal-session-active { overflow: hidden; }
  body.portal-session-active .portal-app { height: 100vh; min-height: 0; overflow: hidden; }
  body.portal-session-active .portal-layout { height: calc(100vh - 64px); min-height: 0; }
  body.portal-session-active .portal-sidebar { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
  body.portal-session-active .portal-workspace { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
  body.service-scroll-workspace { overflow: hidden; }
  body.service-scroll-workspace .portal-app { height: 100vh; min-height: 0; overflow: hidden; }
  body.service-scroll-workspace .portal-layout { height: calc(100vh - 64px); min-height: 0; }
  body.service-scroll-workspace .portal-sidebar { overflow-y: auto; overscroll-behavior: contain; }
  body.service-scroll-workspace .portal-workspace { display: grid; grid-template-rows: auto auto minmax(0,1fr); min-height: 0; overflow: hidden; }
  body.service-scroll-workspace .workspace-header { min-height: 96px; padding-top: 15px; padding-bottom: 14px; }
  body.service-scroll-workspace .workspace-header h1 { margin-top: 3px; margin-bottom: 2px; }
  body.service-scroll-workspace .workspace-header p { line-height: 1.35; }
  body.service-scroll-workspace .workspace-content { display: grid; grid-template-rows: auto auto minmax(260px,1fr) auto; gap: 8px; min-height: 0; overflow: hidden; padding-top: 10px; padding-bottom: 10px; }
  body.service-scroll-workspace .workspace-content:has(.scope-banner) { grid-template-rows: auto auto auto minmax(260px,1fr) auto; }
  body.service-scroll-workspace .workspace-content > .workspace-section-tabs { margin-bottom: 0; }
  body.service-scroll-workspace .workspace-section-tabs button { padding: 9px 14px 7px; }
  body.service-scroll-workspace .workspace-content > .context-search { align-self: start; width: 100%; height: auto; min-height: 40px; margin-bottom: 0; padding-top: 2px; padding-bottom: 2px; }
  body.service-scroll-workspace .scope-banner { margin: 0; }
  .services-checklist-workspace, .service-section-panel { height: 100%; min-height: 0; }
  .service-scroll-panel, .service-fee-panel { display: grid; grid-template-rows: auto minmax(0,1fr); min-height: 0; overflow: hidden; }
  .service-scroll-panel > header { min-height: 58px; padding: 9px 16px; }
  .service-scroll-panel > header p { margin-top: 3px; line-height: 1.35; }
  .service-scroll-list { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
  .service-scroll-list article { min-height: 58px; padding: 8px 16px; }
  .service-scroll-panel > .empty-state, .service-fee-panel > .empty-state { min-height: 0; overflow-y: auto; }
  .service-scroll-workspace .offering-summary { min-height: 42px; margin-top: 0; padding: 8px 14px; }
  .service-fee-panel { max-height: 180px; }
  .service-fee-panel > header { min-height: 58px; padding-top: 10px; padding-bottom: 10px; }
}

.self-hosted-banner { border-left: 4px solid var(--green-700); background: #f5fbf8; }
.self-hosted-banner p { max-width: 820px; margin: 5px 0 0; color: var(--ink-500); line-height: 1.5; }
.payroll-workspace { width: min(1660px,100%); margin: 0 auto; }
.payroll-period-bar { position: sticky; z-index: 2; top: -30px; display: grid; grid-template-columns: repeat(3,minmax(150px,220px)) minmax(180px,1fr); align-items: end; gap: 12px; margin: -4px 0 14px; border: 1px solid var(--line-200); padding: 13px 15px; background: #fff; box-shadow: 0 5px 14px rgba(24,45,61,.06); }
.payroll-period-bar > div { justify-self: end; text-align: right; }
.payroll-period-bar > div strong, .payroll-period-bar > div small { display: block; }
.payroll-period-bar > div small { margin-top: 3px; color: var(--ink-500); }
.payroll-entry-grid { display: grid; gap: 12px; margin: 14px 0; }
.payroll-entry-row { min-width: 0; border: 1px solid var(--line-200); border-left: 4px solid var(--blue-600); background: #fff; }
.payroll-entry-person { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line-200); padding: 11px 14px; background: #f7fafc; }
.payroll-entry-person strong, .payroll-entry-person small { display: block; }
.payroll-entry-person small { margin-top: 3px; color: var(--ink-500); }
.payroll-entry-person > span { color: var(--blue-700); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.payroll-entry-split { display: grid; grid-template-columns: minmax(290px,.75fr) minmax(480px,1.25fr); gap: 1px; background: var(--line-200); }
.payroll-entry-split > section { min-width: 0; background: #fff; }
.payroll-entry-split > section > header { border-bottom: 1px solid var(--line-100); padding: 10px 13px; }
.payroll-entry-split > section > header strong, .payroll-entry-split > section > header small { display: block; }
.payroll-entry-split > section > header small { margin-top: 2px; color: var(--ink-500); font-size: 9px; }
.payroll-field-grid { display: grid; grid-template-columns: repeat(2,minmax(120px,1fr)); gap: 8px; max-height: 230px; overflow-y: auto; overscroll-behavior: contain; padding: 11px 13px; }
.payroll-field-grid--taxes { grid-template-columns: repeat(3,minmax(120px,1fr)); }
.payroll-field-grid label { min-width: 0; }
.payroll-field-grid input, .payroll-field-grid select { width: 100%; min-width: 0; min-height: 35px; padding: 6px 8px; }
.payroll-workspace-actions { position: sticky; z-index: 2; bottom: -30px; margin: 16px -30px -30px; padding: 14px 30px; background: #fff; box-shadow: 0 -8px 18px rgba(25,48,66,.08); }
.tool-card-list { display: grid; gap: 0; }
.tool-card-list article { padding: 16px 18px; border-bottom: 1px solid var(--line-100); }
.tool-card-list article:last-child { border-bottom: 0; }
.tool-card-list p { margin: 5px 0 10px; color: var(--ink-500); line-height: 1.5; }
.review-print-card { display: grid; gap: 14px; min-height: 340px; place-content: center; padding: 44px; border: 2px solid var(--navy-900); color: var(--navy-950); text-align: center; background: #fff; }
.review-print-card h2 { margin: 0; font-family: Georgia, serif; font-size: 38px; }
.review-print-card p { max-width: 420px; margin: 0 auto; font-size: 17px; line-height: 1.55; }
.review-print-card > strong { overflow-wrap: anywhere; color: var(--blue-700); font-size: 16px; }
.compliance-print-section .statement-totals { margin: 0 18px 18px; }
.payroll-check-sheets { display: grid; gap: var(--workspace-section-gap); margin-top: var(--workspace-section-gap); }
.printable-check { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; min-height: 270px; align-content: space-between; border: 1px solid #7d8791; padding: 28px; background: #fff; break-after: page; }
.printable-check header, .printable-check footer { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 18px; }
.printable-check > div span, .printable-check > div strong { display: block; }
.printable-check > div span { margin-bottom: 5px; color: var(--ink-500); font-size: 10px; font-weight: 700; text-transform: uppercase; }

@media (max-width: 1050px) {
  :root { --sidebar-width: 218px; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .account-chip-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .portal-context-controls select { min-width: 120px; }
  .lookup-workspace, .lookup-product-grid, .bay-fitment-results__grid, .bay-specifications__grid { grid-template-columns: 1fr; }
  .order-workspace { grid-template-columns: 1fr; }
  .lookup-workspace form { border-right: 0; border-bottom: 1px solid var(--line-100); }
}

@media (max-width: 1240px) and (min-width: 821px) {
  .portal-topbar { grid-template-areas: "brand search actions"; grid-template-columns: var(--sidebar-width) minmax(300px,1fr) auto; }
  .portal-topbar__context { display: none; }
}

@media (max-width: 820px) {
  body.portal-nav-open { overflow: hidden; }
  body.portal-nav-open::before { content: ""; position: fixed; z-index: 44; inset: 112px 0 0; background: rgba(5,23,37,.48); backdrop-filter: blur(1px); }
  .portal-auth { grid-template-columns: 1fr; }
  .portal-auth__story { min-height: auto; padding: 20px 18px 24px; }
  .portal-auth__copy { padding: 34px 0 24px; }
  .portal-auth__copy h1 { margin: 11px 0 15px; font-size: clamp(32px, 9vw, 40px); line-height: 1.03; }
  .portal-auth__copy p { font-size: 14px; line-height: 1.5; }
  .portal-auth__metrics { gap: 8px; }
  .portal-auth__metrics div { min-width: 0; padding: 14px 4px 0 0; }
  .portal-auth__metrics dt { font-size: 23px; }
  .portal-auth__metrics dd { font-size: 9px; overflow-wrap: anywhere; }
  .portal-auth__panel { place-items: start center; padding: 16px 12px 34px; }
  .portal-auth__card { width: 100%; padding: 24px 20px; }
  .portal-auth__card h2 { font-size: 25px; }
  .portal-auth__card > .text-link { display: block; margin-top: 12px; }
  .portal-topbar { grid-template-areas: "brand actions" "search search"; grid-template-columns: minmax(0, 1fr) auto; min-height: 112px; }
  .portal-topbar__brand { min-width: 0; border-right: 0; padding: 9px 8px; }
  .portal-topbar__context { display: none; }
  .portal-topbar__actions .text-link { display: none; }
  .portal-topbar__actions { gap: 6px; padding: 9px 10px 9px 0; }
  .portal-topbar__actions .button { min-height: 36px; padding: 7px 10px; }
  .portal-topbar__search { padding: 0 10px 10px; }
  .portal-global-search-results { right: 10px; width: calc(100vw - 20px); max-height: calc(100vh - 128px); }
  .portal-menu-button { display: block; flex: 0 0 34px; width: 34px; margin-right: 2px; }
  .portal-brand--compact { min-width: 0; gap: 8px; }
  .portal-brand--compact > span:last-child { min-width: 0; }
  .portal-brand--compact strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .portal-layout { grid-template-columns: 1fr; }
  .portal-sidebar { position: fixed; z-index: 45; inset: 112px auto 0 0; width: min(84vw, 280px); transform: translateX(-105%); transition: transform .18s ease; box-shadow: 14px 0 35px rgba(0,0,0,.2); }
  body.portal-nav-open .portal-sidebar { transform: translateX(0); }
  .workspace-header { align-items: flex-start; flex-direction: column; min-height: auto; padding: 24px 20px 20px; }
  .workspace-actions { width: 100%; }
  .workspace-actions .button { flex: 1 1 140px; }
  .workspace-content { padding: 18px 16px 36px; }
  .portal-flash { margin: 14px 16px 0; }
  .bay-preview-grid { grid-template-columns: repeat(2, 1fr); }
  .bay-preview:nth-child(2) { border-right: 0; }
  .bay-preview:nth-child(-n+2) { border-bottom: 1px solid var(--line-100); }
  .portal-context-controls { display: none; }
  .bay-board, .split-grid, .report-grid, .settings-grid, .ticket-columns { grid-template-columns: 1fr; }
  .bay-switcher, .bay-workflow-launcher { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bay-workspace__panel > footer, .vehicle-lock-banner { align-items:stretch; flex-direction:column; }
  .payment-method-settings > div { grid-template-columns:1fr 1fr; border:1px solid var(--line-100); border-radius:9px; padding:10px; }
  .privacy-panel { grid-template-columns: 1fr; padding: 19px; }
  .owner-access-banner, .scope-banner { align-items: flex-start; flex-direction: column; }
  .order-product-grid { grid-template-columns: 1fr; }
  .restock-proposal-grid { grid-template-columns: 1fr; padding: 12px; }
  .restock-proposal-card { grid-template-columns: 1fr; }
  .restock-proposal-card__decision { border-top: 1px solid var(--line-100); border-left: 0; padding-top: 14px; padding-left: 0; }
  .restock-proposal-actions { grid-template-columns: 1fr; }
  .offering-summary, [data-offering-library-panel] > header { align-items: flex-start; flex-direction: column; }
  .offering-library-list { grid-template-columns: 1fr; }
  .offering-library-row:nth-child(odd) { border-right: 0; }
  .portal-dialog--wide [data-simple-form][data-resource="services"] > .form-grid,
  .portal-dialog--wide [data-simple-form][data-resource="inventory"] > .form-grid { grid-template-columns: 1fr; }
  .record-form-workspace { grid-template-columns: 1fr; min-height: 0; }
  .record-form-tabs { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line-200); padding: 8px; overscroll-behavior-x: contain; }
  .record-form-tabs button { flex: 0 0 170px; border-left: 0; border-bottom: 3px solid transparent; }
  .record-form-tabs button.is-active { border-bottom-color: var(--blue-600); }
  .record-form-panel > .form-grid { max-height: none; overflow: visible; }
  .record-detail-panel > .record-detail-content { max-height: none; overflow: visible; }
  .record-form-actions { position: static; margin: 16px 0 0; padding: 14px 0 0; box-shadow: none; }
  .vehicle-detail-workspace { grid-template-columns: 1fr; }
  .vehicle-detail-tabs { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line-200); }
  .vehicle-detail-tabs button { flex: 0 0 190px; border-left: 0; border-bottom: 3px solid transparent; }
  .vehicle-detail-tabs button.is-active { border-bottom-color: var(--blue-600); }
  .customer-profile-list, .vehicle-detail-list { grid-template-columns: 1fr; }
  .customer-profile-list > div:last-child { grid-column: auto; }
  .fleet-control-grid { grid-template-columns: 1fr; }
  .fleet-control-grid > section > .form-grid, .fleet-control-grid > section > .checklist-grid { max-height: none; overflow: visible; }
  .privacy-readonly { justify-self: start; text-align: left; }
  .team-grid, .vehicle-cards { grid-template-columns: 1fr; }
  .fleet-ticket-summary, .fleet-customer-summary__grid { grid-template-columns: 1fr 1fr; }
  .ticket-fleet-panel > header, .fleet-customer-summary > header { align-items: flex-start; }
  .metric-grid--three { grid-template-columns: 1fr; }
  .form-grid, .checklist-grid { grid-template-columns: 1fr; }
  .context-search { grid-template-columns: 1fr; gap: 4px; }
  .context-search > span { padding-left: 12px; white-space: normal; }
  .competitor-brand-options { grid-template-columns: 1fr; }
  .competitor-brand-options > label:nth-child(odd) { border-right: 0; }
  .vehicle-lookup-bar, .vehicle-ymme-grid { grid-template-columns: 1fr; }
  .daily-shop-status { grid-template-columns: 1fr; }
  .daily-shop-status .button { grid-column: 1 / -1; width: 100%; }
  .maintenance-guide__items { grid-template-columns: 1fr 1fr; }
  .bay-fitment__heading, .bay-fitment-results__grid article, .bay-specifications > header { align-items: stretch; flex-direction: column; }
  .bay-specifications > header small { max-width: none; text-align: left; }
  .bay-fitment-product-action { justify-items: start; }
  .field-wide { grid-column: auto; }
  .field-span-2, .field-span-3 { grid-column: auto; }
  .dialog-body .vehicle-row { padding: 12px; }
  .vehicle-row .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .vehicle-row .vehicle-field-double { grid-column: 1 / -1; }
  .portal-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
  .dialog-body { padding: 14px; }
  .invoice-meta, .invoice-bottom { grid-template-columns: 1fr; }
  .invoice-sheet { padding: 20px 15px; }
  .toolbar, .callout { align-items: flex-start; flex-direction: column; }
  .toolbar { gap: 10px; }
  .toolbar .search-field, .toolbar select, .inventory-toolbar .search-field, .inventory-toolbar select { width: 100%; min-width: 0; }
  .inventory-toolbar > span { margin-left: 0; white-space: normal; }
  .lookup-workspace, .lookup-product-grid { grid-template-columns: 1fr; }
  .lookup-workspace form { border-right: 0; border-bottom: 1px solid var(--line-100); }
  .payment-allocation-grid { min-width: 0; }
  .payment-allocation-grid__head { display: none; }
  .payment-allocation-row { grid-template-columns: 1fr 1fr; gap: 12px; padding: 14px; }
  .payment-allocation-row > span:first-child { grid-column: 1 / -1; border-bottom: 1px solid var(--line-100); padding-bottom: 9px; }
  .payment-allocation-row > span[data-mobile-label]::before, .mobile-field-label { display: block; margin-bottom: 3px; color: var(--ink-500); font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
  .payment-allocation-row > span[data-mobile-label]::before { content: attr(data-mobile-label); }
  .allocation-toolbar { align-items: flex-start; flex-direction: column; gap: 9px; }
  .allocation-toolbar > div { width: 100%; justify-content: space-between; }
  .payment-preview__totals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payment-preview__lines > div { grid-template-columns: 1fr 1fr; }
  .payroll-period-bar { position: static; grid-template-columns: repeat(3,minmax(0,1fr)); top: auto; }
  .payroll-period-bar > div { grid-column: 1 / -1; justify-self: start; text-align: left; }
  .payroll-entry-split { grid-template-columns: 1fr; }
  .payroll-field-grid--taxes { grid-template-columns: repeat(2,minmax(120px,1fr)); }
  .payroll-workspace-actions { position: static; margin: 16px 0 0; padding: 14px 0 0; box-shadow: none; }
  .account-chip-grid { grid-template-columns: repeat(2, minmax(0,1fr)); padding: 12px; }
  .tax-agency-row, .journal-line { grid-template-columns: 1fr 1fr; border: 1px solid var(--line-100); border-radius: 10px; padding: 12px; }
  .reconciliation-summary { grid-template-columns: 1fr; }
  .tax-agency-row > .text-link--danger, .journal-line > .text-link--danger { grid-column: 1 / -1; justify-self: end; }
  .detail-hero { grid-template-columns: 1fr; }
  .dialog-card > header { min-height: 64px; padding: 12px 14px; }
  .dialog-card > header h2 { font-size: 19px; overflow-wrap: anywhere; }
  .dialog-body fieldset { padding: 13px; }
  .form-actions { align-items: stretch; flex-direction: column; gap: 10px; }
  .form-actions > div, .dialog-footer { display: grid; grid-template-columns: 1fr; width: 100%; gap: 9px; }
  .form-actions .button, .dialog-footer .button { width: 100%; }
  .purchase-order-lines > label > input[type="checkbox"] { width: 18px; min-height: 18px; }
  .purchase-order-lines > label:has(> input[type="checkbox"]) { grid-template-columns: 22px minmax(0, 1fr); }
  .purchase-order-lines > label:has(> input[type="checkbox"]) > input:not([type="checkbox"]) { grid-column: 1 / -1; }
}

@media (max-width: 470px) {
  .owner-shop-search { align-items: stretch; flex-direction: column; }
  .owner-shop-search > span { white-space: normal; }
  .owner-shop-grid { grid-template-columns: 1fr; }
  .owner-shop-card dl { grid-template-columns: 1fr; }
  .portal-auth__story { padding: 16px 16px 20px; }
  .portal-auth__copy { padding: 28px 0 6px; }
  .portal-auth__copy h1 { margin-bottom: 0; font-size: clamp(30px, 9.5vw, 36px); }
  .portal-auth__copy p, .portal-auth__metrics { display: none; }
  .portal-auth__panel { padding: 12px 8px 28px; }
  .portal-auth__card { padding: 22px 17px; }
  .portal-topbar__actions { gap: 8px; padding-left: 0; }
  .portal-brand--compact strong { font-size: 12px; }
  .portal-brand--compact small { display: none; }
  .portal-brand--compact .portal-brand__mark { width: 30px; height: 30px; }
  .metric-grid { grid-template-columns: 1fr; }
  .vehicle-row .form-grid { grid-template-columns: 1fr; }
  .vehicle-row .vehicle-field-double { grid-column: auto; }
  .account-chip-grid { grid-template-columns: 1fr; }
  .tax-agency-row, .journal-line { grid-template-columns: 1fr; }
  .tax-agency-row > .text-link--danger, .journal-line > .text-link--danger { grid-column: auto; justify-self: end; }
  .bay-preview-grid { grid-template-columns: 1fr; }
  .bay-switcher, .bay-workflow-launcher { grid-template-columns:1fr; }
  .bay-switcher__tab { min-height:78px; border-right:0; border-bottom:1px solid var(--line-100); }
  .bay-workspace__panel > header, .bay-workspace__panel > footer { padding:18px; }
  .bay-workflow-launcher { padding:14px; }
  .bay-workflow-launcher button { min-height:80px; }
  .bay-preview { border-right: 0; border-bottom: 1px solid var(--line-100); }
  .workspace-header { padding: 20px 14px 16px; }
  .workspace-content { padding: 12px 10px 28px; }
  .portal-flash { margin-right: 10px; margin-left: 10px; }
  .panel > header, .lookup-results-panel > header { align-items: flex-start; flex-direction: column; min-height: auto; padding: 14px; }
  .panel > header .text-link { min-height: 32px; }
  .row-actions { justify-content: flex-start; flex-wrap: wrap; }
  .table-wrap table { min-width: 660px; }
  .payment-allocation-row { grid-template-columns: 1fr; }
  .payment-allocation-row > span:first-child { grid-column: auto; }
  .payment-preview__totals, .payment-preview__lines > div { grid-template-columns: 1fr; }
  .payroll-period-bar { grid-template-columns: 1fr; }
  .payroll-field-grid, .payroll-field-grid--taxes { grid-template-columns: 1fr; max-height: none; overflow: visible; }
  .payroll-entry-person { align-items: flex-start; flex-direction: column; }
  .review-print-card { min-height: 280px; padding: 24px 16px; }
  .review-print-card h2 { font-size: 30px; }
  .printable-check { grid-template-columns: 1fr; min-height: auto; padding: 18px; }
  .printable-check header, .printable-check footer { grid-column: auto; flex-direction: column; }
  .portal-order-cart > article { grid-template-areas: "copy copy" "quantity total" "remove remove"; grid-template-columns: 58px minmax(0, 1fr); }
}

/* Compact repair-order workstation: each workflow tab favors one-screen operation. */
.service-access-locations { display: grid; gap: 16px; padding: 18px; }
.service-access-location { overflow: hidden; border: 1px solid var(--line-200); border-radius: 10px; background: #fff; }
.service-access-location > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line-200); padding: 16px; }
.service-access-location > header strong, .service-device-list strong, .service-device-requests strong, .service-risk-list strong { display: block; }
.service-access-location small, .service-device-list small, .service-device-requests small, .service-risk-list small { display: block; margin-top: 3px; color: var(--ink-500); }
.service-access-meta { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 10px; padding: 14px 16px; background: var(--surface-100); color: var(--ink-500); font-size: 12px; }
.service-access-meta strong { display: block; margin-top: 3px; color: var(--ink-900); }
.service-access-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 16px; }
.service-access-location > .callout { margin: 14px 16px 0; }
.service-device-list, .service-device-requests, .service-risk-list { border-top: 1px solid var(--line-200); padding: 14px 16px; }
.service-device-list h3, .service-device-requests h3, .service-risk-list h3 { margin: 0 0 10px; font-size: 13px; }
.service-device-list > article, .service-device-requests > article, .service-risk-list > article { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 10px 0; }
.service-device-list > article + article, .service-device-requests > article + article, .service-risk-list > article + article { border-top: 1px solid var(--line-100); }

.portal-dialog--workspace .dialog-body { padding: 12px 18px 20px; }
.portal-dialog--workspace .ticket-status-bar { margin-bottom: 8px; padding: 8px 12px; }
.portal-dialog--workspace .dialog-body fieldset { margin-bottom: 10px; padding: 12px 14px; }
.portal-dialog--workspace .fieldset-note { margin-bottom: 7px; }
.portal-dialog--workspace textarea { min-height: 62px; }
.ticket-workspace-nav { position: sticky; z-index: 4; top: -12px; margin: 0 0 10px; border-bottom: 1px solid var(--line-200); padding: 8px 0; background: rgba(244,246,248,.97); backdrop-filter: blur(8px); }
.ticket-workspace-nav .ticket-workflow-tabs { padding: 7px 0 0; }
.ticket-workspace-nav__lower { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.ticket-workspace-nav .ticket-bay-shortcuts { flex: 0 0 auto; padding: 0; }
.ticket-quick-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; color: var(--ink-500); font-size: 10px; }
.portal-dialog--workspace [data-ticket-panel="customer"] > .form-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px 12px; }
.portal-dialog--workspace [data-ticket-panel="customer"] > .form-grid > .field-wide:not(.vehicle-details) { grid-column: span 2; }
.portal-dialog--workspace [data-ticket-panel="customer"] .vehicle-details { grid-column: 1 / -1; padding: 9px 11px; }
.portal-dialog--workspace [data-ticket-panel="customer"] .vehicle-details .form-grid { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 9px; }
.portal-dialog--workspace [data-ticket-panel="service"] .lookup-form-grid { grid-template-columns: repeat(4,minmax(0,1fr)); margin-bottom: 8px; }
.portal-dialog--workspace .ticket-service-top .lookup-form-grid { grid-template-columns: repeat(4,minmax(0,1fr)); align-items: end; }
.portal-dialog--workspace [data-ticket-panel="service"] .bay-fitment__heading { margin-bottom: 9px; }
.portal-dialog--workspace [data-ticket-panel="service"] .bay-fitment-results { margin-top: 9px; }
.portal-dialog--workspace [data-ticket-panel="service"] .bay-fitment-results .empty-state { min-height: 62px; padding: 14px; }
.portal-dialog--workspace .dialog-body .ticket-service-reference { min-width: 0; border: 0; padding: 0; background: transparent; }
.portal-dialog--workspace .ticket-service-reference .bay-fitment-results { margin-top: 0; border-radius: 7px; overflow: hidden; }
.portal-dialog--workspace .ticket-service-reference .bay-fitment-results__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.portal-dialog--workspace .ticket-service-reference .bay-fitment-results__grid article:only-child { grid-column: 1 / -1; }
.portal-dialog--workspace .ticket-service-reference .bay-fitment-tab-panels { max-height: 240px; }
.portal-dialog--workspace .ticket-service-reference .bay-fitment-results__head { padding: 9px 14px; }
.portal-dialog--workspace .ticket-service-reference .bay-fitment-product-action { min-width: 165px; }
.portal-dialog--workspace .ticket-service-top > fieldset { margin-bottom: 12px; border-radius: 7px; background: #fff; }
.portal-dialog--workspace [data-ticket-panel="service"] .ticket-service-pricebook,
.portal-dialog--workspace [data-ticket-panel="service"] .ticket-parts-used { border-radius: 7px; background: #fff; }
.portal-dialog--workspace [data-ticket-panel="service"] .ticket-part-scanner { margin: 0 0 6px; border: 0; padding: 0; background: transparent; }
.portal-dialog--workspace [data-ticket-panel="service"] .ticket-part-scanner p { margin-top: 4px; }
.portal-dialog--workspace [data-ticket-panel="service"] .selection-list > label:has(input:checked),
.portal-dialog--workspace [data-ticket-panel="service"] .parts-list > label:has(input[type="checkbox"]:checked) { background: #eef5fb; box-shadow: inset 3px 0 var(--blue-600); }
.portal-dialog--workspace [data-ticket-panel="service"] .maintenance-guide { margin-top: 8px; }
.portal-dialog--workspace [data-ticket-panel="service"] .selection-list,
.portal-dialog--workspace [data-ticket-panel="service"] .parts-list { max-height: 220px; }
.portal-dialog--workspace [data-ticket-panel="inspection"] .inspection-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.portal-dialog--workspace [data-ticket-panel="inspection"] .inspection-grid article { grid-template-columns: minmax(180px,1fr) 140px minmax(150px,.9fr); gap: 7px; border-radius: 7px; padding: 8px 9px; }
.portal-dialog--workspace [data-ticket-panel="inspection"] .inspection-grid input,
.portal-dialog--workspace [data-ticket-panel="inspection"] .inspection-grid select { min-height: 34px; padding: 6px 8px; }
.portal-dialog--workspace [data-ticket-panel="checkout"] .ticket-live-total { margin-bottom: 10px; }

@media (max-width: 1180px) {
  .portal-dialog--workspace [data-ticket-panel="customer"] > .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .portal-dialog--workspace [data-ticket-panel="customer"] .vehicle-details .form-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .ticket-service-top { grid-template-columns: 1fr; }
  .portal-dialog--workspace [data-ticket-panel="service"] .lookup-form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .portal-dialog--workspace [data-ticket-panel="inspection"] .inspection-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .ticket-service-selection-row { grid-template-columns: 1fr; }
  .portal-dialog--workspace .ticket-service-reference .bay-fitment-results__grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .portal-dialog--workspace .dialog-body { padding: 9px; }
  .ticket-service-technician { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ticket-service-technician > label:nth-of-type(-n+3) { grid-column: auto; }
  .ticket-service-technician > label:has([name="fleet_po_number"]) { grid-column: 1 / -1; }
  .ticket-workspace-nav { position: static; top: auto; margin-bottom: 8px; padding-top: 0; }
  .ticket-workspace-nav__lower { align-items: stretch; flex-direction: column; gap: 6px; }
  .ticket-workspace-nav .ticket-bay-shortcuts { width: 100%; }
  .ticket-quick-actions { justify-content: space-between; }
  .ticket-quick-actions > span { display: none; }
  .portal-dialog--workspace [data-ticket-panel="customer"] > .form-grid,
  .portal-dialog--workspace [data-ticket-panel="customer"] .vehicle-details .form-grid,
  .portal-dialog--workspace [data-ticket-panel="service"] .lookup-form-grid { grid-template-columns: 1fr; }
  .portal-dialog--workspace [data-ticket-panel="customer"] > .form-grid > .field-wide:not(.vehicle-details) { grid-column: auto; }
  .portal-dialog--workspace [data-ticket-panel="inspection"] .inspection-grid article { grid-template-columns: 1fr; }
}

.owner-activity-metrics { margin-bottom: 16px; }
.owner-activity-tabs button { display: inline-flex; align-items: center; gap: 8px; }
.owner-activity-tabs b { min-width: 22px; border-radius: 999px; padding: 2px 7px; color: var(--ink-700); background: var(--line-100); font-size: 10px; text-align: center; }
.owner-activity-tabs button.is-active b { color: var(--blue-700); background: var(--blue-100); }
.owner-activity-panel > header > span { color: var(--ink-500); font-size: 12px; }
.owner-activity-list { max-height: calc(100vh - 400px); min-height: 300px; overflow-y: auto; }
.owner-activity-row { display: grid; grid-template-columns: 125px minmax(300px,1fr) minmax(180px,260px); gap: 18px; align-items: start; padding: 15px 20px; border-top: 1px solid var(--line-100); }
.owner-activity-row:first-child { border-top: 0; }
.owner-activity-row__when, .owner-activity-row__main, .owner-activity-row__meta { display: grid; gap: 4px; min-width: 0; }
.owner-activity-row__when small, .owner-activity-row__main > span, .owner-activity-row__meta span, .owner-activity-row__meta small { color: var(--ink-500); }
.owner-activity-row__main > div { display: flex; align-items: center; gap: 8px; }
.owner-activity-row__main > strong { font-size: 15px; }
.owner-activity-row__main p { margin: 5px 0 0; border-left: 3px solid var(--amber-700); padding: 6px 9px; color: var(--ink-700); background: var(--amber-100); }
.owner-activity-row__meta { justify-items: end; text-align: right; }
.owner-activity-row__meta b { margin-top: 4px; color: var(--ink-900); font-size: 15px; }

@media (max-width: 760px) {
  .owner-activity-list { max-height: none; }
  .owner-activity-row { grid-template-columns: 1fr; gap: 10px; padding: 14px; }
  .owner-activity-row__meta { justify-items: start; text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

@media print {
  body.printing-portal > * { display: none !important; }
  body.printing-portal .print-target { display: block !important; position: fixed; inset: 0; z-index: 9999; width: 100%; height: auto; overflow: visible; border: 0; padding: 0; background: #fff; box-shadow: none; }
  body.printing-portal dialog:has(.print-target) { display: contents; }
  body.printing-portal .dialog-footer { display: none !important; }
  .invoice-sheet { color: #000; }
}

.choice-brand-logo{object-fit:contain!important;background:transparent!important;flex-shrink:0}

.portal-auth .portal-brand__mark.choice-brand-logo{width:112px;height:112px;border:0}
@media(max-width:640px){.portal-auth .portal-brand__mark.choice-brand-logo{width:88px;height:88px}}
