/*
 * AWMS PHP — visual alignment with the React AWMS app (tailwind.config.js):
 * cream background, gold primary, white header, near-black text.
 */

:root {
  /* Brand (matches frontend/tailwind.config.js) */
  --gold: #d4af37;
  --gold-hover: #e5c158;
  --gold-light: #f0d98c;
  --cream: #f7f5f0;
  --cream-light: #fdfcf9;
  --white: #ffffff;
  --gray-light: #e5e5e5;
  --gray-medium: #808080;
  --gray-dark: #4a4a4a;
  --black-text: #1a1a1a;

  --bg: var(--cream);
  /* Light-mode page gradient: lighter on the left, darker toward the right */
  --bg-gradient-end: #d8d2c6;
  --surface: var(--white);
  --surface-muted: var(--cream-light);
  --header-bg: var(--white);
  /* Light-mode nav bar: darker wash behind the logo (left), fades to white */
  --header-logo-shade: #c9c3b6;
  --border: var(--gray-light);
  --text: var(--black-text);
  --muted: var(--gray-medium);
  --accent: var(--gold);
  --accent-hover: var(--gold-hover);
  --danger: #b91c1c;
  --danger-bg: #fef2f2;
  --ok: #166534;
  --ok-bg: #f0fdf4;
  --warning: #92400e;
  --warning-bg: #fef3c7;
  --shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 4px 24px rgba(0, 0, 0, 0.06);
  --input-bg: var(--white);
  --card-bg: var(--surface);
  --hover-bg: var(--cream-light);
}

/* Dark mode: same token names, different values (toggle + localStorage: awms-theme) */
:root[data-theme="dark"] {
  color-scheme: dark;
  --gold: #e0bc4a;
  --gold-hover: #ecc75c;
  --gold-light: #6b5a2e;
  --cream: #131416;
  --cream-light: #1c1e22;
  --white: #1e2128;
  --gray-light: #3d424d;
  --gray-medium: #9ca3af;
  --gray-dark: #c5c9d2;
  --black-text: #e8eaef;

  --bg: var(--cream);
  --surface: #22262e;
  --surface-muted: #2a2e38;
  --header-bg: #1a1d24;
  --border: var(--gray-light);
  --text: var(--black-text);
  --muted: var(--gray-medium);
  --accent: var(--gold);
  --accent-hover: var(--gold-hover);
  --danger: #f87171;
  --danger-bg: rgba(220, 38, 38, 0.18);
  --ok: #4ade80;
  --ok-bg: rgba(22, 163, 74, 0.18);
  --warning: #fcd34d;
  --warning-bg: rgba(245, 158, 11, 0.2);
  --shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 4px 28px rgba(0, 0, 0, 0.5);
  --input-bg: #252a33;
  --card-bg: var(--surface);
  --hover-bg: var(--surface-muted);
}

/*
 * Smooth light/dark switch (~2s) while html.theme-transitioning is set (see theme-toggle.js).
 * Scoped to those 2s so hovers/focus keep normal timing the rest of the time.
 */
:root.theme-transitioning,
:root.theme-transitioning *,
:root.theme-transitioning *::before,
:root.theme-transitioning *::after {
  transition-property: background-color, border-color, color, outline-color, fill, stroke,
    text-decoration-color, column-rule-color;
  transition-duration: 2s;
  transition-timing-function: ease;
}

@media (prefers-reduced-motion: reduce) {
  :root.theme-transitioning,
  :root.theme-transitioning *,
  :root.theme-transitioning *::before,
  :root.theme-transitioning *::after {
    transition-duration: 0.01ms !important;
  }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell,
    "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.5;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

/* Light mode: cream on the left, subtle darker tone toward the right */
:root:not([data-theme="dark"]) body {
  background: linear-gradient(to right, var(--cream) 0%, var(--bg-gradient-end) 100%);
  background-attachment: fixed;
}

@media screen {
  /* Keep print preview / standalone print pages on solid cream (gradient rule is higher specificity on plain body) */
  :root:not([data-theme="dark"]) body.quote-print-body,
  :root:not([data-theme="dark"]) body.workorder-print-body {
    background: var(--cream);
    background-attachment: scroll;
  }
}

a {
  color: var(--accent);
  text-decoration: none;
}
a:hover {
  color: var(--accent-hover);
  text-decoration: underline;
}

/* ——— Header (matches Layout.tsx: white bar, shadow, gold accents) ——— */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  height: 4rem;
  background: var(--header-bg);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow);
}

/* Light mode: darker around the logo, opening up to white toward the nav */
:root:not([data-theme="dark"]) .site-header {
  background: linear-gradient(
    to right,
    var(--header-logo-shade) 0%,
    var(--header-bg) 36%,
    var(--header-bg) 100%
  );
}
.site-header__inner {
  width: min(1920px, calc(100vw - 1rem));
  margin: 0 auto;
  padding: 0 0.85rem 0 1rem;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.site-header__nav-slot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 1;
  min-width: 0;
  gap: 0.25rem;
}

/* Hamburger: hidden on wide screens; shown in mobile breakpoint below */
.site-header__menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  background: var(--surface-muted);
  color: var(--text);
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.site-header__menu-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.site-header__menu-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.site-header__menu-bars {
  position: relative;
  width: 1.15rem;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  box-shadow: 0 -6px 0 currentColor, 0 6px 0 currentColor;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.site-header--nav-open .site-header__menu-bars {
  box-shadow: none;
  transform: rotate(45deg);
}
.site-header--nav-open .site-header__menu-bars::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  transform: rotate(90deg);
}

.site-nav-backdrop {
  display: none;
}
.site-nav-backdrop:not([hidden]) {
  display: block;
  position: fixed;
  top: 4rem;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 45;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(26, 26, 26, 0.35);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
:root[data-theme="dark"] .site-nav-backdrop:not([hidden]) {
  background: rgba(0, 0, 0, 0.55);
}

body.nav-drawer-open {
  overflow: hidden;
}

.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  background: var(--surface-muted);
  color: var(--text);
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.theme-toggle:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.theme-toggle:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.theme-toggle__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}
.theme-toggle[aria-pressed="false"] .theme-toggle__icon--sun {
  display: none;
}
.theme-toggle[aria-pressed="true"] .theme-toggle__icon--moon {
  display: none;
}

.site-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--text);
  text-decoration: none;
}
.site-logo:hover {
  color: var(--text);
  text-decoration: none;
}
.site-logo__img {
  display: block;
  height: 2.25rem;
  width: auto;
  max-width: 7.5rem;
  object-fit: contain;
}
.site-logo__text {
  letter-spacing: -0.02em;
}

.login-brand {
  margin: 0 0 1rem;
  text-align: center;
}
.login-brand__logo {
  display: inline-block;
  height: 3.25rem;
  width: auto;
  max-width: 12rem;
  object-fit: contain;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
}
.site-nav a {
  color: var(--text);
  text-decoration: none;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  transition: background 0.15s, color 0.15s;
}
.site-nav a:hover {
  background: var(--cream);
  color: var(--accent-hover);
  text-decoration: none;
}
.site-nav__reports {
  margin-left: auto;
}
.site-nav__admin {
  margin-left: 0;
}
.site-nav:not(:has(.site-nav__reports)) .site-nav__admin {
  margin-left: auto;
}
.site-nav__user {
  color: var(--muted);
  font-size: 0.875rem;
  padding: 0 0.25rem;
}

.site-nav__dropdown {
  position: relative;
}
.site-nav__trigger {
  color: var(--text);
  text-decoration: none;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  font-family: inherit;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.site-nav__trigger::after {
  content: "";
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: 0.55;
  margin-top: 1px;
}
.site-nav__trigger:hover,
.site-nav__dropdown:focus-within > .site-nav__trigger {
  background: var(--cream);
  color: var(--accent-hover);
}
.site-nav__menu {
  display: none;
  position: absolute;
  top: calc(100% - 2px);
  left: 0;
  min-width: 11.5rem;
  padding: 0.35rem;
  margin: 0;
  list-style: none;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  box-shadow: var(--shadow);
  z-index: 100;
}
.site-nav__menu li {
  margin: 0;
}
.site-nav__dropdown:hover .site-nav__menu,
.site-nav__dropdown:focus-within .site-nav__menu {
  display: block;
}
.site-nav__menu a {
  display: block;
  padding: 0.45rem 0.75rem;
  border-radius: 0.35rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text);
  text-decoration: none;
}
.site-nav__menu a:hover {
  background: var(--cream);
  color: var(--accent-hover);
  text-decoration: none;
}

/* ——— Mobile nav: hamburger + slide-down panel ——— */
@media (max-width: 900px) {
  .site-header__inner {
    flex-wrap: nowrap;
  }
  .site-header__menu-btn {
    display: inline-flex;
  }
  .site-nav {
    display: none;
    position: fixed;
    top: 4rem;
    left: 0;
    right: 0;
    z-index: 55;
    flex-direction: column;
    align-items: stretch;
    align-content: flex-start;
    flex-wrap: nowrap;
    gap: 0.15rem;
    max-height: min(75vh, calc(100dvh - 4rem));
    overflow-y: auto;
    padding: 0.5rem 0.85rem 1rem;
    margin: 0;
    background: var(--header-bg);
    border-bottom: 1px solid var(--border);
    box-shadow: var(--shadow-lg);
    -webkit-overflow-scrolling: touch;
  }
  .site-header--nav-open .site-nav {
    display: flex;
  }
  .site-nav__reports,
  .site-nav__admin {
    margin-left: 0;
  }
  .site-nav a {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }
  .site-nav__trigger {
    display: flex;
    width: 100%;
    box-sizing: border-box;
    justify-content: space-between;
    text-align: left;
  }
  .site-nav__user {
    padding: 0.65rem 1rem 0.35rem;
    border-top: 1px solid var(--border);
    margin-top: 0.35rem;
  }
  .site-nav__menu {
    position: static;
    display: none;
    min-width: 0;
    width: 100%;
    margin: 0.2rem 0 0.35rem;
    padding: 0.35rem;
    background: var(--surface-muted);
    border: 1px solid var(--border);
    border-radius: 0.5rem;
    box-shadow: none;
  }
  .site-nav__dropdown:hover .site-nav__menu,
  .site-nav__dropdown:focus-within .site-nav__menu {
    display: none;
  }
  .site-nav__dropdown.is-open .site-nav__menu {
    display: block;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .site-header__menu-bars {
    transition: none;
  }
}

@media (min-width: 901px) {
  body.nav-drawer-open {
    overflow: unset;
  }
}

/* Full-screen overlay while navigating (same-origin links) */
.nav-loading {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(247, 245, 240, 0.72);
  backdrop-filter: blur(2px);
}
:root[data-theme="dark"] .nav-loading {
  background: rgba(10, 11, 14, 0.72);
}
.nav-loading[hidden] {
  display: none !important;
}
.nav-loading__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.nav-loading__ring {
  width: 2.5rem;
  height: 2.5rem;
  border: 3px solid var(--gray-light);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: nav-loading-spin 0.65s linear infinite;
}
.nav-loading__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@keyframes nav-loading-spin {
  to {
    transform: rotate(360deg);
  }
}

.main-content {
  width: min(1920px, calc(100vw - 1rem));
  margin: 0 auto;
  padding: calc(4rem + 1.1rem) 0.85rem 2rem;
  min-height: calc(100vh - 4rem);
}

.site-footer {
  width: min(1920px, calc(100vw - 1rem));
  margin: 0 auto;
  padding: 0.75rem 0.85rem 1.25rem;
  color: var(--muted);
  font-size: 0.8rem;
  border-top: 1px solid var(--border);
}
.site-footer__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.25rem;
  flex-wrap: wrap;
}
.site-footer__note {
  margin: 0;
  flex: 1;
  min-width: min(100%, 16rem);
}
.site-footer__note a {
  color: var(--accent);
}
.site-footer__note a:hover {
  color: var(--accent-hover);
}
.site-footer__actions {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.site-footer__logout-form {
  margin: 0;
}
.site-footer__version-link {
  font-weight: 600;
}
.site-footer__row--login {
  justify-content: center;
}
.site-footer code {
  background: var(--surface-muted);
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  color: var(--gray-dark);
}

/* ——— In-app feedback (footer → dialog) ——— */
.awms-feedback-dialog {
  max-width: min(100vw - 2rem, 28rem);
  width: 100%;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-lg);
}
.awms-feedback-dialog::backdrop {
  background: rgba(15, 23, 42, 0.45);
}
:root[data-theme="dark"] .awms-feedback-dialog::backdrop {
  background: rgba(0, 0, 0, 0.55);
}
.awms-feedback-dialog__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface-muted);
}
.awms-feedback-dialog__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
}
.awms-feedback-dialog__close {
  border: none;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
  padding: 0 0.15rem;
}
.awms-feedback-dialog__close:hover {
  color: var(--text);
}
.awms-feedback-dialog__body {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.awms-feedback-dialog__body .field-label {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem;
  text-align: left;
  width: 100%;
  margin: 0;
}
.awms-feedback-dialog__body .field-label__lead {
  display: block;
  width: 100%;
  text-align: left;
}
.awms-feedback-dialog__lead {
  margin: 0;
  font-size: 0.85rem;
}
.awms-feedback-dialog__migrate {
  margin: 0;
}
.awms-feedback-dialog__msg {
  margin: 0;
  padding: 0.5rem 0.65rem;
  border-radius: 0.35rem;
  font-size: 0.85rem;
}
.awms-feedback-dialog__msg--ok {
  background: var(--ok-bg);
  color: var(--ok);
  border: 1px solid color-mix(in srgb, var(--ok) 45%, var(--border));
}
.awms-feedback-dialog__msg--error {
  background: var(--danger-bg);
  color: var(--danger);
  border: 1px solid color-mix(in srgb, var(--danger) 45%, var(--border));
}
.awms-feedback-dialog__foot {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--border);
  background: var(--surface-muted);
}
.admin-feedback-list__hint {
  margin: 0 0 0.75rem;
}
.admin-feedback-table__subj {
  max-width: 14rem;
}
.admin-feedback-details__summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--accent);
}
.admin-feedback-details__body {
  margin-top: 0.5rem;
  font-size: 0.88rem;
  white-space: pre-wrap;
}
.admin-feedback-details__meta {
  margin: 0.5rem 0 0;
  font-size: 0.8rem;
  word-break: break-word;
}

h1 {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 1rem;
  color: var(--text);
  letter-spacing: -0.02em;
}

h2 {
  font-size: 1.1rem;
  margin: 1.5rem 0 0.75rem;
  color: var(--muted);
  font-weight: 600;
}

.card {
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 0.75rem;
  padding: 0.9rem;
  margin-bottom: 0.75rem;
  box-shadow: var(--shadow-lg);
}

.reports-chart-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  margin-top: 0.5rem;
  -webkit-overflow-scrolling: touch;
}
.reports-chart-scroll-inner {
  position: relative;
  height: 260px;
}
.reports-chart-wrap {
  position: relative;
  height: 100%;
  width: 100%;
}

.reports-production-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin: 0.6rem 0 0.35rem;
  align-items: flex-end;
}
.reports-production-filters label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.85rem;
  color: var(--muted);
}
.reports-prod-select {
  min-width: 12rem;
}
.reports-prod-error {
  margin: 0 0 0.5rem;
}

.reports-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) min(17.75rem, 100%);
  gap: 1.25rem;
  align-items: start;
}
.reports-layout__main {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}
.reports-layout__aside {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  position: sticky;
  top: calc(4rem + 0.75rem);
  z-index: 5;
  max-height: calc(100vh - 4rem - 1.25rem);
}
.reports-layout__sticky {
  position: relative;
  overflow-y: auto;
  margin-bottom: 0;
  -webkit-overflow-scrolling: touch;
}
.reports-layout__sticky .reports-prod-select {
  width: 100%;
  min-width: 0;
}
.reports-production-filters--stacked {
  flex-direction: column;
  align-items: stretch;
  gap: 0.85rem;
  margin-top: 0.75rem;
}
.reports-filters-subhead {
  margin: 0.85rem 0 0;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}
@media (max-width: 960px) {
  .reports-layout {
    grid-template-columns: 1fr;
  }
  .reports-layout__aside {
    grid-column: 1;
    grid-row: 1;
    max-height: none;
    position: sticky;
    top: calc(4rem + 0.5rem);
  }
  .reports-layout__main {
    grid-column: 1;
    grid-row: 2;
  }
  .reports-layout__sticky {
    max-height: min(55vh, 22rem);
  }
}

.version-page__label {
  font-size: 1.2rem;
  letter-spacing: 0.02em;
}
.version-page__scheme {
  margin: 0.85rem 0 0;
  padding: 0.65rem 0 0;
  border-top: 1px solid var(--border);
  font-size: 0.88rem;
  line-height: 1.45;
}
.version-page__scheme > div {
  display: grid;
  grid-template-columns: 5.25rem minmax(0, 1fr);
  gap: 0.2rem 0.65rem;
  margin-top: 0.45rem;
}
.version-page__scheme dt {
  margin: 0;
  font-weight: 600;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.version-page__scheme dd {
  margin: 0;
}

.form-grid {
  display: grid;
  gap: 0.75rem 1rem;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}
.form-grid label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.85rem;
  color: var(--muted);
}
.form-grid input,
.form-grid select,
.form-grid textarea {
  padding: 0.4rem 0.55rem;
  border-radius: 0.375rem;
  border: 2px solid var(--gray-light);
  background: var(--white);
  color: var(--text);
  font: inherit;
}
.form-grid input:focus,
.form-grid select:focus,
.form-grid textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.25);
}
.form-grid textarea {
  min-height: 70px;
  grid-column: 1 / -1;
}

.btn {
  display: inline-block;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  border: none;
  font: inherit;
  font-weight: 600;
  font-size: 0.875rem;
  cursor: pointer;
  background: var(--accent);
  color: #fff;
  transition: background 0.15s;
  text-decoration: none;
}
.btn:hover {
  background: var(--accent-hover);
  color: #fff;
  text-decoration: none;
}
.btn:disabled,
.btn[disabled] {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}
.btn--secondary {
  background: var(--white);
  color: var(--text);
  border: 2px solid var(--border);
}
.btn--secondary:hover {
  background: var(--cream);
  color: var(--accent-hover);
}
.btn--danger {
  background: var(--danger-bg);
  color: var(--danger);
  border: 1px solid #fecaca;
}
.btn--danger:hover {
  background: #fee2e2;
  color: #991b1b;
}

.toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  margin-bottom: 1rem;
}

.toolbar__search {
  min-width: 200px;
  padding: 0.45rem 0.65rem;
  border-radius: 0.375rem;
  border: 2px solid var(--gray-light);
  background: var(--white);
  color: var(--text);
  font: inherit;
}
.toolbar__search:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.25);
}

.toolbar__sort {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.88rem;
}
.toolbar__sort-select {
  font: inherit;
  padding: 0.3rem 0.45rem;
  border-radius: 0.375rem;
  border: 2px solid var(--gray-light);
  background: var(--white);
  color: var(--text);
  max-width: 16rem;
}

.table-wrap {
  overflow-x: auto;
  border: 2px solid var(--border);
  border-radius: 0.75rem;
  background: var(--surface);
  box-shadow: var(--shadow-lg);
}
table.data {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
table.data th,
table.data td {
  padding: 0.45rem 0.6rem;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
table.data th {
  background: var(--cream-light);
  color: var(--gray-dark);
  font-weight: 600;
  font-size: 0.8rem;
  text-transform: none;
}
table.data tr:last-child td {
  border-bottom: none;
}
table.data tbody tr:hover td {
  background: var(--cream);
}
.data--compact th,
.data--compact td {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
  line-height: 1.2;
}
.dup-loader {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0.5rem 0 0.75rem;
}
/* Author `display:flex` wins over UA `[hidden]` otherwise — keep hidden state real. */
.dup-loader[hidden] {
  display: none !important;
}
.dup-loader__spinner {
  width: 1rem;
  height: 1rem;
  border: 2px solid var(--border, #e5e7eb);
  border-top-color: var(--accent, #b45309);
  border-radius: 50%;
  animation: dup-spin 0.8s linear infinite;
}
.dup-loader__track {
  flex: 1;
  max-width: 20rem;
  height: 0.45rem;
  border-radius: 999px;
  background: var(--surface-muted, #f3f4f6);
  overflow: hidden;
}
.dup-loader__bar {
  display: block;
  width: 40%;
  height: 100%;
  border-radius: inherit;
  background: var(--accent, #b45309);
  animation: dup-indeterminate 1.1s ease-in-out infinite;
}
@keyframes dup-spin {
  to { transform: rotate(360deg); }
}
@keyframes dup-indeterminate {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(300%); }
}
.admin-dup-merge-form {
  margin-top: 0.35rem;
  font-size: 0.82rem;
}
.admin-dup-merge-form__actions {
  margin-top: 0.4rem;
}
.admin-dup-pending {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 0.75rem;
  background: var(--surface, #fff);
}
.admin-dup-pending__title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}
.admin-dup-pending__lead {
  margin: 0 0 0.65rem;
  font-size: 0.84rem;
}
.admin-dup-pending__actions {
  margin: 0 0 0.65rem;
}
.admin-dup-pending__list {
  margin: 0;
  padding: 0 0 0 1.1rem;
  font-size: 0.84rem;
}
.admin-dup-pending__item {
  margin: 0.35rem 0;
}
.admin-dup-pending__summary {
  margin-right: 0.35rem;
}
.admin-dup-merge-details summary {
  cursor: pointer;
  font-weight: 600;
}
.admin-dup-queue-block {
  margin-top: 0.5rem;
  font-size: 0.82rem;
}
.admin-dup-queue-hint {
  margin: 0 0 0.5rem;
  font-size: 0.8rem;
}
.admin-dup-queue-label {
  display: inline-block;
  margin: 0.15rem 0;
}
.admin-dup-queue-actions {
  margin: 0.5rem 0 0;
}
.admin-model-row--pending td {
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}

.badge {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
}
.badge--quoted {
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
}
.badge--ordered {
  background: var(--ok-bg);
  color: var(--ok);
  border: 1px solid #bbf7d0;
}

.flash {
  padding: 0.65rem 0.85rem;
  border-radius: 0.5rem;
  margin-bottom: 1rem;
}
.flash--error {
  background: var(--danger-bg);
  border: 1px solid #fecaca;
  color: #991b1b;
}
.flash--ok {
  background: var(--ok-bg);
  border: 1px solid #bbf7d0;
  color: #166534;
}
.flash--info {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1e40af;
}

.muted {
  color: var(--muted);
}
.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.login-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding: 1rem;
  background: var(--bg);
}
.login-page__center {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
}
.login-page__footer {
  flex-shrink: 0;
  margin-top: auto;
  padding-top: 1rem;
}
.login-card {
  width: 100%;
  max-width: 400px;
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 0.75rem;
  padding: 1.75rem;
  box-shadow: var(--shadow-lg);
}
.login-card h1 {
  margin-top: 0;
  font-size: 1.75rem;
}
.login-card .login-tagline {
  margin: 0 0 1.25rem;
  font-size: 0.9rem;
  color: var(--muted);
}
.login-card label {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 500;
}
.login-card input {
  width: 100%;
  margin-bottom: 0.85rem;
  padding: 0.5rem 0.65rem;
  border-radius: 0.375rem;
  border: 2px solid var(--gray-light);
  background: var(--white);
  color: var(--text);
  font: inherit;
}
.login-card input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.25);
}

.calc-box {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.35rem 1.5rem;
  max-width: 320px;
  font-variant-numeric: tabular-nums;
}
.calc-box dt {
  color: var(--muted);
  margin: 0;
}
.calc-box dd {
  margin: 0;
  text-align: right;
  font-weight: 600;
}

/* Quote builder table (model + add-ons + custom lines) */
.quote-builder-card {
  margin-bottom: 1rem;
}

.quote-builder-card__title {
  margin: 0 0 0.75rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text);
}

.quote-builder-card__subhead {
  margin: 1rem 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--muted);
}

