/* SOHO CRM by Optiflow Solutions — design system overlay */
:root {
  --bg: #ffffff;
  --card: #ffffff;
  --text: #111827;
  --muted: #6b7280;
  --primary: #7c3aed;
  --primary-hover: #6d28d9;
  --primary-light: #a78bfa;
  --accent-soft: #f3e8ff;
  --accent-soft-hover: #ede9fe;
  --accent-soft-strong: #ddd6fe;
  --surface-hover: rgba(124, 58, 237, 0.06);
  --section-hover-bg: #f3e8ff;
  --section-hover-border: #e9d5ff;
  --border: #e5e7eb;
  --shadow-sm: 0 1px 2px rgba(17, 24, 39, 0.05);
  --shadow-md: 0 4px 12px rgba(17, 24, 39, 0.08);
  --shadow-lg: 0 8px 24px rgba(17, 24, 39, 0.1);
  --radius: 12px;
  --control-radius: 8px;
  --sidebar-width: 16.25rem;
  --font-sans: "PingFang SC", "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;
  --font-mono: Monaco, "SF Mono", Menlo, Consolas, monospace;
  --control-font-size: 0.875rem;
  --btn-font-size: 0.875rem;
  --btn-font-size-sm: 0.8125rem;
  --btn-font-weight: 600;
  --btn-padding-y: 0.5rem;
  --btn-padding-x: 0.875rem;
  --btn-padding-y-sm: 0.375rem;
  --btn-padding-x-sm: 0.75rem;
  --btn-min-height: 2.25rem;
  --btn-min-height-sm: 2rem;
  --success: #059669;
  --warning: #d97706;
  --danger: #dc2626;
}

html {
  font-family: var(--font-sans);
}
body {
  font-family: inherit;
  font-size: var(--control-font-size);
  background: var(--bg);
}
button,
input,
select,
textarea,
.btn {
  font-family: inherit;
}

code, .invite, pre, .formula-token {
  font-family: var(--font-mono);
}

/* —— Logo —— */
.logo {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  text-decoration: none;
  color: var(--text);
}
.logo-mark {
  width: 2.25rem;
  height: 2.25rem;
  flex-shrink: 0;
  object-fit: contain;
}
.logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.logo-soho {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}
.logo-byline {
  font-size: 0.6875rem;
  font-weight: 500;
  color: var(--muted);
}
.logo-hero .logo-mark { width: 3.5rem; height: 3.5rem; }
.logo-hero .logo-soho { font-size: 1.75rem; }
.logo-hero .logo-byline { font-size: 0.875rem; }

/* —— Buttons —— */
.btn {
  font-size: var(--btn-font-size);
  font-weight: var(--btn-font-weight);
  padding: var(--btn-padding-y) var(--btn-padding-x);
  min-height: var(--btn-min-height);
  line-height: 1.25;
  border-radius: var(--control-radius);
  box-shadow: var(--shadow-sm);
  transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.12s ease;
}
.btn-sm {
  font-size: var(--btn-font-size-sm);
  padding: var(--btn-padding-y-sm) var(--btn-padding-x-sm);
  min-height: var(--btn-min-height-sm);
}
.btn:active:not(:disabled) { transform: scale(0.98); }
.btn-primary,
.products-catalog-btn-primary,
.client-form-v2__save-btn,
.quote-detail-v2__save-btn,
.product-edit-page .product-edit-btn-save {
  background: var(--primary);
  border: 1px solid var(--primary);
  color: #fff;
}
.btn-primary:hover:not(:disabled),
.products-catalog-btn-primary:hover,
.client-form-v2__save-btn:hover:not(:disabled),
.quote-detail-v2__save-btn:hover:not(:disabled),
.product-edit-page .product-edit-btn-save:hover:not(:disabled) {
  background: var(--primary-hover);
  border-color: var(--primary-hover);
  color: #fff;
  box-shadow: var(--shadow-md);
}

/* Seller list pages — primary create action (consistent size everywhere) */
.seller-page-create-btn,
.customers-add-btn,
.quotes-create-btn,
.requests-create-btn,
.tasks-create-btn,
.products-catalog-header .products-catalog-create-btn,
.products-catalog-empty .seller-page-create-btn,
.requests-empty .requests-create-btn,
.tasks-empty .tasks-create-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: var(--btn-padding-y) var(--btn-padding-x);
  min-height: var(--btn-min-height);
  border: none;
  border-radius: var(--control-radius);
  background: var(--primary);
  color: #fff;
  font-family: inherit;
  font-size: var(--btn-font-size);
  font-weight: var(--btn-font-weight);
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: background 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}
.seller-page-create-btn:hover,
.customers-add-btn:hover,
.quotes-create-btn:hover,
.requests-create-btn:hover,
.tasks-create-btn:hover,
.products-catalog-header .products-catalog-create-btn:hover,
.products-catalog-empty .seller-page-create-btn:hover,
.requests-empty .requests-create-btn:hover,
.tasks-empty .tasks-create-btn:hover {
  background: var(--primary-hover);
  border-color: var(--primary-hover);
  color: #fff;
  box-shadow: var(--shadow-md);
}
.seller-page-create-btn:active,
.customers-add-btn:active,
.quotes-create-btn:active,
.requests-create-btn:active,
.tasks-create-btn:active,
.products-catalog-header .products-catalog-create-btn:active,
.products-catalog-empty .seller-page-create-btn:active,
.requests-empty .requests-create-btn:active,
.tasks-empty .tasks-create-btn:active {
  transform: scale(0.98);
}
.seller-page-create-btn svg,
.customers-add-btn svg,
.quotes-create-btn svg,
.requests-create-btn svg,
.tasks-create-btn svg,
.products-catalog-header .products-catalog-create-btn svg,
.products-catalog-empty .seller-page-create-btn svg {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
}
.btn:hover:not(.btn-outline):not(.btn-secondary):not(.btn-ghost):not(.btn-danger):not(:disabled) {
  background: var(--primary-hover);
  box-shadow: var(--shadow-md);
}
.btn-secondary {
  background: var(--accent-soft);
  color: var(--primary);
}
.btn-secondary:hover {
  background: var(--accent-soft-hover);
  color: var(--primary-hover);
}
.btn-outline {
  background: transparent;
  color: var(--primary);
  box-shadow: none;
  border: 1px solid var(--border);
}
.btn-outline:hover {
  background: var(--accent-soft);
  border-color: var(--primary-light);
}
.btn-ghost {
  background: transparent;
  color: var(--primary);
  box-shadow: none;
}
.btn-ghost:hover { background: var(--accent-soft); }
.product-template-save-btn {
  color: #fff;
  font-weight: 700;
  background: #7c3aed;
}
.product-template-save-btn:hover {
  color: #fff;
  background: var(--primary-hover);
}

/* —— Auth & form layout —— */
.auth-card {
  max-width: 420px;
  margin: 2rem auto;
}
.auth-card h1 {
  margin: 0 0 1.25rem;
  font-size: 1.5rem;
}
.auth-card form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 0;
}
.form-group label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text);
}
.form-group input,
.form-group textarea,
.form-group select {
  width: 100%;
  padding: 0.5rem 0.65rem;
  font-size: 0.9375rem;
  box-sizing: border-box;
}
.form-group input.input-uppercase {
  text-transform: uppercase;
}
.auth-card .btn[type="submit"] {
  width: 100%;
  margin-top: 0.25rem;
}
.auth-card-actions {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.auth-card-actions .btn {
  width: 100%;
  justify-content: center;
}
.auth-card .btn[type="submit"]:hover:not(:disabled),
.auth-card-actions .btn:not(.btn-secondary):hover {
  color: #fff;
  font-weight: 700;
}
.auth-card-links {
  margin-top: 1rem;
  font-size: 0.9375rem;
  text-align: center;
}
.auth-card-links a {
  color: var(--primary);
}
.auth-card-hint {
  margin: 0 0 0.75rem;
  color: var(--muted);
  font-size: 0.9375rem;
  line-height: 1.5;
}
.auth-card-hint:last-of-type {
  margin-bottom: 1rem;
}

/* —— Client create / edit form (legacy card alias) —— */
.customer-form-card {
  max-width: 42rem;
  margin: 2rem auto;
  padding: 0 1rem;
  background: transparent;
  border: none;
  box-shadow: none;
}

/* —— Client add / edit form (quote-detail-style layout) —— */
.client-form-v2 {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  min-width: 0;
  max-width: 100%;
}
.client-form-v2__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.client-form-v2__header-text h1,
.client-form-v2__title {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 700;
  color: #1f2937;
}
.client-form-v2__title-row {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}
.client-form-v2__title-row .page-back-link {
  color: #6b7280;
}
.client-form-v2__title-row .page-back-link:hover {
  color: #7c3aed;
  background: #f3e8ff;
}
.client-form-v2__title {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.client-form-v2__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  min-width: 0;
  max-width: 100%;
  align-items: stretch;
}
.client-form-v2__card {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0 0 1.5rem;
  min-width: 0;
  height: 100%;
  border-bottom: 1px solid var(--border);
}
.client-form {
  display: block;
  min-width: 0;
}
.client-form-section {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.client-form-section__head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.client-form-section__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 8px;
  background: #ede9fe;
  color: #6d28d9;
  flex-shrink: 0;
}
.client-form-section__title {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6d28d9;
}
.client-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.25rem;
}
.client-form-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}
.client-form-field--full {
  grid-column: 1 / -1;
}

/* Form row striping (every other row: light purple) */
.client-form-grid.crm-form-grid--striped,
.customer-form-grid.crm-form-grid--striped {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.crm-form-section--striped {
  gap: 0;
}
.crm-form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.25rem;
  padding: 0.75rem 1rem;
  border-radius: 8px;
}
.crm-form-row:nth-child(even) {
  background: var(--accent-soft);
}
.crm-form-row > .client-form-field--full,
.crm-form-row > .form-group--full {
  grid-column: 1 / -1;
}
/* Quotes list page — create modal */
.quotes-page .quotes-filter-panel .quotes-date-field:nth-of-type(even) {
  padding: 0.5rem 0.65rem;
  margin: 0 -0.65rem;
  border-radius: 8px;
  background: var(--accent-soft);
}
.quotes-page .quote-create-form .quotes-form-row:nth-child(even) {
  background: var(--accent-soft);
}
.quotes-page .quotes-form-row {
  padding: 0.75rem 0.65rem;
  margin: 0 -0.65rem;
  border-radius: 8px;
}
.quotes-page .quotes-form-row .quote-create-input {
  margin-bottom: 0;
}

.client-form-field label,
.client-form-field-label {
  margin-bottom: 0;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.45;
  color: #374151;
}
.client-form-v2 .form-hint {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #6b7280;
}
.client-form-v2 .form-hint--italic {
  font-style: italic;
}
.client-form-required {
  color: #dc2626;
  font-weight: 700;
}
.client-form-field input:not([type="hidden"]),
.client-form-field select,
.client-form-field textarea,
.client-form-field .currency-picker-trigger,
.client-form-field .nationality-picker-trigger {
  width: 100%;
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #111827;
  background: #fff;
  box-sizing: border-box;
}
.client-form-field textarea {
  min-height: 5.5rem;
  resize: vertical;
}
.client-form-field input::placeholder,
.client-form-field textarea::placeholder {
  color: #9ca3af;
}
.client-form-field input:focus,
.client-form-field select:focus,
.client-form-field textarea:focus,
.client-form-field .currency-picker-trigger:hover,
.client-form-field .currency-picker.is-open > .currency-picker-trigger,
.client-form-field .nationality-picker-trigger:hover,
.client-form-field .nationality-picker.is-open > .nationality-picker-trigger {
  outline: none;
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.12);
}
.client-form-field .currency-picker,
.client-form-field .nationality-picker {
  width: 100%;
}
.client-form-field .currency-picker-trigger,
.client-form-field .nationality-picker-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  cursor: pointer;
}
.client-form-section--invite {
  margin-top: 0;
}
.client-form-invite-title {
  margin: 0 0 0.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
}
.client-form-invite-regen {
  margin-top: 0.75rem;
}
.client-form-v2__subtitle {
  margin: 0.35rem 0 0;
  font-size: 0.9375rem;
}
.client-form-v2__footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding-top: 0.5rem;
}
.account-page {
  max-width: 72rem;
}
.account-page__meta {
  margin: 0;
  display: grid;
  gap: 0.65rem;
}
.account-page__meta-row {
  display: grid;
  grid-template-columns: minmax(8rem, 11rem) 1fr;
  gap: 0.75rem;
  align-items: baseline;
}
.account-page__meta-row dt {
  margin: 0;
  font-weight: 600;
  color: var(--text-muted, #64748b);
}
.account-page__meta-row dd {
  margin: 0;
}
.account-page__actions-inline {
  margin-top: 1rem;
}
.account-page__footer {
  margin-top: 1rem;
}
.client-form-v2__save-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.client-form-v2__cancel-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 8.5rem;
  justify-content: center;
  text-decoration: none;
}
.client-form-v2__cancel-btn:hover {
  text-decoration: none;
}

/* —— Client form wizard (add / edit) —— */
.client-form-body .container {
  max-width: none;
  width: 100%;
  padding: 0;
  margin: 0;
}
.client-form-body .app-main {
  background: #f9fafb;
}
.client-form-wizard {
  width: 100%;
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 1.5rem 6rem;
  box-sizing: border-box;
}
.client-form-wizard__sticky-bar {
  position: sticky;
  top: 0;
  z-index: 120;
  margin: 0 -1.5rem 0.85rem;
  padding: 0.45rem 1rem 0.55rem;
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid #e5e7eb;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
}
.client-form-wizard__sticky-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
}
.client-form-wizard__step-status {
  flex: 0 0 auto;
  min-width: 6.5rem;
}
.client-form-wizard__step-count {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #7c3aed;
  line-height: 1.25;
}
.client-form-wizard__step-current-name {
  margin: 0.1rem 0 0;
  font-size: 0.6875rem;
  font-weight: 500;
  color: #6b7280;
  line-height: 1.3;
}
.client-form-wizard__stepper {
  flex: 1 1 16rem;
  min-width: 0;
}
.client-form-wizard__steps {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  list-style: none;
  position: relative;
}
.client-form-wizard__steps::before {
  content: "";
  position: absolute;
  top: 0.72rem;
  left: 8%;
  right: 8%;
  height: 1px;
  background: #e5e7eb;
  z-index: 0;
}
.client-form-wizard__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  flex: 1;
  min-width: 0;
  position: relative;
  z-index: 1;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.client-form-wizard__step-circle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 999px;
  border: 1.5px solid #d1d5db;
  background: #fff;
  color: #9ca3af;
  font-size: 0.6875rem;
  font-weight: 700;
  position: relative;
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.client-form-wizard__step.is-active .client-form-wizard__step-circle {
  border-color: #7c3aed;
  background: #7c3aed;
  color: #fff;
  box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.18);
}
.client-form-wizard__step.is-complete .client-form-wizard__step-circle {
  border-color: #22c55e;
  background: #22c55e;
  color: transparent;
  box-shadow: none;
}
.client-form-wizard__step.is-complete .client-form-wizard__step-circle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 47%;
  width: 0.35rem;
  height: 0.6rem;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -50%) rotate(45deg);
}
.client-form-wizard__step.is-active.is-complete .client-form-wizard__step-circle {
  border-color: #22c55e;
  background: #22c55e;
  color: transparent;
  box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.22);
}
.client-form-wizard__step-name {
  font-size: 0.5625rem;
  font-weight: 600;
  color: #9ca3af;
  text-align: center;
  line-height: 1.2;
  max-width: 4.25rem;
  transition: color 0.2s ease;
}
.client-form-wizard__step.is-complete .client-form-wizard__step-name {
  color: #16a34a;
}
.client-form-wizard__step.is-active .client-form-wizard__step-name {
  color: #7c3aed;
  font-weight: 700;
}
.client-form-wizard__step.is-active.is-complete .client-form-wizard__step-name {
  color: #16a34a;
}
.client-form-wizard__cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  max-width: none;
  margin: 0;
}
.client-form-wizard__section {
  display: flex;
  cursor: pointer;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease;
  opacity: 0.72;
}
.client-form-wizard__section.is-active {
  opacity: 1;
}
.client-form-wizard__section.is-complete {
  opacity: 0.88;
}
.client-form-wizard__cards .client-form-v2__card {
  background: #fff;
  border: 2px solid #e5e7eb;
  border-radius: 12px;
  padding: 1.25rem 1.5rem 1.5rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
}
.client-form-wizard__section.is-active.client-form-v2__card {
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.14), 0 8px 24px rgba(124, 58, 237, 0.12);
}
.client-form-wizard__section.is-complete.client-form-v2__card {
  border-color: #c4b5fd;
}
.client-form-wizard__section.is-active .client-form-section__icon {
  background: #7c3aed;
  color: #fff;
}
.client-form-wizard__section.is-active .client-form-section__title {
  color: #6d28d9;
}
.client-form-wizard__section--wide {
  grid-column: 1 / -1;
}
.client-form-wizard__section--notes {
  grid-column: 1 / -1;
}
.client-form-wizard__notes-field textarea {
  min-height: 8rem;
  white-space: pre-wrap;
}
.quote-detail-v2__textarea {
  white-space: pre-wrap;
}
.client-form-wizard__char-count {
  margin-top: 0.35rem;
  text-align: right;
  font-size: 0.8125rem;
  color: #6b7280;
}
.client-form-wizard__footer {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding-top: 1rem;
}
.client-form-wizard__save-btn {
  min-width: 14rem;
  min-height: 2.75rem;
  justify-content: center;
  font-size: 1rem;
  font-weight: 600;
}
.client-form-wizard__cancel-btn {
  min-width: 10rem;
  background: #fff;
  border-color: #d1d5db;
  color: #6b7280;
}
@media (max-width: 900px) {
  .client-form-wizard__sticky-inner {
    flex-direction: column;
    align-items: stretch;
  }
  .client-form-wizard__stepper {
    width: 100%;
  }
  .client-form-wizard__step-name {
    font-size: 0.625rem;
    max-width: 4rem;
  }
  .client-form-wizard__steps::before {
    left: 5%;
    right: 5%;
  }
}
@media (max-width: 640px) {
  .client-form-wizard {
    padding: 0 1rem 5rem;
  }
  .client-form-wizard__sticky-bar {
    margin-left: -1rem;
    margin-right: -1rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .client-form-wizard__cards {
    grid-template-columns: 1fr;
  }
  .client-form-wizard__section--wide {
    grid-column: auto;
  }
  .client-form-wizard__step-name {
    display: none;
  }
}

.customer-form-card h1 {
  margin: 0 0 1.25rem;
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
}
.customer-form-card form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.customer-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.customer-form-card .form-group--full {
  grid-column: 1 / -1;
}
.customer-form-card .btn[type="submit"] {
  width: 100%;
  margin-top: 0.25rem;
}
.customer-form-card .btn[type="submit"]:hover:not(:disabled) {
  color: #fff;
  font-weight: 700;
}
.customer-form-card .alert {
  margin-bottom: 0;
}
.customer-form-card .form-hint {
  margin: 0;
  font-size: 0.875rem;
}
.customer-form-card .mt-1 {
  margin-top: 1rem;
}
.customer-form-card input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
.customer-form-card select,
.customer-form-card textarea,
.customer-form-card .currency-picker-trigger,
.customer-form-card .nationality-picker-trigger,
.customer-form-card .template-picker-trigger,
.customer-form-card .currency-picker-search,
.customer-form-card .nationality-picker-search,
.customer-form-card .template-picker-search {
  border-color: var(--primary-light);
}
.customer-form-card input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]):focus,
.customer-form-card select:focus,
.customer-form-card textarea:focus,
.customer-form-card .currency-picker-trigger:hover,
.customer-form-card .currency-picker.is-open > .currency-picker-trigger,
.customer-form-card .nationality-picker-trigger:hover,
.customer-form-card .nationality-picker.is-open > .nationality-picker-trigger,
.customer-form-card .template-picker-trigger:hover,
.customer-form-card .template-picker.is-open > .template-picker-trigger,
.customer-form-card .currency-picker-search:focus,
.customer-form-card .nationality-picker-search:focus,
.customer-form-card .template-picker-search:focus {
  border-color: var(--primary);
}
.customer-form-card .currency-picker-menu,
.customer-form-card .nationality-picker-menu,
.customer-form-card .template-picker-menu {
  border-color: var(--primary-light);
}

/* Clients list page (modern) */
.customers-page {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 100%;
}
.customers-page-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}
.customers-page-title {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #1f2937;
}
.customers-invite-alert {
  margin: 0;
}
.customers-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
}
.customers-toolbar-search {
  position: relative;
  flex: 1 1 auto;
  max-width: none;
  min-width: 12rem;
}
.customers-toolbar-search svg {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: #6b7280;
  pointer-events: none;
}
.customers-toolbar-search-input {
  width: 100%;
  padding: 0.625rem 0.75rem 0.625rem 2.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f9fafb;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.customers-toolbar-search-input::placeholder {
  font-weight: 600;
}
.customers-toolbar-search-input:focus {
  outline: none;
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px var(--accent-soft);
  background: #fff;
}
.customers-toolbar-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.customers-filter {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 2rem 0.5rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.customers-filter:hover {
  border-color: #c4b5fd;
}
.customers-filter-label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #6b7280;
  white-space: nowrap;
}
.customers-filter-select {
  appearance: none;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #1f2937;
  padding: 0;
  padding-right: 0.25rem;
  cursor: pointer;
  max-width: 9rem;
}
.customers-filter-select--wide {
  max-width: 11rem;
}
.customers-filter-select:focus {
  outline: none;
}
.customers-filter-chevron {
  position: absolute;
  right: 0.6rem;
  top: 50%;
  transform: translateY(-50%);
  color: #6b7280;
  pointer-events: none;
}
.customers-clear-filters {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #7c3aed;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s ease, text-decoration 0.15s ease;
}
.customers-clear-filters:hover {
  color: var(--primary-hover);
  text-decoration: underline;
}
.customers-table-card {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
}
.customers-table-wrap {
  overflow-x: auto;
}
.customers-modern-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.customers-modern-table thead th {
  padding: 0.75rem 1rem;
  text-align: left;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6b7280;
  background: #f3f4f6;
  border-bottom: 1px solid #e5e7eb;
  white-space: nowrap;
}
.customers-modern-table tbody td {
  padding: 0 1rem;
  height: 3.5rem;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: middle;
  color: #1f2937;
  transition: background 0.15s ease;
}
.customers-modern-table tbody tr.customers-row--alt td {
  background: #f9f5ff;
}
.customers-modern-table tbody tr:hover td {
  background: #f3e8ff;
}
.customers-modern-table tbody tr:last-child td {
  border-bottom: none;
}
.customers-cell-name a {
  font-weight: 600;
  color: #7c3aed;
  text-decoration: none;
  transition: color 0.15s ease;
}
.customers-cell-name a:hover {
  color: var(--primary-hover);
  text-decoration: underline;
}
.customers-cell-company {
  color: #1f2937;
}
.customers-cell-email a {
  color: #7c3aed;
  text-decoration: none;
  transition: text-decoration 0.15s ease, color 0.15s ease;
}
.customers-cell-email a:hover {
  color: var(--primary-hover);
  text-decoration: underline;
}
.customers-cell-email a:focus-visible {
  outline: 2px solid #7c3aed;
  outline-offset: 2px;
  border-radius: 2px;
}
.customers-invite-code {
  font-family: var(--font-mono);
  font-size: 0.8125rem;
  font-weight: 400;
  color: #1f2937;
  background: transparent;
  padding: 0;
  border: none;
}
.customer-status-badge {
  display: inline-block;
  padding: 0.375rem 0.75rem;
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}
.customer-status-badge--active {
  background: #10b981;
  color: #fff;
}
.customer-status-badge--pending {
  background: #f97316;
  color: #fff;
}
.customer-status-badge--inactive {
  background: #9ca3af;
  color: #fff;
}
.customers-actions-col,
.customers-cell-actions {
  width: 4rem;
  text-align: center;
}
.customers-cell-actions .quote-line-actions-wrap {
  display: flex;
  justify-content: center;
}
.customers-page .products-catalog-menu-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 8px;
  color: #d1d5db;
  transition: background 0.15s ease, color 0.15s ease;
}
.customers-page .products-catalog-menu-trigger:hover {
  background: var(--accent-soft);
  color: #7c3aed;
}
.customers-empty {
  text-align: center;
  padding: 2rem 1rem !important;
}
.customers-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  padding: 0.875rem 1rem;
  border-top: 1px solid #e5e7eb;
  background: #fafafa;
}
.customers-pagination-summary {
  margin: 0;
  font-size: 0.8125rem;
  color: #6b7280;
}
.customers-pagination-nav {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.customers-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  color: #1f2937;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.customers-page-btn:hover:not(.is-disabled):not(.is-active) {
  border-color: #c4b5fd;
  background: #f9f5ff;
  color: #7c3aed;
}
.customers-page-btn.is-active {
  background: #7c3aed;
  border-color: #7c3aed;
  color: #fff;
}
.customers-page-btn.is-disabled {
  opacity: 0.45;
  pointer-events: none;
}
@media (max-width: 768px) {
  .customers-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .customers-toolbar-search {
    flex: 1 1 auto;
    width: 100%;
  }
  .customers-toolbar-filters {
    width: 100%;
  }
  .customers-filter {
    flex: 1 1 calc(50% - 0.25rem);
    min-width: 8rem;
  }
  .customers-clear-filters {
    margin-left: 0;
    justify-content: center;
  }
}

