/* ============================================================
   CRA — Licensed Firms
   Consistent design language matching publications/guidelines/contact
   ============================================================ */

:root {
  --lf-ink: #1a1a1a;
  --lf-ink-soft: #5a6470;
  --lf-ink-muted: #6a7378;
  --lf-ink-faint: #9aa3ab;
  --lf-rule: #e6e6e0;
  --lf-rule-soft: #f0f0eb;
  --lf-paper: #ffffff;
  --lf-bg: #f6f6f3;
  --lf-bg-warm: #faf9f5;
  --lf-primary: #B4975A;
  --lf-primary-hover: #9a8348;
  --lf-primary-light: rgba(180, 151, 90, 0.12);
  --lf-green-deep: #305e02;
  --lf-green-deep-hover: #244a01;
  --lf-green-deep-light: rgba(48, 94, 2, 0.1);
  --lf-teal: #0e6b6b;
  --lf-teal-light: rgba(14, 107, 107, 0.1);
  --lf-amber: #a06116;
  --lf-amber-light: rgba(160, 97, 22, 0.1);
  --lf-focus: #B4975A;
  --lf-shadow-sm: 0 1px 2px rgba(0,0,0,0.04), 0 1px 4px rgba(0,0,0,0.03);
  --lf-shadow-md: 0 4px 12px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);
  --lf-shadow-lg: 0 12px 28px rgba(0,0,0,0.08), 0 4px 8px rgba(0,0,0,0.05);
  --lf-radius-sm: 6px;
  --lf-radius-md: 10px;
  --lf-radius-lg: 14px;
  --lf-transition-fast: 150ms ease;
  --lf-transition-base: 220ms ease;
  --lf-transition-slow: 350ms ease;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --lf-transition-fast: 1ms;
    --lf-transition-base: 1ms;
    --lf-transition-slow: 0.01ms;
  }
  .lf-card.animate-in {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .lf-group,
  .lf-group .lf-row {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    visibility: visible !important;
  }
}

/* Force visibility - fix animation timing issue (matches pricing.css pattern) */
.lf-group,
.lf-group .lf-row {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

.page-licensed-firms {
  background: var(--lf-bg);
  color: var(--lf-ink);
  min-height: 100vh;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-feature-settings: "tnum" 1, "cv11" 1, "ss01" 1;
}

/* ===== Page Header / Hero ===== */

.lf-hero {
  background: var(--lf-paper);
  border-bottom: 3px solid var(--lf-rule);
  position: relative;
  overflow: hidden;
}

.lf-hero::before {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--lf-green-deep) 0%, var(--lf-primary) 35%, var(--lf-teal) 65%, var(--lf-amber) 100%);
  z-index: 1;
}

.lf-hero-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(6px, 1.2vw, 12px) clamp(16px, 3vw, 32px);
  position: relative;
  z-index: 2;
}

.lf-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--lf-primary);
  font-weight: 600;
  margin-bottom: 12px;
}

.lf-hero-eyebrow::before {
  content: "";
  width: 24px;
  height: 2px;
  background: var(--lf-primary);
  border-radius: 1px;
}

.lf-hero-title {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--lf-green-deep);
  margin: 0 0 12px;
  letter-spacing: -0.02em;
}

.lf-hero-subtitle {
  font-size: clamp(0.85rem, 1.5vw, 0.95rem);
  line-height: 1.6;
  color: var(--lf-ink-soft);
  margin: 0 0 12px;
  max-width: 650px;
}

.lf-hero-meta {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.lf-hero-meta span {
  font-size: 0.75rem;
  color: var(--lf-ink-muted);
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.lf-hero-meta i {
  color: var(--lf-primary);
}

/* ===== Filter Bar ===== */

.lf-filter {
  background: var(--lf-bg-warm);
  border-bottom: 1px solid var(--lf-rule-soft);
  padding: 12px clamp(16px, 3vw, 32px);
}

.lf-filter-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.filter-label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--lf-ink-muted);
  white-space: nowrap;
}

.filter-group {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  flex: 1;
  min-width: 0;
}

.lf-search {
  position: relative;
  flex: 1;
  min-width: 180px;
}

