:root {
  --lw-navy: #1a2f4a;
  --lw-navy-light: #243d5c;
  --lw-accent: #2d8a5e;
  --lw-accent-soft: #e8f5ee;
  --lw-alert: #c0392b;
  --lw-warning: #d97706;
  --lw-surface: #f4f6f9;
  --lw-border: #e2e8f0;
  --lw-sidebar-width: 15.5rem;
  --lw-sidebar-collapsed-width: 4.25rem;
}

body {
  background-color: var(--lw-surface);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.lw-app {
  min-height: 100vh;
}

/* Sidebar */
.lw-sidebar {
  background: var(--lw-navy);
  color: #fff;
  width: var(--lw-sidebar-width);
  min-height: 100vh;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  z-index: 1030;
  overflow: hidden;
  transition: width 0.2s ease;
}

.lw-sidebar-brand {
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: 0.02em;
  color: #fff;
  text-decoration: none;
}

.lw-sidebar-brand:hover {
  color: #fff;
  opacity: 0.9;
}

.lw-nav-link {
  color: rgba(255, 255, 255, 0.78);
  border-radius: 0.5rem;
  padding: 0.6rem 0.85rem;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
  position: relative;
}

.lw-nav-link:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

.lw-nav-link.active {
  color: #fff;
  background: var(--lw-navy-light);
  font-weight: 600;
}

.lw-nav-link.disabled,
.lw-nav-link[aria-disabled="true"] {
  opacity: 0.45;
  pointer-events: none;
}

.lw-nav-badge {
  font-size: 0.7rem;
  font-weight: 700;
  background: var(--lw-alert);
  color: #fff;
  border-radius: 999px;
  padding: 0.1rem 0.45rem;
  margin-left: auto;
}

.lw-sidebar-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.lw-sidebar-pin-btn {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.78);
  border-radius: 0.5rem;
  padding: 0.6rem 0.85rem;
  font-size: 0.9rem;
  text-align: left;
}

.lw-sidebar-pin-btn:hover,
.lw-sidebar-pin-btn:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  outline: none;
}

.lw-sidebar-pin-btn[aria-pressed="true"] {
  color: #fff;
}

/* Auto-hide: icon rail, expand on hover/focus */
@media (min-width: 992px) {
  body.lw-sidebar-auto .lw-sidebar {
    width: var(--lw-sidebar-collapsed-width);
    padding-left: 0.65rem !important;
    padding-right: 0.65rem !important;
  }

  body.lw-sidebar-auto .lw-sidebar:hover,
  body.lw-sidebar-auto .lw-sidebar:focus-within {
    width: var(--lw-sidebar-width);
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    box-shadow: 0.5rem 0 1.5rem rgba(15, 23, 42, 0.28);
  }

  body.lw-sidebar-auto .lw-sidebar .lw-sidebar-label {
    opacity: 0;
    width: 0;
    overflow: hidden;
    white-space: nowrap;
    pointer-events: none;
  }

  body.lw-sidebar-auto .lw-sidebar:hover .lw-sidebar-label,
  body.lw-sidebar-auto .lw-sidebar:focus-within .lw-sidebar-label {
    opacity: 1;
    width: auto;
    pointer-events: auto;
  }

  body.lw-sidebar-auto .lw-sidebar .lw-nav-link,
  body.lw-sidebar-auto .lw-sidebar .lw-sidebar-pin-btn {
    justify-content: center;
    padding-left: 0.55rem;
    padding-right: 0.55rem;
  }

  body.lw-sidebar-auto .lw-sidebar:hover .lw-nav-link,
  body.lw-sidebar-auto .lw-sidebar:focus-within .lw-nav-link,
  body.lw-sidebar-auto .lw-sidebar:hover .lw-sidebar-pin-btn,
  body.lw-sidebar-auto .lw-sidebar:focus-within .lw-sidebar-pin-btn {
    justify-content: flex-start;
    padding-left: 0.85rem;
    padding-right: 0.85rem;
  }

  body.lw-sidebar-auto .lw-sidebar .lw-nav-badge {
    position: absolute;
    top: 0.2rem;
    right: 0.15rem;
    margin-left: 0;
    min-width: 1.1rem;
    text-align: center;
    padding: 0.05rem 0.3rem;
  }

  body.lw-sidebar-auto .lw-sidebar:hover .lw-nav-badge,
  body.lw-sidebar-auto .lw-sidebar:focus-within .lw-nav-badge {
    position: static;
    margin-left: auto;
  }

  /* Top-bar bell mirrors New Business only while sidebar is auto-hiding */
  body.lw-sidebar-pinned .lw-topbar-new-requests {
    display: none !important;
  }

  body.lw-sidebar-auto .lw-topbar-new-requests.is-empty {
    opacity: 0.45;
    pointer-events: none;
  }
}

/* Main area */
.lw-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.lw-topbar {
  background: #fff;
  border-bottom: 1px solid var(--lw-border);
  min-height: 3.75rem;
}

.lw-command-surface {
  width: 100%;
}

.lw-command-surface-field {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem 0.95rem;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 4px 14px rgba(15, 23, 42, 0.06);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lw-command-surface-field:focus-within {
  border-color: #94a3b8;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05), 0 6px 18px rgba(15, 23, 42, 0.08);
}

.lw-command-surface-icon {
  color: #64748b;
  font-size: 1rem;
  flex-shrink: 0;
}

.lw-command-surface-input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 0.95rem;
  color: var(--lw-navy);
}

.lw-command-surface-input:focus {
  outline: none;
  box-shadow: none;
}

.lw-command-surface-input::placeholder {
  color: #94a3b8;
}

.lw-command-surface-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  color: #64748b;
  text-decoration: none;
  flex-shrink: 0;
}

.lw-command-surface-clear:hover {
  background: #f1f5f9;
  color: var(--lw-navy);
}

.lw-command-surface-hint {
  margin-top: 0.5rem;
  padding-left: 0.15rem;
  font-size: 0.8rem;
  color: #64748b;
}

.lw-global-search-result {
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}

.lw-global-search-result:hover,
.lw-global-search-result:focus {
  background-color: rgba(26, 54, 93, 0.04);
}

.lw-content {
  flex: 1;
  padding: 1rem;
}

@media (min-width: 768px) {
  .lw-content {
    padding: 1.5rem;
  }
}

.lw-page-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--lw-navy);
}

.lw-footer {
  background: #fff;
  border-top: 1px solid var(--lw-border);
  color: #6b7280;
  font-size: 0.8rem;
  padding: 0.75rem 1rem;
}

/* Cards */
.lw-card {
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.lw-card-header {
  padding: 1rem 1.15rem 0.5rem;
  border-bottom: none;
  background: transparent;
}

.lw-card-body {
  padding: 0.75rem 1.15rem 1.15rem;
}

.lw-card-title {
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #64748b;
  margin: 0;
}

.lw-card-highlight {
  border-left: 4px solid var(--lw-alert);
  background: linear-gradient(135deg, #fff 0%, #fff8f7 100%);
}

.lw-stat-value {
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--lw-navy);
}

.lw-stat-label {
  font-size: 0.85rem;
  color: #64748b;
}

.lw-stat-alert {
  color: var(--lw-alert);
}

.lw-work-item,
.lw-project-item,
.lw-activity-item {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--lw-border);
}

.lw-work-item:last-child,
.lw-project-item:last-child,
.lw-activity-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.lw-work-time {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--lw-accent);
  min-width: 5.5rem;
}

.lw-activity-dot {
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--lw-accent);
  margin-top: 0.45rem;
  flex-shrink: 0;
}

.lw-activity-line {
  position: relative;
  padding-left: 1.25rem;
}

.lw-activity-line::before {
  content: "";
  position: absolute;
  left: 0.2rem;
  top: 1.1rem;
  bottom: -0.25rem;
  width: 2px;
  background: var(--lw-border);
}

.lw-activity-item:last-child .lw-activity-line::before {
  display: none;
}

.lw-placeholder-icon {
  font-size: 2.5rem;
  color: #94a3b8;
}

.lw-avatar {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--lw-navy);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Mobile offcanvas sidebar */
.offcanvas.lw-offcanvas {
  background: var(--lw-navy);
  color: #fff;
  width: var(--lw-sidebar-width);
}

.offcanvas.lw-offcanvas .lw-sidebar-footer {
  display: none;
}
  filter: invert(1) grayscale(1);
}

/* New Business */
.lw-summary-card {
  border-top: 3px solid var(--lw-border);
}

.lw-summary-urgent {
  border-top-color: var(--lw-alert);
  background: linear-gradient(180deg, #fff8f7 0%, #fff 100%);
}

.lw-summary-card-link {
  transition: transform 0.15s ease;
}

.lw-summary-card-link:hover {
  transform: translateY(-1px);
}

.lw-summary-card-link:hover .lw-summary-card:not(.lw-summary-card-active) {
  border-top-color: var(--lw-accent);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.lw-summary-card-active {
  border-top-color: var(--lw-navy) !important;
  background: linear-gradient(180deg, #f0f4f8 0%, #fff 100%);
  box-shadow: inset 0 0 0 2px var(--lw-navy);
}

.lw-summary-card-active .lw-stat-label {
  color: var(--lw-navy);
  font-weight: 600;
}

.lw-summary-card-draft {
  border-top-color: #cbd5e1;
}

.lw-summary-card-active.lw-summary-card-draft {
  border-top-style: solid;
}

.lw-summary-card-draft .lw-stat-label {
  color: #64748b;
}

.lw-filter-empty {
  font-size: 0.9rem;
}

.lw-list-search,
.lw-module-filter {
  min-width: min(100%, 12rem);
  flex: 0 1 auto;
  max-width: 15rem;
}

.lw-module-filter-field {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.35rem 0.65rem;
  background: #f8fafc;
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
}

.lw-module-filter-field:focus-within {
  background: #fff;
  border-color: #cbd5e1;
}

.lw-module-filter-icon {
  color: #94a3b8;
  font-size: 0.75rem;
  flex-shrink: 0;
}

.lw-module-filter-input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 0.82rem;
  color: #475569;
}

.lw-module-filter-input:focus {
  outline: none;
  box-shadow: none;
}

.lw-module-filter-input::placeholder {
  color: #94a3b8;
}

.lw-module-filter-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15rem;
  height: 1.15rem;
  color: #94a3b8;
  text-decoration: none;
  flex-shrink: 0;
}

.lw-module-filter-clear:hover {
  color: #64748b;
}

/* Compact Status + Time view filters for operational workspaces */
.lw-workspace-view-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}

.lw-workspace-view-filter {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 8.5rem;
}

.lw-workspace-view-filter-label {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  margin: 0;
}

.lw-workspace-view-select {
  min-width: 9.5rem;
  max-width: 12rem;
  font-size: 0.82rem;
  color: #334155;
  background-color: #f8fafc;
  border-color: var(--lw-border);
}

.lw-workspace-view-select:focus {
  background-color: #fff;
  border-color: #cbd5e1;
  box-shadow: none;
}

.lw-workspace-view-reset {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
  font-size: 0.8rem;
  align-self: flex-end;
  margin-bottom: 0.15rem;
}

@media (max-width: 575.98px) {
  .lw-workspace-view-filter,
  .lw-workspace-view-select {
    min-width: 0;
    max-width: none;
    flex: 1 1 calc(50% - 0.5rem);
  }

  .lw-workspace-view-filters {
    gap: 0.65rem;
  }
}

.lw-request-table thead th {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
  border-bottom-width: 1px;
  white-space: nowrap;
}

.lw-request-table tbody td {
  font-size: 0.9rem;
}

.lw-request-card {
  background: #fff;
}

.lw-detail-list dt {
  font-size: 0.85rem;
  font-weight: 600;
}

.lw-detail-list dd {
  font-size: 0.95rem;
}

/* Workspace Status — compact orientation panel on Dashboard */
.lw-workspace-status-list {
  margin: 0;
}

.lw-workspace-status-label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 0.35rem;
}

.lw-workspace-status-value {
  font-size: 0.95rem;
  color: var(--lw-navy);
  font-weight: 500;
}

.lw-workspace-status-count-row {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  font-size: 0.9rem;
  line-height: 1.55;
}

.lw-workspace-status-count-label {
  color: #475569;
  flex-shrink: 0;
}

.lw-workspace-status-count-dots {
  flex: 1 1 auto;
  border-bottom: 1px dotted #cbd5e1;
  min-width: 1.5rem;
  transform: translateY(-0.25rem);
}

.lw-workspace-status-count-value {
  font-weight: 600;
  color: var(--lw-navy);
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}

/* Clickable list rows and cards */
.project-row-link,
.project-card-link,
.quote-row-link,
.quote-card-link,
.invoice-row-link,
.invoice-card-link,
.receipt-row-link,
.receipt-card-link,
.schedule-row-link,
.schedule-card-link,
.customer-row-link,
.customer-card-link,
.request-row-link,
.request-card-link,
tr[data-href],
tr[data-href] > * {
  cursor: pointer;
}

.quote-card-link *,
.project-card-link *,
.invoice-card-link *,
.receipt-card-link *,
.schedule-card-link *,
.customer-card-link *,
.request-card-link * {
  cursor: pointer;
}

.project-row-link:hover,
.project-card-link:hover,
.quote-row-link:hover,
.quote-card-link:hover,
.invoice-row-link:hover,
.invoice-card-link:hover,
.receipt-row-link:hover,
.receipt-card-link:hover,
.schedule-row-link:hover,
.schedule-card-link:hover,
.customer-row-link:hover,
.customer-card-link:hover,
.request-row-link:hover,
.request-card-link:hover,
tr[data-href]:hover {
  background-color: rgba(0, 0, 0, 0.03);
}

.lw-request-table tbody tr[data-href]:hover > * {
  background-color: rgba(0, 0, 0, 0.03);
}

/* New Business — calm row selection */
.lw-request-selectable {
  transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.lw-request-table tbody tr.lw-request-selected {
  --lw-request-selected-bg: #edf5ff;
  --bs-table-bg: var(--lw-request-selected-bg);
  --bs-table-accent-bg: var(--lw-request-selected-bg);
  --bs-table-hover-bg: var(--lw-request-selected-bg);
  --bs-table-bg-state: var(--lw-request-selected-bg);
}

.lw-request-table tbody tr.lw-request-selected > td {
  background-color: var(--lw-request-selected-bg) !important;
  box-shadow: inset 0 0 0 9999px rgba(37, 99, 235, 0.04) !important;
}

.lw-request-table tbody tr.lw-request-selected:hover > td {
  background-color: var(--lw-request-selected-bg) !important;
  box-shadow: inset 0 0 0 9999px rgba(37, 99, 235, 0.04) !important;
}

.lw-request-table tbody tr.lw-request-selected > td:first-child,
.lw-request-table tbody tr.lw-request-selected:hover > td:first-child {
  box-shadow:
    inset 4px 0 0 var(--lw-accent),
    inset 0 0 0 9999px rgba(37, 99, 235, 0.04) !important;
}

.lw-request-selectable.request-card-link.lw-request-selected,
.lw-request-selectable.customer-card-link.lw-request-selected,
.lw-request-selectable.project-card-link.lw-request-selected,
.lw-request-selectable.quote-card-link.lw-request-selected,
.lw-request-selectable.invoice-card-link.lw-request-selected,
.lw-request-selectable.receipt-card-link.lw-request-selected {
  background-color: #edf5ff;
  box-shadow:
    inset 4px 0 0 var(--lw-accent),
    inset 0 0 0 9999px rgba(37, 99, 235, 0.04);
}

/* Draft request rows — lightweight, temporary feel */
.lw-request-table tbody tr.lw-request-draft {
  background-color: #fafbfc;
}

.lw-request-table tbody tr.lw-request-draft > td {
  color: #64748b;
}

.lw-request-table tbody tr.lw-request-draft:hover > td {
  background-color: #f5f7fa;
}

.lw-request-selectable.request-card-link.lw-request-draft {
  background-color: #fafbfc;
}

.lw-draft-id {
  color: #94a3b8 !important;
  font-style: italic;
}

.lw-badge-draft {
  background: #f1f5f9;
  color: #64748b;
  border: 1px dashed #94a3b8;
  font-weight: 500;
  font-size: 0.72rem;
}

.lw-draft-needs-badge {
  font-size: 0.7rem;
  color: #94a3b8;
  font-weight: 500;
  white-space: nowrap;
}

.lw-draft-needs-badge i {
  font-size: 0.65rem;
}

/* Inline guidance — rendered directly beneath selected row/card */
.lw-inline-guidance-row > td {
  background: transparent !important;
}

.lw-inline-guidance {
  padding: 0.65rem 0 0.55rem 0.5rem;
}

.lw-inline-guidance-body {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.85rem 1rem;
  padding-right: 2.15rem;
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid rgba(203, 213, 225, 0.35);
  border-radius: 0.75rem;
  box-shadow: 0 2px 12px rgba(26, 47, 74, 0.06);
  max-width: 380px;
  width: fit-content;
}

.lw-inline-guidance-label {
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #3b82f6;
  margin-bottom: 0;
}

.lw-inline-guidance-draft .lw-inline-guidance-body {
  border-style: dashed;
  border-color: #94a3b8;
}

.lw-inline-guidance-draft .lw-inline-guidance-label {
  color: #64748b;
}

.lw-inline-guidance-hint {
  font-size: 0.9rem;
  font-weight: 500;
  color: #334155;
  line-height: 1.42;
}

.lw-inline-guidance-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.lw-inline-guidance-primary.btn {
  background-color: #3b82f6;
  border-color: #3b82f6;
  color: #fff;
  font-weight: 500;
}

.lw-inline-guidance-primary.btn:hover {
  background-color: #2563eb;
  border-color: #2563eb;
}

.lw-inline-guidance-close {
  position: absolute;
  top: 0.6rem;
  right: 0.55rem;
  font-size: 1.2rem;
  line-height: 1;
  padding: 0;
  color: #94a3b8;
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: none;
}

.lw-inline-guidance-close:hover {
  color: var(--lw-navy);
}

.lw-inline-guidance-card {
  border-bottom: 1px solid var(--lw-border);
}

.lw-inline-guidance-card .lw-inline-guidance {
  padding: 0.6rem 0.85rem 0.65rem;
}

@media (max-width: 575.98px) {
  .lw-inline-guidance-body {
    max-width: 100%;
  }

  .lw-inline-guidance-actions .btn:not(.lw-inline-guidance-close) {
    flex: 1;
  }
}

.lw-intake-lifecycle li {
  position: relative;
  padding: 0.35rem 0 0.35rem 1.25rem;
  color: #94a3b8;
}

.lw-intake-lifecycle li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.65rem;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: #cbd5e1;
}

.lw-intake-lifecycle li.active {
  color: var(--lw-navy);
  font-weight: 600;
}

.lw-intake-lifecycle li.active::before {
  background: var(--lw-accent);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.lw-intake-lifecycle li.done {
  color: #64748b;
}

.lw-intake-lifecycle li.done::before {
  background: #22c55e;
}

.lw-operational-progress-step {
  position: relative;
  padding: 0.35rem 0 0.35rem 1.25rem;
  color: #cbd5e1;
}

.lw-operational-progress-step::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.65rem;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: #e2e8f0;
}

.lw-operational-progress-step--done {
  color: #64748b;
}

.lw-operational-progress-step--done::before {
  background: #22c55e;
}

.lw-operational-progress-step--active {
  color: var(--lw-navy);
  font-weight: 600;
}

.lw-operational-progress-step--active::before {
  background: var(--lw-accent);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

.lw-operational-progress-step--pending {
  color: #cbd5e1;
}

/* Projects */
.lw-clickable-row {
  cursor: pointer;
}

.lw-clickable-row > * {
  cursor: pointer;
}

.lw-project-header {
  border-left: 4px solid var(--lw-navy);
}

.lw-project-workspace-nav .nav-link {
  font-size: 0.875rem;
  font-weight: 500;
  color: #475569;
  white-space: nowrap;
}

.lw-project-workspace-nav .nav-link.active {
  background: var(--lw-navy);
  color: #fff;
}

.lw-project-workspace-nav .nav-link:not(.active):not(.disabled):hover {
  background: var(--lw-surface);
  color: var(--lw-navy);
}

.lw-project-workspace-nav .nav-link.disabled {
  opacity: 0.5;
  cursor: default;
}

.lw-project-photo-summary {
  border-left: 3px solid rgba(13, 110, 253, 0.35);
}

.lw-project-photo-summary .lw-photo-event-thumb {
  width: 5.5rem;
}

.lw-project-photo-summary .lw-photo-event-thumb .lw-photo-placeholder {
  width: 5.5rem;
  height: 5.5rem;
  font-size: 1rem;
}

.lw-project-photos-context {
  padding: 0.75rem 1rem;
  background: var(--lw-surface);
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
}

/* Project continuity — milestones & activity */
.lw-milestone-phase-label {
  letter-spacing: 0.06em;
  font-size: 0.7rem;
}

.lw-milestone-card {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--lw-border);
}

.lw-milestone-card:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.lw-milestone-marker {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--lw-surface);
  border: 2px solid var(--lw-border);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.95rem;
  color: #64748b;
}

.lw-milestone-card--complete .lw-milestone-marker {
  border-color: var(--lw-accent);
  color: var(--lw-accent);
  background: rgba(45, 138, 94, 0.08);
}

.lw-milestone-card--current .lw-milestone-marker {
  border-color: var(--lw-navy);
  color: var(--lw-navy);
  background: rgba(15, 23, 42, 0.06);
}

.lw-milestone-card--upcoming .lw-milestone-marker {
  opacity: 0.55;
}

.lw-milestone-preview-icon,
.lw-activity-entry-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  background: var(--lw-surface);
  border: 1px solid var(--lw-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  color: #64748b;
}

.lw-activity-day-label {
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.7rem;
}

.lw-activity-entry {
  padding: 0.5rem 0.65rem;
  border-radius: 0.5rem;
  background: #fff;
  border: 1px solid var(--lw-border);
}

.lw-continuity-nav .btn {
  font-size: 0.8rem;
}

/* Project receipts & schedule */
.lw-receipt-phase-label,
.lw-schedule-day-label {
  letter-spacing: 0.06em;
  font-size: 0.7rem;
}

.lw-receipt-entry,
.lw-schedule-entry {
  padding: 0.85rem;
  margin-bottom: 0.65rem;
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
  background: #fff;
}

.lw-receipt-entry:last-child,
.lw-schedule-entry:last-child {
  margin-bottom: 0;
}

.lw-photo-placeholder {
  aspect-ratio: 1;
  background: var(--lw-surface);
  border: 1px dashed var(--lw-border);
  border-radius: 0.5rem;
  font-size: 1.5rem;
}

.lw-photo-caption {
  line-height: 1.3;
}

/* Project Photos — operational visual memory (exploration) */
.lw-exploration-banner {
  padding: 0.65rem 1rem;
  background: linear-gradient(90deg, rgba(13, 110, 253, 0.08) 0%, rgba(45, 138, 94, 0.08) 100%);
  border: 1px solid rgba(13, 110, 253, 0.2);
  border-radius: 0.5rem;
  font-size: 0.875rem;
  color: #334155;
}

.lw-photo-filter {
  width: auto;
  min-width: 8rem;
  max-width: 10rem;
}