/* Products list page (modern) */
.products-page {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 100%;
}
.products-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.products-page-header-text {
  min-width: 0;
}
.products-page-title-row {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}
.products-page-title-row .page-back-link {
  color: #6b7280;
}
.products-page-title-row .page-back-link:hover {
  color: #7c3aed;
  background: #f3e8ff;
}
.products-page-title {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #1f2937;
}
.products-page-subtitle {
  margin: 0.5rem 0 0;
  font-size: 0.875rem;
  color: #6b7280;
  line-height: 1.45;
}
.products-settings-link {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  color: #6b7280;
  text-decoration: none;
  box-shadow: var(--shadow-sm);
  transition: border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}
.products-settings-link:hover {
  border-color: #c4b5fd;
  color: #7c3aed;
  box-shadow: var(--shadow-md);
  transform: scale(1.02);
}
.products-table-card {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
}
.products-page .products-modern-table {
  border-collapse: collapse;
  font-size: 0.875rem;
}
.products-page .products-modern-table thead th {
  padding: 0.75rem 0.75rem;
  text-align: left;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #6b7280;
  background: #f3f4f6;
  border-bottom: 1px solid #e5e7eb;
  white-space: nowrap;
  vertical-align: middle;
}
.products-page .products-modern-table .product-line-no-col,
.products-page .products-modern-table .product-line-no-cell {
  text-align: center;
  color: #1f2937;
  font-variant-numeric: tabular-nums;
  min-width: 2.5rem;
  width: 2.5rem;
}
.products-page .products-line-group td {
  border-bottom: 1px solid #e5e7eb;
  padding: 0.75rem;
  vertical-align: middle;
  transition: background 0.15s ease;
}
.products-page .products-line-group--alt td {
  background: #f9f5ff;
}
.products-page .products-line-group:hover td {
  background: #f3e8ff;
}
.products-page .products-line-group--editing td {
  background: #faf5ff;
}
.products-page .products-line-group--locked td {
  background: #fff;
}
.products-page .products-line-group--locked.products-line-group--alt td {
  background: #f9fafb;
}
.products-page .products-line-group--locked:hover td {
  background: #f3f4f6;
}
.products-page .products-line-primary td {
  box-shadow: none;
}
.products-page .products-line-group--editing .products-line-primary td:first-child {
  box-shadow: inset 3px 0 0 #7c3aed;
}
.products-page .quote-line-status-cell .quote-status-badge {
  display: inline-block;
  padding: 0.375rem 0.75rem;
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: 600;
  margin: 0;
}
.products-page .quote-status-badge--saved {
  background: #7c3aed;
  color: #fff;
}
.products-page .quote-status-badge--draft {
  background: #f3f4f6;
  color: #4b5563;
}
.products-page .quote-status-badge--sent_to_client {
  background: #dbeafe;
  color: #1d4ed8;
}
.products-page .products-data-cell input:not([type="checkbox"]):not([type="radio"]),
.products-page .products-data-cell select,
.products-page .products-row2-field textarea,
.products-page .products-row2-field input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.5rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  font: inherit;
  font-size: 0.875rem;
  color: #1f2937;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.products-page .products-data-cell input::placeholder,
.products-page .products-row2-field textarea::placeholder {
  color: #9ca3af;
}
.products-page .products-data-cell input:focus,
.products-page .products-data-cell select:focus,
.products-page .products-row2-field textarea:focus {
  outline: none;
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.products-page input[name="product_name"] {
  font-weight: 600;
}
.products-page input[name="sku"] {
  font-family: var(--font-mono);
  font-size: 0.8125rem;
}
.products-page .products-data-cell input[type="number"],
.products-page .products-data-cell .quote-formula-value {
  text-align: right;
}
.products-page .products-data-cell--product_name {
  min-width: 11rem;
}
.products-page .products-data-cell input:disabled,
.products-page .products-data-cell select:disabled,
.products-page .products-row2-field textarea:disabled {
  background: #f9fafb;
  color: #6b7280;
  cursor: not-allowed;
}
.products-page .products-data-cell--product_name .quote-product-picker {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.products-page .quote-formula-value {
  background: #f9fafb;
  color: #1f2937;
  font-weight: 600;
}
.products-page .products-row-secondary td,
.products-page .products-row-attachments td {
  padding-top: 0;
  border-top: none;
}
.products-page .products-detail-section {
  padding: 0 0 0.25rem;
}
.products-page .products-detail-label {
  margin: 0 0 0.5rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #1f2937;
}
.products-page .products-row2-fields {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
}
.products-page .product-line-textarea {
  min-height: 5rem;
  resize: vertical;
}
.products-page .products-files-panel {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.products-page .product-attachments-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.products-page .product-attachment-chip {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  color: #1f2937;
  border-radius: 8px;
}
.products-page .products-upload-form {
  margin: 0;
}
.products-page .products-upload-dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 7rem;
  padding: 1rem;
  border: 1px dashed #e5e7eb;
  border-radius: 8px;
  background: #fafafa;
  text-align: center;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.products-page .products-upload-dropzone--readonly {
  cursor: default;
}
.products-page .products-upload-dropzone:hover,
.products-page .products-upload-dropzone.is-dragover {
  background: #f9f5ff;
  border-color: #c4b5fd;
}
.products-page .products-upload-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.products-page .products-upload-icon {
  color: #7c3aed;
}
.products-page .products-upload-title {
  font-size: 0.875rem;
  font-weight: 500;
  color: #1f2937;
}
.products-page .products-upload-hint {
  font-size: 0.8125rem;
  color: #6b7280;
  max-width: 28rem;
}
.products-page .products-row3-attachments,
.products-page .products-row3-empty,
.products-page .products-row3-count {
  display: none;
}
.products-page .quote-line-actions {
  vertical-align: middle;
  text-align: center;
}
.products-page .quote-line-actions-wrap {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
.products-page .quote-line-actions-stack {
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
}
.products-page .quote-kebab-trigger {
  width: 2rem;
  height: 2rem;
  border-radius: 8px;
  color: #d1d5db;
  transition: background 0.15s ease, color 0.15s ease;
}
.products-page .quote-kebab-trigger:hover {
  background: var(--accent-soft);
  color: #7c3aed;
}
.products-page .products-quota-full {
  margin: 0;
  padding: 1rem;
  border-top: 1px solid #e5e7eb;
  text-align: left;
  font-size: 0.875rem;
}
.products-page .products-empty {
  text-align: center;
  padding: 2rem 1rem !important;
}
.products-page .products-modern-table .product-line-no-col,
.products-page .products-modern-table .product-line-no-cell,
.products-page .products-modern-table .quote-line-status-col,
.products-page .products-modern-table .quote-line-status-cell {
  position: static;
  box-shadow: none;
  background: inherit;
}
.products-page .products-modern-table thead .product-line-no-col,
.products-page .products-modern-table thead .quote-line-status-col {
  background: #f3f4f6;
}
@media (max-width: 768px) {
  .products-page-header {
    flex-direction: column;
    align-items: stretch;
  }
  .products-settings-link {
    align-self: flex-end;
  }
}

/* Quotes list page (modern) */
.quotes-page {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 100%;
}
.quotes-page-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
}
.quotes-page-title {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
}
.quotes-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  position: relative;
}
.quotes-toolbar-search {
  position: relative;
  flex: 1 1 auto;
  max-width: none;
  min-width: 12rem;
}
.quotes-toolbar-search svg {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
}
.quotes-toolbar-search-input {
  width: 100%;
  padding: 0.625rem 0.75rem 0.625rem 2.5rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #f9fafb;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.quotes-toolbar-search-input::placeholder {
  font-weight: 600;
}
.quotes-toolbar-search-input:focus {
  outline: none;
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px var(--accent-soft);
  background: var(--card);
}
.quotes-toolbar-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.quotes-filter {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 2rem 0.5rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--card);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.quotes-filter:hover,
.quotes-filter.is-open {
  border-color: #c4b5fd;
}
.quotes-filter.is-open {
  z-index: 120;
}
.quotes-filter-label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--muted);
  white-space: nowrap;
}
.quotes-filter-select {
  appearance: none;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text);
  padding: 0;
  padding-right: 0.25rem;
  cursor: pointer;
  max-width: 9rem;
}
.quotes-filter-select:focus {
  outline: none;
}
.quotes-filter-chevron {
  position: absolute;
  right: 0.6rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
}
.quotes-filter-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text);
  cursor: pointer;
  white-space: nowrap;
}
.quotes-filter-panel {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  z-index: 130;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 14rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--card);
  box-shadow: var(--shadow-lg);
}
.quotes-filter--more .quotes-filter-panel {
  right: 0;
  left: auto;
}
.quotes-filter-text-input,
.quotes-filter-panel-select {
  width: 100%;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font: inherit;
  font-size: 0.8125rem;
  background: #fff;
  box-sizing: border-box;
}
.quotes-filter-text-input:focus,
.quotes-filter-panel-select:focus {
  outline: none;
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.quotes-filter-panel[hidden] {
  display: none !important;
}
.quotes-date-field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--muted);
}
.quotes-filter-date-input {
  padding: 0.45rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font: inherit;
  font-size: 0.8125rem;
}
.quotes-filter-apply-btn {
  align-self: flex-start;
  padding: 0.4rem 0.75rem;
  border: none;
  border-radius: 8px;
  background: #7c3aed;
  color: #fff;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease;
}
.quotes-filter-apply-btn:hover {
  background: var(--primary-hover);
}
.quotes-filter-panel__options--scroll {
  max-height: 260px;
  overflow-y: auto;
}
.quotes-filter-panel--date .quotes-date-field {
  margin: 0 8px 8px;
}
.quotes-toolbar-filters .tasks-filter-menu,
.customers-toolbar-filters .tasks-filter-menu,
.products-catalog-row1-filters .tasks-filter-menu,
.requests-filter-toolbar .quotes-toolbar-filters .tasks-filter-menu {
  position: relative;
}
.quotes-toolbar-filters .tasks-filter-btn,
.customers-toolbar-filters .tasks-filter-btn,
.products-catalog-row1-filters .tasks-filter-btn,
.requests-filter-toolbar .quotes-toolbar-filters .tasks-filter-btn {
  position: relative;
  justify-content: center;
  min-width: 7.5rem;
  max-width: 12rem;
  padding-right: 2rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  font-size: 0.875rem;
  color: #1f2937;
  text-align: center;
}
.customers-toolbar-filters .customers-filter-menu--company .tasks-filter-btn {
  max-width: 14rem;
}
.products-catalog-row1-filters .products-catalog-filter--price {
  max-width: 13rem;
}
.quotes-toolbar-filters .tasks-filter-btn > span,
.customers-toolbar-filters .tasks-filter-btn > span,
.products-catalog-row1-filters .tasks-filter-btn > span,
.requests-filter-toolbar .quotes-toolbar-filters .tasks-filter-btn > span {
  flex: 1;
  text-align: center;
}
.quotes-toolbar-filters .tasks-filter-btn > svg:not(.tasks-filter-chevron),
.customers-toolbar-filters .tasks-filter-btn > svg:not(.tasks-filter-chevron),
.products-catalog-row1-filters .tasks-filter-btn > svg:not(.tasks-filter-chevron),
.requests-filter-toolbar .quotes-toolbar-filters .tasks-filter-btn > svg:not(.tasks-filter-chevron) {
  position: absolute;
  left: 0.6rem;
  top: 50%;
  transform: translateY(-50%);
  flex-shrink: 0;
}
.quotes-toolbar-filters .tasks-filter-btn:has(> svg:not(.tasks-filter-chevron)),
.customers-toolbar-filters .tasks-filter-btn:has(> svg:not(.tasks-filter-chevron)),
.products-catalog-row1-filters .tasks-filter-btn:has(> svg:not(.tasks-filter-chevron)),
.requests-filter-toolbar .quotes-toolbar-filters .tasks-filter-btn:has(> svg:not(.tasks-filter-chevron)) {
  padding-left: 2rem;
}
.quotes-toolbar-filters .tasks-filter-btn .tasks-filter-chevron,
.customers-toolbar-filters .tasks-filter-btn .tasks-filter-chevron,
.products-catalog-row1-filters .tasks-filter-btn .tasks-filter-chevron,
.requests-filter-toolbar .quotes-toolbar-filters .tasks-filter-btn .tasks-filter-chevron {
  position: absolute;
  right: 0.6rem;
  top: 50%;
  transform: translateY(-50%);
}
.quotes-toolbar-filters .tasks-filter-menu.is-open .tasks-filter-btn .tasks-filter-chevron,
.customers-toolbar-filters .tasks-filter-menu.is-open .tasks-filter-btn .tasks-filter-chevron,
.products-catalog-row1-filters .tasks-filter-menu.is-open .tasks-filter-btn .tasks-filter-chevron,
.requests-filter-toolbar .quotes-toolbar-filters .tasks-filter-menu.is-open .tasks-filter-btn .tasks-filter-chevron {
  transform: translateY(-50%) rotate(180deg);
}
.quotes-toolbar-filters .tasks-filter-menu--align-end .tasks-filter-panel,
.quotes-toolbar-filters .tasks-filter-menu:last-of-type .tasks-filter-panel,
.customers-toolbar-filters .tasks-filter-menu--align-end .quotes-filter-panel,
.customers-toolbar-filters .tasks-filter-menu--align-end .tasks-filter-panel,
.customers-toolbar-filters .tasks-filter-menu:last-of-type .quotes-filter-panel,
.customers-toolbar-filters .tasks-filter-menu:last-of-type .tasks-filter-panel {
  left: auto;
  right: 0;
}
.quotes-filter-more-hint {
  margin: 0;
  font-size: 0.8125rem;
}
.quotes-clear-filters {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #7c3aed;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s ease;
}
.quotes-clear-filters:hover {
  color: var(--primary-hover);
}
.quotes-table-card {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.quotes-table-wrap {
  overflow-x: auto;
}
.quotes-modern-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.quotes-modern-table thead th {
  padding: 0.75rem 1rem;
  text-align: left;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  background: #f3f4f6;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.quotes-modern-table tbody td {
  padding: 1rem;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
  transition: background 0.12s ease;
}
.quotes-modern-table tbody tr.quotes-row--alt td {
  background: #f9f5ff;
}
.quotes-modern-table tbody tr:hover td {
  background: #f3e8ff;
}
.quotes-modern-table tbody tr:last-child td {
  border-bottom: none;
}
.quotes-cell-id a {
  font-weight: 600;
  color: #7c3aed;
  text-decoration: none;
  transition: color 0.15s ease;
}
.quotes-cell-id a:hover {
  color: var(--primary-hover);
  text-decoration: underline;
}
.quotes-cell-name {
  color: var(--text);
  font-weight: 500;
  max-width: 14rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.quotes-cell-client {
  color: var(--text);
  font-weight: 500;
}
.quotes-client-co {
  display: block;
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--muted);
}
.quotes-cell-amount {
  font-weight: 700;
  color: var(--text);
  white-space: nowrap;
}
.quotes-page .quote-status-badge {
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
}
.quotes-page .quote-status-badge--draft {
  background: #f3f4f6;
  color: #4b5563;
}
.quotes-page .quote-status-badge--saved {
  background: #dbeafe;
  color: #1d4ed8;
}
.quotes-page .quote-status-badge--sent_to_client {
  background: #d1fae5;
  color: #047857;
}
.quotes-cell-date {
  color: var(--muted);
  white-space: nowrap;
}
.quotes-actions-col,
.quotes-cell-actions {
  width: 4rem;
  text-align: center;
}
.quotes-cell-actions .quote-line-actions-wrap {
  display: flex;
  justify-content: center;
}
.quotes-page .products-catalog-menu-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 8px;
  color: var(--muted);
  transition: background 0.15s ease, color 0.15s ease;
}
.quotes-page .products-catalog-menu-trigger:hover {
  background: var(--accent-soft);
  color: #7c3aed;
}
.quotes-empty {
  text-align: center;
  padding: 2rem 1rem !important;
}
.quotes-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  padding: 0.875rem 1rem;
  border-top: 1px solid var(--border);
  background: #fafafa;
}
.quotes-pagination-summary {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--muted);
}
.quotes-pagination-nav {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.quotes-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.5rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--card);
  color: var(--text);
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.quotes-page-btn:hover:not(.is-disabled):not(.is-active) {
  border-color: #c4b5fd;
  color: #7c3aed;
}
.quotes-page-btn.is-active {
  background: #7c3aed;
  border-color: #7c3aed;
  color: #fff;
}
.quotes-page-btn.is-disabled {
  opacity: 0.45;
  pointer-events: none;
}
.quotes-page-ellipsis {
  padding: 0 0.25rem;
  color: var(--muted);
  font-size: 0.875rem;
}
.quotes-create-dialog .quote-create-input,
.quotes-create-dialog select.quote-create-input {
  width: 100%;
  margin-bottom: 0.75rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font: inherit;
}
.quotes-create-submit {
  color: #fff;
  font-weight: 700;
  background: #7c3aed;
}
.quotes-create-submit:hover {
  color: #fff;
  background: var(--primary-hover);
}

/* —— Cards & inputs (flat — no card chrome) —— */
.card {
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}
.card:hover { box-shadow: none; }
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
select,
textarea {
  font-size: var(--control-font-size);
  border: 1px solid var(--border);
  border-radius: var(--control-radius);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
input:not([type="checkbox"]):not([type="radio"]):focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--accent-soft);
}

/* —— Dropdowns & floating panels —— */
.nav-dropdown-menu,
.quote-line-menu-panel,
.quote-line-copy-panel {
  padding: 0.35rem;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--control-radius);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}
.nav-dropdown-menu:not([hidden]),
.quote-line-menu-panel:not([hidden]),
.quote-line-menu-panel.is-floating:not([hidden]),
.quote-line-copy-panel:not([hidden]),
.quote-line-copy-panel.is-floating:not([hidden]) {
  display: flex;
  flex-direction: column;
}
.nav-dropdown-item {
  border-radius: calc(var(--control-radius) - 2px);
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text);
  transition: background 0.15s ease, color 0.15s ease;
}
.nav-dropdown-item:hover:not(:disabled) {
  background: var(--accent-soft);
  color: var(--primary);
}
.nav-dropdown-item.active {
  background: transparent;
  color: var(--text);
  font-weight: 600;
}
.nav-dropdown-item:focus {
  outline: none;
}
.nav-dropdown-item:focus:not(:hover) {
  background: transparent;
  color: var(--text);
}
.nav-dropdown-item.active:focus:not(:hover) {
  font-weight: 600;
}
.nav-dropdown-item:disabled {
  color: var(--muted);
  opacity: 1;
  cursor: not-allowed;
}
.nav-dropdown-item--danger {
  color: var(--danger);
}
.nav-dropdown-item--danger:hover:not(:disabled) {
  background: #fef2f2;
  color: var(--danger);
}
.nav-dropdown-heading {
  color: var(--muted);
  letter-spacing: 0.05em;
}
.nav-dropdown-divider {
  background: var(--border);
  margin: 0.25rem 0.35rem;
}
.nav-dropdown.is-open > .nav-dropdown-trigger {
  color: var(--primary);
  background: var(--accent-soft);
}
.nav-dropdown-trigger:hover {
  color: var(--primary);
  background: var(--surface-hover);
}
.quote-line-menu .nav-dropdown-trigger.nav-icon-btn {
  border-radius: var(--control-radius);
  box-shadow: none;
  transition: background 0.15s ease, color 0.15s ease;
}
.quote-line-menu .nav-dropdown-trigger.nav-icon-btn:hover,
.quote-line-menu.is-open > .nav-dropdown-trigger.nav-icon-btn {
  background: var(--accent-soft);
  color: var(--primary);
}
.quote-line-menu-panel .nav-dropdown-item,
.quote-line-menu .nav-dropdown-menu .nav-dropdown-item {
  width: 100%;
}
.quote-line-copy-panel {
  gap: 0.5rem;
  padding: 0.65rem;
  min-width: 12.5rem;
}
.quote-line-copy-panel select {
  width: 100%;
  padding: 0.45rem 0.65rem;
  font-size: 0.875rem;
  border: 1px solid var(--border);
  border-radius: var(--control-radius);
  background: var(--card);
  color: var(--text);
}
.quote-line-copy-panel select:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.quote-line-copy-panel .btn {
  width: 100%;
  justify-content: center;
}

/* —— Quote product catalog picker —— */
.quote-product-picker {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  min-width: 0;
}
.quote-product-thumb-wrap {
  flex: 0 0 auto;
}
.quote-product-thumb {
  width: 40px;
  height: 40px;
  object-fit: cover;
  border-radius: 4px;
  display: block;
  background: #f3f4f6;
}
.quote-product-picker .quote-product-box {
  flex: 1 1 auto;
  min-width: 0;
}
.quote-product-box {
  display: flex;
  align-items: stretch;
  width: 100%;
  min-width: 9rem;
}
.quote-product-picker .quote-product-name-input {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.quote-catalog-dropdown {
  position: relative;
  flex: 0 0 2.35rem;
  flex-shrink: 0;
}
.quote-catalog-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  min-width: 2.35rem;
  height: 100%;
  min-height: 2.125rem;
  padding: 0;
  border: 1px solid var(--border);
  border-left: none;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-radius: 0 var(--control-radius) var(--control-radius) 0;
  background: #f8fafc;
  color: #64748b;
  font: inherit;
  cursor: pointer;
  box-shadow: none;
  outline: none;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.quote-catalog-trigger:hover:not(:disabled),
.quote-catalog-dropdown.is-open > .quote-catalog-trigger:not(:disabled) {
  background: var(--accent-soft);
  color: var(--primary);
  border-color: var(--border);
  box-shadow: none;
}
.quote-catalog-trigger:focus,
.quote-catalog-trigger:focus-visible {
  outline: none;
  box-shadow: none;
}
.quote-catalog-dropdown:not(.is-open) > .quote-catalog-trigger:not(:hover):not(:disabled) {
  background: #f8fafc;
  color: #64748b;
  border-color: var(--border);
}
.quote-line-row--locked .quote-product-picker .quote-catalog-trigger {
  border-left: 1px solid var(--border);
}
.quote-lines-table tr.quote-line-row--editing .quote-catalog-dropdown:not(.is-open) > .quote-catalog-trigger:not(:hover):not(:disabled) {
  border-color: #fcd34d;
  background: #fff;
  color: #64748b;
}
.quote-lines-table tr.quote-line-row--editing .quote-product-name-input:focus {
  border-color: #fcd34d;
  box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.28);
}
.quote-catalog-trigger:disabled {
  background: #f1f5f9;
  color: #94a3b8;
  opacity: 1;
  cursor: not-allowed;
}
.quote-catalog-trigger-icon {
  flex-shrink: 0;
  display: block;
}
.quote-catalog-menu,
.quote-product-menu {
  min-width: 11.5rem;
  max-width: 18rem;
  max-height: 14rem;
  overflow-y: auto;
}
.quote-product-menu.is-floating {
  position: fixed;
  z-index: 1300;
}
/* Match Actions menu items; suppress accidental hover until the pointer moves after open */
.quote-product-menu:not(.is-hover-armed) .nav-dropdown-item.quote-catalog-option:hover,
.quote-product-menu:not(.is-hover-armed) .nav-dropdown-item.quote-catalog-option:focus {
  background: transparent;
  color: var(--text);
  font-weight: 500;
}
.crm-quote-lines-section .quote-catalog-trigger {
  width: 2.35rem;
  min-width: 2.35rem;
}