.lf-search i {
  position: absolute;
  left: 11px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--lf-primary);
  font-size: 0.85rem;
}

.lf-search input {
  width: 100%;
  padding: 8px 12px 8px 34px;
  border: 1px solid var(--lf-rule);
  border-radius: var(--lf-radius-sm);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 0.85rem;
  background: var(--lf-paper);
  color: var(--lf-ink);
  transition: border-color var(--lf-transition-fast), box-shadow var(--lf-transition-fast);
}

.lf-search input:focus {
  outline: none;
  border-color: var(--lf-primary);
  box-shadow: 0 0 0 3px var(--lf-primary-light);
}

.lf-select {
  padding: 7px 12px;
  border: 1px solid var(--lf-rule);
  border-radius: var(--lf-radius-sm);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 0.82rem;
  background: var(--lf-paper);
  color: var(--lf-ink);
  cursor: pointer;
  min-width: 140px;
  transition: border-color var(--lf-transition-fast);
}

.lf-select:focus {
  outline: none;
  border-color: var(--lf-primary);
}

.lf-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  font-size: 0.78rem;
  font-weight: 500;
  border-radius: var(--lf-radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: all var(--lf-transition-fast);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.lf-btn-primary {
  background: var(--lf-green-deep);
  color: #fff;
  border-color: var(--lf-green-deep);
}

.lf-btn-primary:hover {
  background: var(--lf-green-deep-hover);
  border-color: var(--lf-green-deep-hover);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: var(--lf-shadow-sm);
}

.lf-btn-secondary {
  background: var(--lf-paper);
  color: var(--lf-ink-soft);
  border-color: var(--lf-rule);
}

.lf-btn-secondary:hover {
  background: var(--lf-bg-warm);
  border-color: var(--lf-primary);
  color: var(--lf-primary);
}

.lf-btn:focus-visible {
  outline: 3px solid var(--lf-focus);
  outline-offset: 2px;
}

.lf-btn:active {
  transform: translateY(0);
}

.lf-filter-result {
  margin-left: auto;
  font-size: 0.76rem;
  color: var(--lf-ink-muted);
  white-space: nowrap;
}

.lf-filter-result span {
  font-weight: 600;
  color: var(--lf-primary);
  font-variant-numeric: tabular-nums;
}

.lf-list-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(10px, 1.8vw, 16px) clamp(12px, 2vw, 24px);
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 2vw, 18px);
}

/* Category group block */
.lf-group {
  background: var(--lf-paper);
  border: 1px solid var(--lf-rule);
  border-radius: var(--lf-radius-lg);
  overflow: hidden;
  box-shadow: var(--lf-shadow-sm);
  animation: lfGroupReveal var(--lf-transition-slow) ease forwards;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity var(--lf-transition-base) ease, transform var(--lf-transition-base) ease, box-shadow var(--lf-transition-base) ease;
  break-inside: avoid;
}

@keyframes lfGroupReveal {
  to { opacity: 1; transform: translateY(0); }
}

.lf-group:nth-child(1) { animation-delay: 20ms; }
.lf-group:nth-child(2) { animation-delay: 55ms; }
.lf-group:nth-child(3) { animation-delay: 90ms; }
.lf-group:nth-child(4) { animation-delay: 125ms; }
.lf-group:nth-child(5) { animation-delay: 160ms; }
.lf-group:nth-child(n+6) { animation-delay: 195ms; }

.lf-group-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: var(--lf-bg-warm);
  border-bottom: 1px solid var(--lf-rule);
  flex-wrap: wrap;
}

.lf-group-dot {
  width: 10px;
  height: 10px;
  border-radius: 2px;
  flex-shrink: 0;
}

.lf-group[data-color="green"] .lf-group-dot { background: var(--lf-green-deep); }
.lf-group[data-color="gold"] .lf-group-dot { background: var(--lf-primary); }
.lf-group[data-color="teal"] .lf-group-dot { background: var(--lf-teal); }
.lf-group[data-color="amber"] .lf-group-dot { background: var(--lf-amber); }

.lf-group-title {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--lf-ink);
  margin: 0;
  letter-spacing: -0.01em;
}