.lw-photo-project-card .lw-card {
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lw-photo-project-card:hover .lw-card {
  border-color: #94a3b8;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}

.lw-photo-preview-thumb .lw-photo-placeholder {
  font-size: 0.75rem;
}

.lw-photo-preview-label {
  font-weight: 700;
  color: #64748b;
}

.lw-photo-timeline-header {
  border-left: 4px solid var(--lw-navy);
}

.lw-photo-event {
  padding-left: 1rem;
  border-left: 2px solid var(--lw-border);
}

.lw-photo-event-row {
  scrollbar-width: thin;
}

.lw-photo-event-thumb {
  width: 6.5rem;
}

.lw-photo-event-thumb .lw-photo-placeholder {
  width: 6.5rem;
  height: 6.5rem;
  font-size: 1.25rem;
}

.lw-photo-more-badge {
  width: 6.5rem;
  min-height: 6.5rem;
}

.lw-photo-selectable {
  position: relative;
  cursor: default;
  border-radius: 0.375rem;
  transition: box-shadow 0.15s ease;
}

.lw-photo-timeline--select-mode .lw-photo-selectable {
  cursor: pointer;
}

.lw-photo-selectable:focus-visible {
  outline: 2px solid var(--lw-accent);
  outline-offset: 2px;
}

.lw-photo-select-indicator {
  position: absolute;
  top: 0.35rem;
  right: 0.35rem;
  z-index: 3;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  border: 2px solid #fff;
  background: rgba(15, 23, 42, 0.35);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  opacity: 0;
  transition: opacity 0.15s ease, background 0.15s ease;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}

.lw-photo-timeline--select-mode .lw-photo-select-indicator,
.lw-photo-selected .lw-photo-select-indicator {
  opacity: 1;
}

.lw-photo-selected {
  box-shadow: 0 0 0 2px var(--lw-accent);
}

.lw-photo-selected .lw-photo-select-indicator {
  background: var(--lw-accent);
  border-color: var(--lw-accent);
}

.lw-photo-select-toggle.active {
  background: var(--lw-accent);
  border-color: var(--lw-accent);
  color: #fff;
}

.lw-photo-placeholder-card {
  width: 100%;
  height: 100%;
  min-height: 6.5rem;
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
  border: 1px dashed #cbd5e1;
  border-radius: 0.375rem;
}

.lw-photo-placeholder-card-inner {
  height: 100%;
  min-height: 6.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.5rem;
}

.lw-photo-placeholder-card-inner i {
  font-size: 1.25rem;
  opacity: 0.55;
}

.lw-photo-placeholder-type {
  font-size: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
  font-weight: 600;
}

.lw-photo-selection-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1040;
  padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0));
  background: rgba(255, 255, 255, 0.96);
  border-top: 1px solid var(--lw-border);
  box-shadow: 0 -4px 24px rgba(15, 23, 42, 0.08);
  backdrop-filter: blur(8px);
}

.lw-photo-selection-bar-inner {
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
}

.lw-photo-selection-bar-count {
  font-size: 0.875rem;
  font-weight: 600;
  min-width: 5rem;
}

.lw-photo-selection-bar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  flex: 1;
}

.lw-photo-selection-clear {
  font-size: 0.875rem;
  text-decoration: none;
}

.lw-photo-mobile-capture {
  position: sticky;
  bottom: 0;
  padding: 0.75rem 0;
  background: linear-gradient(180deg, transparent 0%, #fff 30%);
  z-index: 10;
}

/* Sketches — field notes and visual planning */
.lw-sketch-phase-label {
  letter-spacing: 0.04em;
}

.lw-sketch-card {
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lw-sketch-card:hover {
  border-color: #94a3b8;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.lw-sketch-placeholder {
  aspect-ratio: 4 / 3;
  background: var(--lw-surface);
  border: 1px dashed var(--lw-border);
  border-radius: 0.375rem;
  font-size: 1.5rem;
}

.lw-sketch-preview-thumb .lw-sketch-placeholder {
  width: 3.5rem;
  height: 3.5rem;
  aspect-ratio: 1;
  font-size: 1rem;
}

.lw-sketch-note-icon {
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--lw-surface);
  border: 1px solid var(--lw-border);
  border-radius: 0.375rem;
  color: #64748b;
  font-size: 1.1rem;
}

.lw-sketch-toolbar .lw-sketch-tool {
  min-width: 2.25rem;
}

.lw-sketch-mobile-capture {
  position: sticky;
  bottom: 0;
  padding: 0.75rem 0;
  background: linear-gradient(180deg, transparent 0%, #fff 30%);
  z-index: 10;
}

.lw-sketch-toolbar-full .lw-sketch-tool-active {
  pointer-events: none;
}

.lw-sketch-snap-badge {
  font-weight: 500;
  cursor: default;
}

.lw-sketch-detail-canvas .lw-sketch-toolbar {
  margin-bottom: 0;
}

.lw-sketch-detail-canvas .lw-card-header {
  border-bottom: 1px solid var(--lw-border);
}

.lw-sketch-detail-preview {
  min-height: 12rem;
}

.lw-sketch-detail-placeholder {
  min-height: 16rem;
  background: var(--lw-surface);
  border: 1px dashed var(--lw-border);
  border-radius: 0.375rem;
  margin: 0 1rem;
}

.lw-sketch-detail-note {
  min-height: 12rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.lw-sketch-detail-note .lw-sketch-note-icon {
  width: 3.5rem;
  height: 3.5rem;
  font-size: 1.5rem;
}

.lw-sketch-detail-sidebar .lw-card-title {
  font-size: 0.9rem;
}

a:hover .lw-sketch-card {
  border-color: #94a3b8;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.lw-sketch-detail-preview-canvas .lw-sketch-canvas-mock {
  min-height: 14rem;
  border-radius: 0.375rem;
}

/* Sketch canvas mock — assisted tool visualization */
.lw-sketch-canvas-mock {
  position: relative;
  min-height: 18rem;
  background: #fffef9;
  border: 1px solid var(--lw-border);
  border-radius: 0.375rem;
  overflow: hidden;
}

.lw-sketch-canvas-mock--grid .lw-sketch-canvas-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(148, 163, 184, 0.2) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, 0.2) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
}

.lw-sketch-canvas-straight-guide {
  position: absolute;
  top: 35%;
  left: 12%;
  width: 55%;
  height: 2px;
  background: rgba(37, 99, 235, 0.55);
  transform: rotate(-4deg);
  pointer-events: none;
}

.lw-sketch-canvas-straight-guide::after {
  content: '';
  position: absolute;
  right: -6px;
  top: -4px;
  border: 5px solid transparent;
  border-left-color: rgba(37, 99, 235, 0.55);
}

.lw-sketch-canvas-right-angle {
  position: absolute;
  bottom: 28%;
  left: 18%;
  width: 4rem;
  height: 4rem;
  border-left: 2px solid rgba(220, 38, 38, 0.6);
  border-bottom: 2px solid rgba(220, 38, 38, 0.6);
  pointer-events: none;
}

.lw-sketch-canvas-shape {
  position: absolute;
  border: 2px solid rgba(15, 23, 42, 0.45);
  border-radius: 2px;
  pointer-events: none;
}

.lw-sketch-canvas-shape--deck {
  top: 22%;
  left: 15%;
  width: 58%;
  height: 38%;
}

.lw-sketch-canvas-shape--stairs {
  top: 48%;
  left: 62%;
  width: 22%;
  height: 28%;
  border-style: dashed;
}

.lw-sketch-canvas-shape--landing {
  top: 30%;
  left: 25%;
  width: 45%;
  height: 35%;
  border-color: rgba(37, 99, 235, 0.5);
}

.lw-sketch-canvas-shape--beam {
  top: 42%;
  left: 10%;
  width: 75%;
  height: 12%;
  background: rgba(148, 163, 184, 0.12);
}

.lw-sketch-canvas-shape--wall {
  top: 15%;
  left: 20%;
  width: 8%;
  height: 65%;
}

.lw-sketch-canvas-shape--niche {
  top: 35%;
  left: 28%;
  width: 18%;
  height: 22%;
  border-style: dashed;
}

.lw-sketch-canvas-shape--fence {
  top: 40%;
  left: 8%;
  width: 84%;
  height: 4px;
  background: rgba(15, 23, 42, 0.4);
  border: none;
}

.lw-sketch-canvas-shape--gate {
  top: 32%;
  left: 42%;
  width: 16%;
  height: 22%;
  border-style: dashed;
  border-color: rgba(37, 99, 235, 0.55);
}

.lw-sketch-canvas-shape--generic {
  top: 28%;
  left: 20%;
  width: 50%;
  height: 40%;
  border-style: dashed;
}

.lw-sketch-canvas-arrow--revision {
  position: absolute;
  top: 38%;
  right: 18%;
  width: 3rem;
  height: 3rem;
  border-top: 2px solid rgba(220, 38, 38, 0.65);
  border-right: 2px solid rgba(220, 38, 38, 0.65);
  transform: rotate(45deg);
  pointer-events: none;
}

.lw-sketch-canvas-label {
  position: absolute;
  font-size: 0.7rem;
  font-weight: 600;
  color: #1e40af;
  background: rgba(255, 255, 255, 0.85);
  padding: 0.1rem 0.35rem;
  border-radius: 0.2rem;
  border: 1px solid rgba(37, 99, 235, 0.25);
  pointer-events: none;
}

.lw-sketch-canvas-label.label-top { top: 12%; left: 42%; }
.lw-sketch-canvas-label.label-right { top: 38%; right: 8%; }
.lw-sketch-canvas-label.label-bottom { bottom: 18%; left: 38%; }
.lw-sketch-canvas-label.label-center { top: 44%; left: 42%; }
.lw-sketch-canvas-label.label-beam { top: 38%; left: 8%; }
.lw-sketch-canvas-label.label-arrow { top: 28%; right: 22%; color: #b91c1c; border-color: rgba(220, 38, 38, 0.3); }
.lw-sketch-canvas-label.label-gate { top: 48%; left: 44%; }
.lw-sketch-canvas-label.label-niche { top: 32%; left: 30%; }
.lw-sketch-canvas-label.label-towel { top: 52%; left: 12%; }

.lw-sketch-canvas-handwritten {
  position: absolute;
  bottom: 12%;
  right: 10%;
  max-width: 40%;
  font-family: "Segoe Print", "Bradley Hand", cursive;
  font-size: 0.8rem;
  color: #475569;
  transform: rotate(-3deg);
  pointer-events: none;
}

.lw-sketch-canvas-snap-indicator {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  font-size: 0.65rem;
  font-weight: 600;
  color: #64748b;
  background: rgba(255, 255, 255, 0.9);
  padding: 0.15rem 0.4rem;
  border-radius: 0.25rem;
  border: 1px solid var(--lw-border);
}

.lw-sketch-canvas-field-note {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 14rem;
  padding: 2rem;
  text-align: center;
  color: #64748b;
}

.lw-sketch-canvas-field-note i {
  font-size: 2rem;
  margin-bottom: 0.75rem;
}

.lw-sketch-canvas-field-note p {
  font-size: 0.95rem;
  margin-bottom: 0;
  max-width: 24rem;
}

/* Fullscreen sketch focus mode */
body.lw-sketch-focus-body .lw-sidebar {
  display: none !important;
}

body.lw-sketch-focus-body .lw-footer {
  display: none;
}

body.lw-sketch-focus-body .lw-content {
  padding: 0;
  max-width: none;
}

.lw-sketch-focus-page {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 3.5rem);
  background: #f8fafc;
}

.lw-sketch-focus-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.65rem 1rem;
  background: #fff;
  border-bottom: 1px solid var(--lw-border);
  flex-shrink: 0;
}

.lw-sketch-focus-workspace {
  display: flex;
  flex: 1;
  min-height: 0;
  position: relative;
}

.lw-sketch-focus-tools-rail {
  flex-direction: column;
  width: 4.5rem;
  padding: 0.75rem 0.5rem;
  background: #fff;
  border-right: 1px solid var(--lw-border);
  flex-shrink: 0;
}

@media (min-width: 992px) {
  .lw-sketch-focus-tools-rail {
    width: 6.5rem;
  }
}