.quote-builder__meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem 1.5rem;
  margin-bottom: 1rem;
  align-items: end;
}

@media (max-width: 640px) {
  .quote-builder__meta {
    grid-template-columns: 1fr;
  }
}

.quote-builder__meta-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--muted);
  margin: 0;
  min-width: 0;
}

.quote-builder__meta-field-title {
  display: block;
  line-height: 1.2;
}

.quote-builder__control {
  padding: 0.45rem 0.55rem;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  width: 100%;
  box-sizing: border-box;
}

.quote-builder__table-scroll {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface-muted);
}

.quote-builder-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.quote-builder-table thead th {
  text-align: left;
  padding: 0.5rem 0.6rem;
  background: var(--cream-light);
  color: var(--gray-dark);
  font-weight: 600;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}

.quote-builder-table__col-item {
  width: 18%;
  min-width: 160px;
  max-width: 280px;
}

.quote-builder-table__col-desc {
  min-width: 200px;
  width: auto;
}

.quote-builder-table__col-price {
  min-width: 7.25rem;
  width: 9%;
  white-space: nowrap;
}

.quote-builder-table__col-total,
.quote-builder-table__col-disc {
  width: 1%;
  min-width: 5.5rem;
  text-align: right;
  white-space: nowrap;
}

.quote-builder-table__col-qty {
  width: 72px;
  min-width: 72px;
  text-align: center;
}

.quote-builder__row td {
  padding: 0.5rem 0.6rem;
  vertical-align: top;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.quote-builder-table tbody td:first-child {
  max-width: 280px;
}

.quote-builder-table tbody td:first-child .quote-builder__select {
  width: 100%;
  max-width: 100%;
}

.quote-builder__row--bin td {
  background: var(--surface);
}

.quote-builder__row--addon td {
  background: var(--surface-muted);
}

.quote-builder__row--custom td {
  background: var(--surface);
}

.quote-builder__row:last-child td {
  border-bottom: none;
}

.quote-builder__select {
  max-width: 100%;
}

.quote-builder__textarea {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 0.4rem 0.5rem;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  resize: vertical;
}

.quote-builder__textarea--catalog {
  background: var(--cream-light);
  color: var(--muted);
  cursor: default;
}

.quote-builder__bin-desc-cell {
  vertical-align: top;
}

.quote-builder__bin-desc-catalog-view {
  margin-bottom: 0.35rem;
}

.quote-builder__bin-desc-catalog-view .quote-builder__bin-model-desc-head {
  margin-bottom: 0.25rem;
}

.quote-builder__bin-desc-plain {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--muted);
  white-space: pre-wrap;
  word-break: break-word;
}

.quote-builder__bin-model-desc-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}

.quote-builder__bin-model-desc-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted);
}

.quote-builder__bin-desc-hint {
  font-size: 0.72rem;
}

.quote-builder__textarea--bin-model {
  min-height: 4.25rem;
  max-height: 12rem;
  resize: vertical;
}

.quote-builder__bin-standard {
  margin-top: 0.65rem;
  padding: 0.45rem 0.55rem;
  border-radius: 6px;
  background: var(--surface-muted);
  border: 1px solid var(--border);
}

.quote-builder__bin-standard-title {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  margin-bottom: 0.35rem;
}

.quote-builder__std-piece {
  margin-top: 0.45rem;
}

.quote-builder__std-piece:first-child {
  margin-top: 0;
}

.quote-builder__std-piece-line {
  font-size: 0.72rem;
  line-height: 1.45;
  color: var(--muted);
  white-space: pre-wrap;
}

.quote-builder__textarea--sm {
  margin-top: 0.35rem;
  min-height: 2.5rem;
}

.quote-builder__input-num {
  width: 100%;
  max-width: 5rem;
  padding: 0.4rem 0.45rem;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  text-align: center;
  box-sizing: border-box;
}

.quote-builder__placeholder {
  color: var(--muted);
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.quote-builder__addon-desc {
  font-size: 0.8rem;
  position: relative;
  z-index: 0;
}

.quote-builder__addon-panel {
  display: none;
}

.quote-builder__addon-panel.is-visible {
  display: block;
  position: relative;
  z-index: 2;
}

.quote-builder__mini-label--inline {
  margin: 0;
  gap: 0.2rem;
}

.quote-builder__addon-custom-title {
  display: block;
  line-height: 1.2;
}

.quote-builder__textarea--addon-custom {
  min-height: 2.1rem;
  max-height: 5.5rem;
  font-size: 0.8rem;
  line-height: 1.35;
  margin-top: 0.15rem;
}

.quote-builder__mini-label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted);
  margin: 0;
}

.quote-builder__addon-empty.is-hidden {
  display: none !important;
}

.quote-builder__addon-hint {
  display: block;
  line-height: 1.35;
}

.quote-builder__static-label {
  display: inline-block;
  padding: 0.35rem 0;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted);
}

.quote-builder__addon-readonly {
  white-space: pre-wrap;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--muted);
  max-height: 12rem;
  overflow-y: auto;
}

.quote-builder__custom-tag {
  font-size: 0.72rem;
  font-style: italic;
  margin: 0 0 0.35rem;
}

.quote-builder__price-readonly {
  width: 100%;
  max-width: 6.5rem;
  padding: 0.4rem 0.45rem;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--cream-light);
  color: var(--text);
  font: inherit;
  font-variant-numeric: tabular-nums;
  text-align: right;
  box-sizing: border-box;
}

.quote-builder__custom-desc {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.quote-builder__addon-actions {
  margin: 0.65rem 0 0;
  padding-left: 0.15rem;
}

.quote-builder__add-addon {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--accent);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.quote-builder__add-addon:hover {
  color: var(--accent-hover);
}

.quote-builder__add-addon:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

@media (max-width: 600px) {
  .main-content {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* ——— Quote form (customer card + sidebar, matches AWMS React quote builder) ——— */
.quote-form {
  max-width: none;
  width: 100%;
  line-height: 1.38;
}

/* Compact layout + readable labels on the quote create/edit page */
.quote-form .card {
  padding: 0.55rem 0.7rem;
  margin-bottom: 0.5rem;
  border-radius: 0.5rem;
  box-shadow: var(--shadow);
}

.quote-form h1 {
  font-size: 1.35rem;
  margin: 0 0 0.35rem;
  line-height: 1.2;
}

.quote-form .quote-customer-card {
  padding: 0.65rem 0.75rem 0.75rem;
  margin-bottom: 0.5rem;
}

.quote-form .quote-customer-card__head {
  margin-bottom: 0.4rem;
  gap: 0.65rem;
}

.quote-form .quote-customer-card__title {
  font-size: 1rem;
}

.quote-form .quote-customer-left .field-label,
.quote-form .quote-customer-right .field-label {
  margin-bottom: 0.4rem;
  gap: 0.18rem;
}

.quote-form .quote-customer-left input,
.quote-form .quote-customer-left textarea,
.quote-form .quote-customer-right textarea {
  padding: 0.3rem 0.45rem;
}

.quote-form .quote-customer-split {
  gap: 0.85rem;
}

.quote-form .quote-customer-right {
  padding: 0.65rem;
}

.quote-form .quote-name-row,
.quote-form .quote-phone-row,
.quote-form .quote-csz-row {
  gap: 0.5rem;
}

.quote-form .quote-meta-card {
  margin-bottom: 0.5rem;
}

.quote-form .quote-meta-card__row {
  gap: 0.5rem 1rem;
}

.quote-form .quote-meta-card__options {
  margin-top: 0.35rem;
  gap: 0.45rem 1rem;
}

.quote-form .quote-meta-card .field-label {
  gap: 0.18rem;
  font-size: 0.78rem;
}

.quote-form .quote-meta-card__control {
  padding: 0.3rem 0.45rem;
}

.quote-form .quote-section-card {
  margin-bottom: 0.5rem;
}

.quote-form .quote-section-card__title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
}

.quote-form .quote-builder-card {
  margin-bottom: 0.45rem;
}

.quote-form .quote-builder-card__title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}

.quote-form .quote-builder-card__subhead {
  margin: 0.45rem 0 0.22rem;
  font-size: 0.88rem;
}

.quote-form .quote-builder__meta {
  gap: 0.5rem 1rem;
  margin-bottom: 0.45rem;
}

.quote-form .quote-builder__meta-field {
  gap: 0.18rem;
  font-size: 0.8rem;
}

.quote-form .quote-builder__control {
  padding: 0.3rem 0.45rem;
  font-size: 0.82rem;
}

.quote-form .quote-builder__table-scroll {
  border-radius: 6px;
}

.quote-form .quote-builder-table {
  font-size: 0.8rem;
  min-width: 640px;
}

.quote-form .quote-builder-table thead th {
  padding: 0.22rem 0.38rem;
  font-size: 0.78rem;
}

.quote-form .quote-builder__row td {
  padding: 0.22rem 0.38rem;
}

.quote-form .quote-builder__textarea {
  padding: 0.28rem 0.4rem;
  font-size: 0.8rem;
}

.quote-form .quote-builder__textarea--bin-model {
  min-height: 2.75rem;
  max-height: 10rem;
}

.quote-form .quote-builder__textarea--sm {
  min-height: 2rem;
}

.quote-form .quote-builder__textarea--addon-custom {
  min-height: 1.75rem;
}

.quote-form .quote-builder__input-num {
  padding: 0.25rem 0.35rem;
  max-width: 4.25rem;
}

.quote-form .quote-builder__price-readonly {
  padding: 0.25rem 0.35rem;
  max-width: 6rem;
}

.quote-form .quote-builder__bin-standard {
  margin-top: 0.35rem;
  padding: 0.3rem 0.4rem;
}

.quote-form .quote-builder__bin-standard-title {
  font-size: 0.65rem;
  margin-bottom: 0.25rem;
}

.quote-form .quote-builder__std-piece {
  margin-top: 0.3rem;
}

.quote-form .quote-builder__std-piece-line {
  font-size: 0.72rem;
}

.quote-form .quote-builder__addon-actions {
  margin: 0.45rem 0 0;
}

.quote-form .quote-builder-with-inventory {
  gap: 0.65rem;
  margin-bottom: 0.5rem;
}

.quote-form .quote-inventory-bins__head {
  padding: 0.35rem 0.45rem;
}

.quote-form .quote-inventory-bins__filters {
  padding: 0.4rem 0.5rem;
}

.quote-form .quote-form__actions {
  margin-top: 0.85rem;
}

.quote-form .dealer-quote-card {
  margin-bottom: 0.5rem;
}

.quote-form .dealer-quote-card__split {
  gap: 0.75rem 1.25rem;
}

.quote-form .dealer-quote-card__row {
  gap: 0.5rem 1rem;
}

.quote-form .dealer-quote-card__control {
  padding: 0.3rem 0.45rem;
}

.quote-form .dealer-quote-card__add-row {
  min-height: 1.1rem;
}

.quote-form .quote-pricing-profile-row {
  margin: 0 0 0.45rem;
  font-size: 0.85rem;
}

.quote-form .quote-pricing-profile-select {
  padding: 0.3rem 0.45rem;
}

.quote-form .quote-pricing-table-wrap {
  margin-bottom: 0.5rem;
}

.quote-form .quote-pricing-table-wrap--integrated {
  margin-bottom: 0.45rem;
}

.quote-form .quote-pricing-table {
  font-size: 0.82rem;
}

.quote-form .quote-pricing-table th,
.quote-form .quote-pricing-table td {
  padding: 0.28rem 0.42rem;
}

.quote-form .quote-pricing-table__row-tall th,
.quote-form .quote-pricing-table__row-tall td {
  padding-top: 0.38rem;
  padding-bottom: 0.38rem;
}

.quote-form .quote-pricing-table__desc {
  font-size: 0.8rem;
}

.quote-form .quote-pricing-input-num {
  padding: 0.28rem 0.38rem;
  width: 4.5rem;
}

.quote-form .quote-pricing-money {
  padding: 0.28rem 0.38rem;
  min-width: 5rem;
}

.quote-form .quote-pricing-check {
  margin-top: 0.2rem;
  font-size: 0.78rem;
  gap: 0.28rem;
}

.quote-form .quote-pricing-input-stack {
  gap: 0.22rem;
}

.quote-form .form-grid {
  gap: 0.45rem 0.75rem;
}

.quote-form .form-grid label {
  gap: 0.15rem;
  font-size: 0.8rem;
}

.quote-form .form-grid input,
.quote-form .form-grid select,
.quote-form .form-grid textarea {
  padding: 0.3rem 0.45rem;
}

.quote-form .form-grid textarea {
  min-height: 52px;
}

.quote-form .quote-sidebar__heading {
  font-size: 0.88rem;
  margin: 0 0 0.35rem;
}

.quote-form .quote-customer-right .quote-sidebar__heading:not(:first-child) {
  margin-top: 0.75rem;
}

.quote-form .customer-notes-list {
  padding: 0.35rem;
  margin-bottom: 0.35rem;
}

.quote-form .customer-note-item {
  padding: 0.3rem 0;
  font-size: 0.8rem;
}

.quote-form .quote-newcust-row {
  margin-bottom: 0.5rem;
}

/* Light mode: stronger contrast than global --muted (#808080) for form labels & helpers */
:root:not([data-theme="dark"]) .quote-form .quote-customer-left .field-label,
:root:not([data-theme="dark"]) .quote-form .quote-customer-right .field-label,
:root:not([data-theme="dark"]) .quote-form .quote-meta-card .field-label,
:root:not([data-theme="dark"]) .quote-form .quote-inline-check,
:root:not([data-theme="dark"]) .quote-form .quote-builder__meta-field,
:root:not([data-theme="dark"]) .quote-form .quote-builder__mini-label,
:root:not([data-theme="dark"]) .quote-form .quote-builder__static-label,
:root:not([data-theme="dark"]) .quote-form .dealer-quote-card .field-label,
:root:not([data-theme="dark"]) .quote-form .quote-inventory-card .quote-inventory-card__grid > label.field-label,
:root:not([data-theme="dark"]) .quote-form .form-grid label {
  color: var(--gray-dark);
}

:root:not([data-theme="dark"]) .quote-form .muted {
  color: #5a5a5a;
}

:root:not([data-theme="dark"]) .quote-form .quote-builder__bin-desc-plain,
:root:not([data-theme="dark"]) .quote-form .quote-builder__bin-model-desc-label,
:root:not([data-theme="dark"]) .quote-form .quote-builder__std-piece-line,
:root:not([data-theme="dark"]) .quote-form .quote-builder__addon-readonly,
:root:not([data-theme="dark"]) .quote-form .quote-builder__placeholder,
:root:not([data-theme="dark"]) .quote-form .quote-builder__textarea--catalog {
  color: #5a5a5a;
}

:root:not([data-theme="dark"]) .quote-form .quote-pricing-table__desc,
:root:not([data-theme="dark"]) .quote-form .quote-pricing-rate-cell,
:root:not([data-theme="dark"]) .quote-form .quote-pricing-suffix {
  color: var(--gray-dark);
}

:root:not([data-theme="dark"]) .quote-form .dealer-quotes-sidebar-hint,
:root:not([data-theme="dark"]) .quote-form .quote-sidebar-placeholder,
:root:not([data-theme="dark"]) .quote-form .customer-note-item__meta,
:root:not([data-theme="dark"]) .quote-form .quote-pricing-tax-hint {
  color: #5a5a5a;
}

.quote-form .suggest-box .suggest-item {
  padding: 0.32rem 0.45rem;
}

.quote-form .suggest-email {
  font-size: 0.78rem;
}

:root:not([data-theme="dark"]) .quote-form .suggest-email {
  color: #5a5a5a;
}

:root:not([data-theme="dark"]) .quote-form .quote-form__checkbox-row {
  color: var(--gray-dark);
}

.quote-form__checkbox-row {
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
  color: var(--muted);
}

.quote-inline-check {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  cursor: pointer;
  color: var(--muted);
  font-weight: 500;
}

.quote-customer-card {
  padding: 1.25rem 1.35rem 1.5rem;
  margin-bottom: 1rem;
}

.quote-customer-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}

.quote-customer-card__title {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--black-text);
}

/* New quote: date + 6-digit prefix (matches dealer / section cards) */
.quote-meta-card {
  margin-bottom: 1rem;
}

.quote-meta-card__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem 1.5rem;
  align-items: end;
}

.quote-meta-card__options {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.7rem 1.2rem;
  margin-top: 0.75rem;
}

.quote-meta-card .field-label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--muted);
  margin: 0;
}
.quote-meta-card .field-label__lead {
  display: block;
  line-height: 1.35;
}
.quote-meta-card .field-label__lead .req {
  white-space: nowrap;
}

.quote-meta-card__control {
  padding: 0.45rem 0.55rem;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  box-sizing: border-box;
  width: 100%;
}

.quote-meta-card__control:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.22);
}

.quote-meta-card__control--date {
  max-width: 14rem;
}

.quote-meta-card__control--prefix {
  max-width: 8rem;
  letter-spacing: 0.06em;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 600px) {
  .quote-meta-card__row {
    grid-template-columns: 1fr;
  }

  .quote-meta-card__control--date,
  .quote-meta-card__control--prefix {
    max-width: none;
  }
}
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.quote-newcust-row {
  margin-bottom: 1rem;
}

.btn--blue {
  background: #2563eb;
  color: #fff;
}
.btn--blue:hover {
  background: #1d4ed8;
  color: #fff;
}

.btn--note {
  background: #e9d5a1;
  color: #1a1a1a;
  border: 1px solid #d4bc7c;
  margin-top: 0.5rem;
}
.btn--note:hover {
  background: #dfc48a;
  color: #111;
}

.quote-customer-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
  gap: 1.5rem;
  align-items: start;
}

@media (max-width: 900px) {
  .quote-customer-split {
    grid-template-columns: 1fr;
  }
}

.quote-customer-left .field-label,
.quote-customer-right .field-label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--muted);
  margin-bottom: 0.65rem;
}

.quote-customer-left input,
.quote-customer-left textarea,
.quote-customer-right textarea {
  padding: 0.45rem 0.55rem;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
}

.quote-name-row,
.quote-phone-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}

.quote-name-row > .field-label {
  min-width: 0;
}

.quote-name-row .field-autocomplete-wrap {
  width: 100%;
  min-width: 0;
}

.quote-name-row #cust_first {
  width: 100%;
  box-sizing: border-box;
}

.quote-name-row .field-label:not(.field-label--autocomplete) input {
  width: 100%;
  box-sizing: border-box;
}

.quote-csz-row {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 0.75rem;
}

.quote-zip4-helper {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.5rem;
}
.quote-zip4-helper .field-label {
  flex: 1 1 6rem;
  min-width: 5rem;
  margin: 0;
}
.quote-zip4-helper .quote-zip4-anchor {
  flex: 0 0 auto;
  margin-bottom: 0.15rem;
}
.quote-zip4-anchor {
  position: relative;
}
.zip4-suggest-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 200;
  min-width: min(22rem, 90vw);
  max-width: 28rem;
  max-height: 14rem;
  overflow-y: auto;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: var(--shadow-lg);
}
.zip4-suggest-dropdown[hidden] {
  display: none !important;
}
.quote-ship-zip4-row {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem 0.75rem;
}
.quote-ship-zip4-row > label {
  flex: 1 1 6rem;
  min-width: 5rem;
  margin: 0;
}
.zip4-suggest-option {
  display: block;
  width: 100%;
  text-align: left;
  padding: 0.45rem 0.6rem;
  border: none;
  border-bottom: 1px solid var(--border, #e5e7eb);
  background: #fff;
  font-size: 0.85rem;
  cursor: pointer;
}
.zip4-suggest-option:hover {
  background: var(--surface-muted, #f3f4f6);
}

@media (max-width: 600px) {
  .quote-csz-row {
    grid-template-columns: 1fr;
  }
}

.field-autocomplete-wrap {
  position: relative;
  width: 100%;
  min-width: 0;
  align-self: stretch;
}

.quote-customer-right {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1rem;
  background: var(--surface-muted);
}

.quote-customer-right--disabled {
  opacity: 0.45;
  pointer-events: none;
}

.quote-sidebar__heading {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text);
}

.quote-customer-right .quote-sidebar__heading:not(:first-child) {
  margin-top: 1.25rem;
}

.dealer-quotes-sidebar-hint {
  margin: 0 0 0.5rem;
  font-size: 0.82rem;
  line-height: 1.35;
}

.quote-prior-table-wrap {
  position: relative;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  max-height: 18.5rem;
  overflow-y: auto;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.quote-prior-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}

.quote-prior-table th {
  background: var(--cream-light);
  color: var(--gray-dark);
  text-align: left;
  padding: 0.4rem 0.45rem;
  font-weight: 600;
  border-bottom: 1px solid var(--border);
}

.quote-prior-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  box-shadow: 0 1px 0 var(--border);
}