.lf-group-count {
  margin-left: auto;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--lf-ink-muted);
  background: var(--lf-paper);
  border: 1px solid var(--lf-rule);
  border-radius: 999px;
  padding: 2px 10px;
  font-variant-numeric: tabular-nums;
}

.lf-list-wrap {
  background: var(--lf-paper);
  border: none;
  border-radius: 0;
  overflow: hidden;
  box-shadow: none;
}

.lf-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  table-layout: auto;
}

.lf-table thead th {
  text-align: left;
  padding: 10px 14px;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lf-ink-soft);
  background: linear-gradient(180deg, var(--lf-bg-warm) 0%, #f3f2ed 100%);
  border-bottom: 2px solid var(--lf-rule);
  white-space: nowrap;
  position: relative;
}

.lf-table thead th .th-line {
  display: inline-block;
  width: 14px;
  height: 2px;
  background: var(--lf-primary);
  border-radius: 1px;
  margin-right: 7px;
  vertical-align: middle;
  opacity: 0.7;
}

.lf-table tbody tr[data-type="cultivation"] { --row-accent: var(--lf-green-deep); }
.lf-table tbody tr[data-type="processing"] { --row-accent: var(--lf-amber); }
.lf-table tbody tr[data-type="distribution"] { --row-accent: var(--lf-teal); }
.lf-table tbody tr[data-type="research"] { --row-accent: var(--lf-primary); }
.lf-table tbody tr[data-type="default"] { --row-accent: var(--lf-green-deep); }

.lf-table tbody tr {
  border-bottom: 1px solid var(--lf-rule-soft);
  transition: background var(--lf-transition-fast), box-shadow var(--lf-transition-base), border-color var(--lf-transition-base);
  position: relative;
}

.lf-table tbody tr:last-child {
  border-bottom: none;
}

.lf-table tbody tr:nth-child(even) {
  background: var(--lf-bg-warm);
}

.lf-table tbody tr:hover {
  background: var(--lf-paper);
  border-left: 3px solid var(--row-accent);
  box-shadow: var(--lf-shadow-md);
}

.lf-table tbody tr.animate-in {
  opacity: 1;
  transform: none;
}

.lf-table tbody tr.reveal {
  animation: lfRowReveal var(--lf-transition-slow) ease forwards;
}

@keyframes lfRowReveal {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.lf-table tbody tr.reveal:nth-child(1) { animation-delay: 30ms; }
.lf-table tbody tr.reveal:nth-child(2) { animation-delay: 55ms; }
.lf-table tbody tr.reveal:nth-child(3) { animation-delay: 80ms; }
.lf-table tbody tr.reveal:nth-child(4) { animation-delay: 105ms; }
.lf-table tbody tr.reveal:nth-child(5) { animation-delay: 130ms; }
.lf-table tbody tr.reveal:nth-child(6) { animation-delay: 155ms; }
.lf-table tbody tr.reveal:nth-child(n+7) { animation-delay: 180ms; }

/* Column widths */
.col-firm { width: 36%; }
.col-licence { width: 20%; }
.col-region { width: 16%; }
.col-type { width: 14%; }
.col-status { width: 8%; }
.col-expiry { width: 10%; }
.col-actions { width: 6%; }

.lf-table td {
  padding: 8px 12px;
  vertical-align: middle;
}

/* Firm cell */
.lf-firm {
  display: flex;
  gap: 8px;
  align-items: center;
}

.lf-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: var(--lf-radius-md);
  background: var(--lf-bg-warm);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid var(--lf-rule-soft);
  transition: background var(--lf-transition-fast), border-color var(--lf-transition-fast);
}

.lf-table tbody tr:hover .lf-icon {
  background: var(--lf-primary-light);
  border-color: var(--lf-primary);
}

.lf-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.lf-icon-fallback {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--lf-green-deep);
  transition: color var(--lf-transition-fast);
}

.lf-table tbody tr:hover .lf-icon-fallback {
  color: var(--lf-primary);
}

.lf-firm-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.lf-card-title {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--lf-ink);
  margin: 0;
  line-height: 1.25;
  transition: color var(--lf-transition-fast);
}

