/* ═══════════════════════════════════════════════════════════
   Tivei Directory — Design System
   Aesthetic: Organic / botanical / wellness — earthy tones,
   soft textures, Frank Ruhl Libre + Heebo typography
   ═══════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Frank+Ruhl+Libre:wght@300;400;700;900&family=Heebo:wght@300;400;500;700&display=swap');

/* ── Tokens ───────────────────────────────────────────────── */
:root {
  /* Palette */
  --c-forest:   #1E4D3A;
  --c-sage:     #4A7C59;
  --c-sage-md:  #7AAB89;
  --c-sage-lt:  #B8D4C2;
  --c-sage-bg:  #EEF5F1;
  --c-earth:    #7A5C3A;
  --c-sand:     #E8D9C4;
  --c-sand-lt:  #FAF5EF;
  --c-gold:     #C8922A;
  --c-gold-lt:  #F5E4C0;
  --c-sky:      #3B6FA0;
  --c-sky-lt:   #D4E6F5;
  --c-text:     #222922;
  --c-muted:    #6B7A6C;
  --c-border:   #D4E2D8;
  --c-white:    #FFFFFF;

  /* Fonts */
  --f-display: 'Frank Ruhl Libre', 'David Libre', Georgia, serif;
  --f-body:    'Heebo', 'Arial Hebrew', Arial, sans-serif;

  /* Spacing scale */
  --s1:  4px;  --s2: 8px;   --s3: 12px;  --s4: 16px;
  --s5: 20px;  --s6: 24px;  --s8: 32px;  --s10: 40px;
  --s12: 48px; --s16: 64px;

  /* Radii */
  --r-sm: 4px;  --r-md: 10px;  --r-lg: 18px;  --r-xl: 28px;

  /* Shadows */
  --sh-sm:  0 2px 6px rgba(30,77,58,.08);
  --sh-md:  0 6px 20px rgba(30,77,58,.12);
  --sh-lg:  0 16px 48px rgba(30,77,58,.16);

  /* Transitions */
  --ease: cubic-bezier(.25,.46,.45,.94);
}

/* ── Reset ─────────────────────────────────────────────────── */
.tvd-dir, .tvd-single, .tvd-register,
.tvd-dashboard, .tvd-auth {
  direction: rtl;
  font-family: var(--f-body);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--c-text);
  -webkit-font-smoothing: antialiased;
}

*, *::before, *::after { box-sizing: border-box; }

/* ── Typography ────────────────────────────────────────────── */
.tvd-h1 { font-family: var(--f-display); font-size: clamp(1.8rem,4vw,2.8rem); font-weight: 900; color: var(--c-forest); line-height: 1.2; }
.tvd-h2 { font-family: var(--f-display); font-size: clamp(1.3rem,3vw,1.9rem); font-weight: 700; color: var(--c-forest); }
.tvd-h3 { font-family: var(--f-display); font-size: 1.2rem; font-weight: 700; color: var(--c-forest); }

/* ── Buttons ───────────────────────────────────────────────── */
.tvd-btn {
  display: inline-flex; align-items: center; gap: var(--s2);
  padding: 10px 22px; border-radius: var(--r-md);
  font-family: var(--f-body); font-size: .9rem; font-weight: 700;
  cursor: pointer; text-decoration: none; border: none;
  transition: all .2s var(--ease); white-space: nowrap;
  position: relative; overflow: hidden;
}
.tvd-btn::after {
  content: '';
  position: absolute; inset: 0;
  background: rgba(255,255,255,0);
  transition: background .15s;
}
.tvd-btn:hover::after { background: rgba(255,255,255,.12); }
.tvd-btn:hover { transform: translateY(-1px); box-shadow: var(--sh-md); text-decoration: none; }
.tvd-btn:active { transform: translateY(0); }