.lw-sketch-focus-tools-rail-inner {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.lw-sketch-focus-tool {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  padding: 0.5rem 0.25rem;
  font-size: 0.65rem;
  color: #475569;
  border: 1px solid transparent;
  border-radius: 0.375rem;
  min-height: 2.75rem;
  background: transparent;
}

.lw-sketch-focus-tool i {
  font-size: 1.1rem;
}

.lw-sketch-focus-tool span {
  line-height: 1.1;
  text-align: center;
}

@media (max-width: 991.98px) {
  .lw-sketch-focus-tool span {
    display: none;
  }
}

.lw-sketch-focus-tool-active {
  background: rgba(37, 99, 235, 0.1);
  border-color: rgba(37, 99, 235, 0.35);
  color: #1d4ed8;
}

.lw-sketch-focus-main {
  display: flex;
  flex: 1;
  min-width: 0;
  min-height: 0;
}

.lw-sketch-focus-canvas-wrap {
  flex: 1;
  padding: 1rem;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.lw-sketch-focus-canvas-wrap .lw-sketch-canvas-mock {
  flex: 1;
  min-height: 20rem;
}

.lw-sketch-focus-sidebar {
  width: 16rem;
  border-left: 1px solid var(--lw-border);
  background: #fff;
  flex-shrink: 0;
}

.lw-sketch-focus-sidebar-inner {
  padding: 1rem;
}

.lw-sketch-focus-tools-mobile {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 20;
  padding: 0.5rem 0.75rem 0.75rem;
  background: linear-gradient(180deg, transparent 0%, #fff 25%);
}

.lw-sketch-focus-tools-bar {
  display: flex;
  gap: 0.5rem;
  padding: 0.5rem;
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.75rem;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.1);
}

.lw-sketch-focus-tools-bar .lw-sketch-focus-tool {
  flex: 1;
  min-height: 3rem;
}

@media (max-width: 767.98px) {
  .lw-sketch-focus-canvas-wrap {
    padding-bottom: 6rem;
  }
}

/* Photo markup — site photo as sketch surface */
.lw-photo-markup-page {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 3.5rem);
  background: #0f172a;
}

.lw-photo-markup-header {
  background: #fff;
}

.lw-photo-markup-workspace {
  display: flex;
  flex: 1;
  min-height: 0;
  flex-direction: column;
}

@media (min-width: 768px) {
  .lw-photo-markup-workspace {
    flex-direction: row;
  }
}

.lw-photo-markup-main {
  display: flex;
  flex: 1;
  min-width: 0;
  min-height: 0;
}

.lw-photo-markup-canvas-wrap {
  flex: 1;
  padding: 0.75rem;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lw-photo-markup-canvas {
  position: relative;
  width: 100%;
  max-width: 56rem;
  aspect-ratio: 4 / 3;
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
}

.lw-photo-markup-bg {
  position: absolute;
  inset: 0;
}

.lw-photo-markup-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lw-photo-markup-bg--deck_framing,
.lw-photo-markup-bg--deck_stairs,
.lw-photo-markup-bg--demo_damage,
.lw-photo-markup-bg--bathroom_wall {
  background: #1e293b;
}

.lw-photo-markup-bg-placeholder {
  display: none;
}

.lw-photo-markup-bg-meta {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  right: 0.75rem;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.lw-photo-markup-bg-meta .text-shadow {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}

/* Site photo — shared mock imagery */
.lw-site-photo {
  position: relative;
  border-radius: 0.375rem;
  overflow: hidden;
  background: #e2e8f0;
}

.lw-site-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lw-photo-event-photo {
  width: 8rem;
  height: 6rem;
}

.lw-photo-event-photo .lw-site-photo-img {
  min-height: 6rem;
}

.lw-sketch-preview-photo,
.lw-sketch-detail-site-photo {
  aspect-ratio: 4 / 3;
}

.lw-sketch-detail-photo-surface {
  border-radius: 0.5rem;
  overflow: hidden;
}

.lw-photo-markup-overlays {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}

.lw-photo-markup-callout {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.2rem 0.45rem;
  border-radius: 0.25rem;
  white-space: nowrap;
}

.lw-photo-markup-callout--arrow {
  color: #fef2f2;
  background: rgba(220, 38, 38, 0.85);
}

.lw-photo-markup-callout--dimension {
  color: #1e3a8a;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(37, 99, 235, 0.4);
}

.lw-photo-markup-callout--note {
  color: #1e293b;
  background: rgba(255, 255, 255, 0.9);
  border: 1px dashed rgba(15, 23, 42, 0.3);
  font-style: italic;
}

.lw-photo-markup-callout--damage {
  color: #fff;
  background: rgba(234, 88, 12, 0.9);
}

.lw-photo-markup-callout--highlight .lw-photo-markup-callout-highlight {
  display: block;
  width: 3rem;
  height: 2rem;
  background: rgba(250, 204, 21, 0.45);
  border: 2px solid rgba(234, 179, 8, 0.8);
  border-radius: 0.2rem;
}

.lw-photo-markup-callout--approval {
  color: #fff;
  background: rgba(22, 163, 74, 0.9);
}

.lw-photo-markup-callout-arrow {
  display: inline-block;
  width: 1.25rem;
  height: 1.25rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}

.pm-callout-outlet { top: 38%; left: 52%; }
.pm-callout-dim-a { top: 52%; left: 38%; }
.pm-callout-note-a { top: 62%; right: 12%; }
.pm-callout-damage-a { top: 42%; left: 28%; }
.pm-callout-highlight-a { top: 35%; left: 22%; background: transparent; padding: 0; }
.pm-callout-note-b { bottom: 18%; left: 15%; }
.pm-callout-dim-b { top: 45%; left: 40%; }
.pm-callout-arrow-b { top: 55%; right: 20%; }
.pm-callout-approval { top: 12%; right: 12%; }
.pm-callout-dim-c { top: 32%; left: 35%; }
.pm-callout-dim-d { top: 48%; left: 55%; }
.pm-callout-note-c { bottom: 22%; left: 20%; }

.lw-photo-markup-tools-rail {
  flex-direction: column;
  width: 4.75rem;
  padding: 0.75rem 0.5rem;
  background: rgba(255, 255, 255, 0.97);
  border-right: 1px solid var(--lw-border);
  flex-shrink: 0;
}

@media (min-width: 992px) {
  .lw-photo-markup-tools-rail {
    width: 6.75rem;
  }
}

.lw-photo-markup-tools-rail-inner {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.lw-photo-markup-tool {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  padding: 0.5rem 0.25rem;
  font-size: 0.6rem;
  color: #475569;
  border: 1px solid transparent;
  border-radius: 0.375rem;
  min-height: 2.85rem;
  background: transparent;
}

.lw-photo-markup-tool i {
  font-size: 1.15rem;
}

.lw-photo-markup-tool span {
  line-height: 1.1;
  text-align: center;
}

@media (max-width: 991.98px) {
  .lw-photo-markup-tool span {
    display: none;
  }
}

.lw-photo-markup-tool-active {
  background: rgba(37, 99, 235, 0.12);
  border-color: rgba(37, 99, 235, 0.35);
  color: #1d4ed8;
}

.lw-photo-markup-tools-mobile {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 20;
  padding: 0.5rem 0.75rem 0.75rem;
  background: linear-gradient(180deg, transparent 0%, #0f172a 30%);
}

.lw-photo-markup-tools-bar {
  display: flex;
  gap: 0.5rem;
  padding: 0.5rem;
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.75rem;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}

.lw-photo-markup-tools-bar .lw-photo-markup-tool {
  flex: 1;
  min-height: 3rem;
  color: #334155;
}

.lw-photo-markup-sidebar {
  width: 17rem;
  background: #fff;
  border-left: 1px solid var(--lw-border);
  flex-shrink: 0;
}

.lw-photo-markup-sidebar-inner {
  padding: 1rem;
}

.lw-photo-markup-thumb {
  min-height: 5rem;
  background: linear-gradient(135deg, #e2e8f0 0%, #f1f5f9 100%);
  border: 1px dashed #94a3b8;
  border-radius: 0.375rem;
  padding: 0.75rem;
}

@media (max-width: 767.98px) {
  .lw-photo-markup-canvas-wrap {
    padding-bottom: 5.5rem;
  }
}

/* Customer walkthrough packet */
.lw-walkthrough-page {
  max-width: 960px;
}

.lw-walkthrough-section {
  scroll-margin-top: 1rem;
}

.lw-walkthrough-photo-thumb .lw-photo-placeholder {
  min-height: 8rem;
  background: linear-gradient(135deg, #e2e8f0 0%, #f1f5f9 100%);
  border: 1px dashed #94a3b8;
  border-radius: 0.375rem;
}

.lw-walkthrough-before-after {
  border-left: 3px solid var(--lw-accent);
}

.lw-walkthrough-milestone-card {
  border-left: 3px solid var(--lw-navy);
}

.lw-walkthrough-item-card {
  border-left: 3px solid #94a3b8;
}

.lw-walkthrough-preview-card {
  border-left: 3px solid var(--lw-accent);
}

.lw-task-item {
  font-size: 0.95rem;
}

/* Quotes */
.lw-quote-header {
  border-left: 4px solid var(--lw-accent);
}

.lw-customer-preview {
  background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
  border-left: 3px solid rgba(59, 130, 246, 0.35);
}

.lw-customer-summary-icon {
  color: #3b82f6;
}

.lw-customer-preview-note {
  font-size: 0.78rem;
}

.lw-customer-summary-headline {
  color: var(--lw-navy);
  line-height: 1.35;
}

.lw-customer-summary-message {
  line-height: 1.45;
}

.lw-customer-section-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: #334155;
  letter-spacing: 0.01em;
}

.lw-customer-work-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.lw-customer-work-list li {
  position: relative;
  padding: 0.2rem 0 0.2rem 1rem;
  font-size: 0.88rem;
  color: #475569;
  line-height: 1.4;
}

.lw-customer-work-list li::before {
  content: '•';
  position: absolute;
  left: 0;
  color: #3b82f6;
  font-weight: 700;
}

.lw-customer-photos-helper {
  line-height: 1.4;
}

.lw-customer-preview-section:first-of-type {
  margin-top: 0.85rem !important;
}

.lw-customer-preview--compact .lw-card-body {
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}

/* Invoices */
.lw-invoice-header {
  border-left: 4px solid var(--lw-warning);
}

/* Schedule */
.lw-schedule-header {
  border-left: 4px solid var(--lw-navy);
}

.lw-schedule-agenda-item {
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--lw-border);
}

.lw-schedule-agenda-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.lw-schedule-agenda-done .lw-work-time {
  color: #94a3b8;
}

/* Customers */
.lw-customer-header {
  border-left: 4px solid var(--lw-navy);
}

.lw-site-note {
  padding: 0.65rem 0.75rem;
  background: var(--lw-surface);
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
  height: 100%;
}

.lw-site-note-icon {
  font-size: 1.1rem;
  line-height: 1.3;
  flex-shrink: 0;
}

.lw-mini-calendar-card {
  min-height: 100%;
}

.lw-mini-calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.2rem;
  width: 100%;
  padding: 0.5rem;
  background: var(--lw-surface);
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
}

.lw-mini-calendar-weekday {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
  text-align: center;
  padding: 0.15rem 0 0.35rem;
  user-select: none;
}

.lw-mini-calendar-day {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  aspect-ratio: 1;
  width: 100%;
  min-width: 0;
  min-height: 2.25rem;
  padding: 0.2rem 0.1rem 0.15rem;
  border-radius: 0.4rem;
  border: 1px solid #e2e8f0;
  background: #fff;
  text-decoration: none;
  color: var(--lw-navy);
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.lw-mini-calendar-day--pad {
  border-color: transparent;
  background: transparent;
  pointer-events: none;
}

.lw-mini-calendar-day--event {
  cursor: pointer;
  border-color: #cbd5e1;
  background: #f8fafc;
}

.lw-mini-calendar-day--event:hover {
  background: #eef2f7;
  border-color: #94a3b8;
  color: var(--lw-navy);
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08);
}

.lw-mini-calendar-day--event:active {
  transform: translateY(0);
  box-shadow: none;
}

.lw-mini-calendar-day-num {
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
  margin-top: 0.1rem;
}

.lw-mini-calendar-day--today {
  border-color: var(--lw-navy);
  background: #f0f4f8;
  box-shadow: inset 0 0 0 1px var(--lw-navy);
}

.lw-mini-calendar-day--today .lw-mini-calendar-day-num {
  background: var(--lw-navy);
  color: #fff;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
}

.lw-mini-calendar-day--planning {
  border-color: var(--lw-accent);
  background: rgba(45, 138, 94, 0.1);
  box-shadow: inset 0 0 0 1px var(--lw-accent);
}

.lw-mini-calendar-day--today.lw-mini-calendar-day--planning {
  border-color: var(--lw-navy);
  box-shadow: inset 0 0 0 2px var(--lw-navy), inset 0 0 0 4px rgba(45, 138, 94, 0.35);
}

.lw-mini-calendar-dots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-content: flex-end;
  gap: 0.12rem;
  width: 100%;
  min-height: 0.5rem;
  padding-bottom: 0.05rem;
}

.lw-mini-calendar-dot {
  display: block;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.85);
}

.lw-mini-calendar-dot--on_site {
  background: #0d6efd;
}

.lw-mini-calendar-dot--scheduled {
  background: #0aa2c0;
}

.lw-mini-calendar-dot--needs_slot {
  background: #e6a700;
}

.lw-mini-calendar-dot--weather_risk {
  background: #dc3545;
}

.lw-mini-calendar-legend-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 1rem;
}

.lw-mini-calendar-legend-item {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.8rem;
  color: #475569;
}

.lw-mini-calendar-legend-dot {
  width: 0.55rem;
  height: 0.55rem;
  flex-shrink: 0;
}

@media (min-width: 576px) {
  .lw-mini-calendar {
    gap: 0.3rem;
    padding: 0.65rem;
  }

  .lw-mini-calendar-day {
    min-height: 2.5rem;
    border-radius: 0.45rem;
  }

  .lw-mini-calendar-day-num {
    font-size: 0.85rem;
  }

  .lw-mini-calendar-dot {
    width: 0.45rem;
    height: 0.45rem;
  }

  .lw-mini-calendar-legend-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Receipts */
.lw-receipt-header {
  border-left: 4px solid var(--lw-accent);
}

.lw-receipt-thumb {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.375rem;
  background: var(--lw-surface);
  border: 1px dashed var(--lw-border);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.lw-receipt-thumb-label {
  font-size: 0.65rem;
  font-weight: 700;
  color: #64748b;
  letter-spacing: 0.02em;
}

.lw-receipt-image-placeholder {
  aspect-ratio: 3 / 4;
  max-height: 22rem;
  background: linear-gradient(180deg, #f8fafc 0%, var(--lw-surface) 100%);
  border: 1px dashed var(--lw-border);
  border-radius: 0.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  text-align: center;
  padding: 1.5rem;
}

.lw-receipt-image-placeholder i {
  font-size: 2.5rem;
}

.lw-receipt-capture-card {
  background: linear-gradient(180deg, var(--lw-accent-soft) 0%, #fff 100%);
}

.lw-receipt-capture-zone {
  border: 2px dashed var(--lw-accent);
  border-radius: 0.75rem;
  padding: 1.5rem 1rem;
  text-align: center;
  color: var(--lw-navy);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.lw-receipt-capture-zone:hover {
  background: rgba(45, 138, 94, 0.06);
  border-color: #247a50;
}

.lw-receipt-capture-zone input:disabled + *,
.lw-receipt-capture-zone:has(input:disabled) {
  cursor: default;
  opacity: 0.7;
}

.lw-receipt-capture-btn {
  cursor: default;
}

/* Workflow path */
.lw-workflow-path {
  font-size: 0.85rem;
}

.lw-workflow-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--lw-border);
  background: #fff;
  color: var(--lw-navy);
  text-decoration: none;
  font-weight: 500;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.lw-workflow-chip:hover {
  background: var(--lw-surface);
  color: var(--lw-navy);
  border-color: #cbd5e1;
}

.lw-workflow-chip.active {
  background: var(--lw-navy);
  border-color: var(--lw-navy);
  color: #fff;
  font-weight: 600;
}

.lw-workflow-chip.done {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #166534;
}

.lw-workflow-chip.disabled {
  opacity: 0.45;
  cursor: default;
}

.lw-workflow-sep {
  font-size: 0.7rem;
}

@media (max-width: 575.98px) {
  .lw-workflow-sep {
    display: none;
  }
}

/* Account dropdown */
.lw-avatar-btn {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  border-radius: 50%;
  transition: opacity 0.15s ease;
}

.lw-avatar-btn:hover {
  opacity: 0.85;
}

.lw-avatar-btn:focus-visible {
  outline: 2px solid var(--lw-accent);
  outline-offset: 2px;
  border-radius: 50%;
}

.lw-account-dropdown {
  min-width: 12rem;
  border: 1px solid var(--lw-border);
  border-radius: 0.65rem;
  box-shadow: 0 6px 22px rgba(26, 47, 74, 0.12);
  padding: 0.35rem 0;
}

.lw-account-dropdown .dropdown-item {
  font-size: 0.9rem;
  padding: 0.5rem 1rem;
  border: 0;
  width: 100%;
  text-align: left;
  background: transparent;
  color: var(--lw-navy);
}

.lw-account-dropdown .dropdown-item:hover {
  background: #f1f5f9;
}

.lw-account-dropdown .dropdown-item i {
  width: 1.1rem;
  text-align: center;
  color: #64748b;
}

/* Account setup fields */
.lw-account-fields {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.lw-account-field {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid #f1f5f9;
}

.lw-account-field:last-child {
  border-bottom: none;
}

.lw-account-field-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #64748b;
  min-width: 7rem;
  flex-shrink: 0;
}

.lw-account-field-value {
  font-size: 0.95rem;
  color: var(--lw-navy);
}

.lw-account-logo-placeholder {
  width: 5rem;
  height: 5rem;
  border-radius: 1rem;
  background: var(--lw-navy);
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Crew members */
.lw-crew-member {
  padding: 1rem 1.15rem;
}

.lw-crew-avatar {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--lw-accent-soft);
  color: var(--lw-accent);
  font-size: 0.8rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  text-transform: uppercase;
}

.lw-crew-inactive {
  opacity: 0.55;
}

.lw-crew-assignment {
  font-size: 0.85rem;
  padding: 0.4rem 0.65rem;
  background: #f8fafc;
  border: 1px solid #f1f5f9;
  border-radius: 0.5rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.lw-crew-assignment-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}

/* Preferences */
.lw-pref-item {
  padding: 0.85rem 1.15rem;
}

.lw-pref-toggle {
  width: 2.75rem;
  height: 1.5rem;
  border-radius: 999px;
  background: #cbd5e1;
  position: relative;
  cursor: default;
  flex-shrink: 0;
  transition: background 0.2s ease;
}

.lw-pref-toggle-on {
  background: var(--lw-accent);
}

.lw-pref-toggle-knob {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 50%;
  background: #fff;
  position: absolute;
  top: 0.175rem;
  left: 0.2rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
  transition: transform 0.2s ease;
}

.lw-pref-toggle-on .lw-pref-toggle-knob {
  transform: translateX(1.2rem);
}

@media (max-width: 575.98px) {
  .lw-account-field {
    flex-direction: column;
    gap: 0.15rem;
  }

  .lw-account-field-label {
    min-width: 0;
  }
}

/* Intake flow — operational creation */
.lw-intake-header {
  max-width: 38rem;
}

.lw-intake-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--lw-navy);
}

.lw-intake-flow {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 38rem;
}

.lw-intake-section {
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.lw-intake-section-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1.15rem;
  cursor: pointer;
  user-select: none;
  transition: background-color 0.15s ease;
}

.lw-intake-section-header:hover {
  background: #f8fafc;
}

.lw-intake-step-indicator {
  flex-shrink: 0;
}

.lw-intake-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: #e2e8f0;
  color: #64748b;
  font-size: 0.8rem;
  font-weight: 700;
  transition: background 0.2s ease, color 0.2s ease;
}

.lw-intake-section-active .lw-intake-step-number {
  background: #2563eb;
  color: #fff;
}

.lw-intake-step-check {
  font-size: 0.9rem;
}

.lw-intake-section-label {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--lw-navy);
}

.lw-intake-section-hint {
  font-size: 0.82rem;
  line-height: 1.3;
}

.lw-intake-chevron {
  color: #94a3b8;
  font-size: 0.85rem;
  transition: transform 0.2s ease;
}

.lw-intake-section-active .lw-intake-chevron {
  transform: rotate(180deg);
}

.lw-intake-section-body {
  display: none;
  padding: 0 1.15rem 1.15rem;
}

.lw-intake-section-active .lw-intake-section-body {
  display: block;
}

.lw-intake-field-group {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.lw-intake-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.lw-contact-field-hint {
  font-size: 0.78rem;
  line-height: 1.35;
  min-height: 1.1rem;
}

.lw-contact-field-hint--valid {
  color: var(--lw-accent);
}

.lw-contact-field-hint--error {
  color: #b45309;
}

.lw-intake-input--valid {
  border-color: rgba(45, 138, 94, 0.45);
}

.lw-intake-input--invalid {
  border-color: #d97706;
}

.lw-intake-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #475569;
  letter-spacing: 0.01em;
}

.lw-intake-input {
  display: block;
  width: 100%;
  padding: 0.55rem 0.75rem;
  font-size: 0.92rem;
  color: var(--lw-navy);
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lw-intake-input:focus {
  outline: none;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.lw-intake-input::placeholder {
  color: #94a3b8;
}

.lw-intake-textarea {
  resize: vertical;
  min-height: 2.75rem;
}

.lw-intake-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.65rem center;
  background-size: 0.75rem;
  padding-right: 2.25rem;
}

.lw-intake-date {
  appearance: none;
  -webkit-appearance: none;
  min-height: 2.5rem;
  padding-right: 2.25rem;
  color-scheme: light;
}

.lw-intake-date::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: 0.75;
  margin-left: 0.25rem;
}

.lw-intake-section-footer {
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid #f1f5f9;
  display: flex;
  justify-content: flex-end;
}

.lw-intake-toggle-row {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding-top: 0.25rem;
}

.lw-intake-flow .lw-pref-toggle-on {
  background: #2563eb;
}

/* Intake photo placeholders */
.lw-intake-photo-grid {
  display: flex;
  gap: 0.65rem;
  flex-wrap: wrap;
}

.lw-intake-photo-placeholder {
  width: 5.5rem;
  height: 5.5rem;
  border: 2px dashed #cbd5e1;
  border-radius: 0.65rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  color: #94a3b8;
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.lw-intake-photo-placeholder i {
  font-size: 1.25rem;
}

.lw-intake-photo-placeholder:hover {
  border-color: #2563eb;
  color: #2563eb;
  background: #edf5ff;
}

/* Intake finish — Save Draft vs Create Request */
.lw-intake-finish-explanation {
  padding: 0.65rem 0.85rem;
  background: #f8fafc;
  border-radius: 0.5rem;
  border: 1px solid #e2e8f0;
}

.lw-intake-finish-actions {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.lw-intake-finish-card {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--lw-border);
  border-radius: 0.65rem;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lw-intake-finish-card:hover {
  border-color: #94a3b8;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.lw-intake-finish-draft {
  border-style: dashed;
  border-color: #cbd5e1;
}

.lw-intake-finish-draft:hover {
  border-color: #94a3b8;
}

.lw-intake-finish-official {
  border-color: rgba(37, 99, 235, 0.25);
  background: linear-gradient(135deg, #fff 0%, #edf5ff 100%);
}

.lw-intake-finish-official:hover {
  border-color: rgba(37, 99, 235, 0.4);
}

.lw-intake-finish-card-icon {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  background: #f1f5f9;
  color: #94a3b8;
  font-size: 1rem;
}

.lw-intake-finish-icon-official {
  background: #edf5ff;
  color: #2563eb;
}

.lw-intake-finish-card-content {
  flex: 1;
  min-width: 0;
}

.lw-intake-finish-btn {
  flex-shrink: 0;
  align-self: center;
}

.lw-draft-id-inline {
  color: #94a3b8;
  font-style: italic;
  font-size: 0.85em;
}

.lw-intake-finish-divider {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.45rem 0;
}

.lw-intake-finish-divider::before,
.lw-intake-finish-divider::after {
  content: '';
  flex: 1;
  border-top: 1px solid #e2e8f0;
}

.lw-intake-finish-divider-text {
  font-size: 0.72rem;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}

.lw-intake-finish-footer {
  text-align: left;
}

/* Intake confirmation states */
.lw-intake-confirmation {
  padding: 1.15rem 1rem;
  border-radius: 0.65rem;
  margin-top: 0.85rem;
}

.lw-intake-confirmation-draft {
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
}

.lw-intake-confirmation-official {
  background: linear-gradient(135deg, #f0fdf4 0%, #fff 100%);
  border: 1px solid rgba(45, 138, 94, 0.2);
}

.lw-intake-confirmation-body {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.lw-intake-confirmation-icon {
  font-size: 1.35rem;
  color: #94a3b8;
  flex-shrink: 0;
  line-height: 1;
}

.lw-intake-confirmation-icon-official {
  color: var(--lw-accent);
}

.lw-intake-confirmation-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* Draft continuation page */
.lw-draft-header-badge {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.lw-draft-progress-bar {
  padding: 0.65rem 0.85rem;
  background: #fafbfc;
  border: 1px dashed #cbd5e1;
  border-radius: 0.5rem;
}

.lw-draft-progress-info {
  margin-bottom: 0.45rem;
}

.lw-draft-progress {
  height: 4px;
  background: #e2e8f0;
  border-radius: 2px;
}

.lw-draft-progress-fill {
  background: #94a3b8;
  border-radius: 2px;
  transition: width 0.3s ease;
}

.lw-intake-step-done {
  background: #2563eb;
  color: #fff;
}

.lw-draft-existing-photos {
  padding: 0.65rem 0.85rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 0.5rem;
}

.lw-intake-photo-existing {
  width: 3.5rem;
  height: 3.5rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 1.1rem;
  background: #f1f5f9;
}

@media (max-width: 575.98px) {
  .lw-intake-finish-card {
    flex-direction: column;
    gap: 0.55rem;
    align-items: stretch;
  }

  .lw-intake-finish-btn {
    align-self: stretch;
  }

  .lw-intake-finish-card-icon {
    display: none;
  }
}

@media (max-width: 575.98px) {
  .lw-intake-flow {
    gap: 0.5rem;
  }

  .lw-intake-photo-placeholder {
    width: 4.5rem;
    height: 4.5rem;
  }
}

/* Discard trigger — subtle destructive affordance */
.lw-discard-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.35rem 0.65rem;
  font-size: 0.82rem;
  font-weight: 500;
  color: #9b4d4d;
  background: transparent;
  border: 1px solid rgba(155, 77, 77, 0.25);
  border-radius: 0.45rem;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.lw-discard-trigger:hover {
  color: #7f3b3b;
  border-color: rgba(155, 77, 77, 0.45);
  background: rgba(155, 77, 77, 0.05);
}

.lw-discard-trigger:focus-visible {
  outline: 2px solid rgba(155, 77, 77, 0.35);
  outline-offset: 2px;
}

.lw-discard-trigger i {
  font-size: 0.78rem;
}

/* Discard confirmation modal */
.lw-discard-overlay {
  position: fixed;
  inset: 0;
  z-index: 1060;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(15, 23, 42, 0);
  transition: background 0.2s ease;
}

.lw-discard-overlay-visible {
  background: rgba(15, 23, 42, 0.35);
}

.lw-discard-card {
  width: 100%;
  max-width: 24rem;
  padding: 1.5rem 1.75rem;
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.85rem;
  box-shadow: 0 8px 32px rgba(15, 23, 42, 0.14), 0 2px 8px rgba(15, 23, 42, 0.06);
  transform: translateY(8px);
  opacity: 0;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.lw-discard-overlay-visible .lw-discard-card {
  transform: translateY(0);
  opacity: 1;
}

.lw-discard-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--lw-navy);
  margin: 0 0 0.5rem;
}

.lw-discard-body {
  font-size: 0.9rem;
  color: #64748b;
  line-height: 1.5;
  margin: 0 0 1.25rem;
}

.lw-discard-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

.lw-discard-confirm {
  background: #9b4d4d;
  border-color: #9b4d4d;
  color: #fff;
}

.lw-discard-confirm:hover {
  background: #7f3b3b;
  border-color: #7f3b3b;
  color: #fff;
}

.lw-discard-confirm:focus-visible {
  outline: 2px solid rgba(155, 77, 77, 0.4);
  outline-offset: 2px;
  box-shadow: none;
}

/* Creation success / error modals */
.lw-creation-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1070;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(15, 23, 42, 0);
  transition: background 0.2s ease;
}

.lw-creation-modal-overlay-visible {
  background: rgba(15, 23, 42, 0.4);
}

.lw-creation-modal-card {
  width: 100%;
  max-width: 26rem;
  padding: 1.75rem 1.5rem 1.5rem;
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.85rem;
  box-shadow: 0 8px 32px rgba(15, 23, 42, 0.14), 0 2px 8px rgba(15, 23, 42, 0.06);
  text-align: center;
  transform: translateY(8px) scale(0.98);
  opacity: 0;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.lw-creation-modal-overlay-visible .lw-creation-modal-card {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.lw-creation-modal-card--success {
  border-color: rgba(45, 138, 94, 0.25);
}

.lw-creation-modal-icon {
  font-size: 2.25rem;
  line-height: 1;
  margin-bottom: 0.75rem;
}

.lw-creation-modal-icon--success {
  color: var(--lw-accent);
}

.lw-creation-modal-icon--error {
  color: #b45309;
}

.lw-creation-modal-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--lw-navy);
  margin: 0 0 0.35rem;
}

.lw-creation-modal-id {
  font-size: 0.85rem;
  color: var(--lw-accent);
  margin-bottom: 0.5rem;
}

.lw-creation-modal-body {
  font-size: 0.9rem;
  color: #64748b;
  line-height: 1.5;
  margin: 0 0 1.25rem;
}

.lw-creation-modal-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
}
}

/* Quote creation — Request → Quote continuation flow */
.lw-quote-creation-header {
  max-width: 38rem;
}

.lw-quote-continuity-banner {
  max-width: 38rem;
}

.lw-quote-continuity-banner-inner {
  padding: 1rem 1.15rem;
  background: linear-gradient(135deg, #f0f7ff 0%, #f8fbff 50%, #f0f4f8 100%);
  border: 1px solid rgba(37, 99, 235, 0.18);
  border-left: 4px solid #2563eb;
  border-radius: 0.75rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.lw-quote-continuity-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.1);
  color: #2563eb;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.lw-quote-continuity-tag {
  display: inline-flex;
  align-items: center;
  font-size: 0.72rem;
  font-weight: 600;
  color: #2563eb;
  background: rgba(37, 99, 235, 0.08);
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  letter-spacing: 0.01em;
}

.lw-quote-continuity-evidence {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  padding-top: 0.65rem;
  border-top: 1px solid rgba(37, 99, 235, 0.1);
}

.lw-quote-evidence-chip {
  display: inline-flex;
  align-items: center;
  font-size: 0.78rem;
  color: #475569;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 0.5rem;
  padding: 0.3rem 0.65rem;
}

.lw-quote-evidence-chip i {
  color: #2563eb;
  font-size: 0.75rem;
}

.lw-quote-flow {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 38rem;
}

.lw-quote-section {
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.lw-quote-section-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1.15rem;
  cursor: pointer;
  user-select: none;
  transition: background-color 0.15s ease;
}

.lw-quote-section-header:hover {
  background: #f8fafc;
}

.lw-quote-section-active .lw-intake-step-number {
  background: #2563eb;
  color: #fff;
}

.lw-quote-section-active .lw-intake-chevron {
  transform: rotate(180deg);
}

.lw-quote-section-body {
  display: none;
  padding: 0 1.15rem 1.15rem;
}

.lw-quote-section-active .lw-quote-section-body {
  display: block;
}

/* Carried-forward operational notes */
.lw-quote-carried-notes {
  padding: 0.75rem 0.95rem;
  background: #f8fafc;
  border: 1px solid var(--lw-border);
  border-left: 3px solid #94a3b8;
  border-radius: 0.5rem;
}

.lw-quote-carried-notes-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
  margin-bottom: 0.35rem;
}

/* Evidence cards (photos, walkthrough) */
.lw-quote-evidence-card {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem 0.85rem;
  background: #f8fafc;
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
  min-width: 10rem;
}

.lw-quote-evidence-card > i {
  font-size: 1.25rem;
  color: #2563eb;
  flex-shrink: 0;
}

/* Line items */
.lw-quote-line-items {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.lw-quote-line-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.5rem 0.65rem;
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lw-quote-line-item:focus-within {
  border-color: rgba(37, 99, 235, 0.35);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.06);
}

.lw-quote-line-item-new {
  background: linear-gradient(135deg, #f0f7ff 0%, #fff 100%);
  border-color: rgba(37, 99, 235, 0.25);
}

.lw-quote-line-item-cat {
  flex-shrink: 0;
}

.lw-quote-cat-badge {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 0.2rem 0.5rem;
}

.lw-quote-cat-labor {
  background: rgba(37, 99, 235, 0.1);
  color: #1d4ed8;
}

.lw-quote-cat-materials {
  background: rgba(45, 138, 94, 0.1);
  color: #1a7a4a;
}

.lw-quote-cat-permits {
  background: rgba(217, 119, 6, 0.1);
  color: #b45309;
}

.lw-quote-cat-cleanup {
  background: rgba(100, 116, 139, 0.1);
  color: #475569;
}

.lw-quote-line-item-desc {
  flex: 1;
  min-width: 0;
}

.lw-quote-line-item-desc .lw-intake-input,
.lw-quote-line-item-rate .lw-intake-input {
  font-size: 0.85rem;
  padding: 0.35rem 0.55rem;
  border-color: transparent;
  background: transparent;
}

.lw-quote-line-item-desc .lw-intake-input:focus,
.lw-quote-line-item-rate .lw-intake-input:focus {
  border-color: #cbd5e1;
  background: #fff;
}

.lw-quote-line-item-rate {
  flex-shrink: 0;
  width: 6rem;
}

/* Exclusions */
.lw-quote-exclusions {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.lw-quote-exclusion-item {
  display: flex;
  align-items: center;
  padding: 0.4rem 0.55rem;
  background: #fafafa;
  border: 1px solid #f1f5f9;
  border-radius: 0.375rem;
}

.lw-quote-exclusion-item i {
  font-size: 0.75rem;
  flex-shrink: 0;
}

@media (max-width: 575.98px) {
  .lw-quote-flow {
    gap: 0.5rem;
  }

  .lw-quote-line-item {
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
  }

  .lw-quote-line-item-rate {
    width: 100%;
  }

  .lw-quote-evidence-card {
    min-width: auto;
    flex: 1;
  }
}

/* Project activation — Approved Quote → Project continuation flow */
.lw-project-activation-header {
  max-width: 38rem;
}

.lw-project-continuity-banner {
  max-width: 38rem;
}

.lw-project-continuity-banner-inner {
  padding: 1rem 1.15rem;
  background: linear-gradient(135deg, #f0f7ff 0%, #f8fbff 50%, #f0f4f8 100%);
  border: 1px solid rgba(37, 99, 235, 0.18);
  border-left: 4px solid #2563eb;
  border-radius: 0.75rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

.lw-project-continuity-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.1);
  color: #2563eb;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.lw-project-continuity-tag {
  display: inline-flex;
  align-items: center;
  font-size: 0.72rem;
  font-weight: 600;
  color: #2563eb;
  background: rgba(37, 99, 235, 0.08);
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  letter-spacing: 0.01em;
}

.lw-project-continuity-evidence {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  padding-top: 0.65rem;
  border-top: 1px solid rgba(37, 99, 235, 0.1);
}

.lw-project-evidence-chip {
  display: inline-flex;
  align-items: center;
  font-size: 0.78rem;
  color: #475569;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 0.5rem;
  padding: 0.3rem 0.65rem;
}

.lw-project-evidence-chip i {
  color: #2563eb;
  font-size: 0.75rem;
}

/* Activation flow — accordion structure */
.lw-project-activation-flow {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 38rem;
}

.lw-project-activation-section {
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  overflow: hidden;
}

.lw-project-activation-section-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1.15rem;
  cursor: pointer;
  user-select: none;
  transition: background-color 0.15s ease;
}

.lw-project-activation-section-header:hover {
  background: #f8fafc;
}

.lw-project-activation-section-active .lw-intake-step-number {
  background: #2563eb;
  color: #fff;
}

.lw-project-activation-section-active .lw-intake-chevron {
  transform: rotate(180deg);
}

.lw-project-activation-section-body {
  display: none;
  padding: 0 1.15rem 1.15rem;
}

.lw-project-activation-section-active .lw-project-activation-section-body {
  display: block;
}

/* Carried-forward field (read-only display of inherited data) */
.lw-project-activation-carried-field {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.55rem 0.75rem;
  font-size: 0.92rem;
  color: var(--lw-navy);
  background: #f8fafc;
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
}

.lw-project-carried-badge {
  font-size: 0.68rem;
  font-weight: 600;
  color: #2563eb;
  background: rgba(37, 99, 235, 0.08);
  padding: 0.1rem 0.45rem;
  border-radius: 999px;
  margin-left: auto;
  white-space: nowrap;
}

/* Operational notes carry-forward cards */
.lw-project-activation-carried-note {
  padding: 0.75rem 0.95rem;
  background: #f8fafc;
  border: 1px solid var(--lw-border);
  border-left: 3px solid #94a3b8;
  border-radius: 0.5rem;
}

.lw-project-activation-carried-note-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
  margin-bottom: 0.35rem;
}

/* Evidence cards (photos, walkthrough) — mirrors quote pattern */
.lw-project-activation-evidence-card {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem 0.85rem;
  background: #f8fafc;
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
  min-width: 10rem;
}

.lw-project-activation-evidence-card > i {
  font-size: 1.25rem;
  color: #2563eb;
  flex-shrink: 0;
}

/* Crew awareness cards */
.lw-project-crew-awareness-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 0.85rem;
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
  transition: border-color 0.15s ease;
}

.lw-project-crew-awareness-card:hover {
  border-color: #cbd5e1;
}

/* Start outcomes — activation action cards */
.lw-project-activation-outcome {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--lw-border);
  border-radius: 0.65rem;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.lw-project-activation-outcome:hover {
  border-color: #94a3b8;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.lw-project-activation-outcome-primary {
  border-color: rgba(37, 99, 235, 0.25);
  background: linear-gradient(135deg, #fff 0%, #edf5ff 100%);
}

.lw-project-activation-outcome-primary:hover {
  border-color: rgba(37, 99, 235, 0.4);
}

.lw-project-activation-outcome-icon {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  background: #f1f5f9;
  color: #94a3b8;
  font-size: 1rem;
}

.lw-project-activation-outcome-icon-primary {
  background: rgba(37, 99, 235, 0.1);
  color: #2563eb;
}

.lw-project-activation-outcome-content {
  flex: 1;
  min-width: 0;
}

.lw-project-activation-outcome-btn {
  flex-shrink: 0;
  align-self: center;
}

@media (max-width: 575.98px) {
  .lw-project-activation-flow {
    gap: 0.5rem;
  }

  .lw-project-activation-outcome {
    flex-direction: column;
    gap: 0.55rem;
    align-items: stretch;
  }

  .lw-project-activation-outcome-btn {
    align-self: stretch;
  }

  .lw-project-activation-outcome-icon {
    display: none;
  }

  .lw-project-activation-evidence-card {
    min-width: auto;
    flex: 1;
  }
}

/* Operational Timeline — job memory spine (Phase 2) */
.lw-operational-timeline-section {
  max-width: 48rem;
}

.lw-operational-timeline-section--full {
  max-width: none;
}

.lw-operational-timeline-card {
  border-radius: 0.75rem;
}

.lw-operational-timeline-heading-icon {
  color: #2563eb;
}

.lw-operational-timeline-helper {
  max-width: 36rem;
  line-height: 1.5;
}

.lw-operational-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.lw-timeline-item {
  display: flex;
  gap: 0.85rem;
  position: relative;
}

.lw-timeline-item:not(:last-child) {
  padding-bottom: 1rem;
}

.lw-timeline-spine {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 1.75rem;
  position: relative;
}

.lw-timeline-spine::after {
  content: "";
  position: absolute;
  top: 1.65rem;
  bottom: -0.25rem;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  background: var(--lw-border);
}

.lw-timeline-item:last-child .lw-timeline-spine::after {
  display: none;
}

.lw-timeline-dot {
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.08);
  border: 1.5px solid rgba(37, 99, 235, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
}

.lw-timeline-dot i {
  font-size: 0.65rem;
  color: #2563eb;
  line-height: 1;
}

.lw-timeline-content {
  flex: 1;
  min-width: 0;
  padding-top: 0.05rem;
}

.lw-timeline-card {
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.65rem;
  padding: 0.85rem 1rem;
}

.lw-timeline-title {
  font-weight: 600;
  font-size: 0.95rem;
  color: #1e293b;
  margin-bottom: 0.25rem;
  line-height: 1.35;
}

.lw-timeline-detail {
  font-size: 0.85rem;
  color: #64748b;
  line-height: 1.45;
  margin-bottom: 0.5rem;
}

.lw-timeline-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.55rem;
}

.lw-timeline-chip {
  font-size: 0.72rem;
  font-weight: 500;
  color: #2563eb;
  background: rgba(37, 99, 235, 0.07);
  border: 1px solid rgba(37, 99, 235, 0.15);
  border-radius: 999px;
  padding: 0.15rem 0.55rem;
  line-height: 1.3;
}

.lw-timeline-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
}