.quote-prior-table td {
  padding: 0.4rem 0.45rem;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}

.quote-prior-table tr:last-child td {
  border-bottom: none;
}

.quote-prior-table a {
  color: var(--accent);
  font-weight: 500;
}

.quote-sidebar-placeholder {
  margin: 0;
  padding: 0.75rem;
  font-size: 0.85rem;
  text-align: center;
}

.customer-notes-list {
  min-height: 2rem;
  max-height: 220px;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--surface);
  padding: 0.5rem;
  margin-bottom: 0.5rem;
}

.customer-note-item {
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--border);
  font-size: 0.85rem;
}

.customer-note-item:last-child {
  border-bottom: none;
}

.customer-note-item__meta {
  font-size: 0.72rem;
  color: var(--muted);
  margin-bottom: 0.2rem;
}

.customer-note-item__text {
  white-space: pre-wrap;
  color: var(--text);
}

.customer-notes-migrate-hint code {
  font-size: 0.75rem;
}

.quote-section-card {
  margin-bottom: 1rem;
}

.quote-section-card__title {
  margin: 0 0 0.75rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text);
}

/* Inventory quote: required * stays on same line as label (not under it) */
.quote-inventory-card .quote-inventory-card__grid > label.field-label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--muted);
}

.quote-inventory-card .quote-inventory-card__grid > label.field-label .field-label__lead {
  display: inline-block;
  font: inherit;
  font-weight: 500;
  color: inherit;
}

.quote-inventory-card .quote-inventory-card__grid > label.field-label .field-label__lead .req {
  margin-left: 0.15rem;
}

/* Quote form: builder + inventory bins sidebar (aside always reserves width on desktop) */
.quote-builder-with-inventory {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: flex-start;
  margin-bottom: 1rem;
}

.quote-builder-with-inventory__main {
  flex: 1 1 780px;
  min-width: 0;
}

.quote-builder-with-inventory__aside {
  flex: 0 0 clamp(260px, 20vw, 340px);
  max-width: 100%;
}

@media (min-width: 901px) {
  .quote-builder-with-inventory {
    flex-wrap: nowrap;
    align-items: flex-start;
  }

  .quote-builder-with-inventory__main {
    flex: 1 1 0;
    min-width: 0;
  }

  .quote-builder-with-inventory__aside {
    flex: 0 0 clamp(280px, 22vw, 360px);
    min-width: 270px;
    max-width: 360px;
  }
}

@media (max-width: 900px) {
  .quote-builder-with-inventory__aside {
    flex: 1 1 100%;
  }
}

.quote-inventory-bins__box {
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  overflow: hidden;
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  font-size: 0.82rem;
}

.quote-inventory-bins__head {
  background: var(--surface-muted);
  color: var(--text);
  font-weight: 700;
  text-align: left;
  padding: 0.45rem 0.5rem;
  border-bottom: 1px solid var(--border);
}

.quote-inventory-bins__filters {
  padding: 0.5rem 0.6rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.75rem;
  border-bottom: 1px solid var(--border);
  color: var(--text);
}

.quote-inventory-bins__show-label {
  font-weight: 600;
  margin-right: 0.15rem;
}

.quote-inventory-bins__check {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  cursor: pointer;
  font-size: 0.78rem;
}

.quote-inventory-bins__check--production {
  color: var(--danger);
  flex-basis: 100%;
  margin-top: 0.15rem;
}

.quote-inventory-bins__list-wrap {
  padding: 0.25rem 0.5rem 0.55rem;
  min-height: 0;
}

.quote-inventory-bins__hint {
  margin: 0;
  font-size: 0.78rem;
}

.quote-inventory-bins__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.quote-inventory-bins__list li {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--border);
}

.quote-inventory-bins__list li:last-child {
  border-bottom: none;
}

.quote-inventory-bins__link {
  display: block;
  padding: 0.35rem 0.2rem;
  color: var(--accent);
  text-decoration: none;
  text-align: left;
  font: inherit;
  word-break: break-word;
}

.quote-inventory-bins__link:hover {
  color: var(--accent-hover);
  text-decoration: underline;
  background: var(--surface-muted);
}

.quote-inventory-bins__link--inprod {
  color: var(--danger);
  font-weight: 600;
}

.quote-inventory-bins__link--inprod:hover {
  color: color-mix(in srgb, var(--danger) 88%, var(--text));
}

.quote-ship-card .form-grid {
  margin-top: 0.25rem;
}

.quote-form__actions {
  margin-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

/* Autocomplete — overlay below first name (does not shift layout) */
.suggest-box {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 2px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height: 220px;
  overflow-y: auto;
  z-index: 50;
  background: var(--surface);
  border-radius: 6px;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--border);
}

.suggest-box:empty {
  display: none;
  border: none;
  box-shadow: none;
  margin: 0;
  padding: 0;
  background: transparent;
}

.suggest-box .suggest-item {
  text-align: left;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  border-radius: 6px;
  cursor: pointer;
  font: inherit;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
}

.suggest-box .suggest-item:hover {
  background: var(--surface-muted);
  border-color: var(--accent);
}

.suggest-label {
  font-weight: 500;
}

.suggest-email {
  font-size: 0.8rem;
  color: var(--muted);
}

.req {
  color: var(--accent);
  font-weight: 600;
}

/* Dealer quote card (quote form) */
.dealer-quote-card {
  margin-bottom: 1rem;
}

.dealer-quote-card__split {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 1.75rem;
  align-items: flex-start;
}
.dealer-quote-card__main {
  flex: 1 1 280px;
  min-width: 0;
}
.dealer-quote-card__aside {
  flex: 1 1 300px;
  min-width: 240px;
  max-width: 100%;
}
.dealer-quote-card__aside .quote-sidebar__heading {
  margin: 0 0 0.5rem;
}

.dealer-quote-card__layout {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.dealer-quote-card__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem 1.5rem;
}

.dealer-quote-card__row--toolbar {
  align-items: center;
}

.dealer-quote-card__toolbar-slot {
  min-height: 0;
}

.dealer-quote-card__row--labels {
  align-items: end;
}

.dealer-quote-card__row--labels .field-label {
  margin-bottom: 0;
}

.dealer-quote-card__row--selects {
  align-items: stretch;
}

.dealer-quote-card__row--selects .dealer-quote-card__control {
  width: 100%;
  min-width: 0;
}

@media (max-width: 700px) {
  .dealer-quote-card__row {
    grid-template-columns: 1fr;
  }

  .dealer-quote-card__row--toolbar .dealer-quote-card__toolbar-slot {
    display: none;
  }
}

.dealer-quote-card .field-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--muted);
}

.dealer-quote-card__control {
  padding: 0.45rem 0.55rem;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
}

.dealer-quote-card__add-row {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  min-height: 1.35rem;
}

.dealer-quote-card__add-link {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--accent);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.dealer-quote-card__add-link:hover {
  color: var(--accent-hover);
}

.dealer-quote-card__add-link:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.dealer-contact-hint {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border);
  font-size: 0.85rem;
  color: var(--muted);
}

.dealer-contact-hint p {
  margin: 0.35rem 0;
}

.dealer-contact-hint strong {
  color: var(--text);
}

/* Modal — Add dealer */
.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(15, 23, 42, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.modal-backdrop[hidden] {
  display: none;
}

.modal-dialog {
  background: var(--surface);
  border: 2px solid var(--border);
  border-radius: 0.75rem;
  padding: 1.25rem 1.5rem;
  max-width: 420px;
  width: 100%;
  box-shadow: var(--shadow-lg);
}

.modal-dialog__title {
  margin: 0 0 1rem;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--text);
}

.modal-dialog__form {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.modal-dialog__form .field-label {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--muted);
}

.modal-dialog__form input {
  padding: 0.5rem 0.6rem;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
}

.modal-dialog__actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.65rem;
  margin-top: 0.75rem;
  padding-top: 0.25rem;
}

.btn--gold {
  background: #e9d5a1;
  color: #1a1a1a;
  border: 1px solid #d4bc7c;
}

.btn--gold:hover {
  background: #dfc48a;
  color: #111;
}

/* ——— Quote form: pricing & delivery table ——— */
.quote-pricing-profile-row {
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
}
.quote-pricing-profile-label {
  display: inline-flex;
  flex-direction: column;
  gap: 0.25rem;
  font-weight: 500;
}
.quote-pricing-profile-select {
  max-width: min(100%, 42rem);
  padding: 0.4rem 0.5rem;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
}
.quote-pricing-table-wrap {
  overflow-x: auto;
  margin-bottom: 1rem;
}

.quote-pricing-table-wrap--integrated {
  margin-top: 0;
  margin-bottom: 0.75rem;
}

.quote-pricing-table--integrated {
  border-top: 2px solid var(--border);
}

.quote-pricing-table__desc .quote-pricing-freight-desc {
  display: inline;
  margin-right: 0.25rem;
}

.quote-pricing-check--inline {
  display: inline-flex;
  margin-top: 0;
  margin-left: 0.1rem;
  vertical-align: middle;
}

.quote-pricing-table__inputs--freight-miles {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: 0.25rem 0.35rem;
}

.quote-pricing-freight-rate-miles {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.2rem 0.35rem;
  white-space: nowrap;
}

.quote-pricing-table__desc--freight-mile {
  max-width: min(32rem, 55vw);
  vertical-align: middle;
}

.quote-pricing-freight-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.2rem 0.65rem;
}

.quote-pricing-money--compact {
  width: 4.25rem;
  min-width: 3.25rem;
  padding: 0.25rem 0.35rem !important;
  text-align: right;
}

.quote-pricing-rate-cell {
  font-weight: 600;
  color: var(--muted);
  user-select: none;
}

.quote-pricing-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  background: var(--surface);
  border: 1px solid var(--border);
}
.quote-pricing-table th,
.quote-pricing-table td {
  border: 1px solid var(--border);
  padding: 0.45rem 0.55rem;
  vertical-align: middle;
}
.quote-pricing-table th {
  text-align: left;
  font-weight: 500;
  background: var(--surface-muted);
  width: 14rem;
  max-width: 32%;
}
.quote-pricing-table__row-tall th,
.quote-pricing-table__row-tall td {
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
}
.quote-pricing-table__desc {
  font-size: 0.85rem;
  color: var(--muted);
  max-width: 14rem;
}
.quote-pricing-link {
  font-weight: 500;
}
.quote-pricing-check {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.35rem;
  font-size: 0.8rem;
  cursor: pointer;
}
.quote-pricing-check--solo {
  margin-top: 0;
  white-space: nowrap;
}
.quote-pricing-input-stack {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  align-items: flex-end;
}

.quote-pricing-readonly-rate {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.25rem;
}

.quote-pricing-readonly-rate strong {
  font-size: 1.05em;
}

.quote-pricing-pilot-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  justify-content: flex-end;
}