/* —— Status badges (CRM palette) —— */
.quote-status-badge--draft { background: #f3f4f6; color: #4b5563; }
.quote-status-badge--saved { background: var(--accent-soft); color: var(--primary); }
.quote-status-badge--sent_to_client { background: #d1fae5; color: #047857; }
.crm-badge--negotiation { background: #ffedd5; color: #c2410c; }
.crm-badge--accepted { background: #d1fae5; color: #047857; }
.crm-badge--sent { background: var(--accent-soft); color: var(--primary); }

/* —— Landing —— */
body.is-landing .site-header {
  display: grid;
  grid-template-columns: 30% 40% 30%;
  align-items: center;
  gap: 0.5rem 1rem;
  background: var(--card);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}
body.is-landing .site-header-start {
  width: 100%;
  min-width: 0;
  justify-self: start;
}
body.is-landing .site-header-start .logo {
  max-width: 100%;
  min-width: 0;
}
body.is-landing .site-header-start .logo-text {
  min-width: 0;
}
body.is-landing .site-header-start .logo-soho,
body.is-landing .site-header-start .logo-byline {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.is-landing .crm-landing-nav {
  justify-self: center;
  width: 100%;
}
body.is-landing .header-nav {
  justify-self: end;
  width: 100%;
  min-width: 0;
}
body.is-landing .site-footer { display: none; }
body.is-landing .container {
  max-width: 72rem;
  margin: 0 auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.crm-landing-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  min-width: 0;
}
.crm-landing-nav a {
  color: var(--muted);
  text-decoration: none;
  font-size: 0.9375rem;
  font-weight: 500;
  transition: color 0.15s ease;
}
.crm-landing-nav a:hover { color: var(--primary); }
.crm-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: center;
  padding: 3rem 0 2.5rem;
  max-width: 72rem;
  margin: 0 auto;
}
.crm-hero h1 {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 1rem;
}
.crm-hero-lead {
  color: var(--muted);
  font-size: 1.0625rem;
  margin: 0 0 1.5rem;
  max-width: 32rem;
}
body.is-landing .crm-hero .btn:hover,
body.is-landing .header-nav > .btn:hover {
  color: #fff;
  font-weight: 700;
}
.crm-hero-visual {
  position: relative;
  min-height: 26rem;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
.crm-hero-visual__blobs {
  position: absolute;
  inset: -8% -6%;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.crm-hero-visual__blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(56px);
  opacity: 0.55;
  animation: crm-hero-blob-drift 18s ease-in-out infinite;
}
.crm-hero-visual__blob--1 {
  width: 55%;
  height: 55%;
  top: 8%;
  left: 10%;
  background: radial-gradient(circle, rgba(124, 58, 237, 0.45) 0%, rgba(124, 58, 237, 0) 70%);
}
.crm-hero-visual__blob--2 {
  width: 48%;
  height: 48%;
  bottom: 5%;
  right: 8%;
  background: radial-gradient(circle, rgba(236, 72, 153, 0.35) 0%, rgba(236, 72, 153, 0) 70%);
  animation-delay: -6s;
}
.crm-hero-visual__blob--3 {
  width: 40%;
  height: 40%;
  top: 42%;
  right: 28%;
  background: radial-gradient(circle, rgba(59, 130, 246, 0.3) 0%, rgba(59, 130, 246, 0) 70%);
  animation-delay: -12s;
}
@keyframes crm-hero-blob-drift {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(4%, -3%) scale(1.06); }
  66% { transform: translate(-3%, 4%) scale(0.96); }
}
.crm-hero-visual__stage {
  position: relative;
  z-index: 1;
  width: 100%;
  perspective: 1400px;
  perspective-origin: 50% 45%;
}
.crm-hero-visual__scene {
  position: relative;
  width: 100%;
  min-height: 26rem;
  transform-style: preserve-3d;
  transform: rotateX(6deg) rotateY(-8deg);
  will-change: transform;
}
.crm-hero-visual__card {
  position: absolute;
  transform-style: preserve-3d;
  border-radius: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  will-change: transform;
}
.crm-hero-visual__card--main {
  left: 50%;
  top: 50%;
  width: 92%;
  max-width: 34rem;
  padding: 0.5rem;
  transform: translate3d(-50%, -50%, 0);
}
.crm-hero-visual__chrome {
  display: flex;
  gap: 0.35rem;
  padding: 0.35rem 0.5rem 0.5rem;
}
.crm-hero-visual__chrome span {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: #e5e7eb;
}
.crm-hero-visual__chrome span:nth-child(1) { background: #fca5a5; }
.crm-hero-visual__chrome span:nth-child(2) { background: #fcd34d; }
.crm-hero-visual__chrome span:nth-child(3) { background: #86efac; }
.crm-hero-visual__dashboard {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
  border: 1px solid var(--border);
}
.crm-hero-visual__card--quote {
  left: -2%;
  top: 6%;
  width: 11.5rem;
  padding: 0.85rem 1rem;
}
.crm-hero-visual__card--client {
  right: -4%;
  bottom: 10%;
  width: 12.5rem;
  padding: 0.85rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.crm-hero-visual__card--trade {
  right: 2%;
  top: 2%;
  width: 11rem;
  padding: 0.85rem 1rem;
}
.crm-hero-visual__mini-head {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #6b7280;
  margin-bottom: 0.35rem;
}
.crm-hero-visual__mini-head svg {
  color: #7c3aed;
  flex-shrink: 0;
}
.crm-hero-visual__mini-value {
  margin: 0 0 0.45rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: #1f2937;
  letter-spacing: -0.02em;
}
.crm-hero-visual__mini-label {
  margin: 0 0 0.35rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #9ca3af;
}
.crm-hero-visual__mini-name {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: #1f2937;
}
.crm-hero-visual__mini-meta {
  margin: 0.35rem 0 0;
  font-size: 0.625rem;
  font-weight: 600;
  color: #6b7280;
  line-height: 1.3;
}
.crm-hero-visual__mini-invite {
  margin: 0.2rem 0 0;
  font-size: 0.5625rem;
  font-weight: 600;
  color: #9ca3af;
}
.crm-hero-visual__mini-invite code {
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 0.5625rem;
  color: #7c3aed;
  background: #faf5ff;
  padding: 0.08rem 0.28rem;
  border-radius: 4px;
  border: 1px solid #ede9fe;
}
.crm-hero-visual__trade-pie {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  margin: 0.3rem 0 0.15rem;
  background: conic-gradient(#7c3aed 0 42%, #a78bfa 42% 70%, #c4b5fd 70% 88%, #ede9fe 88% 100%);
  box-shadow: inset 0 0 0 4px #fff;
}
.crm-hero-visual__card .quote-status-badge {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  font-size: 0.5625rem;
  font-weight: 600;
  white-space: nowrap;
}
.crm-hero-visual__avatar {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #7c3aed, #a78bfa);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.crm-hero-visual__progress {
  display: flex;
  gap: 0.35rem;
  align-items: center;
}
.crm-hero-visual__progress-step {
  flex: 1;
  height: 0.35rem;
  border-radius: 999px;
  background: #e5e7eb;
}
.crm-hero-visual__progress-step.is-done {
  background: #7c3aed;
}
.crm-hero-visual__progress-step.is-active {
  background: linear-gradient(90deg, #7c3aed 50%, #e5e7eb 50%);
}
@media (prefers-reduced-motion: reduce) {
  .crm-hero-visual__blob {
    animation: none;
  }
  .crm-hero-visual__scene,
  .crm-hero-visual__card {
    will-change: auto;
  }
}
@media (max-width: 1024px) {
  .crm-hero-visual {
    min-height: 22rem;
  }
  .crm-hero-visual__scene {
    min-height: 22rem;
  }
  .crm-hero-visual__card--quote {
    left: 0;
    width: 10rem;
  }
  .crm-hero-visual__card--trade {
    right: 0;
    width: 9.5rem;
  }
  .crm-hero-visual__card--client {
    right: 0;
    width: 11rem;
  }
}
@media (max-width: 640px) {
  .crm-hero-visual {
    min-height: 18rem;
  }
  .crm-hero-visual__scene {
    min-height: 18rem;
    transform: rotateX(4deg) rotateY(-4deg) !important;
  }
  .crm-hero-visual__card--quote,
  .crm-hero-visual__card--trade {
    display: none;
  }
  .crm-hero-visual__card--client {
    right: 2%;
    bottom: 4%;
    width: 10.5rem;
  }
}
.crm-feature-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  max-width: 72rem;
  margin: 0 auto 3rem;
}
.crm-feature-card {
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  overflow: visible;
  display: flex;
  flex-direction: column;
  align-self: start;
  width: 100%;
  transition: transform 0.28s ease;
}
.crm-feature-card-copy {
  padding: 0 1.5rem 1.5rem;
}
.crm-feature-card-copy h2 {
  margin: 1.25rem 0 0.5rem;
  padding: 0;
}
.crm-feature-card-copy .text-muted {
  margin: 0;
  padding: 0;
}
@media (hover: hover) {
  .crm-feature-card-copy {
    opacity: 0;
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    overflow: hidden;
    transform: translateY(-0.5rem);
    transition:
      opacity 0.24s ease,
      max-height 0.32s ease,
      padding 0.32s ease,
      transform 0.24s ease;
  }
  .crm-feature-card:has(.crm-feature-illust:hover) .crm-feature-card-copy,
  .crm-feature-card:has(.crm-feature-illust:focus-visible) .crm-feature-card-copy {
    opacity: 1;
    max-height: 14rem;
    padding-bottom: 1.5rem;
    transform: translateY(0);
  }
  .crm-feature-card:has(.crm-feature-illust:hover),
  .crm-feature-card:has(.crm-feature-illust:focus-visible) {
    transform: translateY(-8px);
    z-index: 1;
  }
}
.crm-feature-illust {
  position: relative;
  width: 100%;
  height: 15.5rem;
  min-height: 15.5rem;
  padding: 0;
  background: transparent;
  border: none;
  overflow: visible;
  display: flex;
  flex-direction: column;
}
.crm-feature-illust .feat-quote,
.crm-feature-illust .feat-trade-dash,
.crm-feature-illust .feat-products {
  flex: 1;
  width: 100%;
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}
@media (hover: hover) {
  .crm-feature-illust {
    cursor: default;
  }
  .crm-feature-illust:focus {
    outline: none;
  }
  .crm-feature-illust:focus-visible {
    outline: 2px solid #7c3aed;
    outline-offset: -2px;
  }
}

/* Quote builder illustration */
.feat-quote {
  position: relative;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: 0 8px 20px rgba(124, 58, 237, 0.08);
  overflow: hidden;
}
.feat-quote__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.55rem 0.7rem;
  background: #f9fafb;
  border-bottom: 1px solid #e5e7eb;
}
.feat-quote__title {
  font-size: 0.6875rem;
  font-weight: 700;
  color: #1f2937;
}
.feat-quote__badges {
  position: relative;
  min-width: 5.75rem;
  height: 1.2rem;
  flex-shrink: 0;
}
.feat-quote__badges .feat-quote__badge {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0;
  white-space: nowrap;
  font-size: 0.5625rem;
  padding: 0.12rem 0.38rem;
}
.crm-feature-card.is-inview .feat-quote__badges .quote-status-badge--draft {
  animation: feat-quote-badge-draft 9s ease-in-out infinite;
}
.crm-feature-card.is-inview .feat-quote__badges .quote-status-badge--saved {
  animation: feat-quote-badge-saved 9s ease-in-out infinite;
}
.crm-feature-card.is-inview .feat-quote__badges .quote-status-badge--sent_to_client {
  animation: feat-quote-badge-sent 9s ease-in-out infinite;
}
@keyframes feat-quote-badge-draft {
  0%, 28% { opacity: 1; }
  32%, 100% { opacity: 0; }
}
@keyframes feat-quote-badge-saved {
  0%, 32% { opacity: 0; }
  36%, 62% { opacity: 1; }
  66%, 100% { opacity: 0; }
}
@keyframes feat-quote-badge-sent {
  0%, 62% { opacity: 0; }
  66%, 92% { opacity: 1; }
  96%, 100% { opacity: 0; }
}
.feat-quote__section {
  margin: 0;
  padding: 0.45rem 0.7rem 0.2rem;
  font-size: 0.625rem;
  font-weight: 700;
  color: #374151;
}
.feat-quote__table-head {
  display: grid;
  grid-template-columns: 1.2fr 0.7fr 0.45fr 0.75fr;
  gap: 0.35rem;
  padding: 0 0.7rem 0.25rem;
  font-size: 0.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #9ca3af;
}
.feat-quote__table {
  flex: 1;
  min-height: 0;
  padding: 0 0.7rem 0.25rem;
  overflow: hidden;
}
.feat-quote__head,
.feat-quote__section,
.feat-quote__table-head,
.feat-quote__foot {
  flex-shrink: 0;
}
.feat-quote__row {
  display: grid;
  grid-template-columns: 1.2fr 0.7fr 0.45fr 0.75fr;
  gap: 0.35rem;
  align-items: center;
  padding: 0.35rem 0;
  border-bottom: 1px dashed #f3f4f6;
  opacity: 0;
  transform: translateX(-12px);
}
.feat-quote__row--3 { border-bottom: none; }
.crm-feature-card.is-inview .feat-quote__row--1 {
  animation: feat-quote-row-in 8s ease-out infinite;
}
.crm-feature-card.is-inview .feat-quote__row--2 {
  animation: feat-quote-row-in 8s ease-out infinite;
  animation-delay: 0.6s;
}
.crm-feature-card.is-inview .feat-quote__row--3 {
  animation: feat-quote-row-in 8s ease-out infinite;
  animation-delay: 1.2s;
}
@keyframes feat-quote-row-in {
  0%, 8% { opacity: 0; transform: translateX(-12px); }
  14%, 88% { opacity: 1; transform: translateX(0); }
  96%, 100% { opacity: 0; transform: translateX(-8px); }
}
.feat-quote__cell {
  font-size: 0.625rem;
  font-weight: 600;
  color: #6b7280;
  white-space: nowrap;
}
.feat-quote__cell--name {
  color: #1f2937;
  overflow: hidden;
  text-overflow: ellipsis;
}
.feat-quote__cell--mono {
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 0.5625rem;
}
.feat-quote__add {
  position: absolute;
  right: 0.55rem;
  bottom: 2.15rem;
  width: 1.35rem;
  height: 1.35rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f3f4f6;
  color: #7c3aed;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1;
  padding: 0;
  cursor: default;
  opacity: 0;
}
.crm-feature-card.is-inview .feat-quote__add {
  animation: feat-quote-add-in 9s ease-out infinite;
}
@keyframes feat-quote-add-in {
  0%, 72% { opacity: 0; transform: scale(0.85); }
  78%, 92% { opacity: 1; transform: scale(1); }
  96%, 100% { opacity: 0; transform: scale(0.9); }
}
.feat-quote__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.7rem;
  background: #faf5ff;
  border-top: 1px solid #ede9fe;
  font-size: 0.625rem;
  font-weight: 600;
  color: #6b7280;
}
.feat-quote__total {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #7c3aed;
  opacity: 0;
  transform: scale(0.92);
}
.crm-feature-card.is-inview .feat-quote__total {
  animation: feat-quote-total-in 8s ease-out infinite;
  animation-delay: 1.8s;
}
@keyframes feat-quote-total-in {
  0%, 20% { opacity: 0; transform: scale(0.92); }
  28%, 88% { opacity: 1; transform: scale(1); }
  96%, 100% { opacity: 0; transform: scale(0.96); }
}
.feat-quote__cursor {
  position: absolute;
  left: 0.85rem;
  bottom: 2.35rem;
  width: 2px;
  height: 0.75rem;
  background: #7c3aed;
  opacity: 0;
}
.crm-feature-card.is-inview .feat-quote__cursor {
  animation: feat-quote-cursor 8s steps(1) infinite;
}
@keyframes feat-quote-cursor {
  0%, 24% { opacity: 0; }
  25%, 26% { opacity: 1; bottom: 2.35rem; }
  27%, 28% { opacity: 0; }
  40%, 41% { opacity: 1; bottom: 1.75rem; }
  42%, 43% { opacity: 0; }
  55%, 56% { opacity: 1; bottom: 1.15rem; }
  57%, 100% { opacity: 0; }
}

/* Trade status dashboard illustration (matches seller dashboard panel) */
.feat-trade-dash {
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: 0 8px 20px rgba(124, 58, 237, 0.08);
  padding: 0.7rem 0.75rem 0.65rem;
  overflow: hidden;
}
.feat-trade-dash__head {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin-bottom: 0.65rem;
  flex-shrink: 0;
}
.feat-trade-dash__title {
  font-size: 0.6875rem;
  font-weight: 700;
  color: #1f2937;
}
.feat-trade-dash__quote {
  font-size: 0.5625rem;
  font-weight: 600;
  color: #7c3aed;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.feat-trade-dash__body {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex: 1;
  min-height: 0;
  width: 100%;
}
.feat-trade-dash__pie {
  flex-shrink: 0;
  width: 4.25rem;
  height: 4.25rem;
  border-radius: 50%;
  background: conic-gradient(#7c3aed 0 42%, #a78bfa 42% 70%, #c4b5fd 70% 88%, #ede9fe 88% 100%);
  box-shadow: inset 0 0 0 6px #fff;
}
.crm-feature-card.is-inview .feat-trade-dash__pie {
  animation: feat-trade-dash-spin 10s ease-in-out infinite;
}
@keyframes feat-trade-dash-spin {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(18deg); }
}
.feat-trade-dash__legend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-width: 0;
  flex: 1;
}
.feat-trade-dash__legend-item {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  width: 100%;
  font-size: 0.5rem;
  font-weight: 600;
  color: #6b7280;
  line-height: 1.2;
}
.feat-trade-dash__legend-item span {
  flex-shrink: 0;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 2px;
}
.feat-trade-dash__legend-item::after {
  content: "";
  flex: 1 1 auto;
  min-width: 0.75rem;
  height: 0.3rem;
  border-radius: 999px;
  background: #f3f4f6;
}
.feat-trade-dash__legend-item--1::after {
  background: linear-gradient(90deg, #7c3aed 42%, #f3f4f6 42%);
}
.feat-trade-dash__legend-item--2::after {
  background: linear-gradient(90deg, #a78bfa 28%, #f3f4f6 28%);
}
.feat-trade-dash__legend-item--3::after {
  background: linear-gradient(90deg, #c4b5fd 18%, #f3f4f6 18%);
}
.feat-trade-dash__legend-item--4::after {
  background: linear-gradient(90deg, #ede9fe 12%, #f3f4f6 12%);
}
.feat-trade-dash__legend-item--1 span { background: #7c3aed; }
.feat-trade-dash__legend-item--2 span { background: #a78bfa; }
.feat-trade-dash__legend-item--3 span { background: #c4b5fd; }
.feat-trade-dash__legend-item--4 span { background: #ede9fe; }
.crm-feature-card.is-inview .feat-trade-dash__legend-item--1 {
  animation: feat-trade-legend-1 8s ease-in-out infinite;
}
.crm-feature-card.is-inview .feat-trade-dash__legend-item--2 {
  animation: feat-trade-legend-2 8s ease-in-out infinite;
}
.crm-feature-card.is-inview .feat-trade-dash__legend-item--3 {
  animation: feat-trade-legend-3 8s ease-in-out infinite;
}
.crm-feature-card.is-inview .feat-trade-dash__legend-item--4 {
  animation: feat-trade-legend-4 8s ease-in-out infinite;
}
@keyframes feat-trade-legend-1 {
  0%, 18% { color: #7c3aed; transform: translateX(0); }
  24%, 100% { color: #6b7280; transform: translateX(0); }
}
@keyframes feat-trade-legend-2 {
  0%, 24% { color: #6b7280; }
  30%, 48% { color: #7c3aed; transform: translateX(2px); }
  54%, 100% { color: #6b7280; transform: translateX(0); }
}
@keyframes feat-trade-legend-3 {
  0%, 48% { color: #6b7280; }
  54%, 72% { color: #7c3aed; transform: translateX(2px); }
  78%, 100% { color: #6b7280; transform: translateX(0); }
}
@keyframes feat-trade-legend-4 {
  0%, 72% { color: #6b7280; }
  78%, 90% { color: #047857; transform: translateX(2px); }
  96%, 100% { color: #6b7280; transform: translateX(0); }
}
.feat-trade-dash__foot {
  margin: auto 0 0;
  padding-top: 0.55rem;
  font-size: 0.5625rem;
  font-weight: 600;
  color: #9ca3af;
}

/* Product catalog illustration */
.feat-products {
  position: relative;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: 0 8px 20px rgba(124, 58, 237, 0.08);
  overflow: hidden;
}
.feat-products__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.55rem 0.7rem;
  background: #f9fafb;
  border-bottom: 1px solid #e5e7eb;
  font-size: 0.6875rem;
  font-weight: 700;
  color: #1f2937;
}
.feat-products__currency {
  padding: 0.1rem 0.4rem;
  border-radius: 6px;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #7c3aed;
  font-size: 0.5625rem;
  font-weight: 600;
}
.feat-products__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  padding: 0.4rem 0.7rem;
  border-bottom: 1px solid #f3f4f6;
}
.feat-products__filter {
  padding: 0.2rem 0.45rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #f9fafb;
  font-size: 0.5rem;
  font-weight: 600;
  color: #6b7280;
}
.feat-products__head,
.feat-products__filters,
.feat-products__table-head {
  flex-shrink: 0;
}
.feat-products__table-head {
  display: grid;
  grid-template-columns: 0.55rem 1.1fr 0.65fr 0.7fr 0.65fr;
  gap: 0.3rem;
  padding: 0.35rem 0.7rem;
  font-size: 0.5rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #9ca3af;
  border-bottom: 1px solid #f3f4f6;
}
.feat-products__row {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 0.55rem 1.1fr 0.65fr 0.7fr 0.65fr;
  gap: 0.3rem;
  align-items: center;
  padding: 0.4rem 0.7rem;
  border-bottom: 1px solid #f3f4f6;
  opacity: 0;
  transform: translateY(8px);
}
.feat-products__row--2 {
  grid-template-columns: 0.55rem 1.1fr 0.65fr 0.7fr 0.65fr;
  z-index: 2;
}
.feat-products__row--3 { border-bottom: none; }
.crm-feature-card.is-inview .feat-products__row--2::before {
  content: "";
  position: absolute;
  inset: 0.1rem 0.25rem;
  border-radius: 6px;
  border: 2px solid transparent;
  pointer-events: none;
  z-index: -1;
  animation: feat-products-row-highlight 9s ease-in-out infinite;
}
@keyframes feat-products-row-highlight {
  0%, 38% {
    opacity: 0;
    border-color: transparent;
    box-shadow: none;
  }
  44%, 72% {
    opacity: 1;
    border-color: rgba(124, 58, 237, 0.55);
    box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.12);
  }
  78%, 100% {
    opacity: 0;
    border-color: transparent;
    box-shadow: none;
  }
}
.feat-products__col-check {
  display: flex;
  align-items: center;
  justify-content: center;
}
.feat-products__check {
  width: 0.55rem;
  height: 0.55rem;
  border: 1px solid #d1d5db;
  border-radius: 3px;
  background: #fff;
}
.feat-products__check.is-checked {
  background: #7c3aed;
  border-color: #7c3aed;
  box-shadow: inset 0 0 0 1px #fff;
}
.feat-products__price {
  font-size: 0.5625rem;
  font-weight: 700;
  color: #1f2937;
}
.feat-products__action {
  position: absolute;
  right: 0.45rem;
  top: 50%;
  transform: translateY(-50%);
  padding: 0.15rem 0.35rem;
  border: 1px solid #7c3aed;
  border-radius: 6px;
  background: #fff;
  color: #7c3aed;
  font-size: 0.4375rem;
  font-weight: 700;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
}
.crm-feature-card.is-inview .feat-products__row--2 .feat-products__action {
  animation: feat-products-action-in 9s ease-out infinite;
}
@keyframes feat-products-action-in {
  0%, 38% { opacity: 0; transform: translateY(-50%) scale(0.92); }
  44%, 72% { opacity: 1; transform: translateY(-50%) scale(1); }
  78%, 100% { opacity: 0; transform: translateY(-50%) scale(0.96); }
}
.crm-feature-card.is-inview .feat-products__row--1 {
  animation: feat-products-row-in 9s ease-out infinite;
}
.crm-feature-card.is-inview .feat-products__row--2 {
  animation: feat-products-row-in 9s ease-out infinite;
  animation-delay: 0.35s;
}
.crm-feature-card.is-inview .feat-products__row--3 {
  animation: feat-products-row-in 9s ease-out infinite;
  animation-delay: 0.7s;
}
@keyframes feat-products-row-in {
  0%, 6% { opacity: 0; transform: translateY(8px); }
  12%, 90% { opacity: 1; transform: translateY(0); }
  98%, 100% { opacity: 0; transform: translateY(4px); }
}
.feat-products__name {
  font-size: 0.5625rem;
  font-weight: 600;
  color: #1f2937;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.feat-products__sku {
  font-size: 0.5rem;
  font-weight: 500;
  color: #9ca3af;
  font-family: var(--font-mono, ui-monospace, monospace);
}
.feat-products .products-catalog-stock {
  font-size: 0.4375rem;
  padding: 0.1rem 0.25rem;
  white-space: nowrap;
}
.crm-feature-card.is-inview .feat-products__row--2 .products-catalog-stock {
  animation: feat-products-stock-pulse 9s ease-in-out infinite;
}
@keyframes feat-products-stock-pulse {
  0%, 35% { transform: scale(1); }
  42%, 52% { transform: scale(1.08); }
  58%, 100% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .crm-feature-card.is-inview .feat-quote__row,
  .crm-feature-card.is-inview .feat-quote__total,
  .crm-feature-card.is-inview .feat-quote__cursor,
  .crm-feature-card.is-inview .feat-quote__add,
  .crm-feature-card.is-inview .feat-quote__badges .feat-quote__badge,
  .crm-feature-card.is-inview .feat-trade-dash__pie,
  .crm-feature-card.is-inview .feat-trade-dash__legend-item,
  .crm-feature-card.is-inview .feat-products__row,
  .crm-feature-card.is-inview .feat-products__action,
  .crm-feature-card.is-inview .feat-products .products-catalog-stock {
    animation: none !important;
    opacity: 1;
    transform: none;
  }
  .crm-feature-card.is-inview .feat-quote__badges .quote-status-badge--sent_to_client { opacity: 1; }
  .crm-feature-card.is-inview .feat-quote__badges .quote-status-badge--draft,
  .crm-feature-card.is-inview .feat-quote__badges .quote-status-badge--saved { opacity: 0; }
  .crm-feature-card.is-inview .feat-products__action { opacity: 1; transform: translateY(-50%); }
}
.crm-compare-section {
  max-width: 72rem;
  margin: 0 auto 3rem;
}
.crm-compare-section h2 {
  text-align: center;
  font-size: 1.75rem;
  margin: 0 0 1.5rem;
}
.crm-compare-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  background: var(--card);
}
.crm-compare-table th,
.crm-compare-table td {
  padding: 0.875rem 1rem;
  border-bottom: 1px solid var(--border);
  text-align: center;
}
.crm-compare-table th:first-child,
.crm-compare-table td:first-child { text-align: left; }
.crm-compare-table thead th {
  background: #f9fafb;
  font-weight: 600;
}
.crm-compare-table .col-highlight {
  background: var(--accent-soft);
  color: var(--primary);
  font-weight: 600;
}
.crm-compare-mark { font-size: 1.125rem; }
.crm-compare-mark--yes { color: var(--primary); }
.crm-compare-mark--no { color: #9ca3af; }
.crm-landing-footer {
  border-top: 1px solid var(--border);
  padding: 2rem 1.5rem;
  margin-top: 2rem;
  background: var(--card);
}
.crm-landing-footer-inner {
  max-width: 72rem;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.crm-landing-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
}
.crm-landing-footer-links a {
  color: var(--muted);
  text-decoration: none;
  font-size: 0.875rem;
}
.crm-landing-footer-links a:hover { color: var(--primary); }

/* —— Seller shell —— */
body.has-seller-shell .site-header { display: none; }
body.has-seller-shell .site-footer { display: none; }
body.has-seller-shell .app-shell {
  min-height: 100vh;
  align-items: stretch;
}
body.has-seller-shell .app-main {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-width: 0;
  background: var(--bg);
}
body.has-seller-shell .container {
  max-width: none;
  padding: 1.5rem 1.5rem 2rem;
  flex: 1;
  width: 100%;
  box-sizing: border-box;
  overflow-x: visible;
}

.seller-sidebar {
  --sidebar-width: 16.25rem;
  --sidebar-collapsed-width: 4.25rem;
  width: var(--sidebar-width);
  background: var(--card);
  border-right: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}
.seller-sidebar-brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 1.25rem 1rem 1rem;
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid var(--border);
}
.seller-sidebar-brand .logo-mark { width: 2rem; height: 2rem; }
.seller-sidebar.is-collapsed .seller-sidebar-brand .logo-text { display: none; }
.seller-sidebar-link.is-active {
  background: var(--primary);
  color: #fff;
}
.seller-sidebar-link.is-active .seller-nav-icon { color: #fff; }
.seller-sidebar-link.is-active:hover {
  background: var(--primary-hover);
  color: #fff;
}
.seller-sidebar-link.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: default;
}

.seller-topbar {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 1.5rem;
  background: var(--card);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 40;
}
.seller-topbar-search {
  flex: 1;
  max-width: 28rem;
  position: relative;
}
.seller-topbar-search input {
  width: 100%;
  padding: 0.5rem 0.75rem 0.5rem 2.25rem;
  border-radius: 999px;
  background: #f9fafb;
  border: 1px solid var(--border);
  font-size: 0.875rem;
}
.seller-topbar-search svg {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
}
.seller-topbar-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: auto;
}
.seller-topbar-icon-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border: none;
  border-radius: var(--control-radius);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.seller-topbar-icon-btn:hover {
  background: var(--accent-soft);
  color: var(--primary);
}
.seller-topbar-badge {
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 1rem;
  height: 1rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: var(--primary);
  color: #fff;
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 1rem;
  text-align: center;
}
.nav-dropdown--user-menu {
  position: relative;
  flex-shrink: 0;
}
.nav-dropdown--user-menu .nav-dropdown-menu--user {
  right: 0;
  min-width: 12.5rem;
}
.seller-topbar-user {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.25rem 0.5rem;
  border: none;
  border-radius: var(--control-radius);
  background: transparent;
  cursor: pointer;
  font: inherit;
  color: var(--text);
  max-width: 14rem;
}
.seller-topbar-user.nav-dropdown-trigger::after {
  display: none;
}
.seller-topbar-user:hover,
.nav-dropdown--user-menu.is-open > .seller-topbar-user {
  background: var(--accent-soft);
  color: var(--primary);
}
.seller-topbar-user-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.875rem;
  font-weight: 500;
}
.seller-topbar-avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--accent-soft);
  color: var(--primary);
  font-weight: 700;
  font-size: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* —— Dashboard —— */
.crm-page-header { margin-bottom: 1.5rem; }
.crm-page-header h1 {
  font-size: 1.75rem;
  font-weight: 700;
  margin: 0 0 0.25rem;
}
.crm-page-header p { margin: 0; color: var(--muted); }
.crm-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.crm-kpi-card {
  padding: 0 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  background: transparent;
  border: none;
  box-shadow: none;
}
.crm-kpi-card-top {
  display: grid;
  grid-template-columns: 3rem 1fr 3rem;
  align-items: center;
  column-gap: 0.75rem;
  width: 100%;
}
.crm-kpi-card-body {
  grid-column: 2;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  text-align: center;
}
.crm-kpi-icon {
  width: 3rem;
  height: 3rem;
  border-radius: var(--control-radius);
  background: var(--accent-soft);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.crm-kpi-link {
  text-decoration: none;
  transition: color 0.15s ease, background 0.15s ease;
}
a.crm-kpi-icon:hover,
a.crm-kpi-icon:focus-visible {
  background: var(--primary);
  color: #fff;
  outline: none;
}
a.crm-kpi-icon:hover .seller-nav-icon,
a.crm-kpi-icon:focus-visible .seller-nav-icon {
  color: #fff;
}
a.crm-kpi-value {
  display: block;
  color: var(--text);
}
a.crm-kpi-value:hover,
a.crm-kpi-value:focus-visible {
  color: var(--primary);
  outline: none;
}
.crm-kpi-label {
  font-size: 0.8125rem;
  color: var(--muted);
  margin: 0;
}
.crm-kpi-value {
  font-size: 1.75rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.1;
}
.crm-kpi-trend {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--success);
  margin: 0;
  text-align: center;
}
.crm-dashboard-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 1.5rem;
}
.crm-dashboard-grid > .card {
  background: transparent;
  padding: 0 0 1.5rem;
  box-sizing: border-box;
  margin-bottom: 0;
}
body.has-seller-shell.dashboard-page .crm-kpi-grid > .card,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card {
  border: 1px solid transparent;
  border-radius: var(--radius);
  padding: 1.25rem 1.35rem;
  box-sizing: border-box;
  background: transparent;
  box-shadow: none;
  outline: none;
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
body.has-seller-shell.dashboard-page .crm-kpi-grid > .card:hover,
body.has-seller-shell.dashboard-page .crm-kpi-grid > .card:focus-within,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:hover,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:focus-within {
  border-color: var(--section-hover-border);
  background: var(--section-hover-bg);
  box-shadow: none;
}
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:hover .crm-recent-quotes__table-wrap,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:focus-within .crm-recent-quotes__table-wrap,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:hover .crm-pie-chart,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:focus-within .crm-pie-chart,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:hover select,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:focus-within select,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:hover input,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:focus-within input,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:hover textarea,
body.has-seller-shell.dashboard-page .crm-dashboard-grid > .card:focus-within textarea {
  background-color: var(--bg);
}
.crm-recent-quotes .crm-panel-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
  margin-bottom: 0.75rem;
}
.crm-recent-quotes .crm-panel-header h2 {
  margin: 0;
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.35;
  overflow: visible;
  white-space: normal;
}
.crm-recent-quotes .crm-panel-header .btn {
  justify-self: end;
  white-space: nowrap;
}
.crm-recent-quotes__table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0;
}
.crm-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.crm-panel-header h2 { font-size: 1.0625rem; margin: 0; }
.crm-table-modern {
  width: 100%;
  border-collapse: collapse;
}
.crm-table-modern thead th {
  background: #f9fafb;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--muted);
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid var(--border);
}
.crm-table-modern tbody tr:nth-child(even) { background: #f9f5ff; }
.crm-table-modern tbody tr:hover { background: #f3e8ff; }
.crm-table-modern td {
  padding: 0.75rem;
  border-bottom: 1px solid var(--border);
  font-size: 0.875rem;
}
.crm-pie-chart {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.crm-pie-visual {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: conic-gradient(
    #7c3aed 0 42%,
    #a78bfa 42% 70%,
    #c4b5fd 70% 88%,
    #ede9fe 88% 100%
  );
  flex-shrink: 0;
}
.crm-pie-legend { list-style: none; margin: 0; padding: 0; }
.crm-pie-legend li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  margin-bottom: 0.35rem;
}
.crm-pie-swatch {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 2px;
  flex-shrink: 0;
}
.crm-pie-foot {
  margin-top: 1rem;
  font-size: 0.875rem;
  color: var(--muted);
}

/* —— Quote detail layout —— */
.crm-quote-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.crm-quote-header h1 { margin: 0; font-size: 1.75rem; }
.crm-quote-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 0.35rem;
  color: var(--muted);
  font-size: 0.875rem;
}
.crm-quote-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.crm-quote-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
.crm-quote-grid-2 .crm-info-card,
.crm-quote-lines-section .card-table {
  border: none;
  box-shadow: none;
  background: transparent;
  padding: 0;
  margin-bottom: 0;
}
.crm-quote-grid-2 .crm-info-card:hover,
.crm-quote-lines-section .card-table:hover {
  box-shadow: none;
}
.crm-quote-lines-section .card-table > h2 {
  margin: 0 0 0.75rem;
  font-size: 0.9375rem;
  font-weight: 600;
}
.crm-info-card h3 {
  font-size: 0.9375rem;
  margin: 0 0 1rem;
  font-weight: 600;
}
.crm-info-row {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: 0.5rem;
  font-size: 0.875rem;
  margin-bottom: 0.65rem;
}
.crm-info-row dt { color: var(--muted); margin: 0; }
.crm-info-row dd { margin: 0; font-weight: 500; }
.crm-quote-side-col {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.crm-placeholder-panel {
  padding: 1.25rem;
  color: var(--muted);
  font-size: 0.875rem;
}
.crm-upload-zone {
  border: 2px dashed var(--border);
  border-radius: var(--radius);
  padding: 1.5rem;
  text-align: center;
  background: #fafafa;
}
.crm-quote-lines-section { margin-top: 0; min-width: 0; width: 100%; max-width: 100%; box-sizing: border-box; }
.crm-quote-lines-section .card-table { margin-top: 0; }
.crm-quote-lines-section .quote-lines-card {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Quote lines & products table: slim rails + bottom hover scrollbar */
.crm-quote-lines-section .quote-table-scroll-shell,
.products-page .quote-table-scroll-shell {
  position: relative;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.crm-quote-lines-section .table-scroll--hidden-bar,
.products-page .table-scroll--hidden-bar {
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.crm-quote-lines-section .table-scroll--hidden-bar::-webkit-scrollbar,
.products-page .table-scroll--hidden-bar::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
.crm-quote-lines-section .table-scroll--hidden-bar .quote-lines-table,
.products-page .table-scroll--hidden-bar .quote-lines-table {
  touch-action: pan-x pan-y;
}
.crm-quote-lines-section .table-scroll > .quote-lines-table {
  width: max-content;
  min-width: 100%;
  max-width: none;
}
.crm-quote-lines-section .quote-hscroll-bar,
.products-page .quote-hscroll-bar {
  margin-top: 0;
  padding: 0.35rem 0 0.15rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
}
.crm-quote-lines-section .quote-table-scroll-shell.is-hscroll-hover .quote-hscroll-bar,
.products-page .quote-table-scroll-shell.is-hscroll-hover .quote-hscroll-bar,
.crm-quote-lines-section .quote-table-scroll-shell.has-table-hscroll .quote-hscroll-bar,
.products-page .quote-table-scroll-shell.has-table-hscroll .quote-hscroll-bar {
  opacity: 1;
  pointer-events: auto;
}
.crm-quote-lines-section .quote-hscroll-track,
.products-page .quote-hscroll-track {
  height: 10px;
  background: #e2e8f0;
  border-radius: 999px;
  position: relative;
  cursor: pointer;
}
.crm-quote-lines-section .quote-hscroll-thumb,
.products-page .quote-hscroll-thumb {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  min-width: 48px;
  background: #64748b;
  border-radius: 999px;
  cursor: grab;
  will-change: transform;
  transition: background 0.15s ease;
}
.crm-quote-lines-section .quote-hscroll-thumb:hover,
.products-page .quote-hscroll-thumb:hover {
  background: #475569;
}
.crm-quote-lines-section .quote-hscroll-thumb:active,
.products-page .quote-hscroll-thumb:active {
  cursor: grabbing;
  background: #334155;
}
.products-page .table-scroll > .quote-lines-table {
  width: max-content;
  min-width: 100%;
  max-width: none;
}
.crm-quote-lines-section .quote-line-status-col {
  min-width: 4.75rem;
  width: 4.75rem;
  max-width: 4.75rem;
  padding: 0.3rem 0.35rem;
  line-height: 1.25;
  white-space: normal;
  text-align: center;
}
.crm-quote-lines-section .quote-line-status-cell {
  padding: 0.3rem 0.35rem;
  text-align: center;
}
.crm-quote-lines-section .quote-line-status-cell .quote-status-badge {
  display: inline-block;
  margin: 0;
  max-width: 100%;
  font-size: 0.625rem;
  padding: 0.08rem 0.3rem;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
}
.crm-quote-lines-section .quote-line-actions-col {
  width: 5.25rem;
  min-width: 5.25rem;
  max-width: none;
  padding: 0.35rem 0.5rem;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
  overflow: visible;
}
.crm-quote-lines-section .quote-line-actions {
  width: 5.25rem;
  min-width: 5.25rem;
  padding: 0.35rem 0.5rem;
  text-align: center;
  overflow: visible;
}
/* —— Quotes list: client picker + create —— */
.quotes-client-picker {
  position: relative;
  flex: 1;
  min-width: 0;
  max-width: 28rem;
}
.quotes-client-picker-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  padding: 0.55rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: var(--control-radius);
  background: var(--card);
  color: var(--text);
  font: inherit;
  font-size: 0.9375rem;
  font-weight: 500;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.quotes-client-picker-trigger:hover,
.quotes-client-picker.is-open > .quotes-client-picker-trigger {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.quotes-client-picker-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
}
.quotes-client-picker-chevron {
  flex-shrink: 0;
  color: var(--muted);
  transition: transform 0.15s ease;
}
.quotes-client-picker.is-open .quotes-client-picker-chevron {
  transform: rotate(180deg);
}
.quotes-client-picker-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  z-index: 200;
  display: flex;
  flex-direction: column;
  max-height: 18rem;
  padding: 0.35rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow-lg);
}
.quotes-client-picker-menu[hidden] {
  display: none !important;
}
.quotes-client-picker-search-wrap {
  position: relative;
  flex-shrink: 0;
  margin-bottom: 0.35rem;
}
.quotes-client-picker-search-wrap svg {
  position: absolute;
  left: 0.65rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
}
.quotes-client-picker-search {
  width: 100%;
  padding: 0.45rem 0.65rem 0.45rem 2rem;
  border: 1px solid var(--border);
  border-radius: var(--control-radius);
  background: #f9fafb;
  font: inherit;
  font-size: 0.875rem;
}
.quotes-client-picker-search:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.quotes-client-picker-list {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-y: auto;
}
.quotes-client-picker-option {
  display: block;
  width: 100%;
  padding: 0.5rem 0.65rem;
  border: none;
  border-radius: calc(var(--control-radius) - 2px);
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 0.875rem;
  text-align: left;
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease;
}
.quotes-client-picker-option:hover,
.quotes-client-picker-option:focus-visible {
  background: var(--accent-soft);
  color: var(--primary);
  outline: none;
}
.quotes-client-picker-option.is-active {
  font-weight: 600;
  color: var(--primary);
}
.quotes-client-picker-empty {
  margin: 0.5rem 0.65rem;
  font-size: 0.8125rem;
}

/* —— Currency, nationality & template pickers (customer form) —— */
.currency-picker,
.nationality-picker,
.template-picker {
  position: relative;
  width: 100%;
}
.currency-picker-trigger,
.nationality-picker-trigger,
.template-picker-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: var(--control-radius);
  background: var(--card);
  color: var(--text);
  font: inherit;
  font-size: 0.9375rem;
  font-weight: 500;
  cursor: pointer;
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.currency-picker-trigger:hover,
.currency-picker.is-open > .currency-picker-trigger,
.nationality-picker-trigger:hover,
.nationality-picker.is-open > .nationality-picker-trigger,
.template-picker-trigger:hover,
.template-picker.is-open > .template-picker-trigger {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.currency-picker-label,
.nationality-picker-label,
.template-picker-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
}
.currency-picker-chevron,
.nationality-picker-chevron,
.template-picker-chevron {
  flex-shrink: 0;
  color: var(--muted);
  transition: transform 0.15s ease;
}
.currency-picker.is-open .currency-picker-chevron,
.nationality-picker.is-open .nationality-picker-chevron,
.template-picker.is-open .template-picker-chevron {
  transform: rotate(180deg);
}
.currency-picker-menu,
.nationality-picker-menu,
.template-picker-menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  z-index: 200;
  display: flex;
  flex-direction: column;
  max-height: 16rem;
  padding: 0.35rem;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--card);
  box-shadow: var(--shadow-lg);
}
.currency-picker-menu[hidden],
.nationality-picker-menu[hidden],
.template-picker-menu[hidden] {
  display: none !important;
}
.currency-picker-search-wrap,
.nationality-picker-search-wrap,
.template-picker-search-wrap {
  flex-shrink: 0;
  margin-bottom: 0.35rem;
}
.currency-picker-search,
.nationality-picker-search,
.template-picker-search {
  width: 100%;
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: var(--control-radius);
  background: #f9fafb;
  font: inherit;
  font-size: 0.875rem;
  box-sizing: border-box;
}
.currency-picker-search:focus,
.nationality-picker-search:focus,
.template-picker-search:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.currency-picker-list,
.nationality-picker-list,
.template-picker-list {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-y: auto;
}
.currency-picker-option,
.nationality-picker-option,
.template-picker-option {
  display: block;
  width: 100%;
  padding: 0.5rem 0.65rem;
  border: none;
  border-radius: calc(var(--control-radius) - 2px);
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 0.875rem;
  text-align: left;
  cursor: pointer;
  transition: background 0.12s ease, color 0.12s ease;
}
.currency-picker-option:hover,
.currency-picker-option:focus-visible,
.nationality-picker-option:hover,
.nationality-picker-option:focus-visible,
.template-picker-option:hover,
.template-picker-option:focus-visible {
  background: var(--accent-soft);
  color: var(--primary);
  outline: none;
}
.currency-picker-option.is-active,
.nationality-picker-option.is-active,
.template-picker-option.is-active {
  font-weight: 600;
  color: var(--primary);
}
.currency-picker-empty,
.nationality-picker-empty,
.template-picker-empty {
  margin: 0.5rem 0.65rem;
  font-size: 0.8125rem;
}

.page-title-leading {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 0 0 auto;
  min-width: 0;
}
.page-title-leading h1 {
  margin: 0;
  flex: 0 1 auto;
}
.page-title-search {
  position: relative;
  flex: 0 1 22rem;
  width: 22rem;
  max-width: 100%;
  min-width: 10rem;
  margin-left: auto;
}
.page-title-search svg {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  pointer-events: none;
}
.page-title-search-input {
  width: 100%;
  padding: 0.5rem 0.75rem 0.5rem 2.25rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #f9fafb;
  font: inherit;
  font-size: 0.875rem;
  box-sizing: border-box;
}
.page-title-search-input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.page-title-add-btn,
.quotes-new-quote-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: none;
  border-radius: var(--control-radius);
  background: var(--primary);
  color: #fff;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: background 0.15s ease, transform 0.12s ease;
}
.page-title-add-btn:hover,
.quotes-new-quote-btn:hover {
  background: var(--primary-hover, #6d28d9);
  color: #fff;
}
.page-title-add-btn:active,
.quotes-new-quote-btn:active {
  transform: scale(0.96);
}
.quote-create-form {
  margin: 0;
}
.quote-create-label {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text);
}
.quote-create-input {
  width: 100%;
  margin-bottom: 1.1rem;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: var(--control-radius);
  font: inherit;
  font-size: 0.9375rem;
  box-sizing: border-box;
}
.quote-create-input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--accent-soft);
}
.quote-create-form .confirm-modal-actions {
  margin-top: 0;
}

.quotes-list-table .quote-line-actions-col,
.quotes-modern-table .quotes-actions-col,
.customers-list-table .quote-line-actions-col,
.customers-modern-table .customers-actions-col {
  width: 5.25rem;
  min-width: 5.25rem;
  padding: 0.35rem 0.5rem;
  text-align: center;
  position: static;
  box-shadow: none;
}
.quotes-list-table .quote-line-actions,
.quotes-modern-table .quotes-cell-actions,
.customers-list-table .quote-line-actions,
.customers-modern-table .customers-cell-actions {
  width: 5.25rem;
  min-width: 5.25rem;
  padding: 0.35rem 0.5rem;
  text-align: center;
  overflow: visible;
  position: static;
  box-shadow: none;
  vertical-align: middle;
}
.quotes-list-table .quote-line-actions-wrap,
.quotes-modern-table .quote-line-actions-wrap,
.customers-list-table .quote-line-actions-wrap,
.customers-modern-table .quote-line-actions-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
}
.quotes-list-table .quote-line-menu.nav-dropdown,
.quotes-modern-table .quote-line-menu.nav-dropdown,
.customers-list-table .quote-line-menu.nav-dropdown,
.customers-modern-table .quote-line-menu.nav-dropdown {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
}
.crm-quote-lines-section .quote-line-actions-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
}
.crm-quote-lines-section .quote-line-save-btn {
  width: 2rem;
  height: 2rem;
  min-width: 2rem;
}
.crm-quote-lines-section .quote-line-menu-trigger {
  width: 2rem;
  height: 2rem;
  min-width: 2rem;
}
.crm-quote-lines-section .quote-line-menu-trigger svg {
  width: 16px;
  height: 16px;
}
.crm-quote-layout-3 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 17.5rem;
  gap: 1rem;
  align-items: start;
}
.crm-info-rows { margin: 0; padding: 0; }
.crm-feature-card-copy h2 {
  font-size: 1.0625rem;
}
@media (max-width: 1024px) {
  .crm-quote-layout-3 { grid-template-columns: 1fr; }
}

@media (max-width: 1024px) {
  .crm-hero { grid-template-columns: 1fr; }
  .crm-feature-grid { grid-template-columns: 1fr; }
  .crm-kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .crm-dashboard-grid { grid-template-columns: 1fr; }
  .crm-quote-grid-2 { grid-template-columns: 1fr; }
  .client-form-v2__cards { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .crm-kpi-grid { grid-template-columns: 1fr; }
  .customer-form-grid { grid-template-columns: 1fr; }
  .client-form-grid { grid-template-columns: 1fr; }
  .crm-form-row { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  body.is-landing .site-header {
    gap: 0.35rem 0.5rem;
    padding: 0.65rem 0.75rem;
  }
  body.is-landing .site-header-start .logo {
    gap: 0.4rem;
  }
  body.is-landing .site-header-start .logo-mark {
    width: 1.65rem;
    height: 1.65rem;
  }
  body.is-landing .site-header-start .logo-soho {
    font-size: 0.75rem;
  }
  body.is-landing .site-header-start .logo-byline {
    font-size: 0.5625rem;
  }
  body.is-landing .crm-landing-nav {
    gap: 0.65rem;
  }
  body.is-landing .crm-landing-nav a {
    font-size: 0.75rem;
  }
  body.is-landing .header-nav {
    gap: 0.4rem;
  }
  body.is-landing .header-nav > .btn {
    font-size: 0.6875rem;
    padding: 0.35rem 0.5rem;
    line-height: 1.2;
    white-space: normal;
    text-align: center;
  }
  body.is-landing .header-nav .nav-dropdown-trigger {
    font-size: 0.6875rem;
    padding: 0.35rem 0.5rem;
  }
}
@media (max-width: 400px) {
  body.is-landing .site-header {
    gap: 0.25rem 0.35rem;
    padding: 0.5rem 0.5rem;
  }
  body.is-landing .site-header-start .logo-mark {
    width: 1.4rem;
    height: 1.4rem;
  }
  body.is-landing .site-header-start .logo-soho {
    font-size: 0.625rem;
  }
  body.is-landing .site-header-start .logo-byline {
    font-size: 0.5rem;
  }
  body.is-landing .crm-landing-nav a {
    font-size: 0.625rem;
  }
  body.is-landing .header-nav > .btn,
  body.is-landing .header-nav .nav-dropdown-trigger {
    font-size: 0.5625rem;
    padding: 0.3rem 0.4rem;
  }
}

/* Quote detail v2 */
.quote-detail-v2 {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  min-width: 0;
  max-width: 100%;
  transition: opacity 0.15s ease;
}
.quote-detail-v2__layout,
.quote-detail-v2__main,
.quote-detail-v2__card--table {
  min-width: 0;
  max-width: 100%;
}
.quote-detail-v2.is-currency-transitioning {
  opacity: 0.92;
}
.quote-detail-v2__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.quote-detail-v2__header-text h1,
.quote-detail-v2__title {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 700;
  color: #1f2937;
}
.quote-detail-v2__title-row {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}
.quote-detail-v2__title-row .page-back-link {
  color: #6b7280;
}
.quote-detail-v2__title-row .page-back-link:hover {
  color: #7c3aed;
  background: #f3e8ff;
}
.quote-detail-v2__title-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  flex: 1;
}
.quote-detail-v2__title {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.quote-detail-v2__title-edit-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #6b7280;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}
.quote-detail-v2__title-edit-btn:hover {
  color: #7c3aed;
  background: #f3e8ff;
}
.quote-detail-v2__title-edit-btn:focus-visible {
  outline: 2px solid #7c3aed;
  outline-offset: 2px;
}
.quote-title-edit-form .quote-create-input {
  width: 100%;
}
.quote-title-edit-dialog .confirm-modal-actions {
  margin-top: 1rem;
}
.quote-detail-v2__meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.5rem;
  flex-wrap: wrap;
}
.quote-detail-v2__id {
  color: #7c3aed;
  font-weight: 600;
}
.quote-detail-v2__header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.quote-detail-v2__action-btn--danger {
  color: #dc2626 !important;
  border-color: #fecaca !important;
}
.quote-detail-v2__layout {
  display: block;
}
.quote-detail-v2__main {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  min-width: 0;
}
.quote-detail-v2__bottom {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 0.25rem;
}
.quote-detail-v2__meta-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1.25rem;
}
@media (min-width: 900px) {
  .quote-detail-v2__meta-fields {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .quote-detail-v2__meta-fields .quote-detail-v2__custom-rates {
    grid-column: 1 / -1;
  }
}
.quote-detail-v2__aside {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.quote-detail-v2__card {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0 0 1.25rem;
  border-bottom: 1px solid var(--border);
}
.quote-detail-v2__card-title {
  margin: 0 0 0.75rem;
  font-size: 0.9375rem;
  font-weight: 600;
}
.quote-detail-v2__fields {
  margin: 0;
  display: grid;
  gap: 0.5rem;
}
.quote-detail-v2__fields > div {
  display: grid;
  grid-template-columns: 8rem 1fr;
  gap: 0.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid #f3f4f6;
}
.quote-detail-v2__fields dt {
  color: #6b7280;
  font-size: 0.8125rem;
}
.quote-detail-v2__fields dd {
  margin: 0;
  color: #1f2937;
}
.quote-detail-v2__fields a {
  color: #7c3aed;
}
.quote-detail-v2__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.quote-detail-v2__currency {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border);
}
.quote-detail-v2__currency-tabs {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  align-items: flex-start;
}
.quote-detail-v2__currency-tab-group {
  position: relative;
  display: block;
  width: auto;
}
.quote-detail-v2__currency-tab-head {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: nowrap;
}
.quote-detail-v2__currency-show {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}
.quote-currency-show-check {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin: 0;
  padding: 0.1rem 0.2rem;
  font-size: 0.72rem;
  line-height: 1.2;
  color: #6b7280;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.quote-currency-show-check input {
  margin: 0;
  width: 0.8rem;
  height: 0.8rem;
  flex-shrink: 0;
}
.quote-currency-show-label {
  font-weight: 500;
  color: #7c3aed;
}
.quote-currency-show-label[hidden] {
  display: none !important;
}
.quote-detail-v2__currency-tab-group.is-shown-on-quote .quote-detail-v2__currency-tab {
  border-color: #c4b5fd;
}
.quote-detail-v2__currency-tab-group[hidden],
.quote-detail-v2__currency-add[hidden] {
  display: none !important;
}
.quote-detail-v2__currency-edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #fff;
  color: #6b7280;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.quote-detail-v2__currency-edit:hover {
  color: #7c3aed;
  border-color: #c4b5fd;
  background: #f3e8ff;
}
.quote-detail-v2__currency-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #fff;
  color: #9ca3af;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}
.quote-detail-v2__currency-remove:hover {
  color: #dc2626;
  border-color: #fecaca;
  background: #fef2f2;
}
.quote-detail-v2__currency-add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  margin-top: 0.15rem;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 0.5rem;
  border: 1px dashed #c4b5fd;
  border-radius: 8px;
  background: #faf5ff;
  color: #7c3aed;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
}
.quote-detail-v2__currency-add:hover {
  background: #f3e8ff;
  border-color: #7c3aed;
}
.quote-detail-v2__currency-picker-popover {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  z-index: 220;
  min-width: 16rem;
}
.quote-detail-v2__currency-picker-popover .currency-picker-trigger {
  display: none;
}
.quote-detail-v2__currency-picker-popover .currency-picker-menu {
  position: static;
  display: block;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}
.quote-detail-v2__currency-tab {
  padding: 0.4rem 0.85rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.quote-detail-v2__currency-tab.is-active {
  background: #7c3aed;
  border-color: #7c3aed;
  color: #fff;
}
.quote-price-readonly {
  background: #f3f4f6;
  color: #6b7280;
  cursor: default;
}
.quote-price-readonly:focus {
  outline: none;
  box-shadow: none;
}
select.quote-price-readonly {
  -webkit-appearance: none;
  appearance: none;
  background-color: #f3f4f6;
  color: #6b7280;
  cursor: default;
}
.is-display-currency-readonly .quote-detail-v2__table [data-line-field="unit_price_usd"],
.is-display-currency-readonly .quote-detail-v2__table input[name="unit_price_usd"],
.is-display-currency-readonly .quote-detail-v2__table [data-line-field="currency3_total"],
.is-display-currency-readonly .quote-detail-v2__table input[name="currency3_total"],
.is-display-currency-readonly .quote-detail-v2__table .quote-formula-value {
  pointer-events: none;
}
.crm-quote-lines-section .quote-lines-table td {
  min-width: 5.5rem;
  vertical-align: middle;
}
.crm-quote-lines-section .quote-lines-table td:first-child {
  min-width: 14rem;
}
.crm-quote-lines-section .quote-product-picker {
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
}
.crm-quote-lines-section .quote-product-box {
  width: 100%;
  min-width: 12rem;
  flex: 1 1 auto;
}
.crm-quote-lines-section .quote-product-picker .quote-product-name-input {
  width: 100%;
  min-width: 12rem;
  color: #111827;
  font-weight: 600;
  -webkit-text-fill-color: #111827;
}
.crm-quote-lines-section .quote-lines-table input:not([type="hidden"]),
.crm-quote-lines-section .quote-lines-table select,
.crm-quote-lines-section .quote-lines-table textarea {
  color: #111827;
  -webkit-text-fill-color: #111827;
}
.crm-quote-lines-section .quote-lines-table tr:not(.quote-line-row--locked) input:not(.quote-formula-value):not(:disabled),
.crm-quote-lines-section .quote-lines-table tr:not(.quote-line-row--locked) select:not(:disabled),
.crm-quote-lines-section .quote-lines-table tr:not(.quote-line-row--locked) textarea:not(:disabled) {
  background: #fff;
  border: 1px solid #d1d5db;
}
.crm-quote-lines-section .quote-lines-table tr.quote-line-row--locked input:not(.quote-formula-value):disabled,
.crm-quote-lines-section .quote-lines-table tr.quote-line-row--locked select:disabled,
.crm-quote-lines-section .quote-lines-table tr.quote-line-row--locked textarea:disabled {
  background: #f9fafb;
  color: #111827;
  -webkit-text-fill-color: #111827;
  opacity: 1;
}
.quote-detail-v2__rates-line {
  margin: 0.5rem 0 0;
  font-size: 0.8125rem;
  color: #6b7280;
}
.quote-detail-v2__totals {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
  max-width: 20rem;
  margin-left: auto;
}
.quote-detail-v2__total-row {
  display: flex;
  justify-content: space-between;
  padding: 0.35rem 0;
  font-size: 0.875rem;
}
.quote-detail-v2__total-row--grand {
  font-size: 1.125rem;
  color: #7c3aed;
  font-weight: 700;
  margin-top: 0.35rem;
}
.quote-detail-v2__textarea {
  width: 100%;
  min-height: 6rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 0.75rem;
  font: inherit;
  resize: vertical;
}
.quote-detail-v2__char-count {
  text-align: right;
  font-size: 0.75rem;
  color: #6b7280;
}
.quote-detail-v2__upload-form {
  position: relative;
}
.quote-detail-v2__upload-zone {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 8.5rem;
  padding: 1.25rem;
  border: 1px dashed #c4b5fd;
  border-radius: 8px;
  background: #faf5ff;
  cursor: pointer;
  text-align: center;
  overflow: hidden;
  transition: background 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}
.quote-detail-v2__upload-form.is-dragover .quote-detail-v2__upload-zone,
.quote-detail-v2__upload-zone.is-dragover {
  background: #f3e8ff;
  border-color: #7c3aed;
}
.quote-detail-v2__upload-form.is-uploading .quote-detail-v2__upload-zone {
  pointer-events: none;
}
.quote-detail-v2__upload-form.is-uploading .quote-detail-v2__upload-zone > :not(.file-upload-busy) {
  opacity: 0.35;
}
.file-upload-busy {
  display: none;
  position: absolute;
  inset: 0;
  z-index: 4;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: rgba(250, 245, 255, 0.94);
  font-size: 0.9375rem;
  font-weight: 600;
  color: #6d28d9;
  pointer-events: none;
}
.file-upload-busy::before {
  content: '';
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid #c4b5fd;
  border-top-color: #7c3aed;
  border-radius: 50%;
  animation: file-upload-spin 0.75s linear infinite;
}
@keyframes file-upload-spin {
  to { transform: rotate(360deg); }
}
.is-uploading .file-upload-busy {
  display: flex;
}
.quote-detail-v2__upload-input {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
  border: 0;
  font-size: 0;
}
.quote-detail-v2__upload-input::file-selector-button {
  display: none;
}
.quote-detail-v2__upload-input::-webkit-file-upload-button {
  visibility: hidden;
  width: 0;
  padding: 0;
  margin: 0;
  border: none;
}
.quote-detail-v2__attachment-list {
  list-style: none;
  margin: 0 0 0.75rem;
  padding: 0;
}
.quote-detail-v2__attachment-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.35rem 0;
  border-bottom: 1px solid #f3f4f6;
}
.quote-detail-v2__meta-fields label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.8125rem;
  font-weight: 600;
}
.quote-detail-v2__meta-fields input,
.quote-detail-v2__meta-fields select {
  padding: 0.5rem 0.65rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}
.quote-detail-v2__custom-rates {
  margin-top: 0.25rem;
  font-size: 0.8125rem;
}
.quote-detail-v2__custom-rates summary {
  cursor: pointer;
  font-weight: 600;
  color: #7c3aed;
}
.quote-detail-v2__custom-rates-hint {
  margin: 0.35rem 0 0.5rem;
  font-size: 0.75rem;
}
#quoteCustomRateFields {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.quote-detail-v2__meta-fields label.quote-detail-v2__custom-rate-row,
.quote-detail-v2__custom-rate-row {
  flex-direction: row;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.35rem;
  margin-bottom: 0;
  font-weight: 400;
  white-space: nowrap;
  width: fit-content;
  max-width: 100%;
}
.quote-detail-v2__custom-rate-row {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: nowrap;
}
.quote-detail-v2__custom-rates input[type="number"] {
  width: 4.75rem;
  min-width: 0;
  flex-shrink: 1;
}
.quote-custom-rate-flip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.65rem;
  height: 1.65rem;
  padding: 0;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #f9fafb;
  color: #7c3aed;
  font-size: 0.9rem;
  line-height: 1;
  cursor: pointer;
}
.quote-custom-rate-flip:hover {
  background: #f3e8ff;
  border-color: #c4b5fd;
}
.quote-custom-rate-flip:focus-visible {
  outline: 2px solid #7c3aed;
  outline-offset: 1px;
}
.quote-custom-rate-from,
.quote-custom-rate-to {
  font-weight: 600;
  color: #374151;
}
.quote-line-share-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.quote-line-share-currency-choices {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.quote-line-share-currency-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
}
.quote-line-share-currency-check input {
  width: 1rem;
  height: 1rem;
  accent-color: #7c3aed;
}
.quote-line-share-currencies-heading {
  margin: 0.25rem 0 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--text);
}
.quote-line-share-currencies-hint {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
}
.quote-line-share-currencies {
  display: grid;
  gap: 0.5rem;
}
.quote-line-share-currency-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.quote-line-share-currency-row > label {
  flex: 0 0 4.5rem;
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--muted);
}
.quote-line-share-currency-row .currency-picker {
  flex: 1;
  min-width: 0;
}
.quote-line-share-dialog {
  max-width: 28rem;
}
.quote-line-share-submit {
  background: #7c3aed;
  color: #fff;
  font-weight: 700;
}
.quote-line-share-submit:hover {
  background: var(--primary-hover);
  color: #fff;
}
.quote-detail-v2__footer {
  display: flex;
  gap: 0.75rem;
  padding-top: 0.5rem;
}

/* Quote detail wizard (client-form layout) */
.quote-detail-wizard.quote-detail-v2 {
  gap: 0;
}
.quote-detail-wizard .quote-detail-v2__header {
  align-items: flex-start;
  margin-bottom: 0;
}
.quote-detail-wizard__meta-form {
  margin: 0;
}
.quote-detail-wizard .quote-detail-wizard__readonly-fields {
  margin: 0;
}
.quote-detail-wizard .quote-detail-wizard__readonly-value {
  margin: 0;
  min-height: 2.5rem;
  display: flex;
  align-items: center;
  color: #374151;
  font-size: 0.9375rem;
}
.quote-detail-wizard__details-grid {
  margin-top: 0.25rem;
}
.quote-detail-wizard__currency {
  margin-top: 0.25rem;
}
.quote-detail-wizard__custom-rates {
  margin-top: 1rem;
}
.quote-detail-wizard .quote-detail-v2__card--table {
  border-bottom: none;
  padding: 0;
  background: transparent;
}
.quote-detail-wizard__lines-card {
  width: 100%;
  min-width: 0;
}
.quote-detail-wizard__pricing-grid {
  margin-top: 1rem;
  max-width: 28rem;
}
.quote-detail-wizard .quote-detail-v2__totals {
  margin-top: 1rem;
}
.quote-detail-wizard .quote-lines-add-btn {
  background: #7c3aed;
  border: 1px solid #7c3aed;
  color: #fff;
  box-shadow: 0 2px 6px rgba(124, 58, 237, 0.28);
}
.quote-detail-wizard .quote-lines-add-btn:hover {
  background: #6d28d9;
  border-color: #6d28d9;
  color: #fff;
}
.quote-lines-required-error {
  text-align: center;
  margin: 0.5rem 1rem 0;
}
.quote-detail-wizard .quote-detail-v2__lines {
  min-width: 0;
}
.quote-detail-wizard .quote-detail-wizard__attachments {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.quote-detail-wizard .quote-detail-v2__textarea {
  width: 100%;
  min-height: 8rem;
  resize: vertical;
}
.quote-detail-wizard .client-form-wizard__footer {
  margin-top: 0.5rem;
}
.quote-client-card__head {
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.5rem 1rem;
}
.quote-client-card__title-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 0.75rem;
  flex: 1;
  min-width: 0;
}
.quote-client-card__title-wrap .client-form-section__title {
  margin: 0;
}
.quote-client-card__intro {
  margin: 0 0 1rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #6b7280;
}
.quote-client-card__intro[hidden] {
  display: none;
}
.quote-change-client-link {
  display: inline;
  border: none;
  background: none;
  padding: 0;
  margin: 0;
  font: inherit;
  font-weight: 600;
  color: #7c3aed;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  vertical-align: baseline;
}
.quote-change-client-link:hover {
  color: #6d28d9;
}
.quote-client-override-hint {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  color: #6b7280;
  font-style: italic;
}
.quote-card-edit-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid #e5e7eb;
}
.quote-client-card.is-editing-client-info {
  opacity: 1;
}
.quote-client-save-dialog__hint {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  line-height: 1.45;
}
.quote-client-save-dialog__actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  margin-top: 0.25rem;
}
.quote-client-save-dialog__choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.625rem;
}
.quote-client-save-dialog__choice {
  min-height: 2.75rem;
  padding: 0.625rem 0.875rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
  white-space: normal;
  background: var(--accent-soft);
  color: var(--primary);
  border: 1px solid #ddd6fe;
  border-radius: 8px;
  box-shadow: none;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.quote-client-save-dialog__choice:hover {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}
.quote-client-save-dialog__cancel {
  align-self: center;
  min-width: 7rem;
}
@media (max-width: 520px) {
  .quote-client-save-dialog__choices {
    grid-template-columns: 1fr;
  }
}

/* —— Products catalog (management view) —— */
.products-catalog-page {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 100%;
}
.products-catalog-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.products-catalog-header-start {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}
.products-catalog-title {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 700;
  color: #1f2937;
}
.products-catalog-create-form {
  margin: 0;
}
.products-catalog-subtitle {
  margin: 0.25rem 0 0;
  font-size: 0.875rem;
  color: #6b7280;
}
.products-catalog-header-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.products-catalog-currency-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.875rem;
  color: #1f2937;
}
.products-catalog-currency-trigger:hover {
  background: #f3e8ff;
}
.products-catalog-currency-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 999px;
  background: #ede9fe;
  color: #7c3aed;
  font-size: 0.75rem;
  font-weight: 700;
}
.products-catalog-settings {
  display: inline-flex;
  padding: 0.5rem;
  color: #6b7280;
  border-radius: 8px;
}
.products-catalog-settings:hover {
  color: #7c3aed;
  background: #f3e8ff;
}
.products-catalog-controls {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.products-catalog-row1 {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: nowrap;
  width: 100%;
  min-width: 0;
}
.products-catalog-row1-filters {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1 1 auto;
  min-width: 0;
  flex-wrap: nowrap;
}
.products-catalog-row1-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 0 0 auto;
  flex-shrink: 0;
}
.products-catalog-search {
  position: relative;
  flex: 1 1 14rem;
  min-width: 10rem;
  max-width: 28rem;
}
.products-catalog-search-icon {
  position: absolute;
  left: 0.65rem;
  top: 50%;
  transform: translateY(-50%);
  color: #9ca3af;
  pointer-events: none;
  display: flex;
}
.products-catalog-search input {
  width: 100%;
  min-width: 0;
  padding: 0.5rem 0.75rem 0.5rem 2.25rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.875rem;
  box-sizing: border-box;
}
.products-catalog-filter {
  flex: 0 0 auto;
  min-width: 7.5rem;
  max-width: 10rem;
}
.products-catalog-row1-actions .btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  white-space: nowrap;
}
.products-catalog-btn-outline {
  border-color: #7c3aed;
  color: #7c3aed;
}
.products-catalog-select,
.products-catalog-price,
.products-catalog-input {
  padding: 0.5rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.875rem;
  background: #fff;
}
.products-catalog-select--full {
  width: 100%;
  margin: 0.35rem 0;
}
.products-catalog-clear {
  font-size: 0.875rem;
  font-weight: 600;
  color: #7c3aed;
  text-decoration: none;
}
.products-catalog-clear:hover {
  text-decoration: underline;
}
.products-catalog-row2 {
  width: 100%;
}
.products-catalog-bulk.is-empty .products-catalog-bulk-actions .btn,
.products-catalog-bulk.is-empty .products-catalog-bulk-delete-form button {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}
.products-catalog-bulk.is-empty .products-catalog-bulk-actions .products-bulk-always {
  opacity: 1;
  pointer-events: auto;
  cursor: pointer;
}
.products-catalog-bulk.is-empty .products-catalog-bulk-close {
  opacity: 0.45;
  pointer-events: none;
}
.products-catalog-bulk:not(.is-empty) .products-catalog-bulk-count strong {
  color: #7c3aed;
}
.products-catalog-bulk-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  flex: 1 1 auto;
  justify-content: flex-start;
}
.products-catalog-bulk-actions .btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  white-space: nowrap;
}
.products-catalog-bulk-delete-form {
  display: inline-flex;
  margin: 0;
}
.products-catalog-bulk {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  padding: 0.75rem 1rem;
  background: #f3e8ff;
  border: 1px solid #e9d5ff;
  border-radius: 8px;
}
.products-catalog-bulk-count {
  font-size: 0.875rem;
  font-weight: 600;
  color: #1f2937;
  flex: 0 0 auto;
  min-width: 9rem;
  white-space: nowrap;
}
.products-catalog-bulk-count strong {
  font-weight: 700;
}
.products-catalog-bulk-actions .products-catalog-bulk-btn--danger {
  border-color: #dc2626;
  color: #dc2626;
  box-shadow: var(--shadow-sm);
}
.products-catalog-bulk-actions .products-catalog-bulk-btn--danger:hover {
  background: #fef2f2;
  border-color: #b91c1c;
  color: #b91c1c;
}
.products-catalog-bulk-close {
  border: none;
  background: transparent;
  font-size: 1.25rem;
  line-height: 1;
  color: #6b7280;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
}
.products-catalog-table-wrap {
  overflow-x: auto;
  overflow-y: visible;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.products-catalog-table .products-catalog-col-actions,
.products-catalog-table tbody td:last-child {
  overflow: visible;
  position: static;
  text-align: center;
  white-space: nowrap;
}
.products-catalog-menu-panel {
  min-width: 11.5rem;
}
.products-catalog-menu-panel .nav-dropdown-item,
.products-catalog-menu-panel .quote-line-action-form button {
  text-align: left;
}
.products-catalog-menu-panel.is-floating {
  max-height: min(70vh, 24rem);
  overflow-y: auto;
}
.products-catalog-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.products-catalog-table thead th {
  padding: 0.75rem;
  text-align: left;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6b7280;
  background: #f3f4f6;
  border-bottom: 1px solid #e5e7eb;
  white-space: nowrap;
}
.products-catalog-table tbody td {
  padding: 0.75rem;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: middle;
}
.products-catalog-row:hover td {
  background: #f3e8ff;
}
.products-catalog-row--alt td {
  background: #f9f5ff;
}
.products-catalog-row--return-target td {
  background: #ede9fe !important;
  box-shadow: inset 0 0 0 2px #a78bfa;
}
.products-catalog-col-check {
  width: 2.5rem;
  text-align: center;
}
.products-catalog-thumb {
  width: 40px;
  height: 40px;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}
.products-catalog-thumb--placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f3f4f6;
  font-size: 1.25rem;
}
.products-catalog-name {
  font-weight: 700;
  color: #1f2937;
  text-decoration: none;
}
.products-catalog-name:hover {
  color: #7c3aed;
  text-decoration: underline;
}
.products-catalog-desc {
  font-size: 0.75rem;
  color: #6b7280;
  margin-top: 0.15rem;
}
.products-catalog-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.8125rem;
}
.products-catalog-category {
  color: #7c3aed;
  font-weight: 600;
}
.products-catalog-stock--high { color: #10b981; font-weight: 600; }
.products-catalog-stock--medium { color: #f97316; font-weight: 600; }
.products-catalog-stock--low { color: #dc2626; font-weight: 600; }
.products-catalog-margin--high { color: #10b981; font-weight: 600; }
.products-catalog-margin--medium { color: #f97316; font-weight: 600; }
.products-catalog-margin--low { color: #dc2626; font-weight: 600; }
.products-catalog-status {
  display: inline-block;
  padding: 0.25rem 0.6rem;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #fff;
}
.products-catalog-status--active { background: #10b981; }
.products-catalog-status--inactive { background: #6b7280; }
.products-catalog-status--discontinued { background: #dc2626; }
.products-catalog-menu-trigger {
  border: none;
  background: transparent;
  font-size: 1.25rem;
  color: #6b7280;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  cursor: pointer;
}
.products-catalog-menu-trigger:hover {
  color: #7c3aed;
  background: #f3e8ff;
}
.products-catalog-menu-divider {
  border: none;
  border-top: 1px solid #e5e7eb;
  margin: 0.35rem 0;
}
.products-catalog-menu-accent {
  color: #7c3aed !important;
  font-weight: 600;
}
.products-catalog-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.75rem;
  color: #6b7280;
}
.products-catalog-pages {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.products-catalog-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 0.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  color: #1f2937;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.products-catalog-page-btn:hover:not(.is-active) {
  border-color: #c4b5fd;
  background: #f9f5ff;
  color: #7c3aed;
}
.products-catalog-page-btn.is-active {
  background: #7c3aed;
  border-color: #7c3aed;
  color: #fff;
}
.products-catalog-empty {
  text-align: center;
  padding: 3rem 1.5rem;
  color: #6b7280;
}
.products-catalog-empty-icon {
  font-size: 3rem;
  margin-bottom: 0.75rem;
}
.products-catalog-modal .confirm-modal-dialog {
  max-width: 28rem;
  width: calc(100% - 2rem);
}
.products-catalog-modal-title {
  margin: 0 0 0.35rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: #1f2937;
}
.products-catalog-modal-field {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #374151;
}
.products-catalog-bulk-status {
  margin: 0 0 1rem;
  padding: 0;
  border: none;
  min-width: 0;
}
.products-catalog-bulk-status__options {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.65rem;
}
.products-catalog-modal .products-catalog-bulk-status-option {
  margin-bottom: 0;
  font-weight: 500;
}
.products-catalog-modal .products-catalog-bulk-status-option input[type="radio"] {
  width: auto;
  min-height: 0;
  margin: 0;
  flex-shrink: 0;
  padding: 0;
  border: none;
  box-shadow: none;
}
.products-catalog-modal-desc {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  color: #6b7280;
}
.products-catalog-client-list {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  max-height: 14rem;
  overflow-y: auto;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}
.products-catalog-client-list li label {
  display: block;
  padding: 0.65rem 0.75rem;
  cursor: pointer;
  border-bottom: 1px solid #f3f4f6;
}
.products-catalog-client-list li label:hover {
  background: #f3e8ff;
}
.products-catalog-client-name {
  display: block;
  font-weight: 600;
  color: #1f2937;
}
.products-catalog-client-meta {
  display: block;
  font-size: 0.75rem;
  color: #6b7280;
}
.products-catalog-quote-tabs {
  display: flex;
  gap: 0;
  margin: 0 0 1rem;
  padding: 0.2rem;
  background: #f3f4f6;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
}
.products-catalog-quote-tab {
  flex: 1;
  border: none;
  background: transparent;
  color: #6b7280;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.35;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.products-catalog-quote-tab.is-active {
  background: #fff;
  color: #7c3aed;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}
.products-catalog-quote-tab:hover:not(.is-active) {
  color: #374151;
}
.products-catalog-quote-panel {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.products-catalog-quote-panel[hidden] {
  display: none !important;
}
.products-catalog-input--full {
  width: 100%;
  box-sizing: border-box;
}
.products-catalog-modal .products-catalog-select--full {
  width: 100%;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 1023px) {
  .products-catalog-table .products-catalog-col-cost,
  .products-catalog-table .products-catalog-col-margin,
  .products-catalog-table thead .products-catalog-col-cost,
  .products-catalog-table thead .products-catalog-col-margin,
  .products-catalog-table tbody .products-catalog-col-cost,
  .products-catalog-table tbody .products-catalog-col-margin {
    display: none;
  }
}
@media (max-width: 1100px) {
  .products-catalog-row1 {
    flex-wrap: wrap;
  }
  .products-catalog-row1-filters {
    flex-wrap: wrap;
    width: 100%;
  }
  .products-catalog-row1-actions {
    width: 100%;
    justify-content: flex-end;
  }
}
@media (max-width: 767px) {
  .products-catalog-row1-filters {
    flex-direction: column;
    align-items: stretch;
  }
  .products-catalog-search {
    max-width: none;
    width: 100%;
  }
  .products-catalog-filter {
    width: 100%;
    max-width: none;
  }
  .products-catalog-row1-actions {
    flex-wrap: wrap;
    justify-content: stretch;
  }
  .products-catalog-row1-actions .btn,
  .products-catalog-row1-actions .inline-form {
    flex: 1 1 auto;
  }
  .products-catalog-bulk {
    flex-direction: column;
    align-items: stretch;
  }
  .products-catalog-bulk-actions {
    justify-content: flex-start;
  }
  .products-catalog-table-wrap {
    border: none;
    box-shadow: none;
  }
}

/* —— Product edit / create page —— */
.product-edit-body .container {
  max-width: none;
  width: 100%;
  padding: 0;
  margin: 0;
}
.product-edit-body .app-main {
  background: var(--bg);
}
.product-edit-page.client-form-v2 {
  width: 100%;
  min-height: calc(100vh - 4rem);
  padding: 1.5rem;
  padding-bottom: 5.5rem;
  box-sizing: border-box;
  font-size: 1rem;
  line-height: 1.5;
  color: #111827;
}
.product-edit-page.client-form-wizard {
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 1.5rem 6rem;
}
.product-edit-page.client-form-wizard .client-form-v2__cards {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  width: 100%;
  max-width: none;
  margin: 0;
}
.product-edit-page.client-form-wizard .client-form-wizard__section {
  cursor: pointer;
}
.product-edit-page__inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
.product-edit-page:not(.client-form-wizard) .client-form-v2__cards {
  width: 100%;
}
.product-edit-wizard__danger {
  display: flex;
  justify-content: center;
  margin-top: 1rem;
}
.product-edit-wizard__danger .product-edit-btn-delete {
  color: #dc2626;
  border-color: #fecaca;
}
.product-edit-page__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.product-edit-breadcrumb {
  margin: 0 0 1rem;
  font-size: 0.75rem;
  color: #6b7280;
}
.product-edit-breadcrumb a {
  color: #7c3aed;
  font-weight: 600;
  text-decoration: none;
}
.product-edit-breadcrumb a:hover {
  text-decoration: underline;
}
.product-edit-breadcrumb__sep {
  margin: 0 0.35rem;
  color: #9ca3af;
}
.product-edit-breadcrumb__current {
  color: #6b7280;
}
.product-edit-page__title {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}
.product-edit-page__subtitle {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: #6b7280;
}
.product-edit-page__header-aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.75rem;
}
.product-edit-page__header-actions {
  display: flex;
  gap: 0.75rem;
}
.product-edit-toast {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 500;
}
.product-edit-toast--success {
  background: #dcfce7;
  border: 1px solid #10b981;
  color: #10b981;
}
.product-edit-toast--error {
  background: #fee2e2;
  border: 1px solid #dc2626;
  color: #dc2626;
}
.product-edit-toast__close {
  border: none;
  background: transparent;
  font-size: 1.125rem;
  line-height: 1;
  cursor: pointer;
  color: inherit;
  margin-left: 0.25rem;
}
.product-edit-page .product-edit-btn-cancel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  background: #7c3aed;
  border: 1px solid #7c3aed;
  color: #fff;
}
.product-edit-page .product-edit-btn-cancel:hover {
  background: #6d28d9;
  border-color: #6d28d9;
  color: #fff;
}
.product-edit-section.client-form-v2__card {
  min-width: 0;
  height: 100%;
}
.product-edit-pricing-currency {
  margin: 0 0 1rem;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}
.product-edit-pricing-currency-field {
  max-width: 20rem;
}
.product-edit-page .product-edit-section .client-form-grid {
  flex: 1;
}
.product-edit-page .client-form-field textarea {
  max-height: 300px;
}
.product-edit-page .client-form-field input.is-invalid,
.product-edit-page .client-form-field select.is-invalid {
  border-color: #dc2626;
}
.product-edit-page .product-edit-readonly {
  background: #f3f4f6 !important;
  color: #6b7280 !important;
  cursor: not-allowed;
  font-size: 0.9375rem;
  line-height: 1.5;
}
.product-edit-page .product-edit-error {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #dc2626;
  margin: 0;
}
.product-category-control {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: flex-start;
}
.product-category-picker {
  position: relative;
  flex: 1;
  min-width: 10rem;
}
.product-category-picker__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #111827;
  background: #fff;
  box-sizing: border-box;
  cursor: pointer;
  text-align: left;
}
.product-category-picker__trigger:hover,
.product-category-picker.is-open > .product-category-picker__trigger {
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.12);
}
.product-category-picker__trigger.is-invalid {
  border-color: #dc2626;
}
.product-category-picker__label.is-placeholder {
  color: #9ca3af;
}
.product-category-picker__chevron {
  flex-shrink: 0;
  color: #6b7280;
  transition: transform 0.15s ease;
}
.product-category-picker.is-open .product-category-picker__chevron {
  transform: rotate(180deg);
}
.product-category-picker__menu {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  z-index: 200;
  max-height: 14rem;
  overflow: auto;
  margin: 0;
  padding: 0.35rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
}
.product-category-picker__menu[hidden] {
  display: none !important;
}
.product-category-picker__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.product-category-picker__item {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  border-radius: 6px;
}
.product-category-picker__item:hover {
  background: #f9fafb;
}
.product-category-picker__option {
  flex: 1;
  min-width: 0;
  border: none;
  background: transparent;
  text-align: left;
  padding: 0.5rem 0.65rem;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: #111827;
  cursor: pointer;
}
.product-category-picker__option.is-active {
  color: #7c3aed;
  font-weight: 600;
}
.product-category-picker__remove {
  flex-shrink: 0;
  border: none;
  background: transparent;
  color: #6b7280;
  font-size: 1.125rem;
  line-height: 1;
  padding: 0.35rem 0.5rem;
  cursor: pointer;
}
.product-category-picker__remove:hover {
  color: #dc2626;
}
.product-category-add-btn {
  border: none;
  background: transparent;
  color: #7c3aed;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.45;
  padding: 0.5rem 0.25rem;
  cursor: pointer;
  white-space: nowrap;
  align-self: center;
}
.product-category-add-btn:hover {
  text-decoration: underline;
}
.product-category-add-panel {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.35rem;
}
.product-category-add-panel[hidden] {
  display: none !important;
}
.product-category-add-input {
  flex: 1;
  min-width: 10rem;
  min-height: 2.5rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 0.9375rem;
  line-height: 1.5;
}
.product-category-add-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.product-edit-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.product-edit-affix {
  display: flex;
  align-items: stretch;
}
.product-edit-affix__prefix {
  display: inline-flex;
  align-items: center;
  min-height: 2.5rem;
  padding: 0 0.75rem;
  border: 1px solid #d1d5db;
  border-right: 0;
  border-radius: 8px 0 0 8px;
  background: #f9fafb;
  color: #6b7280;
  font-size: 0.9375rem;
  line-height: 1.5;
  font-weight: 600;
}
.product-edit-affix input {
  border-radius: 0 8px 8px 0 !important;
  flex: 1;
}
.product-edit-split,
.product-edit-dims {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.product-edit-split input,
.product-edit-dims input {
  flex: 1;
  min-width: 0;
}
.product-edit-split select,
.product-edit-dims select {
  width: auto;
  min-width: 4.25rem;
}
.product-edit-dropzone {
  background: #f9f5ff;
  border: 2px dashed #e9d5ff;
  border-radius: 8px;
  padding: 1.25rem;
  text-align: center;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.product-edit-dropzone-wrap.is-dragover .product-edit-dropzone {
  background: #f3e8ff;
  border-color: #7c3aed;
}
.product-edit-dropzone-wrap.is-uploading {
  pointer-events: none;
}
.product-edit-dropzone-wrap.is-uploading .product-edit-dropzone,
.product-edit-dropzone-wrap.is-uploading .product-edit-dropzone__input {
  opacity: 0.35;
}
.product-edit-dropzone__text {
  margin: 0 0 0.35rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: #6b7280;
}
.product-edit-dropzone__sub {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #9ca3af;
}
.product-edit-dropzone-wrap {
  position: relative;
  min-height: 11rem;
  overflow: hidden;
}
.product-edit-dropzone__input {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
  cursor: pointer;
  border: 0;
  font-size: 0;
  color: transparent;
}
.product-edit-dropzone__input::file-selector-button {
  display: none;
}
.product-edit-dropzone__input::-webkit-file-upload-button {
  visibility: hidden;
  width: 0;
  padding: 0;
  margin: 0;
  border: none;
}
.product-edit-dropzone {
  position: relative;
  z-index: 1;
  pointer-events: none;
  height: 100%;
  min-height: 11rem;
  box-sizing: border-box;
}
.product-edit-image-card__delete-btn {
  border: none;
  background: transparent;
  color: inherit;
  font-size: inherit;
  line-height: 1;
  padding: 0;
  cursor: pointer;
}
.product-edit-images-hint {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #6b7280;
  margin: 0 0 0.5rem;
}
.product-edit-images-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 0.5rem;
}
.product-edit-images-body {
  display: grid;
  grid-template-columns: minmax(10rem, 0.95fr) minmax(0, 1.35fr);
  gap: 1rem;
  align-items: start;
  flex: 1;
  min-width: 0;
}
.product-edit-images-upload {
  min-width: 0;
}
.product-edit-images-gallery {
  min-width: 0;
}
.product-edit-section--images .product-edit-dropzone {
  min-height: 11rem;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.product-edit-section--images .product-edit-images-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.product-edit-images-empty {
  margin: 0;
  padding: 1rem 0;
}
.product-edit-page .product-edit-section--status .product-edit-radios {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
}
.product-edit-image-card {
  position: relative;
  border: 1px solid #e5e7eb;
  border-radius: 4px;
  overflow: hidden;
  transition: box-shadow 0.15s ease;
}
.product-edit-image-card.is-primary {
  border: 2px solid #0284c7;
  box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.15);
}
.product-edit-image-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.product-edit-image-card__link {
  display: block;
  aspect-ratio: 1;
}
.product-edit-image-card__link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.product-edit-image-card__pdf {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: 100px;
  font-weight: 700;
  color: #6b7280;
}
.product-edit-image-card__actions {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 0.35rem;
  opacity: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, transparent 60%);
  transition: opacity 0.15s ease;
}
.product-edit-image-card:hover .product-edit-image-card__actions {
  opacity: 1;
}
.product-edit-image-card__star {
  border: none;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 4px;
  padding: 0.15rem 0.35rem;
  cursor: pointer;
  color: #9ca3af;
  font-size: 1rem;
}
.product-edit-image-card.is-primary .product-edit-image-card__star {
  color: #0284c7;
}
.product-edit-image-card__delete button {
  border: none;
  background: rgba(220, 38, 38, 0.9);
  color: #fff;
  border-radius: 4px;
  width: 1.5rem;
  height: 1.5rem;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}
.product-edit-radios {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
}
.product-edit-radio {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  font-weight: 400;
  color: #111827;
  cursor: pointer;
}
.product-edit-radio input[type="radio"] {
  width: auto;
  min-height: 0;
  margin: 0;
}
.product-edit-status-dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  flex-shrink: 0;
}
.product-edit-status-dot--green { background: #10b981; }
.product-edit-status-dot--gray { background: #9ca3af; }
.product-edit-status-dot--red { background: #dc2626; }
.product-edit-status-dot--amber { background: #f59e0b; }
.product-edit-client-picks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  max-height: 12rem;
  overflow-y: auto;
}
.product-edit-client-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0;
  padding: 0.35rem 0.65rem;
  background: #f3f4f6;
  border-radius: 999px;
  font-size: 0.9375rem;
  line-height: 1.5;
  font-weight: 400;
  cursor: pointer;
}
.product-edit-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  min-height: 2.5rem;
}
.product-edit-tags__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.product-edit-tags__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  background: #ede9fe;
  color: #5b21b6;
  border-radius: 999px;
  font-size: 0.8125rem;
  line-height: 1.45;
  font-weight: 500;
}
.product-edit-tags__remove {
  border: none;
  background: transparent;
  color: #7c3aed;
  cursor: pointer;
  padding: 0;
  line-height: 1;
  font-size: 1rem;
}
.product-edit-tags__input {
  border: none !important;
  box-shadow: none !important;
  flex: 1;
  min-width: 8rem;
  min-height: 0 !important;
  padding: 0.25rem !important;
  font-size: 0.9375rem !important;
  line-height: 1.5 !important;
}
.product-edit-sticky-footer {
  position: fixed;
  left: var(--sidebar-width, 0);
  right: 0;
  bottom: 0;
  background: #fff;
  border-top: 1px solid #e5e7eb;
  z-index: 40;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.04);
}
.has-seller-shell .product-edit-sticky-footer {
  left: var(--sidebar-width, 16.25rem);
}
.has-seller-shell:has(.seller-sidebar.is-collapsed) .product-edit-sticky-footer {
  left: var(--sidebar-collapsed-width, 4.25rem);
}
.product-edit-sticky-footer__inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 1rem 2rem;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.product-edit-sticky-footer__right {
  display: flex;
  gap: 0.75rem;
}
.product-edit-btn-delete {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: #fff;
  border: 1px solid #dc2626;
  color: #dc2626;
}
.product-edit-btn-delete:hover {
  background: #fee2e2;
}
@media (max-width: 1023px) {
  .product-edit-page .client-form-v2__cards {
    grid-template-columns: 1fr;
  }
  .product-edit-page .product-edit-section .client-form-grid {
    grid-template-columns: 1fr;
  }
  .product-edit-images-body {
    grid-template-columns: 1fr;
  }
  .product-edit-section--images .product-edit-images-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .has-seller-shell .product-edit-sticky-footer {
    left: 0;
  }
}
@media (max-width: 767px) {
  .product-edit-page.client-form-v2 {
    padding: 1rem;
  }
  .product-edit-page__header {
    flex-direction: column;
  }
  .product-edit-page__header-aside {
    align-items: stretch;
    width: 100%;
  }
  .product-edit-page__header-actions {
    justify-content: stretch;
  }
  .product-edit-page__header-actions .btn {
    flex: 1;
  }
  .product-edit-images-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 1024px) {
  .quote-detail-v2__layout {
    grid-template-columns: 1fr;
  }
  .quote-detail-v2__cards {
    grid-template-columns: 1fr;
  }
}

/* ——— Tasks ——— */
.task-form-v2 {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.task-form-v2 .client-form-v2__cards {
  width: 100%;
}
.task-form-v2__info {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px;
  border: 1px solid #e9d5ff;
  border-radius: 8px;
  background: #f3e8ff;
  color: #7c3aed;
  font-size: 14px;
}
.task-form-v2__info-close {
  margin-left: auto;
  border: none;
  background: transparent;
  cursor: pointer;
  color: #6b7280;
}
.task-form-v2__error {
  margin: 6px 0 0;
  font-size: 12px;
  color: #ef4444;
}
.task-form-v2 .client-form-field input.is-invalid,
.task-form-v2 .client-form-field select.is-invalid {
  border-color: #ef4444;
}
.task-form-v2 .task-datetime-input {
  min-width: 16rem;
  max-width: 100%;
}
.task-tags__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}
.task-tags__chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  border: 1px solid #e9d5ff;
  border-radius: 4px;
  background: #f3e8ff;
  color: #7c3aed;
  font-size: 12px;
}
.task-tags__remove {
  border: none;
  background: transparent;
  color: #7c3aed;
  cursor: pointer;
  padding: 0 2px;
}
.task-tags__input {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 14px;
}

.tasks-page {
  padding: 0 0 2rem;
}
.tasks-page-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.tasks-page-header-start {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}
.tasks-page-title {
  margin: 0;
  font-size: 28px;
  font-weight: 700;
  color: #1f2937;
}
.tasks-view-controls {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.tasks-view-range {
  display: block;
}
.tasks-view-select {
  min-width: 9.5rem;
}
.tasks-controls {
  width: 100%;
}
.tasks-controls .products-catalog-row1,
.tasks-controls .products-catalog-row2 {
  width: 100%;
}
.tasks-controls .products-catalog-row1-filters {
  width: 100%;
  flex: 1 1 100%;
}
.tasks-controls .products-catalog-search {
  flex: 1 1 auto;
  max-width: none;
  min-width: 12rem;
}
.tasks-controls .products-catalog-clear {
  margin-left: auto;
  flex-shrink: 0;
  white-space: nowrap;
}
.tasks-controls .tasks-bulk-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
}
.tasks-bulk-priority-group {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.tasks-bulk-priority-select {
  min-width: 7.5rem;
  max-width: 10rem;
}
.tasks-controls .products-catalog-bulk-actions .tasks-bulk-form .btn,
.tasks-controls .products-catalog-bulk-actions .tasks-bulk-form .products-catalog-select {
  flex-shrink: 0;
}
.tasks-filter-menu {
  position: relative;
  display: inline-block;
}
.tasks-filter-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-width: 7.5rem;
  max-width: 11rem;
  padding: 0.5rem 0.75rem;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
  font-weight: 500;
  line-height: 1.25;
  transition: background 150ms ease, border-color 150ms ease;
}
.tasks-filter-btn span {
  overflow: hidden;
  text-overflow: ellipsis;
}
.tasks-filter-btn:hover,
.tasks-filter-menu.is-open .tasks-filter-btn {
  background: #f9f5ff;
  border-color: #7c3aed;
}
.tasks-filter-menu.is-open .tasks-filter-chevron {
  transform: rotate(180deg);
}
.tasks-filter-chevron {
  flex-shrink: 0;
  color: #6b7280;
  transition: transform 150ms ease;
}
.tasks-filter-panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 40;
  min-width: 220px;
  padding: 0;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
  overflow: hidden;
}
.tasks-filter-panel[hidden] {
  display: none !important;
}
.tasks-filter-panel__title {
  margin: 0;
  padding: 10px 14px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6b7280;
  background: #f9fafb;
  border-bottom: 1px solid #e5e7eb;
}
.tasks-filter-panel__options {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px;
  max-height: 280px;
  overflow-y: auto;
}
.tasks-filter-option {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 14px;
  color: #1f2937;
  cursor: pointer;
  transition: background 150ms ease;
}
.tasks-filter-option:hover {
  background: #f9fafb;
}
.tasks-filter-option input {
  width: 16px;
  height: 16px;
  margin: 0;
  flex-shrink: 0;
  accent-color: #7c3aed;
  cursor: pointer;
}
.tasks-filter-option span {
  flex: 1;
  line-height: 1.3;
}
.tasks-filter-apply {
  display: block;
  width: calc(100% - 16px);
  margin: 4px 8px 8px;
  padding: 8px 12px;
  border: none;
  border-radius: 8px;
  background: #7c3aed;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 150ms ease;
}
.tasks-filter-apply:hover {
  background: #6d28d9;
}
.tasks-table-card {
  border: none;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}
.tasks-table-wrap {
  overflow-x: auto;
  overflow-y: visible;
}
.tasks-col-actions {
  position: relative;
  text-align: center;
  white-space: nowrap;
}
.tasks-row-menu-panel {
  min-width: 10.5rem;
}
.tasks-row-menu-panel.is-floating {
  max-height: min(70vh, 16rem);
  overflow-y: auto;
}
.tasks-kebab-btn {
  border: none;
  background: transparent;
  color: #d1d5db;
  font-size: 1.125rem;
  line-height: 1;
  padding: 0.25rem 0.5rem;
  cursor: pointer;
}
.tasks-kebab-btn:hover {
  color: #7c3aed;
}
.tasks-bulk-priority-menu {
  position: relative;
}
.tasks-bulk-priority-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.tasks-bulk-priority-panel {
  left: 0;
  right: auto;
  min-width: 12rem;
}
.tasks-hide-completed-btn {
  flex-shrink: 0;
  white-space: nowrap;
  border-color: #7c3aed;
  color: #7c3aed;
}
.tasks-hide-completed-btn.is-active {
  background: #f3e8ff;
}
.tasks-bulk-bar:not(.has-selection) .products-catalog-bulk-count strong {
  color: #9ca3af;
}
.tasks-bulk-bar.has-selection .products-catalog-bulk-count strong {
  color: #7c3aed;
}
.tasks-bulk-bar:not(.has-selection) [data-tasks-bulk-action] {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}
.tasks-bulk-bar:not(.has-selection) .products-catalog-bulk-close {
  opacity: 0.45;
  pointer-events: none;
}
.tasks-bulk-bar .tasks-bulk-always,
.tasks-bulk-bar .tasks-hide-completed-btn,
.tasks-bulk-bar .tasks-bulk-priority-trigger {
  opacity: 1;
  pointer-events: auto;
  cursor: pointer;
}
.tasks-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.tasks-table thead th {
  padding: 16px;
  text-align: left;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6b7280;
  background: #f3f4f6;
  border-bottom: 1px solid #e5e7eb;
}
.tasks-row {
  transition: background 150ms ease;
}
.tasks-row:hover {
  background: #f3e8ff;
}
.tasks-row--alt {
  background: #f9f5ff;
}
.tasks-row td {
  padding: 16px;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: middle;
}
.tasks-title-link {
  font-weight: 600;
  color: #1f2937;
  text-decoration: none;
}
.tasks-title-link:hover {
  text-decoration: underline;
}
.tasks-title-link.is-completed {
  text-decoration: line-through;
  opacity: 0.6;
}
.tasks-title-sub {
  margin: 4px 0 0;
  font-size: 12px;
  color: #6b7280;
}
.tasks-project-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 8px;
  background: #f3f4f6;
  color: #1f2937;
  font-size: 13px;
}
.task-priority-badge,
.task-status-badge {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  border: none;
}
.task-priority-badge--high { background: #fee2e2; color: #dc2626; }
.task-priority-badge--medium { background: #fef3c7; color: #d97706; }
.task-priority-badge--low { background: #dcfce7; color: #16a34a; }
.task-status-badge--todo { background: #f3f4f6; color: #6b7280; }
.task-status-badge--in_progress { background: #dbeafe; color: #0284c7; }
.task-status-badge--on_hold { background: #fef3c7; color: #d97706; }
.task-status-badge--completed { background: #dcfce7; color: #16a34a; }
.tasks-badge-select {
  cursor: pointer;
  appearance: none;
}
.tasks-due-input[type="datetime-local"] {
  min-width: 11rem;
}
.tasks-due-input {
  font-size: 14px;
  border: 1px solid transparent;
  background: transparent;
  color: #1f2937;
}
.tasks-due--overdue,
.tasks-due-hint--overdue { color: #dc2626; }
.tasks-due--today,
.tasks-due-hint--today { color: #d97706; }
.tasks-due--none { color: #9ca3af; }
.tasks-empty {
  text-align: center;
  padding: 64px 24px !important;
}
.tasks-empty .tasks-create-btn { margin-top: 16px; }
.tasks-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 24px;
  margin-top: 24px;
}
.tasks-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border-radius: 8px;
  background: #f3f4f6;
  color: #1f2937;
  text-decoration: none;
  font-weight: 600;
}
.tasks-page-btn.is-active {
  background: #7c3aed;
  color: #fff;
}
.tasks-page-btn.is-disabled {
  opacity: 0.4;
  pointer-events: none;
}
.tasks-pagination-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

/* Shared list pagination numbers (customers, quotes, products, tasks) */
.customers-page-btn,
.quotes-page-btn,
.products-catalog-page-btn,
.tasks-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0.35rem 0.65rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  color: #1f2937;
  font-size: 0.9375rem;
  font-weight: 700;
  text-decoration: none;
  box-sizing: border-box;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.customers-page-btn:hover:not(.is-disabled):not(.is-active),
.quotes-page-btn:hover:not(.is-disabled):not(.is-active),
.products-catalog-page-btn:hover:not(.is-active),
.tasks-page-btn:hover:not(.is-disabled):not(.is-active) {
  background: #7c3aed;
  border-color: #7c3aed;
  color: #fff;
}
.customers-page-btn.is-active,
.quotes-page-btn.is-active,
.products-catalog-page-btn.is-active,
.tasks-page-btn.is-active {
  background: #7c3aed;
  border-color: #7c3aed;
  color: #fff;
  font-weight: 700;
}
.tasks-board {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  padding: 16px 0;
}
.tasks-board-column {
  flex: 0 0 300px;
  max-width: 300px;
}
.tasks-board-column-head {
  padding: 12px;
  border-radius: 8px;
  background: #f3f4f6;
  font-size: 14px;
  font-weight: 600;
  color: #1f2937;
  margin-bottom: 12px;
}
.tasks-board-cards {
  min-height: 80px;
}
.tasks-board-cards.is-drag-over {
  background: #f3e8ff;
  border: 2px dashed #c4b5fd;
  border-radius: 8px;
}
.tasks-board-card {
  position: relative;
  margin-bottom: 12px;
  padding: 12px 0;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid #e5e7eb;
  background: transparent;
  box-shadow: none;
  cursor: grab;
  transition: background 150ms ease;
}
.tasks-board-card:hover {
  background: #f9fafb;
  box-shadow: none;
}
.tasks-board-card.is-dragging { opacity: 0.6; }
.tasks-board-card-title {
  display: block;
  font-weight: 600;
  color: #1f2937;
  text-decoration: none;
  padding-right: 56px;
}
.tasks-board-card .task-priority-badge {
  position: absolute;
  top: 12px;
  right: 12px;
}
.tasks-board-card-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 10px;
  font-size: 12px;
  color: #6b7280;
}
.tasks-board-add {
  display: block;
  padding: 12px;
  border: 2px dashed #e5e7eb;
  border-radius: 8px;
  text-align: center;
  color: #6b7280;
  text-decoration: none;
  font-size: 14px;
  transition: background 150ms ease;
}
.tasks-board-add:hover {
  background: #f3e8ff;
  color: #7c3aed;
}

@media (max-width: 767px) {
  .tasks-page-header {
    flex-direction: column;
    align-items: stretch;
  }
  .tasks-page-header-start {
    flex-direction: column;
    align-items: flex-start;
  }
  .tasks-controls .products-catalog-row1-filters {
    flex-wrap: wrap;
  }
  .tasks-table .tasks-col-project,
  .tasks-table thead th:nth-child(3) {
    display: none;
  }
}

/* —— Reports page —— */
body.has-seller-shell.reports-page .app-main {
  background: var(--bg);
}
.reports-page-inner {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 100%;
}
.reports-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0;
}
.reports-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  color: #6b7280;
}
.reports-breadcrumb a {
  color: #7c3aed;
  text-decoration: none;
  font-weight: 500;
}
.reports-breadcrumb a:hover {
  text-decoration: underline;
}
.reports-breadcrumb__sep { color: #9ca3af; }
.reports-page-title {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 700;
  color: #1f2937;
  letter-spacing: -0.02em;
}
.reports-page-header__controls {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  flex-shrink: 0;
}
.reports-date-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.reports-date-toolbar {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.5rem;
}
.reports-date-or {
  font-size: 0.75rem;
  font-weight: 500;
  color: #6b7280;
  white-space: nowrap;
}
.reports-date-range {
  display: block;
  flex: 0 0 auto;
}
.reports-page .reports-custom-range {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.5rem;
  flex: 0 0 auto;
}
.reports-page .reports-custom-range__item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
}
.reports-page .reports-custom-range__label {
  font-size: 0.75rem;
  font-weight: 500;
  color: #6b7280;
  white-space: nowrap;
}
.reports-page .reports-custom-range__input {
  width: 8.75rem;
  min-width: 0;
  box-sizing: border-box;
  font-size: 0.75rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  color: #1f2937;
  background: #fff;
}
.reports-page .reports-date-apply.tasks-filter-apply,
.reports-page .reports-date-preset-trigger {
  width: auto;
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  flex: 0 0 auto;
  white-space: nowrap;
  box-sizing: border-box;
  padding: 8px 12px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.25;
  min-height: 36px;
  border-radius: 8px;
}
.reports-page .reports-date-preset-trigger {
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #1f2937;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.reports-page .reports-date-preset-trigger:hover,
.reports-page .reports-preset-menu.is-open > .reports-date-preset-trigger {
  border-color: #c4b5fd;
  background: #faf5ff;
  color: #7c3aed;
}
.reports-date-preset-trigger__chevron {
  flex-shrink: 0;
  transition: transform 0.15s ease;
}
.reports-preset-menu.is-open .reports-date-preset-trigger__chevron {
  transform: rotate(180deg);
}
.reports-preset-menu {
  position: relative;
  flex: 0 0 auto;
}
.reports-preset-menu__panel {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  left: auto;
  z-index: 120;
  min-width: 100%;
  margin: 0;
  padding: 4px 0;
  list-style: none;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  box-shadow: var(--shadow-md);
  box-sizing: border-box;
}
.reports-preset-menu__panel[hidden] {
  display: none !important;
}
.reports-preset-menu__option {
  display: block;
  width: 100%;
  margin: 0;
  padding: 8px 12px;
  border: none;
  background: transparent;
  color: #1f2937;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
  white-space: nowrap;
  cursor: pointer;
  box-sizing: border-box;
}
.reports-preset-menu__option:hover,
.reports-preset-menu__option.is-active {
  background: #f3e8ff;
  color: #7c3aed;
}
.reports-date-range__select {
  box-sizing: border-box;
  font-size: 0.75rem;
  padding: 0.45rem 2rem 0.45rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 0.6rem center;
  appearance: none;
  color: #1f2937;
}
.reports-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
}
.reports-metric-card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}
.reports-metric-card:hover {
  box-shadow: none;
}
.reports-metric-card__icon {
  color: var(--primary);
}
.reports-metric-card__value {
  color: #7c3aed;
}
.reports-metric-card__trend {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  color: #6b7280;
}
.reports-metric-card__trend--up {
  color: #10b981;
}
.reports-metric-card__trend--down {
  color: #ef4444;
}
.reports-charts-row {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 1rem;
  margin-bottom: 2rem;
}
.reports-chart-panel__title,
.reports-panel__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: #1f2937;
}
.reports-chart-panel__subtitle,
.reports-panel__subtitle {
  margin: 0.25rem 0 0;
  font-size: 0.75rem;
  color: #6b7280;
}
.reports-chart-panel__head,
.reports-panel__head {
  margin-bottom: 1rem;
}
.reports-chart-card {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0 0 1.5rem;
  box-shadow: none;
  box-sizing: border-box;
  border-bottom: 1px solid #e5e7eb;
}
.reports-line-chart {
  position: relative;
  height: 18.75rem;
}
.reports-line-chart__svg {
  width: 100%;
  height: 100%;
  display: block;
}
.reports-line-chart__grid-line {
  stroke: #e5e7eb;
  stroke-width: 1;
}
.reports-line-chart__axis-label {
  fill: #6b7280;
  font-size: 11px;
  font-family: inherit;
}
.reports-line-chart__area {
  fill: rgba(243, 232, 255, 0.5);
}
.reports-line-chart__line {
  stroke: #7c3aed;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.reports-line-chart--line-only {
  cursor: crosshair;
}
.reports-line-chart__dot {
  fill: #7c3aed;
  stroke: #fff;
  stroke-width: 2;
  cursor: pointer;
  transition: r 0.15s ease;
}
.reports-line-chart__dot.is-active,
.reports-line-chart__dot:hover,
.reports-line-chart__dot:focus {
  r: 7;
  outline: none;
}
.reports-line-chart__tooltip {
  position: absolute;
  transform: translateX(-50%);
  padding: 0.5rem 0.75rem;
  border-radius: 4px;
  background: #1f2937;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  pointer-events: none;
  z-index: 2;
}
.reports-donut-chart {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  min-height: 18.75rem;
  justify-content: center;
}
.reports-donut-chart__ring {
  width: 10.5rem;
  height: 10.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.reports-donut-chart__center {
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  background: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 0 0 1px #f3f4f6;
}
.reports-donut-chart__total {
  font-size: 1.375rem;
  font-weight: 700;
  color: #1f2937;
  line-height: 1;
}
.reports-donut-chart__total-label {
  margin-top: 0.2rem;
  font-size: 0.6875rem;
  font-weight: 600;
  color: #6b7280;
}
.reports-donut-legend {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.reports-donut-legend__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: #374151;
}
.reports-donut-legend__swatch {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 2px;
  flex-shrink: 0;
}
.reports-donut-legend__label {
  flex: 1;
  font-weight: 600;
}
.reports-donut-legend__meta {
  color: #6b7280;
  font-weight: 500;
}
.reports-details-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 2rem;
}
.reports-table-card {
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
  border-bottom: 1px solid #e5e7eb;
  padding-bottom: 1.5rem;
}
.reports-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8125rem;
}
.reports-table thead th {
  padding: 0.75rem 1rem;
  text-align: left;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #6b7280;
  background: #f9fafb;
  border-bottom: 1px solid #e5e7eb;
}
.reports-table tbody td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #f3f4f6;
  color: #374151;
}
.reports-table tbody tr:last-child td {
  border-bottom: 1px solid #f3f4f6;
}
.reports-table__name {
  font-weight: 600;
  color: #1f2937;
}
.reports-status-badge {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 600;
}
.reports-status-badge--active {
  background: #d1fae5;
  color: #047857;
}
.reports-status-badge--pending {
  background: #ffedd5;
  color: #c2410c;
}
.reports-status-badge--inactive {
  background: #f3f4f6;
  color: #6b7280;
}
.reports-table__empty,
.reports-bar-chart__empty {
  color: #9ca3af;
  font-size: 0.875rem;
  text-align: center;
  padding: 1rem 0;
}
.reports-bar-chart__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.reports-bar-chart__row {
  display: grid;
  grid-template-columns: 4.5rem 1fr auto;
  gap: 0.65rem;
  align-items: center;
}
.reports-bar-chart__label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #374151;
}
.reports-bar-chart__track {
  height: 0.55rem;
  border-radius: 999px;
  background: #f3f4f6;
  overflow: hidden;
}
.reports-bar-chart__fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #7c3aed;
  transition: width 0.3s ease;
}
.reports-bar-chart__value {
  font-size: 0.75rem;
  font-weight: 600;
  color: #6b7280;
  white-space: nowrap;
}
.reports-summary-section {
  margin-bottom: 2rem;
}
body.has-seller-shell.reports-page .reports-metric-card,
body.has-seller-shell.reports-page .reports-chart-panel,
body.has-seller-shell.reports-page .reports-panel,
body.has-seller-shell.reports-page .reports-summary-section {
  border: 1px solid transparent;
  border-radius: var(--radius);
  padding: 1.25rem 1.35rem;
  box-sizing: border-box;
  background: transparent;
  box-shadow: none;
  outline: none;
  transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
body.has-seller-shell.reports-page .reports-metric-card:hover,
body.has-seller-shell.reports-page .reports-metric-card:focus-within,
body.has-seller-shell.reports-page .reports-chart-panel:hover,
body.has-seller-shell.reports-page .reports-chart-panel:focus-within,
body.has-seller-shell.reports-page .reports-panel:hover,
body.has-seller-shell.reports-page .reports-panel:focus-within,
body.has-seller-shell.reports-page .reports-summary-section:hover,
body.has-seller-shell.reports-page .reports-summary-section:focus-within {
  border-color: var(--section-hover-border);
  background: var(--section-hover-bg);
  box-shadow: none;
}
body.has-seller-shell.reports-page .reports-chart-panel:hover .reports-chart-card,
body.has-seller-shell.reports-page .reports-chart-panel:focus-within .reports-chart-card,
body.has-seller-shell.reports-page .reports-panel:hover .reports-table-card,
body.has-seller-shell.reports-page .reports-panel:focus-within .reports-table-card,
body.has-seller-shell.reports-page .reports-panel:hover .reports-bar-chart,
body.has-seller-shell.reports-page .reports-panel:focus-within .reports-bar-chart,
body.has-seller-shell.reports-page .reports-summary-section:hover .reports-table-card,
body.has-seller-shell.reports-page .reports-summary-section:focus-within .reports-table-card,
body.has-seller-shell.reports-page .reports-chart-panel:hover select,
body.has-seller-shell.reports-page .reports-chart-panel:focus-within select,
body.has-seller-shell.reports-page .reports-chart-panel:hover input,
body.has-seller-shell.reports-page .reports-chart-panel:focus-within input,
body.has-seller-shell.reports-page .reports-chart-panel:hover textarea,
body.has-seller-shell.reports-page .reports-chart-panel:focus-within textarea,
body.has-seller-shell.reports-page .reports-panel:hover select,
body.has-seller-shell.reports-page .reports-panel:focus-within select,
body.has-seller-shell.reports-page .reports-panel:hover input,
body.has-seller-shell.reports-page .reports-panel:focus-within input,
body.has-seller-shell.reports-page .reports-panel:hover textarea,
body.has-seller-shell.reports-page .reports-panel:focus-within textarea,
body.has-seller-shell.reports-page .reports-summary-section:hover select,
body.has-seller-shell.reports-page .reports-summary-section:focus-within select,
body.has-seller-shell.reports-page .reports-summary-section:hover input,
body.has-seller-shell.reports-page .reports-summary-section:focus-within input,
body.has-seller-shell.reports-page .reports-summary-section:hover textarea,
body.has-seller-shell.reports-page .reports-summary-section:focus-within textarea {
  background-color: var(--bg);
}
.reports-page-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.reports-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
@media (max-width: 1100px) {
  .reports-metrics {
    grid-template-columns: repeat(2, 1fr);
  }
  .reports-charts-row,
  .reports-details-row {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .reports-metrics {
    grid-template-columns: 1fr;
  }
  .reports-page-header {
    flex-direction: column;
  }
  .reports-date-controls,
  .reports-date-toolbar {
    align-items: stretch;
    width: 100%;
    justify-content: flex-start;
  }
  .reports-page .reports-custom-range {
    overflow-x: auto;
    max-width: 100%;
    padding-bottom: 0.15rem;
    flex-wrap: wrap;
  }
  .reports-table-card {
    overflow-x: auto;
  }
}
@media print {
  body.has-seller-shell .seller-sidebar,
  body.has-seller-shell .seller-topbar,
  .reports-page-header__controls,
  .reports-page-footer {
    display: none !important;
  }
  .reports-page-inner {
    max-width: none;
  }
}

/* —— Requests page —— */
body.has-seller-shell.requests-page .app-main {
  background: #f9fafb;
}
.seller-sidebar-group {
  display: flex;
  flex-direction: column;
}
.seller-sidebar-group.is-active-group > .seller-sidebar-link:not(.is-active) {
  background: #f9f5ff;
  color: #7c3aed;
}
.seller-sidebar-group.is-active-group > .seller-sidebar-link:not(.is-active) .seller-nav-icon {
  color: #7c3aed;
}
.seller-sidebar-sublink {
  display: block;
  margin: 0 0.75rem 0.25rem 2.75rem;
  padding: 0.35rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #6b7280;
  text-decoration: none;
  border-radius: 6px;
  transition: background 150ms ease, color 150ms ease;
}
.seller-sidebar-sublink:hover {
  background: #f9fafb;
  color: #7c3aed;
}
.seller-sidebar-sublink.is-active {
  background: #f3e8ff;
  color: #7c3aed;
  font-weight: 600;
}
.seller-sidebar.is-collapsed .seller-sidebar-sublink {
  display: none;
}
.requests-page-inner {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 100%;
}
.requests-page-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 0;
}
.requests-page-header--split {
  align-items: flex-start;
  justify-content: space-between;
}
.requests-page-header__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.requests-page-header__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 1rem;
}
.requests-page-header__title-row .page-back-link {
  color: #6b7280;
}
.requests-page-header__title-row .page-back-link:hover {
  color: #7c3aed;
  background: #f3e8ff;
}
.requests-breadcrumb {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0 0 0.5rem;
  font-size: 0.75rem;
  color: #6b7280;
}
.requests-breadcrumb a {
  color: #7c3aed;
  text-decoration: none;
  font-weight: 500;
}
.requests-breadcrumb a:hover { text-decoration: underline; }
.requests-breadcrumb__sep { color: #9ca3af; }
.requests-breadcrumb__current { color: #6b7280; }
.requests-page-title {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 700;
  color: #1f2937;
  letter-spacing: -0.02em;
}
.requests-help-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: #6b7280;
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease;
}
.requests-help-btn:hover {
  background: #f3f4f6;
  color: #7c3aed;
}
.requests-create-btn:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
.requests-tabs,
.quotes-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid #e5e7eb;
  margin-bottom: 1.5rem;
}
.requests-tab {
  padding: 0.75rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #6b7280;
  text-decoration: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -1px;
  cursor: pointer;
  transition: color 150ms ease, background 150ms ease, border-color 150ms ease;
}
.requests-tab:hover { background: #f9fafb; }
.requests-tab.is-active {
  color: #7c3aed;
  border-bottom-color: #7c3aed;
}
.requests-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.requests-filter-toolbar {
  margin-bottom: 1.5rem;
}
.requests-page .requests-filter-toolbar .quotes-toolbar-filters .tasks-filter-menu {
  position: relative;
}
.requests-page .requests-filter-toolbar .quotes-toolbar-filters .tasks-filter-btn {
  min-height: 2.5rem;
}
.requests-filter-toolbar .requests-filter-menu--client .tasks-filter-btn {
  max-width: 14rem;
}
.requests-search {
  position: relative;
  display: flex;
  align-items: center;
  width: 300px;
  max-width: 100%;
}
.requests-search__icon {
  position: absolute;
  left: 0.75rem;
  color: #6b7280;
  pointer-events: none;
}
.requests-search input {
  width: 100%;
  padding: 0.625rem 0.75rem 0.625rem 2.25rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  font-size: 0.875rem;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}
.requests-search input:focus {
  outline: none;
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.1);
}
.requests-select {
  padding: 0.625rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  font-size: 0.875rem;
  cursor: pointer;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}