.lw-timeline-timestamp {
  font-size: 0.78rem;
  color: #94a3b8;
}

.lw-timeline-evidence-link {
  font-size: 0.78rem;
  color: #2563eb;
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: default;
  opacity: 0.75;
}

.lw-operational-timeline-empty-icon {
  width: 2.75rem;
  height: 2.75rem;
  margin-left: auto;
  margin-right: auto;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.07);
  border: 1px solid rgba(37, 99, 235, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #2563eb;
  font-size: 1.1rem;
}

@media (max-width: 575.98px) {
  .lw-operational-timeline-section {
    max-width: none;
  }

  .lw-timeline-card {
    padding: 0.75rem 0.85rem;
  }

  .lw-timeline-meta {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
  }
}

/* Operational Notes — inline composer (Phase 2 — Slice 2) */
.lw-operational-note-composer {
  background: rgba(37, 99, 235, 0.03);
  border: 1px solid rgba(37, 99, 235, 0.12);
  border-radius: 0.65rem;
  padding: 1rem 1.05rem;
  margin-bottom: 0;
}

.lw-operational-note-composer-header {
  margin-bottom: 0.75rem;
}

.lw-operational-note-composer-label {
  display: block;
  font-weight: 600;
  font-size: 0.92rem;
  color: #1e293b;
  margin-bottom: 0.25rem;
}

.lw-operational-note-composer-helper {
  font-size: 0.8rem;
  color: #64748b;
  line-height: 1.45;
  max-width: 32rem;
}

.lw-note-input {
  border: 1px solid var(--lw-border);
  border-radius: 0.55rem;
  font-size: 0.9rem;
  line-height: 1.5;
  resize: vertical;
  min-height: 4.5rem;
  padding: 0.65rem 0.75rem;
  background: #fff;
  box-shadow: none;
}

.lw-note-input:focus {
  border-color: rgba(37, 99, 235, 0.45);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.lw-note-input::placeholder {
  color: #94a3b8;
}

.lw-note-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.65rem;
}

.lw-note-chip {
  font-size: 0.72rem;
  font-weight: 500;
  color: #64748b;
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 999px;
  padding: 0.2rem 0.55rem;
  line-height: 1.3;
}

.lw-note-chip-selectable {
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.lw-note-chip-selectable:hover {
  border-color: rgba(37, 99, 235, 0.3);
  color: #2563eb;
}

.lw-note-chip-active {
  color: #2563eb;
  background: rgba(37, 99, 235, 0.08);
  border-color: rgba(37, 99, 235, 0.3);
}

.lw-note-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  margin-top: 0.75rem;
}

.lw-note-attach-placeholder {
  font-size: 0.78rem;
  color: #94a3b8;
  background: none;
  border: none;
  padding: 0;
  cursor: default;
}

.lw-note-confirmation {
  margin-top: 0.65rem;
  color: #2563eb;
}

.lw-operational-timeline-divider {
  height: 1px;
  background: var(--lw-border);
  margin: 1.15rem 0 1rem;
}

.lw-timeline-item--note .lw-note-card {
  background: rgba(37, 99, 235, 0.02);
  border-color: rgba(37, 99, 235, 0.14);
}

.lw-timeline-dot--note {
  background: rgba(37, 99, 235, 0.12);
  border-color: rgba(37, 99, 235, 0.35);
}

.lw-operational-timeline-empty-copy {
  max-width: 28rem;
  line-height: 1.5;
}

@media (max-width: 575.98px) {
  .lw-operational-note-composer {
    padding: 0.85rem;
  }

  .lw-note-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .lw-note-actions .btn {
    width: 100%;
  }

  .lw-note-attach-placeholder {
    text-align: center;
  }
}

/* Job Visit — persistent field memory (Phase 2 — Slice 3) */
.lw-job-visit {
  max-width: 48rem;
}

.lw-job-visit--full {
  max-width: none;
}

.lw-job-visit-card {
  border-radius: 0.75rem;
  border-color: rgba(37, 99, 235, 0.12);
}

.lw-job-visit-card .lw-card-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}

.lw-job-visit-heading-icon {
  color: #2563eb;
}

.lw-job-visit-helper {
  max-width: 34rem;
  line-height: 1.5;
}

.lw-job-visit-status {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 0.25rem 0.65rem;
  line-height: 1.3;
  white-space: nowrap;
}

.lw-job-visit-status--completed {
  color: #1d4ed8;
  background: rgba(37, 99, 235, 0.08);
  border: 1px solid rgba(37, 99, 235, 0.18);
}

.lw-job-visit-status--partial {
  color: #475569;
  background: rgba(100, 116, 139, 0.08);
  border: 1px solid rgba(100, 116, 139, 0.18);
}

.lw-job-visit-status--planned {
  color: #0369a1;
  background: rgba(14, 165, 233, 0.08);
  border: 1px solid rgba(14, 165, 233, 0.18);
}

.lw-job-visit-carried {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: #2563eb;
  background: rgba(37, 99, 235, 0.06);
  border: 1px solid rgba(37, 99, 235, 0.12);
  border-radius: 999px;
  padding: 0.25rem 0.65rem;
  margin-bottom: 0.85rem;
}

.lw-job-visit-summary-block {
  margin-bottom: 0.5rem;
}

.lw-job-visit-summary {
  font-size: 0.92rem;
  color: #334155;
  line-height: 1.55;
}

.lw-job-visit-meta {
  margin-top: 0.45rem;
}

.lw-job-visit-meta-text {
  font-size: 0.78rem;
  color: #94a3b8;
}

.lw-job-visit-note--discovery {
  background: rgba(37, 99, 235, 0.04);
  border: 1px solid rgba(37, 99, 235, 0.12);
  border-radius: 0.6rem;
  padding: 0.75rem 0.85rem;
  margin: 0.85rem 0;
}

.lw-job-visit-note-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: #2563eb;
  margin-bottom: 0.35rem;
}

.lw-job-visit-section {
  border-top: 1px solid var(--lw-border);
  padding-top: 0.65rem;
  margin-top: 0.65rem;
}

.lw-job-visit-section-toggle {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #475569;
  cursor: pointer;
  list-style: none;
  padding: 0.35rem 0;
  user-select: none;
}

.lw-job-visit-section-toggle::-webkit-details-marker {
  display: none;
}

.lw-job-visit-section-toggle::marker {
  content: "";
}

.lw-job-visit-section-count {
  font-size: 0.72rem;
  font-weight: 600;
  color: #2563eb;
  background: rgba(37, 99, 235, 0.08);
  border-radius: 999px;
  padding: 0.1rem 0.45rem;
  line-height: 1.3;
}

.lw-job-visit-chevron {
  margin-left: auto;
  font-size: 0.75rem;
  color: #94a3b8;
  transition: transform 0.15s ease;
}

.lw-job-visit-section[open] .lw-job-visit-chevron {
  transform: rotate(180deg);
}

.lw-job-visit-list {
  list-style: none;
  padding: 0.35rem 0 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.lw-job-visit-note {
  font-size: 0.85rem;
  color: #475569;
  line-height: 1.45;
}

.lw-job-visit-list--access .lw-job-visit-note {
  display: flex;
  align-items: flex-start;
  gap: 0.15rem;
}

.lw-job-visit-measurements {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding-top: 0.35rem;
}

.lw-job-visit-measurement {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.25rem 1rem;
  padding: 0.45rem 0.65rem;
  background: rgba(37, 99, 235, 0.03);
  border: 1px solid rgba(37, 99, 235, 0.08);
  border-radius: 0.5rem;
}

.lw-job-visit-measurement dt {
  font-size: 0.8rem;
  font-weight: 500;
  color: #64748b;
  margin: 0;
}

.lw-job-visit-measurement dd {
  font-size: 0.88rem;
  font-weight: 600;
  color: #1e293b;
  margin: 0;
}

.lw-job-visit-inline-add {
  font-size: 0.78rem;
  color: #94a3b8;
  background: none;
  border: 1px dashed var(--lw-border);
  border-radius: 0.5rem;
  padding: 0.45rem 0.65rem;
  margin-top: 0.5rem;
  width: 100%;
  cursor: default;
}

.lw-job-visit-photos {
  padding-top: 0.35rem;
}

.lw-job-visit-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr));
  gap: 0.65rem;
}

.lw-job-visit-photo-thumb {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}