.quote-pricing-pilot-rate-readonly {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text, #374151);
  white-space: nowrap;
  padding: 0.2rem 0.35rem;
  border-radius: 4px;
  background: var(--surface-muted, #f3f4f6);
  border: 1px solid var(--border, #e5e7eb);
}
.quote-pricing-inline {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.quote-pricing-input-num {
  width: 5rem;
  max-width: 100%;
  padding: 0.35rem 0.45rem;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  text-align: right;
}
.quote-pricing-suffix {
  color: var(--muted);
  font-size: 0.9rem;
}
.quote-pricing-money {
  width: 100%;
  min-width: 5.5rem;
  padding: 0.35rem 0.45rem;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: var(--surface-muted);
  text-align: right;
  font: inherit;
}
.quote-pricing-money--readonly {
  color: var(--text);
}
.quote-pricing-money--strong {
  font-weight: 700;
}

.quote-pricing-money--editable {
  width: 100%;
  box-sizing: border-box;
  cursor: text;
}

.quote-pricing-money--editable:focus {
  outline: 2px solid var(--accent, #2563eb);
  outline-offset: 1px;
}

.quote-pricing-tax-hint {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  line-height: 1.35;
}
.quote-pricing-table__bottom-line th {
  font-weight: 700;
}
.quote-pricing-table__controls {
  font-size: 0.85rem;
}
@media (max-width: 900px) {
  .quote-pricing-table th {
    width: auto;
    max-width: none;
  }
  .quote-pricing-table__desc {
    max-width: none;
  }
}

/* ——— Admin hub & skeleton pages ——— */
.admin-page {
  max-width: none;
  width: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(13.5rem, 15.5rem) minmax(0, 1fr);
  gap: 0.85rem 1rem;
  align-items: start;
}
.admin-back {
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
  grid-column: 1 / -1;
}
.admin-page > h1 {
  grid-column: 1 / -1;
  margin-bottom: 0.25rem;
}
.admin-back a {
  color: var(--muted, #6b7280);
}
.admin-intro {
  margin: 0 0 1.25rem;
  max-width: 48rem;
  line-height: 1.5;
  color: var(--text, #1f2937);
  grid-column: 1 / -1;
}
.admin-home {
  display: grid;
  grid-template-columns: minmax(18rem, 23rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}
.admin-home__summary {
  padding: 1rem 1.1rem;
  position: sticky;
  top: 5rem;
}
.admin-home__title {
  margin: 0 0 0.35rem;
  font-size: 1.1rem;
}
.admin-home__lead {
  margin: 0 0 0.75rem;
  font-size: 0.88rem;
}
.admin-home__stats {
  margin: 0;
  display: grid;
  gap: 0.45rem;
}
.admin-home__stats div {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  font-size: 0.84rem;
  border-bottom: 1px dashed var(--border, #e5e7eb);
  padding-bottom: 0.3rem;
}
.admin-home__stats dt {
  color: var(--muted, #6b7280);
}
.admin-home__stats dd {
  margin: 0;
  font-weight: 600;
}
.admin-home__hint {
  margin: 0.8rem 0 0;
  font-size: 0.82rem;
}
.admin-home__modules {
  display: grid;
  gap: 1rem;
}
.admin-home__group-title {
  margin: 0 0 0.65rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--muted, #4b5563);
}
.admin-home__cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  gap: 1rem;
}
.admin-nav {
  grid-column: 1;
  margin: 0;
  padding: 0.65rem 0.6rem;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  background: var(--surface, #fff);
  position: sticky;
  top: 5rem;
}
.admin-nav__list {
  display: grid;
  gap: 0.25rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.admin-nav__item {
  margin: 0;
}
.admin-nav__link {
  display: block;
  padding: 0.4rem 0.55rem;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted, #6b7280);
  text-decoration: none;
  white-space: normal;
}
.admin-nav__link:hover {
  color: var(--accent, #b45309);
  background: var(--cream, #faf8f5);
}
.admin-nav__link.is-active {
  color: var(--text, #1f2937);
  background: var(--surface-muted, #f3f4f6);
}
.admin-page > .admin-nav ~ * {
  grid-column: 2;
}
.admin-page.admin-page--prices > .admin-prices-main {
  grid-column: 2;
  grid-row: 3;
}
.admin-page.admin-page--production > .admin-production-main {
  grid-column: 2;
  grid-row: 3;
}
.admin-page.admin-page--trucking > .admin-trucking-main {
  grid-column: 2;
  grid-row: 3;
}
.admin-page.admin-page--dealerships > .admin-dealerships-main {
  grid-column: 2;
  grid-row: 3;
}
.admin-page.admin-page--customers > .admin-customers-main {
  grid-column: 2;
  grid-row: 3;
  display: grid;
  gap: 0.85rem;
  align-content: start;
}
.admin-page.admin-page--users > .admin-users-main {
  grid-column: 2;
  grid-row: 3;
}
.admin-page.admin-page--models > .admin-models-main {
  grid-column: 2;
  grid-row: 3;
  display: grid;
  gap: 0.85rem;
  align-content: start;
}
.admin-page.admin-page--state-taxes > .admin-state-taxes-main {
  grid-column: 2;
  grid-row: 3;
  display: grid;
  gap: 0.85rem;
  align-content: start;
  min-width: 0;
}
.admin-page.admin-page--mile-charges > .admin-mile-charges-main {
  grid-column: 2;
  grid-row: 3;
  display: grid;
  gap: 0.85rem;
  align-content: start;
  min-width: 0;
}
.admin-page.admin-page--nd-local-tax > .admin-nd-local-tax-main {
  grid-column: 2;
  grid-row: 3;
  display: grid;
  gap: 0.85rem;
  align-content: start;
  min-width: 0;
}
.admin-nd-tax-tester {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}
.admin-nd-tax-tester__check {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.admin-cli-sample {
  font-size: 0.82rem;
  padding: 0.65rem 0.75rem;
  background: var(--surface-muted, #f3f4f6);
  border-radius: 4px;
  overflow-x: auto;
}
.admin-mile-charge-row__fields {
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem 0.75rem;
}
.admin-mile-charge-field {
  display: inline-flex;
  flex-direction: column;
  gap: 0.2rem;
  font-size: 0.82rem;
}
.admin-mile-charge-add {
  flex-wrap: wrap;
}
.admin-mile-charges-rates {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
  gap: 1rem 1.25rem;
  margin: 1rem 0;
}
.admin-mile-charges-rate {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.admin-mile-charges-rate__title {
  font-weight: 600;
  font-size: 0.95rem;
}
.admin-mile-charges-rate__meta {
  font-size: 0.78rem;
}
.admin-mile-charges-rate__input {
  max-width: 8rem;
}
.admin-mile-charges-rates-form__actions {
  margin: 0;
}
.admin-mile-charges-history__num {
  text-align: right;
  white-space: nowrap;
}
.admin-page.admin-page--quality-lookups > .admin-quality-lookups-main {
  grid-column: 2;
  grid-row: 3;
  display: grid;
  gap: 0.85rem;
  align-content: start;
  min-width: 0;
}
.admin-quality-lookups-card__title {
  margin: 0 0 0.25rem;
  font-size: 1.05rem;
}
.admin-quality-lookups-sequence {
  margin-bottom: 1rem;
}
.admin-quality-lookups-card__code {
  margin: 0 0 0.75rem;
}
.admin-quality-lookups-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.admin-quality-lookups-check {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.88rem;
  white-space: nowrap;
}
.admin-quality-lookups-add {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border, #e5e7eb);
}
.quality-events-page__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.quality-events-page__title {
  margin-bottom: 0.35rem;
}
.qe-list-photos-cell {
  white-space: nowrap;
  vertical-align: middle;
}
.qe-list-photos {
  position: relative;
  display: inline-block;
}
.qe-list-photos__trigger {
  cursor: help;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--accent, #b45309);
  text-decoration: underline dotted;
  text-underline-offset: 2px;
}
.qe-list-photos__popover {
  display: none;
  padding: 0.45rem;
  background: var(--surface, #fff);
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 0.5rem;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.18);
  pointer-events: auto;
}
.qe-list-photos__popover.is-open {
  display: block;
}
.qe-list-photos__thumb-link {
  display: block;
  line-height: 0;
  border-radius: 0.3rem;
}
.qe-list-photos__thumb-link:focus-visible {
  outline: 2px solid var(--accent, #b45309);
  outline-offset: 2px;
}
.qe-list-photos__thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  max-width: min(15.5rem, calc(100vw - 2rem));
}
.qe-list-photos__thumb {
  display: block;
  width: 4.5rem;
  height: 4.5rem;
  object-fit: cover;
  border-radius: 0.3rem;
  border: 1px solid var(--border, #e5e7eb);
  background: var(--cream-light, #f8fafc);
}
.quality-events-form-page {
  max-width: 56rem;
}
.quality-events-form-page__title {
  margin: 0 0 0.75rem;
}
.quality-events-form.card {
  padding: 1.1rem 1.25rem 1.35rem;
}
.qe-fs {
  border: 1px solid var(--border);
  border-radius: 0.45rem;
  padding: 0.85rem 1rem 1rem;
  margin: 0 0 1rem;
  min-width: 0;
}
.qe-fs__legend {
  font-weight: 700;
  font-size: 0.95rem;
  padding: 0 0.35rem;
}
.qe-fs__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1.25rem;
  margin-top: 0.5rem;
}
.qe-fs__stack {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-top: 0.5rem;
}
.qe-field--span2 {
  grid-column: span 2;
}
.qe-field--full {
  grid-column: 1 / -1;
}
.qe-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted, #64748b);
  margin-bottom: 0.3rem;
}
.qe-req {
  color: var(--danger, #b91c1c);
}
.qe-hint-inline {
  font-weight: 400;
  color: var(--muted, #64748b);
}
.qe-input,
.qe-textarea {
  font: inherit;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0.5rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 0.35rem;
  background: var(--input-bg);
  color: var(--text);
}
.qe-input:focus,
.qe-textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.25);
}
:root[data-theme="dark"] .quality-events-form .qe-input:focus,
:root[data-theme="dark"] .quality-events-form .qe-textarea:focus {
  box-shadow: 0 0 0 2px rgba(224, 188, 74, 0.28);
}
.qe-input:disabled,
.qe-textarea:disabled,
.qe-input[readonly] {
  opacity: 0.85;
  cursor: not-allowed;
}
.qe-input--multi {
  min-height: 7rem;
}
.qe-textarea {
  resize: vertical;
  min-height: 5rem;
  line-height: 1.45;
}
.qe-hint {
  margin: 0.25rem 0 0;
  font-size: 0.78rem;
  color: var(--muted, #64748b);
  line-height: 1.35;
}
.qe-hint a {
  color: inherit;
  text-decoration: underline;
}
.qe-file {
  font-size: 0.88rem;
}
.qe-form-actions {
  margin-top: 0.25rem;
}
.qe-att-list {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
}
.qe-remove {
  margin-right: 0.5rem;
  font-size: 0.85rem;
}
@media (max-width: 640px) {
  .qe-fs__grid {
    grid-template-columns: 1fr;
  }
  .qe-field--span2 {
    grid-column: auto;
  }
}
.qe-typeahead-pop {
  list-style: none;
  margin: 0.15rem 0 0;
  padding: 0.25rem;
  border: 1px solid var(--border);
  border-radius: 0.35rem;
  background: var(--card-bg);
  color: var(--text);
  max-width: min(100%, 36rem);
  z-index: 5;
  box-shadow: var(--shadow-lg);
}
.qe-typeahead-pop__btn {
  display: block;
  width: 100%;
  text-align: left;
  font: inherit;
  padding: 0.35rem 0.45rem;
  border: none;
  background: transparent;
  color: inherit;
  cursor: pointer;
  border-radius: 0.25rem;
}
.qe-typeahead-pop__btn:hover {
  background: var(--hover-bg);
}
:root[data-theme="dark"] .quality-events-form .qe-input,
:root[data-theme="dark"] .quality-events-form .qe-textarea,
:root[data-theme="dark"] .quality-events-form .qe-file {
  color-scheme: dark;
}
.workorder-edit__quality-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.5rem 0;
}
.workorder-edit__quality-list {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
  line-height: 1.45;
}
.admin-page.admin-page--transport-lot-boards > .admin-transport-lot-boards-main {
  grid-column: 2;
  grid-row: 3;
  display: grid;
  gap: 0.85rem;
  align-content: start;
  min-width: 0;
}
.admin-page.admin-page--workorders-delete > .admin-workorders-delete-main {
  grid-column: 2;
  display: grid;
  gap: 0.85rem;
  align-content: start;
  min-width: 0;
}
.admin-workorders-delete__search-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.35rem;
}
.admin-workorders-delete__search-row .prod-cal__input {
  max-width: 14rem;
}
.admin-workorders-delete__intro {
  margin: 0 0 0.15rem;
  max-width: 48rem;
  line-height: 1.45;
}
.admin-workorders-delete__renumber-lead {
  font-size: 0.84rem;
  margin: 0 0 0.75rem;
}
.admin-workorders-delete__renumber {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border, #e5e7eb);
}
.admin-workorders-delete__dl {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
  gap: 0.5rem 1rem;
  margin: 0.5rem 0 1rem;
}
.admin-workorders-delete__dl dt {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted);
}
.admin-workorders-delete__dl dd {
  margin: 0.1rem 0 0;
}
.admin-workorders-delete__check {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  margin: 0.5rem 0;
  font-size: 0.88rem;
  line-height: 1.35;
}
.admin-workorders-delete__warnings ul {
  margin: 0.35rem 0 0;
  padding-left: 1.2rem;
}
.admin-workorders-delete__delete-form .field-label {
  margin-top: 0.75rem;
}
.admin-workorders-delete__actions {
  margin-top: 1rem;
}
.admin-tlb-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}
.admin-tlb-card__title {
  margin: 0;
  font-size: 1.05rem;
}
.admin-tlb-table__rows {
  max-width: 18rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.admin-tlb-modal.modal-dialog {
  max-width: min(100vw - 2rem, 40rem);
}
.admin-tlb-modal-form {
  margin-bottom: 0.75rem;
}
.admin-tlb-modal-section {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border, #e5e7eb);
}
.admin-tlb-modal-section__title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  font-weight: 700;
}
.admin-tlb-modal-section__hint {
  margin: 0 0 0.5rem;
}
.admin-tlb-modal-foot {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border, #e5e7eb);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.admin-tlb-letter-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
}
.admin-tlb-letter {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.2rem 0.35rem;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 0.3rem;
  font-size: 0.82rem;
  cursor: pointer;
  user-select: none;
}
.admin-tlb-letter__cb {
  margin: 0;
}
.admin-tlb-typeahead {
  position: relative;
  margin-top: 0.65rem;
}
.admin-tlb-typeahead__list {
  list-style: none;
  margin: 0.25rem 0 0;
  padding: 0;
  max-height: 11rem;
  overflow: auto;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 0.35rem;
  background: var(--surface, #fff);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
  z-index: 5;
}
.admin-tlb-typeahead__item {
  padding: 0.35rem 0.5rem;
  font-size: 0.84rem;
  cursor: pointer;
}
.admin-tlb-typeahead__item:hover {
  background: var(--surface-muted, #f3f4f6);
}
.admin-tlb-typeahead__picked {
  margin: 0.35rem 0 0;
  min-height: 1.2rem;
}
.admin-tlb-subform {
  margin-top: 0.5rem;
}
.admin-tlb-inline-form {
  display: inline;
}
.admin-tlb-table--compact td,
.admin-tlb-table--compact th {
  padding: 0.3rem 0.45rem;
  font-size: 0.82rem;
}
.admin-tlb-sequence-planner {
  margin-bottom: 1rem;
}
.admin-tlb-order-hint {
  font-size: 0.82rem;
  margin: 0 0 0.65rem;
}
.admin-tlb-th-drag {
  width: 2.35rem;
}
.admin-tlb-drag-cell {
  width: 2.35rem;
  vertical-align: middle;
  text-align: center;
}
.admin-tlb-drag-handle {
  cursor: grab;
  display: inline-block;
  padding: 0.15rem 0.35rem;
  color: var(--muted, #6b7280);
  font-size: 1rem;
  line-height: 1;
  user-select: none;
}
.admin-tlb-drag-handle:active {
  cursor: grabbing;
}
.admin-tlb-row--dragging {
  opacity: 0.65;
}
.admin-tlb-reorder-form {
  display: none;
}
.admin-tlb-drag-glyph {
  display: inline-block;
  font-size: 0.95rem;
  vertical-align: middle;
}
.admin-table-row-form {
  display: contents;
}
.admin-dealerships-section {
  margin-top: 1rem;
}
.admin-dealerships-section .admin-intro {
  margin-top: 0;
}
.admin-subheading {
  font-size: 0.95rem;
  margin: 0.85rem 0 0.45rem;
  font-weight: 700;
  color: var(--text, #1f2937);
}
.card.card--flat {
  box-shadow: none;
  margin-bottom: 0.85rem;
}
.admin-dealerships-filters fieldset.admin-form--row {
  border: 0;
  margin: 0;
  padding: 0.55rem 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1.25rem;
  align-items: flex-end;
}
.admin-dealerships-filters .field-label {
  margin: 0;
}
.admin-dealerships-table-wrap {
  margin-top: 0.65rem;
}
.admin-dealerships-table td.admin-table-actions {
  text-align: right;
  white-space: nowrap;
  font-size: 0.82rem;
}
.admin-row-muted td {
  color: var(--muted, #6b7280);
}

/* Dealership management (aligned with Python/React DealershipManagement.tsx) */
.admin-ds-manage-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}
.admin-ds-manage-header__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.admin-ds-manage-header__actions .btn.is-active {
  background: var(--cream-muted, #e5e7eb);
  border-color: var(--border, #d1d5db);
}
.admin-ds-manage-toggle-form {
  margin: 0;
}
.admin-ds-empty {
  padding: 1.25rem;
  text-align: center;
}
.admin-ds-cards {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.admin-ds-card {
  padding: 1.15rem 1.2rem;
}
.admin-ds-card--inactive {
  border-color: color-mix(in srgb, var(--danger) 55%, var(--border)) !important;
  background: var(--danger-bg);
}
.admin-ds-card__head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}
.admin-ds-card__primary {
  flex: 1;
  min-width: 0;
}
.admin-ds-card__title {
  margin: 0 0 0.5rem;
  font-size: 1.15rem;
  font-weight: 700;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.admin-ds-card__inactive-hint {
  font-weight: 400;
}
.admin-ds-badge {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  font-size: 0.65rem;
  font-weight: 700;
  border-radius: 4px;
  vertical-align: middle;
}
.admin-ds-badge--bad {
  background: var(--danger-bg);
  color: var(--danger);
}
.admin-ds-badge--sm {
  margin-left: 0.35rem;
  font-size: 0.62rem;
}
.admin-ds-card__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem 1.5rem;
  font-size: 0.84rem;
  color: var(--muted, #4b5563);
}
@media (max-width: 640px) {
  .admin-ds-card__grid {
    grid-template-columns: 1fr;
  }
}
.admin-ds-card__col p {
  margin: 0.15rem 0;
}
.admin-ds-card__icon-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  flex-shrink: 0;
}
.admin-ds-inline-form {
  display: inline;
  margin: 0;
}
.admin-ds-card__dealers {
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--border, #e5e7eb);
}
.admin-ds-card__dealers-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem 1rem;
}
.admin-ds-details {
  flex: 1;
  min-width: 12rem;
}
.admin-ds-details__summary {
  cursor: pointer;
  list-style: none;
  font-weight: 600;
  font-size: 0.98rem;
  padding: 0.15rem 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.admin-ds-details__summary::-webkit-details-marker {
  display: none;
}
.admin-ds-details__chev {
  font-size: 0.85rem;
  opacity: 0.7;
}
.admin-ds-details__body {
  margin-top: 0.65rem;
}
.admin-ds-dealer-table-wrap {
  margin-top: 0;
}
.admin-ds-dealer-table {
  font-size: 0.82rem;
}
.admin-ds-dealer-table th,
.admin-ds-dealer-table td {
  padding: 0.35rem 0.45rem !important;
}
.admin-ds-dealer-empty {
  text-align: center;
  color: var(--muted, #6b7280);
  padding: 0.75rem !important;
}
.admin-ds-dealer-row--inactive td {
  background: var(--danger-bg) !important;
}
.admin-ds-status {
  font-size: 0.76rem;
  padding: 0.12rem 0.45rem;
  border-radius: 4px;
  background: var(--cream-muted, #f3f4f6);
}
.admin-ds-status--ok {
  background: var(--ok-bg);
  color: var(--ok);
}
.admin-ds-inline-danger {
  background: none;
  border: none;
  color: var(--danger);
  cursor: pointer;
  font-size: inherit;
  padding: 0;
  text-decoration: underline;
  font-family: inherit;
}
.admin-ds-inline-danger:hover {
  color: color-mix(in srgb, var(--danger) 85%, var(--text));
}
.admin-modal {
  border: none;
  padding: 0;
  background: transparent;
  max-width: calc(100vw - 2rem);
}
/* Native dialog: showModal() sets [open]; keep centered when modal */
.admin-modal[open],
.admin-modal:modal {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(100vw - 2rem, 42rem);
  max-height: calc(100vh - 2rem);
}
.admin-modal::backdrop {
  background: rgba(15, 23, 42, 0.45);
}
.admin-modal__panel {
  padding: 1.25rem 1.35rem !important;
  margin: auto;
  max-width: 36rem;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow-lg);
}
.admin-modal__title {
  margin: 0 0 1rem;
  font-size: 1.2rem;
}
.admin-modal__actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
  grid-column: 1 / -1;
}
.admin-tiers-collapse {
  margin-top: 1.25rem;
}
.admin-tiers-collapse__summary {
  cursor: pointer;
  font-weight: 700;
  padding: 0.65rem 0.85rem;
  list-style: none;
}
.admin-tiers-collapse__summary::-webkit-details-marker {
  display: none;
}
.admin-tiers-collapse__body {
  padding: 0 0.85rem 0.85rem;
}

.admin-dealers-nested {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-top: 0.35rem;
}
.admin-dealers-nested__panel {
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 8px;
  background: var(--surface, #fff);
  padding: 0;
}
.admin-dealers-nested__summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  padding: 0.55rem 0.75rem;
  font-weight: 600;
  color: var(--text, #1f2937);
}
.admin-dealers-nested__summary::-webkit-details-marker {
  display: none;
}
.admin-dealers-nested__title {
  flex: 1;
  min-width: 8rem;
}
.admin-dealers-nested__count {
  font-weight: 500;
  font-size: 0.82rem;
}
.admin-dealers-nested__body {
  padding: 0 0.75rem 0.65rem;
  border-top: 1px solid var(--border, #e5e7eb);
}
.admin-dealers-nested__toolbar {
  margin: 0.45rem 0 0.35rem;
}
.admin-dealers-nested__form {
  margin: 0.35rem 0 0.5rem;
  padding: 0.6rem 0.65rem;
}
.admin-dealers-nested__form .admin-subheading {
  margin-top: 0;
}
.admin-dealers-nested__empty {
  margin: 0.35rem 0 0;
  font-size: 0.88rem;
}
.admin-dealers-nested__table-wrap {
  margin-top: 0.25rem;
}
.admin-dealers-nested__table {
  font-size: 0.82rem;
}
.admin-dealers-nested__table th,
.admin-dealers-nested__table td {
  padding: 0.35rem 0.45rem !important;
}
.admin-hub {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  gap: 1rem;
  margin-top: 0.5rem;
}
.admin-hub__card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1.1rem 1.15rem;
  text-decoration: none;
  color: inherit;
  background: var(--surface);
  border-radius: 8px;
  transition: box-shadow 0.15s, border-color 0.15s;
  border: 1px solid var(--border, #e5e7eb);
}
.admin-hub__card:hover {
  border-color: var(--accent, #d4af37);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
}
.admin-hub__card--muted {
  cursor: default;
}
.admin-hub__card--muted:hover {
  border-color: var(--border, #e5e7eb);
  box-shadow: none;
}
.admin-hub__card-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
}
.admin-hub__card-blurb {
  margin: 0;
  flex: 1;
  font-size: 0.82rem;
  line-height: 1.45;
}
.admin-hub__card-cta {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--accent, #b45309);
}
.admin-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.admin-columns .admin-placeholder {
  margin: 0;
}
.admin-workspace {
  display: grid;
  gap: 1rem;
}
.admin-workspace__split {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 1rem;
}
.admin-panel {
  padding: 1rem 1rem;
  border: 1px solid var(--border, #e5e7eb);
  box-shadow: var(--shadow);
}
.admin-panel__title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}
.admin-panel__intro {
  margin: 0 0 0.75rem;
  font-size: 0.84rem;
}
.admin-panel__actions {
  margin: 0 0 0.75rem;
  display: flex;
  justify-content: flex-end;
}
.admin-model-add-modal {
  max-width: 40rem;
  width: 100%;
  border: 1px solid var(--border, #e5e7eb);
  padding: 0;
}
.admin-model-addons-modal {
  max-width: 58rem;
  width: 100%;
  border: 1px solid var(--border, #e5e7eb);
  padding: 0;
}
.admin-model-addons-form {
  padding: 0.85rem 0.95rem 0.95rem;
}
.admin-addon-links-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}
.admin-addon-links-pane .admin-panel__title {
  margin: 0 0 0.35rem;
}
.admin-model-addons-table-wrap {
  max-height: min(82vh, 46rem);
  overflow: auto;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
}
.admin-model-addons-table {
  margin: 0;
}
.admin-model-addons-actions {
  margin-top: 0.65rem;
}
/* Add-on inventory (public/addon-inventory/index.php): inline row adjustments */
.addon-inv-on-hand-table .addon-inv-on-hand-table__adjust-head {
  min-width: 14rem;
}
.addon-inv-adjust-row {
  margin: 0;
}
.addon-inv-adjust-row__inputs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}
.addon-inv-adjust-row__delta {
  width: 4.25rem;
  min-width: 4rem;
}
.addon-inv-adjust-row__note {
  flex: 1 1 10rem;
  min-width: 8rem;
}
@media (max-width: 720px) {
  .addon-inv-adjust-row__inputs {
    flex-direction: column;
    align-items: stretch;
  }
  .addon-inv-adjust-row__inputs .btn {
    align-self: flex-start;
  }
}
.admin-users-access-modal {
  max-width: 56rem;
}
.admin-users-perm-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: 0.35rem 0.6rem;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface-muted);
}
.admin-users-perm-grid label {
  font-size: 0.84rem;
}
.admin-page--users .admin-panel {
  border-radius: 10px;
}
.admin-page--users .admin-users__flash {
  margin: 0 0 0.7rem;
}
.admin-page--users .admin-panel__title {
  font-size: 1.03rem;
}
.admin-page--users .admin-panel__intro {
  font-size: 0.86rem;
  line-height: 1.35;
}
.admin-page--users .admin-users-perm-grid {
  background: color-mix(in srgb, var(--accent) 6%, var(--surface-muted));
}
.admin-users-row--inactive td {
  background: var(--danger-bg) !important;
}
.admin-users-status {
  display: inline-block;
  font-size: 0.76rem;
  padding: 0.12rem 0.45rem;
  border-radius: 4px;
  background: var(--cream-muted, #f3f4f6);
}
.admin-users-status--active {
  background: var(--ok-bg);
  color: var(--ok);
}
.admin-users-status--inactive {
  background: var(--danger-bg);
  color: var(--danger);
  font-weight: 600;
}
.admin-users-help-modal {
  max-width: 56rem;
}
.admin-users-help__body {
  padding: 0.9rem 1rem 1rem;
}
.admin-users-help__body p {
  margin: 0 0 0.55rem;
}
.admin-users-help__list {
  margin: 0.35rem 0 0.7rem;
  padding-left: 1.1rem;
}
.admin-users-help__list li {
  margin: 0.35rem 0;
  line-height: 1.35;
}
.admin-form-grid .field-label.admin-check-inline {
  flex-direction: row;
  align-items: center;
  gap: 0.45rem;
  align-self: center;
  min-height: 2.25rem;
  font-weight: 500;
}
.admin-form-grid .field-label.admin-check-inline input[type="checkbox"] {
  margin: 0;
  transform: translateY(-1px);
}

/* Reduce scroll pressure in long native selects/listboxes where browsers allow styling. */
select {
  min-height: 2.15rem;
}
select option {
  padding-block: 0.3rem;
}
select[multiple],
select[size]:not([size="1"]) {
  min-height: 16rem;
}
@media (max-width: 1080px) {
  .admin-addon-links-grid {
    grid-template-columns: 1fr;
  }
}
.admin-model-add-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.75rem 0.95rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface-muted);
}
.admin-model-add-modal .admin-form-grid {
  margin: 0;
  border: none;
  border-radius: 0;
  padding: 0.85rem 0.95rem 0.95rem;
  background: var(--surface);
}
.admin-sequence-planner {
  margin: 0 0 0.85rem;
  padding: 0.85rem;
  border: 1px solid var(--border);
  background: var(--surface-muted);
}
.admin-sequence-planner__title {
  margin: 0 0 0.25rem;
  font-size: 0.92rem;
}
.admin-sequence-planner__lead {
  margin: 0 0 0.6rem;
  font-size: 0.8rem;
}
.admin-sequence-planner__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem);
  gap: 0.75rem;
}
.admin-sequence-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  max-height: 20rem;
  overflow: auto;
}
.admin-sequence-item {
  display: grid;
  grid-template-columns: 1.2rem minmax(0, 1fr) auto;
  gap: 0.45rem;
  align-items: center;
  padding: 0.45rem 0.55rem;
  border-bottom: 1px solid var(--border);
  cursor: grab;
  font-size: 0.8rem;
  user-select: none;
  -webkit-user-select: none;
}
.admin-sequence-item:active {
  cursor: grabbing;
}
.admin-sequence-item:last-child {
  border-bottom: none;
}
.admin-sequence-item.is-dragging {
  opacity: 0.6;
}
.admin-sequence-item__handle {
  color: var(--muted);
  user-select: none;
}
.admin-sequence-item__label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.admin-sequence-item__meta {
  color: var(--muted);
  font-size: 0.75rem;
}
.admin-sequence-preview {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface);
  padding: 0.55rem;
  display: grid;
  gap: 0.45rem;
}
.admin-sequence-preview__title {
  margin: 0;
  font-size: 0.82rem;
}
.admin-sequence-preview__body {
  min-height: 5rem;
  max-height: 13rem;
  overflow: auto;
  font-size: 0.78rem;
}
.admin-sequence-preview__row {
  display: grid;
  gap: 0.1rem;
  margin-bottom: 0.35rem;
}
.admin-sequence-preview__actions {
  display: flex;
  gap: 0.4rem;
  justify-content: flex-end;
}
.admin-alert {
  margin-bottom: 0.85rem;
  padding: 0.7rem 0.85rem;
}
.admin-alert--ok {
  border: 1px solid color-mix(in srgb, var(--ok) 45%, var(--border));
  background: var(--ok-bg);
  color: var(--ok);
}
.admin-alert--err {
  border: 1px solid color-mix(in srgb, var(--danger) 45%, var(--border));
  background: var(--danger-bg);
  color: var(--danger);
}
.admin-form-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.6rem 0.75rem;
  align-items: end;
  margin-bottom: 0.85rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface-muted);
}
.admin-form-grid--compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.admin-form-grid .field-label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.83rem;
  font-weight: 500;
}
.admin-form-grid__full {
  grid-column: 1 / -1;
}
.admin-form-grid__actions {
  display: flex;
  justify-content: flex-end;
}
.admin-check {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.82rem;
}
.admin-table-wrap {
  overflow-x: auto;
}
.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}
.admin-table th,
.admin-table td {
  border: 1px solid var(--border, #e5e7eb);
  padding: 0.4rem;
  vertical-align: top;
}
.admin-table th {
  background: var(--cream-light);
  text-align: left;
  color: var(--text);
  font-weight: 600;
}
.admin-table--quote tbody tr:nth-child(even) td {
  background: color-mix(in srgb, var(--accent) 6%, transparent);
}
.admin-table--quote tbody tr:hover td {
  background: var(--surface-muted);
}
.admin-table__input {
  width: 100%;
  min-width: 7rem;
}
.admin-table__num {
  max-width: 6rem;
}
.admin-table__tiny {
  max-width: 4.5rem;
}
.admin-table__mini-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.3rem;
}
.admin-table .btn--sm {
  padding: 0.25rem 0.45rem;
  font-size: 0.74rem;
}
.admin-placeholder {
  margin: 1rem 0 0;
  padding: 1rem 1.15rem;
}
.admin-placeholder__title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}
.admin-placeholder__lead {
  margin: 0 0 0.75rem;
  font-size: 0.85rem;
}
.admin-placeholder__list {
  margin: 0;
  padding-left: 1.2rem;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--text, #374151);
}
.admin-placeholder__list li {
  margin-bottom: 0.35rem;
}
.admin-dedupe-skeleton {
  margin-top: 1.25rem;
  padding: 1.1rem 1.15rem;
}
.admin-dedupe-skeleton__title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}
.admin-dedupe-skeleton__form {
  margin-top: 1rem;
}
.admin-dedupe-skeleton__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin-bottom: 0.75rem;
}
.admin-dedupe-skeleton__label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text, #374151);
  min-width: 10rem;
  flex: 1;
}
.admin-dedupe-skeleton__input {
  font: inherit;
  padding: 0.4rem 0.5rem;
  border-radius: 6px;
  border: 1px solid var(--border, #e5e7eb);
  opacity: 0.85;
}
.admin-dedupe-skeleton__hint {
  margin: 0 0 0.75rem;
  font-size: 0.8rem;
}
.admin-quote-mgmt-links {
  margin: 0 0 1rem;
  padding: 1rem 1.15rem;
}
.admin-quote-mgmt-links__title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}
.admin-quote-mgmt-links__actions {
  margin: 0.75rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
@media (max-width: 1080px) {
  .admin-page {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
  .admin-page > .admin-nav,
  .admin-page > .admin-nav ~ * {
    grid-column: 1;
  }
  .admin-page.admin-page--prices > .admin-prices-main {
    grid-column: 1;
    grid-row: auto;
  }
  .admin-page.admin-page--production > .admin-production-main {
    grid-column: 1;
    grid-row: auto;
  }
  .admin-page.admin-page--trucking > .admin-trucking-main {
    grid-column: 1;
    grid-row: auto;
  }
  .admin-page.admin-page--models > .admin-models-main {
    grid-column: 1;
    grid-row: auto;
  }
  .admin-page.admin-page--state-taxes > .admin-state-taxes-main {
    grid-column: 1;
    grid-row: auto;
  }
  .admin-page.admin-page--mile-charges > .admin-mile-charges-main {
    grid-column: 1;
    grid-row: auto;
  }
  .admin-page.admin-page--nd-local-tax > .admin-nd-local-tax-main {
    grid-column: 1;
    grid-row: auto;
  }
  .admin-page.admin-page--quality-lookups > .admin-quality-lookups-main {
    grid-column: 1;
    grid-row: auto;
  }
  .admin-page.admin-page--transport-lot-boards > .admin-transport-lot-boards-main {
    grid-column: 1;
    grid-row: auto;
  }
  .admin-page.admin-page--workorders-delete > .admin-workorders-delete-main {
    grid-column: 1;
    grid-row: auto;
  }
  .admin-home {
    grid-template-columns: 1fr;
  }
  .admin-home__summary {
    position: static;
    top: auto;
  }
  .admin-nav {
    position: static;
    top: auto;
    max-height: none;
    padding: 0.45rem 0;
    border: none;
    border-bottom: 1px solid var(--border, #e5e7eb);
    border-radius: 0;
    background: transparent;
    overflow-x: auto;
  }
  .admin-nav__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.65rem;
  }
  .admin-nav__link {
    display: inline-block;
    white-space: nowrap;
  }
}
@media (max-width: 900px) {
  .admin-form-grid,
  .admin-form-grid--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .admin-sequence-planner__grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .admin-form-grid,
  .admin-form-grid--compact {
    grid-template-columns: 1fr;
  }
}

.forbidden-page {
  min-height: 100vh;
  margin: 0;
  background: var(--cream, #faf8f5);
}
.forbidden-page__main {
  max-width: 32rem;
  margin: 0 auto;
  padding: 2.5rem 1.25rem 3rem;
}
.forbidden-page__title {
  margin: 0 0 0.75rem;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--text, #1f2937);
}
.forbidden-page__msg {
  margin: 0 0 1rem;
  line-height: 1.5;
  color: var(--text, #374151);
}
.forbidden-page__hint {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
}
.forbidden-page__hint a {
  font-weight: 600;
  color: var(--accent, #b45309);
}

/* —— Workorder table —— */
.workorders-page__title {
  margin-bottom: 0.75rem;
}
.workorders-page__missing {
  max-width: 42rem;
}
.workorders-page__missing code {
  font-size: 0.9em;
}
.workorders-page__col-toggle-wrap {
  margin: 0 0 0.75rem;
}
.workorders-filter-panel {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface-muted);
}
.workorders-col-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}
.workorders-filter-form {
  margin-bottom: 1.25rem;
  padding: 1rem 1.15rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: color-mix(in srgb, #22c55e 12%, var(--surface-muted));
}
.workorders-filter-form__dates {
  display: grid;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.workorders-filter-form__dates--compact {
  margin-bottom: 0.85rem;
}
.workorders-date-row--single {
  flex-wrap: wrap;
  align-items: flex-end;
}
.workorders-date-row__field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 11rem;
}
.workorders-date-type-select {
  font: inherit;
  padding: 0.35rem 0.5rem;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  max-width: 100%;
}
.workorders-date-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  font-size: 0.9rem;
}
.workorders-date-row__label {
  min-width: 7.5rem;
  font-weight: 600;
  color: var(--muted);
}
.workorders-date-row input[type="date"] {
  font: inherit;
  padding: 0.25rem 0.4rem;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
}
.workorders-fieldset {
  margin: 0 0 1rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--surface);
}
.workorders-fieldset legend {
  padding: 0 0.35rem;
  font-weight: 600;
  font-size: 0.88rem;
}
.workorders-checkbox-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: center;
  font-size: 0.88rem;
}
.workorders-check {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  cursor: pointer;
}
.workorders-filter-form__row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1rem;
}
.workorders-filter-form__row label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.88rem;
  font-weight: 600;
}
.workorders-filter-form__row input[type="text"] {
  min-width: 12rem;
  font: inherit;
  padding: 0.35rem 0.5rem;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
}
.workorders-filter-dealer-row {
  align-items: flex-end;
}
.workorders-filter-form__suggest-label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.88rem;
  font-weight: 600;
}
.workorders-filter-form__suggest-input {
  min-width: 14rem;
  font: inherit;
  padding: 0.35rem 0.5rem;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
}
.workorders-filter-dealer-hint {
  margin: -0.35rem 0 0.85rem;
  font-size: 0.82rem;
}
.awms-suggest-wrap {
  position: relative;
  display: block;
}
.awms-suggest-list {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 50;
  margin: 2px 0 0;
  padding: 0.2rem 0;
  list-style: none;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 4px;
  box-shadow: var(--shadow-lg);
  max-height: 14rem;
  overflow-y: auto;
}
.awms-suggest-list[hidden] {
  display: none !important;
}
.awms-suggest-list__item {
  padding: 0.35rem 0.65rem;
  cursor: pointer;
  font-size: 0.86rem;
  font-weight: 500;
}
.awms-suggest-list__item:hover,
.awms-suggest-list__item:focus {
  background: var(--surface-muted);
}
.quotes-filter-row__value--suggest .awms-suggest-wrap {
  min-width: 12rem;
}
.quotes-addon-filter-input {
  width: 100%;
  max-width: 18rem;
  font: inherit;
  font-size: 0.86rem;
  padding: 0.3rem 0.45rem;
  margin-bottom: 0.45rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
  color: var(--text);
  box-sizing: border-box;
}
.workorders-showing {
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
}
.table-pagination {
  margin-top: 1rem;
}
.table-pagination--top {
  margin-top: 0;
  margin-bottom: 0.75rem;
}
.table-sort-th {
  vertical-align: bottom;
}
.table-sort-th__link {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  box-sizing: border-box;
  color: inherit;
  font-weight: inherit;
  text-decoration: none;
  white-space: nowrap;
}
.table-sort-th__link:hover {
  color: var(--accent);
  text-decoration: underline;
}
.table-sort-th--active .table-sort-th__link {
  color: var(--accent);
}
.table-sort-th__icon {
  font-size: 0.65rem;
  line-height: 1;
  opacity: 0.85;
}
.table-sort-th--num .table-sort-th__link {
  justify-content: flex-end;
}
.table-pagination__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}
.table-pagination__controls {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
}
.table-pagination__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.35rem;
  min-height: 2.35rem;
  padding: 0.2rem 0.45rem;
  box-sizing: border-box;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--surface);
  color: var(--accent);
  text-decoration: none;
  font-weight: 600;
  line-height: 1;
  font-size: 0.95rem;
}
.table-pagination__btn:hover:not(.table-pagination__btn--disabled) {
  background: var(--surface-muted);
  border-color: var(--accent);
}
.table-pagination__btn--disabled {
  color: var(--muted);
  background: var(--cream-light);
  cursor: not-allowed;
  border-color: var(--border);
}
.table-pagination__chev {
  font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
  letter-spacing: -0.02em;
}
.table-pagination__status {
  margin: 0;
  font-size: 0.92rem;
}
.table-pagination__per-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 500;
  font-size: 0.92rem;
  white-space: nowrap;
}
.table-pagination__per-select {
  min-width: 4.25rem;
}
.workorders-filter-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.75rem;
}
.workorders-stats {
  margin: 0;
  font-size: 0.88rem;
}
.workorders-stat-help {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1rem;
  height: 1.1rem;
  margin: 0 0.15rem;
  padding: 0;
  vertical-align: middle;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--surface);
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  cursor: help;
}
.workorders-stat-help:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--surface-muted);
}
.workorders-table-wrap {
  overflow-x: auto;
}
.workorders-table {
  font-size: 0.82rem;
}
.workorders-table thead th {
  background: var(--cream-light);
  color: var(--text);
  white-space: nowrap;
}
.workorders-table tbody tr:nth-child(even) {
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}
.workorders-table__num {
  text-align: right;
  white-space: nowrap;
}
.workorders-table__notes {
  max-width: 14rem;
  white-space: normal;
  vertical-align: top;
  line-height: 1.35;
}
.workorders-links {
  display: block;
  font-size: 0.78rem;
  font-weight: 400;
  margin-top: 0.15rem;
}
.workorders-links a {
  color: var(--accent, #2563eb);
}
.workorders-dealer-person {
  display: block;
  font-size: 0.78rem;
  line-height: 1.3;
  color: var(--muted);
  margin-top: 0.12rem;
  font-weight: 400;
}
.workorder-reassign-page {
  max-width: 100%;
}
.workorder-reassign-form label > span:first-child {
  display: block;
  margin-bottom: 0.25rem;
  font-weight: 600;
  color: var(--muted);
}
.workorder-reassign-pickers {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem 1rem;
  margin: 0.8rem 0 1rem;
}
.workorder-reassign-pickers input[type="text"] {
  width: 100%;
  min-height: 2.2rem;
  font: inherit;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
  color: var(--text);
  box-sizing: border-box;
}
.workorder-reassign-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
  margin-top: 0.75rem;
}
.workorder-reassign-col {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface-muted);
  padding: 0.8rem 0.9rem;
}
.workorder-reassign-col h2 {
  margin: 0 0 0.6rem;
  font-size: 1.1rem;
}
.workorder-reassign-col p {
  margin: 0.3rem 0;
}
.workorder-reassign-addons {
  margin: 0.35rem 0 0;
  padding-left: 1rem;
}
.workorder-reassign-workorders {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  margin-bottom: 0.45rem;
}
.workorder-reassign-workorders label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.workorder-reassign-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 1rem 0 0;
}
@media print {
  .site-header,
  .site-nav-backdrop,
  .site-footer,
  .workorders-filter-form,
  .workorders-page__col-toggle-wrap,
  .workorders-filter-panel,
  .table-pagination,
  .workorders-filter-form__actions,
  .quotes-filter-form,
  .quotes-dialog {
    display: none !important;
  }
  .workorders-table {
    font-size: 9pt;
  }
  .quotes-table {
    font-size: 9pt;
  }
}