.requests-select:focus {
  outline: none;
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.1);
}
.requests-grid--sent {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.requests-stack {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.requests-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  transition: box-shadow 150ms ease, transform 150ms ease;
}
.requests-card:hover {
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.requests-card--received {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.25rem;
}
.requests-card--received-grid {
  display: flex;
  flex-direction: column;
  padding: 0.875rem 1rem;
  min-height: 0;
}
.requests-card--received-grid .requests-card__date {
  margin: 0 0 0.5rem;
}
.requests-card--received-grid .requests-card__product {
  margin-bottom: 0.5rem;
}
.requests-card--received-grid .requests-card__image--sm {
  width: 64px;
  height: 64px;
}
.requests-card--received-grid .requests-card__desc {
  -webkit-line-clamp: 1;
}
.requests-card--received-grid .requests-card__details {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.75rem;
  margin-bottom: 0.25rem;
}
.requests-card--received-grid .requests-card__detail {
  margin: 0;
}
.requests-card__body { flex: 1; min-width: 0; }
.requests-card__aside {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 0.5rem;
  width: 30%;
  min-width: 10rem;
  flex-shrink: 0;
}
.requests-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.requests-card__client {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: #1f2937;
}
.requests-status {
  display: inline-flex;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  font-size: 0.6875rem;
  font-weight: 600;
  white-space: nowrap;
}
.requests-status--pending { background: #f3e8ff; color: #7c3aed; }
.requests-status--approved { background: #dcfce7; color: #10b981; }
.requests-status--quote_sent { background: #dbeafe; color: #2563eb; }
.requests-status--rejected { background: #fee2e2; color: #ef4444; }
.requests-status--completed { background: #f3f4f6; color: #6b7280; }
.requests-card__date {
  margin: 0 0 0.75rem;
  font-size: 0.75rem;
  color: #6b7280;
}
.requests-card__product {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.requests-card__image {
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
  background: #f3f4f6;
}
.requests-card__image--sm { width: 80px; height: 80px; }
.requests-card__image--lg { width: 100px; height: 100px; }
.requests-card__product-name {
  margin: 0 0 0.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #1f2937;
}
.requests-card__product-link {
  color: inherit;
  text-decoration: none;
  transition: color 150ms ease;
}
.requests-card__product-link:hover {
  color: #7c3aed;
  text-decoration: underline;
}
.requests-card__meta,
.requests-card__detail {
  margin: 0 0 0.15rem;
  font-size: 0.75rem;
  color: #6b7280;
}
.requests-card__desc {
  margin: 0.25rem 0 0;
  font-size: 0.75rem;
  color: #6b7280;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.requests-card__actions--received {
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.requests-card__actions--received > .requests-btn,
.requests-card__actions--received > .requests-inline-form {
  flex: 1 1 0;
  min-width: 0;
}
.requests-card__actions--received > .requests-inline-form {
  display: flex;
  margin: 0;
}
.requests-card__actions--received .requests-btn {
  width: 100%;
  min-height: 2.25rem;
  padding: 0.5rem 0.625rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.requests-card__actions--received .requests-btn--approve,
.requests-card__actions--received .requests-btn--reject {
  width: 100%;
}
.requests-card__actions--received .requests-btn--link {
  border: 1px solid #d1d5db;
  background: #fff;
  padding: 0.5rem 0.625rem;
  font-weight: 600;
  text-decoration: none;
}
.requests-card__actions--received .requests-btn--link:hover {
  background: #f3f4f6;
}
.requests-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.requests-inline-form { margin: 0; display: contents; }
.requests-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: background 150ms ease, transform 150ms ease, border-color 150ms ease;
  border: 1px solid #d1d5db;
  background: #fff;
  color: #4b5563;
  font-family: inherit;
}
.requests-btn:hover { background: #f3f4f6; }
.requests-btn:active { transform: scale(0.98); }
.requests-btn--ghost { border-color: #d1d5db; color: #4b5563; }
.requests-btn--danger { border-color: #ef4444; color: #ef4444; }
.requests-btn--danger:hover { background: #fee2e2; }
.requests-btn--outline { border-color: #7c3aed; color: #7c3aed; width: 100%; }
.requests-btn--outline:hover { background: #f3e8ff; }
.requests-btn--approve {
  border-color: #10b981;
  background: #dcfce7;
  color: #10b981;
  width: 100%;
}
.requests-btn--approve:hover { background: #bbf7d0; }
.requests-btn--reject {
  border-color: #ef4444;
  background: #fee2e2;
  color: #ef4444;
  width: 100%;
}
.requests-btn--reject:hover { background: #fecaca; }
.requests-btn--link {
  border: none;
  background: transparent;
  color: #7c3aed;
  padding: 0.35rem 0.5rem;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.requests-btn--link:hover {
  background: transparent;
  color: #6d28d9;
}
.requests-card__actions .requests-btn--inline {
  width: auto;
}
.requests-btn--lg {
  padding: 0.625rem 1.25rem;
  font-size: 0.875rem;
  border-radius: 8px;
}
.requests-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-top: 2.5rem;
  color: #d1d5db;
}
.requests-empty__title {
  margin: 1rem 0 0.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: #1f2937;
}
.requests-empty__desc {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  color: #6b7280;
  max-width: 24rem;
}
.requests-toast { transition: opacity 300ms ease; }
.request-form-card {
  max-width: 62.5rem;
  margin: 0 auto;
  padding: 2rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.request-form-section {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #e5e7eb;
}
.request-form-section--last {
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0;
}
.request-form-section__title {
  margin: 0 0 0.35rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #7c3aed;
  letter-spacing: 0.02em;
}
.request-form-section__desc {
  margin: 0 0 1rem;
  font-size: 0.75rem;
  color: #6b7280;
}
.request-form-grid {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
}
.request-form-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.request-form-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.request-form-field label,
.request-form-legend {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #1f2937;
}
.request-form-required { color: #ef4444; }
.request-form-field input,
.request-form-field select,
.request-form-field textarea {
  width: 100%;
  padding: 0.625rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 0.875rem;
  font-family: inherit;
  box-sizing: border-box;
  transition: border-color 150ms ease, box-shadow 150ms ease;
}
.request-form-field textarea { min-height: 100px; resize: vertical; }
.request-form-field input:focus,
.request-form-field select:focus,
.request-form-field textarea:focus {
  outline: none;
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.1);
}
.request-form-field input.is-invalid,
.request-form-field select.is-invalid {
  border-color: #ef4444;
}
.request-form-error {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  color: #ef4444;
}
.request-form-upload {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 120px;
  padding: 1rem;
  border: 1px dashed #d1d5db;
  border-radius: 8px;
  background: #fff;
  color: #6b7280;
  text-align: center;
  cursor: pointer;
  transition: background 150ms ease, border-color 150ms ease;
}
.request-form-upload:hover {
  background: #f3e8ff;
  border-color: #7c3aed;
}
.request-form-upload__text { font-size: 0.75rem; }
.request-form-upload__formats { font-size: 0.75rem; color: #9ca3af; }
.request-form-preview {
  margin-top: 0.5rem;
  border-radius: 4px;
  object-fit: cover;
}
.request-form-checkboxes {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.request-form-checkbox {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: #6b7280;
  cursor: pointer;
}
.request-form-checkbox input {
  width: 1rem;
  height: 1rem;
  accent-color: #7c3aed;
}
.request-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  margin-top: 2rem;
}
.request-form-success {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  border: 1px solid #10b981;
  border-radius: 8px;
  background: #dcfce7;
  color: #10b981;
  font-size: 0.875rem;
  font-weight: 600;
}
.request-form-success__close {
  margin-left: auto;
  border: none;
  background: transparent;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  color: inherit;
}
.requests-detail-title-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.request-detail-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 1.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.request-detail-grid {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.request-detail-image {
  border-radius: 4px;
  object-fit: cover;
  background: #f3f4f6;
}
.request-detail-dl {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
  gap: 0.75rem 1.5rem;
  margin: 0;
}
.request-detail-dl dt {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 600;
  color: #6b7280;
}
.request-detail-dl dd {
  margin: 0.15rem 0 0;
  font-size: 0.875rem;
  color: #1f2937;
}
.request-detail-section h2 {
  margin: 1rem 0 0.35rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #1f2937;
}
.request-detail-section p {
  margin: 0;
  font-size: 0.875rem;
  color: #4b5563;
}
.request-detail-certs {
  margin: 0;
  padding-left: 1.25rem;
  font-size: 0.875rem;
  color: #4b5563;
}
.request-detail-footer {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
}
@media (max-width: 1023px) {
  .requests-card--received {
    flex-direction: column;
  }
  .requests-card__aside {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
  }
  .requests-card__aside .requests-btn { width: auto; flex: 1; min-width: 8rem; }
}
@media (max-width: 767px) {
  .requests-grid--sent { grid-template-columns: 1fr; }
  .requests-filters { flex-direction: column; align-items: stretch; }
  .requests-search { width: 100%; }
  .request-form-grid--3,
  .request-form-grid--2 { grid-template-columns: 1fr; }
  .request-form-actions { flex-direction: column; }
  .request-form-actions .requests-btn,
  .request-form-actions .requests-create-btn { width: 100%; justify-content: center; }
}

/* —— Received quotes (incoming from suppliers) —— */
.received-quote-status {
  display: inline-flex;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 700;
  white-space: nowrap;
}
.received-quote-status--sent { background: #dbeafe; color: #2563eb; }
.received-quote-status--accepted { background: #dcfce7; color: #16a34a; }
.received-quote-status--in_negotiation { background: #ffedd5; color: #ea580c; }
.received-quote-status--kiv { background: #e0e7ff; color: #4f46e5; }
.received-quote-status--declined { background: #fee2e2; color: #dc2626; }

.received-quote-detail {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 0 2rem;
}
.received-quote-detail__header {
  margin-bottom: 1.5rem;
}
.received-quote-detail__header-main {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.received-quote-detail__title {
  margin: 0;
  font-size: 1.75rem;
  font-weight: 700;
  color: #1f2937;
}
.received-quote-detail__id-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.35rem;
}
.received-quote-detail__id {
  font-size: 1.5rem;
  font-weight: 700;
  color: #7c3aed;
}
.received-quote-detail__sent-on {
  margin: 0.35rem 0 0;
  font-size: 0.875rem;
  color: #6b7280;
}
.received-quote-detail__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.received-quote-detail__card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 1.25rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.received-quote-detail__card-title {
  margin: 0 0 1rem;
  font-size: 1rem;
  font-weight: 700;
  color: #1f2937;
}
.received-quote-detail__info-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.received-quote-detail__info-list li {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  font-size: 0.875rem;
  color: #374151;
  line-height: 1.45;
}
.received-quote-detail__icon {
  flex-shrink: 0;
  width: 1.25rem;
  text-align: center;
}
.received-quote-detail__section {
  margin-bottom: 1.5rem;
}
.received-quote-detail__section-title {
  margin: 0 0 0.75rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: #1f2937;
}
.received-quote-detail__table-wrap {
  overflow-x: auto;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
}
.received-quote-detail__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.received-quote-detail__table th,
.received-quote-detail__table td {
  padding: 0.75rem 1rem;
  text-align: left;
  border-bottom: 1px solid #f3f4f6;
}
.received-quote-detail__table th {
  background: #fafafa;
  font-weight: 600;
  color: #6b7280;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.received-quote-detail__row--alt {
  background: #faf5ff;
}
.received-quote-detail__totals {
  margin-top: 1rem;
  margin-left: auto;
  width: min(100%, 320px);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.received-quote-detail__total-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.875rem;
  color: #4b5563;
}
.received-quote-detail__total-row--grand {
  margin-top: 0.35rem;
  padding-top: 0.5rem;
  border-top: 1px solid #e5e7eb;
  font-size: 1rem;
  font-weight: 700;
  color: #7c3aed;
}
.received-quote-detail__notes-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.received-quote-detail__notes-text {
  margin: 0;
  font-size: 0.875rem;
  color: #4b5563;
  line-height: 1.55;
  white-space: pre-wrap;
}
.received-quote-detail__attachments {
  list-style: none;
  margin: 0;
  padding: 0;
}
.received-quote-detail__attachment {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid #f3f4f6;
}
.received-quote-detail__attachment:last-child { border-bottom: none; }
.received-quote-detail__attachment-main {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  min-width: 0;
}
.received-quote-detail__attachment-name {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
  color: #1f2937;
}
.received-quote-detail__attachment-meta {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  color: #6b7280;
}
.received-quote-detail__attachment-download {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #7c3aed;
  white-space: nowrap;
}
.received-quote-detail__response {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}
.received-quote-detail__response-desc {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  color: #6b7280;
}
.received-quote-detail__response-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
}
.received-quote-detail__response-form { margin: 0; }
.received-quote-detail__response-btn {
  width: 100%;
  min-height: 5.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem 0.75rem;
  border-radius: 10px;
  border: 2px solid #e5e7eb;
  background: #fff;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  color: #374151;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, transform 120ms ease;
}
.received-quote-detail__response-btn:hover { transform: translateY(-1px); }
.received-quote-detail__response-btn.is-selected {
  box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.15);
}
.received-quote-detail__response-btn--accepted { border-color: #86efac; color: #16a34a; }
.received-quote-detail__response-btn--accepted:hover,
.received-quote-detail__response-btn--accepted.is-selected { background: #f0fdf4; }
.received-quote-detail__response-btn--in_negotiation { border-color: #fdba74; color: #ea580c; }
.received-quote-detail__response-btn--in_negotiation:hover,
.received-quote-detail__response-btn--in_negotiation.is-selected { background: #fff7ed; }
.received-quote-detail__response-btn--kiv { border-color: #a5b4fc; color: #4f46e5; }
.received-quote-detail__response-btn--kiv:hover,
.received-quote-detail__response-btn--kiv.is-selected { background: #eef2ff; }
.received-quote-detail__response-btn--declined { border-color: #fca5a5; color: #dc2626; }
.received-quote-detail__response-btn--declined:hover,
.received-quote-detail__response-btn--declined.is-selected { background: #fef2f2; }
.received-quote-detail__response-icon {
  font-size: 1.25rem;
  line-height: 1;
}
.received-quote-detail__footer {
  text-align: center;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
  font-size: 0.8125rem;
  color: #6b7280;
}
.received-quote-detail__copyright {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
}
@media (max-width: 900px) {
  .received-quote-detail__cards,
  .received-quote-detail__notes-row { grid-template-columns: 1fr; }
  .received-quote-detail__response-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .received-quote-detail__response-grid { grid-template-columns: 1fr; }
}

/* —— Tasks v2 (Kanban + Activity Log) —— */
.tasks-v2 {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.tasks-v2-page-header {
  margin-bottom: 0;
}
.tasks-v2-header-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-left: auto;
}
.tasks-v2-view-select-wrap {
  min-width: 7.5rem;
}
.tasks-v2-view-select-native {
  min-width: 6.5rem;
}
.tasks-v2-topbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 24px;
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
}
.tasks-v2-topbar__left { min-width: 0; }
.tasks-v2-topbar__right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}
.tasks-v2-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 8px;
  font-size: 12px;
  color: #6b7280;
}
.tasks-v2-breadcrumb a {
  color: #7c3aed;
  text-decoration: none;
  font-weight: 500;
}
.tasks-v2-breadcrumb a:hover { text-decoration: underline; }
.tasks-v2-breadcrumb__sep { color: #9ca3af; }
.tasks-v2-title {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  color: #1f2937;
  line-height: 1.3;
}
.tasks-v2-subtitle {
  margin: 4px 0 0;
  font-size: 12px;
  color: #6b7280;
}
.tasks-v2-toolbar-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.tasks-v2-select {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 7.5rem;
  padding: 8px 12px;
  font-size: 12px;
  color: #6b7280;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
}
.tasks-v2-select--label { position: relative; cursor: default; }
.tasks-v2-select--full { width: 100%; min-width: 0; }
.tasks-v2-select-native {
  appearance: none;
  border: none;
  background: transparent;
  font: inherit;
  color: inherit;
  padding: 0 1.25rem 0 0;
  cursor: pointer;
  width: 100%;
}
.tasks-v2-select--label .tasks-filter-chevron {
  position: absolute;
  right: 12px;
  pointer-events: none;
}
.tasks-v2-hide-completed {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 500;
  color: #7c3aed;
  background: #fff;
  border: 1px solid #7c3aed;
  border-radius: 6px;
  text-decoration: none;
  white-space: nowrap;
  transition: background 150ms ease, color 150ms ease;
}
.tasks-v2-hide-completed:hover {
  background: #f9f5ff;
  color: #6d28d9;
}
.tasks-v2-hide-completed.is-active {
  background: #f3e8ff;
}
.tasks-v2-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: #7c3aed;
  border: none;
  border-radius: 8px;
  text-decoration: none;
  cursor: pointer;
  transition: background 150ms ease;
}
.tasks-v2-btn-primary:hover { background: #6d28d9; color: #fff; }
.tasks-v2-icon-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: none;
  background: transparent;
  color: #6b7280;
  border-radius: 8px;
  cursor: pointer;
}
.tasks-v2-icon-btn__badge {
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
  color: #fff;
  background: #ef4444;
  border-radius: 999px;
}
.tasks-v2-topbar .seller-topbar-user {
  padding: 4px 8px;
  border-radius: 8px;
}
.tasks-v2-topbar .seller-topbar-avatar {
  width: 32px;
  height: 32px;
}
.tasks-v2-workspace {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
  flex: 1 1 auto;
  min-height: calc(100vh - 16rem);
}
.tasks-v2-workspace .tasks-v2-main {
  flex: 1 1 100%;
  width: 100%;
  max-width: 100%;
  transition: flex-basis 0.25s ease, max-width 0.25s ease, width 0.25s ease;
}
.tasks-v2-workspace:has(.tasks-v2-activity-shell:not(.is-collapsed)) .tasks-v2-main {
  flex: 1 1 80%;
  width: 80%;
  max-width: 80%;
}
.tasks-v2-controls-wrap {
  margin-bottom: 0;
}
.tasks-v2-controls-wrap .products-catalog-row1 {
  margin-bottom: 0;
}
.tasks-v2-main {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
}
.tasks-v2-board-wrap {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  padding-right: 0;
}
.tasks-v2-workspace:has(.tasks-v2-activity-shell.is-collapsed) .tasks-v2-main--board,
.tasks-v2-workspace:has(.tasks-v2-activity-shell.is-collapsed) .tasks-v2-main--list .tasks-v2-list-wrap {
  padding-right: 2.75rem;
}
.tasks-v2-workspace:has(.tasks-v2-activity-shell:not(.is-collapsed)) .tasks-v2-main--board,
.tasks-v2-workspace:has(.tasks-v2-activity-shell:not(.is-collapsed)) .tasks-v2-main--list .tasks-v2-list-wrap {
  padding-right: 12px;
}
.tasks-v2-main--list .tasks-v2-list-wrap {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.tasks-v2-workspace:has(.tasks-v2-activity-shell:not(.is-collapsed)) .tasks-v2-main--list .tasks-v2-list-wrap {
  padding-right: 12px;
}
.tasks-v2-board {
  display: flex;
  gap: 12px;
  width: 100%;
  height: 100%;
  min-height: calc(100vh - 16rem);
  align-items: stretch;
}
.tasks-v2-col {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  max-width: none;
  display: flex;
  flex-direction: column;
  transition: flex-basis 0.2s ease, min-width 0.2s ease, max-width 0.2s ease;
}
.tasks-v2-col-card {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  padding: 12px;
  overflow: hidden;
}
.tasks-v2-col__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  border-radius: 8px;
  margin-bottom: 12px;
  flex-shrink: 0;
}
.tasks-v2-col--todo .tasks-v2-col__head { background: #f9fafb; }
.tasks-v2-col--progress .tasks-v2-col__head { background: #eff6ff; }
.tasks-v2-col--review .tasks-v2-col__head { background: #fffbeb; }
.tasks-v2-col--done .tasks-v2-col__head { background: #f0fdf4; }
.tasks-v2-col__head-left {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.tasks-v2-col__title {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #1f2937;
}
.tasks-v2-col__count {
  font-size: 12px;
  color: #6b7280;
}
.tasks-v2-col__add {
  font-size: 18px;
  line-height: 1;
  color: #7c3aed;
  text-decoration: none;
  font-weight: 600;
}
.tasks-v2-col__add:hover { color: #6d28d9; }
.tasks-v2-col__cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  border-radius: 8px;
  transition: background 150ms ease, box-shadow 150ms ease;
}
.tasks-v2-col__cards.is-drag-over {
  background: #f3e8ff;
  box-shadow: inset 0 0 0 2px #c4b5fd;
}
.tasks-v2-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  cursor: grab;
  transition: box-shadow 150ms ease, transform 150ms ease;
}
.tasks-v2-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.tasks-v2-card--search-match {
  background: #4c1d95;
  border-color: #5b21b6;
  box-shadow: 0 2px 8px rgba(76, 29, 149, 0.35);
}
.tasks-v2-card--search-match:hover {
  box-shadow: 0 4px 14px rgba(76, 29, 149, 0.45);
}
.tasks-v2-card--search-match .tasks-v2-card__title {
  color: #f5f3ff;
}
.tasks-v2-card--search-match .tasks-v2-card__title:hover {
  color: #ede9fe;
}
.tasks-v2-card--search-match .tasks-v2-card__title.is-completed {
  color: #ddd6fe;
}
.tasks-v2-card--search-match .tasks-v2-card__desc,
.tasks-v2-card--search-match .tasks-v2-card__assignee-name,
.tasks-v2-card--search-match .tasks-v2-card__due,
.tasks-v2-card--search-match .tasks-v2-card__meta-item {
  color: #ddd6fe;
}
.tasks-v2-card--search-match .tasks-v2-card__menu-btn {
  color: #c4b5fd;
}
.tasks-v2-card--search-match .tasks-v2-card__menu-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #ede9fe;
}
.tasks-v2-card--search-match .tasks-v2-card__avatar {
  color: #ede9fe;
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.25);
}
.tasks-v2-card--search-match .tasks-v2-priority--high {
  color: #fecaca;
  background: rgba(239, 68, 68, 0.25);
}
.tasks-v2-card--search-match .tasks-v2-priority--medium {
  color: #fde68a;
  background: rgba(245, 158, 11, 0.25);
}
.tasks-v2-card--search-match .tasks-v2-priority--low {
  color: #bbf7d0;
  background: rgba(16, 185, 129, 0.25);
}
.tasks-v2-card.is-dragging { opacity: 0.55; cursor: grabbing; }
.tasks-v2-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.tasks-v2-card__title {
  font-size: 12px;
  font-weight: 700;
  color: #1f2937;
  text-decoration: none;
  line-height: 1.4;
  word-break: break-word;
}
.tasks-v2-card__title:hover { color: #7c3aed; }
.tasks-v2-card__title.is-completed { text-decoration: line-through; color: #6b7280; }
.tasks-v2-card__menu-btn {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: transparent;
  color: #9ca3af;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  border-radius: 4px;
}
.tasks-v2-card__menu-btn:hover { background: #f3f4f6; color: #6b7280; }
.tasks-v2-card__desc {
  margin: 0;
  font-size: 11px;
  color: #6b7280;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tasks-v2-card__assignee {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tasks-v2-card__avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  font-size: 9px;
  font-weight: 700;
  color: #6b7280;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
}
.tasks-v2-card__assignee-name {
  font-size: 11px;
  color: #6b7280;
}
.tasks-v2-card__due {
  margin: 0;
  font-size: 11px;
  color: #6b7280;
}
.tasks-v2-priority {
  align-self: flex-start;
  font-size: 10px;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 4px;
}
.tasks-v2-priority--high { color: #ef4444; background: #fee2e2; }
.tasks-v2-priority--medium { color: #f59e0b; background: #fef3c7; }
.tasks-v2-priority--low { color: #10b981; background: #dcfce7; }
.tasks-v2-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
}
.tasks-v2-card__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: #6b7280;
}
.tasks-v2-card__check {
  position: absolute;
  top: 10px;
  right: 36px;
  color: #10b981;
}
.tasks-v2-more-link {
  display: inline-block;
  margin-top: 8px;
  padding: 0;
  border: none;
  background: none;
  font-size: 12px;
  font-weight: 500;
  color: #7c3aed;
  cursor: pointer;
  text-decoration: none;
}
.tasks-v2-more-link:hover { text-decoration: underline; color: #6d28d9; }
.tasks-v2-activity-shell {
  display: flex;
  flex-direction: column;
  flex: 0 0 20%;
  width: 20%;
  max-width: 20%;
  min-width: 12rem;
  align-self: stretch;
  min-height: 0;
  height: 100%;
  z-index: 5;
  transition: flex-basis 0.25s ease, width 0.25s ease, max-width 0.25s ease;
}
.tasks-v2-activity-shell.is-collapsed {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  flex: none;
  width: 2.75rem;
  max-width: 2.75rem;
  min-width: 2.75rem;
}
.tasks-v2-activity-shell:not(.is-collapsed) {
  position: relative;
}
.tasks-v2-activity {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-top: none;
  border-radius: 0 0 8px 8px;
  padding: 16px 20px;
  box-sizing: border-box;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: flex-basis 0.25s ease, max-height 0.25s ease, padding 0.25s ease;
}
.tasks-v2-activity-shell.is-collapsed .tasks-v2-activity {
  flex: 1 1 auto;
  padding: 0 6px;
  overflow: visible;
  border-radius: 8px 0 0 8px;
  border-right: none;
}
.tasks-v2-activity-shell.is-collapsed .tasks-v2-activity-toggle {
  border-radius: 8px 0 0 0;
}
.tasks-v2-activity__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  transition: max-height 0.25s ease, opacity 0.2s ease, flex-basis 0.25s ease;
}
.tasks-v2-activity-shell.is-collapsed .tasks-v2-activity__body {
  flex: 0 0 0;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
}
.tasks-v2-activity__rail {
  display: none;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  flex: 1;
  padding-top: 8px;
}
.tasks-v2-activity-shell.is-collapsed .tasks-v2-activity__rail {
  display: flex;
}
.tasks-v2-activity__rail-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  color: #7c3aed;
  background: #f3e8ff;
}
.tasks-v2-activity__rail-label {
  font-size: 14px;
  font-weight: 700;
  color: #1f2937;
  white-space: nowrap;
}
.tasks-v2-activity-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 32px;
  flex-shrink: 0;
  padding: 0;
  border: 1px solid #e5e7eb;
  border-radius: 8px 8px 0 0;
  border-bottom: none;
  background: #fff;
  color: #6b7280;
  cursor: pointer;
  transition: background 150ms ease, color 150ms ease;
  z-index: 3;
}
.tasks-v2-activity-toggle:hover {
  color: #7c3aed;
  background: #f3e8ff;
}
.tasks-v2-activity-toggle-icon--expand {
  display: none;
}
.tasks-v2-activity-shell.is-collapsed .tasks-v2-activity-toggle-icon--collapse {
  display: none;
}
.tasks-v2-activity-shell.is-collapsed .tasks-v2-activity-toggle-icon--expand {
  display: block;
}
.tasks-v2-activity-shell [data-tasks-activity-tooltip] {
  position: relative;
}
.tasks-v2-activity-shell.is-collapsed [data-tasks-activity-tooltip]::after {
  content: attr(data-tasks-activity-tooltip);
  position: absolute;
  right: calc(100% + 0.5rem);
  top: 50%;
  transform: translateY(-50%);
  padding: 0.35rem 0.6rem;
  border-radius: 6px;
  background: #1f2937;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.12s ease, visibility 0.12s ease;
  z-index: 250;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15);
}
.tasks-v2-activity-shell.is-collapsed [data-tasks-activity-tooltip]:hover::after,
.tasks-v2-activity-shell.is-collapsed [data-tasks-activity-tooltip]:focus-visible::after {
  opacity: 1;
  visibility: visible;
}
.tasks-v2-activity-shell.is-collapsed .tasks-v2-activity__rail {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  flex: 1 1 auto;
  padding: 12px 0;
  min-height: 0;
}
.tasks-v2-activity-shell.is-collapsed .tasks-v2-activity__rail-label {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #6b7280;
}
.tasks-v2-activity__title {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: #1f2937;
}
.tasks-v2-activity__subtitle {
  margin: 4px 0 0;
  font-size: 12px;
  color: #6b7280;
}
.tasks-v2-activity__head { margin-bottom: 16px; }
.tasks-v2-activity__filter { margin-bottom: 16px; }
.tasks-v2-activity__filter-label {
  display: block;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6b7280;
}
.tasks-v2-activity__feed {
  flex: 1;
  overflow-y: auto;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 16px;
}
.tasks-v2-activity-item {
  display: flex;
  gap: 12px;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px solid #e5e7eb;
}
.tasks-v2-activity-item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.tasks-v2-activity-item.is-hidden { display: none; }
.tasks-v2-activity-item__avatar {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  font-size: 10px;
  font-weight: 700;
  color: #6b7280;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
}
.tasks-v2-activity-item__body { flex: 1; min-width: 0; }
.tasks-v2-activity-item__action {
  margin: 0;
  font-size: 12px;
  color: #6b7280;
  line-height: 1.4;
}
.tasks-v2-activity-item__action strong { color: #1f2937; }
.tasks-v2-activity-item__detail {
  margin: 4px 0 0;
  font-size: 12px;
  color: #6b7280;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tasks-v2-activity-item__foot {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  flex-wrap: wrap;
}
.tasks-v2-activity-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 4px;
}
.tasks-v2-activity-badge--product { color: #7c3aed; background: #f3e8ff; }
.tasks-v2-activity-badge--quote { color: #0284c7; background: #e0f2fe; }
.tasks-v2-activity-badge--task { color: #10b981; background: #dcfce7; }
.tasks-v2-activity-badge--request { color: #f59e0b; background: #fef3c7; }
.tasks-v2-activity-badge--client { color: #06b6d4; background: #cffafe; }
.tasks-v2-activity-badge--invoice { color: #6366f1; background: #e0e7ff; }
.tasks-v2-activity-item__time {
  font-size: 11px;
  color: #9ca3af;
}
.tasks-v2-activity__footer {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #e5e7eb;
}
.tasks-v2-list-wrap {
  padding: 0;
}
.tasks-v2-main--list {
  padding: 0;
}
.tasks-v2-main--list .tasks-table-card {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}
.tasks-v2-list-controls { margin-top: 0; }
.tasks-v2-list-controls .products-catalog-bulk {
  align-items: center;
  flex-wrap: nowrap;
}
.tasks-v2-list-controls .products-catalog-bulk-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.75rem;
  flex: 1 1 auto;
  min-width: 0;
}
.tasks-v2-list-toolbar-filters {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.75rem;
  margin-left: auto;
  flex-shrink: 0;
}
.tasks-v2-list-toolbar-filters .tasks-filter-menu {
  display: inline-flex;
}
.tasks-v2-list-toolbar-filters .tasks-filter-btn {
  min-width: 7.5rem;
  max-width: none;
  box-shadow: none;
  font-weight: var(--btn-font-weight);
  font-size: var(--btn-font-size);
  padding: var(--btn-padding-y) var(--btn-padding-x);
  min-height: var(--btn-min-height);
}
.tasks-v2-list-toolbar-filters .tasks-v2-due-select-wrap {
  padding: var(--btn-padding-y) var(--btn-padding-x);
  min-height: var(--btn-min-height);
}
.tasks-v2-due-select-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
  cursor: pointer;
  box-shadow: none;
  white-space: nowrap;
}
.tasks-v2-due-select-native {
  appearance: none;
  border: none;
  background: transparent;
  color: #7c3aed;
  font: inherit;
  font-size: var(--btn-font-size);
  font-weight: var(--btn-font-weight);
  line-height: 1.25;
  padding: 0 1.25rem 0 0;
  cursor: pointer;
  min-width: 5.5rem;
}
.tasks-v2-due-select-wrap .tasks-filter-chevron {
  position: absolute;
  right: 0.75rem;
  pointer-events: none;
  color: #6b7280;
}
.tasks-v2-list-toolbar-filters .tasks-v2-due-select-wrap:hover {
  background: #f9f5ff;
  border-color: #7c3aed;
}
.tasks-v2-list-new-btn {
  flex-shrink: 0;
  background: #7c3aed;
  color: #fff;
  font-weight: 700;
  border: 1px solid #7c3aed;
  box-shadow: none;
  text-decoration: none;
}
.tasks-v2-list-new-btn:hover {
  background: #6d28d9;
  border-color: #6d28d9;
  color: #fff;
}
.tasks-v2-card-menu .nav-dropdown-menu { min-width: 10rem; }
.activities-v2-main {
  padding: 24px;
}
.activities-v2-panel {
  max-width: 720px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  padding: 24px;
}
.activities-v2-filter {
  margin-bottom: 16px;
}
.activities-v2-feed {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.activities-v2-item {
  padding: 16px 0;
  margin-bottom: 0;
  border-bottom: 1px solid #e5e7eb;
}
.activities-v2-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
@media (max-width: 1023px) {
  .tasks-v2-workspace {
    flex-direction: column;
    min-height: 0;
  }
  .tasks-v2-workspace .tasks-v2-main,
  .tasks-v2-workspace:has(.tasks-v2-activity-shell:not(.is-collapsed)) .tasks-v2-main {
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
  }
  .tasks-v2-activity-shell,
  .tasks-v2-activity-shell.is-collapsed,
  .tasks-v2-activity-shell:not(.is-collapsed) {
    position: static;
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    min-width: 0;
    order: 2;
  }
  .tasks-v2-activity-shell:not(.is-collapsed) .tasks-v2-activity {
    max-height: 40vh;
  }
  .tasks-v2-board { min-height: auto; flex-wrap: nowrap; }
  .tasks-v2-col {
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
  }
  .tasks-v2-board-wrap,
  .tasks-v2-main--list .tasks-v2-list-wrap {
    padding-right: 0;
  }
}
@media (max-width: 767px) {
  .tasks-v2-topbar { padding: 12px 16px; }
  .tasks-v2-header-actions { width: 100%; }
}

/* Team settings */
.team-member-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.team-member-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border-subtle, #e8e8e8);
}
.team-member-row:last-child { border-bottom: none; }
.team-role-badge {
  font-size: 0.875rem;
  color: var(--text-muted, #666);
}
.team-delete-policy-form {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.team-policy-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.team-invite-form .client-form-field--actions,
.team-upgrade-form { margin-top: 0.5rem; }