.lw-job-visit-photo-thumb-inner {
  aspect-ratio: 1;
  border-radius: 0.55rem;
  background: linear-gradient(145deg, #f1f5f9 0%, #e2e8f0 100%);
  border: 1px solid var(--lw-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 1.15rem;
}

.lw-job-visit-photo-caption {
  font-size: 0.68rem;
  color: #64748b;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lw-job-visit-photo-add {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  aspect-ratio: 1;
  border-radius: 0.55rem;
  border: 1px dashed rgba(37, 99, 235, 0.25);
  background: rgba(37, 99, 235, 0.03);
  color: #64748b;
  font-size: 0.68rem;
  padding: 0.35rem;
  cursor: default;
  min-width: 0;
}

.lw-job-visit-photo-add i {
  font-size: 1rem;
  color: #2563eb;
}

.lw-job-visit-photo-add--solo {
  aspect-ratio: auto;
  min-height: 4.5rem;
  width: 100%;
  flex-direction: row;
  font-size: 0.8rem;
}

.lw-job-visit-photo-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  margin-top: 0.65rem;
}

.lw-job-visit-link-btn {
  font-size: 0.78rem;
  color: #2563eb;
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: default;
  opacity: 0.75;
}

.lw-job-visit-photo-empty {
  padding-top: 0.15rem;
}

@media (max-width: 575.98px) {
  .lw-job-visit {
    max-width: none;
  }

  .lw-job-visit-photo-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .lw-job-visit-measurement {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
  }

  .lw-job-visit-card .lw-card-header {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Evidence Linking — ambient continuity (Phase 2 — Slice 4) */
.lw-related-work {
  background: rgba(37, 99, 235, 0.03);
  border: 1px solid rgba(37, 99, 235, 0.1);
  border-radius: 0.65rem;
  padding: 0.9rem 1rem;
}

.lw-related-work--card {
  background: #fff;
  border-color: var(--lw-border);
  border-radius: 0.75rem;
  padding: 1rem 1.1rem;
  height: 100%;
}

.lw-related-work--inset,
.lw-related-work--embedded,
.lw-related-work--activation {
  background: rgba(37, 99, 235, 0.03);
  border-color: rgba(37, 99, 235, 0.12);
}

.lw-related-work-header {
  margin-bottom: 0.65rem;
}

.lw-related-work-title {
  font-size: 0.92rem;
  font-weight: 600;
  color: #1e293b;
}

.lw-related-work-icon {
  color: #2563eb;
}

.lw-related-work-helper {
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.45;
  margin-top: 0.25rem;
  max-width: 32rem;
}

.lw-related-evidence {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.lw-related-evidence-item {
  font-size: 0.85rem;
  color: #475569;
  line-height: 1.45;
  padding-left: 0.85rem;
  position: relative;
}

.lw-related-evidence-item::before {
  content: "•";
  position: absolute;
  left: 0;
  color: #2563eb;
  font-weight: 700;
}

.lw-related-work-photos-btn {
  font-size: 0.78rem;
  color: #2563eb;
  background: none;
  border: none;
  padding: 0;
  margin-top: 0.5rem;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: default;
  opacity: 0.75;
}

.lw-related-photo-strip {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(4.25rem, 1fr));
  gap: 0.5rem;
}

.lw-related-photo-strip--compact {
  grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr));
}

.lw-related-photo-strip--timeline {
  grid-template-columns: repeat(auto-fill, minmax(3.5rem, 1fr));
  max-width: 16rem;
}

.lw-evidence-preview {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.lw-evidence-preview-thumb {
  aspect-ratio: 1;
  border-radius: 0.45rem;
  background: linear-gradient(145deg, #f8fafc 0%, #e2e8f0 100%);
  border: 1px solid var(--lw-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 0.95rem;
  overflow: hidden;
}

.lw-evidence-preview-img,
.lw-evidence-preview-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lw-intake-photo-grid.lw-evidence-dragover {
  outline: 2px dashed var(--lw-primary, #0d6efd);
  outline-offset: 4px;
  border-radius: 0.5rem;
}

.lw-evidence-preview-row .lw-evidence-preview-thumb {
  width: 4.5rem;
  height: 4.5rem;
  position: relative;
}

.lw-evidence-preview-remove {
  position: absolute;
  top: 0.15rem;
  right: 0.15rem;
  padding: 0.1rem 0.35rem;
  line-height: 1;
  opacity: 0.9;
}

.lw-photo-visibility-badge {
  position: absolute;
  bottom: 0.25rem;
  left: 0.25rem;
  font-size: 0.6rem;
}

.lw-evidence-preview-caption {
  font-size: 0.65rem;
  color: #64748b;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lw-evidence-chip {
  font-size: 0.68rem;
  font-weight: 500;
  color: #64748b;
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 999px;
  padding: 0.12rem 0.45rem;
  line-height: 1.3;
  white-space: nowrap;
}

.lw-linked-notes {
  background: rgba(37, 99, 235, 0.02);
  border: 1px solid rgba(37, 99, 235, 0.1);
  border-radius: 0.65rem;
  padding: 0.85rem 0.95rem;
}

.lw-linked-notes--inset,
.lw-linked-notes--embedded,
.lw-linked-notes--activation {
  background: rgba(37, 99, 235, 0.03);
}

.lw-linked-notes-header {
  margin-bottom: 0.65rem;
}

.lw-linked-notes-title {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  color: #1e293b;
}

.lw-linked-notes-helper {
  display: block;
  font-size: 0.76rem;
  color: #64748b;
  margin-top: 0.2rem;
  line-height: 1.4;
}

.lw-linked-notes-list {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

/* Soft acknowledgment — Notes + Job Details (Phase 2 UX refinement) */
.lw-soft-check {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  cursor: pointer;
  margin: 0;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.lw-soft-check-mark {
  width: 1.35rem;
  height: 1.35rem;
  flex-shrink: 0;
  margin-top: 0.05rem;
  border: 1.5px solid #cbd5e1;
  border-radius: 0.35rem;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.lw-soft-check-input:focus-visible + .lw-soft-check-mark {
  border-color: rgba(37, 99, 235, 0.45);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.lw-soft-check-input:checked + .lw-soft-check-mark {
  border-color: rgba(37, 99, 235, 0.3);
  background: rgba(37, 99, 235, 0.06);
}

.lw-soft-check-input:checked + .lw-soft-check-mark::after {
  content: "";
  width: 0.5rem;
  height: 0.28rem;
  border-left: 2px solid #64748b;
  border-bottom: 2px solid #64748b;
  transform: rotate(-45deg) translateY(-1px);
}

.lw-note-item {
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.55rem;
  padding: 0.65rem 0.75rem;
  min-height: 2.75rem;
  transition: opacity 0.15s ease, background 0.15s ease;
}

.lw-note-item--compact {
  background: rgba(37, 99, 235, 0.02);
  border-color: rgba(37, 99, 235, 0.1);
  padding: 0.55rem 0.65rem;
}

.lw-note-item-body {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
  flex: 1;
}

.lw-note-item-text {
  font-size: 0.84rem;
  color: #475569;
  line-height: 1.45;
  transition: opacity 0.15s ease, color 0.15s ease;
}

.lw-soft-check--note:has(.lw-soft-check-input:checked) .lw-note-item-text {
  opacity: 0.55;
  text-decoration: line-through;
  text-decoration-color: rgba(100, 116, 139, 0.4);
  text-decoration-thickness: 1px;
}

.lw-soft-check--note:has(.lw-soft-check-input:checked) .lw-linked-note-meta {
  opacity: 0.65;
}

.lw-job-details-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.lw-job-detail-item {
  background: #fff;
  border: 1px solid rgba(37, 99, 235, 0.08);
  border-radius: 0.5rem;
  padding: 0.55rem 0.65rem;
  min-height: 2.5rem;
  transition: opacity 0.15s ease, background 0.15s ease;
}

.lw-job-detail-text {
  font-size: 0.85rem;
  color: #475569;
  line-height: 1.45;
  flex: 1;
  min-width: 0;
}

.lw-soft-check--detail:has(.lw-soft-check-input:checked) {
  opacity: 0.88;
  background: rgba(248, 250, 252, 0.9);
}

.lw-soft-check--detail:has(.lw-soft-check-input:checked) .lw-job-detail-text {
  color: #64748b;
  opacity: 0.55;
  text-decoration: line-through;
  text-decoration-color: rgba(100, 116, 139, 0.4);
  text-decoration-thickness: 1px;
}

.lw-linked-note-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.65rem;
  transition: opacity 0.15s ease;
}

.lw-linked-note-context {
  font-size: 0.72rem;
  color: #94a3b8;
}

.lw-linked-note-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
}

.lw-timeline-related {
  margin-top: 0.65rem;
  padding-top: 0.6rem;
  border-top: 1px dashed rgba(37, 99, 235, 0.15);
}

.lw-timeline-related-label {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #64748b;
  margin-bottom: 0.4rem;
}

.lw-timeline-related-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.lw-timeline-related-item {
  font-size: 0.8rem;
  color: #475569;
  line-height: 1.4;
}

.lw-job-visit-connected {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--lw-border);
  background: transparent;
  border-left: none;
  border-right: none;
  border-bottom: none;
  border-radius: 0;
  padding-left: 0;
  padding-right: 0;
}

@media (max-width: 575.98px) {
  .lw-related-photo-strip,
  .lw-related-photo-strip--compact {
    grid-template-columns: repeat(3, 1fr);
  }

  .lw-related-photo-strip--timeline {
    max-width: none;
    grid-template-columns: repeat(4, 1fr);
  }

  .lw-note-item,
  .lw-job-detail-item {
    padding: 0.7rem 0.75rem;
  }

  .lw-soft-check-mark {
    width: 1.45rem;
    height: 1.45rem;
  }
}

/* Mobile workspace compression — progressive disclosure (Phase 3 global continuity pattern) */
.lw-mobile-show-more,
.lw-mobile-show-less {
  display: none;
}

.lw-mobile-preview {
  display: none;
}

.lw-mobile-toggle-label {
  flex: 1;
  min-width: 0;
  text-align: left;
}

.lw-mobile-toggle-icon {
  font-size: 0.8rem;
  opacity: 0.5;
  flex-shrink: 0;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.lw-mobile-compressible.is-expanded .lw-mobile-toggle-icon {
  opacity: 0.45;
}

@media (min-width: 576px) {
  .lw-mobile-compressible .lw-mobile-full {
    display: block;
  }

  .lw-timeline-layer--compressed .lw-timeline-layer-events {
    display: block;
  }

  .lw-timeline-layer--compressed .lw-mobile-preview,
  .lw-timeline-layer--compressed .lw-mobile-show-more,
  .lw-timeline-layer--compressed .lw-mobile-show-less {
    display: none !important;
  }

  .lw-linked-notes-handled:not(.is-expanded) .lw-linked-notes-handled-list {
    display: block;
  }

  .lw-linked-notes-handled .lw-mobile-preview,
  .lw-linked-notes-handled .lw-mobile-show-more,
  .lw-linked-notes-handled .lw-mobile-show-less {
    display: none !important;
  }
}

@media (max-width: 575.98px) {
  .lw-mobile-compressible--always-open .lw-mobile-preview,
  .lw-mobile-compressible--always-open .lw-mobile-show-more,
  .lw-mobile-compressible--always-open .lw-mobile-show-less {
    display: none !important;
  }

  .lw-mobile-compressible--always-open .lw-mobile-full {
    display: block !important;
  }

  .lw-mobile-preview {
    display: block;
  }

  .lw-mobile-compressible:not(.is-expanded):not(.lw-mobile-compressible--always-open) .lw-mobile-full {
    display: none;
  }

  .lw-mobile-compressible.is-expanded .lw-mobile-preview,
  .lw-mobile-compressible.is-expanded .lw-mobile-show-more {
    display: none;
  }

  .lw-mobile-show-more,
  .lw-mobile-show-less {
    display: none;
    width: 100%;
    margin-top: 0.65rem;
    padding: 0.65rem 0.85rem;
    font-size: 0.88rem;
    font-weight: 500;
    color: #2563eb;
    background: rgba(37, 99, 235, 0.05);
    border: 1px solid rgba(37, 99, 235, 0.15);
    border-radius: 0.55rem;
    text-align: left;
    line-height: 1.35;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.15s ease, border-color 0.15s ease;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    min-height: 2.75rem;
  }

  .lw-mobile-compressible:not(.is-expanded):not(.lw-mobile-compressible--always-open) .lw-mobile-show-more {
    display: flex;
  }

  .lw-mobile-compressible.is-expanded .lw-mobile-show-less {
    display: flex;
  }

  .lw-mobile-show-more:hover,
  .lw-mobile-show-less:hover,
  .lw-mobile-show-more:focus-visible,
  .lw-mobile-show-less:focus-visible {
    background: rgba(37, 99, 235, 0.09);
    border-color: rgba(37, 99, 235, 0.25);
    outline: none;
  }

  .lw-mobile-show-less {
    margin-top: 0.75rem;
    color: #64748b;
    background: #f8fafc;
    border-color: var(--lw-border);
  }

  .lw-mobile-summary {
    font-size: 0.84rem;
    color: #64748b;
    line-height: 1.45;
    margin-bottom: 0.35rem;
  }

  .lw-mobile-summary-count {
    font-weight: 600;
    color: #475569;
  }

  .lw-mobile-preview-list {
    list-style: none;
    padding: 0;
    margin: 0.35rem 0 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
  }

  .lw-mobile-preview-list li {
    font-size: 0.84rem;
    color: #475569;
    line-height: 1.4;
    padding-left: 0.85rem;
    position: relative;
  }

  .lw-mobile-preview-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: #2563eb;
    font-weight: 700;
  }

  .lw-mobile-preview-note {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    font-size: 0.84rem;
    color: #475569;
    line-height: 1.4;
    margin-top: 0.35rem;
  }

  .lw-mobile-preview-note-mark {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    margin-top: 0.12rem;
    border: 1.5px solid #cbd5e1;
    border-radius: 0.25rem;
    background: #fff;
  }

  .lw-mobile-compressible.is-revealing .lw-mobile-full {
    animation: lw-mobile-reveal 0.2s ease-out;
  }

  @keyframes lw-mobile-reveal {
    from {
      opacity: 0.55;
      transform: translateY(-0.15rem);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .lw-timeline-layer--compressed:not(.is-expanded) .lw-mobile-show-more {
    display: flex;
  }

  .lw-timeline-layer--compressed .lw-timeline-layer-events {
    display: none;
  }

  .lw-timeline-layer--compressed.is-expanded .lw-timeline-layer-events {
    display: block;
  }

  .lw-timeline-layer--compressed.is-expanded .lw-mobile-show-more {
    display: none;
  }

  .lw-timeline-layer--compressed.is-expanded .lw-mobile-show-less {
    display: block;
  }

  .lw-timeline-layer-label {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #64748b;
    margin-bottom: 0.65rem;
    padding-top: 0.15rem;
  }

  .lw-timeline-layer + .lw-timeline-layer {
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--lw-border);
  }

  .lw-timeline-layer--today .lw-timeline-layer-label {
    color: #2563eb;
  }

  .lw-linked-notes-handled {
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    border-top: 1px dashed rgba(37, 99, 235, 0.12);
  }

  .lw-linked-notes-handled:not(.is-expanded) .lw-linked-notes-handled-list {
    display: none;
  }

  .lw-linked-notes-handled.is-expanded .lw-mobile-show-more[data-lw-handled-expand] {
    display: none;
  }

  .lw-linked-notes-handled:not(.is-expanded) .lw-mobile-show-more[data-lw-handled-expand] {
    display: flex;
  }

  .lw-linked-notes-handled.is-expanded .lw-mobile-show-less[data-lw-handled-collapse] {
    display: flex;
  }

  .lw-linked-notes-handled:not(.is-expanded) .lw-mobile-show-less[data-lw-handled-collapse] {
    display: none;
  }

  .lw-timeline-related-photos .lw-related-photo-strip--timeline {
    max-width: 12rem;
  }
}

/* Invoice continuity — cross-module operational memory (Phase 3) */
.lw-invoice-summary-icon,
.lw-invoice-carries-icon,
.lw-completion-awareness-icon {
  color: #2563eb;
}

.lw-invoice-work-headline {
  font-size: 1rem;
  color: #1e293b;
  line-height: 1.4;
}

.lw-invoice-work-message {
  line-height: 1.5;
  max-width: 36rem;
}

.lw-invoice-summary-details dd {
  line-height: 1.45;
}

.lw-invoice-origin-links {
  border-color: rgba(37, 99, 235, 0.12) !important;
}

.lw-invoice-origin-chip {
  display: inline-flex;
  align-items: center;
  font-size: 0.8rem;
  font-weight: 500;
  color: #2563eb;
  background: rgba(37, 99, 235, 0.06);
  border: 1px solid rgba(37, 99, 235, 0.15);
  border-radius: 999px;
  padding: 0.3rem 0.7rem;
  text-decoration: none;
  line-height: 1.3;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.lw-invoice-origin-chip:hover {
  background: rgba(37, 99, 235, 0.1);
  border-color: rgba(37, 99, 235, 0.25);
  color: #1d4ed8;
}

.lw-invoice-header-summary {
  max-width: 40rem;
  line-height: 1.5;
}

.lw-completion-awareness-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.lw-completion-note {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.6rem 0.7rem;
  border-radius: 0.55rem;
  background: #fff;
  border: 1px solid var(--lw-border);
}

.lw-completion-note--done {
  background: rgba(37, 99, 235, 0.03);
  border-color: rgba(37, 99, 235, 0.1);
}

.lw-completion-note--current {
  background: rgba(37, 99, 235, 0.05);
  border-color: rgba(37, 99, 235, 0.18);
}

.lw-completion-note--pending {
  background: #f8fafc;
}

.lw-completion-note-icon {
  flex-shrink: 0;
  margin-top: 0.1rem;
  font-size: 0.95rem;
}

.lw-completion-note--done .lw-completion-note-icon {
  color: #2563eb;
}

.lw-completion-note--current .lw-completion-note-icon {
  color: #2563eb;
}

.lw-completion-note--pending .lw-completion-note-icon {
  color: #94a3b8;
}

.lw-completion-note-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.lw-completion-note-text {
  font-size: 0.86rem;
  font-weight: 500;
  color: #334155;
  line-height: 1.4;
}

.lw-completion-note-detail {
  font-size: 0.76rem;
  color: #64748b;
  line-height: 1.35;
}

.lw-invoice-carries-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.lw-invoice-carries-item {
  display: flex;
  align-items: flex-start;
  font-size: 0.86rem;
  color: #475569;
  line-height: 1.45;
  padding: 0.55rem 0.65rem;
  background: rgba(37, 99, 235, 0.03);
  border: 1px solid rgba(37, 99, 235, 0.08);
  border-radius: 0.5rem;
}

.lw-invoice-carries-item-icon {
  color: #2563eb;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.lw-invoice-related {
  background: rgba(37, 99, 235, 0.02);
  border: 1px solid rgba(37, 99, 235, 0.1);
  border-radius: 0.65rem;
  padding: 0.85rem 0.95rem;
}

.lw-invoice-related-header {
  margin-bottom: 0.65rem;
}

.lw-invoice-related-title {
  font-size: 0.92rem;
  font-weight: 600;
  color: #1e293b;
}

.lw-invoice-related-icon {
  color: #2563eb;
}

.lw-invoice-related-helper {
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.45;
  margin-top: 0.25rem;
}

.lw-invoice-related-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.lw-invoice-related-item {
  font-size: 0.85rem;
  color: #475569;
  line-height: 1.4;
}

.lw-invoice-details-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem 0;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.lw-invoice-details-divider::before,
.lw-invoice-details-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--lw-border);
}

@media (max-width: 575.98px) {
  .lw-invoice-origin-chip {
    padding: 0.4rem 0.75rem;
    font-size: 0.84rem;
  }

  .lw-completion-note {
    padding: 0.7rem 0.75rem;
  }
}

/* Receipt continuity — cross-module operational memory (Phase 3 — Slice 2) */
.lw-receipt-summary-icon,
.lw-work-supported-icon,
.lw-receipt-related-icon {
  color: #2563eb;
}

.lw-receipt-work-headline {
  font-size: 1rem;
  color: #1e293b;
  line-height: 1.4;
}

.lw-receipt-work-message {
  line-height: 1.5;
  max-width: 36rem;
}

.lw-receipt-summary-details dd {
  line-height: 1.45;
}

.lw-receipt-header-summary {
  max-width: 40rem;
  line-height: 1.5;
}

.lw-receipt-origin-links {
  border-color: rgba(37, 99, 235, 0.12) !important;
}

.lw-receipt-origin-chip {
  display: inline-flex;
  align-items: center;
  font-size: 0.8rem;
  font-weight: 500;
  color: #2563eb;
  background: rgba(37, 99, 235, 0.06);
  border: 1px solid rgba(37, 99, 235, 0.15);
  border-radius: 999px;
  padding: 0.3rem 0.7rem;
  text-decoration: none;
  line-height: 1.3;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.lw-receipt-origin-chip:hover {
  background: rgba(37, 99, 235, 0.1);
  border-color: rgba(37, 99, 235, 0.25);
  color: #1d4ed8;
}

.lw-work-supported-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.lw-work-supported-item {
  display: flex;
  align-items: flex-start;
  padding: 0.6rem 0.7rem;
  background: rgba(37, 99, 235, 0.03);
  border: 1px solid rgba(37, 99, 235, 0.08);
  border-radius: 0.55rem;
}

.lw-work-supported-item-icon {
  color: #2563eb;
  flex-shrink: 0;
  margin-top: 0.1rem;
}

.lw-work-supported-item-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.lw-work-supported-item-text {
  font-size: 0.86rem;
  font-weight: 500;
  color: #334155;
  line-height: 1.4;
}

.lw-work-supported-item-detail {
  font-size: 0.76rem;
  color: #64748b;
  line-height: 1.35;
}

.lw-receipt-related {
  background: rgba(37, 99, 235, 0.02);
  border: 1px solid rgba(37, 99, 235, 0.1);
  border-radius: 0.65rem;
  padding: 0.85rem 0.95rem;
}

.lw-receipt-related-header {
  margin-bottom: 0.65rem;
}

.lw-receipt-related-title {
  font-size: 0.92rem;
  font-weight: 600;
  color: #1e293b;
}

.lw-receipt-related-helper {
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.45;
  margin-top: 0.25rem;
}

.lw-receipt-related-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.lw-receipt-related-item {
  font-size: 0.85rem;
  color: #475569;
  line-height: 1.4;
}

.lw-receipt-details-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem 0;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.lw-receipt-details-divider::before,
.lw-receipt-details-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--lw-border);
}

.lw-receipt-details-card {
  background: #fafbfc;
  border-color: var(--lw-border);
}

.lw-receipt-details-card .lw-card-header {
  background: transparent;
}

.lw-receipt-details-meta dd {
  line-height: 1.45;
}

@media (max-width: 575.98px) {
  .lw-receipt-origin-chip {
    padding: 0.4rem 0.75rem;
    font-size: 0.84rem;
  }

  .lw-work-supported-item {
    padding: 0.7rem 0.75rem;
  }
}

/* Completion continuity — operational closure memory (Phase 3 — Slice 3) */
.lw-completion-summary-icon,
.lw-completion-review-icon,
.lw-completion-related-icon {
  color: #2563eb;
}

.lw-completion-work-headline {
  font-size: 1rem;
  color: #1e293b;
  line-height: 1.4;
}

.lw-completion-header-summary {
  max-width: 40rem;
  line-height: 1.5;
}

.lw-completion-summary-details dd {
  line-height: 1.45;
}

.lw-completion-origin-links {
  border-color: rgba(37, 99, 235, 0.12) !important;
}

.lw-completion-origin-chip {
  display: inline-flex;
  align-items: center;
  font-size: 0.8rem;
  font-weight: 500;
  color: #2563eb;
  background: rgba(37, 99, 235, 0.06);
  border: 1px solid rgba(37, 99, 235, 0.15);
  border-radius: 999px;
  padding: 0.3rem 0.7rem;
  text-decoration: none;
  line-height: 1.3;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.lw-completion-origin-chip:hover {
  background: rgba(37, 99, 235, 0.1);
  border-color: rgba(37, 99, 235, 0.25);
  color: #1d4ed8;
}

.lw-completion-review-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.lw-completion-item {
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.55rem;
  padding: 0.65rem 0.75rem;
  min-height: 2.75rem;
  transition: opacity 0.15s ease, background 0.15s ease;
}

.lw-completion-item-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
  flex: 1;
}

.lw-completion-item-text {
  font-size: 0.86rem;
  font-weight: 500;
  color: #334155;
  line-height: 1.4;
  transition: opacity 0.15s ease, color 0.15s ease;
}

.lw-completion-item-detail {
  font-size: 0.76rem;
  color: #64748b;
  line-height: 1.35;
}

.lw-soft-check--completion:has(.lw-soft-check-input:checked) .lw-completion-item-text {
  opacity: 0.55;
  text-decoration: line-through;
  text-decoration-color: rgba(100, 116, 139, 0.4);
  text-decoration-thickness: 1px;
}

.lw-soft-check--completion:has(.lw-soft-check-input:checked) .lw-completion-item-detail {
  opacity: 0.65;
}

.lw-completion-reviewed {
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px dashed rgba(37, 99, 235, 0.12);
}

.lw-completion-related {
  background: rgba(37, 99, 235, 0.02);
  border: 1px solid rgba(37, 99, 235, 0.1);
  border-radius: 0.65rem;
  padding: 0.85rem 0.95rem;
}

.lw-completion-related-header {
  margin-bottom: 0.65rem;
}

.lw-completion-related-title {
  font-size: 0.92rem;
  font-weight: 600;
  color: #1e293b;
}

.lw-completion-related-helper {
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.45;
  margin-top: 0.25rem;
}

.lw-completion-related-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.lw-completion-related-item {
  font-size: 0.85rem;
  color: #475569;
  line-height: 1.4;
}

.lw-completion-details-divider {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem 0;
  color: #94a3b8;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.lw-completion-details-divider::before,
.lw-completion-details-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--lw-border);
}

.lw-completion-details-card {
  background: #fafbfc;
  border-color: var(--lw-border);
}

.lw-completion-details-meta dd {
  line-height: 1.45;
}

@media (min-width: 576px) {
  .lw-completion-reviewed:not(.is-expanded) .lw-completion-review-list.lw-mobile-full {
    display: block;
  }

  .lw-completion-reviewed .lw-mobile-preview,
  .lw-completion-reviewed .lw-mobile-show-more,
  .lw-completion-reviewed .lw-mobile-show-less {
    display: none !important;
  }
}

@media (max-width: 575.98px) {
  .lw-completion-reviewed:not(.is-expanded) .lw-completion-review-list.lw-mobile-full {
    display: none;
  }

  .lw-completion-reviewed:not(.is-expanded) .lw-mobile-show-more[data-lw-handled-expand] {
    display: flex;
  }

  .lw-completion-reviewed.is-expanded .lw-mobile-show-more[data-lw-handled-expand] {
    display: none;
  }

  .lw-completion-reviewed.is-expanded .lw-mobile-show-less[data-lw-handled-collapse] {
    display: flex;
  }

  .lw-completion-origin-chip {
    padding: 0.4rem 0.75rem;
    font-size: 0.84rem;
  }

  .lw-completion-item {
    padding: 0.7rem 0.75rem;
  }
}

/* Ambient cross-chain continuity breadcrumbs */
.lw-continuity-ambient-title,
.lw-continuity-ambient-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #64748b;
  letter-spacing: 0.02em;
}

.lw-continuity-ambient-context {
  font-size: 0.78rem;
  font-weight: 500;
}

.lw-continuity-ambient-list a {
  font-weight: 500;
  text-decoration: none;
}

.lw-continuity-ambient-list a:hover {
  text-decoration: underline;
}

.lw-continuity-ambient-chip {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.1rem;
  font-size: 0.78rem;
  color: #2563eb;
  background: rgba(37, 99, 235, 0.05);
  border: 1px solid rgba(37, 99, 235, 0.12);
  border-radius: 0.55rem;
  padding: 0.4rem 0.65rem;
  text-decoration: none;
  line-height: 1.25;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.lw-continuity-ambient-chip:hover {
  background: rgba(37, 99, 235, 0.09);
  border-color: rgba(37, 99, 235, 0.22);
  color: #1d4ed8;
}

.lw-continuity-ambient-chip-label {
  font-weight: 600;
  font-size: 0.72rem;
  color: #64748b;
  text-transform: none;
}

.lw-continuity-ambient-chip-ref {
  font-weight: 500;
  color: #2563eb;
}

/* Internal vs customer-safe posture — lightweight mock labels */
.lw-continuity-visibility {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 0.12rem 0.4rem;
  border-radius: 0.25rem;
  white-space: nowrap;
  flex-shrink: 0;
}

.lw-continuity-visibility--internal {
  color: #64748b;
  background: rgba(100, 116, 139, 0.1);
}

.lw-continuity-visibility--customer {
  color: #3b82f6;
  background: rgba(59, 130, 246, 0.08);
}

.lw-completion-item-meta {
  margin-top: 0.2rem;
}

.lw-completion-outcome {
  line-height: 1.45;
  max-width: 36rem;
}

.lw-completion-work-summary-icon,
.lw-completion-final-photos-icon,
.lw-completion-carries-icon {
  color: #2563eb;
}

.lw-completion-work-summary-list,
.lw-completion-carries-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.lw-completion-work-summary-item,
.lw-completion-carries-item {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  font-size: 0.9rem;
  color: #334155;
  line-height: 1.4;
  padding: 0.55rem 0.65rem;
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
}

.lw-completion-carries-item-icon {
  color: #94a3b8;
  margin-top: 0.1rem;
}

.lw-completion-related-item {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  flex-wrap: wrap;
}

@media (max-width: 575.98px) {
  .lw-continuity-ambient-chip {
    flex: 1 1 calc(50% - 0.5rem);
    min-width: 8.5rem;
  }

  .lw-completion-work-summary-item,
  .lw-completion-carries-item {
    padding: 0.65rem 0.7rem;
  }
}

/* ── Quote Workspace Q1 — two-region workbench (layout exploration) ── */

body.lw-quote-workbench-body .lw-content {
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

@media (min-width: 768px) {
  body.lw-quote-workbench-body .lw-content {
    padding: 1rem 1.25rem 1.25rem;
  }
}

body.lw-quote-workbench-body .lw-page-title {
  font-size: 1rem;
  font-weight: 600;
  color: #64748b;
}

.lw-qw-exploration-tag {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.25rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: #334155;
  margin-bottom: 0.65rem;
  padding: 0.35rem 0.5rem;
}

.lw-qw-exploration-tag-sep {
  color: #94a3b8;
  font-weight: 400;
}

.lw-qw-workbench {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: calc(100vh - 8.5rem);
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.65rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}

/* Header */
.lw-qw-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.55rem 0.85rem;
  background: #fff;
  border-bottom: 1px solid var(--lw-border);
  position: sticky;
  top: 0;
  z-index: 20;
  flex-shrink: 0;
}

@media (min-width: 768px) {
  .lw-qw-header {
    padding: 0.6rem 1rem;
  }
}

.lw-qw-header-start {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
  flex: 1;
}

.lw-qw-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.4rem;
  color: #64748b;
  text-decoration: none;
  flex-shrink: 0;
  transition: background 0.15s ease, color 0.15s ease;
}

.lw-qw-back:hover {
  background: #f1f5f9;
  color: var(--lw-navy);
}

.lw-qw-header-identity {
  min-width: 0;
}

.lw-qw-header-primary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--lw-navy);
  line-height: 1.3;
}

.lw-qw-header-id {
  font-size: 0.8rem;
  color: #475569;
  font-weight: 600;
}

.lw-qw-header-sep,
.lw-qw-header-dot {
  color: #cbd5e1;
  font-weight: 400;
}

.lw-qw-status-badge {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.lw-qw-header-secondary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.45rem;
  font-size: 0.72rem;
  color: #64748b;
  margin-top: 0.15rem;
  line-height: 1.35;
}

.lw-qw-header-lineage {
  color: #64748b;
}

.lw-qw-header-actions {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
}

/* Body — two regions */
.lw-qw-body {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.lw-qw-memory-toggle {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 0.55rem 0.85rem;
  border: none;
  border-bottom: 1px solid var(--lw-border);
  background: #f8fafc;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--lw-navy);
  text-align: left;
}

.lw-qw-memory-toggle .bi-chevron-down {
  transition: transform 0.2s ease;
}

.lw-qw-memory-toggle[aria-expanded="true"] .bi-chevron-down {
  transform: rotate(180deg);
}

/* Memory rail */
.lw-qw-memory-rail {
  width: 100%;
  flex-shrink: 0;
  background: #f8fafc;
  border-right: 1px solid var(--lw-border);
  overflow-y: auto;
}

@media (min-width: 992px) {
  .lw-qw-memory-rail {
    width: 17.5rem;
    max-width: 17.5rem;
  }
}

.lw-qw-rail-inner {
  padding: 0.75rem 0.85rem 1rem;
}

.lw-qw-rail-label {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #94a3b8;
  margin-bottom: 0.65rem;
}

.lw-qw-rail-block {
  margin-bottom: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid #e8edf2;
}

.lw-qw-rail-block:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.lw-qw-rail-block--compact {
  padding-bottom: 0;
}

.lw-qw-rail-block-title {
  font-size: 0.72rem;
  font-weight: 700;
  color: #475569;
  margin-bottom: 0.35rem;
}

.lw-qw-rail-count {
  font-size: 0.7rem;
  font-weight: 600;
  color: #94a3b8;
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 999px;
  padding: 0.05rem 0.45rem;
}

.lw-qw-rail-text {
  font-size: 0.78rem;
  color: #334155;
  line-height: 1.45;
  margin: 0;
}

.lw-qw-rail-text--clamped {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lw-qw-rail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.4rem;
  font-size: 0.68rem;
  color: #94a3b8;
  margin-top: 0.35rem;
}

.lw-qw-photo-strip,
.lw-qw-artifact-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.35rem;
}

.lw-qw-photo-thumb,
.lw-qw-artifact-thumb {
  position: relative;
  aspect-ratio: 1;
  border: 1px solid var(--lw-border);
  border-radius: 0.35rem;
  padding: 0;
  overflow: hidden;
  background: #fff;
  cursor: default;
}

.lw-qw-artifact-thumb--sketch {
  border-color: #c7d2e0;
}

.lw-qw-photo-thumb img,
.lw-qw-artifact-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lw-qw-photo-placeholder,
.lw-qw-artifact-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #e8edf2 0%, #f1f5f9 100%);
  color: #94a3b8;
  font-size: 0.85rem;
}

.lw-qw-artifact-badge {
  position: absolute;
  bottom: 0.15rem;
  right: 0.15rem;
  width: 1.1rem;
  height: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(26, 47, 74, 0.75);
  color: #fff;
  border-radius: 0.2rem;
  font-size: 0.55rem;
}

.lw-qw-rail-affordance {
  display: inline-flex;
  align-items: center;
  margin-top: 0.4rem;
  padding: 0;
  border: none;
  background: none;
  font-size: 0.7rem;
  font-weight: 600;
  color: #64748b;
  cursor: default;
}

.lw-qw-sketch-kinds {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-top: 0.35rem;
}

.lw-qw-sketch-kind {
  font-size: 0.62rem;
  font-weight: 600;
  color: #64748b;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 0.25rem;
  padding: 0.1rem 0.35rem;
}

.lw-qw-action-preview {
  font-weight: 600;
}

.lw-qw-rail-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: #166534;
  background: #ecfdf3;
  border: 1px solid #bbf7d0;
  border-radius: 999px;
  padding: 0.25rem 0.6rem;
}