/* Quote table page (filters aligned with workorders) */
.quotes-page__title {
  margin-bottom: 0.5rem;
}
.quotes-page {
  margin-bottom: 2rem;
}
.quotes-addon-intro {
  font-size: 0.88rem;
  margin: 0 0 0.75rem;
}
.quotes-addon-blocks {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 0.5rem;
}
.quotes-addon-block {
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--surface-muted);
}
.quotes-addon-block__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem 1rem;
  margin-bottom: 0.5rem;
}
.quotes-addon-block__group {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.88rem;
}
.quotes-addon-block__group .workorders-date-type-select {
  min-width: 14rem;
}
.quotes-addon-checks {
  padding-top: 0.25rem;
}
.quotes-addon-checks[hidden] {
  display: none !important;
}
.quotes-search-heading {
  font-weight: 600;
  font-size: 0.92rem;
  margin: 0 0 0.5rem;
  color: var(--text);
}
.quotes-dynamic-filters {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 0.5rem;
}
.quotes-filter-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem 1rem;
}
.quotes-filter-row__field,
.quotes-filter-row__value {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.88rem;
}
.quotes-filter-row__field .workorders-date-type-select {
  min-width: 14rem;
}
.quotes-filter-row__value input[type="text"] {
  min-width: min(100%, 22rem);
  font: inherit;
  padding: 0.35rem 0.5rem;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
}
.quotes-filter-add-wrap {
  margin: 0 0 1rem;
}
.quotes-aeration-fieldset .quotes-aeration-hint {
  margin: 0 0 0.5rem;
  font-size: 0.86rem;
}
.quotes-showing-line .quotes-count {
  color: #b91c1c;
}
.quotes-dialog {
  max-width: 36rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: var(--shadow-lg);
  background: var(--surface);
  color: var(--text);
}
.quotes-dialog::backdrop {
  background: rgba(15, 23, 42, 0.35);
}
.quotes-dialog__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 1rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface-muted);
}
.quotes-dialog__header h2 {
  margin: 0;
  font-size: 1.05rem;
}
.quotes-dialog__close {
  border: none;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
  padding: 0 0.25rem;
}
.quotes-dialog__close:hover {
  color: var(--text);
}
.quotes-dialog__body {
  padding: 1rem 1.1rem 1.15rem;
  font-size: 0.9rem;
  line-height: 1.5;
  max-height: min(70vh, 28rem);
  overflow: auto;
}
.quotes-dialog__body p {
  margin: 0 0 0.75rem;
}
.quotes-dialog__body p:last-child {
  margin-bottom: 0;
}
.quotes-dialog__body code {
  font-size: 0.88em;
}
.quotes-table thead th {
  background: var(--cream-light);
  color: var(--text);
}
.quotes-table__th-narrow,
.quotes-table__td-narrow {
  width: 2.5rem;
  max-width: 3.25rem;
  padding-left: 0.3rem;
  padding-right: 0.3rem;
  text-align: center;
  white-space: nowrap;
}
.quotes-table thead th.quotes-table__th-narrow {
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.02em;
}
.quotes-table__wo-cell {
  vertical-align: top;
  font-size: 0.88rem;
  line-height: 1.35;
}
.quotes-table__wo-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
}
.quotes-table__wo-line--follow {
  margin-top: 0.35rem;
}
.quotes-table__wo-num {
  font-weight: 600;
  white-space: nowrap;
}
.quotes-table__wo-sn {
  font-size: 0.86em;
  white-space: nowrap;
}