.lf-table tbody tr:hover .lf-card-title {
  color: var(--lf-green-deep);
}

.lf-card-desc {
  font-size: 0.75rem;
  line-height: 1.45;
  color: var(--lf-ink-soft);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.lf-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 0.64rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  width: fit-content;
  background: var(--lf-primary-light);
  color: var(--lf-primary);
}

.lf-table tbody tr[data-type="cultivation"] .lf-badge,
.lf-table tbody tr[data-type="default"] .lf-badge {
  background: var(--lf-green-deep-light);
  color: var(--lf-green-deep);
}

.lf-table tbody tr[data-type="processing"] .lf-badge {
  background: var(--lf-amber-light);
  color: var(--lf-amber);
}

.lf-table tbody tr[data-type="distribution"] .lf-badge {
  background: var(--lf-teal-light);
  color: var(--lf-teal);
}

.lf-table tbody tr[data-type="research"] .lf-badge {
  background: var(--lf-primary-light);
  color: var(--lf-primary);
}

/* License Status Badges */
.lf-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.72rem;
  font-weight: 500;
  padding: 3px 10px;
  border-radius: 12px;
}

.lf-status--active {
  background: rgba(22, 163, 74, 0.1);
  color: #16a34a;
}

.lf-status--expiring {
  background: rgba(217, 119, 6, 0.1);
  color: #d97706;
}

.lf-status--expired {
  background: rgba(220, 38, 38, 0.1);
  color: #dc2626;
  font-weight: 600;
}

.lf-status--suspended {
  background: rgba(220, 38, 38, 0.1);
  color: #dc2626;
}

.lf-status--pending {
  background: rgba(217, 119, 6, 0.1);
  color: #d97706;
}

.lf-lic,
.lf-meta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.78rem;
  color: var(--lf-ink-muted);
  font-variant-numeric: tabular-nums;
}

.lf-lic i,
.lf-meta i {
  color: var(--lf-primary);
  font-size: 0.74rem;
  opacity: 0.75;
}

.lf-card-actions {
  display: flex;
  gap: 6px;
  flex-wrap: nowrap;
  justify-content: flex-end;
  align-items: center;
}

.lf-card-actions .lf-btn {
  padding: 5px 9px;
  font-size: 0.7rem;
  font-weight: 500;
  line-height: 1;
  min-height: 26px;
  transition: all var(--lf-transition-fast);
}

.lf-card-actions .lf-btn i {
  font-size: 0.72rem;
}

.lf-table tbody tr:hover .lf-btn-primary {
  background: var(--lf-green-deep-hover);
  box-shadow: var(--lf-shadow-sm);
}

/* Ensure actions column stays narrow and buttons stay side by side */
.col-actions {
  width: 9%;
  white-space: nowrap;
}

/* Subtle column separators for professional tabular feel */
.lf-table tbody td + td,
.lf-table thead th + th {
  border-left: 1px solid var(--lf-rule-soft);
}

.lf-table tbody tr:hover td {
  border-left-color: var(--lf-rule);
}

/* Empty state inside table */
.lf-table tbody td {
  padding: 0;
}

.lf-empty {
  text-align: center;
  padding: 48px 24px;
  background: var(--lf-paper);
  border: 1px solid var(--lf-rule);
  border-radius: var(--lf-radius-lg);
  box-shadow: var(--lf-shadow-sm);
  animation: lfGroupReveal var(--lf-transition-base) ease forwards;
}

.lf-empty-icon {
  width: 60px;
  height: 60px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--lf-rule-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--lf-ink-faint);
  font-size: 1.5rem;
}

.lf-empty h3 {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 1.2rem;
  color: var(--lf-ink);
  margin: 0 0 6px;
}

.lf-empty p {
  color: var(--lf-ink-soft);
  font-size: 0.9rem;
  line-height: 1.6;
}

/* Scrollable wrapper for small screens */
.lf-list-wrap.lf-scroll {
  overflow-x: auto;
}

.lf-scroll .lf-table {
  min-width: 900px;
}

/* ===== CTA Section ===== */

.lf-cta {
  background: var(--lf-bg-warm);
  border-top: 1px solid var(--lf-rule-soft);
  padding: clamp(32px, 5vw, 56px) clamp(20px, 4vw, 40px);
}