/* Work surface */
.lw-qw-work-surface {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  background: #fff;
}

.lw-qw-zone {
  flex: 1;
  min-height: 0;
}

.lw-qw-zone--primary {
  padding: 0.85rem 1rem 0.65rem;
}

@media (min-width: 768px) {
  .lw-qw-zone--primary {
    padding: 1rem 1.15rem 0.75rem;
  }
}

.lw-qw-zone-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.lw-qw-zone-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--lw-navy);
  margin: 0;
}

.lw-qw-zone-tag {
  font-size: 0.65rem;
  font-weight: 600;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.lw-qw-zone-body {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.lw-qw-field-label {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #94a3b8;
  margin-bottom: 0.35rem;
}

.lw-qw-scope-block {
  background: #fafbfc;
  border: 1px solid #edf0f4;
  border-radius: 0.45rem;
  padding: 0.65rem 0.75rem;
}

.lw-qw-scope-text {
  font-size: 0.85rem;
  color: #1e293b;
  line-height: 1.5;
}

.lw-qw-line-grid {
  border: 1px solid var(--lw-border);
  border-radius: 0.45rem;
  overflow: hidden;
  font-size: 0.8rem;
}

.lw-qw-line-grid-head,
.lw-qw-line-grid-row {
  display: grid;
  grid-template-columns: 1fr 5.5rem 4.5rem;
  gap: 0.5rem;
  align-items: center;
  padding: 0.45rem 0.65rem;
}

.lw-qw-line-grid-head {
  background: #f1f5f9;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #64748b;
}

.lw-qw-line-grid-row {
  border-top: 1px solid #edf0f4;
}

.lw-qw-line-grid-row--empty {
  grid-template-columns: 1fr;
  padding: 1rem 0.65rem;
  text-align: center;
  font-size: 0.78rem;
}

.lw-qw-line-desc {
  color: #1e293b;
  font-weight: 500;
}

.lw-qw-cat-badge {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #e2e8f0;
}

.lw-qw-line-grid-add {
  padding: 0.35rem 0.65rem;
  border-top: 1px solid #edf0f4;
  background: #fafbfc;
}

.lw-qw-pricing-strip {
  display: flex;
  align-items: flex-end;
  gap: 1.5rem;
  padding: 0.65rem 0.75rem;
  background: #f8fafc;
  border: 1px solid #edf0f4;
  border-radius: 0.45rem;
}

.lw-qw-pricing-field--total {
  margin-left: auto;
  text-align: right;
}

.lw-qw-pricing-field--solo {
  margin-left: 0;
  text-align: left;
  width: 100%;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.lw-qw-pricing-value {
  font-size: 0.85rem;
}

.lw-qw-pricing-total {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--lw-navy);
  font-variant-numeric: tabular-nums;
}

/* Future zone panels */
.lw-qw-future-strip {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.55rem;
  padding: 0.65rem 1rem 0.85rem;
  border-top: 1px solid var(--lw-border);
  background: #fafbfc;
  flex-shrink: 0;
}

@media (min-width: 992px) {
  .lw-qw-future-strip {
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
    padding: 0.65rem 1.15rem 0.85rem;
  }
}

.lw-qw-future-panel {
  padding: 0.65rem 0.75rem;
  background: #fff;
  border: 1px dashed #cbd5e1;
  border-radius: 0.45rem;
  opacity: 0.92;
}

.lw-qw-future-panel-header {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin-bottom: 0.5rem;
}

.lw-qw-future-icon {
  font-size: 1rem;
  color: #64748b;
  margin-top: 0.1rem;
  flex-shrink: 0;
}

.lw-qw-future-title {
  font-size: 0.78rem;
  font-weight: 600;
  color: #475569;
}

.lw-qw-future-hint {
  font-size: 0.68rem;
  color: #94a3b8;
  margin-top: 0.1rem;
  line-height: 1.35;
}

.lw-qw-preview-checklist {
  margin: 0;
  padding-left: 1.15rem;
  font-size: 0.72rem;
  color: #64748b;
  line-height: 1.55;
}

.lw-qw-evidence-select {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.lw-qw-evidence-item {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  font-size: 0.75rem;
  color: #334155;
  cursor: default;
}

.lw-qw-evidence-item .form-check-input {
  margin: 0;
  flex-shrink: 0;
}

.lw-qw-evidence-icon {
  color: #94a3b8;
  font-size: 0.8rem;
  width: 1rem;
  text-align: center;
  flex-shrink: 0;
}

.lw-qw-evidence-label {
  line-height: 1.3;
}

/* Legacy future cards — retained for reference */
.lw-qw-future-card {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.55rem 0.65rem;
  background: #fff;
  border: 1px dashed #cbd5e1;
  border-radius: 0.45rem;
  text-align: left;
  cursor: default;
  opacity: 0.85;
}

/* Mobile: stack rail above work surface */
@media (max-width: 991.98px) {
  .lw-qw-body {
    flex-direction: column;
    overflow-y: auto;
  }

  .lw-qw-memory-rail {
    border-right: none;
    border-bottom: 1px solid var(--lw-border);
    max-height: none;
  }

  .lw-qw-memory-rail:not(.show) {
    display: none;
  }

  .lw-qw-workbench {
    min-height: calc(100vh - 9rem);
  }

  .lw-qw-line-grid-head,
  .lw-qw-line-grid-row {
    grid-template-columns: 1fr 4.5rem;
  }

  .lw-qw-line-grid-head span:nth-child(2),
  .lw-qw-line-grid-row .lw-qw-line-cat {
    display: none;
  }
}

/* ── Q2 Estimate Builder (within Quote Workspace) ── */

.lw-eb {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.lw-eb-scope-input {
  width: 100%;
  border: 1px solid #edf0f4;
  border-radius: 0.45rem;
  padding: 0.55rem 0.65rem;
  font-size: 0.85rem;
  line-height: 1.45;
  color: #1e293b;
  background: #fafbfc;
  resize: vertical;
  min-height: 2.75rem;
}

.lw-eb-scope-input:focus {
  outline: none;
  border-color: #94a3b8;
  background: #fff;
  box-shadow: 0 0 0 2px rgba(26, 47, 74, 0.06);
}

.lw-eb-quick-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.lw-eb-quick-chip {
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease;
}

.lw-eb-quick-chip:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: var(--lw-navy);
}

.lw-eb-section {
  border: 1px solid var(--lw-border);
  border-radius: 0.45rem;
  overflow: hidden;
  background: #fff;
}

.lw-eb-section + .lw-eb-section {
  margin-top: 0.15rem;
}

.lw-eb-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.45rem 0.65rem;
  background: #f8fafc;
  border-bottom: 1px solid #edf0f4;
}

.lw-eb-section-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #475569;
}

.lw-eb-section-subtotal {
  font-size: 0.75rem;
  font-weight: 600;
  color: #64748b;
  font-variant-numeric: tabular-nums;
}

.lw-eb-grid {
  display: grid;
  grid-template-columns: 4.25rem 1fr 4.25rem 4.75rem 5.5rem 5.5rem;
  gap: 0.35rem 0.5rem;
  align-items: center;
  padding: 0.4rem 0.55rem;
}

.lw-eb-grid-head {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #94a3b8;
  background: #fafbfc;
  border-bottom: 1px solid #edf0f4;
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
}

.lw-eb-row {
  border-top: 1px solid #f1f5f9;
}

.lw-eb-row:hover {
  background: #fafbfc;
}

.lw-eb-row-actions {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  opacity: 0.35;
  transition: opacity 0.12s ease;
}

.lw-eb-row:hover .lw-eb-row-actions,
.lw-eb-row:focus-within .lw-eb-row-actions {
  opacity: 1;
}

.lw-eb-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.1rem;
  padding: 0;
  border: none;
  background: transparent;
  color: #94a3b8;
  border-radius: 0.2rem;
  font-size: 0.7rem;
  cursor: pointer;
}

.lw-eb-icon-btn:hover:not(:disabled) {
  background: #e2e8f0;
  color: #475569;
}

.lw-eb-icon-btn:disabled {
  opacity: 0.25;
  cursor: default;
}

.lw-eb-icon-btn--danger:hover:not(:disabled) {
  background: #fee2e2;
  color: #b91c1c;
}

.lw-eb-input {
  width: 100%;
  border: 1px solid transparent;
  border-radius: 0.3rem;
  padding: 0.3rem 0.4rem;
  font-size: 0.8rem;
  color: #1e293b;
  background: transparent;
  min-width: 0;
}

.lw-eb-input:hover {
  border-color: #e2e8f0;
  background: #fff;
}

.lw-eb-input:focus {
  outline: none;
  border-color: #94a3b8;
  background: #fff;
  box-shadow: 0 0 0 2px rgba(26, 47, 74, 0.06);
}

.lw-eb-input-desc {
  font-weight: 500;
}

.lw-eb-input-qty,
.lw-eb-input-price,
.lw-eb-line-total {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.lw-eb-input-unit {
  font-size: 0.72rem;
  font-weight: 600;
  color: #64748b;
  padding-right: 0.25rem;
}

.lw-eb-line-total {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--lw-navy);
  padding-right: 0.15rem;
}

.lw-eb-section-foot {
  padding: 0.35rem 0.55rem 0.45rem;
  background: #fafbfc;
  border-top: 1px solid #edf0f4;
}

.lw-eb-add-btn {
  border: none;
  background: none;
  padding: 0.15rem 0;
  font-size: 0.72rem;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
}

.lw-eb-add-btn:hover {
  color: var(--lw-navy);
}

.lw-eb-total-bar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0.85rem;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
  border: 1px solid #e2e8f0;
  border-radius: 0.45rem;
  position: sticky;
  bottom: 0;
  z-index: 5;
}

.lw-eb-total-hint {
  display: block;
  font-size: 0.68rem;
  color: #94a3b8;
  margin-top: 0.15rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: normal;
}

.lw-eb-total-amount {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--lw-navy);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

@media (max-width: 991.98px) {
  .lw-eb-grid,
  .lw-eb-grid-head {
    grid-template-columns: 2.5rem 1fr 3.5rem 4rem 4.25rem;
    gap: 0.25rem 0.35rem;
  }

  .lw-eb-grid-head span:last-child,
  .lw-eb-line-total {
    display: none;
  }

  .lw-eb-row {
    grid-template-columns: 2.5rem 1fr 3.5rem 4rem 4.25rem;
    grid-template-areas:
      "actions desc desc desc desc"
      ". qty unit price price";
    gap: 0.2rem 0.35rem;
    padding: 0.5rem 0.45rem;
  }

  .lw-eb-row-actions { grid-area: actions; }
  .lw-eb-input-desc { grid-area: desc; }
  .lw-eb-input-qty { grid-area: qty; }
  .lw-eb-input-unit { grid-area: unit; }
  .lw-eb-input-price { grid-area: price; }

  .lw-eb-grid-head {
    display: none;
  }
}

@media (max-width: 575.98px) {
  .lw-eb-quick-chip {
    font-size: 0.68rem;
  }

  .lw-eb-total-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .lw-eb-total-amount {
    text-align: right;
  }
}

/* ── Q3.1 — docked tool panel (Photos, Sketches, Notes…) ── */

.lw-qw-rail-block--active {
  background: #eff6ff;
  margin: 0 -0.65rem;
  padding: 0.65rem;
  border-radius: 0.45rem;
  border: 1px solid #bfdbfe;
}

a.lw-qw-rail-affordance {
  text-decoration: none;
  cursor: pointer;
  transition: color 0.15s ease;
}

a.lw-qw-rail-affordance:hover {
  color: var(--lw-navy);
}

.lw-qw-rail-affordance--active {
  background: #dbeafe;
  color: #1d4ed8;
  border-radius: 0.35rem;
  padding: 0.2rem 0.45rem;
  margin-top: 0.4rem;
}

a.lw-qw-artifact-thumb {
  text-decoration: none;
  cursor: pointer;
}

a.lw-qw-artifact-thumb:hover {
  opacity: 0.92;
}

.lw-qw-workbench--tool-open .lw-qw-body {
  display: grid;
  grid-template-columns: minmax(200px, 240px) minmax(520px, 1fr) 260px;
  overflow-x: auto;
}

.lw-qw-workbench--tool-open .lw-qw-memory-rail {
  width: auto;
}

.lw-qw-workbench--tool-open .lw-qw-work-surface {
  min-width: 520px;
  border-right: 1px solid var(--lw-border);
}

.lw-qw-companion {
  display: flex;
  flex-direction: column;
  min-width: 0;
  max-width: 260px;
  background: #fafbfc;
  overflow: hidden;
  border-left: 1px solid var(--lw-border);
}

.lw-qw-companion--photos {
  background: #f8fafc;
}

.lw-qw-companion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.45rem 0.65rem;
  border-bottom: 1px solid var(--lw-border);
  background: #f1f5f9;
  flex-shrink: 0;
}

.lw-qw-companion-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: #475569;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

a.lw-qw-companion-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 0.4rem;
  color: #64748b;
  border: 1px solid var(--lw-border);
  background: #fff;
  flex-shrink: 0;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}

a.lw-qw-companion-close:hover {
  background: #f1f5f9;
  color: var(--lw-navy);
}

.lw-qw-companion-body {
  flex: 1;
  overflow-y: auto;
  padding: 0.5rem 0.55rem 0.65rem;
}

.lw-qw-photo-details {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.lw-qw-photo-detail {
  display: flex;
  gap: 0.5rem;
  padding: 0.45rem;
  border-radius: 0.4rem;
  border: 1px solid transparent;
  background: #fff;
}

.lw-qw-photo-detail--selected {
  border-color: #bfdbfe;
  background: #f0f9ff;
}

.lw-qw-photo-detail-thumb {
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.35rem;
  overflow: hidden;
  background: #f1f5f9;
}

.lw-qw-photo-detail-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lw-qw-photo-detail-thumb .lw-qw-artifact-placeholder {
  width: 100%;
  height: 100%;
  font-size: 0.85rem;
}

.lw-qw-photo-detail-body {
  min-width: 0;
  flex: 1;
}

.lw-qw-photo-detail-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--lw-navy);
  line-height: 1.25;
}

.lw-qw-photo-detail-obs {
  font-size: 0.68rem;
  color: #64748b;
  margin: 0.12rem 0 0;
  line-height: 1.35;
}

.lw-qw-photo-detail-meta {
  list-style: none;
  margin: 0.25rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
}

.lw-qw-photo-detail-meta li {
  font-size: 0.62rem;
  color: #475569;
  line-height: 1.3;
}

.lw-qw-photo-detail-meta .bi {
  color: #94a3b8;
  margin-right: 0.2rem;
}

.lw-qw-photo-detail-captured {
  font-size: 0.58rem;
  color: #94a3b8;
  margin-top: 0.2rem;
}

@media (max-width: 991.98px) {
  .lw-qw-workbench--tool-open .lw-qw-body {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
  }
}

/* ── Q3.2 — pinned reference while estimating ── */

.lw-qw-workbench--reference-open .lw-qw-body {
  display: grid;
  grid-template-columns: minmax(200px, 240px) minmax(520px, 1fr) 260px;
  overflow-x: auto;
}

.lw-qw-workbench--reference-sketches .lw-qw-body {
  grid-template-columns: minmax(200px, 240px) minmax(520px, 1fr) 280px;
}

.lw-qw-workbench--reference-open .lw-qw-memory-rail {
  width: auto;
}

.lw-qw-workbench--reference-open .lw-qw-work-surface {
  min-width: 520px;
  border-right: 1px solid var(--lw-border);
}

.lw-qw-reference {
  display: flex;
  flex-direction: column;
  min-width: 0;
  max-width: 260px;
  background: #f8fafc;
  overflow: hidden;
  border-left: 1px solid var(--lw-border);
}

.lw-qw-workbench--reference-sketches .lw-qw-reference {
  max-width: 280px;
}

.lw-qw-reference-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.45rem 0.65rem;
  border-bottom: 1px solid var(--lw-border);
  background: #f1f5f9;
  flex-shrink: 0;
}

.lw-qw-reference-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: #475569;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

a.lw-qw-reference-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 0.4rem;
  color: #64748b;
  border: 1px solid var(--lw-border);
  background: #fff;
  flex-shrink: 0;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}

a.lw-qw-reference-close:hover {
  background: #f1f5f9;
  color: var(--lw-navy);
}

.lw-qw-reference-body {
  flex: 1;
  overflow-y: auto;
  padding: 0.55rem 0.6rem 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.lw-qw-reference-pinned {
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.45rem;
  padding: 0.5rem;
}

.lw-qw-reference-pinned-img {
  width: 100%;
  max-height: 7.5rem;
  object-fit: cover;
  border-radius: 0.35rem;
  display: block;
  margin-bottom: 0.45rem;
}

.lw-qw-reference-pinned-img--sketch {
  max-height: 9rem;
  object-fit: contain;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.lw-qw-reference-pinned-kind {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #94a3b8;
  margin-bottom: 0.1rem;
}

.lw-qw-reference-pinned-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--lw-navy);
  line-height: 1.25;
}

.lw-qw-reference-pinned-obs {
  font-size: 0.68rem;
  color: #64748b;
  margin: 0.2rem 0 0;
  line-height: 1.4;
}

.lw-qw-reference-pinned-meta,
.lw-qw-reference-measurements {
  list-style: none;
  margin: 0.35rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.lw-qw-reference-pinned-meta li,
.lw-qw-reference-measurements li {
  font-size: 0.65rem;
  color: #475569;
  line-height: 1.35;
}

.lw-qw-reference-pinned-meta .bi,
.lw-qw-reference-measurements .bi {
  color: #94a3b8;
  margin-right: 0.25rem;
}

.lw-qw-reference-pinned-captured {
  font-size: 0.58rem;
  color: #94a3b8;
  margin-top: 0.35rem;
}

.lw-qw-reference-switch {
  border-top: 1px solid #e2e8f0;
  padding-top: 0.45rem;
}

.lw-qw-reference-switch-label {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #94a3b8;
  margin-bottom: 0.3rem;
}

.lw-qw-reference-switch-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.lw-qw-reference-switch-link {
  display: block;
  font-size: 0.7rem;
  font-weight: 600;
  color: #64748b;
  text-decoration: none;
  padding: 0.2rem 0;
  line-height: 1.3;
}

.lw-qw-reference-switch-link:hover {
  color: var(--lw-navy);
}

.lw-qw-reference-switch-kind {
  display: block;
  font-size: 0.6rem;
  font-weight: 500;
  color: #94a3b8;
}

@media (max-width: 991.98px) {
  .lw-qw-workbench--reference-open .lw-qw-body {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
  }

  .lw-qw-workbench--reference-open .lw-qw-work-surface {
    min-width: 0;
  }
}

/* ── Q3.3 — desktop workbench mode (Work Mode + stacked reference) ── */

body.lw-quote-workbench-body.lw-work-mode .lw-sidebar {
  display: none !important;
}

body.lw-quote-workbench-body.lw-work-mode .lw-main {
  width: 100%;
  max-width: 100%;
}

body.lw-quote-workbench-body.lw-work-mode .lw-footer {
  display: none;
}

body.lw-quote-workbench-body.lw-work-mode .lw-content {
  padding: 0.5rem 0.75rem 0.75rem;
}

@media (min-width: 1280px) {
  body.lw-quote-workbench-body.lw-work-mode .lw-content {
    padding: 0.65rem 1rem 1rem;
  }
}

.lw-work-mode-nav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid var(--lw-border);
  border-radius: 0.4rem;
  background: #fff;
  color: #64748b;
  flex-shrink: 0;
  cursor: default;
}

.lw-qw-workbench--q33.lw-qw-workbench--work-mode {
  min-height: calc(100vh - 5.5rem);
  border-radius: 0.5rem;
}

.lw-qw-workbench--q33.lw-qw-workbench--work-mode .lw-qw-body {
  display: flex;
  flex: 1;
  min-height: 0;
}

.lw-qw-workbench--q33.lw-qw-workbench--work-mode .lw-qw-memory-rail {
  flex-shrink: 0;
  width: 220px;
  max-width: 220px;
  border-right: 1px solid var(--lw-border);
}

.lw-qw-workbench--q33 .lw-qw-work-surface--stacked {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.lw-qw-reference-stage {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  border-bottom: 1px solid var(--lw-border);
  background: #f1f5f9;
}

.lw-qw-reference-stage-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.55rem 0.85rem;
  background: #fff;
  border-bottom: 1px solid #e2e8f0;
  flex-shrink: 0;
}

.lw-qw-reference-stage-title-group {
  min-width: 0;
}

.lw-qw-reference-stage-kind {
  display: block;
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #94a3b8;
  margin-bottom: 0.1rem;
}

.lw-qw-reference-stage-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--lw-navy);
  margin: 0;
  line-height: 1.25;
}

.lw-qw-reference-stage-obs {
  font-size: 0.75rem;
  color: #64748b;
  margin: 0.15rem 0 0;
  line-height: 1.4;
}

.lw-qw-reference-stage-actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
}

a.lw-qw-reference-stage-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.4rem;
  color: #64748b;
  border: 1px solid var(--lw-border);
  background: #fff;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}

a.lw-qw-reference-stage-close:hover {
  background: #f1f5f9;
  color: var(--lw-navy);
}

.lw-qw-reference-stage-canvas {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: min(42vh, 28rem);
  max-height: 48vh;
  padding: 0.75rem 1rem;
  background: #1e293b;
  overflow: hidden;
}

.lw-qw-reference-stage-canvas--sketch {
  background: #f8fafc;
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
}

.lw-qw-reference-stage-img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 0.25rem;
  box-shadow: 0 4px 24px rgba(15, 23, 42, 0.35);
}

.lw-qw-reference-stage-img--sketch {
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.08);
  border: 1px solid #e2e8f0;
  background: #fff;
}

.lw-qw-reference-stage-future-tools {
  position: absolute;
  bottom: 0.65rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0.35rem;
  padding: 0.25rem 0.35rem;
  background: rgba(15, 23, 42, 0.55);
  border-radius: 999px;
  backdrop-filter: blur(4px);
}

.lw-qw-reference-stage-canvas--sketch .lw-qw-reference-stage-future-tools {
  background: rgba(255, 255, 255, 0.92);
  border: 1px dashed #cbd5e1;
}

.lw-qw-reference-stage-future-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.62rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.75);
  padding: 0.15rem 0.45rem;
  opacity: 0.7;
}

.lw-qw-reference-stage-canvas--sketch .lw-qw-reference-stage-future-chip {
  color: #94a3b8;
}

.lw-qw-reference-stage-footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.45rem 0.85rem;
  background: #fff;
  flex-shrink: 0;
}

.lw-qw-reference-stage-meta {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
}

.lw-qw-reference-stage-meta li {
  font-size: 0.7rem;
  color: #475569;
  line-height: 1.35;
}

.lw-qw-reference-stage-meta .bi {
  color: #94a3b8;
  margin-right: 0.2rem;
}

.lw-qw-reference-stage-meta--measurements {
  flex-direction: column;
  gap: 0.15rem;
}

.lw-qw-reference-stage-footer-end {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-shrink: 0;
  margin-left: auto;
}

.lw-qw-reference-stage-captured {
  font-size: 0.65rem;
  color: #94a3b8;
  white-space: nowrap;
}

.lw-qw-reference-stage-switch {
  display: flex;
  align-items: center;
  gap: 0.45rem;
}

.lw-qw-reference-stage-switch-label {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #94a3b8;
}

.lw-qw-reference-stage-switch-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.55rem;
}

.lw-qw-reference-stage-switch-link {
  font-size: 0.68rem;
  font-weight: 600;
  color: #64748b;
  text-decoration: none;
  line-height: 1.3;
}

.lw-qw-reference-stage-switch-link:hover {
  color: var(--lw-navy);
}

.lw-qw-reference-stage-switch-kind {
  display: inline;
  font-weight: 500;
  color: #94a3b8;
  margin-left: 0.2rem;
}