/* Production schedule */
.schedule-page__title {
  margin-bottom: 0.35rem;
}
.schedule-page__note {
  margin: 0 0 0.85rem;
  font-size: 0.9rem;
}
.schedule-page__missing {
  margin-bottom: 1rem;
}
.schedule-filter-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.48rem 0.92rem;
  margin-bottom: 0.82rem;
  padding: 0.58rem 0.82rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: color-mix(in srgb, #22c55e 12%, var(--surface-muted));
}
.schedule-filter-form__label {
  font-weight: 600;
  font-size: 0.88rem;
  color: var(--muted);
}
.schedule-check {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.86rem;
  cursor: pointer;
}
.btn--sm {
  font-size: 0.82rem;
  padding: 0.3rem 0.65rem;
}
.btn--xs {
  font-size: 0.75rem;
  padding: 0.15rem 0.45rem;
}
.schedule-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.82rem;
}
.schedule-updates-heading {
  margin-bottom: 0.35rem;
}
.schedule-updates-heading__row {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
  margin-bottom: 0.38rem;
}
.schedule-updates-heading__label {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text);
}
.schedule-help-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--surface);
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
.schedule-help-trigger:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--surface-muted);
}
.schedule-help-dialog {
  border: none;
  border-radius: 10px;
  padding: 0;
  max-width: min(26rem, calc(100vw - 2rem));
  box-shadow: var(--shadow-lg);
  background: var(--surface);
  color: var(--text);
}
.schedule-help-dialog::backdrop {
  background: rgba(15, 23, 42, 0.35);
}
.schedule-help-dialog__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface-muted);
  border-radius: 10px 10px 0 0;
}
.schedule-help-dialog__title {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--text);
}
.schedule-help-dialog__close {
  border: none;
  background: transparent;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
  padding: 0.15rem;
  border-radius: 4px;
}
.schedule-help-dialog__close:hover {
  color: var(--text);
  background: var(--cream-light);
}
.schedule-help-dialog__body {
  padding: 0.85rem 1rem 1rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--text);
}
.schedule-help-dialog__body > p:first-child {
  margin-top: 0;
}
.schedule-help-dialog__body p {
  margin: 0 0 0.65rem;
}
.schedule-help-dialog__list {
  margin: 0 0 0.65rem;
  padding-left: 1.15rem;
}
.schedule-help-dialog__list li {
  margin-bottom: 0.45rem;
}
.schedule-help-dialog__ttl {
  margin: 0;
  font-size: 0.88em;
  color: var(--muted);
}
.schedule-pending-panel {
  margin-bottom: 0.82rem;
  padding: 0.58rem 0.82rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface-muted);
}
.schedule-pending-panel.is-empty {
  display: none;
}
.schedule-pending-panel__remote-block {
  margin-bottom: 0.78rem;
  padding-bottom: 0.68rem;
  border-bottom: 1px solid var(--border);
}
.schedule-pending-panel__remote-intro {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
}
.schedule-pending-panel__item--remote {
  color: var(--accent);
}
.schedule-pending-panel__title {
  margin-bottom: 0.35rem;
  font-size: 0.9rem;
}
.schedule-pending-panel__list {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 0.82rem;
}
.schedule-pending-panel__item {
  margin-bottom: 0.2rem;
}
.schedule-pending-panel__item--collision {
  color: var(--danger);
  font-weight: 600;
}
.schedule-pending-panel__collision-flag {
  margin-left: 0.35rem;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.schedule-pending-panel__user-block {
  margin-bottom: 0.65rem;
}
.schedule-pending-panel__user-title {
  font-size: 0.88rem;
  font-weight: 600;
  margin-bottom: 0.15rem;
}
.schedule-pending-panel__you {
  font-weight: 400;
  color: var(--muted);
}
.schedule-pending-panel__blocked {
  margin: 0.5rem 0 0;
  padding: 0.45rem 0.55rem;
  border-radius: 6px;
  background: var(--danger-bg);
  border: 1px solid color-mix(in srgb, var(--danger) 35%, var(--border));
  font-size: 0.84rem;
  color: var(--danger);
}
.schedule-drafts-hint__warn {
  color: var(--danger);
}
.schedule-pending-panel__wo {
  font-weight: 600;
}
.schedule-toast-stack {
  position: fixed;
  bottom: 1rem;
  right: 1rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  pointer-events: none;
}
.schedule-toast {
  pointer-events: auto;
  padding: 0.55rem 0.85rem;
  border-radius: 8px;
  background: #1e293b;
  color: #fff;
  font-size: 0.84rem;
  max-width: 22rem;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}
.schedule-toast.schedule-toast--notify {
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  box-shadow: var(--shadow-lg);
  padding: 0.65rem 0.85rem;
}
.schedule-toast__text {
  margin: 0 0 0.5rem;
  font-size: 0.84rem;
  line-height: 1.4;
}
.schedule-toast__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
  align-items: center;
}
.schedule-toast--out {
  opacity: 0;
  transition: opacity 0.35s ease;
}
.schedule-conflict-dialog {
  border: none;
  padding: 0;
  background: transparent;
  max-width: calc(100vw - 2rem);
}
.schedule-conflict-dialog::backdrop {
  background: rgba(15, 23, 42, 0.45);
}
.schedule-conflict-dialog__panel {
  padding: 1rem 1.25rem !important;
  max-width: 36rem;
  margin: auto;
  background: var(--surface);
  color: var(--text);
  border-radius: 10px;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-lg);
}
.schedule-conflict-dialog__lead {
  margin: 0 0 0.5rem;
  font-size: 0.88rem;
}
.schedule-conflict-dialog__body {
  max-height: 65vh;
  overflow: auto;
  margin: 0.5rem 0;
}
.schedule-conflict-block {
  margin-bottom: 0.75rem;
  padding: 0.65rem 0.75rem !important;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface-muted);
}
.schedule-conflict-block__row {
  margin: 0.35rem 0;
  font-size: 0.82rem;
}
.schedule-conflict-block__row code {
  font-size: 0.78rem;
}
.schedule-conflict-block__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.35rem 0 0.65rem;
}
.schedule-notes-input {
  width: 100%;
  max-height: 5rem;
  resize: vertical;
  font: inherit;
  font-size: 0.72rem;
  border: 1px solid var(--border);
  border-radius: 3px;
  background: var(--surface);
  color: var(--text);
}
.schedule-section {
  margin-bottom: 1.32rem;
}
.schedule-section__title {
  font-size: 1rem;
  margin: 0 0 0.35rem;
}
.schedule-section__hint {
  font-size: 0.82rem;
  margin: 0 0 0.5rem;
}
.schedule-legend {
  font-size: 0.82rem;
  margin-bottom: 0.48rem;
  padding: 0.48rem 0.65rem;
  border-radius: 6px;
  border: 1px solid color-mix(in srgb, #3b82f6 40%, var(--border));
  background: color-mix(in srgb, #3b82f6 12%, var(--surface-muted));
}
.schedule-table-wrap {
  overflow-x: auto;
}
.schedule-table {
  font-size: 0.74rem;
}
.schedule-table thead th {
  background: var(--cream-light);
  color: var(--text);
  white-space: nowrap;
  padding: 0.18rem 0.4rem;
  line-height: 1.1;
}
.schedule-table tbody td {
  padding: 0.12rem 0.4rem;
  line-height: 1.15;
  vertical-align: middle;
}
.schedule-input,
.schedule-select {
  font: inherit;
  font-size: 0.72rem;
  max-width: 100%;
  line-height: 1.1;
  border-radius: 3px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  box-sizing: border-box;
  padding: 3px 0.22rem;
  min-height: 1.42rem;
}
.schedule-input {
  min-width: 5.25rem;
}
.schedule-input[type="date"] {
  min-height: 1.36rem;
}
textarea.schedule-notes-input {
  min-height: 1.72rem;
  line-height: 1.22;
  padding: 6px 0.22rem;
}
.schedule-notes {
  max-width: 10rem;
}
.schedule-notes-cell {
  max-width: 12rem;
}
.schedule-table .btn--xs {
  padding: 4px 0.38rem;
  line-height: 1.05;
  font-size: 0.71rem;
}
.schedule-lot-pending {
  display: inline-block;
  margin-left: 0.45rem;
  padding: 0.08rem 0.48rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  background: var(--warning-bg);
  color: var(--warning);
  border: 1px solid color-mix(in srgb, #f59e0b 55%, var(--border));
}
.schedule-row--lot-pending td {
  box-shadow: inset 0 0 0 9999px rgba(251, 191, 36, 0.12);
}
.schedule-row--lot-to-wip td:first-child,
.schedule-row--lot-from-wip td:first-child {
  border-left: 4px solid #f59e0b;
}
.schedule-empty {
  padding: 0.52rem 0.72rem;
  margin: 0;
}
.schedule-row--p0 {
  background: color-mix(in srgb, #9333ea 14%, transparent);
}
.schedule-row--p1 {
  background: var(--surface);
}
.schedule-row--p2 {
  background: rgba(251, 146, 60, 0.14);
}
.schedule-row--p3 {
  background: rgba(234, 179, 8, 0.14);
}

/* Production calendar */
.prod-cal__title {
  margin-bottom: 0.75rem;
}
.prod-cal__toolbar-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem 1.25rem;
  margin-bottom: 0.75rem;
}
.prod-cal__search {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.prod-cal__input,
.prod-cal__select,
.prod-cal__textarea {
  font: inherit;
  padding: 0.25rem 0.5rem;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
}
/* Production calendar: give the month grid more horizontal room */
body:has(.prod-cal) .main-content {
  width: min(2200px, calc(100vw - 1rem));
  max-width: none;
}
.prod-cal__body {
  display: grid;
  grid-template-columns: minmax(170px, 220px) minmax(0, 1fr) minmax(170px, 240px);
  gap: 0.85rem;
  align-items: start;
}
@media (max-width: 1100px) {
  .prod-cal__body {
    grid-template-columns: 1fr;
  }
}
.prod-cal__aside--right .prod-cal__pool {
  margin-bottom: 0.75rem;
}
.prod-cal__legend-title,
.prod-cal__pool-title {
  font-size: 0.95rem;
  margin: 0 0 0.5rem;
}
.prod-cal__legend-list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.8rem;
}
.prod-cal__legend-list li {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0.25rem;
}
.prod-cal__swatch {
  width: 14px;
  height: 14px;
  border-radius: 3px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  flex-shrink: 0;
}
.prod-cal__legend-note {
  font-size: 0.72rem;
  margin: 0.5rem 0 0;
}
.prod-cal__pool-scroll,
.prod-cal__pool-sub-inner {
  max-height: 42vh;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
/* Right "Other work orders" groups: one scroll for the whole column, not nested per group */
.prod-cal__aside--right .prod-cal__pool-sub-inner {
  max-height: none;
  overflow: visible;
}
.prod-cal__pool-subtitle {
  font-size: 0.82rem;
  margin: 0.35rem 0 0.25rem;
}
.cal-pool-item {
  padding: 0.35rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface-muted);
  cursor: grab;
  font-size: 0.78rem;
  line-height: 1.25;
}
.cal-pool-item__title {
  font-weight: 600;
}
.cal-pool-item__meta {
  font-size: 0.72rem;
}
.prod-cal__calendar-wrap {
  padding: 0.5rem;
  min-height: 520px;
  min-width: 0;
}
.prod-cal__calendar-wrap .fc {
  font-size: 0.82rem;
}
.prod-cal-wk-totals-wrap {
  margin-top: 0.25rem;
  padding: 0 2px 4px;
}
.prod-cal-wk-totals {
  background: #0f0f0f;
  color: #fafafa;
  font-size: 0.72rem;
  line-height: 1.45;
  padding: 0.4rem 0.45rem;
  border-radius: 4px;
}
.prod-cal-wk-totals strong {
  font-weight: 600;
  margin-right: 0.25rem;
}
.prod-cal-wk-totals--loading {
  background: transparent;
  color: #64748b;
  padding: 0.2rem 0;
}
.prod-cal__calendar-wrap .fc-event-title {
  white-space: pre-line;
}
/* Trucking: dense day cells (WO lines), match legacy calendar density */
.prod-cal__calendar-wrap .fc-event.trucking-cal-event {
  font-size: 0.68rem;
  line-height: 1.12;
  margin-top: 1px;
  margin-bottom: 0;
}
.prod-cal__calendar-wrap .fc-daygrid-block-event.trucking-cal-event .fc-event-main {
  padding: 1px 3px 2px;
}
.prod-cal__calendar-wrap .fc-daygrid-block-event.trucking-cal-event .fc-event-title {
  font-weight: 600;
  line-height: 1.12;
}
.prod-cal-day-add {
  display: inline-block;
  margin-left: 0.35rem;
  font-size: 0.72rem;
  line-height: 1;
  vertical-align: middle;
}
.prod-cal-day-add-link {
  color: #2563eb;
  text-decoration: none;
  font-weight: 500;
}
.prod-cal-day-add-link:hover {
  text-decoration: underline;
}
.prod-cal-modal__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.prod-cal-modal__close {
  border: none;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: #64748b;
}
.prod-cal-dl {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 0.35rem 0.75rem;
  margin: 0;
  font-size: 0.88rem;
}
.prod-cal-dl dt {
  margin: 0;
  color: #64748b;
  font-weight: 600;
}
.prod-cal-dl dd {
  margin: 0;
}
.prod-cal-modal__foot {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
  justify-content: flex-end;
}
.prod-cal__hint-bar {
  margin-top: 0.75rem;
}
.marketing-cal .fc-daygrid-event {
  margin: 1px 0 0;
}
.marketing-cal .fc-daygrid-event .fc-event-main {
  padding: 1px 4px 2px;
}
.marketing-cal .fc-daygrid-event .fc-event-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.15;
  font-size: 0.72rem;
  font-weight: 600;
}
.marketing-cal__body {
  display: grid;
  grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
  gap: 0.85rem;
  align-items: start;
}
.marketing-cal__left {
  display: grid;
  gap: 0.75rem;
}
.marketing-cal__tasks {
  max-height: 12rem;
}
.marketing-cal__task-item {
  display: block;
  width: 100%;
  padding: 0.25rem 0.2rem;
  border-bottom: 1px solid #e5e7eb;
  font-size: 0.8rem;
  line-height: 1.25;
  color: var(--text, #1f2937);
  text-align: left;
  background: transparent;
  border-top: none;
  border-left: none;
  border-right: none;
  cursor: pointer;
  font: inherit;
}
.marketing-cal__task-item:last-child {
  border-bottom: none;
}
.marketing-cal__task-item:hover {
  background: #f8fafc;
}
.marketing-cal__empty {
  margin: 0;
  font-size: 0.82rem;
}
.marketing-cal-modal {
  max-width: min(94vw, 1020px);
  width: 100%;
  padding: 0;
}
.marketing-cal-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.55rem 0.85rem;
  border-bottom: 1px solid var(--border, #e5e7eb);
  background: #f8fafc;
}
.marketing-cal-modal__close {
  border: none;
  background: transparent;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  color: #64748b;
}
.marketing-cal-modal__body {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(250px, 0.65fr);
  gap: 0.8rem;
  padding: 0.8rem 0.85rem;
}
.marketing-cal-modal__main {
  min-width: 0;
}
.marketing-cal-modal__line {
  margin: 0 0 0.35rem;
  font-size: 0.92rem;
}
.marketing-cal-modal__textarea {
  width: 100%;
  box-sizing: border-box;
  font: inherit;
}
.marketing-cal-modal__notes {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 0.65rem;
  background: #fafafa;
}
.marketing-cal-modal__notes-head {
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.45rem;
  font-size: 0.9rem;
  color: #374151;
}
.marketing-cal-modal__notes-list {
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #fff;
  min-height: 10rem;
  max-height: 16rem;
  overflow: auto;
  padding: 0.5rem;
  margin-bottom: 0.55rem;
}
.marketing-cal-modal__note-item {
  margin-bottom: 0.45rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.86rem;
  line-height: 1.35;
}
.marketing-cal-modal__note-item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.marketing-cal-modal__note-meta {
  font-size: 0.74rem;
  color: var(--muted, #6b7280);
  margin-bottom: 0.15rem;
}
.marketing-cal-modal__note-input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 0.45rem 0.55rem;
  background: #fff;
}
#mcal-note-save {
  margin-top: 0.2rem;
}
.marketing-cal-modal__foot {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  border-top: 1px solid var(--border, #e5e7eb);
  padding: 0.6rem 0.85rem;
  background: #f8fafc;
}
.marketing-cal-modal__follow {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 600;
}
.marketing-cal-modal__actions {
  margin-left: auto;
  display: inline-flex;
  gap: 0.45rem;
}
.marketing-cal__search-wrap {
  position: relative;
  min-width: 20rem;
}
.marketing-cal__search-wrap .awms-suggest-list {
  left: 0;
  right: auto;
  min-width: 100%;
}
@media (max-width: 1100px) {
  .marketing-cal__body {
    grid-template-columns: 1fr;
  }
  .marketing-cal-modal__body {
    grid-template-columns: 1fr;
  }
}
.truck-cal-modal.truck-cal-modal .truck-cal-modal__body {
  max-height: min(70vh, 32rem);
  overflow: auto;
}
.truck-cal-modal--schedule.truck-cal-modal--schedule {
  max-width: 33rem;
  width: 100%;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--border, #cbd5e1);
  border-radius: 0.35rem;
  box-shadow: 0 12px 40px rgba(15, 23, 42, 0.18);
}
.truck-cal-vehicle-fields {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-top: 0.25rem;
}
.truck-cal-vehicle-fields .field-label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  width: 100%;
  margin: 0;
  font-size: 0.85rem;
  font-weight: 500;
  color: #374151;
}
.truck-cal-vehicle-fields .prod-cal__input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.truck-cal-vehicle-fields .truck-cal-driver-hint {
  margin: 0;
}
.truck-cal-modal--schedule .truck-cal-modal__head {
  margin: 0;
  padding: 0.65rem 1rem;
  background: #1e293b;
  color: #f8fafc;
  border-radius: 0.35rem 0.35rem 0 0;
}
.truck-cal-modal--schedule .truck-cal-modal__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: inherit;
}
.truck-cal-modal--schedule .truck-cal-modal__close {
  color: #94a3b8;
}
.truck-cal-modal--schedule .truck-cal-modal__close:hover {
  color: #f1f5f9;
}
.truck-cal-modal--schedule .truck-cal-modal__body {
  padding: 1rem 1rem 0.5rem;
  max-height: min(72vh, 36rem);
}
.truck-cal-modal--schedule .truck-cal-modal__foot {
  margin: 0;
  padding: 0.75rem 1rem;
  background: #f8fafc;
  border-top: 1px solid var(--border, #e5e7eb);
}
.truck-cal-modal__btn-update {
  background: #fff;
  color: #0f172a;
  border: 1px solid #334155;
  font-weight: 600;
}
.truck-cal-modal__btn-update:hover {
  background: #f1f5f9;
}
.truck-cal-wo-pick-label {
  display: block;
}
.truck-cal-wo-pick {
  position: relative;
  display: block;
  margin-top: 0.25rem;
}
.truck-cal-wo-pick__input {
  width: 100%;
  max-width: none;
}
.truck-cal-suggest {
  list-style: none;
  margin: 0;
  padding: 0;
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  z-index: 50;
  max-height: 14rem;
  overflow: auto;
  background: var(--white, #fff);
  border: 1px solid var(--border, #cbd5e1);
  border-radius: 0.25rem;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}
.truck-cal-suggest__item {
  padding: 0.45rem 0.65rem;
  font-size: 0.84rem;
  cursor: pointer;
  border-bottom: 1px solid #f1f5f9;
}
.truck-cal-suggest__item:hover,
.truck-cal-suggest__item:focus {
  background: #eff6ff;
}
.truck-cal-add-wo-row {
  margin: 0.35rem 0 0.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
}
.truck-cal-add-wo-hint {
  font-size: 0.8rem;
  margin: 0;
}
.truck-cal-checklist {
  margin: 0 0 0.5rem;
  padding: 0 0 0 1.1rem;
  list-style: disc;
}
.truck-cal-checklist li {
  margin: 0.15rem 0;
}
.truck-cal-pilot-q {
  display: inline-block;
  margin-right: 0.5rem;
  font-weight: 600;
}
.truck-cal-wo-cards__th-q {
  font-weight: 600;
}
.truck-cal-wo-cards__th-w {
  font-weight: 600;
  font-size: 0.78rem;
  margin-top: 0.2rem;
  color: #334155;
}
.truck-cal-wo-cards__link {
  color: #1d4ed8;
  text-decoration: underline;
  font-weight: 600;
}
.truck-cal-wo-cards__link:hover {
  color: #1e40af;
}
.truck-cal-modal__confirm-row {
  margin-top: 0.75rem;
}
.truck-cal-checklist-label {
  margin: 0.75rem 0 0.25rem;
  font-weight: 600;
}
.truck-cal-wo-list {
  list-style: none;
  margin: 0.35rem 0 0;
  padding: 0;
}
.truck-cal-wo-list__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.2rem 0;
  border-bottom: 1px solid var(--border, #e5e7eb);
}
.truck-cal-check {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-right: 0.75rem;
  white-space: nowrap;
}
.truck-cal-pilot-row {
  margin: 0.5rem 0 0.75rem;
}
.truck-cal-driver-hint {
  margin: -0.35rem 0 0.75rem;
  font-size: 0.85rem;
}
.truck-cal-add-wo {
  margin-left: 0.5rem;
}
.truck-cal-wo-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.35rem;
}
.truck-cal-wo-inline__input {
  max-width: 8rem;
}
.truck-cal-ns-panel {
  padding: 0.75rem 1rem;
  margin-bottom: 0.75rem;
}
.prod-cal__legend-section {
  margin-top: 0.65rem;
  list-style: none;
}
.truck-cal-panel--atypical {
  margin-bottom: 0.5rem;
}
.truck-cal-panel--atypical .field-label {
  margin-top: 0.65rem;
}
.truck-cal-wo-cards-wrap {
  margin: 0 0 1rem;
  overflow-x: auto;
}
.truck-cal-wo-cards {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  min-width: 320px;
}
.truck-cal-wo-cards th,
.truck-cal-wo-cards td {
  border: 1px solid var(--border, #e5e7eb);
  padding: 0.35rem 0.5rem;
  vertical-align: top;
  text-align: left;
}
.truck-cal-wo-cards__corner,
.truck-cal-wo-cards__qn {
  background: #e5e7eb;
  font-weight: 600;
  white-space: nowrap;
}
.truck-cal-wo-cards__subhead td {
  background: #e5e7eb;
  font-weight: 600;
  font-size: 0.78rem;
}
.truck-cal-wo-cards__label {
  background: #f8fafc;
  font-weight: 600;
  color: #475569;
  white-space: nowrap;
  width: 7.5rem;
}
.truck-cal-modal__dates-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.truck-cal-modal__dates-row--delivery {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
}
.truck-cal-modal__dates-row--delivery .truck-cal-use-event-end {
  white-space: nowrap;
  margin-bottom: 0.15rem;
}
@media (max-width: 520px) {
  .truck-cal-modal__dates-row {
    grid-template-columns: 1fr;
  }
  .truck-cal-modal__dates-row--delivery .truck-cal-use-event-end {
    justify-self: start;
  }
}
.truck-cal-event-end-hint {
  margin-top: -0.25rem;
  margin-bottom: 0;
  font-size: 0.82rem;
}
.truck-cal-modal__more {
  margin: 0.75rem 0;
  font-size: 0.9rem;
}
.truck-cal-modal__more summary {
  cursor: pointer;
  font-weight: 600;
  color: #2563eb;
}
.truck-cal-modal__more .field-label {
  margin-top: 0.65rem;
}
.admin-cal-settings,
.admin-cal-types {
  margin-bottom: 1.5rem;
}
.admin-form--trucking-settings > .field-label {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  width: 100%;
}
.admin-cal-color-field {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  vertical-align: middle;
}
.admin-cal-color-picker {
  width: 2.5rem;
  height: 2.25rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 0.35rem;
  cursor: pointer;
  background: var(--white);
  flex-shrink: 0;
}
.admin-cal-color-picker::-webkit-color-swatch-wrapper {
  padding: 2px;
}
.admin-cal-color-picker::-webkit-color-swatch {
  border: none;
  border-radius: 0.2rem;
}
.admin-cal-color-picker::-moz-color-swatch {
  border: none;
  border-radius: 0.2rem;
}
.admin-cal-color-input {
  width: 8rem;
  font: inherit;
}
.admin-cal-type-wrap {
  margin-bottom: 0.65rem;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid #e2e8f0;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.5rem 1rem;
}
.admin-cal-type-wrap .admin-cal-type-row {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
  flex: 1 1 auto;
  min-width: 0;
}
.admin-cal-type-delete {
  margin: 0;
  padding: 0;
  flex: 0 0 auto;
  align-self: center;
}
.admin-cal-type-in-use {
  flex-basis: 100%;
  margin-top: 0.35rem;
}
.admin-cal-type-row__main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.admin-cal-type-code {
  min-width: 6rem;
}
.admin-cal-text {
  min-width: 8rem;
  font: inherit;
}
.admin-cal-num {
  width: 4rem;
  font: inherit;
}
.admin-cal-swatch {
  display: inline-block;
  width: 18px;
  height: 18px;
  border-radius: 3px;
  border: 1px solid #cbd5e1;
  vertical-align: middle;
}
.admin-form--row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: flex-end;
}

/* ——— Quote view (quotation layout) ——— */
.quote-view {
  max-width: 940px;
  margin: 0 auto;
}
.quote-view__page-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 0.35rem 1rem;
  margin-bottom: 0;
}
.quote-view__header-brand {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 0.5rem 0.75rem;
  flex: 1 1 auto;
  min-width: 0;
}
.quote-view__brand {
  flex: 0 0 auto;
  line-height: 0;
}
.quote-view__logo {
  display: block;
  width: auto;
  height: auto;
  max-width: 140px;
  max-height: 46px;
  object-fit: contain;
}
.quote-view__company {
  flex: 0 1 auto;
  min-width: 0;
  font-size: 0.78rem;
  line-height: 1.22;
  color: var(--text);
}
.quote-view__company-name {
  font-weight: 700;
  font-size: 0.88rem;
  margin: 0 0 0.08rem;
  color: var(--text);
}
.quote-view__company-address {
  margin: 0;
  font-style: normal;
  color: var(--muted);
}
@media screen and (max-width: 520px) {
  .quote-view__header-brand {
    flex-wrap: wrap;
  }
}
.quote-view__meta-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  text-align: right;
  flex: 1 1 240px;
  min-width: 0;
}
.quote-view__meta-actions > .quote-view__toolbar {
  margin-top: 0.2rem;
}
.quote-view__meta {
  font-size: 0.82rem;
  color: var(--text);
  line-height: 1.35;
}
.quote-view__meta--stacked {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.2rem;
  font-size: 1.02rem;
  line-height: 1.25;
}
.quote-view__meta--stacked .quote-view__meta-line {
  text-align: right;
}
.quote-view__meta--stacked .quote-view__meta-value {
  font-size: 1.2rem;
  font-weight: 700;
}
.quote-view__meta--stacked .quote-view__meta-line--secondary {
  font-size: 0.88rem;
  color: var(--muted);
}
.quote-view__meta-sep {
  margin: 0 0.25rem;
  color: var(--muted);
}
.quote-view__toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.35rem;
  align-items: center;
}
.quote-view__toolbar-form {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.35rem;
  margin: 0;
}
.quote-view__toolbar-field {
  display: inline-flex;
  flex-direction: column;
  gap: 0.15rem;
  font-size: 0.72rem;
  color: var(--muted);
}
.quote-view__toolbar-field input {
  width: 5.2rem;
  font: inherit;
  font-size: 0.82rem;
  padding: 0.2rem 0.3rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
  color: var(--text);
}
.btn--disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}
.btn--sm {
  font-size: 0.76rem;
  padding: 0.28rem 0.5rem;
}
.quote-view__title-bar {
  width: 100%;
  margin: 0.05rem 0 0.12rem;
  padding: 0 0 0.08rem;
  box-sizing: border-box;
  border-bottom: 2px solid var(--accent);
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
}
.quote-view__title {
  margin: 0;
  padding: 0 0 0 66.666%;
  font-size: 1.55rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-align: left;
  color: var(--text);
  display: block;
  line-height: 1.05;
  box-sizing: border-box;
  border: none;
  width: 100%;
}
.quote-view-customer-box {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 0;
  padding: 0.28rem 0.42rem;
  margin-bottom: 0;
  box-shadow: none;
}
.quote-view-customer-box__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.2rem 0.55rem;
  box-sizing: border-box;
  align-items: start;
  padding-bottom: 0.22rem;
}
@media screen and (max-width: 900px) {
  .quote-view-customer-box__grid {
    grid-template-columns: 1fr;
  }
}
.quote-view-box-label {
  margin: 0;
  padding: 0;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.15;
  text-transform: none;
  letter-spacing: normal;
  color: var(--text);
}
h3.quote-view-box-label {
  margin-block: 0;
  margin-bottom: 0.02rem;
}
.quote-view-box-label--ghost {
  visibility: hidden;
  margin: 0;
  padding: 0;
  line-height: 1.15;
  min-height: 1.15em;
  pointer-events: none;
}
.quote-view-box-text {
  margin: 0;
  padding: 0;
  font-size: 0.78rem;
  line-height: 1.22;
  color: var(--text);
  white-space: normal;
}
.quote-view-fob-form {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  align-items: stretch;
}
.quote-view-fob-field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin: 0;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--muted);
}
.quote-view-fob-field__l {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--muted);
}
.quote-view-fob-input,
.quote-view-fob-textarea {
  padding: 0.28rem 0.4rem;
  border-radius: 0;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  width: 100%;
  box-sizing: border-box;
}
.quote-view-fob-textarea {
  resize: vertical;
  min-height: 2.6rem;
}
.quote-view-fob-input:focus,
.quote-view-fob-textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.3);
}
.quote-view-fob-readonly {
  margin: 0 0 0.12rem;
  font-size: 0.78rem;
  line-height: 1.22;
}
.quote-view-fob--readonly .quote-view-fob-readonly:last-child {
  margin-bottom: 0;
}
.quote-view-customer-box__footer {
  margin: 0;
  padding: 0.2rem 0 0;
  border-top: 1px solid var(--border);
  font-size: 0.76rem;
  color: var(--muted);
  line-height: 1.25;
  box-sizing: border-box;
}
.quote-view-table-wrap {
  margin-bottom: 0;
  border: 1px solid var(--border);
  border-radius: 0;
  box-shadow: none;
}
.quote-view-line-table {
  font-size: 0.82rem;
  border: 1px solid var(--border);
}
.quote-view-line-table th {
  background: var(--cream-light);
  color: var(--text);
  font-weight: 700;
  font-size: 0.76rem;
  text-transform: none;
  letter-spacing: normal;
}
.quote-view-line-table td,
.quote-view-line-table th {
  padding: 0.28rem 0.4rem !important;
  border-color: var(--border);
  border-left: 0 !important;
  border-right: 1px solid var(--border) !important;
}
.quote-view-line-table td:last-child,
.quote-view-line-table th:last-child {
  border-right: 0 !important;
}
.quote-view-line-table th {
  border-top: 0 !important;
  border-bottom: 1px solid var(--border) !important;
}
.quote-view-line-table tbody td {
  border-top: 0 !important;
  border-bottom: 0 !important;
}
.quote-view-line-table > tbody.quote-view-totals-body > tr:first-child > td {
  border-top: 1px solid var(--border) !important;
}
.quote-view-line-table tbody tr:hover td {
  background: transparent;
}
.quote-view-line-table .quote-view-col-qty {
  width: 5.2rem;
}
.quote-view-line-table .quote-view-col-price,
.quote-view-line-table .quote-view-col-total {
  width: 7rem;
}
/* Override global .num { text-align: right } for quote line table columns */
.quote-view-line-table > thead > tr > th:nth-child(1),
.quote-view-line-table > tbody > tr > td:nth-child(1) {
  text-align: center;
}
.quote-view-line-table > thead > tr > th:nth-child(3),
.quote-view-line-table > tbody > tr > td:nth-child(3),
.quote-view-line-table > thead > tr > th:nth-child(4),
.quote-view-line-table > tbody > tr > td:nth-child(4) {
  text-align: right;
}
.quote-view-line-total {
  background: color-mix(in srgb, #0ea5e9 18%, var(--surface-muted)) !important;
}
.quote-view-line-row--blank td {
  height: 1.05rem;
}
.quote-view-desc {
  white-space: pre-wrap;
  vertical-align: top;
}
.quote-view-line-table tbody td.num {
  vertical-align: top;
}
.quote-view-desc-secondary {
  margin-top: 0.2rem;
  font-size: 0.78rem;
  font-style: italic;
  color: var(--muted);
  line-height: 1.3;
  white-space: pre-wrap;
}
.quote-view-totals-body .quote-view-total-row td {
  font-size: 0.8rem;
}
.quote-view-total-label {
  font-weight: 500;
  color: var(--muted);
}
.quote-view-total-row--grand td {
  font-size: 0.86rem;
}
.quote-view-notes {
  margin: 0.4rem 0 0.25rem;
}
.quote-view-notes__title {
  margin: 0 0 0.2rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text);
}
.quote-view-notes__box {
  padding: 0.35rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--surface-muted);
  color: var(--text);
  font-size: 0.8rem;
  line-height: 1.35;
  white-space: pre-wrap;
}
.quote-view--print .quote-view-notes__box {
  min-height: 1.45in;
  font-size: 0.9rem;
  line-height: 1.3;
}
.quote-view-validity {
  text-align: center;
  margin: 0.35rem 0 0.1rem;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text);
}
.quote-view-thanks {
  text-align: center;
  margin: 0 0 0.5rem;
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--text);
}
.quote-view--print .quote-view-totals-body td,
.quote-view--print .quote-view-totals-body .quote-view-total-label {
  font-weight: 400;
}
.quote-view--print .quote-view-total-row--grand td {
  border-top: 2px solid #93a1b3 !important;
  font-size: 1.05rem;
  font-weight: 700;
}
.quote-view__footer-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  margin-top: 1rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--border);
}