.lf-cta-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.cta-card {
  background: var(--lf-paper);
  border: 1px solid var(--lf-rule);
  border-radius: var(--lf-radius-lg);
  padding: clamp(28px, 4vw, 40px);
  text-align: center;
  box-shadow: var(--lf-shadow-sm);
  transition: box-shadow var(--lf-transition-base), transform var(--lf-transition-base);
}

.cta-card:hover {
  box-shadow: var(--lf-shadow-lg);
  transform: translateY(-2px);
}

.cta-icon {
  width: 56px;
  height: 56px;
  margin: 0 auto 16px;
  border-radius: var(--lf-radius-md);
  background: var(--lf-green-deep-light);
  color: var(--lf-green-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
}

.cta-title {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 600;
  color: var(--lf-ink);
  margin: 0 0 10px;
}

.cta-text {
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--lf-ink-soft);
  margin: 0 0 24px;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

.cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

.cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  font-size: 0.88rem;
  font-weight: 600;
  border-radius: var(--lf-radius-sm);
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: all var(--lf-transition-fast);
}

.cta-btn-primary {
  background: var(--lf-green-deep);
  color: #fff;
  border-color: var(--lf-green-deep);
}

.cta-btn-primary:hover {
  background: var(--lf-green-deep-hover);
  border-color: var(--lf-green-deep-hover);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: var(--lf-shadow-sm);
}

.cta-btn-outline {
  background: transparent;
  color: var(--lf-primary);
  border-color: var(--lf-primary);
}

.cta-btn-outline:hover {
  background: var(--lf-primary-light);
  color: var(--lf-primary-hover);
  border-color: var(--lf-primary-hover);
}

/* ===== Responsive ===== */

@media (max-width: 1100px) {
  .lf-list-section { padding: clamp(10px, 1.8vw, 16px) clamp(12px, 2vw, 24px); gap: clamp(12px, 2vw, 18px); }
  .lf-list-wrap.lf-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .lf-scroll .lf-table { min-width: 880px; }
}

@media (max-width: 992px) {
  .lf-hero-inner { padding: 12px 20px; }
  .lf-list-section { padding: clamp(10px, 1.8vw, 16px) clamp(12px, 2vw, 24px); gap: clamp(12px, 2vw, 18px); }
  .lf-group { break-inside: avoid; }
  .lf-list-wrap.lf-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .lf-scroll .lf-table { min-width: 880px; }
}

@media (max-width: 768px) {
  .lf-hero-inner { padding: 8px 14px; }
  .lf-hero-meta { gap: 10px; }
  .lf-filter-inner { flex-direction: column; align-items: flex-start; }
  .filter-group { flex: 1; min-width: 0; }
  .lf-search { min-width: unset; }
  .lf-select { width: 100%; min-width: unset; }
  .lf-filter-result { margin-left: 0; }
  .lf-list-section { padding: clamp(8px, 1.5vw, 14px) clamp(10px, 2vw, 20px); gap: clamp(10px, 1.8vw, 16px); }
  .lf-group-head { padding: 8px 12px; gap: 8px; }
  .lf-group-title { font-size: 0.95rem; }
  .lf-group-count { padding: 2px 8px; font-size: 0.68rem; }
  .lf-list-wrap.lf-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .lf-scroll .lf-table { min-width: 880px; }
  .lf-table td { padding: 7px 10px; }
  .lf-table thead th { padding: 7px 10px; font-size: 0.62rem; }
}

@media (max-width: 640px) {
  .lf-hero-title { font-size: 1.6rem; }
  .lf-card-title { font-size: 0.9rem; }
  .lf-icon { width: 30px; height: 30px; }
  .lf-icon-fallback { font-size: 0.95rem; }
  .lf-filter { padding: 8px clamp(10px, 3vw, 16px); }
}

/* Print styles */
@media print {
  .lf-hero-meta, .lf-filter, .lf-card-actions, .lf-cta { display: none !important; }
  .lf-group { box-shadow: none; border: 1px solid var(--lf-rule); }
  .lf-table tbody tr:hover { background: none; box-shadow: none; }
}