.lw-qw-workbench--q33.lw-qw-workbench--work-mode .lw-qw-zone--primary {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.lw-qw-workbench--q33.lw-qw-workbench--work-mode .lw-qw-zone-body {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

@media (min-width: 1280px) {
  .lw-qw-reference-stage-canvas {
    min-height: min(44vh, 32rem);
  }

  .lw-qw-workbench--q33.lw-qw-workbench--work-mode .lw-eb-grid,
  .lw-qw-workbench--q33.lw-qw-workbench--work-mode .lw-eb-grid-head {
    grid-template-columns: 4.25rem 1fr 4.25rem 4.75rem 5.5rem 5.5rem;
  }
}

@media (max-width: 1279.98px) {
  body.lw-qw-desktop-workbench::before {
    content: "Desktop workbench exploration — best viewed at 1280px or wider.";
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    color: #b45309;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 0.4rem;
    padding: 0.4rem 0.65rem;
    margin-bottom: 0.5rem;
  }
}

/* ── Q4.1 — Draft quote save feedback ── */

.lw-qw-save-feedback {
  font-size: 0.75rem;
  font-weight: 600;
  color: #166534;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 0.4rem;
  padding: 0.35rem 0.75rem;
  margin: 0 0.85rem 0.5rem;
}

.lw-qw-save-feedback--visible {
  display: block !important;
}

.lw-qw-workbench--draft .lw-qw-header-actions .btn-primary:not(:disabled) {
  box-shadow: 0 0 0 2px rgba(26, 47, 74, 0.08);
}

/* ── Q4.2 — Proposal Preview Overlay + reusable document ── */

body.lw-proposal-preview-open {
  overflow: hidden;
}

.lw-proposal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: flex;
  flex-direction: column;
  pointer-events: none;
}

.lw-proposal-overlay[hidden] {
  display: none !important;
}

.lw-proposal-overlay-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity 220ms ease;
  pointer-events: auto;
  cursor: pointer;
}

.lw-proposal-overlay.is-open .lw-proposal-overlay-backdrop {
  opacity: 1;
}

.lw-proposal-overlay-chrome {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(52rem, calc(100% - 1.5rem));
  max-height: calc(100% - 1.5rem);
  margin: 0.75rem auto;
  background: transparent;
  opacity: 0;
  transform: translateY(0.6rem) scale(0.985);
  transition: opacity 230ms ease, transform 230ms ease;
  pointer-events: none;
}

.lw-proposal-overlay.is-open .lw-proposal-overlay-chrome {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.lw-proposal-overlay-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-shrink: 0;
  padding: 0.65rem 0.85rem;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid var(--lw-border);
  border-bottom: none;
  border-radius: 0.65rem 0.65rem 0 0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.lw-proposal-overlay-toolbar-start {
  min-width: 0;
}

.lw-proposal-overlay-kicker {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #64748b;
}

.lw-proposal-overlay-title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--lw-navy);
  line-height: 1.2;
}

.lw-proposal-overlay-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.4rem;
  flex-shrink: 0;
}

.lw-proposal-overlay-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0 0 1rem;
  background: #e8edf3;
  border: 1px solid var(--lw-border);
  border-top: none;
  border-radius: 0 0 0.65rem 0.65rem;
}

.lw-proposal-sheet {
  margin: 0.85rem auto 0;
  padding: 0 0.85rem 0.5rem;
  width: 100%;
  max-width: 46rem;
}

/* Reusable proposal document (overlay-independent) */
.lw-proposal {
  --lw-proposal-ink: #132337;
  --lw-proposal-muted: #5b6b7c;
  --lw-proposal-line: #d7dee8;
  --lw-proposal-paper: #ffffff;
  --lw-proposal-band: #1a2f4a;
  --lw-proposal-highlight: #f4f7fb;

  background: var(--lw-proposal-paper);
  color: var(--lw-proposal-ink);
  border: 1px solid #cfd8e3;
  border-radius: 0.35rem;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 18px 40px rgba(15, 23, 42, 0.12);
  padding: 1.75rem 1.5rem 1.5rem;
  font-size: 0.92rem;
  line-height: 1.5;
}

@media (min-width: 768px) {
  .lw-proposal {
    padding: 2.25rem 2.35rem 1.85rem;
  }
}

.lw-proposal-header {
  display: flex;
  justify-content: space-between;
  gap: 1.25rem;
  align-items: flex-start;
  padding-bottom: 1.25rem;
  border-bottom: 2px solid var(--lw-proposal-band);
}

.lw-proposal-brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.lw-proposal-logo {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.4rem;
  background: var(--lw-proposal-band);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  flex-shrink: 0;
}

.lw-proposal-company {
  font-family: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Palatino, serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--lw-proposal-band);
  line-height: 1.15;
}

.lw-proposal-brand-tag {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--lw-proposal-muted);
  margin-top: 0.15rem;
}

.lw-proposal-meta {
  text-align: right;
  flex-shrink: 0;
}

.lw-proposal-meta-label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lw-proposal-muted);
}

.lw-proposal-meta-id {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--lw-proposal-band);
  margin: 0.1rem 0 0.35rem;
}

.lw-proposal-meta-row {
  font-size: 0.8rem;
  color: var(--lw-proposal-muted);
}

.lw-proposal-meta-key {
  font-weight: 600;
  margin-right: 0.35rem;
}

.lw-proposal-customer {
  margin-top: 1.35rem;
  padding: 0.85rem 1rem;
  background: var(--lw-proposal-highlight);
  border-left: 3px solid var(--lw-proposal-band);
}

.lw-proposal-customer-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--lw-proposal-muted);
}

.lw-proposal-customer-name {
  font-family: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Palatino, serif;
  font-size: 1.15rem;
  font-weight: 600;
  margin-top: 0.15rem;
}

.lw-proposal-customer-address {
  color: var(--lw-proposal-muted);
  font-size: 0.88rem;
  margin-top: 0.1rem;
}

.lw-proposal-intro {
  margin-top: 1.35rem;
  color: #334155;
}

.lw-proposal-intro p {
  margin: 0;
}

.lw-proposal-section {
  margin-top: 1.5rem;
}

.lw-proposal-section-title {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lw-proposal-band);
  margin: 0 0 0.65rem;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--lw-proposal-line);
}

.lw-proposal-scope {
  color: #243447;
}

.lw-proposal-empty {
  margin: 0;
  color: #94a3b8;
  font-style: italic;
}

.lw-proposal-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
  gap: 0.65rem;
}

.lw-proposal-photo {
  margin: 0;
}

.lw-proposal-photo img,
.lw-proposal-photo-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 0.25rem;
  background: #eef2f7;
  border: 1px solid var(--lw-proposal-line);
}

.lw-proposal-photo-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 1.25rem;
}

.lw-proposal-photo figcaption {
  margin-top: 0.25rem;
  font-size: 0.72rem;
  color: var(--lw-proposal-muted);
  line-height: 1.3;
}

.lw-proposal-estimate-section + .lw-proposal-estimate-section {
  margin-top: 1rem;
}

.lw-proposal-estimate-section-head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: baseline;
  font-weight: 700;
  color: var(--lw-proposal-band);
  margin-bottom: 0.4rem;
  font-size: 0.88rem;
}

.lw-proposal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
}

.lw-proposal-table th {
  background: var(--lw-proposal-band);
  color: #fff;
  font-weight: 600;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.45rem 0.55rem;
  text-align: left;
}

.lw-proposal-table td {
  padding: 0.5rem 0.55rem;
  border-bottom: 1px solid var(--lw-proposal-line);
  vertical-align: top;
}

.lw-proposal-table tbody tr:last-child td {
  border-bottom-color: transparent;
}

.lw-proposal-col-qty,
.lw-proposal-col-unit,
.lw-proposal-col-price,
.lw-proposal-col-amount {
  white-space: nowrap;
  width: 1%;
}

.lw-proposal-col-qty,
.lw-proposal-col-unit,
.lw-proposal-table th.lw-proposal-col-qty,
.lw-proposal-table th.lw-proposal-col-unit {
  text-align: center;
}

.lw-proposal-col-price,
.lw-proposal-col-amount,
.lw-proposal-table th.lw-proposal-col-price,
.lw-proposal-table th.lw-proposal-col-amount {
  text-align: right;
}

.lw-proposal-total {
  margin-top: 1.5rem;
  padding: 1rem 1.15rem;
  background: linear-gradient(180deg, #f7fafc 0%, #eef4f8 100%);
  border: 2px solid var(--lw-proposal-band);
  border-radius: 0.35rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.lw-proposal-total-label {
  font-family: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", Palatino, serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--lw-proposal-band);
}

.lw-proposal-total-amount {
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--lw-proposal-band);
  letter-spacing: -0.02em;
  line-height: 1;
}

.lw-proposal-acceptance {
  margin-top: 1.75rem;
  padding-top: 0.25rem;
}

.lw-proposal-acceptance-hint {
  margin: 0 0 1rem;
  font-size: 0.82rem;
  color: var(--lw-proposal-muted);
}

.lw-proposal-acceptance-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

@media (min-width: 576px) {
  .lw-proposal-acceptance-fields {
    grid-template-columns: 1.4fr 0.8fr;
  }
}

.lw-proposal-sign-line {
  height: 2.25rem;
  border-bottom: 1px solid #94a3b8;
}

.lw-proposal-sign-label {
  margin-top: 0.35rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--lw-proposal-muted);
}

.lw-proposal-footer {
  margin-top: 1.75rem;
  padding-top: 1rem;
  border-top: 1px solid var(--lw-proposal-line);
  text-align: center;
}

.lw-proposal-footer-name {
  font-weight: 700;
  color: var(--lw-proposal-band);
}

.lw-proposal-footer-contact {
  margin-top: 0.2rem;
  font-size: 0.8rem;
  color: var(--lw-proposal-muted);
}

.lw-proposal-footer-dot {
  margin: 0 0.3rem;
  color: #94a3b8;
}

/* ── Q4.3 — Send Quote confirmation + Sent workspace ── */

body.lw-quote-send-open {
  overflow: hidden;
}

.lw-quote-send-panel {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  pointer-events: none;
}

.lw-quote-send-panel[hidden] {
  display: none !important;
}

.lw-quote-send-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity 200ms ease;
  pointer-events: auto;
  cursor: pointer;
}

.lw-quote-send-panel.is-open .lw-quote-send-backdrop {
  opacity: 1;
}

.lw-quote-send-card {
  position: relative;
  z-index: 1;
  width: min(26rem, 100%);
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.65rem;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
  padding: 1.25rem 1.25rem 1.1rem;
  opacity: 0;
  transform: translateY(0.4rem) scale(0.98);
  transition: opacity 220ms ease, transform 220ms ease;
  pointer-events: auto;
}

.lw-quote-send-panel.is-open .lw-quote-send-card {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.lw-quote-send-title {
  margin: 0 0 0.85rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--lw-navy);
}

.lw-quote-send-recipient {
  margin-bottom: 0.75rem;
}

.lw-quote-send-customer {
  font-weight: 700;
  color: #1e293b;
}

.lw-quote-send-email {
  color: #64748b;
  font-size: 0.9rem;
}

.lw-quote-send-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin-bottom: 1rem;
  padding: 0.65rem 0.75rem;
  background: #f8fafc;
  border-radius: 0.4rem;
  font-size: 0.88rem;
}

.lw-quote-send-meta-key {
  color: #64748b;
  margin-right: 0.25rem;
}

.lw-quote-send-message,
.lw-quote-send-email-input {
  width: 100%;
  margin-bottom: 0.85rem;
}

.lw-quote-send-message {
  border: 1px solid var(--lw-border);
  border-radius: 0.4rem;
  padding: 0.55rem 0.65rem;
  font-size: 0.9rem;
  resize: vertical;
  min-height: 5.5rem;
}

.lw-quote-send-message:focus {
  outline: none;
  border-color: #94a3b8;
  box-shadow: 0 0 0 3px rgba(26, 47, 74, 0.08);
}

.lw-quote-send-body {
  color: #475569;
  font-size: 0.92rem;
  margin: 0 0 0.85rem;
}

.lw-quote-send-error {
  color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 0.35rem;
  padding: 0.45rem 0.6rem;
  font-size: 0.82rem;
  margin-bottom: 0.75rem;
}

.lw-quote-send-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.45rem;
  margin-top: 0.25rem;
}

.lw-qw-sent-banner {
  margin: 0 0.85rem 0.65rem;
  padding: 0.75rem 0.9rem;
  background: linear-gradient(180deg, #eff6ff 0%, #f8fbff 100%);
  border: 1px solid #bfdbfe;
  border-radius: 0.5rem;
}

.lw-qw-sent-banner-title {
  font-weight: 700;
  color: var(--lw-navy);
  font-size: 0.95rem;
}

.lw-qw-sent-banner-detail {
  margin-top: 0.15rem;
  font-size: 0.84rem;
  color: #475569;
}

.lw-qw-sent-banner-next {
  margin-top: 0.35rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #1d4ed8;
}

.lw-qw-zone-note {
  font-size: 0.75rem;
  font-weight: 600;
  color: #64748b;
}

.lw-eb--readonly .lw-eb-scope-input[readonly] {
  background: #f8fafc;
  color: #334155;
  resize: none;
}

.lw-eb-row--readonly .lw-eb-readonly-text {
  font-size: 0.84rem;
  color: #334155;
  padding: 0.35rem 0.15rem;
}

@media (max-width: 575.98px) {
  .lw-proposal-header {
    flex-direction: column;
  }

  .lw-proposal-meta {
    text-align: left;
  }

  .lw-proposal-overlay-chrome {
    width: calc(100% - 0.75rem);
    max-height: calc(100% - 0.75rem);
    margin: 0.35rem auto;
  }

  .lw-proposal-total {
    flex-direction: column;
    align-items: flex-start;
  }

  .lw-proposal-total-amount {
    font-size: 1.45rem;
  }

  .lw-proposal-col-unit,
  .lw-proposal-table th.lw-proposal-col-unit,
  .lw-proposal-col-price,
  .lw-proposal-table th.lw-proposal-col-price {
    display: none;
  }
}


/* ── O1.2 — Close Request dialog ── */

body.lw-request-close-open {
  overflow: hidden;
}

.lw-request-close-panel {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  pointer-events: none;
}

.lw-request-close-panel[hidden] {
  display: none !important;
}

.lw-request-close-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity 200ms ease;
  pointer-events: auto;
  cursor: pointer;
}

.lw-request-close-panel.is-open .lw-request-close-backdrop {
  opacity: 1;
}

.lw-request-close-card {
  position: relative;
  z-index: 1;
  width: min(28rem, 100%);
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.65rem;
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
  padding: 1.25rem 1.25rem 1.1rem;
  opacity: 0;
  transform: translateY(0.4rem) scale(0.98);
  transition: opacity 220ms ease, transform 220ms ease;
  pointer-events: auto;
}

.lw-request-close-panel.is-open .lw-request-close-card {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.lw-request-close-title {
  margin: 0 0 0.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--lw-navy);
}

.lw-request-close-body {
  margin: 0 0 0.85rem;
  font-size: 0.9rem;
  color: #64748b;
}

.lw-request-close-reason,
.lw-request-close-message {
  width: 100%;
  margin-bottom: 0.75rem;
}

.lw-request-close-message {
  display: block;
  border: 1px solid var(--lw-border);
  border-radius: 0.4rem;
  padding: 0.55rem 0.65rem;
  font-size: 0.9rem;
  resize: vertical;
  min-height: 6rem;
}

.lw-request-close-error {
  margin-bottom: 0.65rem;
  font-size: 0.85rem;
  color: #b91c1c;
}

.lw-request-close-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-top: 0.85rem;
}


/* Opportunity Workspace — polished field notebook */
body.lw-opportunity-page .lw-content,
.lw-content:has(.lw-opportunity-workspace) {
  background: #f5f7fa;
}

.lw-opportunity-workspace {
  max-width: 72rem;
}

.lw-opportunity-header {
  margin-bottom: 0.75rem;
}

.lw-opportunity-header-meta {
  font-size: 0.92rem;
}

.lw-opportunity-header-sep {
  margin: 0 0.4rem;
  color: #94a3b8;
}

.lw-opportunity-save-state {
  color: #64748b;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  justify-content: flex-end;
  align-items: center;
}

.lw-opportunity-save-clean,
.lw-opportunity-save-dirty {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.lw-save-emphasis {
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}

.lw-opportunity-flash {
  color: #166534;
  background: #ecfdf5;
  border: 1px solid #bbf7d0;
  border-radius: 0.4rem;
  padding: 0.4rem 0.7rem;
}

.lw-opportunity-section-nav {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  gap: 0.15rem;
  overflow-x: auto;
  margin: 0 0 1rem;
  padding: 0.15rem 0.15rem 0;
  background: rgba(245, 247, 250, 0.96);
  border-bottom: 1px solid var(--lw-border);
  -webkit-overflow-scrolling: touch;
}

.lw-opportunity-section-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
  padding: 0.55rem 0.7rem;
  color: #64748b;
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 500;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}

.lw-opportunity-section-tab:hover {
  color: #334155;
}

.lw-opportunity-section-tab.is-active {
  color: #2563eb;
  font-weight: 600;
  border-bottom-color: #2563eb;
}

.lw-opp-card {
  border: 1px solid #e2e8f0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.lw-opp-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.lw-opp-card-icon {
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.9rem;
}

.lw-opp-card-icon--sm {
  width: 1.55rem;
  height: 1.55rem;
  font-size: 0.8rem;
}

.lw-opp-card-icon--blue { background: #dbeafe; color: #1d4ed8; }
.lw-opp-card-icon--amber { background: #ffedd5; color: #c2410c; }
.lw-opp-card-icon--green { background: #dcfce7; color: #15803d; }
.lw-opp-card-icon--teal { background: #ccfbf1; color: #0f766e; }
.lw-opp-card-icon--purple { background: #ede9fe; color: #6d28d9; }
.lw-opp-card-icon--gray { background: #e2e8f0; color: #475569; }

.lw-opp-card-header .lw-opp-card-icon + .lw-card-title,
.lw-opp-card-header > div {
  display: inline-flex;
}

.lw-opp-card-header > .d-flex {
  align-items: center;
}

.lw-opp-about-callout {
  background: #eff6ff;
  border: 1px solid #dbeafe;
  border-radius: 0.5rem;
  padding: 0.85rem 0.95rem;
  height: 100%;
}

.lw-opp-kv {
  display: grid;
  gap: 0.45rem 0;
}

.lw-opp-kv-row {
  display: grid;
  grid-template-columns: 8.5rem 1fr;
  gap: 0.5rem;
  align-items: baseline;
}

.lw-opp-kv-row dt {
  color: #64748b;
  font-weight: 500;
  margin: 0;
}

.lw-opp-kv-row dd {
  margin: 0;
}

.lw-opp-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
}

.lw-opportunity-request-quote {
  margin: 0;
  padding: 0.75rem 0.9rem;
  border-left: 3px solid #f59e0b;
  background: #f8fafc;
  font-size: 0.92rem;
  white-space: pre-wrap;
  color: #334155;
  border-radius: 0 0.35rem 0.35rem 0;
}

.lw-evidence-subnav {
  display: flex;
  gap: 0.15rem;
  overflow-x: auto;
  margin-bottom: 0.85rem;
  border-bottom: 1px solid var(--lw-border);
}

.lw-evidence-subnav-item {
  border: 0;
  background: transparent;
  color: #64748b;
  font-size: 0.82rem;
  font-weight: 500;
  padding: 0.45rem 0.65rem;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}

.lw-evidence-subnav-item.is-active {
  color: #2563eb;
  font-weight: 600;
  border-bottom-color: #2563eb;
}

.lw-evidence-subnav-item:disabled {
  opacity: 0.55;
  cursor: default;
}

.lw-evidence-count {
  color: inherit;
  opacity: 0.75;
  margin-left: 0.15rem;
}

.lw-opportunity-sketch-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.lw-opportunity-sketch-card {
  display: flex;
  gap: 0.7rem;
  align-items: flex-start;
  padding: 0.65rem;
  border: 1px solid var(--lw-border);
  border-radius: 0.5rem;
  background: #fff;
}

.lw-opportunity-sketch-thumb {
  flex-shrink: 0;
  width: 4.75rem;
  height: 3.5rem;
  border-radius: 0.35rem;
  overflow: hidden;
  border: 1px solid var(--lw-border);
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lw-opportunity-sketch-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.lw-opportunity-sketch-thumb-placeholder {
  color: #94a3b8;
  font-size: 1.1rem;
}

.lw-opportunity-sketch-meta {
  flex: 1;
  min-width: 0;
}

.lw-opportunity-activity-item + .lw-opportunity-activity-item {
  margin-top: 0.7rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--lw-border);
}

.lw-opportunity-activity-date {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #64748b;
  margin-bottom: 0.1rem;
}

.lw-opportunity-continuity-flow {
  display: flex;
  align-items: center;
  font-weight: 600;
  color: #334155;
}

.lw-opp-side-card .lw-opp-card-header {
  justify-content: flex-start;
}

.lw-opp-continuity-card {
  background: #fffbeb;
  border-color: #fcd34d;
}

.lw-opp-continuity-card .lw-card-header {
  background: transparent;
  border-bottom-color: rgba(252, 211, 77, 0.45);
}

@media (max-width: 767.98px) {
  .lw-opportunity-sketch-grid {
    grid-template-columns: 1fr;
  }

  .lw-opp-kv-row {
    grid-template-columns: 1fr;
    gap: 0.1rem;
  }
}

/* Opportunity Sketch Editor — maximized canvas */
body.lw-opportunity-sketch-body .lw-topbar,
body.lw-opportunity-sketch-body .lw-footer,
body.lw-opportunity-sketch-body .lw-sidebar {
  display: none !important;
}

body.lw-opportunity-sketch-body .lw-content {
  padding: 0;
  max-width: none;
  background: #e2e8f0;
}

body.lw-opportunity-sketch-body .lw-main {
  width: 100%;
}

.lw-opportunity-sketch-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: #e2e8f0;
}

.lw-opportunity-sketch-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.85rem;
  background: #fff;
  border-bottom: 1px solid var(--lw-border);
  flex-shrink: 0;
}

.lw-opportunity-sketch-name {
  max-width: 14rem;
  font-weight: 600;
  display: inline-block;
  width: auto;
}

.lw-opportunity-sketch-body {
  flex: 1;
  display: flex;
  min-height: 0;
}

.lw-opportunity-sketch-rail {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.55rem 0.4rem;
  background: #fff;
  border-right: 1px solid var(--lw-border);
  flex-shrink: 0;
  overflow-y: auto;
}

.lw-opportunity-sketch-board {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: 1.4rem 1fr;
  grid-template-rows: 1.4rem 1fr;
}

.lw-sketch-ruler-corner {
  background: #f1f5f9;
  border-right: 1px solid #cbd5e1;
  border-bottom: 1px solid #cbd5e1;
}

.lw-sketch-ruler {
  position: relative;
  background: #f8fafc;
}

.lw-sketch-ruler--top {
  border-bottom: 1px solid #cbd5e1;
}

.lw-sketch-ruler--left {
  border-right: 1px solid #cbd5e1;
}

.lw-sketch-ruler-tick {
  position: absolute;
  background: #94a3b8;
}

.lw-sketch-ruler--top .lw-sketch-ruler-tick {
  top: 60%;
  width: 1px;
  height: 35%;
}

.lw-sketch-ruler--top .lw-sketch-ruler-tick.is-major {
  top: 35%;
  height: 60%;
  background: #64748b;
}

.lw-sketch-ruler--left .lw-sketch-ruler-tick {
  left: 60%;
  height: 1px;
  width: 35%;
}

.lw-sketch-ruler--left .lw-sketch-ruler-tick.is-major {
  left: 35%;
  width: 60%;
  background: #64748b;
}

.lw-opportunity-sketch-stage {
  position: relative;
  min-width: 0;
  min-height: 0;
  background: #cbd5e1;
  padding: 0.45rem;
}

.lw-opportunity-sketch-canvas {
  width: 100%;
  height: 100%;
  display: block;
  background: #fff;
  border: 1px solid #94a3b8;
  border-radius: 0.2rem;
  cursor: crosshair;
  touch-action: none;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
}

.lw-opportunity-sketch-tool {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border: 1px solid transparent;
  border-radius: 0.4rem;
  background: transparent;
  color: #475569;
  padding: 0;
}

.lw-opportunity-sketch-tool i {
  font-size: 1.05rem;
}

.lw-opportunity-sketch-tool.is-active,
.lw-opportunity-sketch-tool:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: #0f172a;
}

.lw-opportunity-sketch-tool:disabled {
  opacity: 0.4;
}

.lw-opportunity-sketch-tool-sep {
  height: 1px;
  width: 100%;
  background: var(--lw-border);
  margin: 0.2rem 0;
}

.lw-opportunity-sketch-text-prompt {
  position: fixed;
  z-index: 40;
  display: flex;
  gap: 0.35rem;
  padding: 0.4rem;
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 0.4rem;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.12);
}

.lw-opportunity-sketch-text-prompt input {
  width: 10rem;
}

.lw-opportunity-sketch-status {
  text-align: center;
  margin: 0;
  padding: 0.35rem;
  background: #fff;
  border-top: 1px solid var(--lw-border);
}

@media (max-width: 767.98px) {
  .lw-opportunity-sketch-body {
    flex-direction: column;
  }

  .lw-opportunity-sketch-rail {
    flex-direction: row;
    order: 2;
    border-right: 0;
    border-top: 1px solid var(--lw-border);
    overflow-x: auto;
    padding: 0.45rem;
  }

  .lw-opportunity-sketch-tool-sep {
    width: 1px;
    height: auto;
    align-self: stretch;
    margin: 0 0.2rem;
  }

  .lw-opportunity-sketch-name {
    max-width: 8.5rem;
  }
}

/* —— Walkthrough Workspace / Capture Station (W1.7a) —— */
.lw-walkthrough-workspace {
  max-width: 1480px;
}

.lw-walkthrough-header-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  gap: 0.65rem 1.25rem;
}