.quote-view-wo-below {
  margin-top: 1rem;
}
.quote-view-wo-below__table {
  margin-top: 0.35rem;
  max-width: 36rem;
}
.quote-view-wo-below__actions {
  white-space: normal;
}
.quote-view-wo-below__sep {
  color: var(--muted);
  margin: 0 0.15rem;
}

.workorder-edit-page__title {
  margin: 0 0 0.65rem;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: 0.02em;
}
.workorder-edit-page .workorder-edit__toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.75rem;
}

.wo-quote-compact {
  margin-bottom: 0.75rem;
}
.wo-quote-compact__head {
  margin-bottom: 0.5rem;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid var(--border);
}
.wo-quote-compact__primary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.75rem;
  font-size: 1.05rem;
}
.wo-quote-compact__label {
  font-weight: 700;
  color: var(--text);
}
.wo-quote-compact__value {
  font-weight: 700;
  letter-spacing: 0.02em;
}
.wo-quote-compact__customer {
  font-size: 0.92rem;
  margin-top: 0.2rem;
  color: var(--text);
}
.wo-quote-compact__lastuser {
  font-size: 0.82rem;
  margin-top: 0.35rem;
}
.wo-quote-compact__table-wrap {
  margin-top: 0.35rem;
  margin-bottom: 0.35rem;
}
.wo-quote-compact__table {
  font-size: 0.88rem;
}
.wo-quote-compact__table th,
.wo-quote-compact__table td {
  padding: 0.28rem 0.4rem;
}
.wo-quote-compact .quote-view-notes__title {
  font-size: 0.85rem;
  margin: 0.4rem 0 0.2rem;
}
.wo-quote-compact__notes.quote-view-notes {
  margin-top: 0.5rem;
}
.wo-quote-compact .quote-view-notes__box {
  padding: 0.3rem 0.4rem;
  font-size: 0.85rem;
}

.workorder-edit-card {
  margin-top: 1.25rem;
}
.workorder-edit__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem 1rem;
  margin-bottom: 0.75rem;
}
@media screen and (max-width: 900px) {
  .workorder-edit__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 520px) {
  .workorder-edit__grid {
    grid-template-columns: 1fr;
  }
}
.workorder-edit__field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin: 0;
  min-width: 0;
}
.workorder-edit__field--notes {
  grid-column: 1 / -1;
  margin-bottom: 0.35rem;
}
.workorder-edit__field--wo-readonly {
  grid-column: auto;
}
.workorder-edit__wo-readonly-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}
.workorder-edit__wo-num {
  font-size: 1.05rem;
  letter-spacing: 0.02em;
}
.workorder-edit__input--wo-num {
  max-width: 11rem;
}
.workorder-edit__field--lot-board {
  grid-column: span 2;
}
.workorder-edit__lot-board-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.65rem;
}
.workorder-edit__lot-board-display {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.92rem;
  line-height: 1.35;
}
.workorder-edit__lot-boards-btn {
  flex: 0 0 auto;
}
.workorder-edit__field--dates-run {
  grid-column: 1 / -1;
}
.workorder-edit__dates-run-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 1rem;
}
.workorder-edit__field--inline {
  flex: 0 1 10.5rem;
  min-width: 7.5rem;
  margin: 0;
}
.workorder-edit__field--legacy-lot {
  flex: 1 1 14rem;
  min-width: 10rem;
  max-width: 26rem;
}
.workorder-edit-readonly-lot__btn {
  display: block;
  margin-top: 0.45rem;
}
.workorder-edit-readonly-dl {
  display: grid;
  grid-template-columns: minmax(5rem, auto) 1fr;
  gap: 0.4rem 1rem;
  margin: 0 0 1rem;
  font-size: 0.9rem;
}
.workorder-edit-readonly-dl dt {
  margin: 0;
  font-weight: 600;
  color: var(--muted);
}
.workorder-edit-readonly-dl dd {
  margin: 0;
}
.workorder-edit-card--readonly {
  margin-top: 1.25rem;
}
.workorder-edit__label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--muted);
}
.workorder-edit__input,
.workorder-edit__textarea {
  font: inherit;
  font-size: 0.88rem;
  padding: 0.35rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--surface);
  color: var(--text);
  width: 100%;
  box-sizing: border-box;
}
.workorder-edit__textarea {
  resize: vertical;
  min-height: 7rem;
  border-color: #4ade80;
  box-shadow: 0 0 0 1px rgba(74, 222, 128, 0.28);
}
.workorder-edit__actions {
  margin: 0.25rem 0 0;
}
.workorder-edit__readonly-note {
  margin-top: 1rem;
}
.workorder-edit__label-tag {
  display: inline-block;
  margin-left: 0.25rem;
  padding: 0.06rem 0.28rem;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  border: 1px solid var(--border);
  border-radius: 0.2rem;
  vertical-align: middle;
}
.workorder-edit__field-hint {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.78rem;
  line-height: 1.35;
}

@media screen {
  .quote-print-body,
  .workorder-print-body {
    background: var(--bg);
    color: var(--text);
    padding: 0.3rem;
  }
}
.quote-print-shell {
  max-width: 900px;
  margin: 0 auto;
}
.quote-view--print .quote-view__page-header--print {
  margin-bottom: 0;
}
.workorder-print-shell {
  width: 100%;
  max-width: min(52rem, 100%);
  margin: 0 auto;
  padding: 0 0.35rem 0.75rem;
  box-sizing: border-box;
}
.workorder-print-toolbar {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.workorder-print-card {
  font-family: inherit;
  line-height: 1.35;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  box-shadow: var(--shadow);
  border-top: 3px solid var(--accent);
  padding: 0.55rem 0.65rem 0.6rem;
  max-width: 100%;
  box-sizing: border-box;
}
.workorder-print-card__top {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 0.8rem;
}
.workorder-print-card__id {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.45rem;
}
.workorder-print-card__id p {
  margin: 0;
  border-bottom: 2px solid var(--border);
  text-align: center;
}
.workorder-print-card__id p span {
  display: inline-block;
  margin-top: 0.1rem;
  font-size: 1.3rem;
}
.workorder-print-card__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.2rem 0.9rem;
}
.workorder-print-card__bin-meta {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
  margin-top: 0.25rem;
}
.workorder-print-card__sections {
  margin-top: 0.45rem;
}
.workorder-print-card__sections h3,
.workorder-print-card__notes h3 {
  font-family: inherit;
}
.workorder-print-options {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
  table-layout: fixed;
}
.workorder-print-options td {
  padding: 0.15rem 0.2rem 0.15rem 0;
  vertical-align: middle;
  border-bottom: 1px solid var(--border);
}
.workorder-print-options tr:last-child td {
  border-bottom: none;
}
.workorder-print-options__name {
  width: 62%;
  line-height: 1.28;
  color: var(--text);
  padding-right: 0.45rem;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}
.workorder-print-options__mark {
  width: 2.35rem;
  text-align: center;
  border: 1px solid var(--border);
  border-radius: 3px;
  font-weight: 700;
  font-size: 0.78rem;
  background: var(--surface-muted);
  color: var(--text);
}
.workorder-print-options__line {
  width: 28%;
  border-bottom: 2px solid var(--border);
}
.workorder-print-card__notes {
  margin-top: 0.45rem;
}
.workorder-print-card__notes-box {
  min-height: 1.65rem;
  border: 1px solid var(--border);
  border-radius: 0.35rem;
  padding: 0.3rem 0.4rem;
  background: var(--surface-muted);
  color: var(--text);
  line-height: 1.35;
  font-size: 0.8125rem;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.workorder-print-brand-row {
  margin-bottom: 0.3rem;
}
.workorder-print-brand-logo {
  display: block;
  width: 140px;
  max-width: 100%;
  height: auto;
}
.workorder-print-flash {
  margin: 0.25rem 0 0.5rem;
}
.workorder-print-layout-hint kbd {
  font: inherit;
  font-size: 0.85em;
  padding: 0.05rem 0.28rem;
  border: 1px solid var(--border);
  border-radius: 0.2rem;
  background: var(--surface-muted);
}
.workorder-print-hero {
  display: grid;
  /* Wider first column = serial sticker area (landscape-ish, not a tall skinny column) */
  grid-template-columns: minmax(9.25rem, 11.25rem) minmax(0, 1fr);
  gap: 0.45rem 0.65rem;
  align-items: start;
  margin-bottom: 0.35rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--border);
  max-width: 100%;
}
.workorder-print-big-num {
  border: 2px dashed var(--border);
  border-radius: 0.35rem;
  padding: 0.32rem 0.4rem 0.4rem;
  min-height: 4.6rem;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  font-size: inherit;
  font-weight: 400;
  letter-spacing: normal;
  line-height: 1.2;
  color: var(--text);
  background: var(--surface-muted);
  max-width: 100%;
}
.workorder-print-big-num--value {
  justify-content: center;
}
.workorder-print-big-num__label {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
  line-height: 1.25;
}
.workorder-print-big-num__label--value {
  font-size: 1.9rem;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: 0.01em;
  text-transform: none;
}
.workorder-print-hero__main {
  min-width: 0;
}
.workorder-print-card__id--hero {
  margin-bottom: 0.2rem;
}
.workorder-print-card__id--hero p {
  text-align: left;
  border-bottom: none;
  padding: 0.08rem 0;
  border-radius: 0;
}
.workorder-print-card__id--hero p strong {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}
.workorder-print-card__id--hero p span {
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--text);
  margin-top: 0.06rem;
}
.workorder-print-card__meta--hero {
  margin-top: 0;
  font-size: 0.78rem;
  line-height: 1.32;
}
.workorder-print-card__meta--hero strong {
  font-weight: 600;
  color: var(--text);
}
.workorder-print-card__meta-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.35rem;
}
.workorder-print-meta-pen-inline {
  grid-column: auto;
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 0.2rem 0.35rem;
  min-width: 0;
  margin: 0.04rem 0;
}
.workorder-print-meta-pen-inline__lbl {
  flex: 0 0 auto;
  font-weight: 400;
  color: var(--text);
  white-space: nowrap;
  padding-bottom: 0.08rem;
}
.workorder-print-meta-pen-inline__line {
  flex: 0 0 auto;
  width: 5.75rem;
  max-width: 42vw;
  border-bottom: 1px solid var(--text);
  min-height: 0.62rem;
  margin-bottom: 0.1rem;
}
.workorder-print-model-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.35rem 0.5rem;
  padding: 0.32rem 0.4rem;
  margin: 0 0 0.3rem;
  border-radius: 0.35rem;
  background: var(--surface-muted);
  border: 1px solid var(--border);
  font-size: 0.78rem;
  line-height: 1.25;
}
.workorder-print-model-strip strong {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.workorder-print-checklist-lead {
  margin: 0.28rem 0 0.32rem;
  padding: 0.28rem 0.4rem;
  font-size: 0.75rem;
  line-height: 1.32;
  color: var(--muted);
  background: var(--surface-muted);
  border: 1px solid var(--border);
  border-radius: 0.35rem;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.workorder-print-section-title {
  margin: 0.42rem 0 0.12rem;
  padding-bottom: 0.15rem;
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--text);
  border-bottom: 2px solid var(--accent);
}
.workorder-print-card__sections .workorder-print-section-title:first-child {
  margin-top: 0.12rem;
}
.workorder-print-card__notes .workorder-print-section-title {
  margin-top: 0;
}
.workorder-print-subhead {
  margin: 0.28rem 0 0.1rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text);
}
.workorder-print__empty {
  margin: 0.08rem 0 0.2rem;
  font-size: 0.78rem;
}
.workorder-print__migrate {
  margin: 0.35rem 0;
  font-size: 0.88rem;
}
.workorder-print-fans {
  margin-top: 0.15rem;
}
.workorder-print-fan-form__actions {
  margin: 0.28rem 0 0;
}
.workorder-print-fan-sn__label {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted);
  max-width: 100%;
  flex-wrap: wrap;
}
.workorder-print-fan-sn__label span,
.workorder-print-fan-sn__tag {
  flex: 0 0 auto;
}
.workorder-print-fan-sn__input {
  flex: 1 1 auto;
  min-width: 12rem;
  width: 100%;
  max-width: none;
  padding: 0.2rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 0.25rem;
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-size: 0.82rem;
  box-sizing: border-box;
}
/* Fan rows: 3 columns only (no separate “signature line” cell) so SN field gets the remaining width */
.workorder-print-options--fans .workorder-print-options__name {
  width: 38%;
}
.workorder-print-options--fans .workorder-print-options__mark {
  width: 2.85rem;
}
.workorder-print-options--fans .workorder-print-fan-sn {
  width: auto;
  min-width: 15rem;
  vertical-align: middle;
  overflow-wrap: anywhere;
}
.workorder-print-options--fans .workorder-print-fan-sn__label {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  min-width: 0;
}
.workorder-print-options--fans .workorder-print-fan-sn__input {
  min-width: 12rem;
}
.workorder-print-signoff {
  margin-top: 0.4rem;
}
.workorder-print-signoff__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.75rem;
}
.workorder-print-signoff__table th,
.workorder-print-signoff__table td {
  border: 1px solid var(--border);
  padding: 0.18rem 0.32rem;
  text-align: left;
}
.workorder-print-signoff__table th {
  background: var(--surface-muted);
  font-weight: 700;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.workorder-print-signoff__table tbody td:last-child {
  min-width: 6.5rem;
  height: 1.2rem;
}

/* ——— Dark mode: FullCalendar + components that still hardcode light greys ——— */
:root[data-theme="dark"] .fc-theme-standard {
  --fc-page-bg-color: var(--surface);
  --fc-neutral-bg-color: var(--surface-muted);
  --fc-neutral-text-color: var(--muted);
  --fc-border-color: var(--border);
  --fc-button-bg-color: var(--surface-muted);
  --fc-button-border-color: var(--border);
  --fc-button-text-color: var(--text);
  --fc-button-hover-bg-color: var(--cream-light);
  --fc-button-hover-border-color: var(--accent);
  --fc-today-bg-color: rgba(212, 175, 55, 0.14);
  --fc-list-event-hover-bg-color: var(--surface-muted);
  --fc-highlight-color: rgba(212, 175, 55, 0.18);
}
:root[data-theme="dark"] .fc-scrollgrid,
:root[data-theme="dark"] .fc-scrollgrid-section-header > *,
:root[data-theme="dark"] .fc-scrollgrid-section-body > *,
:root[data-theme="dark"] .fc-col-header-cell,
:root[data-theme="dark"] .fc-daygrid-day-frame {
  border-color: var(--border);
}
:root[data-theme="dark"] .fc-col-header-cell-cushion,
:root[data-theme="dark"] .fc-daygrid-day-number {
  color: var(--muted);
}

:root[data-theme="dark"] .badge--quoted {
  background: rgba(59, 130, 246, 0.18);
  color: #93c5fd;
  border-color: rgba(59, 130, 246, 0.35);
}
:root[data-theme="dark"] .badge--ordered {
  border-color: rgba(74, 222, 128, 0.35);
}
:root[data-theme="dark"] .flash--error {
  border-color: rgba(248, 113, 113, 0.45);
  color: #fecaca;
}
:root[data-theme="dark"] .flash--ok {
  border-color: rgba(74, 222, 128, 0.35);
  color: var(--ok);
}
:root[data-theme="dark"] .flash--info {
  background: rgba(30, 58, 138, 0.35);
  border-color: rgba(96, 165, 250, 0.4);
  color: #bfdbfe;
}

:root[data-theme="dark"] .btn--danger {
  border-color: rgba(248, 113, 113, 0.45);
}
:root[data-theme="dark"] .btn--danger:hover {
  background: rgba(220, 38, 38, 0.28);
  color: #fecaca;
}

:root[data-theme="dark"] .prod-cal__input,
:root[data-theme="dark"] .prod-cal__select,
:root[data-theme="dark"] .prod-cal__textarea {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}
:root[data-theme="dark"] .cal-pool-item:not(.cal-pool-item--has-cal-color) {
  background: var(--surface-muted);
  border-color: var(--border);
}
:root[data-theme="dark"] .prod-cal-wk-totals--loading {
  color: var(--muted);
}
:root[data-theme="dark"] .prod-cal-day-add-link {
  color: var(--accent);
}
:root[data-theme="dark"] .prod-cal-modal__close {
  color: var(--muted);
}
:root[data-theme="dark"] .prod-cal-dl dt {
  color: var(--muted);
}
:root[data-theme="dark"] .truck-cal-modal--schedule.truck-cal-modal--schedule {
  border-color: var(--border);
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.5);
}
:root[data-theme="dark"] .truck-cal-modal--schedule .truck-cal-modal__foot {
  background: var(--surface-muted);
  border-top-color: var(--border);
}
:root[data-theme="dark"] .truck-cal-modal__btn-update {
  background: var(--surface);
  color: var(--text);
  border-color: var(--border);
}
:root[data-theme="dark"] .truck-cal-modal__btn-update:hover {
  background: rgba(212, 175, 55, 0.14);
}
:root[data-theme="dark"] .truck-cal-vehicle-fields .field-label {
  color: var(--text);
}
:root[data-theme="dark"] .truck-cal-suggest {
  background: var(--surface);
  border-color: var(--border);
}
:root[data-theme="dark"] .truck-cal-suggest__item {
  border-bottom-color: var(--border);
  color: var(--text);
}
:root[data-theme="dark"] .truck-cal-suggest__item:hover,
:root[data-theme="dark"] .truck-cal-suggest__item:focus {
  background: var(--surface-muted);
}
:root[data-theme="dark"] .truck-cal-wo-cards__th-w {
  color: var(--muted);
}
:root[data-theme="dark"] .truck-cal-wo-cards__corner,
:root[data-theme="dark"] .truck-cal-wo-cards__qn,
:root[data-theme="dark"] .truck-cal-wo-cards__subhead td {
  background: var(--surface-muted);
}
:root[data-theme="dark"] .truck-cal-wo-cards__label {
  background: rgba(255, 255, 255, 0.03);
  color: var(--muted);
}
:root[data-theme="dark"] .truck-cal-modal__more summary {
  color: var(--accent);
}