.tvd-btn--prim    { background: var(--c-forest); color: #fff; }
.tvd-btn--sage    { background: var(--c-sage);   color: #fff; }
.tvd-btn--outline { background: transparent; color: var(--c-forest); border: 2px solid var(--c-forest); }
.tvd-btn--outline:hover { background: var(--c-sage-bg); }
.tvd-btn--ghost   { background: rgba(255,255,255,.15); color: #fff; border: 1px solid rgba(255,255,255,.3); }
.tvd-btn--ghost:hover { background: rgba(255,255,255,.25); }
.tvd-btn--wa      { background: #25D366; color: #fff; }
.tvd-btn--wa:hover { background: #128C7E; color: #fff; }
.tvd-btn--lg      { padding: 13px 28px; font-size: 1rem; border-radius: var(--r-lg); }
.tvd-btn--sm      { padding: 6px 14px; font-size: .82rem; }
.tvd-btn--wide    { width: 100%; justify-content: center; }

/* ── Badges ────────────────────────────────────────────────── */
.tvd-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: .72rem; font-weight: 700; letter-spacing: .04em;
  padding: 3px 10px; border-radius: 20px; text-transform: uppercase;
}
.tvd-badge--feat   { background: var(--c-gold-lt); color: var(--c-earth); border: 1px solid var(--c-sand); }
.tvd-badge--online { background: var(--c-sky-lt);  color: var(--c-sky);   border: 1px solid #b5d4ee; }
.tvd-badge--new    { background: var(--c-sage-bg); color: var(--c-sage);  border: 1px solid var(--c-sage-lt); }
.tvd-badge--pending{ background: #fff8e1; color: #8a6200; border: 1px solid #f9d97e; }

/* ── Tags ──────────────────────────────────────────────────── */
.tvd-tag {
  display: inline-block;
  background: var(--c-sage-bg); color: var(--c-forest);
  font-size: .78rem; padding: 3px 11px; border-radius: 20px;
  border: 1px solid var(--c-border); text-decoration: none;
  transition: background .15s, color .15s;
}
.tvd-tag:hover { background: var(--c-sage); color: #fff; text-decoration: none; }

/* ── Stars ─────────────────────────────────────────────────── */
.tvd-stars         { display: inline-flex; gap: 1px; }
.tvd-star--full    { color: var(--c-gold); }
.tvd-star--half    { color: var(--c-gold); opacity: .6; }
.tvd-star--empty   { color: #ccc; }
.tvd-stars i       { font-style: normal; font-size: 1em; line-height: 1; }

/* ── Notices ───────────────────────────────────────────────── */
.tvd-notice {
  padding: var(--s3) var(--s4); border-radius: var(--r-md); margin: var(--s4) 0;
  border-right: 4px solid currentColor;
}
.tvd-notice--info { background: var(--c-sky-lt);  color: var(--c-sky); }
.tvd-notice--warn { background: #fff8e1; color: #8a6200; }
.tvd-notice--ok   { background: #e8f5e9; color: #2e7d32; }
.tvd-notice--err  { background: #fdecea; color: #b71c1c; }
.tvd-notice p     { margin: 0; }

/* ── Form elements ─────────────────────────────────────────── */
.tvd-input, .tvd-textarea, .tvd-select {
  width: 100%; padding: 10px 14px;
  border: 1.5px solid var(--c-border); border-radius: var(--r-md);
  font-family: var(--f-body); font-size: .95rem; color: var(--c-text);
  background: #fff; transition: border-color .2s, box-shadow .2s;
}
.tvd-input:focus, .tvd-textarea:focus, .tvd-select:focus {
  outline: none;
  border-color: var(--c-sage);
  box-shadow: 0 0 0 3px rgba(74,124,89,.15);
}
.tvd-textarea { resize: vertical; min-height: 100px; }
.tvd-input::placeholder, .tvd-textarea::placeholder { color: #aaa; }

.tvd-field       { display: flex; flex-direction: column; gap: var(--s1); margin-bottom: var(--s4); }
.tvd-label       { font-size: .84rem; font-weight: 600; color: var(--c-muted); }
.tvd-label--req::after { content: ' *'; color: #c62828; }

.tvd-field-row   { display: flex; gap: var(--s4); flex-wrap: wrap; }
.tvd-field-row > .tvd-field { flex: 1; min-width: 160px; }

.tvd-check-label {
  display: flex; align-items: center; gap: var(--s2);
  font-size: .9rem; cursor: pointer;
}
.tvd-check-label input[type=checkbox] { width: 16px; height: 16px; accent-color: var(--c-forest); }

/* ── Form section card ──────────────────────────────────────── */
.tvd-form-section {
  background: #fff; border: 1px solid var(--c-border);
  border-radius: var(--r-lg); padding: var(--s6) var(--s8);
  margin-bottom: var(--s5); box-shadow: var(--sh-sm);
}
.tvd-form-section__title {
  font-family: var(--f-display); font-size: 1.05rem; font-weight: 700;
  color: var(--c-forest); margin: 0 0 var(--s5);
  padding-bottom: var(--s3); border-bottom: 2px solid var(--c-sage-bg);
  display: flex; align-items: center; gap: var(--s2);
}

/* ── Checkbox grid ──────────────────────────────────────────── */
.tvd-check-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(190px,1fr)); gap: var(--s3); }
.tvd-check-group { border: 1px solid var(--c-border); border-radius: var(--r-md); padding: var(--s3) var(--s4); background: var(--c-sage-bg); }
.tvd-check-group__title { font-size: .82rem; font-weight: 700; color: var(--c-forest); margin-bottom: var(--s2); }

/* ── Form feedback ──────────────────────────────────────────── */
.tvd-form-msg {
  margin-top: var(--s4); padding: var(--s3) var(--s4);
  border-radius: var(--r-md); font-size: .9rem; display: none;
}
.tvd-form-msg.show      { display: block; }
.tvd-form-msg.ok        { background: #e8f5e9; color: #2e7d32; border: 1px solid #a5d6a7; }
.tvd-form-msg.err       { background: #fdecea; color: #b71c1c; border: 1px solid #ef9a9a; }

/* ═══════════════════════════════════════════════════════════
   DIRECTORY PAGE
   ═══════════════════════════════════════════════════════════ */

/* Hero search bar */
.tvd-hero {
  background: linear-gradient(135deg, var(--c-forest) 0%, var(--c-sage) 100%);
  padding: var(--s12) var(--s6);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.tvd-hero::before {
  content: '';
  position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Ccircle cx='40' cy='40' r='35' fill='none' stroke='rgba(255,255,255,.06)' stroke-width='1'/%3E%3C/svg%3E");
  opacity: .6;
}
.tvd-hero__inner { position: relative; z-index: 1; max-width: 780px; margin: 0 auto; }
.tvd-hero__title {
  font-family: var(--f-display); font-size: clamp(2rem,5vw,3rem);
  color: #fff; font-weight: 900; margin: 0 0 var(--s2);
  text-shadow: 0 2px 12px rgba(0,0,0,.2);
}
.tvd-hero__sub { color: rgba(255,255,255,.8); font-size: 1.1rem; margin: 0 0 var(--s6); }

/* Search bar */
.tvd-search-bar {
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: var(--r-xl);
  padding: var(--s4);
  display: flex; gap: var(--s3); flex-wrap: wrap; align-items: flex-end;
}
.tvd-search-bar .tvd-field { margin: 0; flex: 1; min-width: 140px; }
.tvd-search-bar .tvd-label { color: rgba(255,255,255,.85); }
.tvd-search-bar .tvd-input,
.tvd-search-bar .tvd-select {
  background: rgba(255,255,255,.92);
  border-color: rgba(255,255,255,.3);
}

/* Results header */
.tvd-results-head {
  display: flex; justify-content: space-between; align-items: center;
  padding: var(--s4) 0; flex-wrap: wrap; gap: var(--s3);
}
.tvd-results-count { font-size: .9rem; color: var(--c-muted); }
.tvd-results-count strong { color: var(--c-forest); font-size: 1rem; }
.tvd-sort-wrap { display: flex; align-items: center; gap: var(--s2); font-size: .85rem; color: var(--c-muted); }

/* Grid */
.tvd-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(290px,1fr)); gap: var(--s5); }

/* ── Card ────────────────────────────────────────────────── */
.tvd-card {
  background: var(--c-white); border-radius: var(--r-lg);
  box-shadow: var(--sh-sm); overflow: hidden;
  transition: box-shadow .3s var(--ease), transform .3s var(--ease);
  border: 1px solid var(--c-border);
  display: flex; flex-direction: column;
}
.tvd-card:hover { box-shadow: var(--sh-lg); transform: translateY(-4px); }
.tvd-card--featured { border-color: var(--c-gold); }

/* Card photo */
.tvd-card__photo-wrap { position: relative; }
.tvd-card__photo {
  width: 100%; height: 200px; object-fit: cover;
  display: block; transition: transform .4s var(--ease);
}
.tvd-card:hover .tvd-card__photo { transform: scale(1.04); }
.tvd-card__photo-wrap { overflow: hidden; }
.tvd-card__no-photo {
  width: 100%; height: 200px;
  background: linear-gradient(145deg, var(--c-sage-bg), var(--c-sage-lt));
  display: flex; align-items: center; justify-content: center;
  font-size: 4rem;
}
.tvd-card__badges {
  position: absolute; top: var(--s3); right: var(--s3);
  display: flex; flex-direction: column; gap: var(--s1);
}

/* Card body */
.tvd-card__body { padding: var(--s4) var(--s5); flex: 1; display: flex; flex-direction: column; }
.tvd-card__name {
  font-family: var(--f-display); font-size: 1.15rem; font-weight: 700;
  color: var(--c-forest); margin: 0 0 var(--s1);
}
.tvd-card__name a { color: inherit; text-decoration: none; }
.tvd-card__name a:hover { color: var(--c-sage); }
.tvd-card__prof { font-size: .82rem; color: var(--c-muted); margin: 0 0 var(--s2); }
.tvd-card__meta { display: flex; align-items: center; gap: var(--s3); font-size: .82rem; color: var(--c-muted); margin-bottom: var(--s3); flex-wrap: wrap; }
.tvd-card__meta-item { display: flex; align-items: center; gap: 4px; }
.tvd-card__rating { display: flex; align-items: center; gap: var(--s1); }
.tvd-card__rating-num { font-weight: 700; color: var(--c-earth); font-size: .9rem; }
.tvd-card__tags { display: flex; flex-wrap: wrap; gap: var(--s1); margin-bottom: var(--s3); }
.tvd-card__excerpt { font-size: .88rem; color: var(--c-muted); line-height: 1.6; flex: 1; margin-bottom: var(--s4); }
.tvd-card__footer { display: flex; gap: var(--s2); flex-wrap: wrap; margin-top: auto; }

/* ── Pagination ──────────────────────────────────────────── */
.tvd-pagination { display: flex; justify-content: center; gap: var(--s1); margin: var(--s10) 0; flex-wrap: wrap; }
.tvd-pagination a, .tvd-pagination span {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: var(--r-md);
  font-size: .88rem; font-weight: 600; text-decoration: none;
  border: 1.5px solid var(--c-border); transition: all .15s;
}
.tvd-pagination a { color: var(--c-forest); }
.tvd-pagination a:hover { background: var(--c-sage-bg); border-color: var(--c-sage); }
.tvd-pagination .current { background: var(--c-forest); color: #fff; border-color: var(--c-forest); }

/* CTA strip */
.tvd-join-cta {
  background: linear-gradient(135deg, var(--c-sage-bg), var(--c-sand-lt));
  border: 1px solid var(--c-border); border-radius: var(--r-lg);
  padding: var(--s8) var(--s6); text-align: center; margin: var(--s10) 0;
}
.tvd-join-cta h3 { font-family: var(--f-display); font-size: 1.4rem; color: var(--c-forest); margin: 0 0 var(--s2); }
.tvd-join-cta p  { color: var(--c-muted); margin: 0 0 var(--s5); }

/* ═══════════════════════════════════════════════════════════
   SINGLE LISTING
   ═══════════════════════════════════════════════════════════ */
.tvd-single-wrap { max-width: 960px; margin: 0 auto; padding: var(--s6) var(--s4); }

/* Profile header */
.tvd-profile-header {
  background: linear-gradient(160deg, var(--c-forest), var(--c-sage));
  border-radius: var(--r-lg); padding: var(--s8);
  display: flex; gap: var(--s8); align-items: flex-start;
  margin-bottom: var(--s6); color: #fff; flex-wrap: wrap;
}
.tvd-profile-photo {
  width: 140px; height: 140px; border-radius: var(--r-lg);
  object-fit: cover; flex-shrink: 0;
  border: 3px solid rgba(255,255,255,.3);
  box-shadow: var(--sh-md);
}
.tvd-profile-no-photo {
  width: 140px; height: 140px; border-radius: var(--r-lg);
  background: rgba(255,255,255,.15); flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 4rem;
}
.tvd-profile-info { flex: 1; min-width: 200px; }
.tvd-profile-info h1 {
  font-family: var(--f-display); font-size: clamp(1.5rem,4vw,2.2rem);
  font-weight: 900; color: #fff; margin: 0 0 var(--s1);
}
.tvd-profile-info .tvd-prof-title { opacity: .8; font-size: 1rem; margin: 0 0 var(--s3); }
.tvd-profile-meta { display: flex; flex-wrap: wrap; gap: var(--s3); margin-bottom: var(--s4); font-size: .9rem; opacity: .85; }
.tvd-profile-meta-item { display: flex; align-items: center; gap: 5px; }
.tvd-profile-rating { display: flex; align-items: center; gap: var(--s2); margin-bottom: var(--s4); }
.tvd-profile-rating .tvd-stars i { font-size: 1.3rem; }
.tvd-profile-ctas { display: flex; gap: var(--s2); flex-wrap: wrap; }

/* Content layout */
.tvd-single-body { display: grid; grid-template-columns: 1fr 300px; gap: var(--s6); align-items: start; }

/* Content sections */
.tvd-section {
  background: #fff; border: 1px solid var(--c-border); border-radius: var(--r-lg);
  padding: var(--s6); margin-bottom: var(--s5); box-shadow: var(--sh-sm);
}
.tvd-section h2 {
  font-family: var(--f-display); font-size: 1.2rem; color: var(--c-forest);
  margin: 0 0 var(--s4); padding-bottom: var(--s3);
  border-bottom: 2px solid var(--c-sage-bg);
  display: flex; align-items: center; gap: var(--s2);
}

/* Details grid */
.tvd-details {
  display: grid; grid-template-columns: auto 1fr; gap: var(--s2) var(--s5);
  font-size: .92rem;
}
.tvd-details dt { font-weight: 700; color: var(--c-forest); white-space: nowrap; }
.tvd-details dd { margin: 0; color: var(--c-muted); }

/* Sidebar card */
.tvd-sidebar-card {
  background: var(--c-sage-bg); border: 1px solid var(--c-border);
  border-radius: var(--r-lg); padding: var(--s5); margin-bottom: var(--s5);
  box-shadow: var(--sh-sm);
}
.tvd-sidebar-card h3 {
  font-family: var(--f-display); font-size: 1rem; color: var(--c-forest);
  margin: 0 0 var(--s4);
}
.tvd-contact-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--s3); }
.tvd-contact-list li a { display: flex; align-items: center; gap: var(--s2); font-size: .9rem; color: var(--c-text); text-decoration: none; }
.tvd-contact-list li a:hover { color: var(--c-forest); }

/* Message form */
.tvd-msg-form .tvd-field { margin-bottom: var(--s3); }
.tvd-msg-form .tvd-input, .tvd-msg-form .tvd-textarea { font-size: .88rem; }

/* Reviews */
.tvd-reviews-list { display: flex; flex-direction: column; gap: var(--s4); }
.tvd-review {
  background: var(--c-sand-lt); border: 1px solid var(--c-border);
  border-radius: var(--r-md); padding: var(--s4) var(--s5);
}
.tvd-review__head { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; margin-bottom: var(--s2); }
.tvd-review__author { font-weight: 700; font-size: .95rem; }
.tvd-review__date { font-size: .78rem; color: var(--c-muted); margin-right: auto; }
.tvd-review__body { font-size: .9rem; line-height: 1.65; color: var(--c-text); margin: 0; }

/* Review form */
.tvd-review-form-wrap {
  background: var(--c-sage-bg); border: 1px solid var(--c-border);
  border-radius: var(--r-lg); padding: var(--s5); margin-top: var(--s5);
}
.tvd-review-form-wrap h3 { font-family: var(--f-display); font-size: 1.1rem; color: var(--c-forest); margin: 0 0 var(--s4); }
.tvd-star-pick { display: flex; flex-direction: row-reverse; gap: 3px; margin-bottom: var(--s4); }
.tvd-star-pick input[type=radio] { display: none; }
.tvd-star-pick label { font-size: 2rem; color: #ccc; cursor: pointer; line-height: 1; transition: color .1s; }
.tvd-star-pick input:checked ~ label,
.tvd-star-pick label:hover,
.tvd-star-pick label:hover ~ label { color: var(--c-gold); }

/* ═══════════════════════════════════════════════════════════
   DASHBOARD
   ═══════════════════════════════════════════════════════════ */
.tvd-dash { max-width: 860px; }
.tvd-dash__header {
  background: linear-gradient(135deg, var(--c-forest), var(--c-sage));
  border-radius: var(--r-lg); padding: var(--s6) var(--s8);
  color: #fff; margin-bottom: var(--s6);
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--s4);
}
.tvd-dash__header h2 { font-family: var(--f-display); color: #fff; margin: 0; font-size: 1.6rem; }
.tvd-dash__status-pill {
  background: rgba(255,255,255,.2); padding: 5px 16px;
  border-radius: 20px; font-size: .85rem; font-weight: 600;
}

/* Tabs */
.tvd-tabs { display: flex; gap: 0; border-bottom: 2px solid var(--c-border); margin-bottom: var(--s6); }
.tvd-tab {
  padding: 10px 20px; font-weight: 600; font-size: .9rem; color: var(--c-muted);
  cursor: pointer; border: none; background: none; font-family: var(--f-body);
  border-bottom: 2px solid transparent; margin-bottom: -2px; transition: all .15s;
}
.tvd-tab:hover { color: var(--c-forest); }
.tvd-tab.active { color: var(--c-forest); border-bottom-color: var(--c-forest); }
.tvd-tab-panel { display: none; }
.tvd-tab-panel.active { display: block; }

/* Dash stats */
.tvd-dash-stats { display: flex; gap: var(--s4); margin-bottom: var(--s6); flex-wrap: wrap; }
.tvd-dash-stat {
  flex: 1; min-width: 100px; text-align: center;
  background: var(--c-sage-bg); border: 1px solid var(--c-border);
  border-radius: var(--r-md); padding: var(--s4);
}
.tvd-dash-stat__num { display: block; font-size: 2rem; font-weight: 900; color: var(--c-forest); line-height: 1; }
.tvd-dash-stat__label { display: block; font-size: .78rem; color: var(--c-muted); margin-top: var(--s1); }

/* Message list */
.tvd-msg-list { display: flex; flex-direction: column; gap: var(--s3); }
.tvd-msg-item {
  background: #fff; border: 1px solid var(--c-border); border-radius: var(--r-md);
  padding: var(--s4); font-size: .9rem;
}
.tvd-msg-item--unread { border-right: 3px solid var(--c-forest); }
.tvd-msg-item__head { display: flex; justify-content: space-between; margin-bottom: var(--s2); font-size: .82rem; color: var(--c-muted); }
.tvd-msg-item__sender { font-weight: 700; color: var(--c-text); }

/* ═══════════════════════════════════════════════════════════
   AUTH FORMS
   ═══════════════════════════════════════════════════════════ */
.tvd-auth-wrap {
  max-width: 440px; margin: var(--s10) auto;
  background: #fff; border: 1px solid var(--c-border);
  border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--sh-lg);
}
.tvd-auth-head {
  background: linear-gradient(135deg, var(--c-forest), var(--c-sage));
  padding: var(--s8) var(--s6); text-align: center; color: #fff;
}
.tvd-auth-head h2 { font-family: var(--f-display); font-size: 1.6rem; color: #fff; margin: 0; }
.tvd-auth-body { padding: var(--s6); }

/* ═══════════════════════════════════════════════════════════
   REGISTER FORM
   ═══════════════════════════════════════════════════════════ */
.tvd-register-wrap { max-width: 820px; }
.tvd-register-wrap > h2 {
  font-family: var(--f-display); font-size: 2rem; color: var(--c-forest);
  margin: 0 0 var(--s2);
}
.tvd-register-wrap > p { color: var(--c-muted); margin: 0 0 var(--s6); font-size: 1rem; }

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  .tvd-single-body { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .tvd-grid { grid-template-columns: 1fr; }
  .tvd-profile-header { flex-direction: column; align-items: center; text-align: center; }
  .tvd-profile-meta { justify-content: center; }
  .tvd-profile-ctas { justify-content: center; }
  .tvd-search-bar { border-radius: var(--r-lg); }
  .tvd-hero { padding: var(--s8) var(--s4); }
  .tvd-hero__title { font-size: 1.6rem; }
  .tvd-tabs { overflow-x: auto; }
  .tvd-tab { white-space: nowrap; }
}

/* ── City search field ──────────────────────────────────── */
.tvd-field--city .tvd-city-wrap {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.tvd-city-wrap .tvd-city-select { flex: 1; min-width: 120px; }
.tvd-city-wrap .tvd-city-input  { flex: 1; min-width: 120px; }
.tvd-city-or {
  color: rgba(255,255,255,.6); font-size: .8rem; font-weight: 600;
  white-space: nowrap;
}

/* ── Active filters bar ─────────────────────────────────── */
.tvd-filters-active {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
  padding: var(--s3) var(--s4); background: var(--c-sand-lt);
  border-radius: var(--r-md); margin-bottom: var(--s4); font-size: .85rem;
}
.tvd-filter-tag {
  background: #fff; border: 1px solid var(--c-border); border-radius: 20px;
  padding: 3px 10px; display: inline-flex; align-items: center; gap: 6px;
}
.tvd-filter-tag a { color: var(--c-muted); text-decoration: none; font-weight: 700; }
.tvd-filter-tag a:hover { color: #c62828; }
.tvd-clear-all { color: var(--c-muted); font-size: .8rem; margin-right: auto; }
.tvd-clear-all:hover { color: #c62828; }

/* ── Full profile card (active=1) ───────────────────────── */
.tvd-card--full { border-color: var(--c-sage-lt); }
.tvd-card--full .tvd-badge--active {
  position: absolute; bottom: 8px; right: 8px;
  background: var(--c-forest); color: #fff;
  font-size: .68rem; padding: 2px 8px; border-radius: 20px;
}

/* ── List-only card (active=0) ──────────────────────────── */
.tvd-card--list {
  border-color: var(--c-border);
  background: var(--c-sand-lt);
}
.tvd-card--list .tvd-card__name {
  font-size: 1rem; color: var(--c-text);
}
.tvd-card--list .tvd-card__excerpt--sm {
  font-size: .82rem; color: var(--c-muted); margin-bottom: 8px;
}
.tvd-card--list:hover { transform: translateY(-2px); box-shadow: var(--sh-sm); }

/* ── Dir body padding ────────────────────────────────────── */
.tvd-dir__body { padding: 0 var(--s4); }