.lw-walkthrough-header-meta > div {
  min-width: 0;
}

.lw-walkthrough-header-meta dt {
  margin: 0;
  font-size: 0.72rem;
  color: #64748b;
  font-weight: 500;
}

.lw-walkthrough-header-meta dd {
  margin: 0.1rem 0 0;
  font-weight: 600;
  font-size: 0.92rem;
}

.lw-walkthrough-capture-tools {
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 0.5rem 0 0.65rem;
  background: rgba(245, 247, 250, 0.96);
  border-bottom: 1px solid var(--lw-border, #e2e8f0);
}

.lw-walkthrough-capture-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
}

@media (max-width: 767.98px) {
  .lw-walkthrough-capture-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.lw-walkthrough-capture-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 5.25rem;
  padding: 0.75rem 0.5rem;
  color: var(--lw-navy, #1e3a5f);
  background: #fff;
  border: 2px solid var(--lw-border, #e2e8f0);
  border-radius: 0.65rem;
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.lw-walkthrough-capture-btn:hover {
  border-color: var(--lw-navy, #1e3a5f);
  background: #f8fafc;
}

.lw-walkthrough-capture-btn:focus-visible {
  outline: 3px solid rgba(30, 58, 95, 0.35);
  outline-offset: 2px;
}

.lw-walkthrough-capture-btn.is-active {
  border-color: var(--lw-navy, #1e3a5f);
  background: #eef3f8;
  box-shadow: inset 0 0 0 1px var(--lw-navy, #1e3a5f);
}

.lw-walkthrough-capture-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  font-size: 1.35rem;
  border-radius: 999px;
  background: var(--lw-surface, #f8fafc);
  border: 1px solid var(--lw-border, #e2e8f0);
}

.lw-walkthrough-capture-btn.is-active .lw-walkthrough-capture-btn-icon {
  background: var(--lw-navy, #1e3a5f);
  border-color: var(--lw-navy, #1e3a5f);
  color: #fff;
}

.lw-walkthrough-capture-btn-label {
  display: block;
}

.lw-walkthrough-recent-list {
  margin: 0;
}

.lw-walkthrough-recent-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 0;
}

.lw-walkthrough-recent-item + .lw-walkthrough-recent-item {
  border-top: 1px solid var(--lw-border, #e2e8f0);
}

.lw-walkthrough-recent-icon {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.45rem;
  background: var(--lw-surface, #f8fafc);
  border: 1px solid var(--lw-border, #e2e8f0);
  color: var(--lw-navy, #1e3a5f);
}

.lw-walkthrough-recent-body {
  flex: 1 1 auto;
}

.lw-walkthrough-job-details-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
}

.lw-walkthrough-job-dl > div {
  padding: 0.65rem 0;
}

.lw-walkthrough-job-dl > div + div {
  border-top: 1px solid var(--lw-border, #e2e8f0);
}

.lw-walkthrough-job-dl dt {
  margin: 0 0 0.2rem;
  font-size: 0.72rem;
  color: #64748b;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.lw-walkthrough-job-dl dd {
  margin: 0;
}

.lw-walkthrough-notebook-fields {
  max-width: 40rem;
}

.lw-walkthrough-tool-stage {
  margin-top: 0.25rem;
}

.lw-walkthrough-header--completed {
  border-left: 3px solid #198754;
}

.lw-walkthrough-nav {
  position: sticky;
  top: 0;
  z-index: 20;
  margin-bottom: 1rem;
  padding: 0.35rem 0 0.15rem;
  background: rgba(245, 247, 250, 0.96);
  border-bottom: 1px solid var(--lw-border, #e2e8f0);
  -webkit-overflow-scrolling: touch;
}

.lw-walkthrough-nav .nav-link.active {
  background: var(--lw-navy);
  color: #fff;
}

.lw-walkthrough-workspace [data-lw-wt-section] {
  scroll-margin-top: 3.25rem;
}

.lw-walkthrough-stat-card {
  padding: 0.85rem 1rem;
  background: var(--lw-surface, #f8fafc);
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.5rem;
  height: 100%;
}

.lw-walkthrough-stat-card--accent {
  border-left: 3px solid var(--lw-navy, #1e3a5f);
  background: #fff;
}

.lw-walkthrough-purpose-chip {
  display: inline-block;
  margin: 0.15rem 0.15rem 0 0;
  padding: 0.1rem 0.4rem;
  font-size: 0.72rem;
  color: #64748b;
  background: #fff;
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.25rem;
}

.lw-walkthrough-purpose-chip.is-current {
  color: var(--lw-navy, #1e3a5f);
  border-color: var(--lw-navy, #1e3a5f);
  font-weight: 600;
}

.lw-walkthrough-continuity-card {
  border-left: 3px solid #d97706;
  background: #fffbeb;
}

.lw-walkthrough-continuity-card .lw-card-header {
  background: transparent;
}

.lw-walkthrough-photo-grid .lw-walkthrough-photo-thumb img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.lw-walkthrough-photo-placeholder {
  width: 100%;
  aspect-ratio: 1;
  background: var(--lw-surface, #f8fafc);
  font-size: 1.5rem;
}

.lw-walkthrough-timeline-item .fw-semibold {
  font-size: 0.95rem;
}

.lw-walkthrough-timeline-item--upcoming {
  opacity: 0.72;
}

.lw-walkthrough-field-notebook .lw-card-body {
  padding-top: 1.15rem;
  padding-bottom: 1.35rem;
}

.lw-walkthrough-notebook-hints {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.lw-walkthrough-notebook-hint {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  font-size: 0.75rem;
  color: #64748b;
  background: var(--lw-surface, #f8fafc);
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.25rem;
}

.lw-walkthrough-notebook-textarea {
  min-height: 6.5rem;
  line-height: 1.55;
  font-size: 0.95rem;
  resize: vertical;
}

.lw-walkthrough-notebook-section + .lw-walkthrough-notebook-section {
  padding-top: 0.25rem;
}

.lw-walkthrough-visit-header {
  padding-top: 0.15rem;
}

.lw-walkthrough-visit-summary {
  background: #fff;
}

.lw-walkthrough-current-visit-card {
  border-left: 3px solid var(--lw-navy, #1e3a5f);
}

.lw-walkthrough-visit-dl dt {
  font-weight: 400;
}

.lw-walkthrough-evidence-summary {
  border-left: 3px solid #0f766e;
  background: #f0fdfa;
}

.lw-walkthrough-evidence-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.25rem;
  overflow-x: auto;
  padding-bottom: 0.15rem;
  -webkit-overflow-scrolling: touch;
}

.lw-walkthrough-evidence-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
  padding: 0.4rem 0.65rem;
  font-size: 0.8rem;
  font-weight: 500;
  color: #64748b;
  background: var(--lw-surface, #f8fafc);
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.375rem;
  white-space: nowrap;
}

.lw-walkthrough-evidence-tab:hover:not(:disabled) {
  color: #334155;
  border-color: #cbd5e1;
}

.lw-walkthrough-evidence-tab.is-active {
  color: #fff;
  background: var(--lw-navy, #1e3a5f);
  border-color: var(--lw-navy, #1e3a5f);
}

.lw-walkthrough-evidence-tab.is-disabled,
.lw-walkthrough-evidence-tab:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.lw-walkthrough-evidence-count {
  display: inline-block;
  min-width: 1.1rem;
  padding: 0 0.3rem;
  font-size: 0.7rem;
  font-weight: 600;
  text-align: center;
  color: inherit;
  background: rgba(15, 23, 42, 0.08);
  border-radius: 999px;
}

.lw-walkthrough-evidence-tab.is-active .lw-walkthrough-evidence-count {
  background: rgba(255, 255, 255, 0.2);
}

.lw-walkthrough-evidence-card {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  height: 100%;
  padding: 0.65rem 0.75rem;
  background: #fff;
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.4rem;
}

.lw-walkthrough-photo-card {
  display: block;
  padding: 0;
  overflow: hidden;
}

.lw-walkthrough-photo-card-img,
.lw-walkthrough-photo-card .lw-walkthrough-photo-placeholder {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
  background: var(--lw-surface, #f8fafc);
}

.lw-walkthrough-photo-card .lw-walkthrough-evidence-card-body {
  padding: 0.45rem 0.55rem 0.55rem;
}

.lw-walkthrough-evidence-card-icon {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #475569;
  background: var(--lw-surface, #f8fafc);
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.35rem;
  font-size: 1rem;
}

.lw-walkthrough-photo-open {
  cursor: pointer;
  padding: 0;
  background: #fff;
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.4rem;
  overflow: hidden;
}

.lw-walkthrough-photo-open:hover {
  border-color: #94a3b8;
}

.lw-walkthrough-photo-open:focus-visible {
  outline: 2px solid var(--lw-navy, #1e3a5f);
  outline-offset: 2px;
}

body.lw-wt-gallery-open {
  overflow: hidden;
}

.lw-wt-gallery {
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding: 0.75rem;
}

.lw-wt-gallery[hidden] {
  display: none !important;
}

.lw-wt-gallery-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
}

.lw-wt-gallery-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(1100px, 100%);
  max-height: calc(100vh - 1.5rem);
  margin: auto;
  background: #fff;
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.5rem;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.2);
  overflow: hidden;
}

.lw-wt-gallery-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--lw-border, #e2e8f0);
  background: #f8fafc;
}

.lw-wt-gallery-body {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.85fr);
  min-height: 0;
  flex: 1;
}

.lw-wt-gallery-stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 18rem;
  background: #0f172a;
  padding: 1rem 2.75rem;
}

.lw-wt-gallery-frame {
  width: 100%;
  max-height: min(70vh, 32rem);
  display: flex;
  align-items: center;
  justify-content: center;
}

.lw-wt-gallery-image {
  max-width: 100%;
  max-height: min(70vh, 32rem);
  object-fit: contain;
  border-radius: 0.25rem;
}

.lw-wt-gallery-placeholder {
  width: min(100%, 20rem);
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  background: #1e293b;
  border-radius: 0.35rem;
  font-size: 2rem;
}

.lw-wt-gallery-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.25rem;
  height: 2.25rem;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #0f172a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.lw-wt-gallery-nav:disabled {
  opacity: 0.4;
}

.lw-wt-gallery-nav--prev {
  left: 0.5rem;
}

.lw-wt-gallery-nav--next {
  right: 0.5rem;
}

.lw-wt-gallery-details {
  padding: 1rem;
  overflow: auto;
  border-left: 1px solid var(--lw-border, #e2e8f0);
  background: #fff;
}

.lw-wt-gallery-meta > div {
  margin-bottom: 0.75rem;
}

.lw-wt-gallery-meta dt {
  color: #64748b;
  font-weight: 500;
  margin-bottom: 0.15rem;
}

.lw-wt-gallery-meta dd {
  margin: 0;
  font-weight: 600;
}

.lw-wt-gallery-note {
  font-weight: 400 !important;
  white-space: pre-wrap;
}

.lw-wt-gallery-annotate,
.lw-wt-gallery-remove {
  padding-top: 0.75rem;
  border-top: 1px solid var(--lw-border, #e2e8f0);
}

@media (max-width: 900px) {
  .lw-wt-gallery-body {
    grid-template-columns: 1fr;
    overflow: auto;
  }

  .lw-wt-gallery-details {
    border-left: 0;
    border-top: 1px solid var(--lw-border, #e2e8f0);
  }

  .lw-wt-gallery-stage {
    min-height: 14rem;
    padding: 0.75rem 2.5rem;
  }
}

/* —— Walkthrough Measurements (W1.5a) —— */
.lw-walkthrough-sketch-placeholder {
  padding: 0.35rem 0.55rem;
  background: var(--lw-surface, #f8fafc);
  border: 1px dashed var(--lw-border, #e2e8f0);
  border-radius: 0.35rem;
  display: inline-block;
}

.lw-walkthrough-measurement-form-panel {
  padding: 0.85rem 1rem;
  background: #fff;
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.45rem;
}

.lw-walkthrough-measurement-group {
  padding: 0.85rem 1rem;
  background: #fff;
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.45rem;
}

.lw-walkthrough-measurement-group-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
}

.lw-walkthrough-measurement-list {
  border-top: 1px solid var(--lw-border, #e2e8f0);
  padding-top: 0.35rem;
}

.lw-walkthrough-measurement-entry {
  padding: 0.55rem 0;
}

.lw-walkthrough-measurement-entry + .lw-walkthrough-measurement-entry {
  border-top: 1px solid #f1f5f9;
}

.lw-walkthrough-measurement-entry-main {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.lw-walkthrough-measurement-total {
  min-width: 6.5rem;
  padding: 0.25rem 0.5rem;
  background: #f0fdfa;
  border: 1px solid #99f6e4;
  border-radius: 0.35rem;
}

.lw-walkthrough-measurement-total .fw-semibold {
  color: #0f766e;
  font-size: 0.95rem;
}

.lw-walkthrough-measurement-empty {
  padding: 1.25rem 1rem;
  text-align: center;
  background: var(--lw-surface, #f8fafc);
  border: 1px dashed var(--lw-border, #e2e8f0);
  border-radius: 0.45rem;
}

.lw-walkthrough-measurement-remove-panel {
  padding: 0.75rem 0.85rem;
  background: #fff7ed;
  border: 1px solid #fdba74;
  border-radius: 0.4rem;
}

@media (max-width: 768px) {
  .lw-walkthrough-measurement-group-header {
    flex-direction: column;
  }

  .lw-walkthrough-measurement-entry-main {
    flex-direction: column;
  }

  .lw-walkthrough-measurement-total {
    align-self: stretch;
    text-align: left !important;
  }
}

/* —— Field Sketch (W1.5b) —— */
.lw-walkthrough-meas-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.lw-walkthrough-meas-subtab {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-height: 2.25rem;
  padding: 0.35rem 0.75rem;
  font-size: 0.85rem;
  font-weight: 500;
  color: #64748b;
  background: var(--lw-surface, #f8fafc);
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.375rem;
}

.lw-walkthrough-meas-subtab.is-active {
  color: #fff;
  background: var(--lw-navy, #1e3a5f);
  border-color: var(--lw-navy, #1e3a5f);
}

.lw-walkthrough-meas-subtab-badge {
  font-size: 0.68rem;
  font-weight: 600;
  padding: 0.1rem 0.35rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
}

.lw-walkthrough-meas-subtab:not(.is-active) .lw-walkthrough-meas-subtab-badge {
  background: #ecfdf5;
  color: #0f766e;
}

.lw-field-sketch-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.65rem;
}

.lw-field-sketch-tool {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  min-height: 2.35rem;
  padding: 0.3rem 0.55rem;
  font-size: 0.78rem;
  font-weight: 500;
  color: #475569;
  background: #fff;
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.35rem;
}

.lw-field-sketch-tool.is-active {
  color: #0f766e;
  background: #f0fdfa;
  border-color: #0f766e;
  box-shadow: inset 0 0 0 1px #0f766e;
}

.lw-field-sketch-tool span {
  white-space: nowrap;
}

.lw-field-sketch-toolbar-sep {
  width: 1px;
  align-self: stretch;
  margin: 0 0.15rem;
  background: var(--lw-border, #e2e8f0);
}

.lw-field-sketch-stylebar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.65rem;
}

.lw-sketch-grid-controls {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

.lw-sketch-grid-spacing {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0;
}

.lw-sketch-grid-spacing-select {
  width: auto;
  min-width: 3.5rem;
  padding-top: 0.2rem;
  padding-bottom: 0.2rem;
  font-size: 0.78rem;
}

.lw-field-sketch-swatch {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  border: 2px solid #cbd5e1;
  padding: 0;
  cursor: pointer;
}

.lw-field-sketch-swatch.is-active {
  outline: 2px solid #0f766e;
  outline-offset: 2px;
  border-color: #0f766e;
  box-shadow: inset 0 0 0 2px #fff;
}

.lw-swatch-black { background: #111827; }
.lw-swatch-white { background: #fff; border-color: #94a3b8; }
.lw-swatch-red { background: #dc2626; }
.lw-swatch-yellow { background: #ca8a04; }
.lw-swatch-blue { background: #2563eb; }

.lw-field-sketch-width {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  min-height: 2.1rem;
  padding: 0.25rem 0.5rem;
  font-size: 0.72rem;
  color: #475569;
  background: #fff;
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.35rem;
}

.lw-field-sketch-width.is-active {
  color: #0f766e;
  border-color: #0f766e;
  box-shadow: inset 0 0 0 1px #0f766e;
  background: #f0fdfa;
}

.lw-width-line {
  display: inline-block;
  width: 1.1rem;
  background: currentColor;
  border-radius: 999px;
}

.lw-width-thin { height: 2px; }
.lw-width-medium { height: 3px; }
.lw-width-thick { height: 5px; }

.lw-field-sketch-stage {
  position: relative;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  overscroll-behavior: contain;
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.45rem;
  background: #f8fafc;
  touch-action: none;
}

.lw-field-sketch-canvas {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  touch-action: none;
  cursor: crosshair;
  vertical-align: top;
}

.lw-field-sketch-empty {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  text-align: center;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.72), rgba(248, 250, 252, 0.55));
}

.lw-field-sketch-reference {
  padding: 0.85rem 0.9rem;
  background: #fff;
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.45rem;
  height: 100%;
}

.lw-field-sketch-ref-list {
  max-height: 22rem;
  overflow: auto;
}

.lw-field-sketch-ref-item {
  padding: 0.45rem 0;
  border-top: 1px solid #f1f5f9;
}

.lw-field-sketch-ref-item:first-child {
  border-top: 0;
  padding-top: 0;
}

.lw-field-sketch-clear-panel {
  padding: 0.75rem 0.85rem;
  background: #fff7ed;
  border: 1px solid #fdba74;
  border-radius: 0.4rem;
}

@media (max-width: 768px) {
  .lw-field-sketch-tool span {
    display: none;
  }

  .lw-field-sketch-tool {
    min-width: 2.5rem;
    justify-content: center;
  }
}

/* —— Photo Markup Workspace (W1.x) —— */
body.lw-photo-markup-open {
  overflow: hidden;
}

.lw-photo-markup {
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: flex;
  align-items: stretch;
  justify-content: center;
}

.lw-photo-markup[hidden] {
  display: none !important;
}

.lw-photo-markup-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
}

.lw-photo-markup-panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(1100px, calc(100vw - 1.5rem));
  max-height: calc(100vh - 1.5rem);
  margin: 0.75rem;
  background: #fff;
  border-radius: 0.6rem;
  box-shadow: 0 18px 48px rgba(15, 23, 42, 0.28);
  overflow: hidden;
}

.lw-photo-markup-toolbar-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid #e2e8f0;
}

.lw-photo-markup-body {
  padding: 0.85rem 1rem 1rem;
  overflow: auto;
}

.lw-photo-markup-stage {
  min-height: 320px;
}

.lw-sketch-toast {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 1200;
  max-width: min(22rem, calc(100vw - 2rem));
  padding: 0.7rem 0.95rem;
  background: #0f172a;
  color: #f8fafc;
  border-radius: 0.45rem;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.28);
  font-size: 0.9rem;
  animation: lw-sketch-toast-in 180ms ease-out;
}

@keyframes lw-sketch-toast-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.lw-sketch-toast.is-leaving {
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 200ms ease, transform 200ms ease;
}

/* —— W1.6 Completion review & read-only —— */
body.lw-wt-modal-open {
  overflow: hidden;
}

.lw-walkthrough-header--completed {
  border-left: 3px solid #15803d;
}

.lw-walkthrough-completed-summary {
  padding: 0.85rem 1rem;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 0.5rem;
}

.lw-walkthrough-current-visit-card--completed {
  border-left-color: #15803d;
}

.lw-walkthrough-notebook-readonly {
  min-height: 4rem;
  padding: 0.65rem 0.75rem;
  line-height: 1.55;
  font-size: 0.95rem;
  background: var(--lw-surface, #f8fafc);
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.375rem;
  white-space: pre-wrap;
}

.lw-wt-completion-review {
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 1.25rem 0.75rem;
  overflow-y: auto;
}

.lw-wt-completion-review[hidden] {
  display: none !important;
}

.lw-wt-completion-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}

.lw-wt-completion-panel {
  position: relative;
  z-index: 1;
  width: min(640px, 100%);
  margin: 1.5rem auto;
  background: #fff;
  border: 1px solid var(--lw-border, #e2e8f0);
  border-radius: 0.5rem;
  box-shadow: 0 12px 40px rgba(15, 23, 42, 0.18);
}

.lw-wt-completion-panel--narrow {
  width: min(440px, 100%);
}

.lw-wt-completion-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--lw-border, #e2e8f0);
}

.lw-wt-completion-body {
  padding: 1rem;
}

@media (max-width: 768px) {
  .lw-wt-completion-review {
    padding: 0.5rem;
  }

  .lw-wt-completion-panel {
    margin: 0.5rem auto;
  }
}

.lw-dev-badge {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  background: rgba(45, 138, 94, 0.16);
  color: var(--lw-accent);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.lw-login-body {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at top left, rgba(45, 138, 94, 0.12), transparent 28rem),
    var(--lw-surface);
}

.lw-login-shell {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

.lw-login-card {
  width: min(26rem, 100%);
  background: #fff;
  border: 1px solid var(--lw-border);
  border-radius: 1rem;
  box-shadow: 0 18px 40px rgba(26, 47, 74, 0.08);
  padding: 2rem 1.75rem 1.5rem;
}

.lw-login-brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  color: var(--lw-navy);
}

.lw-login-brand i {
  font-size: 1.6rem;
}

.lw-login-brand h1 {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 700;
}

.lw-login-project {
  margin: 0.85rem 0 0.45rem;
  color: #64748b;
  font-size: 0.85rem;
  font-weight: 600;
}

.lw-login-lead {
  margin: 1.35rem 0 1rem;
  color: var(--lw-navy);
  font-size: 1.05rem;
  font-weight: 600;
}

.lw-login-error {
  margin-bottom: 1rem;
  padding: 0.7rem 0.85rem;
  border-radius: 0.6rem;
  background: #fff8f7;
  color: var(--lw-navy);
  border: 1px solid #f1d5d1;
  font-size: 0.9rem;
}

.lw-login-submit {
  background: var(--lw-navy);
  color: #fff;
  font-weight: 600;
  padding: 0.6rem 1rem;
  border-radius: 0.6rem;
}

.lw-login-submit:hover,
.lw-login-submit:focus {
  background: var(--lw-navy-light);
  color: #fff;
}

.lw-login-notice {
  margin-top: 1.5rem;
  padding-top: 1.15rem;
  border-top: 1px solid var(--lw-border);
}

.lw-login-notice h2 {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--lw-navy);
}

.lw-login-notice p {
  margin: 0;
  color: #64748b;
  font-size: 0.82rem;
  line-height: 1.45;
}
