/* Needs grid, table, cards, cta */
.nv-needs { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:24px 0 12px; }
@media (max-width:768px){ .nv-needs{ grid-template-columns:repeat(2,1fr);} }
.nv-need { display:flex; align-items:center; gap:10px; padding:14px 16px; border:1px solid #e2e8f0; border-radius:12px; background:#fff; text-decoration:none; transition:transform .06s, box-shadow .2s, border-color .2s; }
.nv-need:hover { transform:translateY(-1px); border-color:#cbd5e1; box-shadow:0 6px 18px rgba(0,0,0,.06); }
.nv-need-emoji{ font-size:20px; line-height:1; } .nv-need-label{ font-weight:600; color:#0f172a; }
.nv-table-wrap{ overflow-x:auto; } .nv-table{ width:100%; border-collapse:separate; border-spacing:0; }
.nv-table thead th{ background:#0ea5e9; color:#fff; padding:12px; text-align:left; }
.nv-table tbody td{ padding:12px; border-top:1px solid #e2e8f0; } .nv-table tbody tr:nth-child(even){ background:#f8fafc; }
.nv-badge{ display:inline-block; font-size:12px; font-weight:700; padding:4px 8px; border-radius:999px; background:#16a34a; color:#fff; margin-left:8px; }
.nv-cta{ display:inline-block; padding:10px 16px; border-radius:10px; text-decoration:none; font-weight:600; border:1px solid #0ea5e9; background:#0ea5e9; color:#fff; }
.nv-cta:hover{ filter:brightness(0.95); }

/* Cards */
.nv-cards{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:12px 0 18px; }
@media (max-width:900px){ .nv-cards{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .nv-cards{ grid-template-columns:1fr; } }
.nv-card{ border:1px solid #e2e8f0; border-radius:12px; padding:14px; background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.03); }
.nv-card-head{ display:flex; align-items:center; gap:8px; justify-content:space-between; margin-bottom:8px; }
.nv-card-title{ font-weight:700; }
.nv-card-meta{ display:flex; align-items:center; justify-content:space-between; margin:8px 0 12px; gap:12px; flex-wrap:wrap; }

/* Price block */
.nv-price-block{ display:flex; flex-direction:column; gap:2px; }
.nv-price-main{ font-weight:700; }
.nv-subprice{ font-size:12px; opacity:.75; }

/* Note */
.nv-note{ margin:8px 0 12px; padding:8px 10px; background:#f1f5f9; border:1px solid #e2e8f0; border-radius:8px; font-size:14px; }

/* Admin */
.nv-rules-form .form-table th { width: 220px; }

/* Finder */
.nv-finder{ border:1px solid #e2e8f0; border-radius:12px; padding:16px; background:#fff; margin:12px 0 18px; }
.nv-f-row{ display:flex; gap:10px; align-items:center; margin:8px 0; }
.nv-f-row label{ min-width:220px; font-weight:600; }
.nv-f-row input[type="number"]{ width:90px; padding:6px 8px; border:1px solid #cbd5e1; border-radius:8px; }
.nv-f-row-inline{ gap:18px; }
.nv-f-actions{ margin-top:12px; }
.nv-f-result{ margin-top:16px; padding:12px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; }
.nv-f-badge{ display:inline-block; font-size:12px; font-weight:700; padding:3px 8px; border-radius:999px; background:#0ea5e9; color:#fff; margin-bottom:6px; }
.nv-f-mbits{ font-size:20px; font-weight:800; margin:6px 0; }
.nv-f-note{ font-size:12px; opacity:.8; }
.nv-f-cats{ display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; }
.nv-f-chip{ display:inline-block; padding:6px 10px; border-radius:999px; background:#e2e8f0; font-weight:700; }
.nv-f-section{ margin-top:18px; }

/* Finder explanation */
.nv-f-explain{ margin-top:8px; font-size:14px; }
.nv-f-explain a{ font-weight:700; text-decoration:underline; }

.nv-price-wrap select.nv-plan-select{ margin-top:6px; }