.nl-filters {
  display: flex; gap: 10px; flex-wrap: wrap; background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 12px 14px; box-shadow: var(--shadow-sm); margin-bottom: 18px;
}
.nl-filters select, .nl-filters input[type="number"] {
  padding: 8px 10px; font-size: 13.5px; border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: var(--canvas); font-family: inherit;
}
.nl-filters input[type="number"] { width: 110px; }
.nl-filters .btn-primary {
  border: none; border-radius: var(--radius-sm); padding: 8px 20px; font-size: 13.5px; font-weight: 700;
  cursor: pointer; font-family: inherit; background: linear-gradient(135deg, #e0ac4a, #9c7020); color: #1a1204;
}
.nl-filters .btn-primary:hover { filter: brightness(1.08); }

.nl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; margin-bottom: 24px; }
.nl-card {
  position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
  overflow: hidden; box-shadow: var(--shadow-sm);
  transition: box-shadow .15s, transform .15s;
}
.nl-card:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
.nl-card-link { display: block; text-decoration: none; color: var(--ink); }

.nl-card-gauge { padding: 0 14px 10px; }
.nl-card-gauge-bar {
  position: relative; height: 5px; border-radius: 3px;
  background: linear-gradient(90deg, #2f8f5b, #e0b23a, #c8492f);
}
.nl-card-gauge-marker { position: absolute; top: -2px; width: 2.5px; height: 9px; background: #12293a; border-radius: 1px; }
.nl-card-gauge-label { font-size: 10.5px; font-weight: 700; margin-top: 4px; }
.nl-card-gauge-label.verdict-good { color: #196c3a; }
.nl-card-gauge-label.verdict-warn { color: #a4321c; }
.nl-card-gauge-label.verdict-fair { color: #5f6b7a; }

.nl-card-estimate {
  padding: 8px 14px; font-size: 12px; color: var(--ink-soft); border-top: 1px solid var(--line);
}
.nl-card-estimate strong { color: var(--brand-dark); }

.nl-card-actions { display: flex; border-top: 1px solid var(--line); }
.nl-card-estimate + .nl-card-actions { border-top: none; }
.nl-card-save {
  flex: 1; display: block; padding: 8px; border: none; border-right: 1px solid var(--line);
  background: var(--canvas); color: var(--ink-soft); font-size: 12px; font-weight: 700; cursor: pointer;
  font-family: inherit; transition: background .12s, color .12s;
}
.nl-card-save:hover { background: var(--brand-tint); color: var(--brand-dark); }
.nl-card-save.saved { background: var(--gold-tint, #fbf1de); color: var(--gold-dark, #9c7020); }
.nl-card-report {
  flex: 1; display: flex; align-items: center; justify-content: center; padding: 8px;
  background: var(--canvas); color: var(--gold-dark, #9c7020); font-size: 12px; font-weight: 700;
  text-decoration: none; transition: background .12s, color .12s;
}
.nl-card-report:hover { background: var(--brand-tint); color: var(--brand-dark); }

.nl-card-photo { position: relative; aspect-ratio: 4 / 3; background: var(--canvas); }
.nl-card-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nl-card-photo-empty { display: flex; align-items: center; justify-content: center; height: 100%; color: var(--ink-faint); font-size: 12px; }
.nl-card-kind {
  position: absolute; top: 8px; left: 8px; font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .03em; padding: 3px 8px; border-radius: 4px; color: #fff;
}
.nl-card-kind.sale { background: var(--brand); }
.nl-card-kind.rent { background: #0a7a4e; }

.nl-card-body { padding: 12px 14px; }
.nl-card-price { font-size: 16px; font-weight: 800; color: var(--ink); }
.nl-card-title { font-size: 12.5px; color: var(--ink-soft); margin-top: 4px; line-height: 1.4; }
.nl-card-meta { font-size: 11.5px; color: var(--ink-faint); margin-top: 8px; }
.nl-card-time { font-size: 11px; color: var(--ink-faint); margin-top: 4px; }