@media print {
  @page {
    /* Explicit inches: Firefox PDF maps this reliably (avoid ambiguous “letter” on some builds) */
    size: 8.5in 11in;
    margin: 0.2in;
  }
  /*
   * Print root: use class on <html> in workorders/print.php — Firefox print/PDF often mishandles :has().
   * Pt maps to paper; pair with inline print rules on that page for Save to PDF at 100% scale.
   */
  html.workorder-print-root {
    font-size: 11pt;
    line-height: normal;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    color-scheme: light !important;
    background: #fff !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  html.workorder-print-root body.workorder-print-body {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    color: #1a1a1a !important;
    box-sizing: border-box !important;
  }
  .quote-print-body,
  .workorder-print-body {
    background: #fff !important;
    color: #1a1a1a !important;
    padding: 0 !important;
  }
  .workorder-print-shell {
    padding: 0 !important;
    margin: 0 !important;
    /* Fill the @page content box; avoids a phantom “mini page” that triggers odd default scaling */
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }
  .workorder-print-card {
    background: #fff !important;
    border: 1px solid #ccc !important;
    border-top: 3px solid #b79a2e !important;
    box-shadow: none !important;
    color: #1a1a1a !important;
    padding: 0.28rem 0.38rem 0.32rem !important;
    line-height: 1.22 !important;
    border-radius: 0 !important;
  }
  .workorder-print-brand-row {
    margin-bottom: 0.15rem !important;
  }
  .workorder-print-brand-logo {
    width: 110px !important;
    max-width: 100% !important;
    height: auto !important;
  }
  .workorder-print-hero {
    margin-bottom: 0.18rem !important;
    padding-bottom: 0.2rem !important;
    gap: 0.28rem 0.42rem !important;
    grid-template-columns: 0.95in minmax(0, 1fr) !important;
  }
  .workorder-print-big-num {
    min-height: 16mm !important;
    padding: 0.22rem 0.28rem 0.28rem !important;
  }
  .workorder-print-big-num__label {
    font-size: 0.58rem !important;
  }
  .workorder-print-card__id--hero p span {
    font-size: 0.95rem !important;
  }
  .workorder-print-card__meta--hero {
    font-size: 0.72rem !important;
    line-height: 1.25 !important;
  }
  .workorder-print-meta-pen-inline__line {
    width: 5.25rem !important;
    max-width: 30% !important;
    border-bottom-color: #1a1a1a !important;
    min-height: 0.55rem !important;
  }
  html.workorder-print-root .workorder-print-hero {
    grid-template-columns: 0.95in minmax(0, 1fr) !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  html.workorder-print-root .workorder-print-big-num {
    max-width: 100% !important;
  }
  html.workorder-print-root .workorder-print-card,
  html.workorder-print-root .workorder-print-shell {
    max-width: 100% !important;
    min-width: 0 !important;
  }
  html.workorder-print-root table.workorder-print-options {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }
  html.workorder-print-root .workorder-print-options__name {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
  }
  html.workorder-print-root img {
    max-width: 100% !important;
    height: auto !important;
  }
  .workorder-print-model-strip {
    padding: 0.22rem 0.3rem !important;
    margin-bottom: 0.2rem !important;
    font-size: 0.72rem !important;
  }
  .workorder-print-checklist-lead {
    margin: 0.14rem 0 0.16rem !important;
    padding: 0.14rem 0.26rem !important;
    font-size: 0.68rem !important;
    line-height: 1.22 !important;
  }
  .workorder-print-card__sections {
    margin-top: 0.2rem !important;
  }
  .workorder-print-section-title {
    margin: 0.22rem 0 0.06rem !important;
    padding-bottom: 0.08rem !important;
    font-size: 0.72rem !important;
  }
  .workorder-print-options {
    font-size: 0.7rem !important;
  }
  .workorder-print-options td {
    padding: 0.05rem 0.08rem 0.05rem 0 !important;
  }
  .workorder-print-options__mark {
    width: 2.1rem !important;
    font-size: 0.72rem !important;
  }
  html.workorder-print-root .workorder-print-options--fans .workorder-print-options__name {
    width: 46% !important;
  }
  html.workorder-print-root .workorder-print-options--fans .workorder-print-fan-sn {
    min-width: 0 !important;
    width: auto !important;
  }
  html.workorder-print-root .workorder-print-fan-sn__input {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .workorder-print-subhead {
    margin: 0.18rem 0 0.06rem !important;
    font-size: 0.72rem !important;
  }
  .workorder-print-card__notes {
    margin-top: 0.28rem !important;
  }
  .workorder-print-card__notes-box {
    min-height: 1.05rem !important;
    padding: 0.16rem 0.26rem !important;
    font-size: 0.68rem !important;
  }
  .workorder-print-signoff {
    margin-top: 0.2rem !important;
  }
  .workorder-print-signoff__table {
    font-size: 0.68rem !important;
  }
  .workorder-print-signoff__table th,
  .workorder-print-signoff__table td {
    padding: 0.12rem 0.25rem !important;
  }
  .workorder-print-signoff__table tbody td:last-child {
    height: 0.85rem !important;
    min-height: 0.85rem !important;
  }
  .workorder-print-big-num,
  .workorder-print-model-strip,
  .workorder-print-checklist-lead {
    background: #f7f7f7 !important;
    color: #1a1a1a !important;
    border-color: #ccc !important;
  }
  .workorder-print-options__name,
  .workorder-print-options td {
    color: #1a1a1a !important;
    border-bottom-color: #ddd !important;
  }
  .workorder-print-options tr:last-child td {
    border-bottom: none !important;
  }
  .workorder-print-options__mark {
    border-color: #333 !important;
    background: #fff !important;
    color: #1a1a1a !important;
  }
  .workorder-print-section-title {
    color: #1a1a1a !important;
    border-bottom-color: #b79a2e !important;
  }
  .workorder-print-card__id--hero p strong,
  .workorder-print-model-strip strong,
  .workorder-print-signoff__table th {
    color: #4a4a4a !important;
  }
  .workorder-print-card__notes-box {
    border-color: #c7c7c7 !important;
    background: #fafafa !important;
    color: #1a1a1a !important;
  }
  .workorder-print-options__line {
    border-bottom-color: #333 !important;
  }
  .quote-print-hint {
    display: none !important;
  }
  .workorder-print-layout-hint {
    display: none !important;
  }
  .workorder-print-toolbar {
    display: none !important;
  }
  .workorder-print-flash {
    display: none !important;
  }
  .workorder-print-fan-form__actions {
    display: none !important;
  }
  .workorder-print-fan-sn__input {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
  }
  .quote-view__toolbar,
  .quote-view__footer-toolbar,
  .workorder-edit__toolbar,
  .site-header,
  .site-nav-backdrop,
  #nav-loading {
    display: none !important;
  }
  .quote-view {
    max-width: none;
  }
  .quote-view-customer-box__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .quote-view-line-total {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
}

/* ——— Transport lot boards ——— */
.tlb-page {
  max-width: 100%;
}
.tlb-lead {
  margin-top: 0.35rem;
  max-width: 52rem;
}
.tlb-stack {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1rem;
}
.tlb-pool-strip {
  padding: 0.75rem 1rem;
  min-width: 0;
}
.tlb-pool-filters-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.45rem 0.6rem;
  margin-bottom: 0.65rem;
}
.tlb-pool-filters-bar__title {
  flex: 0 0 auto;
  font-size: 0.78rem;
  font-weight: 600;
  padding-bottom: 0.32rem;
  margin-right: 0.15rem;
}
.tlb-pool-filter-cell {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 5.25rem;
}
.tlb-pool-filter-cell--grow {
  flex: 1 1 8rem;
  max-width: 15rem;
  min-width: 6.5rem;
}
.tlb-pool-filter-cell--check {
  min-width: 6.5rem;
}
.tlb-pool-filter-cell--actions {
  flex: 0 0 auto;
}
.tlb-pool-filter-cell__label {
  font-size: 0.72rem;
  font-weight: 600;
}
.tlb-pool-filter-input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  font: inherit;
  font-size: 0.85rem;
  padding: 0.32rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
  color: var(--text);
}
.tlb-pool-filter-select {
  min-width: 6rem;
  max-width: 10rem;
  font-size: 0.85rem;
}
.tlb-pool-filter-inv-check {
  margin: 0;
  white-space: nowrap;
  font-size: 0.82rem;
}
.tlb-pool-filters-bar .awms-suggest-wrap {
  position: relative;
  min-width: 0;
}
.tlb-pool-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.65rem;
}
.tlb-pool-filters__field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 7.5rem;
}
.tlb-pool-filters__field--grow {
  flex: 1 1 10rem;
  min-width: 9rem;
}
.tlb-pool-filters__label {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.tlb-pool-filters__field--check {
  min-width: 10rem;
  justify-content: flex-end;
  padding-bottom: 0.2rem;
}
.tlb-pool-filters__check {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.84rem;
  cursor: pointer;
}
.tlb-pool-filters__check input {
  margin: 0;
}
.tlb-pool-filters__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}
.tlb-pool-filters .prod-cal__input,
.tlb-pool-filters .prod-cal__select {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.tlb-board-pane {
  padding: 0.85rem 1rem;
  min-width: 0;
}
.tlb-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.75rem;
}
.tlb-tab {
  border: 1px solid var(--border);
  background: var(--surface-muted);
  color: var(--text);
  border-radius: 0.4rem;
  padding: 0.35rem 0.65rem;
  font: inherit;
  font-size: 0.88rem;
  cursor: pointer;
}
.tlb-tab:hover {
  border-color: var(--accent, #3b82f6);
}
.tlb-tab[aria-selected='true'] {
  background: var(--surface);
  border-color: var(--accent, #3b82f6);
  font-weight: 600;
}
.tlb-grid-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 0.5rem;
  background: var(--surface);
}
.tlb-grid {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}
.tlb-grid th,
.tlb-grid td {
  border: 1px solid var(--border);
  padding: 0.35rem 0.45rem;
  vertical-align: top;
  text-align: center;
}
.tlb-grid__corner {
  background: var(--surface-muted);
  min-width: 5rem;
}
.tlb-grid__colhead,
.tlb-grid__rowhead {
  background: var(--surface-muted);
  font-weight: 600;
  color: var(--text);
}
.tlb-grid__rowhead {
  text-align: left;
  white-space: nowrap;
}
.tlb-cell {
  min-width: 5.5rem;
  max-width: 9.75rem;
  text-align: left;
  line-height: 1.25;
  word-break: break-word;
}
.tlb-cell--editable {
  cursor: pointer;
}
.tlb-cell--editable:hover {
  background: var(--surface-muted);
  outline: 2px solid var(--accent, #3b82f6);
  outline-offset: -2px;
}
.tlb-cell--drophover {
  background: rgba(59, 130, 246, 0.12);
  outline: 2px dashed var(--accent, #3b82f6);
  outline-offset: -2px;
}
.tlb-cell--obstructed {
  background: repeating-linear-gradient(
    -42deg,
    rgba(148, 163, 184, 0.22),
    rgba(148, 163, 184, 0.22) 5px,
    rgba(148, 163, 184, 0.06) 5px,
    rgba(148, 163, 184, 0.06) 10px
  );
}
.tlb-cell--obstructed.tlb-cell--editable:hover {
  outline-color: #64748b;
}
.tlb-cell__obstruction {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-height: 2.35rem;
  gap: 0.15rem;
  padding: 0.12rem 0.05rem;
  text-align: left;
}
.tlb-cell__obstruction-kicker {
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
}
.tlb-cell__obstruction-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text);
  line-height: 1.2;
  word-break: break-word;
}
.tlb-modal-obstruction-wrap {
  margin-top: 0.65rem;
}
.tlb-cell--dragging {
  opacity: 0.78;
}
.tlb-cell__slot {
  display: block;
  min-height: 2.6rem;
  max-width: 100%;
}
.tlb-cell__slot[draggable='true'] {
  cursor: grab;
  touch-action: none;
}
.tlb-cell__slot[draggable='true']:active {
  cursor: grabbing;
}
.tlb-cell--editable .tlb-cell__slot[draggable='true']:hover {
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.28);
}
.tlb-cell__body {
  min-width: 0;
  text-align: left;
}
.tlb-cell-pill {
  --tlb-grp-hue: 210;
  border-radius: 0.32rem;
  padding: 0.18rem 0.22rem;
  border: 1px solid var(--border);
  background: linear-gradient(135deg, hsla(var(--tlb-grp-hue), 44%, 91%, 0.55) 0%, var(--surface) 75%);
}
.tlb-cell-pill--inv-sold {
  border-left: 3px solid #64748b;
}
.tlb-cell-pill--inv-inventory {
  border-left: 3px solid #0f766e;
}
.tlb-cell-pill--inv-discount {
  border-left: 3px solid #dc2626;
  background: linear-gradient(135deg, hsla(var(--tlb-grp-hue), 40%, 92%, 0.4) 0%, rgba(220, 38, 38, 0.09) 55%, var(--surface) 92%);
}
.tlb-cell-pill--inv-dealer {
  border-left: 3px solid #b45309;
}
.tlb-cell-pill--inv-aw_dealer {
  border-left: 3px solid #1d4ed8;
}
.tlb-cell__sn {
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1.2;
  word-break: break-all;
  color: var(--text);
}
.tlb-cell__wo-row {
  margin-top: 0.08rem;
}
.tlb-cell__edit-wo {
  font-size: 0.72rem;
  font-weight: 600;
  margin-left: 0.35rem;
  white-space: nowrap;
}
.tlb-cell__inv-badge {
  font-size: 0.61rem;
  font-weight: 600;
  margin-top: 0.1rem;
  padding: 0.06rem 0.28rem;
  border-radius: 0.2rem;
  display: inline-block;
  max-width: 100%;
  line-height: 1.2;
}
.tlb-cell__inv-badge--sold {
  background: rgba(100, 116, 139, 0.2);
  color: #334155;
}
.tlb-cell__inv-badge--inventory {
  background: rgba(15, 118, 110, 0.2);
  color: #134e4a;
}
.tlb-cell__inv-badge--discount {
  background: rgba(220, 38, 38, 0.22);
  color: #991b1b;
}
.tlb-cell__inv-badge--dealer {
  background: rgba(180, 83, 9, 0.2);
  color: #713f12;
}
.tlb-cell__inv-badge--aw_dealer {
  background: rgba(29, 78, 216, 0.18);
  color: #1e3a8a;
}
.tlb-cell__group {
  display: block;
  font-size: 0.66rem;
  color: var(--muted);
  margin-top: 0.06rem;
}
.tlb-cell--emptyboard {
  text-align: left;
  padding: 1rem;
  color: var(--muted);
}
.tlb-pool__title {
  margin: 0 0 0.25rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
}
.tlb-pool__hint {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
}
.tlb-pool-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--border);
  border-radius: 0.45rem;
  background: var(--surface-muted);
  padding: 0.5rem 0.65rem;
}
.tlb-pool-track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 0.5rem;
  align-items: stretch;
  min-height: 4.75rem;
}
.tlb-pool-track .cal-pool-item,
.tlb-pool-track .tlb-pool-item {
  flex: 0 0 auto;
  width: 11.5rem;
  min-height: 5.25rem;
  --tlb-grp-hue: 210;
  box-sizing: border-box;
  border-radius: 0.35rem;
  border: 1px solid var(--border);
  background: linear-gradient(135deg, hsla(var(--tlb-grp-hue), 48%, 88%, 0.55) 0%, var(--surface) 78%);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.tlb-pool-track--drophover {
  outline: 2px dashed var(--accent, #3b82f6);
  outline-offset: 3px;
  border-radius: 0.45rem;
  background: rgba(59, 130, 246, 0.07);
}
.tlb-pool-item--inv-sold {
  border-left: 4px solid #64748b;
}
.tlb-pool-item--inv-inventory {
  border-left: 4px solid #0f766e;
  background: linear-gradient(135deg, hsla(var(--tlb-grp-hue), 42%, 88%, 0.5) 0%, rgba(15, 118, 110, 0.12) 40%, var(--surface) 82%);
}
.tlb-pool-item--inv-discount {
  border-left: 4px solid #dc2626;
  background: linear-gradient(135deg, hsla(var(--tlb-grp-hue), 40%, 90%, 0.45) 0%, rgba(220, 38, 38, 0.14) 48%, var(--surface) 88%);
}
.tlb-pool-item--inv-dealer {
  border-left: 4px solid #b45309;
  background: linear-gradient(135deg, hsla(var(--tlb-grp-hue), 45%, 88%, 0.5) 0%, rgba(180, 83, 9, 0.12) 42%, var(--surface) 82%);
}
.tlb-pool-item--inv-aw_dealer {
  border-left: 4px solid #1d4ed8;
  background: linear-gradient(135deg, hsla(var(--tlb-grp-hue), 46%, 88%, 0.5) 0%, rgba(29, 78, 216, 0.12) 42%, var(--surface) 82%);
}
.tlb-pool-item__meta {
  font-size: 0.72rem;
  line-height: 1.25;
  margin-top: 0.15rem;
  word-break: break-word;
}
.tlb-pool-item__meta--model {
  font-weight: 600;
  color: var(--text);
}
.tlb-pool-item__meta--cust {
  color: var(--text);
}
.tlb-pool-item__meta--group {
  font-size: 0.68rem;
  color: var(--muted);
}
.tlb-pool-item__sn {
  font-size: 0.72rem;
  color: var(--muted);
  margin-top: 0.2rem;
  line-height: 1.2;
  word-break: break-word;
}
.tlb-pool-item__sn--lead {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text);
  margin-top: 0.12rem;
}
.tlb-pool-item__wo-line {
  font-size: 0.68rem;
  color: var(--muted);
  margin-top: 0.2rem;
  font-weight: 500;
}
.tlb-pool-item__no-place-hint {
  font-size: 0.68rem;
  margin-top: 0.15rem;
  line-height: 1.25;
}
.tlb-pool-item--no-place {
  opacity: 0.92;
}
.tlb-pool-item .tlb-pool-item__badge {
  font-size: 0.66rem;
  font-weight: 600;
  text-transform: none;
  color: var(--text);
  background: rgba(59, 130, 246, 0.14);
  border-radius: 0.25rem;
  padding: 0.1rem 0.32rem;
  margin-bottom: 0.2rem;
  line-height: 1.2;
}
.tlb-pool-item__badge--inv-sold {
  background: rgba(100, 116, 139, 0.18);
}
.tlb-pool-item__badge--inv-inventory {
  background: rgba(15, 118, 110, 0.2);
  color: #0f3d38;
}
.tlb-pool-item__badge--inv-discount {
  background: rgba(220, 38, 38, 0.22);
  color: #991b1b;
}
.tlb-pool-item__badge--inv-dealer {
  background: rgba(180, 83, 9, 0.2);
  color: #713f12;
}
.tlb-pool-item__badge--inv-aw_dealer {
  background: rgba(29, 78, 216, 0.18);
  color: #1e3a8a;
}
.tlb-cell__empty {
  color: var(--muted);
}
.tlb-cell__wo {
  font-weight: 700;
  color: var(--accent, #2563eb);
  text-decoration: none;
}
.tlb-cell__wo:hover {
  text-decoration: underline;
}
.tlb-cell__wo--lite {
  font-weight: 500;
  font-size: 0.68rem;
  color: var(--muted);
}
a.tlb-cell__wo--lite {
  color: var(--muted);
  text-decoration: none;
}
a.tlb-cell__wo--lite:hover {
  color: var(--accent, #2563eb);
  text-decoration: underline;
}
.tlb-cell__model {
  display: block;
  font-size: 0.76rem;
  color: var(--text);
  margin-top: 0.08rem;
}
.tlb-cell__cust {
  display: block;
  font-size: 0.72rem;
  color: var(--muted);
  margin-top: 0.08rem;
  max-height: 3.15em;
  overflow: hidden;
  line-height: 1.28;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.tlb-cell__lotloc {
  display: block;
  font-size: 0.72rem;
  color: var(--muted);
  font-style: italic;
}
.tlb-cell__note {
  display: block;
  font-size: 0.75rem;
  color: var(--muted);
  white-space: pre-wrap;
}
.tlb-modal.modal-dialog {
  max-width: min(100vw - 2rem, 28rem);
  padding: 0;
  overflow: hidden;
}
.tlb-modal .modal-dialog__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--border);
  background: var(--surface-muted);
}
.tlb-modal .modal-dialog__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
}
.tlb-modal .modal-dialog__close {
  border: none;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--muted);
  padding: 0 0.15rem;
}
.tlb-modal .modal-dialog__close:hover {
  color: var(--text);
}
.tlb-modal .modal-dialog__body {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.tlb-modal .modal-dialog__body .field-label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  text-align: left;
  width: 100%;
  margin: 0;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--muted);
}
.tlb-modal-pos {
  margin: 0;
}
.tlb-modal-wo-hint {
  margin: -0.25rem 0 0;
  min-height: 1.1em;
  font-size: 0.8rem;
}
.tlb-modal .modal-dialog__foot {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--border);
  background: var(--surface-muted);
}
