:root {
  --tv-bg: #f7f8fc;
  --tv-surface: #ffffff;
  --tv-text: #1f2937;
  --tv-muted: #667085;
  --tv-border: #e5e7eb;
  --tv-primary: #0f766e;
  --tv-primary-dark: #115e59;
  --tv-verified: #2563eb;
  --tv-radius: 18px;
  --tv-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--tv-text);
  background: var(--tv-bg);
  line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.tv-container { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
.tv-site-header {
  position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.85); backdrop-filter: blur(12px); border-bottom: 1px solid var(--tv-border);
}
.tv-site-header__inner { display:flex; align-items:center; justify-content:space-between; min-height:76px; gap: 16px; }

@keyframes tvHeaderSlideDown {
  from {
    transform: translateY(-10px);
    opacity: .96;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@media (min-width: 992px) {
  body.tv-desktop-header-sticky {
    padding-top: var(--tv-desktop-sticky-header-offset, 0px);
  }

  body.tv-desktop-header-sticky .tv-site-header.tv-site-header--premium,
  body.tv-desktop-header-sticky .tv-site-header--premium {
    position: fixed;
    top: var(--tv-admin-bar-offset, 0px);
    left: 0;
    right: 0;
    width: 100%;
    z-index: 80;
    box-shadow: 0 14px 32px rgba(15, 23, 42, .08);
    animation: tvHeaderSlideDown .22s ease;
  }
}
.tv-logo { display:flex; align-items:center; gap:12px; font-weight:700; }
.tv-logo__mark { width:42px; height:42px; border-radius:14px; background:linear-gradient(135deg, var(--tv-primary), #14b8a6); color:#fff; display:grid; place-items:center; }
.tv-nav .menu { display:flex; list-style:none; gap:20px; margin:0; padding:0; }
.tv-header-actions { display:flex; gap:12px; }
.tv-btn {
  display:inline-flex; align-items:center; justify-content:center; padding:12px 18px; border-radius:999px; background:var(--tv-primary); color:#fff; font-weight:600; border:1px solid var(--tv-primary); cursor:pointer;
}
.tv-btn--ghost { background:#fff; color:var(--tv-primary); }
.tv-hero { padding: 56px 0 22px; }
.tv-hero__inner { display:grid; grid-template-columns: 1.6fr .8fr; gap:24px; align-items:stretch; }
.tv-kicker { color:var(--tv-primary); font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.tv-hero h1 { font-size: clamp(2rem, 4vw, 3.75rem); line-height:1.08; margin: 12px 0 16px; }
.tv-hero__actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:24px; }
.tv-hero__card,
.tv-card,
.tv-submit-form-card,
.tv-register-card { background:var(--tv-surface); border:1px solid var(--tv-border); border-radius:var(--tv-radius); box-shadow:var(--tv-shadow); }
.tv-hero__card { padding:24px; }
.tv-section { padding: 22px 0 38px; }
.tv-section--alt { background: linear-gradient(180deg, rgba(15,118,110,.03), rgba(15,118,110,.00)); }
.tv-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:20px; }
.tv-section-head h2 { margin:0 0 6px; font-size: clamp(1.4rem, 2vw, 2rem); }
.tv-section-head p { margin:0; color:var(--tv-muted); }
.tv-grid { display:grid; gap:20px; }
.tv-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tv-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tv-card { overflow:hidden; }
.tv-card__image { aspect-ratio: 16/10; background:#f1f5f9; }
.tv-card__image img { width:100%; height:100%; object-fit:cover; }
.tv-card__body { padding:18px; }
.tv-badge { display:inline-flex; padding:6px 10px; border-radius:999px; background:#ecfeff; color:var(--tv-primary-dark); font-size:.85rem; font-weight:700; }
.tv-badge--verified { background:#eff6ff; color:var(--tv-verified); }
.tv-meta-row, .tv-stats { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.tv-location { color:var(--tv-muted); font-weight:600; }
.tv-stats { margin-top:12px; color:var(--tv-muted); }
.tv-ranking-table-wrap { overflow:auto; background:#fff; border:1px solid var(--tv-border); border-radius:var(--tv-radius); box-shadow:var(--tv-shadow); }
.tv-ranking-table { width:100%; border-collapse:collapse; min-width:720px; }
.tv-ranking-table th, .tv-ranking-table td { padding:14px 16px; border-bottom:1px solid var(--tv-border); text-align:left; }
.tv-ranking-table thead th { background:#f8fafc; }
.tv-submit-wrap { display:grid; grid-template-columns: minmax(0, 1.7fr) minmax(300px, .8fr); gap:24px; align-items:start; }
.tv-submit-form-card, .tv-register-card { padding:20px; }
.tv-form-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:16px; }
.tv-form-grid__full { grid-column: 1 / -1; }
.tv-form label { display:flex; flex-direction:column; gap:8px; font-weight:600; }
.tv-form input, .tv-form textarea, .tv-form select {
  width:100%; border:1px solid var(--tv-border); border-radius:14px; padding:12px 14px; font:inherit; background:#fff;
}

.tv-form select {
  width:100%; border:1px solid var(--tv-border); border-radius:14px; padding:12px 14px; font:inherit; background:#fff;
}
.tv-form select:disabled, .tv-form input:disabled {
  background:#f8fafc; color:#98a2b3; cursor:not-allowed;
}
.tv-address-detail-field.is-hidden {
  display:none;
}

.tv-demo-note { margin: 16px 0; padding:12px 14px; background:#fffbeb; border:1px solid #fde68a; border-radius:14px; color:#92400e; }
.tv-account-grid { display:grid; grid-template-columns: 320px 1fr; gap:24px; }
.tv-account-menu { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.tv-account-menu a { display:block; padding:10px 12px; border-radius:12px; background:#f8fafc; }
.tv-site-footer { margin-top: 36px; border-top:1px solid var(--tv-border); background:#fff; }
.tv-site-footer__inner { display:flex; justify-content:space-between; gap:20px; padding:24px 0; }
.tv-content-single { max-width: 860px; }
.tv-content-single--listing { max-width: 1080px; }

.tv-container--wide { width: min(1360px, calc(100% - 32px)); }
.tv-grid--listings { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1200px) { .tv-grid--listings { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tv-entry-content > *:first-child { margin-top:0; }
.tv-toast {
  position: fixed; right: 20px; bottom: 20px; padding: 14px 16px; background: #111827; color:#fff; border-radius: 14px; opacity:0; visibility:hidden; transform:translateY(8px); transition: all .25s ease; z-index: 100;
}
.tv-toast.is-show { opacity:1; visibility:visible; transform:translateY(0); }
@media (max-width: 991px) {
  .tv-nav { display:none; }
  .tv-hero__inner, .tv-submit-wrap, .tv-account-grid, .tv-grid--3, .tv-grid--2, .tv-grid--listings { grid-template-columns: 1fr; }
  .tv-header-actions { display:none; }
}
@media (max-width: 640px) {
  .tv-container { width: min(100% - 20px, 1180px); }
  .tv-container--wide { width: min(100% - 20px, 1360px); }
  .tv-hero { padding-top: 28px; }
  .tv-form-grid { grid-template-columns: 1fr; }
  .tv-site-footer__inner, .tv-section-head { flex-direction:column; align-items:flex-start; }
}


.tv-repeatable {
  display: grid;
  gap: 10px;
}
.tv-repeatable__head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-weight:600;
}
.tv-repeatable__items {
  display:grid;
  gap:10px;
}
.tv-repeatable__item {
  display:grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap:10px;
  align-items:center;
}
.tv-repeatable__item.is-single {
  grid-template-columns: minmax(0, 1fr);
}
.tv-icon-btn,
.tv-remove-btn {
  width:42px;
  height:42px;
  border:none;
  border-radius:14px;
  display:inline-grid;
  place-items:center;
  cursor:pointer;
  font:inherit;
  font-size:1.35rem;
  line-height:1;
}
.tv-icon-btn {
  background: var(--tv-primary);
  color:#fff;
}
.tv-remove-btn {
  background:#fef2f2;
  color:#b91c1c;
}
.tv-field-note {
  margin:0;
  color:var(--tv-muted);
  font-size:.95rem;
  font-weight:500;
}


.tv-ranking--desktop { display:block; }
.tv-ranking--mobile { display:none; }

.tv-ranking-mobile {
  display:grid;
  gap:12px;
}
.tv-ranking-item {
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:12px;
  align-items:center;
  padding:14px;
  background:#fff;
  border:1px solid var(--tv-border);
  border-radius:16px;
  box-shadow:var(--tv-shadow);
}
.tv-ranking-item__rank {
  min-width:46px;
  height:46px;
  border-radius:999px;
  background:#ecfeff;
  color:var(--tv-primary-dark);
  display:grid;
  place-items:center;
  font-weight:800;
}
.tv-ranking-item__title {
  margin:0 0 4px;
  font-size:1rem;
  line-height:1.35;
}
.tv-ranking-item__meta {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  color:var(--tv-muted);
  font-size:.95rem;
}
.tv-ranking-item__score {
  text-align:right;
  display:grid;
  gap:2px;
  color:var(--tv-muted);
  font-size:.85rem;
}
.tv-ranking-item__score strong {
  color:var(--tv-text);
  font-size:1rem;
}

@media (max-width: 991px) {
  .tv-ranking--desktop { display:none !important; }
  .tv-ranking--mobile { display:grid !important; }
}

@media (max-width: 640px) {
  .tv-ranking-item {
    grid-template-columns:auto 1fr;
  }
  .tv-ranking-item__score {
    grid-column: 2 / 3;
    text-align:left;
  }
}



.tv-ranking-item {
  position: relative;
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  gap:14px;
  align-items:center;
  padding:16px;
  background:#fff;
  border:1px solid var(--tv-border);
  border-radius:18px;
  box-shadow:var(--tv-shadow);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.tv-ranking-item:hover {
  transform:translateY(-2px);
  box-shadow:0 16px 34px rgba(15, 23, 42, .08);
}
.tv-ranking-item__rank-wrap {
  display:grid;
  gap:8px;
  justify-items:center;
}
.tv-ranking-item__rank {
  min-width:48px;
  width:48px;
  height:48px;
  border-radius:999px;
  background:#ecfeff;
  color:var(--tv-primary-dark);
  display:grid;
  place-items:center;
  font-weight:800;
  box-shadow: inset 0 0 0 1px rgba(15,118,110,.08);
}
.tv-ranking-item__badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:4px 8px;
  border-radius:999px;
  background:#f8fafc;
  color:var(--tv-muted);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.04em;
  white-space:nowrap;
}
.tv-ranking-item__body {
  min-width:0;
}
.tv-ranking-item__title {
  margin:0 0 4px;
  font-size:1.06rem;
  line-height:1.35;
}
.tv-ranking-item__title a {
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.tv-ranking-item__meta {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  color:var(--tv-muted);
  font-size:.95rem;
}
.tv-ranking-item__score {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  gap:2px;
  white-space:nowrap;
  text-align:right;
  padding:10px 12px;
  min-width:78px;
  border-radius:14px;
  background:#f8fafc;
}
.tv-ranking-item__score span {
  color:var(--tv-muted);
  font-size:.8rem;
}
.tv-ranking-item__score strong {
  color:var(--tv-text);
  font-size:1.06rem;
  line-height:1;
}
.tv-ranking-item.is-top-1 {
  border-color:#f59e0b;
  background:linear-gradient(180deg, rgba(245,158,11,.10), #fff 42%);
}
.tv-ranking-item.is-top-1 .tv-ranking-item__rank,
.tv-ranking-item.is-top-1 .tv-ranking-item__badge {
  background:#fef3c7;
  color:#92400e;
}
.tv-ranking-item.is-top-2 {
  border-color:#cbd5e1;
  background:linear-gradient(180deg, rgba(148,163,184,.10), #fff 42%);
}
.tv-ranking-item.is-top-2 .tv-ranking-item__rank,
.tv-ranking-item.is-top-2 .tv-ranking-item__badge {
  background:#e2e8f0;
  color:#334155;
}
.tv-ranking-item.is-top-3 {
  border-color:#d6a97a;
  background:linear-gradient(180deg, rgba(214,169,122,.13), #fff 42%);
}
.tv-ranking-item.is-top-3 .tv-ranking-item__rank,
.tv-ranking-item.is-top-3 .tv-ranking-item__badge {
  background:#f5e1cf;
  color:#7c4a22;
}

@media (max-width: 640px) {
  .tv-ranking-item {
    grid-template-columns:auto minmax(0, 1fr) auto;
    gap:12px;
    padding:14px;
  }
}

@media (max-width: 480px) {
  .tv-ranking-item {
    grid-template-columns:auto 1fr;
  }
  .tv-ranking-item__score {
    grid-column:2 / 3;
    align-items:flex-start;
    text-align:left;
    width:max-content;
  }
}


.tv-ranking .tv-ranking--desktop { display:block; }
.tv-ranking .tv-ranking--mobile { display:none; }

.tv-page-hero {
  padding: 36px 0 8px;
}
.tv-breadcrumbs {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  color:var(--tv-muted);
  margin-bottom:18px;
  font-weight:500;
}
.tv-page-hero__content {
  display:grid;
  grid-template-columns:minmax(0, 1.4fr) minmax(260px, .6fr);
  gap:20px;
  align-items:start;
}
.tv-page-hero__meta {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}
.tv-page-hero__meta-item,
.tv-filter-card,
.tv-empty-state {
  background:#fff;
  border:1px solid var(--tv-border);
  border-radius:18px;
  box-shadow:var(--tv-shadow);
}
.tv-page-hero__meta-item {
  padding:18px;
}
.tv-page-hero__meta-item strong {
  display:block;
  font-size:1.6rem;
  line-height:1.1;
}
.tv-page-hero__meta-item span {
  color:var(--tv-muted);
}

.tv-ranking-page {
  display:grid;
  grid-template-columns:320px minmax(0, 1fr);
  gap:24px;
  align-items:start;
}
.tv-filter-card {
  padding:20px;
}
.tv-filter-card + .tv-filter-card {
  margin-top:16px;
}
.tv-filter-card h2,
.tv-filter-card h3 {
  margin:0 0 8px;
}
.tv-filter-card p {
  margin:0 0 14px;
  color:var(--tv-muted);
}
.tv-filter-card__list {
  margin:0;
  padding-left:18px;
  color:var(--tv-muted);
}
.tv-filter-form {
  display:grid;
  gap:14px;
}
.tv-filter-form label {
  display:grid;
  gap:8px;
  font-weight:600;
}
.tv-filter-form select {
  width:100%;
  border:1px solid var(--tv-border);
  border-radius:14px;
  padding:12px 14px;
  font:inherit;
  background:#fff;
}
.tv-filter-form__actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:6px;
}
.tv-results-head {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:18px;
}
.tv-results-head h2 {
  margin:0 0 6px;
}
.tv-results-head p {
  margin:0;
  color:var(--tv-muted);
}
.tv-results-chips {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.tv-chip {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  background:#ecfeff;
  color:var(--tv-primary-dark);
  font-size:.9rem;
  font-weight:700;
}
.tv-empty-state {
  padding:28px;
}
.tv-empty-state h3 {
  margin:0 0 8px;
}
.tv-empty-state p {
  margin:0;
  color:var(--tv-muted);
}

@media (max-width: 991px) {
  .tv-ranking .tv-ranking--desktop { display:none !important; }
  .tv-ranking .tv-ranking--mobile { display:grid !important; }
  .tv-ranking-page,
  .tv-page-hero__content {
    grid-template-columns:1fr;
  }
  .tv-results-head {
    flex-direction:column;
  }
}


/* v1.0.10 ranking mobile refinements */
.tv-ranking-item {
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
}
.tv-ranking-item__body {
  min-width: 0;
}
.tv-ranking-item__score {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  white-space: nowrap;
  align-self: center;
  margin-left: auto;
  min-width: 88px;
}
.tv-ranking-item__badge {
  min-width: 34px;
  padding: 4px 8px;
}
@media (min-width: 481px) {
  .tv-ranking-item {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
  }
  .tv-ranking-item__score {
    grid-column: auto !important;
    text-align: right !important;
    align-items: flex-end !important;
    width: auto !important;
  }
}
@media (max-width: 480px) {
  .tv-ranking-item {
    grid-template-columns: auto 1fr;
  }
  .tv-ranking-item__score {
    grid-column: 2 / 3;
    align-items: flex-start;
    text-align: left;
    width: max-content;
    margin-top: 6px;
    margin-left: 0;
  }
}


/* v1.0.12 use ranking cards on all devices */
.tv-ranking--cards {
  display: grid;
  gap: 14px;
}
.tv-ranking .tv-ranking--desktop,
.tv-ranking .tv-ranking--mobile {
  display: none !important;
}

@media (min-width: 992px) {
  .tv-ranking-item {
    padding: 18px 20px;
    gap: 16px;
  }
  .tv-ranking-item__rank {
    width: 56px;
    height: 56px;
    min-width: 56px;
    font-size: 1.05rem;
  }
  .tv-ranking-item__title {
    font-size: 1.18rem;
  }
  .tv-ranking-item__meta {
    font-size: 1rem;
  }
  .tv-ranking-item__score {
    min-width: 96px;
    padding: 12px 14px;
  }
  .tv-ranking-item__score strong {
    font-size: 1.18rem;
  }
}


.tv-media-field {
  grid-template-columns: minmax(0, 1fr) auto;
}
.tv-upload-btn {
  height: 46px;
  padding: 0 16px;
  border: 1px solid var(--tv-primary);
  border-radius: 14px;
  background: #fff;
  color: var(--tv-primary);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.tv-upload-btn:hover {
  background: #ecfeff;
}
@media (max-width: 640px) {
  .tv-media-field {
    grid-template-columns: 1fr;
  }
  .tv-upload-btn {
    width: 100%;
  }
}

.tv-image-preview {
  width: 100%;
  height: 140px;
  border: 1px dashed var(--tv-border);
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: #f8fafc;
  overflow: hidden;
}
.tv-image-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* v1.0.16 startup-level image preview */
.tv-image-preview--startup {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid var(--tv-border);
  background:
    radial-gradient(circle at top right, rgba(20,184,166,.18), transparent 28%),
    linear-gradient(135deg, #f8fafc, #e2e8f0);
  background-size: cover;
  background-position: center;
  box-shadow: 0 14px 32px rgba(15, 23, 42, .08);
  transition: transform .25s ease, box-shadow .25s ease;
}
.tv-image-preview--startup:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 40px rgba(15, 23, 42, .12);
}
.tv-image-preview--startup.has-image::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(15,23,42,.08), rgba(15,23,42,.10) 36%, rgba(15,23,42,.72));
}
.tv-image-preview__empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  gap: 6px;
  padding: 18px;
  color: var(--tv-muted);
}
.tv-image-preview--startup.has-image .tv-image-preview__empty {
  display: none;
}
.tv-image-preview__icon {
  display: inline-grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: rgba(255,255,255,.86);
  font-size: 1.35rem;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
}
.tv-image-preview__empty strong {
  display: block;
  color: var(--tv-text);
  font-size: 1rem;
}
.tv-image-preview__empty small {
  display: block;
  max-width: 260px;
  font-size: .9rem;
}
.tv-image-preview__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 16px;
  pointer-events: none;
}
.tv-image-preview__badge {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--tv-primary-dark);
  font-size: .78rem;
  font-weight: 800;
  box-shadow: 0 8px 20px rgba(15, 23, 42, .10);
}
.tv-image-preview__content {
  display: grid;
  gap: 4px;
}
.tv-image-preview__title,
.tv-image-preview__meta {
  color: #fff;
  text-shadow: 0 4px 18px rgba(0,0,0,.28);
}
.tv-image-preview__title {
  font-size: 1.12rem;
  line-height: 1.35;
}
.tv-image-preview__meta {
  font-size: .92rem;
  opacity: .92;
}
.tv-image-preview--startup:not(.has-image) .tv-image-preview__badge,
.tv-image-preview--startup:not(.has-image) .tv-image-preview__title,
.tv-image-preview--startup:not(.has-image) .tv-image-preview__meta {
  color: var(--tv-text);
  text-shadow: none;
}
.tv-image-preview--startup:not(.has-image) .tv-image-preview__content {
  margin-top: auto;
}
.tv-image-preview--startup:not(.has-image) .tv-image-preview__overlay {
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.78));
}
@media (max-width: 640px) {
  .tv-image-preview__overlay {
    padding: 14px;
  }
  .tv-image-preview__title {
    font-size: 1rem;
  }
  .tv-image-preview__meta {
    font-size: .88rem;
  }
}

.tv-image-preview__actions {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}

.tv-preview-btn {
  flex: 1;
  padding: 10px;
  border-radius: 12px;
  border: 1px solid var(--tv-primary);
  background: #fff;
  color: var(--tv-primary);
  font-weight: 600;
  cursor: pointer;
}

.tv-preview-btn:hover {
  background: #ecfeff;
}

.tv-preview-btn--danger {
  border-color: #ef4444;
  color: #ef4444;
}

.tv-preview-btn--danger:hover {
  background: #fee2e2;
}

.tv-image-preview__actions.is-hidden {
  display: none;
}


/* Theme + auth integration */
html.tv-auth-modal-open,
html.tv-auth-modal-open body {
  overflow: hidden;
}
.tv-auth-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  isolation: isolate;
  display: none;
}
.tv-auth-modal.is-open {
  display: block;
}
.tv-auth-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .58);
  backdrop-filter: blur(4px);
}
.tv-auth-modal__dialog {
  position: relative;
  width: min(860px, calc(100% - 24px));
  max-height: calc(100dvh - 24px);
  overflow: auto;
  margin: 12px auto;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 30px 80px rgba(15, 23, 42, .25);
  z-index: 1;
}
.tv-auth-modal__head {
  padding: 22px 22px 0;
}
.tv-auth-modal__head h2 {
  margin: 0 0 6px;
}
.tv-auth-modal__head p {
  margin: 0;
  color: var(--tv-muted);
}
.tv-auth-modal__body {
  padding: 18px 22px 22px;
}
.tv-auth-modal__body .tv-auth {
  max-width: none;
  margin: 0;
  padding: 0;
  border: none;
  box-shadow: none;
}
.tv-auth-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 42px;
  height: 42px;
  border: none;
  border-radius: 999px;
  background: #f8fafc;
  color: #0f172a;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
}
@media (max-width: 640px) {
  .tv-auth-modal__dialog {
    width: min(100% - 12px, 860px);
    margin: 6px auto;
    border-radius: 18px;
    max-height: calc(100dvh - 12px);
  }
  .tv-auth-modal__head,
  .tv-auth-modal__body {
    padding-left: 16px;
    padding-right: 16px;
  }
}


.tv-theme-captcha {
  padding: 10px 0 4px;
}


.tv-account-link.is-active {
  background: #e6f4f1;
  color: var(--tv-primary-dark);
  font-weight: 700;
}
.tv-account-panel {
  display: none;
}
.tv-account-panel.is-active {
  display: block;
}


.tv-form input.is-invalid,
.tv-form textarea.is-invalid,
.tv-form select.is-invalid,
.tv-media-field input.is-invalid {
  border-color: #dc2626;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, .08);
}
.tv-field-error {
  margin-top: 8px;
  color: #b91c1c;
  font-size: .92rem;
  font-weight: 600;
}


.tv-ranking-hero__wrap {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
  gap: 24px;
  align-items: end;
}
.tv-ranking-hero__copy h1 { margin-bottom: 12px; }
.tv-ranking-hero__copy p { max-width: 780px; }
.tv-ranking-hero__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.tv-ranking-stat {
  background: #fff;
  border: 1px solid var(--tv-border);
  border-radius: 18px;
  padding: 18px;
  box-shadow: var(--tv-shadow);
}
.tv-ranking-stat strong {
  display: block;
  font-size: 2rem;
  line-height: 1;
  margin-bottom: 8px;
}
.tv-ranking-stat span { color: var(--tv-muted); font-weight: 600; }
.tv-ranking-period-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}
.tv-period-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid var(--tv-border);
  background: #fff;
  font-weight: 700;
  color: var(--tv-text);
  box-shadow: var(--tv-shadow);
}
.tv-period-pill.is-active {
  background: var(--tv-primary);
  color: #fff;
  border-color: var(--tv-primary);
}
.tv-section--ranking-page { padding-top: 8px; }
.tv-ranking-layout {
  display: grid;
  grid-template-columns: minmax(280px, .44fr) minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}
.tv-ranking-sidebar { display: grid; gap: 18px; }
.tv-filter-card--sticky { position: sticky; top: 92px; }
.tv-filter-card--soft { background: linear-gradient(180deg, rgba(15,118,110,.05), #fff); }
.tv-results-head--ranking { margin-bottom: 18px; }
.tv-ranking-featured {
  padding: 22px;
  border-radius: 24px;
  border: 1px solid #f59e0b;
  background: linear-gradient(180deg, rgba(245,158,11,.10), #fff 48%);
  box-shadow: 0 18px 38px rgba(15, 23, 42, .08);
  margin-bottom: 18px;
}
.tv-ranking-featured__badge {
  display: inline-flex;
  padding: 6px 12px;
  border-radius: 999px;
  background: #fef3c7;
  color: #92400e;
  font-size: .82rem;
  font-weight: 800;
  margin-bottom: 16px;
}
.tv-ranking-featured__content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
}
.tv-ranking-featured__main {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: center;
}
.tv-ranking-featured__rank {
  width: 72px;
  height: 72px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #fff7ed;
  color: #9a3412;
  font-size: 1.5rem;
  font-weight: 900;
  box-shadow: inset 0 0 0 1px rgba(245,158,11,.2);
}
.tv-ranking-featured h3 {
  margin: 0 0 8px;
  font-size: clamp(1.6rem, 2vw, 2rem);
  line-height: 1.18;
}
.tv-ranking-featured p {
  margin: 0;
  color: var(--tv-muted);
  font-size: 1rem;
  font-weight: 600;
}
.tv-ranking-featured__score {
  min-width: 132px;
  text-align: right;
  padding: 16px 18px;
  border-radius: 18px;
  background: rgba(255,255,255,.88);
}
.tv-ranking-featured__score span {
  display: block;
  color: var(--tv-muted);
  font-size: .9rem;
}
.tv-ranking-featured__score strong {
  display: block;
  margin-top: 4px;
  font-size: 2rem;
  line-height: 1;
}
.tv-ranking-list-wrap .tv-ranking-item { border-radius: 20px; }
@media (max-width: 1080px) {
  .tv-ranking-hero__wrap,
  .tv-ranking-layout { grid-template-columns: 1fr; }
  .tv-filter-card--sticky { position: static; }
}
@media (max-width: 700px) {
  .tv-ranking-hero__stats { grid-template-columns: 1fr; }
  .tv-ranking-featured__content { grid-template-columns: 1fr; }
  .tv-ranking-featured__score { text-align: left; width: max-content; }
}
/* v1.2.0 Professional UI refresh */
:root {
  --tv-bg: #f4f7fb;
  --tv-surface: #ffffff;
  --tv-surface-alt: #f8fafc;
  --tv-text: #0f172a;
  --tv-muted: #64748b;
  --tv-border: #e2e8f0;
  --tv-primary: #0f766e;
  --tv-primary-dark: #115e59;
  --tv-secondary: #0ea5e9;
  --tv-radius: 22px;
  --tv-shadow: 0 20px 50px rgba(15, 23, 42, .08);
  --tv-shadow-soft: 0 14px 30px rgba(15, 23, 42, .05);
}
body {
  background:
    radial-gradient(circle at top left, rgba(20,184,166,.08), transparent 30%),
    radial-gradient(circle at top right, rgba(14,165,233,.08), transparent 28%),
    var(--tv-bg);
}
.tv-site-main { overflow: clip; }
.tv-site-header {
  background: rgba(255,255,255,.78);
  box-shadow: 0 8px 26px rgba(15,23,42,.04);
}
.tv-site-header__inner { min-height: 82px; }
.tv-nav .menu li a {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 14px;
  border-radius: 999px;
  color: var(--tv-muted);
  font-weight: 700;
}
.tv-nav .menu li.current-menu-item a,
.tv-nav .menu li a:hover {
  background: rgba(15,118,110,.08);
  color: var(--tv-primary-dark);
}
.tv-btn {
  min-height: 46px;
  padding: 12px 20px;
  border-radius: 999px;
  box-shadow: 0 10px 20px rgba(15,118,110,.16);
}
.tv-btn--ghost {
  box-shadow: none;
  border-color: var(--tv-border);
}
.tv-hero--pro {
  padding: 58px 0 20px;
}
.tv-hero-pro__wrap {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr);
  gap: 24px;
  align-items: stretch;
}
.tv-hero-pro__content,
.tv-hero-pro__card,
.tv-section-callout,
.tv-surface-pro {
  background: rgba(255,255,255,.84);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(226,232,240,.85);
  box-shadow: var(--tv-shadow);
}
.tv-hero-pro__content {
  border-radius: 30px;
  padding: 34px;
  position: relative;
  overflow: hidden;
}
.tv-hero-pro__content::after {
  content: "";
  position: absolute;
  inset: auto -40px -46px auto;
  width: 180px;
  height: 180px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(20,184,166,.22), transparent 66%);
}
.tv-hero-pro__content h1 {
  margin: 12px 0 16px;
  font-size: clamp(2.4rem, 5vw, 4.8rem);
  line-height: 1.02;
  letter-spacing: -.03em;
}
.tv-hero-pro__content p {
  max-width: 760px;
  font-size: 1.06rem;
  color: var(--tv-muted);
}
.tv-hero-pro__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 26px 0 24px;
}
.tv-hero-pro__trust {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.tv-hero-pro__trust span {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--tv-border);
  font-weight: 700;
  color: var(--tv-muted);
}
.tv-hero-pro__panel {
  display: grid;
  gap: 18px;
}
.tv-hero-pro__card {
  border-radius: 24px;
  padding: 22px;
}
.tv-hero-pro__card-label {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--tv-muted);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tv-hero-pro__card--primary {
  background: linear-gradient(180deg, rgba(15,118,110,.12), rgba(255,255,255,.94));
}
.tv-hero-pro__card--primary strong {
  display: block;
  font-size: 2rem;
  line-height: 1;
  margin-bottom: 8px;
}
.tv-hero-pro__listing h3,
.tv-hero-pro__ranking h3 {
  margin: 0 0 8px;
  font-size: 1.3rem;
  line-height: 1.25;
}
.tv-hero-pro__listing p,
.tv-hero-pro__ranking p {
  margin: 0;
  color: var(--tv-muted);
  font-weight: 600;
}
.tv-hero-pro__mini-stats {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
  color: var(--tv-muted);
  font-weight: 700;
}
.tv-hero-pro__rank-badge {
  width: 58px;
  height: 58px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  margin-bottom: 12px;
  background: #fef3c7;
  color: #92400e;
  font-size: 1.2rem;
  font-weight: 900;
}
.tv-hero-pro__score {
  display: block;
  margin-top: 12px;
  font-size: 1.4rem;
}
.tv-section--compact {
  padding-top: 6px;
  padding-bottom: 14px;
}
.tv-feature-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.tv-feature-strip__item {
  padding: 20px 22px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid var(--tv-border);
  box-shadow: var(--tv-shadow-soft);
}
.tv-feature-strip__item strong {
  display: block;
  margin-bottom: 6px;
  font-size: 1.02rem;
}
.tv-feature-strip__item span {
  color: var(--tv-muted);
}
.tv-section-head {
  margin-bottom: 22px;
}
.tv-card,
.tv-submit-form-card,
.tv-register-card,
.tv-ranking-table-wrap {
  border-radius: 24px;
  border-color: rgba(226,232,240,.9);
  box-shadow: var(--tv-shadow-soft);
}
.tv-card {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.tv-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(15,23,42,.08);
}
.tv-card__body { padding: 20px; }
.tv-card__body h3 {
  margin: 10px 0 8px;
  font-size: 1.15rem;
  line-height: 1.32;
}
.tv-card__image {
  aspect-ratio: 16 / 9.5;
}
.tv-badge {
  min-height: 32px;
  padding: 6px 12px;
}
.tv-section-callout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  gap: 14px;
  align-items: center;
  margin-bottom: 18px;
  padding: 18px 20px;
  border-radius: 22px;
}
.tv-section-callout strong {
  display: block;
  font-size: .82rem;
  color: var(--tv-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 4px;
}
.tv-section-callout span {
  font-size: 1rem;
  font-weight: 700;
}
.tv-submit-wrap {
  gap: 24px;
}
.tv-register-card--pro {
  position: sticky;
  top: 96px;
}
.tv-register-benefits {
  display: grid;
  gap: 10px;
  padding-left: 18px;
  margin: 0 0 20px;
  color: var(--tv-muted);
}
.tv-form input,
.tv-form textarea,
.tv-form select {
  min-height: 50px;
  border-radius: 16px;
  border-color: #dbe3ef;
  background: #fff;
}
.tv-form textarea {
  min-height: 132px;
}
.tv-site-footer--pro {
  margin-top: 50px;
  background: linear-gradient(180deg, rgba(255,255,255,.94), #fff);
}
.tv-site-footer__grid {
  display: grid;
  grid-template-columns: 1.3fr repeat(3, minmax(0, .7fr));
  gap: 24px;
  padding: 34px 0 24px;
}
.tv-site-footer__desc {
  max-width: 420px;
  color: var(--tv-muted);
}
.tv-site-footer__grid h3 {
  margin: 0 0 12px;
  font-size: 1rem;
}
.tv-footer-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
  color: var(--tv-muted);
}
.tv-site-footer__bottom {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 16px 0 28px;
  border-top: 1px solid var(--tv-border);
  color: var(--tv-muted);
}
.tv-site-footer__bottom-links {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
@media (max-width: 1100px) {
  .tv-hero-pro__wrap,
  .tv-site-footer__grid,
  .tv-section-callout {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 991px) {
  .tv-feature-strip {
    grid-template-columns: 1fr;
  }
  .tv-register-card--pro {
    position: static;
  }
}
/* v1.2.1 Premium UI */
.tv-site-header--premium {
  position: sticky;
  top: 0;
  z-index: 40;
}
.tv-menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  border: 1px solid var(--tv-border);
  border-radius: 14px;
  background: #fff;
  padding: 10px;
  box-shadow: var(--tv-shadow-soft);
}
.tv-menu-toggle span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--tv-text);
  border-radius: 999px;
}
.tv-menu-toggle span + span {
  margin-top: 6px;
}
.tv-mobile-drawer {
  position: fixed;
  inset: 0;
  z-index: 70;
  pointer-events: none;
}
.tv-mobile-drawer.is-open {
  pointer-events: auto;
}
.tv-mobile-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .45);
  opacity: 0;
  transition: opacity .22s ease;
}
.tv-mobile-drawer__panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(88vw, 360px);
  height: 100%;
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(14px);
  border-left: 1px solid var(--tv-border);
  box-shadow: -20px 0 50px rgba(15,23,42,.12);
  padding: 22px;
  transform: translateX(100%);
  transition: transform .24s ease;
}
.tv-mobile-drawer.is-open .tv-mobile-drawer__backdrop {
  opacity: 1;
}
.tv-mobile-drawer.is-open .tv-mobile-drawer__panel {
  transform: translateX(0);
}
.tv-mobile-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
}
.tv-mobile-drawer__close {
  width: 42px;
  height: 42px;
  border: 1px solid var(--tv-border);
  border-radius: 12px;
  background: #fff;
  font-size: 1.4rem;
}
.tv-mobile-nav {
  display: grid;
  gap: 10px;
}
.tv-mobile-nav a {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 12px 14px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--tv-border);
  font-weight: 700;
}
.tv-auth-surface {
  max-width: 820px;
  margin: 0 auto;
}
.tv-account-shell {
  display: grid;
  grid-template-columns: minmax(280px, .36fr) minmax(0, 1fr);
  gap: 22px;
}
.tv-account-sidebar-premium {
  position: sticky;
  top: 100px;
}
.tv-account-profile {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: center;
  margin-bottom: 18px;
}
.tv-account-avatar {
  width: 58px;
  height: 58px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(135deg, var(--tv-primary), var(--tv-secondary));
  color: #fff;
  font-size: 1.3rem;
  font-weight: 900;
  box-shadow: 0 14px 28px rgba(15,118,110,.22);
}
.tv-account-avatar img,
.tv-account-avatar__image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.tv-account-avatar__initial {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.tv-account-avatar--large {
  width: 88px;
  height: 88px;
}
.tv-account-profile strong {
  display: block;
}
.tv-account-profile span {
  color: var(--tv-muted);
  font-size: .95rem;
}
.tv-account-sidebar-note {
  margin-top: 18px;
  padding: 16px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(15,118,110,.08), #fff);
  border: 1px solid var(--tv-border);
}
.tv-account-main {
  display: grid;
  gap: 18px;
}
.tv-account-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.tv-panel-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}
.tv-panel-head h1,
.tv-panel-head h2 {
  margin: 0 0 6px;
}
.tv-panel-head p {
  margin: 0;
  color: var(--tv-muted);
}
@media (max-width: 1080px) {
  .tv-account-shell {
    grid-template-columns: 1fr;
  }
  .tv-account-sidebar-premium {
    position: static;
  }
}
@media (max-width: 991px) {
  .tv-nav--desktop,
  .tv-header-actions--desktop {
    display: none;
  }
  .tv-menu-toggle {
    display: inline-block;
  }
  .tv-site-header__inner {
    justify-content: space-between;
    gap: 16px;
  }
  .tv-account-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .tv-account-stats {
    grid-template-columns: 1fr;
  }
  .tv-panel-head {
    flex-direction: column;
    align-items: flex-start;
  }
}


/* v1.3.0 full premium home refresh */
body {
  background:
    radial-gradient(circle at top left, rgba(20,184,166,.08), transparent 26%),
    radial-gradient(circle at top right, rgba(14,165,233,.10), transparent 24%),
    linear-gradient(180deg, #f8fbff 0%, #f3f7fb 46%, #f7fafc 100%);
}
.tv-site-header {
  backdrop-filter: blur(18px);
  background: rgba(255,255,255,.78);
  border-bottom: 1px solid rgba(226,232,240,.7);
}
.tv-home-hero {
  padding: 38px 0 26px;
}
.tv-home-hero__shell {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr);
  gap: 22px;
  align-items: stretch;
}
.tv-home-hero__content {
  position: relative;
  overflow: hidden;
  padding: 34px;
  border-radius: 34px;
  background:
    radial-gradient(circle at 12% 16%, rgba(167,243,208,.22), transparent 28%),
    radial-gradient(circle at 100% 100%, rgba(125,211,252,.18), transparent 26%),
    linear-gradient(135deg, rgba(15,23,42,.96), rgba(15,118,110,.92) 48%, rgba(14,165,233,.88));
  color: #fff;
  box-shadow: 0 30px 90px rgba(15, 23, 42, .16);
}
.tv-home-hero__content::before {
  content: "";
  position: absolute;
  inset: auto auto -64px -64px;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  filter: blur(10px);
}
.tv-home-hero__content h1 {
  margin: 12px 0 18px;
  font-size: clamp(2.9rem, 6vw, 5.2rem);
  line-height: .98;
  letter-spacing: -.045em;
  color: #f8fafc;
  max-width: 820px;
}
.tv-home-hero__content p {
  margin: 0;
  max-width: 740px;
  font-size: 1.08rem;
  color: rgba(255,255,255,.84);
}
.tv-home-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 26px 0 24px;
}
.tv-home-hero__actions .tv-btn--ghost {
  background: rgba(255,255,255,.12);
  color: #fff;
  border-color: rgba(255,255,255,.22);
}
.tv-home-hero__proofs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.tv-home-hero__proofs span {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
  color: #f8fafc;
  font-weight: 700;
}
.tv-home-hero__visual {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}
.tv-bento-card {
  position: relative;
  overflow: hidden;
  padding: 22px;
  border-radius: 28px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(226,232,240,.88);
  box-shadow: 0 16px 44px rgba(15,23,42,.08);
  backdrop-filter: blur(18px);
}
.tv-bento-card::after {
  content: "";
  position: absolute;
  inset: auto -36px -36px auto;
  width: 120px;
  height: 120px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(20,184,166,.12), transparent 68%);
}
.tv-bento-card--ranking { grid-column: span 7; min-height: 226px; }
.tv-bento-card--listing { grid-column: span 5; min-height: 226px; }
.tv-bento-card--metrics { grid-column: span 7; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.tv-bento-card--spotlight { grid-column: span 5; }
.tv-bento-card__eyebrow {
  display: inline-flex;
  margin-bottom: 12px;
  color: #64748b;
  font-size: .76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.tv-bento-card__rank {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #fef3c7;
  color: #92400e;
  font-weight: 900;
  font-size: 1.4rem;
  margin-bottom: 12px;
}
.tv-bento-card h3 {
  margin: 0 0 8px;
  font-size: 1.45rem;
  line-height: 1.2;
}
.tv-bento-card p {
  margin: 0;
  color: #64748b;
  font-weight: 600;
}
.tv-bento-card strong {
  display: block;
  margin-top: 14px;
  font-size: 1.6rem;
  line-height: 1;
}
.tv-bento-card__meta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 14px;
  color: #0f172a;
  font-weight: 700;
}
.tv-section--dense {
  padding-top: 4px;
  padding-bottom: 12px;
}
.tv-home-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.tv-metric-card {
  padding: 22px 24px;
  border-radius: 24px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(226,232,240,.9);
  box-shadow: 0 14px 34px rgba(15,23,42,.06);
}
.tv-metric-card span {
  display: block;
  color: #64748b;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 800;
}
.tv-metric-card strong {
  display: block;
  margin: 8px 0 10px;
  font-size: 1.35rem;
}
.tv-metric-card p {
  margin: 0;
  color: #64748b;
}
.tv-grid--premium {
  gap: 22px;
}
.tv-card {
  overflow: hidden;
  border-radius: 26px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(226,232,240,.95);
  box-shadow: 0 16px 42px rgba(15,23,42,.07);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.tv-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 56px rgba(15,23,42,.12);
  border-color: rgba(20,184,166,.24);
}
.tv-listing-card__image {
  position: relative;
  aspect-ratio: 16 / 11;
  display: block;
}
.tv-listing-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tv-listing-card__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, rgba(15,23,42,.82) 6%, rgba(15,23,42,.18) 54%, rgba(15,23,42,.04)),
    linear-gradient(135deg, rgba(15,118,110,.14), transparent 40%);
}
.tv-listing-card__topbar {
  position: absolute;
  inset: 16px 16px auto 16px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  z-index: 1;
}
.tv-badge--glass {
  background: rgba(255,255,255,.14);
  color: #fff;
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(14px);
}
.tv-listing-card__hero {
  position: absolute;
  inset: auto 16px 16px 16px;
  z-index: 1;
}
.tv-listing-card__hero strong {
  display: block;
  color: #fff;
  font-size: 1.34rem;
  line-height: 1.14;
  margin-bottom: 6px;
}
.tv-listing-card__hero span {
  color: rgba(255,255,255,.82);
  font-weight: 600;
}
.tv-card__body {
  padding: 18px 20px 20px;
}
.tv-listing-card__excerpt {
  margin: 0 0 14px;
  color: #64748b;
  line-height: 1.72;
}
.tv-stats--premium {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.tv-stats--premium span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #334155;
  font-weight: 700;
}
.tv-stats--premium span em {
  font-style: normal;
}
.tv-card-link {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  background: rgba(15,118,110,.08);
  color: #0f766e;
  font-weight: 800;
}
.tv-toplist-card--premium {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
}
.tv-toplist-card__media {
  position: relative;
  display: block;
  aspect-ratio: 1.7 / 1;
  overflow: hidden;
  border-radius: 24px 24px 0 0;
}
.tv-toplist-card__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.tv-toplist-card__media-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15,23,42,.05) 0%, rgba(15,23,42,.68) 100%);
}
.tv-toplist-card__media-icon {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  color: #0f766e;
  font-size: 1rem;
  font-weight: 900;
  z-index: 2;
}
.tv-toplist-card__period {
  position: absolute;
  left: 16px;
  bottom: 16px;
  z-index: 2;
}
.tv-toplist-card--premium::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, #0f766e, #0ea5e9);
}
.tv-toplist-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.tv-toplist-card__meta {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  color:#64748b;
  font-size:.83rem;
  font-weight:800;
}
.tv-toplist-card__meta span {
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(15,118,110,.07);
  color:#0f766e;
}
.tv-toplist-card__icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(15,118,110,.08);
  color: #0f766e;
  font-size: 1.1rem;
  font-weight: 900;
}
.tv-badge--soft {
  background: #ecfeff;
  color: #0f766e;
}
.tv-toplist-card__title {
  margin: 0 0 12px;
  font-size: clamp(1.6rem, 2vw, 2rem);
  line-height: 1.14;
  letter-spacing: -.03em;
  font-weight: 900;
  text-wrap: balance;
}
.tv-toplist-card.is-long .tv-toplist-card__title {
  font-size: clamp(1.42rem, 1.75vw, 1.72rem);
  line-height: 1.18;
}
.tv-toplist-card.is-short .tv-toplist-card__title {
  font-size: clamp(1.78rem, 2.2vw, 2.15rem);
}
.tv-toplist-card__title a {
  color: inherit;
  text-decoration:none;
  background-image: linear-gradient(transparent calc(100% - 5px), rgba(15,118,110,.16) 0);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  transition: color .18s ease, background-size .18s ease;
}
.tv-toplist-card__title a:hover {
  color: var(--tv-primary);
  background-size: 100% 88%;
}
.tv-toplist-card p {
  margin: 0;
  color: #64748b;
  line-height: 1.78;
  font-size: 1rem;
}
.tv-toplist-grid--archive .tv-toplist-card {
  height:100%;
}
.tv-toplist-card .tv-card__body {
  display:flex;
  flex-direction:column;
  gap:0;
}
.tv-toplist-card--archive .tv-card__body {
  padding-top: 18px;
}
.tv-toplist-page .tv-section-head--page {
  align-items: flex-start;
  gap: 20px;
}
.tv-toplist-hero-stats {
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
  min-width: 280px;
}
.tv-premium-callout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}
.tv-premium-callout__item {
  padding: 18px 20px;
  border-radius: 22px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(226,232,240,.94);
  box-shadow: 0 12px 28px rgba(15,23,42,.05);
}
.tv-premium-callout__item span {
  display: block;
  color: #64748b;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 800;
  margin-bottom: 6px;
}
.tv-premium-callout__item strong {
  display: block;
  font-size: 1.15rem;
  line-height: 1.35;
}
.tv-ranking-item {
  grid-template-columns: auto 1fr auto;
  padding: 20px 20px;
  border-radius: 24px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(226,232,240,.94);
  box-shadow: 0 12px 26px rgba(15,23,42,.05);
}
.tv-ranking-item.is-top-1 {
  background: linear-gradient(180deg, rgba(245,158,11,.10), rgba(255,255,255,.94));
}
.tv-ranking-item__rank {
  min-width: 50px;
  height: 50px;
  font-size: 1.1rem;
}
.tv-ranking-item__title {
  font-size: 1.28rem;
  line-height: 1.22;
}
.tv-ranking-item__meta {
  font-size: .98rem;
}
.tv-ranking-item__score {
  min-width: 84px;
  padding: 10px 14px;
  border-radius: 18px;
  background: rgba(248,250,252,.9);
}
.tv-home-submit-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  align-items: start;
}
.tv-submit-form-card--premium,
.tv-home-sidepanel__card {
  padding: 0;
  border-radius: 28px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(226,232,240,.94);
  box-shadow: 0 16px 42px rgba(15,23,42,.07);
}
.tv-submit-form-card--premium .tv-section-head {
  margin-bottom: 18px;
}
.tv-submit-form-card--premium {
  padding: 26px;
}
.tv-home-sidepanel {
  display: grid;
  gap: 18px;
  position: sticky;
  top: 96px;
}
.tv-home-sidepanel__card {
  padding: 24px;
}
.tv-home-sidepanel__card h3 {
  margin: 10px 0 14px;
  font-size: 1.95rem;
  line-height: 1.18;
}
.tv-home-sidepanel__card p {
  color: #64748b;
}
.tv-home-sidepanel__card--soft {
  background: linear-gradient(180deg, rgba(15,118,110,.08), rgba(255,255,255,.92));
}
.tv-home-sidepanel__list {
  margin: 0 0 18px;
  padding-left: 18px;
  display: grid;
  gap: 10px;
  color: #64748b;
}
.tv-home-sidepanel__signals {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.tv-home-sidepanel__signals span {
  display: inline-flex;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.8);
  border: 1px solid rgba(226,232,240,.9);
  font-weight: 700;
  color: #475569;
}
.tv-section-head h2 {
  font-size: clamp(2rem, 3vw, 2.75rem);
  line-height: 1.08;
  letter-spacing: -.03em;
}
.tv-section-head p {
  max-width: 760px;
}
@media (max-width: 1180px) {
  .tv-home-hero__shell,
  .tv-home-submit-shell {
    grid-template-columns: 1fr;
  }
  .tv-home-sidepanel {
    position: static;
  }
}
@media (max-width: 991px) {
  .tv-home-hero__visual {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
  .tv-bento-card--ranking,
  .tv-bento-card--listing,
  .tv-bento-card--metrics,
  .tv-bento-card--spotlight {
    grid-column: span 1;
  }
  .tv-home-metrics,
  .tv-premium-callout {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .tv-home-hero {
    padding-top: 22px;
  }
  .tv-home-hero__content,
  .tv-bento-card,
  .tv-submit-form-card--premium,
  .tv-home-sidepanel__card {
    border-radius: 22px;
  }
  .tv-home-hero__content {
    padding: 24px;
  }
  .tv-home-hero__visual {
    grid-template-columns: 1fr;
  }
  .tv-bento-card--metrics {
    grid-template-columns: 1fr;
  }
  .tv-card__body {
    padding: 16px 16px 18px;
  }
}


.tv-toplist-single .tv-card__body {
  padding: 28px;
}
.tv-toplist-single__hero {
  margin-bottom: 22px;
}
.tv-toplist-single__hero h1 {
  margin: 14px 0 10px;
}
.tv-toplist-single__excerpt {
  color: var(--tv-muted);
  font-size: 1.04rem;
  max-width: 760px;
}
.tv-toplist-faq {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--tv-border);
}
.tv-toplist-faq h2 {
  margin-bottom: 16px;
}
.tv-toplist-faq__items {
  display: grid;
  gap: 14px;
}
.tv-toplist-faq__item {
  padding: 18px;
  border: 1px solid var(--tv-border);
  border-radius: 18px;
  background: #fff;
}
.tv-toplist-faq__item h3 {
  margin: 0 0 8px;
  font-size: 1.02rem;
}
.tv-toplist-faq__item p {
  margin: 0;
  color: var(--tv-muted);
}


/* v1.3.2 Homepage refresh */
.tv-home-premium-hero {
  padding: 34px 0 14px;
}
.tv-home-premium-hero__main {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr);
  gap: 20px;
  align-items: stretch;
}
.tv-home-premium-hero__copy,
.tv-home-premium-hero__feature,
.tv-home-mini-card {
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.86));
  border: 1px solid rgba(226,232,240,.95);
  box-shadow: 0 24px 60px rgba(15,23,42,.08);
  backdrop-filter: blur(16px);
}
.tv-home-premium-hero__copy {
  padding: 34px;
  border-radius: 30px;
}
.tv-home-premium-hero__copy h1 {
  margin: 12px 0 16px;
  font-size: clamp(2.6rem, 5vw, 4.9rem);
  line-height: .98;
  letter-spacing: -.035em;
}
.tv-home-premium-hero__copy p {
  max-width: 760px;
  color: var(--tv-muted);
  font-size: 1.08rem;
}
.tv-home-premium-hero__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin: 24px 0 18px;
}
.tv-home-premium-hero__proofs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.tv-home-premium-hero__proofs span {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--tv-border);
  color: var(--tv-muted);
  font-weight: 700;
}
.tv-home-premium-hero__feature {
  border-radius: 30px;
  overflow: hidden;
  position: relative;
  min-height: 100%;
}
.tv-home-feature-card {
  height: 100%;
  padding: 30px;
  background:
    radial-gradient(circle at top right, rgba(14,165,233,.18), transparent 34%),
    radial-gradient(circle at bottom left, rgba(20,184,166,.22), transparent 30%),
    linear-gradient(135deg, #0f172a, #16243b);
  color: #fff;
}
.tv-home-feature-card__label,
.tv-home-mini-card__label {
  display: inline-block;
  margin-bottom: 12px;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tv-home-feature-card__rank {
  width: 68px;
  height: 68px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  margin-bottom: 16px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.18);
  font-size: 1.45rem;
  font-weight: 900;
}
.tv-home-feature-card h2 {
  margin: 0 0 10px;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  line-height: 1.08;
}
.tv-home-feature-card p {
  margin: 0 0 16px;
  color: rgba(255,255,255,.78);
  font-weight: 600;
}
.tv-home-feature-card__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.tv-home-feature-card__stats span,
.tv-home-feature-card__stats a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,.16);
  font-weight: 700;
}
.tv-home-premium-strip {
  display: grid;
  grid-template-columns: 1.05fr 1.05fr .9fr;
  gap: 18px;
  margin-top: 18px;
}
.tv-home-mini-card {
  padding: 22px 22px 20px;
  border-radius: 24px;
}
.tv-home-mini-card h3 {
  margin: 0 0 8px;
  font-size: 1.22rem;
  line-height: 1.28;
}
.tv-home-mini-card p {
  margin: 0;
  color: var(--tv-muted);
}
.tv-home-mini-card__meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
  color: var(--tv-muted);
  font-weight: 700;
}
.tv-home-mini-card__metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 6px;
}
.tv-home-mini-card__metrics div {
  padding: 14px;
  border-radius: 18px;
  background: #f8fafc;
  border: 1px solid var(--tv-border);
}
.tv-home-mini-card__metrics strong {
  display: block;
  font-size: 1.1rem;
  line-height: 1;
  margin-bottom: 6px;
}
.tv-home-mini-card__metrics span {
  color: var(--tv-muted);
  font-size: .92rem;
  font-weight: 600;
}
.tv-home-metrics--premium .tv-metric-card {
  background: #fff;
  border: 1px solid var(--tv-border);
  box-shadow: 0 18px 42px rgba(15,23,42,.06);
}
.tv-register-card--premium {
  position: sticky;
  top: 96px;
}
@media (max-width: 1150px) {
  .tv-home-premium-hero__main,
  .tv-home-premium-strip {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 991px) {
  body.tv-smart-nav-mobile-active .tv-listing-detail-pro__smart-nav.is-sticky {
    top: var(--tv-smart-nav-top, 0px);
    left: 12px;
    width: calc(100vw - 24px);
  }
}

@media (max-width: 767px) {
  .tv-home-premium-hero__copy,
  .tv-home-feature-card,
  .tv-home-mini-card {
    padding: 24px;
    border-radius: 24px;
  }
  .tv-home-premium-hero__copy h1 {
    font-size: clamp(2rem, 9vw, 3rem);
  }
  .tv-home-mini-card__metrics {
    grid-template-columns: 1fr;
  }
}


/* v1.3.3 Search hero */
.tv-search-hero {
  padding: 36px 0 14px;
}
.tv-search-hero__shell {
  display: grid;
  gap: 20px;
}
.tv-search-hero__main {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr);
  gap: 20px;
  align-items: stretch;
}
.tv-search-hero__content,
.tv-search-hero__visual,
.tv-search-hero-card {
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88));
  border: 1px solid rgba(226,232,240,.95);
  box-shadow: 0 24px 60px rgba(15,23,42,.08);
  backdrop-filter: blur(16px);
}
.tv-search-hero__content {
  padding: 34px;
  border-radius: 30px;
}
.tv-search-hero__content h1 {
  margin: 12px 0 16px;
  font-size: clamp(2.5rem, 5vw, 4.8rem);
  line-height: .98;
  letter-spacing: -.035em;
}
.tv-search-hero__content p {
  max-width: 760px;
  color: var(--tv-muted);
  font-size: 1.08rem;
}
.tv-hero-search {
  margin-top: 24px;
  padding: 18px;
  border-radius: 24px;
  background: linear-gradient(180deg, #ffffff, #f8fafc);
  border: 1px solid var(--tv-border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.tv-hero-search__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(180px, .8fr)) auto;
  gap: 12px;
  align-items: end;
}
.tv-hero-search__field {
  display: grid;
  gap: 8px;
}
.tv-hero-search__field span {
  font-size: .88rem;
  font-weight: 700;
  color: var(--tv-muted);
}
.tv-hero-search__field input,
.tv-hero-search__field select {
  width: 100%;
  min-height: 50px;
  border: 1px solid var(--tv-border);
  border-radius: 16px;
  padding: 12px 14px;
  background: #fff;
  font: inherit;
}
.tv-hero-search__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.tv-search-hero__chips {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 16px;
}
.tv-search-hero__chips a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--tv-border);
  color: var(--tv-muted);
  font-weight: 700;
}
.tv-search-hero__visual {
  border-radius: 30px;
  padding: 18px;
  display: grid;
  gap: 16px;
}
.tv-search-hero-card {
  border-radius: 24px;
  padding: 22px;
}
.tv-search-hero-card--primary {
  background:
    radial-gradient(circle at top right, rgba(14,165,233,.18), transparent 34%),
    radial-gradient(circle at bottom left, rgba(20,184,166,.22), transparent 30%),
    linear-gradient(135deg, #0f172a, #16243b);
  color: #fff;
}
.tv-search-hero-card__label {
  display: inline-block;
  margin-bottom: 12px;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tv-search-hero-card__rank {
  width: 64px;
  height: 64px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  margin-bottom: 16px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.18);
  font-size: 1.35rem;
  font-weight: 900;
}
.tv-search-hero-card--primary h2 {
  margin: 0 0 10px;
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  line-height: 1.08;
}
.tv-search-hero-card--primary p {
  margin: 0 0 16px;
  color: rgba(255,255,255,.78);
  font-weight: 600;
}
.tv-search-hero-card__meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.tv-search-hero-card__meta strong,
.tv-search-hero-card__meta a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: #fff;
  border: 1px solid rgba(255,255,255,.16);
  font-weight: 700;
}
.tv-search-hero__stack {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.tv-search-hero-card h3 {
  margin: 0 0 8px;
  font-size: 1.18rem;
  line-height: 1.28;
}
.tv-search-hero-card p {
  margin: 0;
  color: var(--tv-muted);
}
.tv-search-hero-card__mini {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 14px;
  color: var(--tv-muted);
  font-weight: 700;
}
@media (max-width: 1200px) {
  .tv-hero-search__grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 1080px) {
  .tv-search-hero__main,
  .tv-search-hero__stack {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .tv-search-hero__content,
  .tv-search-hero__visual,
  .tv-search-hero-card {
    padding: 24px;
    border-radius: 24px;
  }
  .tv-search-hero__content h1 {
    font-size: clamp(2rem, 9vw, 3rem);
  }
  .tv-hero-search__grid {
    grid-template-columns: 1fr;
  }
}


/* v1.3.4 Account page refresh */
.tv-account-page {
  padding-top: 28px;
}
.tv-account-v2 {
  display: grid;
  grid-template-columns: 290px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.tv-account-v2__sidebar {
  position: sticky;
  top: 92px;
}
.tv-account-v2__profile-card,
.tv-account-panel-card {
  border-radius: 26px;
  box-shadow: 0 20px 52px rgba(15, 23, 42, .07);
}
.tv-account-v2__profile {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: center;
  margin-bottom: 18px;
}
.tv-account-v2__profile-text strong {
  display: block;
  font-size: 1.1rem;
}
.tv-account-v2__profile-text span {
  color: var(--tv-muted);
  word-break: break-word;
}
.tv-account-v2__menu {
  display: grid;
  gap: 10px;
}
.tv-account-link {
  display: block;
  padding: 14px 16px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px solid transparent;
  color: var(--tv-text);
  font-weight: 700;
}
.tv-account-link:hover,
.tv-account-link.is-active {
  background: #e7f5f2;
  border-color: rgba(15,118,110,.12);
  color: var(--tv-primary-dark);
}
.tv-account-v2__note {
  margin-top: 18px;
  padding: 18px;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(15,118,110,.07), #fff);
  border: 1px solid var(--tv-border);
}
.tv-account-v2__note strong {
  display: block;
  margin-bottom: 8px;
}
.tv-account-v2__note p {
  margin: 0;
  color: var(--tv-muted);
}
.tv-account-v2__main {
  display: grid;
  gap: 18px;
}
.tv-account-v2__hero {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-end;
  padding: 6px 4px 2px;
}
.tv-account-v2__hero h1 {
  margin: 8px 0 10px;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.03;
}
.tv-account-v2__hero p {
  margin: 0;
  color: var(--tv-muted);
  max-width: 720px;
}
.tv-account-stats--v2 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.tv-stat-card {
  padding: 18px;
  border-radius: 22px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(226,232,240,.95);
  box-shadow: 0 16px 42px rgba(15, 23, 42, .06);
}
.tv-stat-card__label {
  display: block;
  margin-bottom: 10px;
  color: var(--tv-muted);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tv-stat-card__value {
  display: block;
  font-size: clamp(1.8rem, 2.4vw, 2.6rem);
  line-height: 1;
  margin-bottom: 8px;
}
.tv-stat-card small {
  color: var(--tv-muted);
}
.tv-account-overview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}
.tv-account-overview-tile {
  padding: 18px;
  border-radius: 22px;
  background: linear-gradient(180deg, #fff, #f8fafc);
  border: 1px solid var(--tv-border);
}
.tv-account-overview-tile__label {
  display: inline-block;
  margin-bottom: 10px;
  color: var(--tv-muted);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tv-account-overview-tile strong {
  display: block;
  margin-bottom: 8px;
  font-size: 1.1rem;
}
.tv-account-overview-tile p {
  margin: 0;
  color: var(--tv-muted);
}
.tv-account-list-preview__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.tv-account-list-preview__head h3 {
  margin: 0;
}
.tv-account-inline-link {
  color: var(--tv-primary-dark);
  font-weight: 700;
}
.tv-account-list-cards {
  display: grid;
  gap: 12px;
}
.tv-account-list-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 18px;
  background: linear-gradient(180deg, #fff, #fbfdff);
  border: 1px solid var(--tv-border);
}
.tv-account-list-card__main h4 {
  margin: 0 0 6px;
  font-size: 1.05rem;
}
.tv-account-list-card__main p {
  margin: 0;
  color: var(--tv-muted);
}
.tv-account-list-card__score,
.tv-account-list-card__meta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  color: var(--tv-muted);
  font-weight: 700;
}
.tv-account-list-card__score {
  min-width: 54px;
  min-height: 54px;
  justify-content: center;
  border-radius: 16px;
  background: #f8fafc;
  color: var(--tv-text);
}
.tv-empty-state--soft {
  background: linear-gradient(180deg, #fff, #fbfdff);
}
@media (max-width: 1080px) {
  .tv-account-v2 {
    grid-template-columns: 1fr;
  }
  .tv-account-v2__sidebar {
    position: static;
  }
  .tv-account-stats--v2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .tv-account-v2__hero,
  .tv-account-list-preview__head {
    flex-direction: column;
    align-items: flex-start;
  }
  .tv-account-overview-grid,
  .tv-account-stats--v2 {
    grid-template-columns: 1fr;
  }
  .tv-account-list-card {
    grid-template-columns: 1fr;
  }
}


/* v1.3.5 search page + header search */
.tv-search-toggle {
  width: 46px;
  height: 46px;
  border-radius: 999px;
  border: 1px solid var(--tv-border);
  background: #fff;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
  color: var(--tv-primary-dark);
  box-shadow: 0 10px 20px rgba(15, 23, 42, .05);
}
.tv-search-toggle svg {
  width: 22px;
  height: 22px;
  fill: currentColor;
}
.tv-mobile-drawer__head-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.tv-search-page-hero__inner {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: end;
  margin-bottom: 20px;
}
.tv-search-page-hero__count {
  min-width: 150px;
  padding: 18px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid var(--tv-border);
  box-shadow: var(--tv-shadow);
  text-align: center;
}
.tv-search-page-hero__count strong {
  display: block;
  font-size: 2rem;
  line-height: 1;
  margin-bottom: 8px;
}
.tv-search-page-form {
  padding: 18px;
  border-radius: 24px;
  background: #fff;
  border: 1px solid var(--tv-border);
  box-shadow: var(--tv-shadow);
}
.tv-search-page-form__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(180px, .75fr)) auto;
  gap: 12px;
  align-items: end;
}
.tv-search-page-form label {
  display: grid;
  gap: 8px;
  font-weight: 600;
}
.tv-search-page-form input,
.tv-search-page-form select {
  width: 100%;
  min-height: 50px;
  border: 1px solid var(--tv-border);
  border-radius: 16px;
  padding: 12px 14px;
  background: #fff;
  font: inherit;
}
.tv-search-page-form__actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.tv-search-results-grid {
  display: grid;
  gap: 18px;
}
.tv-search-result-card {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 18px;
  background: #fff;
  border: 1px solid var(--tv-border);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--tv-shadow);
}
.tv-search-result-card__image {
  min-height: 220px;
  background: #eef2f7;
}
.tv-search-result-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tv-search-result-card__body {
  padding: 20px 20px 20px 0;
}
.tv-search-result-card__body h2 {
  margin: 10px 0 10px;
  font-size: 1.45rem;
  line-height: 1.2;
}
.tv-search-result-card__body p {
  margin: 0 0 12px;
  color: var(--tv-muted);
}
.tv-search-result-card__meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  color: var(--tv-muted);
  font-weight: 600;
}
.tv-search-modal {
  position: fixed;
  inset: 0;
  z-index: 2147482900;
  isolation: isolate;
  display: none;
}
.tv-search-modal.is-open {
  display: block;
}
.tv-search-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15,23,42,.45);
}
.tv-search-modal__dialog {
  position: relative;
  width: min(720px, calc(100% - 24px));
  margin: 80px auto 0;
  padding: 26px;
  border-radius: 28px;
  background: #fff;
  border: 1px solid var(--tv-border);
  box-shadow: 0 30px 80px rgba(15,23,42,.2);
}
.tv-search-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid var(--tv-border);
  background: #fff;
  cursor: pointer;
  font-size: 1.4rem;
}
.tv-search-modal__head {
  margin-bottom: 16px;
}
.tv-search-modal__head h2 {
  margin: 0 0 6px;
}
.tv-search-modal__head p {
  margin: 0;
  color: var(--tv-muted);
}
.tv-search-modal__form {
  display: grid;
  gap: 14px;
}
.tv-search-modal__form label {
  display: grid;
  gap: 8px;
  font-weight: 600;
}
.tv-search-modal__form input {
  width: 100%;
  min-height: 50px;
  border: 1px solid var(--tv-border);
  border-radius: 16px;
  padding: 12px 14px;
}
@media (max-width: 1080px) {
  .tv-search-page-form__grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 767px) {
  .tv-search-page-hero__inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .tv-search-page-form__grid,
  .tv-search-result-card {
    grid-template-columns: 1fr;
  }
  .tv-search-result-card__body {
    padding: 18px;
  }
}


/* v1.3.6.1 real search integration */
.tv-search-result-card__meta span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid var(--tv-border);
}


/* v1.3.6.3 search bug fixes */
.tv-search-modal__form select {
  width: 100%;
  min-height: 50px;
  border: 1px solid var(--tv-border);
  border-radius: 16px;
  padding: 12px 14px;
  background: #fff;
  font: inherit;
}


/* v1.3.6.4 polished search UX */
.tv-search-modal__dialog {
  width: min(980px, calc(100% - 24px));
  padding: 28px;
  border-radius: 30px;
}
.tv-search-modal__head {
  margin-bottom: 18px;
}
.tv-search-modal__head h2 {
  font-size: clamp(1.9rem, 3vw, 2.4rem);
}
.tv-search-modal__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(190px, .8fr) minmax(190px, .8fr);
  gap: 14px;
  align-items: end;
}
.tv-search-modal__field {
  display: grid;
  gap: 8px;
}
.tv-search-modal__field span {
  font-size: .9rem;
  font-weight: 700;
  color: var(--tv-muted);
}
.tv-search-modal__form input,
.tv-search-modal__form select {
  width: 100%;
  min-height: 54px;
  border: 1px solid var(--tv-border);
  border-radius: 18px;
  padding: 12px 16px;
  background: #fff;
  font: inherit;
}
.tv-search-modal__form select {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, #667085 50%),
    linear-gradient(135deg, #667085 50%, transparent 50%);
  background-position:
    calc(100% - 22px) calc(50% - 3px),
    calc(100% - 16px) calc(50% - 3px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 42px;
}
.tv-search-modal__actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 18px;
}
.tv-search-modal__actions .tv-btn {
  min-width: 180px;
  min-height: 52px;
  font-size: 1rem;
}
@media (max-width: 820px) {
  .tv-search-modal__grid {
    grid-template-columns: 1fr;
  }
  .tv-search-modal__actions {
    justify-content: stretch;
  }
  .tv-search-modal__actions .tv-btn {
    width: 100%;
  }
}


/* v1.3.7 mobile header + drawer upgrade */
body.tv-mobile-menu-open,
body.tv-search-modal-open {
  overflow: hidden;
}
.tv-mobile-header-actions {
  display: none;
  align-items: center;
  gap: 10px;
}
.tv-mobile-drawer {
  position: fixed;
  inset: 0;
  z-index: 120;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .24s ease, visibility .24s ease;
}
.tv-mobile-drawer.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.tv-mobile-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .5);
  backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity .24s ease;
}
.tv-mobile-drawer__panel {
  position: absolute;
  top: 0;
  left: 0;
  width: min(88vw, 360px);
  max-width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.95));
  backdrop-filter: blur(18px);
  border-right: 1px solid var(--tv-border);
  box-shadow: 22px 0 60px rgba(15,23,42,.16);
  padding: 22px 18px 24px;
  transform: translateX(-100%);
  transition: transform .28s ease;
  overflow-y: auto;
}
.tv-mobile-drawer.is-open .tv-mobile-drawer__backdrop {
  opacity: 1;
}
.tv-mobile-drawer.is-open .tv-mobile-drawer__panel {
  transform: translateX(0);
}
.tv-mobile-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
}
.tv-mobile-drawer__brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-weight: 800;
  font-size: 1.05rem;
}
.tv-mobile-drawer__label {
  display: inline-block;
  margin-bottom: 12px;
  color: var(--tv-muted);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tv-mobile-drawer__section + .tv-mobile-drawer__section {
  margin-top: 18px;
}
.tv-mobile-drawer__actions {
  display: grid;
  gap: 10px;
}
.tv-mobile-drawer__actions .tv-btn {
  width: 100%;
}
.tv-mobile-drawer__search {
  justify-content: flex-start;
}
.tv-search-modal {
  z-index: 2147482900;
}
@media (max-width: 991px) {
  .tv-header-actions--desktop,
  .tv-nav--desktop {
    display: none !important;
  }
  .tv-mobile-header-actions {
    display: inline-flex;
  }
  .tv-menu-toggle {
    display: inline-grid;
    place-items: center;
  }
  .tv-site-header__inner {
    min-height: 74px;
  }
}


/* v1.3.7.1 mobile drawer containment fix */
.tv-mobile-drawer {
  position: fixed !important;
  inset: 0 !important;
}
.tv-mobile-drawer__panel {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.tv-mobile-nav {
  display: grid;
  gap: 10px;
}
.tv-mobile-nav a {
  position: relative;
  z-index: 2;
}


.tv-listing-single {
  overflow: hidden;
  border-radius: 28px;
}
.tv-listing-single__media {
  aspect-ratio: 16 / 6.5;
  background: linear-gradient(180deg, #eff7f6 0%, #e7eef5 100%);
}
.tv-listing-single__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tv-listing-single__body {
  display: grid;
  gap: 28px;
}
.tv-listing-single__hero {
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(250px, .8fr);
  gap: 22px;
  align-items: start;
}
.tv-listing-single__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #edf9f6;
  color: var(--tv-primary-dark);
  font-weight: 700;
  font-size: .85rem;
  margin-bottom: 14px;
}
.tv-listing-single__head {
  display: grid;
  gap: 16px;
}
.tv-listing-single__head h1 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.08;
}
.tv-listing-single__excerpt {
  margin: 10px 0 0;
  color: var(--tv-muted);
  font-size: 1.06rem;
  line-height: 1.8;
  max-width: 68ch;
}
.tv-listing-single__badges {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.tv-listing-single__quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.tv-listing-quick-pill {
  display: inline-flex;
  align-items: center;
  padding: 11px 16px;
  border-radius: 999px;
  background: #f7fafc;
  border: 1px solid var(--tv-border);
  color: var(--tv-text);
  font-weight: 600;
}
.tv-listing-quick-pill--link {
  background: #fff;
  color: var(--tv-primary-dark);
}
.tv-listing-single__summary {
  display: grid;
  gap: 14px;
}
.tv-listing-summary-card {
  display: grid;
  gap: 6px;
  padding: 22px;
  border: 1px solid var(--tv-border);
  border-radius: 24px;
  background: linear-gradient(180deg, #f8fffd 0%, #ffffff 100%);
  box-shadow: 0 18px 45px rgba(15, 23, 42, .05);
}
.tv-listing-summary-card__label {
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--tv-primary);
}
.tv-listing-summary-card__score {
  font-size: clamp(2.6rem, 5vw, 3.4rem);
  line-height: 1;
  font-weight: 800;
  color: var(--tv-text);
}
.tv-listing-summary-card__meta,
.tv-listing-summary-card__value {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--tv-text);
}
.tv-listing-summary-card--compact {
  background: #f8fafc;
  box-shadow: none;
}
.tv-listing-single__info-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.tv-listing-info-card {
  display: grid;
  gap: 8px;
  padding: 20px;
  background: #f8fafc;
  border: 1px solid var(--tv-border);
  border-radius: 22px;
}
.tv-listing-info-card__label,
.tv-listing-links-group__label {
  font-size: .8rem;
  font-weight: 700;
  color: var(--tv-primary);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.tv-listing-info-card strong {
  font-size: 1.05rem;
  line-height: 1.5;
}
.tv-listing-info-card span {
  color: var(--tv-muted);
}
.tv-listing-info-card a {
  color: var(--tv-primary-dark);
  font-weight: 700;
}
.tv-listing-single__contact-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.tv-listing-links-group {
  display: grid;
  gap: 12px;
}
.tv-listing-links-group--panel {
  padding: 20px;
  border-radius: 22px;
  border: 1px solid var(--tv-border);
  background: #fff;
}
.tv-listing-chip-list {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.tv-listing-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid var(--tv-border);
  background: #f8fafc;
  font-weight: 700;
  color: var(--tv-primary-dark);
}
.tv-entry-content--pro {
  padding: 28px;
  border-radius: 24px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
  border: 1px solid var(--tv-border);
}
@media (max-width: 991px) {
  .tv-content-single--listing {
    max-width: 100%;
  }
  .tv-listing-single__hero,
  .tv-listing-single__info-grid,
  .tv-listing-single__contact-panels {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .tv-listing-single__body {
    gap: 20px;
  }
  .tv-listing-single__head h1 {
    font-size: 2rem;
  }
  .tv-entry-content--pro {
    padding: 20px;
  }
}


/* Detail page 1.1.0 */
.tv-container--narrow { max-width: 1120px; }
.tv-listing-detail-pro { display: grid; gap: 28px; }
.tv-listing-hero-pro__media { position: relative; min-height: 420px; border-radius: 34px; overflow: hidden; background: #dfe9f3; box-shadow: 0 28px 70px rgba(15, 23, 42, .12); }
.tv-listing-hero-pro__media img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; display: block; }
.tv-listing-hero-pro__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 23, 42, .08) 0%, rgba(15, 23, 42, .18) 38%, rgba(15, 23, 42, .68) 100%); }
.tv-listing-hero-pro__top, .tv-listing-hero-pro__bottom { position: absolute; left: 28px; right: 28px; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.tv-listing-hero-pro__top { top: 28px; }
.tv-listing-hero-pro__bottom { bottom: 28px; }
.tv-listing-hero-pro__pill, .tv-listing-hero-pro__badge, .tv-listing-hero-pro__verified, .tv-listing-hero-pro__views, .tv-nearby-card__distance { display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px; border-radius: 999px; font-weight: 700; line-height: 1; backdrop-filter: blur(8px); }
.tv-listing-hero-pro__pill { background: rgba(255,255,255,.18); color: #fff; border: 1px solid rgba(255,255,255,.18); }
.tv-listing-hero-pro__pill--sm { padding: 8px 12px; font-size: 13px; }
.tv-listing-hero-pro__verified { background: rgba(237, 247, 255, .94); color: #1d4ed8; }
.tv-listing-hero-pro__verified svg, .tv-listing-hero-pro__views svg, .tv-listing-detail-pro__address-icon svg, .tv-social-icon-link svg { width: 18px; height: 18px; fill: currentColor; display: block; }
.tv-listing-hero-pro__badge { background: rgba(13, 148, 136, .92); color: #fff; }
.tv-listing-hero-pro__views { background: rgba(15, 23, 42, .72); color: #fff; }
.tv-listing-detail-pro__content-card { border: 1px solid #dceaf2; border-radius: 30px; box-shadow: 0 18px 45px rgba(15, 23, 42, .06); }
.tv-listing-detail-pro__content { padding: 34px; display: grid; gap: 28px; }
.tv-listing-detail-pro__heading { display: grid; gap: 18px; }
.tv-listing-detail-pro__title-wrap { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.tv-listing-detail-pro__title-wrap h1 { margin: 0; font-size: clamp(34px, 4vw, 54px); line-height: 1.05; }
.tv-listing-detail-pro__score { min-width: 170px; display: grid; gap: 4px; justify-items: end; text-align: right; }
.tv-listing-detail-pro__score strong { font-size: 42px; line-height: 1; color: var(--tv-ink); }
.tv-listing-detail-pro__score span { color: var(--tv-muted); font-weight: 700; }
.tv-listing-detail-pro__score small { color: var(--tv-muted); }
.tv-listing-detail-pro__excerpt { margin: 0; font-size: 18px; line-height: 1.8; color: var(--tv-muted); max-width: 820px; }
.tv-listing-detail-pro__contact-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 18px; border-top: 1px solid #e4eef5; flex-wrap: wrap; }
.tv-listing-detail-pro__address, .tv-listing-detail-pro__links { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.tv-listing-detail-pro__address-icon { width: 40px; height: 40px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: #effcf8; color: #0f766e; flex: 0 0 auto; }
.tv-listing-detail-pro__address a, .tv-listing-detail-pro__address span { font-weight: 600; color: var(--tv-ink); }
.tv-social-icon-link { width: 42px; height: 42px; border-radius: 14px; background: #f4f9fb; border: 1px solid #dceaf2; display: inline-flex; align-items: center; justify-content: center; color: #0f172a; transition: transform .18s ease, border-color .18s ease, background .18s ease; }
.tv-social-icon-link:hover { transform: translateY(-1px); border-color: #9adacf; background: #ecfdf5; }
.tv-listing-detail-pro__website { color: #0f766e; font-weight: 700; text-decoration: none; }
.tv-listing-detail-pro__long-content { padding: 30px; border-radius: 28px; background: linear-gradient(180deg, #ffffff 0%, #f8fcfd 100%); border: 1px solid #e3eef5; box-shadow: inset 0 1px 0 rgba(255,255,255,.7); }
.tv-section-heading--inline { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 18px; flex-wrap: wrap; }
.tv-section-heading--inline h2 { margin: 6px 0 0; font-size: 34px; }
.tv-section-heading--inline p { margin: 10px 0 0; color: var(--tv-muted); }
.tv-map-embed-card { overflow: hidden; border-radius: 30px; border: 1px solid #dceaf2; box-shadow: 0 18px 45px rgba(15, 23, 42, .08); background: #fff; }
.tv-map-embed-card iframe { width: 100%; height: 420px; border: 0; display: block; }
.tv-review-cta-card { padding: 28px 30px; border-radius: 30px; background: linear-gradient(135deg, #f8fcfd 0%, #eef9f6 100%); border: 1px solid #dceaf2; display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.tv-review-cta-card h2 { margin: 6px 0 8px; }
.tv-review-cta-card p { margin: 0; color: var(--tv-muted); }
.tv-review-form-panel { margin-top: 18px; }
.tv-nearby-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.tv-nearby-card { background: #fff; border: 1px solid #dceaf2; border-radius: 24px; overflow: hidden; box-shadow: 0 14px 36px rgba(15, 23, 42, .06); }
.tv-nearby-card__media { display: block; aspect-ratio: 1.45/1; overflow: hidden; }
.tv-nearby-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.tv-nearby-card:hover .tv-nearby-card__media img { transform: scale(1.03); }
.tv-nearby-card__body { padding: 18px; display: grid; gap: 10px; }
.tv-nearby-card__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tv-nearby-card__distance { background: #f4f9fb; color: #0f172a; border: 1px solid #dceaf2; }
.tv-nearby-card h3 { margin: 0; font-size: 20px; line-height: 1.3; }
.tv-nearby-card h3 a { color: var(--tv-ink); text-decoration: none; }
.tv-nearby-card p { margin: 0; color: var(--tv-muted); line-height: 1.7; }
@media (max-width: 1100px) { .tv-nearby-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 782px) {
  .tv-listing-hero-pro__media, .tv-listing-hero-pro__media img { min-height: 280px; }
  .tv-listing-hero-pro__top, .tv-listing-hero-pro__bottom { left: 18px; right: 18px; }
  .tv-listing-detail-pro__content { padding: 22px; }
  .tv-listing-detail-pro__title-wrap { flex-direction: column; }
  .tv-listing-detail-pro__score { justify-items: start; text-align: left; }
  .tv-nearby-grid { grid-template-columns: 1fr; }
  .tv-map-embed-card iframe { height: 320px; }
}


/* v1.1.1 detail refinements */
.tv-listing-hero-pro__media { min-height: clamp(260px, 46vw, 520px); max-height: 520px; }
.tv-listing-hero-pro__media img { min-height: 0; height: clamp(260px, 46vw, 520px); max-height: 520px; }
.tv-listing-detail-pro__contact-row { align-items: flex-start; }
.tv-listing-detail-pro__address { flex: 1 1 420px; }
.tv-listing-detail-pro__address span { line-height: 1.7; }
.tv-listing-detail-pro__map-link { width: 42px; height: 42px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: #effcf8; color: #0f766e; border: 1px solid #cfece4; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.tv-listing-detail-pro__map-link:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(15,118,110,.14); }
.tv-listing-detail-pro__map-link svg { width: 18px; height: 18px; fill: currentColor; }
.tv-listing-detail-pro__website { display: inline-flex; align-items: center; min-height: 42px; padding: 0 14px; border-radius: 999px; background: #f8fbfc; border: 1px solid #dceaf2; }
.tv-map-leaflet-card { border-radius: 28px; overflow: hidden; border: 1px solid #dceaf2; box-shadow: 0 16px 38px rgba(15,23,42,.06); background: #fff; }
.tv-listing-map-leaflet { height: 420px; width: 100%; }
.leaflet-container { font-family: inherit; z-index: 1; }
.tv-leaflet-marker-wrap { background: transparent; border: 0; }
.tv-leaflet-marker { width: 40px; height: 40px; display: grid; place-items: center; background: linear-gradient(180deg, #0f766e, #115e59); color: #fff; border-radius: 999px 999px 999px 0; transform: rotate(-45deg); box-shadow: 0 12px 24px rgba(15,118,110,.28); }
.tv-leaflet-marker > span { transform: rotate(45deg); font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.tv-map-popup { display: grid; grid-template-columns: 88px 1fr; gap: 12px; align-items: start; min-width: 220px; }
.tv-map-popup img { width: 88px; height: 72px; border-radius: 12px; object-fit: cover; display: block; }
.tv-map-popup__body { display: grid; gap: 4px; }
.tv-map-popup__meta { display: inline-flex; width: max-content; padding: 4px 8px; border-radius: 999px; background: #edf9f7; color: #0f766e; font-size: 12px; font-weight: 700; }
.tv-map-popup strong { font-size: 15px; line-height: 1.35; color: #0f172a; }
.tv-map-popup__body span:last-child { color: #64748b; font-size: 13px; line-height: 1.5; }
@media (max-width: 820px) {
  .tv-listing-map-leaflet { height: 320px; }
}


/* v1.1.2 map/address refinements */
.tv-listing-detail-pro__address { gap: 10px; }
.tv-listing-detail-pro__address-text { color: var(--tv-ink); font-weight: 600; line-height: 1.7; }
.tv-listing-detail-pro__address-icon { display:none; }
.tv-listing-detail-pro__website--text { padding: 0; min-height: 0; background: transparent; border: 0; border-radius: 0; text-decoration: none; color: #0f766e; font-weight: 700; }
.tv-listing-detail-pro__website--text:hover { text-decoration: underline; }
.tv-leaflet-marker { width: 42px; height: 42px; border-radius: 999px 999px 999px 0; }
.tv-leaflet-marker > span { font-size: 18px; line-height: 1; }
.tv-map-popup img { width: 92px; height: 74px; }
.tv-map-popup strong { margin: 0; }

.tv-listing-rank-timeline {
  margin-top: 22px;
  padding: 20px 22px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.96), rgba(255, 255, 255, 1));
}
.tv-listing-rank-timeline__head {
  display: grid;
  gap: 4px;
  margin-bottom: 14px;
}
.tv-listing-rank-timeline__head h3 {
  margin: 0;
  font-size: 1.1rem;
}
.tv-listing-rank-timeline__group {
  display: grid;
  gap: 12px;
}
.tv-listing-rank-timeline__group + .tv-listing-rank-timeline__group {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px dashed rgba(148, 163, 184, 0.45);
}
.tv-listing-rank-timeline__group-label {
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--tv-muted);
}
.tv-listing-rank-timeline__rows {
  position: relative;
  display: grid;
  gap: 14px;
}
.tv-listing-rank-timeline__rows::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: linear-gradient(180deg, rgba(15, 118, 110, 0.28), rgba(148, 163, 184, 0.18));
}
.tv-listing-rank-timeline__row {
  position: relative;
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 14px;
  align-items: start;
}
.tv-listing-rank-timeline__dot {
  width: 10px;
  height: 10px;
  margin-top: 5px;
  border-radius: 999px;
  background: var(--tv-primary);
  box-shadow: 0 0 0 4px rgba(15, 118, 110, 0.12);
  z-index: 1;
}
.tv-listing-rank-timeline__row.is-history .tv-listing-rank-timeline__dot {
  background: #94a3b8;
  box-shadow: 0 0 0 4px rgba(148, 163, 184, 0.16);
}
.tv-listing-rank-timeline__row-body {
  display: grid;
  gap: 6px;
  padding: 12px 14px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.06);
}
.tv-listing-rank-timeline__meta {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--tv-muted);
}
.tv-listing-rank-timeline__text {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  line-height: 1.5;
}
.tv-listing-rank-timeline__text a,
.tv-listing-rank-timeline__text span {
  color: var(--tv-text);
  font-weight: 600;
}
.tv-listing-rank-timeline__text strong {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(15, 118, 110, 0.1);
  color: var(--tv-primary);
  font-size: 0.9rem;
}
@media (max-width: 767px) {
  .tv-listing-rank-timeline {
    padding: 16px;
    border-radius: 20px;
  }
  .tv-listing-rank-timeline__text {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* v11 listing detail template refresh */
.tv-listing-detail-pro--v11 { gap: 22px; }
.tv-listing-detail-pro__content-card--v11 { overflow: visible; }
.tv-listing-detail-pro__heading--v11 { gap: 22px; }
.tv-listing-detail-pro__title-wrap--v11 {
  align-items: stretch;
  gap: 24px;
}
.tv-listing-detail-pro__title-copy {
  flex: 1 1 auto;
  display: grid;
  gap: 14px;
}
.tv-listing-detail-pro__score-card {
  flex: 0 0 260px;
  display: grid;
  gap: 14px;
  padding: 20px;
  border-radius: 24px;
  background: linear-gradient(180deg, #f8fcfd 0%, #ffffff 100%);
  border: 1px solid #dceaf2;
}
.tv-listing-detail-pro__score--card {
  min-width: 0;
  justify-items: start;
  text-align: left;
  gap: 2px;
}
.tv-listing-detail-pro__stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.tv-listing-detail-pro__stat-box {
  display: grid;
  gap: 6px;
  padding: 12px 14px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid #e7f0f5;
}
.tv-listing-detail-pro__stat-box span {
  font-size: 13px;
  color: var(--tv-muted);
}
.tv-listing-detail-pro__stat-box strong {
  font-size: 15px;
  line-height: 1.35;
  color: var(--tv-ink);
}
.tv-listing-detail-pro__meta-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.tv-listing-detail-pro__meta-badge {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  background: #f6fafb;
  border: 1px solid #dceaf2;
  color: var(--tv-ink);
  font-weight: 700;
}
.tv-listing-detail-pro__meta-badge--verified {
  background: rgba(237, 247, 255, .94);
  border-color: rgba(59, 130, 246, .18);
  color: #1d4ed8;
}
.tv-listing-detail-pro__meta-badge--featured {
  background: rgba(13, 148, 136, .1);
  border-color: rgba(13, 148, 136, .14);
  color: #0f766e;
}
.tv-listing-detail-pro__contact-row--v11 {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 1fr);
  gap: 16px;
  align-items: stretch;
}
.tv-listing-detail-pro__contact-card {
  display: grid;
  gap: 10px;
  padding: 18px 20px;
  border-radius: 24px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfdfe 100%);
  border: 1px solid #dceaf2;
}
.tv-listing-detail-pro__contact-label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tv-muted);
}
.tv-listing-detail-pro__contact-card--links .tv-listing-detail-pro__links {
  min-height: 42px;
}
.tv-listing-detail-pro__content-section {
  display: grid;
  gap: 16px;
}
.tv-listing-detail-pro__section-head {
  display: grid;
  gap: 4px;
}
.tv-listing-detail-pro__section-head h2 {
  margin: 0;
  font-size: clamp(24px, 3vw, 32px);
}
.tv-listing-detail-pro__long-content {
  padding: 28px;
}
.tv-listing-rank-timeline--v11 {
  margin-top: 0;
  padding: 22px 24px;
}
.tv-listing-rank-timeline--v11 .tv-listing-rank-timeline__head {
  gap: 6px;
  margin-bottom: 18px;
}
.tv-listing-rank-timeline--v11 .tv-listing-rank-timeline__head p {
  margin: 0;
  color: var(--tv-muted);
  line-height: 1.7;
}
.tv-listing-rank-timeline--v11 .tv-listing-rank-timeline__rows {
  gap: 12px;
}
.tv-listing-rank-timeline--v11 .tv-listing-rank-timeline__row-body {
  gap: 8px;
  padding: 14px 16px;
}
.tv-listing-rank-timeline--v11 .tv-listing-rank-timeline__text {
  justify-content: space-between;
}
.tv-listing-rank-timeline--v11 .tv-listing-rank-timeline__text a,
.tv-listing-rank-timeline--v11 .tv-listing-rank-timeline__text span {
  flex: 1 1 auto;
}
@media (max-width: 991px) {
  .tv-listing-detail-pro__title-wrap--v11,
  .tv-listing-detail-pro__contact-row--v11 {
    grid-template-columns: 1fr;
  }
  .tv-listing-detail-pro__score-card {
    flex: 1 1 auto;
  }
}
@media (max-width: 767px) {
  .tv-listing-detail-pro__score-card,
  .tv-listing-detail-pro__contact-card,
  .tv-listing-rank-timeline--v11,
  .tv-listing-detail-pro__long-content {
    border-radius: 20px;
  }
  .tv-listing-detail-pro__stats-grid {
    grid-template-columns: 1fr;
  }
  .tv-listing-rank-timeline--v11 .tv-listing-rank-timeline__text {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* v1.1.7 current listing marker on map */
.tv-map-leaflet-card--current-listing { position: relative; }
.tv-map-leaflet-card__badge {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 500;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.86);
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.18);
  backdrop-filter: blur(8px);
}
.tv-map-leaflet-card__dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #5eead4;
  box-shadow: 0 0 0 6px rgba(94, 234, 212, 0.18);
}

.tv-map-leaflet-card__legend {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 500;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,0.94);
  border: 1px solid rgba(220,234,242,0.9);
  box-shadow: 0 12px 24px rgba(15,23,42,0.12);
  backdrop-filter: blur(8px);
  color: #0f172a;
  font-size: 12px;
  font-weight: 700;
}
.tv-map-leaflet-card__legend span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.tv-map-leaflet-card__legend i {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  display: inline-block;
}
.tv-map-leaflet-card__legend i.is-current {
  background: #0f766e;
  box-shadow: 0 0 0 4px rgba(15,118,110,0.14);
}
.tv-map-leaflet-card__legend i.is-nearby {
  background: #2563eb;
  box-shadow: 0 0 0 4px rgba(37,99,235,0.12);
}
.tv-leaflet-marker-wrap {
  position: relative;
  width: 54px;
  height: 54px;
}
.tv-leaflet-marker--current {
  position: absolute;
  left: 6px;
  top: 0;
  z-index: 2;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #0f766e, #115e59);
  color: #fff;
  border-radius: 999px 999px 999px 0;
  transform: rotate(-45deg);
  box-shadow: 0 12px 24px rgba(15,118,110,.28);
  border: 2px solid #ffffff;
}
.tv-leaflet-marker--current > span {
  transform: rotate(45deg);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
}
.tv-leaflet-marker-pulse {
  position: absolute;
  inset: 6px;
  border-radius: 999px;
  background: rgba(15, 118, 110, 0.18);
  animation: tvMarkerPulse 1.8s ease-out infinite;
}
.tv-leaflet-marker-wrap--nearby {
  width: 36px;
  height: 36px;
}
.tv-leaflet-marker--nearby {
  position: absolute;
  left: 4px;
  top: 2px;
  z-index: 2;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, #2563eb, #1d4ed8);
  color: #fff;
  border-radius: 999px 999px 999px 0;
  transform: rotate(-45deg);
  box-shadow: 0 10px 22px rgba(37,99,235,.24);
  border: 2px solid #ffffff;
}
.tv-leaflet-marker--nearby > span {
  transform: rotate(45deg);
  font-size: 16px;
  font-weight: 900;
  line-height: 1;
  margin-top: -1px;
}
.tv-map-popup__meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}
.tv-map-popup__distance {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(37,99,235,0.08);
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 700;
}
.tv-map-popup__title-link {
  text-decoration: none;
}
.tv-map-popup__title-link:hover strong {
  color: #0f766e;
}
@keyframes tvMarkerPulse {
  0% { transform: scale(0.7); opacity: 0.95; }
  70% { transform: scale(1.3); opacity: 0; }
  100% { transform: scale(1.3); opacity: 0; }
}
@media (max-width: 820px) {
  .tv-map-leaflet-card__badge { top: 12px; left: 12px; font-size: 12px; padding: 9px 12px; }
  .tv-map-leaflet-card__legend { top: auto; right: 12px; bottom: 12px; font-size: 11px; padding: 8px 10px; gap: 10px; }
}


/* v1.3.4 enhanced map section */
.tv-section-heading--map-pro {
  align-items: flex-end;
  gap: 24px;
}
.tv-section-heading__desc--map {
  margin: 10px 0 0;
  max-width: 760px;
  color: #5b6b7c;
  font-size: 15px;
  line-height: 1.7;
}
.tv-map-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}
.tv-map-actions__hint {
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  background: #eef8f7;
  border: 1px solid #d4ece8;
  color: #0f766e;
  font-size: 12px;
  font-weight: 700;
}
.tv-button--map-open { white-space: nowrap; }
.tv-map-leaflet-card {
  position: relative;
  padding: 16px;
  border-radius: 32px;
  background: linear-gradient(180deg, #f8fcff 0%, #ffffff 100%);
  border: 1px solid #dbe9f3;
  box-shadow: 0 22px 52px rgba(15,23,42,0.08);
}
.tv-map-leaflet-card__topbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 2px 4px 14px;
}
.tv-map-leaflet-card__summary {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.tv-map-leaflet-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.tv-map-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid #dceaf2;
  color: #0f172a;
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 10px 20px rgba(15,23,42,0.04);
}
.tv-map-chip i {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 999px;
}
.tv-map-chip i.is-current { background: #14b8a6; box-shadow: 0 0 0 4px rgba(20,184,166,.15); }
.tv-map-chip i.is-nearby { background: #3b82f6; box-shadow: 0 0 0 4px rgba(59,130,246,.12); }
.tv-map-toolbar {
  min-width: 220px;
  max-width: 260px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tv-map-toolbar__label {
  color: #0f172a;
  font-size: 13px;
  font-weight: 800;
}
.tv-map-toolbar__select-wrap {
  position: relative;
}
.tv-map-toolbar__select {
  width: 100%;
  appearance: none;
  border: 1px solid #d7e8f3;
  background: linear-gradient(180deg, #ffffff 0%, #f6fbff 100%);
  color: #0f172a;
  border-radius: 16px;
  padding: 13px 42px 13px 14px;
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 10px 22px rgba(15,23,42,.05);
}
.tv-map-toolbar__select:focus {
  outline: none;
  border-color: #94d2cc;
  box-shadow: 0 0 0 4px rgba(20,184,166,.12);
}
.tv-map-toolbar__caret {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: #0f766e;
  pointer-events: none;
  font-size: 16px;
  line-height: 1;
}
.tv-listing-map-leaflet {
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid #dceaf2;
}
.tv-map-leaflet-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 6px 4px;
}
.tv-map-leaflet-card__footnote {
  color: #64748b;
  font-size: 13px;
}
.leaflet-top.leaflet-left { display: none; }
.leaflet-bottom.leaflet-right { margin-bottom: 14px; margin-right: 14px; }
.leaflet-control-zoom {
  border: 1px solid rgba(220,234,242,0.95) !important;
  border-radius: 18px !important;
  overflow: hidden;
  box-shadow: 0 16px 34px rgba(15,23,42,0.14) !important;
}
.leaflet-control-zoom a {
  width: 40px !important;
  height: 40px !important;
  line-height: 40px !important;
  color: #0f172a !important;
}
.tv-map-popup {
  min-width: 220px;
}
.tv-map-popup__chips {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.tv-map-popup__chip {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .02em;
}
.tv-map-popup__chip.is-current {
  background: rgba(15,118,110,0.1);
  color: #0f766e;
}
.tv-map-popup__chip.is-nearby {
  background: rgba(37,99,235,0.1);
  color: #1d4ed8;
}
@media (max-width: 820px) {
  .tv-section-heading--map-pro {
    align-items: stretch;
  }
  .tv-map-actions {
    align-items: flex-start;
  }
  .tv-map-actions__hint {
    flex-wrap: wrap;
    line-height: 1.5;
  }
  .tv-map-leaflet-card {
    padding: 10px;
    border-radius: 24px;
  }
  .leaflet-top.leaflet-left {
    margin-top: 56px;
  }
  .leaflet-control-layers-expanded {
    min-width: 136px;
    padding: 8px 10px !important;
  }
}


/* v13.5.1 map section layout fix */
.tv-map-leaflet-card__badge,
.tv-map-leaflet-card__legend {
  position: static;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  z-index: auto;
  backdrop-filter: none;
}
.tv-map-leaflet-card {
  padding: 18px;
}
.tv-map-leaflet-card__topbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  align-items: end;
  gap: 16px;
  padding: 0 0 14px;
}
.tv-map-leaflet-card__summary {
  min-width: 0;
  gap: 12px;
}
.tv-map-leaflet-card__badge {
  width: max-content;
  max-width: 100%;
  background: #111827;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.14);
}
.tv-map-leaflet-card__chips {
  gap: 8px;
}
.tv-map-chip {
  box-shadow: none;
  background: #f8fbfd;
}
.tv-map-toolbar {
  min-width: 0;
  max-width: none;
  align-self: stretch;
  justify-self: end;
  width: 100%;
  padding: 12px 14px;
  border-radius: 18px;
  background: #f8fbfd;
  border: 1px solid #dceaf2;
}
.tv-map-toolbar__label {
  font-size: 12px;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #64748b;
}
.tv-map-toolbar__select {
  border-radius: 14px;
  box-shadow: none;
  background: #fff;
}
.tv-listing-map-leaflet {
  border-radius: 22px;
}
.tv-map-leaflet-card__footer {
  margin-top: 12px;
  padding: 0;
  align-items: center;
  flex-wrap: wrap;
}
.tv-map-leaflet-card__legend {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(220,234,242,0.9);
  box-shadow: 0 10px 20px rgba(15,23,42,0.06);
}
.tv-map-leaflet-card__footnote {
  flex: 1 1 280px;
}
@media (max-width: 1024px) {
  .tv-map-leaflet-card__topbar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .tv-map-toolbar {
    justify-self: stretch;
  }
}
@media (max-width: 820px) {
  .tv-map-leaflet-card {
    padding: 12px;
  }
  .tv-map-leaflet-card__badge,
  .tv-map-leaflet-card__legend {
    width: 100%;
    border-radius: 16px;
  }
  .tv-map-leaflet-card__legend {
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
  }
  .tv-map-chip {
    width: 100%;
    justify-content: flex-start;
  }
}


/* v13.5.2 tv-section-listing-map polish */
.tv-section-listing-map {
  position: relative;
  padding: 34px 0 18px;
}
.tv-section-listing-map::before {
  content: "";
  position: absolute;
  inset: 26px 0 0;
  background:
    radial-gradient(circle at top left, rgba(20,184,166,.10), transparent 34%),
    linear-gradient(180deg, rgba(248,252,255,.92) 0%, rgba(255,255,255,.98) 100%);
  border-top: 1px solid rgba(220,234,242,.75);
  border-bottom: 1px solid rgba(220,234,242,.55);
  pointer-events: none;
}
.tv-section-listing-map .tv-container--narrow {
  position: relative;
  z-index: 1;
}
.tv-section-heading--map-pro {
  margin-bottom: 18px;
  align-items: end;
  gap: 18px;
}
.tv-section-heading--map-pro > div:first-child {
  max-width: 760px;
}
.tv-section-heading__eyebrow {
  letter-spacing: .08em;
}
.tv-section-heading--map-pro h2 {
  margin-bottom: 10px;
}
.tv-section-heading__desc--map {
  max-width: 780px;
  color: #5b6b81;
  line-height: 1.7;
}
.tv-map-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.tv-button--map-open {
  min-height: 46px;
  padding-inline: 18px;
  border-radius: 999px;
  border: 1px solid #d8eaf2;
  background: rgba(255,255,255,.88);
  box-shadow: 0 10px 26px rgba(15,23,42,.06);
}
.tv-button--map-open:hover {
  border-color: #8fd8cf;
  box-shadow: 0 14px 32px rgba(15,23,42,.1);
}
.tv-map-leaflet-card {
  position: relative;
  background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(248,252,255,.96) 100%);
  border: 1px solid rgba(220,234,242,.92);
  border-radius: 28px;
  box-shadow: 0 26px 54px rgba(15,23,42,.08);
}
.tv-map-leaflet-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
  pointer-events: none;
}
.tv-map-leaflet-card__topbar {
  margin-bottom: 14px;
}
.tv-map-leaflet-card__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.tv-map-leaflet-card__chips {
  align-items: center;
  flex-wrap: wrap;
}
.tv-map-chip {
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid #dceaf2;
  color: #0f172a;
  font-weight: 700;
}
.tv-map-leaflet-card__badge {
  min-height: 40px;
  padding: 0 16px;
}
.tv-map-toolbar {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.tv-map-toolbar__select {
  min-height: 44px;
}
.tv-map-leaflet-card__footer {
  border-top: 1px solid rgba(220,234,242,.72);
  padding-top: 14px;
}
.tv-map-leaflet-card__legend {
  background: linear-gradient(180deg, #ffffff 0%, #f8fbfd 100%);
}
.tv-map-leaflet-card__footnote {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.tv-map-leaflet-card__footnote::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #14b8a6;
  flex: 0 0 auto;
  opacity: .75;
}
@media (max-width: 1024px) {
  .tv-section-listing-map {
    padding-top: 26px;
  }
  .tv-section-listing-map::before {
    inset-top: 18px;
  }
}
@media (max-width: 820px) {
  .tv-section-listing-map {
    padding: 22px 0 8px;
  }
  .tv-section-listing-map::before {
    inset: 14px 0 0;
  }
  .tv-section-heading--map-pro {
    margin-bottom: 14px;
    gap: 12px;
  }
  .tv-map-actions {
    justify-content: flex-start;
  }
  .tv-button--map-open {
    width: 100%;
    justify-content: center;
  }
  .tv-map-leaflet-card {
    border-radius: 22px;
  }
  .tv-map-leaflet-card__summary {
    align-items: stretch;
  }
  .tv-map-chip,
  .tv-map-leaflet-card__badge {
    width: 100%;
    justify-content: center;
  }
}


/* v13.6 map section refinement */
.tv-section-listing-map {
  margin: 40px 0 28px;
  padding: 34px 0 24px;
}
.tv-section-listing-map::before {
  inset: 18px 0 0;
  background:
    radial-gradient(circle at top left, rgba(20,184,166,.12), transparent 32%),
    radial-gradient(circle at top right, rgba(59,130,246,.06), transparent 28%),
    linear-gradient(180deg, #f8fcfd 0%, #f4f8fb 100%);
  border-top: 1px solid rgba(220,234,242,.88);
  border-bottom: 1px solid rgba(220,234,242,.7);
}
.tv-section-listing-map .tv-container--narrow {
  max-width: 980px;
}
.tv-section-heading--map-pro {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: start;
  gap: 20px;
  margin-bottom: 18px;
}
.tv-section-heading--map-pro h2 {
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: #0f172a;
}
.tv-section-heading__desc--map {
  max-width: 760px;
  font-size: 16px;
  line-height: 1.7;
  color: #64748b;
}
.tv-map-actions {
  justify-content: flex-end;
  align-self: center;
}
.tv-button--map-open {
  min-height: 48px;
  padding: 0 18px;
  border-radius: 999px;
  background: #ffffff;
  color: #0f172a;
  font-weight: 700;
  border: 1px solid #d8eaf2;
  box-shadow: 0 10px 28px rgba(15,23,42,.06);
}
.tv-button--map-open:hover {
  background: #0f766e;
  color: #fff;
  border-color: #0f766e;
}
.tv-map-leaflet-card {
  padding: 16px;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(248,251,253,.98) 100%);
  border: 1px solid rgba(220,234,242,.95);
  box-shadow: 0 22px 50px rgba(15,23,42,.08);
}
.tv-map-leaflet-card__topbar {
  margin-bottom: 14px;
}
.tv-map-leaflet-card__summary {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 16px;
  align-items: start;
}
.tv-map-leaflet-card__badge {
  min-height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  background: linear-gradient(180deg, #111827 0%, #1f2937 100%);
  color: #fff;
  box-shadow: 0 12px 26px rgba(15,23,42,.18);
}
.tv-map-leaflet-card__chips {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.tv-map-chip {
  min-height: 36px;
  padding: 0 14px;
  background: #f8fbfd;
  border: 1px solid #dceaf2;
  color: #334155;
  font-size: 13px;
  font-weight: 700;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.tv-map-toolbar {
  min-width: 230px;
  gap: 8px;
  padding: 14px;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbfd 100%);
  border: 1px solid #dceaf2;
  box-shadow: 0 10px 24px rgba(15,23,42,.05);
}
.tv-map-toolbar__label {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #64748b;
}
.tv-map-toolbar__select-wrap {
  position: relative;
}
.tv-map-toolbar__select {
  min-height: 48px;
  width: 100%;
  padding: 0 42px 0 16px;
  border-radius: 14px;
  border: 1px solid #dbe7ee;
  background: #fff;
  color: #0f172a;
  font-weight: 700;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.95);
}
.tv-map-toolbar__select:focus {
  border-color: #14b8a6;
  box-shadow: 0 0 0 3px rgba(20,184,166,.12);
}
.tv-map-toolbar__caret {
  right: 16px;
  color: #0f766e;
}
#tv-listing-map {
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid #dbe7ee;
}
.tv-map-leaflet-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 12px;
  padding-top: 14px;
  border-top: 1px solid rgba(220,234,242,.72);
}
.tv-map-leaflet-card__legend {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.tv-map-leaflet-card__legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  color: #334155;
  font-weight: 700;
}
.tv-map-leaflet-card__footnote {
  font-size: 13px;
  line-height: 1.6;
  color: #64748b;
}
.leaflet-control-zoom {
  border: 1px solid #dceaf2 !important;
  border-radius: 16px !important;
  overflow: hidden;
  box-shadow: 0 12px 24px rgba(15,23,42,.08) !important;
}
.leaflet-control-zoom a {
  width: 42px !important;
  height: 42px !important;
  line-height: 42px !important;
  color: #0f172a !important;
}
.leaflet-popup-content-wrapper {
  border-radius: 18px;
  box-shadow: 0 18px 42px rgba(15,23,42,.14);
}
.leaflet-popup-tip {
  box-shadow: none;
}
@media (max-width: 991px) {
  .tv-section-heading--map-pro,
  .tv-map-leaflet-card__summary {
    grid-template-columns: 1fr;
  }
  .tv-map-actions {
    justify-content: flex-start;
  }
  .tv-map-toolbar {
    min-width: 100%;
  }
}
@media (max-width: 767px) {
  .tv-section-listing-map {
    margin: 28px 0 18px;
    padding: 22px 0 14px;
  }
  .tv-section-listing-map::before {
    inset: 10px 0 0;
  }
  .tv-section-heading--map-pro h2 {
    font-size: 34px;
  }
  .tv-map-leaflet-card {
    padding: 12px;
    border-radius: 22px;
  }
  #tv-listing-map {
    border-radius: 18px;
  }
  .tv-map-leaflet-card__legend,
  .tv-map-leaflet-card__footer {
    gap: 10px;
  }
  .tv-map-leaflet-card__legend {
    flex-direction: column;
    align-items: flex-start;
  }
  .tv-map-chip,
  .tv-map-leaflet-card__badge,
  .tv-button--map-open {
    width: 100%;
    justify-content: center;
  }
}

/* v14b listing detail upgrade */
.tv-listing-detail-pro--v14b {
  gap: 26px;
}
.tv-listing-hero-pro--v14b .tv-listing-hero-pro__media {
  min-height: clamp(340px, 54vw, 560px);
}
.tv-listing-hero-pro--v14b .tv-listing-hero-pro__media img {
  height: clamp(340px, 54vw, 560px);
}
.tv-listing-hero-pro__top-left,
.tv-listing-hero-pro__top-right {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.tv-listing-hero-pro__intro {
  position: absolute;
  inset: auto 28px 28px 28px;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(240px, 320px);
  gap: 24px;
  align-items: end;
}
.tv-listing-hero-pro__copy {
  display: grid;
  gap: 16px;
  max-width: 760px;
}
.tv-listing-hero-pro__copy h1 {
  margin: 0;
  font-size: clamp(40px, 6vw, 72px);
  line-height: .98;
  color: #fff;
  text-shadow: 0 10px 30px rgba(15, 23, 42, .25);
}

.tv-listing-hero-pro__title-line {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

/* title không chiếm full width nữa */
.tv-listing-hero-pro__title-line h1 {
  display: inline;
  margin: 0;
}
.tv-listing-hero-pro__verified-inline {
  display: none;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 14px;
  background: #edf7ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
  box-shadow: 0 10px 22px rgba(29,78,216,.12);
}
.tv-listing-hero-pro__verified-inline svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
  display: block;
}
.tv-listing-hero-pro__excerpt {
  margin: 0;
  max-width: 660px;
  font-size: 17px;
  line-height: 1.7;
  color: rgba(255,255,255,.88);
}
.tv-listing-hero-pro__stats,
.tv-listing-hero-pro__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.tv-listing-hero-pro__stat-pill {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(10px);
  color: #fff;
  font-weight: 700;
}
.tv-listing-hero-pro__stat-pill--muted {
  font-weight: 600;
  color: rgba(255,255,255,.84);
}
.tv-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 14px;
  text-decoration: none;
  font-weight: 800;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.tv-button:hover {
  transform: translateY(-1px);
}
.tv-button--hero {
  min-height: 50px;
  padding: 0 20px;
}
.tv-button--primary {
  background: #0f766e;
  color: #fff;
  box-shadow: 0 16px 28px rgba(15,118,110,.24);
}
.tv-button--primary:hover {
  color: #fff;
  background: #0d6b63;
}
.tv-button--ghost {
  background: rgba(255,255,255,.14);
  color: #fff;
  border: 1px solid rgba(255,255,255,.28);
  backdrop-filter: blur(10px);
}
.tv-button--ghost:hover {
  color: #fff;
  background: rgba(255,255,255,.2);
}
.tv-listing-hero-pro__trust-card {
  display: grid;
  gap: 8px;
  padding: 22px;
  border-radius: 28px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(255,255,255,.5);
  box-shadow: 0 18px 40px rgba(15,23,42,.15);
  backdrop-filter: blur(18px);
}
.tv-listing-hero-pro__trust-score {
  font-size: clamp(44px, 6vw, 64px);
  line-height: .95;
  font-weight: 900;
  color: var(--tv-ink);
}
.tv-listing-hero-pro__trust-stars {
  color: #f59e0b;
  letter-spacing: .26em;
  font-size: 15px;
}
.tv-listing-hero-pro__trust-label {
  font-size: 28px;
  font-weight: 900;
  line-height: 1.05;
  color: var(--tv-ink);
}
.tv-listing-hero-pro__trust-sub {
  color: var(--tv-muted);
  line-height: 1.6;
}
.tv-listing-hero-pro__trust-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 6px;
}
.tv-listing-hero-pro__trust-meta span {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border-radius: 18px;
  background: #f8fbfc;
  border: 1px solid #dceaf2;
  color: var(--tv-ink);
  font-weight: 700;
  line-height: 1.45;
}
.tv-listing-hero-pro__intro-mobile {
  display: none;
}
.tv-listing-hero-pro__intro--mobile {
  position: static;
  inset: auto;
}

.tv-listing-detail-pro__smart-nav,
.tv-listing-detail-pro__smart-nav--floating {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding-bottom: 6px;
  position: relative;
  z-index: 15;
  align-items: center;
  isolation: isolate;
  pointer-events: auto;
}
.tv-listing-detail-pro__smart-nav.is-source-hidden {
  visibility: hidden;
  pointer-events: none;
}
.tv-listing-detail-pro__smart-nav--floating {
    position: fixed;
    top: var(--tv-smart-nav-top, 92px);
    left: var(--tv-smart-nav-left, 0px);
    width: var(--tv-smart-nav-width, 100%);
    padding: 12px;

    border-bottom-left-radius: 18px;
    border-bottom-right-radius: 18px;

    border: 1px solid #dceaf2;
    background: #ffffff;
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.12);
    transform: translateZ(0);
    z-index: 80;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.tv-listing-detail-pro__smart-nav--floating.is-sticky {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

body.tv-smart-nav-mobile-active .tv-site-header,
body.tv-smart-nav-mobile-active .tv-site-header--premium,
body.tv-smart-nav-mobile-active .site-header {
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
}

.tv-site-header,
.tv-site-header--premium,
.site-header {
  transition: transform .22s ease, opacity .22s ease;
}
.tv-listing-detail-pro__smart-nav a,
.tv-listing-detail-pro__smart-nav--floating a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  background: #f6fafb;
  border: 1px solid #dceaf2;
  color: var(--tv-ink);
  text-decoration: none;
  font-weight: 700;
  position: relative;
  z-index: 2;
  pointer-events: auto;
  transition: background .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.tv-listing-detail-pro__smart-nav a:hover,
.tv-listing-detail-pro__smart-nav a.is-active,
.tv-listing-detail-pro__smart-nav a[aria-current="true"],
.tv-listing-detail-pro__smart-nav--floating a:hover,
.tv-listing-detail-pro__smart-nav--floating a.is-active,
.tv-listing-detail-pro__smart-nav--floating a[aria-current="true"] {
  background: #0f766e;
  border-color: #0f766e;
  color: #fff;
  box-shadow: 0 10px 24px rgba(15,118,110,.18);
}
.tv-listing-detail-pro__title-wrap--v11 {
  align-items: start;
}
.tv-listing-detail-pro__title-copy h1,
.tv-listing-detail-pro__title-secondary {
  margin: 0;
  font-size: clamp(38px, 5vw, 62px);
  line-height: 1.02;
}
.tv-listing-detail-pro__excerpt {
  margin: 0;
  font-size: 18px;
  line-height: 1.75;
  color: var(--tv-muted);
}
.tv-listing-detail-pro__highlights {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.tv-listing-detail-pro__highlight-card {
  display: grid;
  gap: 10px;
  padding: 20px;
  border-radius: 24px;
  background: linear-gradient(180deg, #f9fcfd 0%, #ffffff 100%);
  border: 1px solid #dceaf2;
}
.tv-listing-detail-pro__highlight-label {
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tv-muted);
}
.tv-listing-detail-pro__highlight-card strong {
  font-size: 24px;
  line-height: 1.15;
  color: var(--tv-ink);
}
.tv-listing-detail-pro__highlight-card p {
  margin: 0;
  color: var(--tv-muted);
  line-height: 1.65;
}
.tv-listing-detail-pro__contact-card--address {
  position: relative;
}
.tv-listing-detail-pro__contact-card--address::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(circle at top right, rgba(15,118,110,.08), transparent 42%);
  pointer-events: none;
}
.tv-listing-detail-pro__contact-card--links {
  background: linear-gradient(180deg, #fbfdfe 0%, #ffffff 100%);
}
.tv-listing-detail-pro__content-section {
  padding: 28px;
  border-radius: 28px;
  background: linear-gradient(180deg, #fbfdfe 0%, #ffffff 100%);
  border: 1px solid #dceaf2;
}
.tv-listing-detail-pro__long-content {
  padding: 0;
  border: 0;
}
.tv-section-listing-map,
.tv-section-nearby-listings,
.tv-section-review-list,
.tv-reviews-block {
  scroll-margin-top: 110px;
}
.tv-section-nearby-listings .tv-section-heading h2,
.tv-section-listing-map .tv-section-heading h2 {
  font-size: clamp(30px, 4vw, 48px);
}
.tv-nearby-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.tv-nearby-card {
  border-radius: 24px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #dceaf2;
  box-shadow: 0 16px 32px rgba(15,23,42,.06);
}
.tv-nearby-card__media {
  display: block;
  aspect-ratio: 1.35 / 1;
  overflow: hidden;
}
.tv-nearby-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}
.tv-nearby-card:hover .tv-nearby-card__media img {
  transform: scale(1.04);
}
.tv-nearby-card__body {
  display: grid;
  gap: 12px;
  padding: 18px 18px 20px;
}
.tv-nearby-card__top {
  justify-content: space-between;
}
.tv-nearby-card__body h3 {
  margin: 0;
  font-size: 24px;
  line-height: 1.2;
}
.tv-nearby-card__body p {
  margin: 0;
  color: var(--tv-muted);
  line-height: 1.65;
}
@media (max-width: 1100px) {
  .tv-listing-hero-pro__intro,
  .tv-listing-detail-pro__highlights,
  .tv-nearby-grid {
    grid-template-columns: 1fr;
  }
  .tv-listing-hero-pro__copy {
    max-width: none;
  }
}
@media (max-width: 991px) {
  .tv-listing-hero-pro--v14b .tv-listing-hero-pro__media {
    min-height: 500px;
  }
  .tv-listing-hero-pro--v14b .tv-listing-hero-pro__media img {
    height: 500px;
  }
  .tv-listing-hero-pro__intro {
    inset: auto 18px 18px 18px;
  }
}
@media (max-width: 767px) {
  .tv-listing-hero-pro--v14b {
    display: grid;
    gap: 16px;
  }
  .tv-listing-hero-pro--v14b .tv-listing-hero-pro__media {
    min-height: 280px;
    border-radius: 26px;
  }
  .tv-listing-hero-pro--v14b .tv-listing-hero-pro__media img {
    height: 280px;
  }
  .tv-listing-hero-pro__top {
    top: 16px;
  }
  .tv-listing-hero-pro__top,
  .tv-listing-hero-pro__bottom {
    left: 16px;
    right: 16px;
  }
  .tv-listing-hero-pro__intro--inside {
    display: none;
  }
  .tv-listing-hero-pro__intro-mobile {
    display: block;
    margin-top: 16px;
  }
  .tv-listing-hero-pro__intro--mobile {
    display: grid;
    gap: 16px;
    padding: 20px;
    border-radius: 24px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdfe 100%);
    border: 1px solid #dceaf2;
    box-shadow: 0 18px 36px rgba(15,23,42,.08);
  }
  .tv-listing-hero-pro__intro--mobile .tv-listing-hero-pro__copy {
    gap: 14px;
  }
  .tv-listing-hero-pro__intro--mobile .tv-listing-hero-pro__copy h1 {
    color: var(--tv-ink);
    text-shadow: none;
  }
  .tv-listing-hero-pro__title-line {
    align-items: center;
    gap: 10px;
  }
  .tv-listing-hero-pro__verified-inline {
    display: inline-flex;
  }
  .tv-listing-hero-pro__top-right .tv-listing-hero-pro__verified {
    display: none;
  }
  .tv-listing-hero-pro__intro--mobile .tv-listing-hero-pro__excerpt {
    color: var(--tv-muted);
  }
  .tv-listing-hero-pro__intro--mobile .tv-listing-hero-pro__stat-pill {
    background: #f6fafb;
    border-color: #dceaf2;
    color: var(--tv-ink);
    backdrop-filter: none;
  }
  .tv-listing-hero-pro__intro--mobile .tv-listing-hero-pro__stat-pill--muted {
    color: var(--tv-muted);
  }
  .tv-listing-hero-pro__intro--mobile .tv-button--ghost {
    background: #ffffff;
    color: var(--tv-ink);
    border-color: #dceaf2;
    backdrop-filter: none;
  }
  .tv-listing-hero-pro__intro--mobile .tv-button--ghost:hover {
    color: var(--tv-ink);
    background: #f6fafb;
  }
  .tv-listing-hero-pro__copy h1,
  .tv-listing-detail-pro__title-copy h1 {
    font-size: clamp(30px, 9vw, 42px);
  }
  .tv-listing-hero-pro__excerpt,
  .tv-listing-detail-pro__excerpt {
    font-size: 15px;
  }
  .tv-listing-hero-pro__trust-card,
  .tv-listing-detail-pro__content-section,
  .tv-listing-detail-pro__highlight-card,
  .tv-nearby-card {
    border-radius: 20px;
  }
  .tv-listing-hero-pro__actions,
  .tv-listing-hero-pro__stats,
  .tv-listing-detail-pro__smart-nav {
    gap: 8px;
  }
  .tv-listing-hero-pro__actions {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 4px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .tv-listing-hero-pro__actions::-webkit-scrollbar {
    display: none;
  }
  .tv-listing-hero-pro__actions .tv-button,
  .tv-listing-hero-pro__actions .tv-button--hero {
    width: auto;
    min-width: 0;
    flex: 1 0 auto;
    white-space: nowrap;
    padding-left: 14px;
    padding-right: 14px;
    font-size: 14px;
  }
  .tv-listing-detail-pro__smart-nav,
  .tv-listing-detail-pro__smart-nav--floating {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-behavior: smooth;
    overflow-y: hidden;
    padding-bottom: 10px;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .tv-listing-detail-pro__smart-nav::-webkit-scrollbar,
  .tv-listing-detail-pro__smart-nav--floating::-webkit-scrollbar {
    display: none;
  }
  .tv-listing-detail-pro__smart-nav a,
.tv-listing-detail-pro__smart-nav--floating a {
    width: auto;
    flex: 0 0 auto;
    white-space: nowrap;
    scroll-snap-align: start;
  }
  .tv-listing-detail-pro__smart-nav.is-sticky {
    left: 0;
    width: 100%;
    border-radius: 0 0 18px 18px;
    padding-left: 16px;
    padding-right: 16px;
  }
  .tv-listing-hero-pro__trust-meta {
    display: flex;
    grid-template-columns: none;
    flex-wrap: nowrap;
    gap: 8px;
  }
  .tv-listing-hero-pro__trust-meta span {
    flex: 1 1 0;
    min-width: 0;
    text-align: center;
    align-items: center;
    justify-content: center;
  }
  .tv-listing-detail-pro__highlights {
    grid-template-columns: 1fr;
  }
}

/* v14.1 sync map + nearby with listing detail template */
.tv-surface-card {
  background: linear-gradient(180deg, #ffffff 0%, #fbfdfe 100%);
  border: 1px solid #dceaf2;
  box-shadow: 0 16px 34px rgba(15,23,42,.06);
}

.tv-section-heading--surface {
  margin-bottom: 18px;
}
.tv-section-heading--surface > div:first-child {
  display: grid;
  gap: 8px;
}
.tv-section-heading--surface .tv-section-heading__eyebrow {
  display: inline-flex;
  width: fit-content;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(20,184,166,.10);
  color: #0f766e;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tv-section-listing-map--v14sync,
.tv-section-nearby-listings--v14sync {
  margin: 28px 0 0;
  padding: 0;
  background: transparent;
}
.tv-section-listing-map--v14sync::before,
.tv-section-nearby-listings--v14sync::before {
  display: none;
}
.tv-section-listing-map--v14sync .tv-container--narrow,
.tv-section-nearby-listings--v14sync .tv-container--narrow {
  max-width: 980px;
}
.tv-section-listing-map--v14sync .tv-map-leaflet-card,
.tv-section-nearby-listings--v14sync .tv-nearby-shell {
  border-radius: 30px;
}
.tv-section-listing-map--v14sync .tv-map-leaflet-card {
  padding: 20px;
}
.tv-section-listing-map--v14sync .tv-map-leaflet-card__topbar {
  margin-bottom: 16px;
}
.tv-section-listing-map--v14sync .tv-map-leaflet-card__footer {
  margin-top: 14px;
  padding-top: 14px;
}
.tv-section-listing-map--v14sync .tv-map-chip,
.tv-section-listing-map--v14sync .tv-map-leaflet-card__badge {
  min-height: 40px;
}
.tv-section-listing-map--v14sync #tv-listing-map {
  border-radius: 22px;
}

.tv-section-nearby-listings--v14sync {
  padding-bottom: 6px;
}
.tv-section-nearby-listings--v14sync .tv-section-heading {
  margin-bottom: 18px;
}
.tv-section-nearby-listings--v14sync .tv-section-heading p {
  max-width: 720px;
  font-size: 16px;
  line-height: 1.7;
  color: #64748b;
}
.tv-nearby-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.tv-nearby-grid--count-1 {
  grid-template-columns: minmax(0, 420px);
  justify-content: start;
}
.tv-nearby-grid--count-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.tv-nearby-grid--count-4,
.tv-nearby-grid--count-5,
.tv-nearby-grid--count-6 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.tv-nearby-card {
  position: relative;
  overflow: hidden;
  border-radius: 26px;
}
.tv-nearby-card::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 72px;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.65) 100%);
  pointer-events: none;
}
.tv-nearby-card__media {
  aspect-ratio: 1.4 / 1;
  background: #eef4f7;
}
.tv-nearby-card__body {
  position: relative;
  z-index: 1;
  gap: 12px;
  padding: 18px 18px 20px;
}
.tv-nearby-card__top {
  align-items: center;
  gap: 10px;
}
.tv-nearby-card__distance {
  min-height: 34px;
  padding: 0 12px;
  font-size: 13px;
}
.tv-nearby-card__body h3 {
  font-size: 22px;
  line-height: 1.25;
}
.tv-nearby-card__body p {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (max-width: 991px) {
  .tv-nearby-grid,
  .tv-nearby-grid--count-2,
  .tv-nearby-grid--count-4,
  .tv-nearby-grid--count-5,
  .tv-nearby-grid--count-6 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tv-nearby-grid--count-1 {
    grid-template-columns: minmax(0, 100%);
  }
}
@media (max-width: 767px) {
  .tv-section-listing-map--v14sync,
  .tv-section-nearby-listings--v14sync {
    margin-top: 22px;
  }
  .tv-section-listing-map--v14sync .tv-map-leaflet-card {
    padding: 14px;
    border-radius: 24px;
  }
  .tv-nearby-grid,
  .tv-nearby-grid--count-2,
  .tv-nearby-grid--count-4,
  .tv-nearby-grid--count-5,
  .tv-nearby-grid--count-6 {
    grid-template-columns: 1fr;
  }
  .tv-nearby-card {
    border-radius: 22px;
  }
  .tv-nearby-card__body h3 {
    font-size: 20px;
  }
}


/* v14.3 map + nearby google maps mini ux */

.tv-section-heading--map-v143,
.tv-section-heading--nearby-v143 {
  margin-bottom: 18px;
}
.tv-map-actions--v143 {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.tv-map-actions__stats {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.tv-map-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  background: #ffffff;
  border: 1px solid #dceaf2;
  color: #0f172a;
  font-weight: 800;
  box-shadow: 0 8px 20px rgba(15,23,42,.05);
}
.tv-map-pill i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
}
.tv-map-pill--current i { background: #14b8a6; }
.tv-map-pill--nearby i { background: #3b82f6; }
.tv-map-leaflet-card--v143 {
  border-radius: 32px;
  padding: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}
.tv-map-leaflet-card__topbar--v143 {
  align-items: flex-start;
  gap: 18px;
}
.tv-map-leaflet-card__summary--v143 {
  gap: 14px;
}
.tv-map-leaflet-card__badge--v143 {
  box-shadow: 0 12px 22px rgba(15, 23, 42, .12);
}
.tv-map-chip--current,
.tv-map-chip--nearby {
  background: #ffffff;
  border: 1px solid #dceaf2;
  box-shadow: 0 8px 16px rgba(15,23,42,.04);
}
.tv-map-canvas-shell {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid #dceaf2;
  background: #f8fafc;
}
.tv-map-leaflet-card--v143 #tv-listing-map {
  height: 420px;
}
.tv-map-leaflet-card__footer--v143 {
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.tv-map-popup__title-link {
  display: block;
  min-width: 0;
  max-width: 100%;
}
.tv-map-popup__title-link strong,
.tv-map-popup strong {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
  overflow-wrap: anywhere;
  max-width: 100%;
  font-size: 18px;
  line-height: 1.25;
}
.tv-map-popup__meta-row {
  align-items: center;
}
.tv-section-nearby-listings--v143 .tv-section-heading {
  align-items: flex-end;
  gap: 18px;
}
.tv-nearby-summary {
  min-width: 154px;
  padding: 18px 20px;
  border-radius: 22px;
  border: 1px solid #dceaf2;
  background: linear-gradient(180deg, #ffffff 0%, #f6fbfc 100%);
  box-shadow: 0 16px 30px rgba(15,23,42,.05);
  text-align: center;
}
.tv-nearby-summary__count {
  display: block;
  color: #0f172a;
  font-size: 28px;
  line-height: 1;
  font-weight: 900;
}
.tv-nearby-summary__label {
  display: block;
  margin-top: 6px;
  color: #64748b;
  font-weight: 700;
}

.tv-nearby-card--clickable {
  position: relative;
}
.tv-nearby-card__stretched-link {
  position: absolute;
  inset: 0;
  z-index: 5;
  border-radius: inherit;
}
.tv-nearby-card__stretched-link:focus-visible {
  outline: 2px solid #0f766e;
  outline-offset: 3px;
}
.tv-nearby-card__body,
.tv-nearby-card__media,
.tv-nearby-card__top,
.tv-nearby-card__distance,
.tv-nearby-card__body h3,
.tv-nearby-card__body p,
.tv-nearby-card__body .tv-listing-hero-pro__pill {
  position: relative;
  z-index: 2;
  pointer-events: none;
}
.tv-nearby-card--v143 {
  border-radius: 28px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.tv-nearby-card--v143:hover,
.tv-nearby-card--v143.is-active {
  transform: translateY(-6px);
  box-shadow: 0 26px 40px rgba(15,23,42,.12);
  border-color: rgba(20,184,166,.45);
}
.tv-nearby-card--v143 .tv-nearby-card__body {
  gap: 14px;
}
.tv-nearby-card__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 4px;
}
.tv-nearby-card__map-btn,
.tv-nearby-card__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  font-weight: 800;
  text-decoration: none;
}
.tv-nearby-card__map-btn {
  border: 1px solid #cfe3ea;
  background: #f8fbfc;
  color: #0f172a;
  cursor: pointer;
}
.tv-nearby-card__map-btn:hover { background: #eef7f8; }
.tv-nearby-card__link {
  background: #0f766e;
  color: #ffffff;
}
.tv-nearby-card__link:hover { background: #0d6d66; color: #fff; }
.tv-leaflet-marker-wrap--nearby.is-spotlight .tv-leaflet-marker--nearby {
  transform: scale(1.2);
  background: #0f766e;
  box-shadow: 0 0 0 8px rgba(20,184,166,.16);
}
.tv-leaflet-marker-wrap--nearby.is-spotlight .tv-leaflet-marker--nearby span { color: #fff; }
@media (max-width: 991px) {
  .tv-map-actions--v143,
  .tv-section-nearby-listings--v143 .tv-section-heading {
    justify-content: flex-start;
  }
}
@media (max-width: 767px) {
  .tv-map-actions--v143 {
    align-items: stretch;
  }
  .tv-map-actions__stats,
  .tv-map-leaflet-card__topbar--v143,
  .tv-nearby-card__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .tv-map-leaflet-card--v143 #tv-listing-map {
    height: 360px;
  }
  .tv-nearby-summary {
    width: 100%;
  }
}

/* v14.3.1 map + nearby section shell sync */
.tv-section-listing-map--v143,
.tv-section-nearby-listings--v143 {
  margin-top: 30px;
}
.tv-section-listing-map--v143 .tv-container--narrow,
.tv-section-nearby-listings--v143 .tv-container--narrow {
}
.tv-section-listing-map--v143 .tv-section-heading,
.tv-section-nearby-listings--v143 .tv-section-heading {
  margin-bottom: 18px;
}
.tv-section-listing-map--v143 .tv-map-leaflet-card {
  border: 1px solid #dceaf2;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
.tv-section-listing-map--v143 .tv-map-canvas-shell {
  border-radius: 26px;
  border: 1px solid #dceaf2;
  background: #eef5f8;
}
.tv-section-listing-map--v143 .tv-map-leaflet-card__footer {
  border-top: 1px solid #e4edf2;
}
.tv-section-nearby-listings--v143 .tv-nearby-grid {
  align-items: stretch;
}
.tv-section-nearby-listings--v143 .tv-nearby-card {
  border: 1px solid #dceaf2;
  box-shadow: 0 12px 30px rgba(15,23,42,.06);
  background: #fff;
}
.tv-section-nearby-listings--v143 .tv-nearby-card__media {
  background: #eef4f7;
}
.tv-section-nearby-listings--v143 .tv-nearby-summary {
  background: #fff;
}
@media (max-width: 767px) {
  .tv-section-listing-map--v143 .tv-container--narrow,
  .tv-section-nearby-listings--v143 .tv-container--narrow {
    padding: 18px;
    border-radius: 24px;
  }
}


/* v14.3.2 unified surface cards for map + nearby */
.tv-section-listing-map--v143,
.tv-section-nearby-listings--v143 {
  position: relative;
  margin-top: 34px;
  padding: 28px;
  border-radius: 32px;
  border: 1px solid #dceaf2;
  background: linear-gradient(180deg, #f9fcfd 0%, #f4f8fb 100%);
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.06);
}
.tv-section-listing-map--v143::before,
.tv-section-nearby-listings--v143::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(circle at top right, rgba(20,184,166,.10), transparent 36%),
              radial-gradient(circle at bottom left, rgba(59,130,246,.06), transparent 30%);
  pointer-events: none;
}
.tv-section-listing-map--v143 > .tv-container--narrow,
.tv-section-nearby-listings--v143 > .tv-container--narrow {
  position: relative;
  z-index: 1;
}
.tv-section-listing-map--v143 .tv-section-heading,
.tv-section-nearby-listings--v143 .tv-section-heading {
  margin-bottom: 20px;
}
.tv-section-listing-map--v143 .tv-map-leaflet-card,
.tv-section-nearby-listings--v143 .tv-nearby-shell,
.tv-section-nearby-listings--v143 .tv-nearby-summary {
  border: 1px solid #dceaf2;
  background: rgba(255,255,255,.94);
  box-shadow: 0 18px 36px rgba(15,23,42,.06);
}
.tv-section-listing-map--v143 .tv-map-canvas-shell {
  border-radius: 26px;
  border: 1px solid #dceaf2;
  background: #eef4f7;
}
.tv-section-listing-map--v143 .tv-map-leaflet-card__footer {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #e7eef3;
}
.tv-section-nearby-listings--v143 .tv-nearby-shell {
  padding: 0;
  border-radius: 28px;
  overflow: hidden;
}
.tv-section-nearby-listings--v143 .tv-nearby-grid {
  padding: 6px;
}
.tv-section-nearby-listings--v143 .tv-nearby-card {
  border: 1px solid #dceaf2;
  background: #fff;
  box-shadow: 0 12px 24px rgba(15,23,42,.05);
}
.tv-section-nearby-listings--v143 .tv-nearby-card__media {
  background: linear-gradient(180deg, #eef4f7 0%, #e7eef2 100%);
}
@media (max-width: 991px) {
  .tv-section-listing-map--v143,
  .tv-section-nearby-listings--v143 {
    padding: 22px;
    border-radius: 28px;
  }
}
@media (max-width: 767px) {
  .tv-section-listing-map--v143,
  .tv-section-nearby-listings--v143 {
    margin-top: 24px;
    padding: 18px;
    border-radius: 24px;
  }
  .tv-section-listing-map--v143 .tv-map-leaflet-card,
  .tv-section-nearby-listings--v143 .tv-nearby-shell,
  .tv-section-nearby-listings--v143 .tv-nearby-summary {
    border-radius: 22px;
  }
}

/* v14.3.5 overview cleanup */
.tv-listing-detail-pro__title-wrap--v11 {
  grid-template-columns: minmax(0, 1fr);
}
.tv-listing-detail-pro__title-copy {
  max-width: 860px;
}
.tv-listing-detail-pro__heading--v11 {
  gap: 18px;
}
.tv-listing-detail-pro__overview-copy {
  max-width: 860px;
  margin: 0;
}

.tv-account-logout {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 16px;
  min-height: 46px;
  border-radius: 16px;
  border: 1px solid var(--tv-border);
  background: #fff;
  color: var(--tv-heading);
  text-decoration: none;
  font-weight: 700;
}
.tv-account-profile-panel {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.tv-account-profile-panel__info h3 {
  margin: 0 0 6px;
}
.tv-account-profile-panel__info p {
  margin: 0 0 14px;
  color: var(--tv-muted);
}

.tv-account-alert {
  margin: 0 0 18px;
  padding: 12px 14px;
  border-radius: 14px;
  font-weight: 600;
}
.tv-account-alert--success {
  background: rgba(16, 185, 129, 0.12);
  color: #0f766e;
}
.tv-account-profile-form {
  display: grid;
  gap: 18px;
}
.tv-account-profile-form__top {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.tv-account-profile-form__avatar-actions {
  display: grid;
  gap: 10px;
}
.tv-account-profile-form__avatar-buttons {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.tv-account-profile-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.tv-account-profile-form__grid label {
  display: grid;
  gap: 8px;
}
.tv-account-profile-form__grid label span {
  font-weight: 600;
  color: #0f172a;
}
.tv-account-profile-form__grid input {
  width: 100%;
  min-height: 48px;
  border-radius: 14px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  padding: 0 14px;
  background: #fff;
}
.tv-account-profile-form__email-field {
  grid-column: 1 / -1;
}
.tv-account-profile-form__email-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
}
.tv-account-profile-form__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.tv-account-email-modal {
  position: fixed;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
  z-index: 9999;
}
.tv-account-email-modal.is-open {
  opacity: 1;
  pointer-events: auto;
}
html.tv-account-email-modal-open,
body.tv-account-email-modal-open {
  overflow: hidden;
}
.tv-account-email-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.5);
}
.tv-account-email-modal__dialog {
  position: relative;
  width: min(560px, calc(100vw - 32px));
  margin: 8vh auto 0;
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 24px 80px rgba(15, 23, 42, 0.2);
  overflow: hidden;
}
.tv-account-email-modal__head,
.tv-account-email-modal__body {
  padding: 22px;
}
.tv-account-email-modal__head {
  border-bottom: 1px solid rgba(148, 163, 184, 0.2);
}
.tv-account-email-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  border: 0;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
.tv-account-email-step {
  display: none;
  gap: 12px;
}
.tv-account-email-step.is-active {
  display: grid;
}
.tv-account-email-step label {
  display: grid;
  gap: 8px;
}
.tv-account-email-step input {
  width: 100%;
  min-height: 48px;
  border-radius: 14px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  padding: 0 14px;
}
.tv-account-email-modal__notice {
  margin-top: 16px;
  min-height: 24px;
  font-weight: 600;
}
.tv-account-email-modal__notice.is-success { color: #0f766e; }
.tv-account-email-modal__notice.is-error { color: #b91c1c; }
.tv-account-email-modal__notice.is-info { color: #334155; }
@media (max-width: 767px) {
  .tv-account-profile-form__grid,
  .tv-account-profile-form__email-row {
    grid-template-columns: 1fr;
  }
}

.tv-account-alert--error { background:#fef2f2; color:#b91c1c; }
.tv-account-profile-form__avatar-help { display:block; margin-top:8px; color:#64748b; font-size:13px; }


.tv-period-pill { cursor: pointer; }
.tv-period-pill:disabled { opacity: .7; cursor: wait; }
.tv-home-ranking-panel { transition: opacity .18s ease; }
[data-tv-home-ranking].is-loading .tv-home-ranking-panel { opacity: .55; }

@media (max-width: 767px) {
  .tv-toplist-card__media { aspect-ratio: 1.45 / 1; }
  .tv-toplist-hero-stats { grid-template-columns:1fr; min-width:0; width:100%; }
}


/* v14.3.8 nearby layout switcher */
.tv-nearby-layout {
  position: relative;
}
.tv-nearby-layout--slider {
  position: relative;
  padding: 0 64px;
}
.tv-nearby-layout--slider:focus-within {
  outline: none;
}
.tv-nearby-slider-controls__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border: 1px solid #cfe3ea;
  border-radius: 999px;
  background: rgba(255,255,255,.96);
  color: #0f172a;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 12px 28px rgba(15,23,42,.12);
  transition: transform .18s ease, opacity .18s ease, background .18s ease;
}
.tv-nearby-slider-controls__btn:hover {
  background: #f4fbfb;
  transform: translateY(-50%) scale(1.04);
}
.tv-nearby-slider-controls__btn:disabled {
  opacity: .45;
  cursor: not-allowed;
  transform: translateY(-50%);
}
.tv-nearby-slider-controls__btn--prev {
  left: 8px;
}
.tv-nearby-slider-controls__btn--next {
  right: 8px;
}
.tv-nearby-grid--slider {
  --tv-nearby-slider-items: 4;
  display: grid;
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (20px * (var(--tv-nearby-slider-items) - 1))) / var(--tv-nearby-slider-items));
  gap: 20px;
  align-items: stretch;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding: 6px 0 10px;
  margin: 0;
  cursor: default;
  user-select: none;
  touch-action: pan-y;
}
.tv-nearby-grid--slider::-webkit-scrollbar {
  display: none;
}
.tv-nearby-grid--slider > .tv-nearby-card {
  scroll-snap-align: start;
}
.tv-nearby-grid--slider > .tv-nearby-card {
  user-select: none;
}
.tv-nearby-grid--card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
}
.tv-nearby-grid--card .tv-nearby-card {
  max-width: 100%;
}
.tv-nearby-grid--grid {
  display: grid;
}
@media (max-width: 1100px) {
  .tv-nearby-layout--slider {
    padding: 0 56px;
  }
  .tv-nearby-grid--slider {
    --tv-nearby-slider-items: 2;
  }
}
@media (max-width: 767px) {
  .tv-nearby-layout--slider {
    padding: 0 44px;
  }
  .tv-nearby-slider-controls__btn {
    width: 40px;
    height: 40px;
    font-size: 24px;
  }
  .tv-nearby-grid--slider {
    --tv-nearby-slider-items: 1;
  }
}


/* v14.3.10 nearby equal-height cards */
.tv-nearby-grid--slider,
.tv-nearby-grid--grid,
.tv-nearby-grid--card {
  align-items: stretch;
}
.tv-nearby-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.tv-nearby-card__media {
  flex: 0 0 auto;
}
.tv-nearby-card__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.tv-nearby-card__body h3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: calc(1.3em * 2);
}
.tv-nearby-card__body p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  min-height: calc(1.7em * 3);
}
.tv-nearby-card__actions {
  margin-top: auto;
}
@media (max-width: 767px) {
  .tv-nearby-card__body h3,
  .tv-nearby-card__body p {
    min-height: 0;
  }
}

/* v14.3.11 nearby card whole-click */
.tv-nearby-card--clickable { cursor: pointer; }
.tv-nearby-card--clickable:focus-visible { outline: 3px solid rgba(15, 118, 110, .28); outline-offset: 3px; }
.tv-nearby-card--clickable .tv-nearby-card__body { min-height: 0; }
.tv-nearby-card__body h3 a { color: inherit; text-decoration: none; }
.tv-nearby-card__body h3 a:hover { color: inherit; }
.tv-nearby-card__actions { display: none !important; }

html.tv-auth-modal-open .tv-mobile-drawer,
html.tv-auth-modal-open .tv-search-modal:not(.is-open) {
  pointer-events: none;
}

html.tv-auth-modal-open .tv-auth-modal__backdrop,
html.tv-auth-modal-open .tv-auth-modal__dialog,
body.tv-search-modal-open .tv-search-modal__backdrop,
body.tv-search-modal-open .tv-search-modal__dialog {
  position: relative;
  z-index: 1;
}

.tv-demo-note--success { background:#ecfdf5; border-color:#a7f3d0; color:#065f46; }
.tv-demo-note--error { background:#fef2f2; border-color:#fecaca; color:#b91c1c; }


/* v1.4.3.26 submit status modal */
.tv-submit-status-modal {
  position: fixed;
  inset: 0;
  z-index: 2147482950;
  isolation: isolate;
  display: none;
}
.tv-submit-status-modal.is-open {
  display: block;
}
.tv-submit-status-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .52);
}
.tv-submit-status-modal__dialog {
  position: relative;
  width: min(520px, calc(100% - 24px));
  margin: min(14vh, 120px) auto 0;
  padding: 28px;
  border-radius: 28px;
  background: #fff;
  border: 1px solid var(--tv-border);
  box-shadow: 0 30px 80px rgba(15, 23, 42, .24);
}
.tv-submit-status-modal__dialog--success {
  border-color: #a7f3d0;
}
.tv-submit-status-modal__dialog--error {
  border-color: #fecaca;
}
.tv-submit-status-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid var(--tv-border);
  background: #fff;
  cursor: pointer;
  font-size: 1.4rem;
}
.tv-submit-status-modal__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 20px;
  margin-bottom: 16px;
  font-size: 1.8rem;
  font-weight: 800;
}
.tv-submit-status-modal__dialog--success .tv-submit-status-modal__icon {
  background: #ecfdf5;
  color: #047857;
}
.tv-submit-status-modal__dialog--error .tv-submit-status-modal__icon {
  background: #fef2f2;
  color: #b91c1c;
}
.tv-submit-status-modal__body h2 {
  margin: 0 0 8px;
  font-size: clamp(1.6rem, 3vw, 2rem);
}
.tv-submit-status-modal__body p {
  margin: 0;
  color: var(--tv-muted);
  line-height: 1.7;
}
.tv-submit-status-modal__actions {
  margin-top: 22px;
  display: flex;
  justify-content: flex-end;
}
.tv-submit-status-modal__actions .tv-btn {
  min-width: 140px;
}
body.tv-submit-status-modal-open {
  overflow: hidden;
}
@media (max-width: 640px) {
  .tv-submit-status-modal__dialog {
    margin-top: 48px;
    padding: 22px 18px;
    border-radius: 24px;
  }
  .tv-submit-status-modal__actions .tv-btn {
    width: 100%;
  }
}

.tv-account-verify,
.tv-account-password {
  display: grid;
  gap: 20px;
}

.tv-account-verify__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.tv-account-verify__tab {
  appearance: none;
  border: 1px solid rgba(15, 118, 110, 0.16);
  background: #fff;
  border-radius: 999px;
  padding: 12px 18px;
  font: inherit;
  font-weight: 700;
  color: #0f172a;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: all .2s ease;
}

.tv-account-verify__tab span {
  min-width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 118, 110, 0.08);
  color: #0f766e;
  font-size: 13px;
}

.tv-account-verify__tab.is-active {
  background: #0f766e;
  color: #fff;
  border-color: #0f766e;
  box-shadow: 0 16px 28px rgba(15, 118, 110, 0.18);
}

.tv-account-verify__tab.is-active span {
  background: rgba(255,255,255,0.18);
  color: #fff;
}

.tv-account-verify__panel {
  display: none;
  gap: 20px;
}

.tv-account-verify__panel.is-active {
  display: grid;
}

.tv-account-verify-list {
  display: grid;
  gap: 16px;
}

.tv-account-verify-card {
  border: 1px solid rgba(15, 118, 110, 0.14);
  background: #fff;
  border-radius: 24px;
  padding: 20px;
  display: grid;
  gap: 14px;
}

.tv-account-verify-card--pending {
  background: #f8fffd;
}

.tv-account-verify-card--approved {
  background: #f0fdf4;
  border-color: rgba(4, 120, 87, 0.16);
}

.tv-account-verify-card--rejected {
  background: #fff7ed;
  border-color: rgba(194, 65, 12, 0.16);
}

.tv-account-verify-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.tv-account-verify-card__head h3 {
  margin: 0 0 6px;
  font-size: 20px;
  color: #0f172a;
}

.tv-account-verify-card__head p,
.tv-account-verify-card__note p {
  margin: 0;
  color: #475569;
}

.tv-account-verify-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
}

.tv-account-verify-card__meta span {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  color: #334155;
  font-size: 14px;
}

.tv-account-verify-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}

.tv-account-verify-badge.is-pending {
  background: rgba(15, 118, 110, 0.12);
  color: #0f766e;
}

.tv-account-verify-badge.is-approved {
  background: rgba(4, 120, 87, 0.12);
  color: #047857;
}

.tv-account-verify-badge.is-rejected {
  background: rgba(194, 65, 12, 0.12);
  color: #c2410c;
}

.tv-account-verify-card__note {
  border-radius: 18px;
  padding: 16px 18px;
  background: rgba(15, 118, 110, 0.05);
  display: grid;
  gap: 8px;
}

.tv-account-verify-card__note strong {
  color: #0f172a;
}

.tv-account-verify-card__note--admin {
  background: rgba(15, 118, 110, 0.08);
}

.tv-account-verify-card__note--admin.is-rejected {
  background: rgba(194, 65, 12, 0.08);
}

.tv-account-verify-card__actions {
  display: flex;
  gap: 12px;
}

.tv-account-verify__intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.tv-account-verify__intro-card,
.tv-account-password__step {
  border: 1px solid rgba(15, 118, 110, 0.14);
  background: #f8fffd;
  border-radius: 24px;
  padding: 20px;
}

.tv-account-verify__intro-card strong,
.tv-account-password__step strong {
  display: block;
  font-size: 16px;
  margin-bottom: 8px;
  color: #0f172a;
}

.tv-account-verify__intro-card p,
.tv-account-password__step p {
  margin: 0;
  color: #475569;
}

.tv-account-verify-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.tv-account-verify-form__grid label,
.tv-account-password__step label {
  display: grid;
  gap: 8px;
}

.tv-account-verify-form__grid span,
.tv-account-password__step span {
  font-weight: 700;
  color: #0f172a;
}

.tv-account-verify-form__grid input,
.tv-account-verify-form__grid select,
.tv-account-verify-form__grid textarea,
.tv-account-password__step input {
  width: 100%;
  border: 1px solid #d9e2ec;
  border-radius: 16px;
  padding: 14px 16px;
  font: inherit;
  background: #fff;
}

.tv-account-verify-form__field--full {
  grid-column: 1 / -1;
}

.tv-account-verify-form__actions,
.tv-account-password__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.tv-account-verify-form__status,
.tv-account-password__notice {
  min-height: 24px;
  border-radius: 16px;
  padding: 0;
  color: #475569;
}

.tv-account-verify-form__status.is-info,
.tv-account-password__notice.is-info {
  background: rgba(15, 118, 110, 0.08);
  color: #0f766e;
  padding: 14px 16px;
}

.tv-account-verify-form__status.is-success,
.tv-account-password__notice.is-success {
  background: #ecfdf5;
  color: #047857;
  padding: 14px 16px;
}

.tv-account-verify-form__status.is-error,
.tv-account-password__notice.is-error {
  background: #fef2f2;
  color: #b91c1c;
  padding: 14px 16px;
}

.tv-account-password__step {
  display: none;
  gap: 14px;
}

.tv-account-password__step.is-active {
  display: grid;
}

@media (max-width: 991px) {
  .tv-account-verify__intro,
  .tv-account-verify-form__grid {
    grid-template-columns: 1fr;
  }

  .tv-account-verify-card__head {
    flex-direction: column;
  }

  .tv-account-verify-instructions__actions {
    width: 100%;
  }

  .tv-account-verify-instructions__actions .tv-btn {
    width: 100%;
    justify-content: center;
  }
}

.tv-account-verify-method-help,
.tv-account-verify-instructions {
  border: 1px dashed rgba(15, 118, 110, 0.28);
  border-radius: 18px;
  padding: 16px 18px;
  background: rgba(240, 253, 250, 0.7);
}

.tv-account-verify-method-help p,
.tv-account-verify-instructions p {
  margin: 8px 0 0;
}

.tv-account-verify-instructions__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.tv-account-verify-instructions__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.tv-btn--sm {
  min-height: 38px;
  padding: 0 14px;
  font-size: 13px;
}

.tv-account-verify-code,
.tv-account-verify-file {
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  line-height: 1.6;
  word-break: break-word;
}

.tv-account-verify-card__note--soft {
  background: rgba(248, 250, 252, 0.9);
  border-color: rgba(148, 163, 184, 0.35);
}

.tv-review-widget-config{
  margin-top:16px;
  padding:16px;
  border:1px solid rgba(148,163,184,.25);
  border-radius:18px;
  background:#fff;
}
.tv-review-widget-config label span{
  display:block;
  font-weight:600;
  margin-bottom:8px;
}
.tv-review-widget-config select,
.tv-review-widget-config textarea{
  width:100%;
}
.tv-account-empty-state{
  padding:18px;
  border:1px dashed rgba(148,163,184,.4);
  border-radius:18px;
  background:rgba(248,250,252,.8);
}
.tv-account-empty-state strong{
  display:block;
  margin-bottom:6px;
}


/* Taxonomy archive */
.tv-taxonomy-archive{padding-top:32px}
.tv-taxonomy-hero{overflow:hidden;background:linear-gradient(135deg,rgba(15,23,42,.98),rgba(13,148,136,.94));color:#fff}
.tv-taxonomy-hero .tv-card__body{padding:28px}
.tv-taxonomy-breadcrumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;font-size:13px;opacity:.84}
.tv-taxonomy-breadcrumbs a{color:inherit;text-decoration:none}
.tv-taxonomy-hero__head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;flex-wrap:wrap}
.tv-taxonomy-hero__title{margin:10px 0 12px;font-size:clamp(32px,4vw,44px);line-height:1.1;color:#fff}
.tv-taxonomy-hero__desc{margin:0;max-width:760px;color:rgba(255,255,255,.84)}
.tv-taxonomy-hero__stats{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start}
.tv-taxonomy-pill{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);font-weight:600;color:#fff}
.tv-taxonomy-block{margin-top:28px}
.tv-taxonomy-terms-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.tv-taxonomy-term-card{text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease}
.tv-taxonomy-term-card:hover{transform:translateY(-3px)}
.tv-taxonomy-term-card .tv-card__body{display:flex;flex-direction:column;gap:6px}
.tv-taxonomy-term-card strong{font-size:17px}
.tv-taxonomy-term-card span{color:#0f766e;font-weight:600}
.tv-taxonomy-term-card small{color:#64748b}
.tv-taxonomy-pagination{margin-top:28px}
.tv-taxonomy-pagination .page-numbers{display:flex;gap:8px;list-style:none;padding:0;margin:0;flex-wrap:wrap}
.tv-taxonomy-pagination .page-numbers a,.tv-taxonomy-pagination .page-numbers span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 14px;border-radius:999px;background:#fff;border:1px solid rgba(148,163,184,.28);text-decoration:none;color:#0f172a}
.tv-taxonomy-pagination .page-numbers .current{background:#0f766e;color:#fff;border-color:#0f766e}
@media (max-width: 1024px){.tv-taxonomy-terms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 640px){.tv-taxonomy-hero .tv-card__body{padding:22px}.tv-taxonomy-terms-grid{grid-template-columns:1fr}.tv-taxonomy-hero__title{font-size:30px}}

/* Khu vực landing page */
.tv-location-landing .tv-taxonomy-terms-grid--provinces{grid-template-columns:repeat(4,minmax(0,1fr))}
.tv-location-landing .tv-taxonomy-terms-grid--compact{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width: 1024px){.tv-location-landing .tv-taxonomy-terms-grid--provinces,.tv-location-landing .tv-taxonomy-terms-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 640px){.tv-location-landing .tv-taxonomy-terms-grid--provinces,.tv-location-landing .tv-taxonomy-terms-grid--compact{grid-template-columns:1fr}}


.tv-header-actions {
  align-items: center;
  position: relative;
  z-index: 6;
}
.tv-header-actions > .tv-btn,
.tv-header-actions > .tv-account-menu {
  flex-shrink: 0;
}
.tv-account-menu {
  position: relative;
  z-index: 30;
}
.tv-account-menu__trigger {
  min-height: 48px;
  padding: 8px 12px 8px 10px;
  gap: 10px;
  border-color: rgba(15, 118, 110, .14);
  box-shadow: 0 8px 18px rgba(15, 23, 42, .05);
}
.tv-account-menu__trigger:hover {
  border-color: rgba(15, 118, 110, .28);
  background: #fff;
}
.tv-account-menu__trigger svg {
  width: 18px;
  height: 18px;
  color: #64748b;
  transition: transform .2s ease;
}
.tv-account-menu.is-open .tv-account-menu__trigger svg {
  transform: rotate(180deg);
}
.tv-account-menu__trigger-avatar,
.tv-account-menu__avatar {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  background: linear-gradient(135deg, var(--tv-primary), #14b8a6);
  color: #fff;
  font-size: .95rem;
  font-weight: 800;
  letter-spacing: .02em;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.16);
}
.tv-account-menu__trigger-copy {
  display: grid;
  gap: 1px;
  text-align: left;
  line-height: 1.15;
}
.tv-account-menu__trigger-label {
  font-weight: 700;
  color: var(--tv-primary-dark);
  max-width: 128px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tv-account-menu__trigger-subtitle {
  color: var(--tv-muted);
  font-size: .74rem;
  font-weight: 600;
}
.tv-account-menu__dropdown {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  width: min(340px, calc(100vw - 32px));
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.tv-account-menu.is-open .tv-account-menu__dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.tv-account-menu__card {
  background: rgba(255,255,255,.98);
  border: 1px solid rgba(148,163,184,.18);
  border-radius: 20px;
  box-shadow: 0 24px 48px rgba(15, 23, 42, .14);
  padding: 12px;
  backdrop-filter: blur(14px);
}
.tv-account-menu__user {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(15,118,110,.08), rgba(20,184,166,.03));
}
.tv-account-menu__avatar {
  width: 44px;
  height: 44px;
  font-size: 1.05rem;
}
.tv-account-menu__meta {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.tv-account-menu__meta strong,
.tv-account-menu__links strong {
  display: block;
  color: #0f172a;
}
.tv-account-menu__meta span,
.tv-account-menu__links small {
  display: block;
  color: var(--tv-muted);
  font-size: .85rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tv-account-menu__links {
  display: grid;
  gap: 6px;
  padding: 10px 0;
}
.tv-account-menu__links a,
.tv-account-menu__footer a {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-radius: 16px;
  transition: background .18s ease, transform .18s ease;
}
.tv-account-menu__links a:hover,
.tv-account-menu__footer a:hover {
  background: #f8fafc;
  transform: translateX(2px);
}
.tv-account-menu__icon {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  display: inline-grid;
  place-items: center;
  background: #f1f5f9;
  font-size: 1rem;
}
.tv-account-menu__footer {
  padding-top: 10px;
  border-top: 1px solid rgba(148,163,184,.18);
}
.tv-account-menu__footer a {
  color: #b91c1c;
}
.tv-account-menu__footer .tv-account-menu__icon {
  background: #fef2f2;
}
@media (max-width: 991px) {
  .tv-account-menu__trigger-copy,
  .tv-account-menu__dropdown {
    display: none;
  }
}

/* v14.3.38.5 mobile usability refinement */
@media (max-width: 991px) {
  .tv-site-header,
  .tv-site-header--premium {
    backdrop-filter: blur(10px);
  }

  .tv-site-header__inner {
    min-height: 68px;
    gap: 12px;
  }

  .tv-logo {
    min-width: 0;
    gap: 10px;
  }

  .tv-logo__text {
    max-width: min(46vw, 200px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .tv-site-main {
    overflow-x: clip;
  }

  .tv-hero {
    padding: 24px 0 18px;
  }

  .tv-hero__card,
  .tv-card__body,
  .tv-submit-form-card,
  .tv-register-card,
  .tv-account-panel-card {
    padding: 18px;
  }

  .tv-section {
    padding: 18px 0 30px;
  }

  .tv-mobile-drawer__panel {
    width: min(92vw, 380px);
    padding: calc(env(safe-area-inset-top, 0px) + 18px) 16px calc(env(safe-area-inset-bottom, 0px) + 24px);
  }

  .tv-mobile-drawer__head {
    position: sticky;
    top: calc(env(safe-area-inset-top, 0px) * -1);
    z-index: 2;
    margin: -18px -16px 18px;
    padding: calc(env(safe-area-inset-top, 0px) + 14px) 16px 14px;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(226,232,240,.9);
  }

  .tv-mobile-nav {
    gap: 8px;
  }

  .tv-mobile-nav a,
  .tv-mobile-drawer__actions .tv-btn {
    min-height: 48px;
    border-radius: 16px;
  }

  .tv-mobile-nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 14px;
    background: #f8fafc;
    border: 1px solid rgba(226,232,240,.95);
    font-weight: 700;
  }

  .tv-mobile-nav a::after {
    content: '›';
    color: #94a3b8;
    font-size: 1.1rem;
    line-height: 1;
  }

  .tv-search-modal__dialog {
    width: min(100% - 18px, 980px);
    max-height: calc(100dvh - 18px);
    border-radius: 24px;
    padding: 20px 16px;
  }

  .tv-search-modal__close {
    top: 12px;
    right: 12px;
  }

  .tv-search-modal__grid {
    gap: 12px;
  }

  .tv-search-modal__field span {
    margin-bottom: 6px;
  }

  .tv-search-modal__form input,
  .tv-search-modal__form select,
  .tv-form input,
  .tv-form textarea,
  .tv-form select {
    min-height: 48px;
  }

  textarea.tv-form,
  .tv-form textarea {
    min-height: 120px;
  }

  .tv-account-v2 {
    gap: 18px;
  }

  .tv-account-v2__profile-card .tv-card__body {
    display: grid;
    gap: 14px;
  }

  .tv-account-v2__menu {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 4px;
    margin: 0 -2px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }

  .tv-account-v2__menu::-webkit-scrollbar {
    display: none;
  }

  .tv-account-link {
    flex: 0 0 auto;
    white-space: nowrap;
    scroll-snap-align: start;
    padding: 12px 14px;
  }

  .tv-account-v2__note {
    margin-top: 4px;
    padding: 16px;
  }

  .tv-account-v2__hero {
    padding: 0;
    gap: 12px;
  }

  .tv-account-v2__hero h1 {
    font-size: clamp(1.6rem, 7vw, 2.35rem);
    line-height: 1.08;
  }

  .tv-account-stats--v2,
  .tv-account-overview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tv-stat-card,
  .tv-account-overview-tile,
  .tv-account-list-card {
    border-radius: 18px;
  }

  .tv-account-list-card {
    padding: 14px;
  }

  .tv-account-list-card__score {
    width: fit-content;
    min-width: 52px;
    min-height: 52px;
  }

  .tv-listing-single {
    border-radius: 22px;
  }

  .tv-listing-single__media {
    aspect-ratio: 16 / 9;
  }

  .tv-listing-detail-pro__smart-nav,
  [data-smart-nav] {
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .tv-listing-detail-pro__smart-nav::-webkit-scrollbar,
  [data-smart-nav]::-webkit-scrollbar {
    display: none;
  }

  .tv-site-footer__inner {
    gap: 18px;
  }
}

@media (max-width: 767px) {
  .tv-site-header__inner {
    min-height: 64px;
  }

  .tv-logo__text {
    max-width: 42vw;
    font-size: .98rem;
  }

  .tv-menu-toggle,
  .tv-search-toggle,
  .tv-search-toggle--mobile {
    width: 44px;
    height: 44px;
  }

  .tv-section-head {
    gap: 10px;
    margin-bottom: 16px;
  }

  .tv-section-head h2 {
    font-size: 1.35rem;
  }

  .tv-hero h1,
  .tv-account-v2__hero h1 {
    letter-spacing: -.02em;
  }

  .tv-card__body,
  .tv-submit-form-card,
  .tv-register-card,
  .tv-hero__card,
  .tv-account-panel-card {
    padding: 16px;
  }

  .tv-ranking-item,
  .tv-account-list-card,
  .tv-search-result-card,
  .tv-listing-card,
  .tv-card {
    border-radius: 16px;
  }

  .tv-account-stats--v2,
  .tv-account-overview-grid,
  .tv-listing-single__hero,
  .tv-nearby-grid,
  .tv-taxonomy-terms-grid,
  .tv-location-landing .tv-taxonomy-terms-grid--provinces,
  .tv-location-landing .tv-taxonomy-terms-grid--compact {
    grid-template-columns: 1fr;
  }

  .tv-account-v2__profile {
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 12px;
  }

  .tv-account-avatar,
  .tv-account-avatar__image,
  .tv-account-avatar img {
    width: 56px;
    height: 56px;
  }

  .tv-account-v2__hero-actions,
  .tv-hero__actions,
  .tv-search-modal__actions {
    width: 100%;
  }

  .tv-account-v2__hero-actions .tv-btn,
  .tv-hero__actions .tv-btn,
  .tv-search-modal__actions .tv-btn,
  .tv-form button[type="submit"],
  .tv-btn {
    width: 100%;
  }

  .tv-account-v2__hero-actions .tv-btn + .tv-btn,
  .tv-hero__actions .tv-btn + .tv-btn {
    margin-top: 10px;
  }

  .tv-submit-wrap,
  .tv-listing-detail-pro__layout,
  .tv-ranking-layout,
  .tv-taxonomy-layout,
  .tv-location-landing__sections,
  .tv-hero-search__grid {
    gap: 16px;
  }

  .tv-toast {
    left: 12px;
    right: 12px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 12px);
    width: auto;
  }
}

@media (max-width: 480px) {
  .tv-container,
  .tv-container--wide {
    width: min(100% - 16px, 1360px);
  }

  .tv-logo__text {
    display: none;
  }

  .tv-mobile-header-actions {
    gap: 8px;
  }

  .tv-mobile-drawer__panel,
  .tv-search-modal__dialog {
    width: calc(100% - 12px);
  }

  .tv-search-modal__dialog {
    min-height: calc(100dvh - 12px);
    border-radius: 20px;
  }

  .tv-search-modal__head h2 {
    font-size: 1.35rem;
  }

  .tv-stat-card {
    padding: 16px;
  }

  .tv-stat-card__value {
    font-size: 1.65rem;
  }

  .tv-ranking-item {
    grid-template-columns: auto 1fr;
    align-items: flex-start;
  }

  .tv-ranking-item__score {
    grid-column: 2;
    text-align: left;
    justify-items: start;
  }

  .tv-account-v2__menu {
    gap: 8px;
  }

  .tv-account-link {
    padding: 11px 13px;
    font-size: .95rem;
  }
}


/* Mobile typography refinement v14.3.38.6 */
@media (max-width: 767px) {
  html {
    font-size: 15px;
  }

  body {
    line-height: 1.55;
  }

  .tv-site-header__inner {
    min-height: 60px;
    gap: 10px;
  }

  .tv-logo__mark {
    width: 38px;
    height: 38px;
    border-radius: 12px;
  }

  .tv-logo__text {
    font-size: .92rem;
    line-height: 1.2;
  }

  .tv-menu-toggle,
  .tv-search-toggle,
  .tv-search-toggle--mobile {
    width: 40px;
    height: 40px;
  }

  .tv-kicker,
  .tv-badge,
  .tv-ranking-item__meta,
  .tv-location,
  .tv-field-note,
  .tv-demo-note,
  .tv-card p,
  .tv-card li,
  .tv-listing-card p,
  .tv-search-result-card p,
  .tv-account-panel-card p {
    font-size: .92rem;
  }

  .tv-section-head h2,
  .tv-card h3,
  .tv-listing-card h3,
  .tv-search-result-card h3,
  .tv-account-panel-card h3 {
    line-height: 1.3;
  }

  .tv-section-head h2 {
    font-size: 1.22rem;
  }

  .tv-hero h1,
  .tv-account-v2__hero h1,
  .tv-taxonomy-hero__title {
    font-size: clamp(1.7rem, 6.4vw, 2.1rem);
    line-height: 1.14;
  }

  .tv-hero p,
  .tv-hero__card p,
  .tv-section-head p,
  .tv-content-single p,
  .tv-entry-content p,
  .tv-listing-single__content p,
  .tv-search-modal__body p {
    font-size: .96rem;
    line-height: 1.65;
  }

  .tv-card__body,
  .tv-submit-form-card,
  .tv-register-card,
  .tv-hero__card,
  .tv-account-panel-card,
  .tv-listing-single,
  .tv-search-result-card,
  .tv-listing-card,
  .tv-ranking-item,
  .tv-stat-card {
    padding: 14px;
  }

  .tv-btn,
  .tv-form input,
  .tv-form textarea,
  .tv-form select,
  .tv-account-link,
  .tv-mobile-drawer__menu a,
  .tv-search-modal__quick-link,
  .tv-search-modal__result a {
    font-size: .95rem;
  }

  .tv-btn {
    min-height: 42px;
    padding: 11px 16px;
  }

  .tv-form label {
    gap: 6px;
    font-size: .94rem;
  }

  .tv-form input,
  .tv-form textarea,
  .tv-form select {
    border-radius: 12px;
    padding: 11px 13px;
  }

  .tv-account-link {
    padding: 10px 12px;
  }

  .tv-mobile-drawer__menu a {
    padding-top: 12px;
    padding-bottom: 12px;
  }

  .tv-ranking-item__title,
  .tv-stat-card__value,
  .tv-account-list-card__title,
  .tv-listing-single__title {
    line-height: 1.25;
  }

  .tv-ranking-item__title,
  .tv-account-list-card__title,
  .tv-search-result-card h3,
  .tv-listing-card h3 {
    font-size: 1rem;
  }
}

@media (max-width: 480px) {
  html {
    font-size: 14.5px;
  }

  .tv-site-header__inner {
    min-height: 56px;
  }

  .tv-hero {
    padding-top: 20px;
  }

  .tv-section {
    padding: 16px 0 28px;
  }

  .tv-section-head {
    gap: 8px;
    margin-bottom: 12px;
  }

  .tv-section-head h2 {
    font-size: 1.14rem;
  }

  .tv-hero h1,
  .tv-account-v2__hero h1,
  .tv-taxonomy-hero__title {
    font-size: clamp(1.52rem, 6vw, 1.9rem);
  }

  .tv-kicker,
  .tv-badge,
  .tv-ranking-item__meta,
  .tv-location,
  .tv-field-note,
  .tv-demo-note,
  .tv-card p,
  .tv-listing-card p,
  .tv-search-result-card p,
  .tv-account-panel-card p,
  .tv-site-footer,
  .tv-site-footer p,
  .tv-site-footer a {
    font-size: .89rem;
  }

  .tv-hero p,
  .tv-hero__card p,
  .tv-section-head p,
  .tv-content-single p,
  .tv-entry-content p,
  .tv-listing-single__content p,
  .tv-search-modal__body p {
    font-size: .93rem;
    line-height: 1.6;
  }

  .tv-btn,
  .tv-form input,
  .tv-form textarea,
  .tv-form select,
  .tv-account-link,
  .tv-mobile-drawer__menu a,
  .tv-search-modal__quick-link,
  .tv-search-modal__result a {
    font-size: .93rem;
  }

  .tv-card__body,
  .tv-submit-form-card,
  .tv-register-card,
  .tv-hero__card,
  .tv-account-panel-card,
  .tv-listing-single,
  .tv-search-result-card,
  .tv-listing-card,
  .tv-ranking-item,
  .tv-stat-card,
  .tv-account-list-card {
    padding: 12px;
  }

  .tv-ranking-item__title,
  .tv-account-list-card__title,
  .tv-search-result-card h3,
  .tv-listing-card h3 {
    font-size: .98rem;
  }

  .tv-stat-card__value {
    font-size: 1.45rem;
  }
}


/* =========================================
   STANDARD UGC INPUT SAFETY
   Gửi danh sách / hiển thị preview trên mobile
   ========================================= */
.tv-form--ugc label,
.tv-form--ugc .tv-repeatable__item,
.tv-form--ugc .tv-image-preview__content {
  min-width: 0;
}

.tv-user-input,
.tv-user-input--singleline,
.tv-user-input--multiline {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.tv-user-input--singleline {
  white-space: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  text-overflow: ellipsis;
}

.tv-user-input--url {
  direction: ltr;
}

.tv-user-input--multiline {
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: anywhere;
  line-height: 1.55;
}

.tv-form--ugc textarea.tv-user-input--multiline {
  min-height: 132px;
}

.tv-image-preview__title,
.tv-image-preview__meta,
.tv-field-note,
.tv-demo-note {
  min-width: 0;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

@media (max-width: 767px) {
  .tv-form--ugc input.tv-user-input--singleline {
    font-size: 14px;
  }

  .tv-form--ugc textarea.tv-user-input--multiline {
    font-size: 14px;
    min-height: 120px;
  }
}


/* =========================================
   STANDARD + PRETTIER UGC SUBMIT FORM
   Gửi danh sách: gọn hơn, rõ hơn, app-like hơn
   ========================================= */
.tv-form--ugc {
  gap: 18px;
}

.tv-form--ugc .tv-form-grid {
  gap: 18px;
}

.tv-form--ugc .tv-form-field > span,
.tv-form--ugc .tv-repeatable__head > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 2px;
  font-size: .95rem;
  font-weight: 700;
  color: #0f172a;
}

.tv-form--ugc label,
.tv-form--ugc .tv-repeatable,
.tv-form--ugc .tv-media-field {
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
  border: 1px solid #dbe7f3;
  border-radius: 18px;
  padding: 14px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .04);
}

.tv-form--ugc .tv-repeatable {
  gap: 12px;
}


.tv-submit-maps-inline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

#tv-maps-autofill-status.is-error {
  color: #b42318;
}

#tv-maps-autofill-status.is-success {
  color: #027a48;
}

@media (max-width: 767px) {
  .tv-submit-maps-inline {
    grid-template-columns: 1fr;
  }
}

.tv-form--ugc .tv-repeatable__item {
  gap: 12px;
}

.tv-form--ugc .tv-user-input,
.tv-form--ugc select {
  border-color: #cfd8e3;
  border-radius: 14px;
  min-height: 46px;
  padding: 12px 14px;
  background: #fff;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.tv-form--ugc .tv-user-input::placeholder,
.tv-form--ugc select,
.tv-form--ugc textarea::placeholder {
  color: #94a3b8;
}

.tv-form--ugc .tv-user-input:focus,
.tv-form--ugc select:focus,
.tv-form--ugc textarea:focus {
  outline: none;
  border-color: rgba(15,118,110,.55);
  box-shadow: 0 0 0 4px rgba(15,118,110,.10);
  background: #ffffff;
}

.tv-form--ugc .tv-user-input--singleline {
  padding-right: 12px;
  scrollbar-width: thin;
  scrollbar-color: rgba(148,163,184,.5) transparent;
}

.tv-form--ugc .tv-user-input--singleline::-webkit-scrollbar {
  height: 6px;
}

.tv-form--ugc .tv-user-input--singleline::-webkit-scrollbar-thumb {
  background: rgba(148,163,184,.45);
  border-radius: 999px;
}

.tv-form--ugc .tv-user-input--multiline {
  min-height: 120px;
  padding-top: 13px;
  padding-bottom: 13px;
}

.tv-form--ugc textarea.tv-user-input--multiline[name="content"] {
  min-height: 160px;
}

.tv-field-help {
  display: block;
  margin-top: 2px;
  font-size: .82rem;
  line-height: 1.45;
  font-weight: 500;
  color: #64748b;
}

.tv-form--ugc .tv-field-note,
.tv-form--ugc .tv-demo-note {
  border-radius: 16px;
}

.tv-form--ugc .tv-image-preview--startup {
  border-radius: 18px;
}

.tv-form--ugc .tv-image-preview__content {
  gap: 4px;
}

.tv-form--ugc .tv-upload-btn,
.tv-form--ugc .tv-preview-btn,
.tv-form--ugc .tv-icon-btn,
.tv-form--ugc .tv-remove-btn {
  min-height: 42px;
  border-radius: 12px;
}

.tv-form--ugc > .tv-btn {
  min-height: 46px;
  padding-inline: 18px;
  border-radius: 14px;
  box-shadow: 0 12px 24px rgba(15,118,110,.16);
}

@media (max-width: 767px) {
  .tv-form--ugc .tv-form-grid {
    gap: 14px;
  }

  .tv-form--ugc label,
  .tv-form--ugc .tv-repeatable,
  .tv-form--ugc .tv-media-field {
    padding: 12px;
    border-radius: 16px;
  }

  .tv-form--ugc .tv-form-field > span,
  .tv-form--ugc .tv-repeatable__head > span {
    font-size: .92rem;
  }

  .tv-field-help {
    font-size: .8rem;
  }

  .tv-form--ugc .tv-user-input,
  .tv-form--ugc select {
    min-height: 44px;
    font-size: 14px;
  }

  .tv-form--ugc .tv-user-input--multiline {
    min-height: 112px;
  }

  .tv-form--ugc textarea.tv-user-input--multiline[name="content"] {
    min-height: 144px;
  }

  .tv-form--ugc > .tv-btn {
    width: 100%;
  }
}


/* =========================================
   v14.3.38.9 output display safety patch
   Dữ liệu user nhập khi hiển thị ra ngoài:
   tự xuống dòng nếu viết liền / link dài / meta dài
   ========================================= */
.tv-listing-card,
.tv-search-result-card,
.tv-nearby-card,
.tv-listing-hero-pro__intro,
.tv-listing-hero-pro__intro--mobile,
.tv-listing-detail-pro__contact-card,
.tv-listing-detail-pro__contact-grid,
.tv-listing-detail-pro__links,
.tv-listing-detail-pro__address,
.tv-toplist-single__hero,
.tv-toplist-single__content,
.tv-hero__content,
.tv-card__body,
.tv-listing-card__content,
.tv-search-result-card__body,
.tv-nearby-card__body {
  min-width: 0;
}

.tv-listing-card__title,
.tv-listing-card__title a,
.tv-listing-card__excerpt,
.tv-search-result-card__body h2,
.tv-search-result-card__body h2 a,
.tv-search-result-card__body h3,
.tv-search-result-card__body h3 a,
.tv-search-result-card__body p,
.tv-toplist-single__excerpt,
.tv-listing-single__excerpt,
.tv-listing-hero-pro__excerpt,
.tv-listing-detail-pro__excerpt,
.tv-listing-detail-pro__address-text,
.tv-nearby-card__body h3,
.tv-nearby-card__body h3 a,
.tv-nearby-card__body p,
.tv-hero__content p,
.entry-content p,
.entry-content li,
.entry-content span,
.description {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.tv-listing-hero-pro__stat-pill,
.tv-search-result-card__meta span,
.tv-listing-detail-pro__website,
.tv-listing-detail-pro__website--text,
.tv-listing-detail-pro__address-text,
.tv-nearby-card__distance {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.entry-content a,
.description a,
.tv-listing-card__excerpt a,
.tv-search-result-card__body p a,
.tv-toplist-single__excerpt a,
.tv-listing-single__excerpt a,
.tv-listing-hero-pro__excerpt a,
.tv-listing-detail-pro__excerpt a,
.tv-listing-detail-pro__website--text,
.tv-listing-detail-pro__address-text a,
.tv-nearby-card__body p a {
  white-space: normal;
  word-break: break-all;
  overflow-wrap: anywhere;
}

@media (max-width: 767px) {
  .tv-listing-card__title,
  .tv-search-result-card__body h2,
  .tv-search-result-card__body h3,
  .tv-nearby-card__body h3 {
    line-height: 1.35;
  }

  .tv-listing-card__excerpt,
  .tv-search-result-card__body p,
  .tv-toplist-single__excerpt,
  .tv-listing-single__excerpt,
  .tv-listing-hero-pro__excerpt,
  .tv-listing-detail-pro__excerpt,
  .tv-nearby-card__body p,
  .tv-listing-detail-pro__address-text {
    line-height: 1.55;
  }

  .tv-listing-hero-pro__stat-pill,
  .tv-search-result-card__meta span,
  .tv-nearby-card__distance {
    line-height: 1.35;
  }
}


/* =========================================
   v14.3.38.10 output patch focused
   Nội dung chi tiết / nội dung ngắn / link
   ========================================= */
.tv-entry-content,
.tv-entry-content--pro,
.tv-listing-detail-pro__long-content,
.tv-listing-detail-pro__content,
.tv-listing-detail-pro__content-section,
.tv-listing-hero-pro__excerpt,
.tv-listing-card__excerpt,
.tv-search-result-card__body,
.tv-search-result-card__meta,
.tv-nearby-card__body,
.tv-toplist-single__content,
.tv-toplist-single__excerpt,
.tv-listing-detail-pro__website,
.tv-listing-detail-pro__website--text,
.tv-listing-detail-pro__links,
.tv-listing-detail-pro__address-text,
.tv-listing-detail-pro__meta,
.tv-listing-detail-pro__contact-card,
.tv-listing-detail-pro__contact-grid {
  min-width: 0;
}

/* Nội dung chi tiết */
.tv-entry-content,
.tv-entry-content--pro,
.tv-listing-detail-pro__long-content,
.tv-listing-detail-pro__content,
.tv-listing-detail-pro__content-section,
.tv-entry-content p,
.tv-entry-content li,
.tv-entry-content span,
.tv-entry-content strong,
.tv-entry-content em,
.tv-entry-content blockquote,
.tv-entry-content h2,
.tv-entry-content h3,
.tv-entry-content h4,
.tv-listing-detail-pro__long-content p,
.tv-listing-detail-pro__long-content li,
.tv-listing-detail-pro__long-content span {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* Nội dung ngắn */
.tv-listing-hero-pro__excerpt,
.tv-listing-card__excerpt,
.tv-search-result-card__body p,
.tv-toplist-single__excerpt,
.tv-nearby-card__body p,
.tv-listing-detail-pro__address-text,
.tv-listing-hero-pro__stat-pill,
.tv-search-result-card__meta span,
.tv-nearby-card__distance {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* Link hiển thị ngoài */
.tv-entry-content a,
.tv-entry-content--pro a,
.tv-listing-detail-pro__long-content a,
.tv-listing-hero-pro__excerpt a,
.tv-listing-card__excerpt a,
.tv-search-result-card__body a,
.tv-toplist-single__excerpt a,
.tv-nearby-card__body a,
.tv-listing-detail-pro__website,
.tv-listing-detail-pro__website--text,
.tv-listing-detail-pro__links a,
.tv-listing-detail-pro__address-text a {
  white-space: normal;
  word-break: break-all;
  overflow-wrap: anywhere;
}

/* Fix common flex/grid wrappers */
.tv-search-result-card__body,
.tv-nearby-card__body,
.tv-listing-detail-pro__links,
.tv-listing-detail-pro__contact-grid,
.tv-listing-detail-pro__content,
.tv-toplist-single__content {
  min-width: 0;
}

/* =========================
   FOOTER MOBILE CHIA CỘT
   ========================= */

@media (max-width: 767px) {
  .tv-site-footer__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 16px;
    padding: 24px 0 18px;
    align-items: start;
  }

  .tv-site-footer__grid > div {
    min-width: 0;
  }

  /* Khối đầu tiên: logo + mô tả chiếm full */
  .tv-site-footer__grid > div:first-child {
    grid-column: 1 / -1;
  }

  .tv-site-footer__grid h3 {
    margin: 0 0 10px;
    font-size: 16px;
    line-height: 1.35;
  }

  .tv-site-footer__list {
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .tv-site-footer__list li + li {
    margin-top: 8px;
  }

  .tv-site-footer__list a {
    display: inline-block;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    line-height: 1.5;
  }

  .tv-site-footer__bottom {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    padding-top: 16px;
    margin-top: 18px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
  }
}

/* Mobile nhỏ hơn nữa thì về 1 cột */
@media (max-width: 420px) {
  .tv-site-footer__grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .tv-site-footer__grid > div:first-child {
    grid-column: auto;
  }
}

@media (max-width: 767px) {
  .tv-site-footer {
    border-top: 1px solid rgba(0, 0, 0, 0.06);
  }

  .tv-site-footer__grid > div:not(:first-child) {
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(0, 0, 0, 0.02);
  }
}

.tv-lazy-placeholder{display:grid;gap:14px;padding:20px;border-radius:24px;background:rgba(255,255,255,.72);backdrop-filter:blur(8px);box-shadow:0 12px 30px rgba(15,23,42,.06)}
.tv-lazy-placeholder__pulse{height:16px;border-radius:999px;background:linear-gradient(90deg,rgba(148,163,184,.18),rgba(148,163,184,.34),rgba(148,163,184,.18));background-size:200% 100%;animation:tvLazyPulse 1.4s ease-in-out infinite;width:58%}
.tv-lazy-placeholder__pulse.is-wide{width:100%;height:220px;border-radius:22px}
.tv-section--lazy-shell .tv-container--narrow{display:grid;gap:18px}
@keyframes tvLazyPulse{0%{background-position:200% 0}100%{background-position:-200% 0}}


/* Google Maps style map switch */
.tv-map-canvas-shell {
  position: relative;
}
.tv-map-toolbar__select-wrap--gmaps {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 460;
  display: flex;
  align-items: stretch;
  gap: 6px;
  padding: 5px;
  border-radius: 14px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(148,163,184,.18);
  box-shadow: 0 8px 18px rgba(15,23,42,.14);
  backdrop-filter: blur(8px);
}
.tv-map-toolbar__select-wrap--gmaps .tv-map-toolbar__select {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.tv-map-style-card {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  width: 64px;
  padding: 4px 4px 5px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
  transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease;
}
.tv-map-style-card:hover {
  background: rgba(15,23,42,.04);
}
.tv-map-style-card:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px rgba(37,99,235,.18);
}
.tv-map-style-card.is-active {
  background: rgba(241,245,249,.9);
}
.tv-map-style-card.is-active .tv-map-style-card__preview {
  border-color: #2563eb;
  box-shadow: 0 0 0 2px rgba(37,99,235,.12), 0 8px 18px rgba(15,23,42,.18);
}
.tv-map-style-card__preview {
  position: relative;
  display: block;
  width: 54px;
  height: 34px;
  border-radius: 9px;
  border: 2px solid transparent;
  overflow: hidden;
  box-shadow: 0 5px 12px rgba(15,23,42,.10);
  background-color: #dbeafe;
}
.tv-map-style-card__preview::before,
.tv-map-style-card__preview::after {
  content: "";
  position: absolute;
  inset: auto;
  pointer-events: none;
}
.tv-map-style-card__preview--road {
  background:
    linear-gradient(90deg, rgba(255,255,255,.65) 0 8%, transparent 8% 100%),
    linear-gradient(0deg, rgba(255,255,255,.4) 0 6%, transparent 6% 100%),
    linear-gradient(135deg, #bfe3bf 0%, #d8f0c8 30%, #c7e5ff 30%, #d8ebff 62%, #f7df9d 62%, #f9e8bb 100%);
}
.tv-map-style-card__preview--road::before {
  inset: 8px -4px auto 2px;
  height: 10px;
  transform: rotate(-12deg);
  background: #f8fafc;
  border-radius: 999px;
  box-shadow: 0 18px 0 -1px rgba(248,250,252,.9), 6px 26px 0 -2px rgba(248,250,252,.86);
}
.tv-map-style-card__preview--road::after {
  top: 10px;
  right: 11px;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: #2563eb;
  box-shadow: -26px 18px 0 2px rgba(22,163,74,.92);
}
.tv-map-style-card__preview--satellite {
  background:
    radial-gradient(circle at 70% 28%, rgba(255,255,255,.2) 0 10%, transparent 11%),
    linear-gradient(145deg, #1f4d33 0%, #446b34 28%, #8f7b46 48%, #284b63 74%, #182d3e 100%);
}
.tv-map-style-card__preview--satellite::before {
  left: -10px;
  right: -10px;
  top: 18px;
  height: 8px;
  transform: rotate(-18deg);
  background: rgba(255,255,255,.78);
  border-radius: 999px;
  box-shadow: 0 14px 0 -1px rgba(255,255,255,.42);
}
.tv-map-style-card__preview--satellite::after {
  left: 10px;
  top: 8px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(34,197,94,.55);
  box-shadow: 28px 12px 0 3px rgba(21,128,61,.42), 18px 24px 0 2px rgba(14,116,144,.4);
}
.tv-map-style-card__label {
  font-size: 10px;
  line-height: 1.15;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: 0;
}
@media (max-width: 767px) {
  .tv-map-toolbar__select-wrap--gmaps {
    top: 8px;
    right: 8px;
    gap: 4px;
    padding: 4px;
    border-radius: 12px;
  }
  .tv-map-style-card {
    width: 56px;
    gap: 4px;
    padding: 3px;
    border-radius: 9px;
  }
  .tv-map-style-card__preview {
    width: 46px;
    height: 28px;
    border-radius: 8px;
  }
  .tv-map-style-card__label {
    font-size: 9px;
  }
}

/* =========================================
   v14.3.38.11 layout lock + ellipsis clamp
   Giữ bố cục card khi người dùng nhập chuỗi dài không có khoảng trắng
   ========================================= */

.tv-listing-card__image,
.tv-listing-card__topbar,
.tv-listing-card__hero,
.tv-listing-card__hero strong,
.tv-listing-card__hero span,
.tv-listing-card__excerpt,
.tv-toplist-card__title,
.tv-toplist-card__title a,
.tv-toplist-card p,
.tv-badge,
.tv-badge--glass,
.tv-badge--verified {
  min-width: 0;
  max-width: 100%;
}

.tv-listing-card__topbar {
  align-items: flex-start;
}

.tv-listing-card__topbar .tv-badge,
.tv-listing-card__topbar .tv-badge--glass,
.tv-listing-card__topbar .tv-badge--verified {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tv-listing-card__topbar .tv-badge--verified {
  flex: 0 1 auto;
}

.tv-listing-card__hero strong,
.tv-listing-card__hero span,
.tv-listing-card__excerpt,
.tv-toplist-card__title,
.tv-toplist-card__title a,
.tv-toplist-card p {
  overflow: hidden;
}

.tv-listing-card__hero strong {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  text-overflow: ellipsis;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.tv-listing-card__hero span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tv-listing-card__excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  text-overflow: ellipsis;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.tv-toplist-card__title,
.tv-toplist-card__title a {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  text-overflow: ellipsis;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

.tv-toplist-card p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  text-overflow: ellipsis;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}

@supports not (-webkit-line-clamp: 2) {
  .tv-listing-card__hero strong,
  .tv-listing-card__excerpt,
  .tv-toplist-card__title,
  .tv-toplist-card__title a,
  .tv-toplist-card p {
    display: block;
  }
}

@media (max-width: 767px) {
  .tv-listing-card__excerpt {
    -webkit-line-clamp: 3;
    line-clamp: 3;
  }

  .tv-toplist-card p {
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
}


/* =========================================
   v14.3.38.12 equal card height + locked footer
   Đồng bộ chiều cao card, giữ footer luôn nằm đáy
   ========================================= */

.tv-grid,
.tv-grid--premium,
.tv-search-results-grid,
.tv-nearby-grid,
.tv-toplist-grid {
  align-items: stretch;
}

.tv-grid > *,
.tv-grid--premium > *,
.tv-search-results-grid > *,
.tv-nearby-grid > *,
.tv-toplist-grid > * {
  min-width: 0;
}

.tv-card,
.tv-listing-card,
.tv-toplist-card,
.tv-search-result-card,
.tv-nearby-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 100%;
}

.tv-card__image,
.tv-listing-card__image,
.tv-toplist-card__media,
.tv-search-result-card__image,
.tv-nearby-card__media {
  flex: 0 0 auto;
}

.tv-card__body,
.tv-listing-card__content,
.tv-search-result-card__body,
.tv-nearby-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}

.tv-card__footer,
.tv-stats--premium {
  margin-top: auto;
}

.tv-stats--premium.tv-card__footer {
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  column-gap: 10px;
  row-gap: 10px;
}

.tv-stats--premium.tv-card__footer > span {
  flex: 0 0 auto;
  min-width: 0;
}

.tv-stats--premium.tv-card__footer .tv-card-link {
  flex: 0 0 auto;
  margin-left: auto;
  white-space: nowrap;
}

.tv-listing-card__hero strong {
  min-height: calc(1.14em * 2);
}

.tv-listing-card__hero span {
  min-height: 1.5em;
}

.tv-listing-card__excerpt {
  min-height: calc(1.72em * 4);
}

.tv-toplist-card__title,
.tv-toplist-card__title a {
  min-height: calc(1.18em * 2);
}

.tv-toplist-card p {
  min-height: calc(1.78em * 3);
}

.tv-search-result-card__body h2,
.tv-search-result-card__body h3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  min-height: calc(1.32em * 2);
}

.tv-search-result-card__body p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  min-height: calc(1.6em * 3);
}

.tv-search-result-card__meta {
  margin-top: auto;
}

.tv-nearby-card__body h3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  min-height: calc(1.35em * 2);
}

.tv-nearby-card__body p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
  min-height: calc(1.55em * 3);
}

.tv-nearby-card__actions {
  margin-top: auto;
}

@media (max-width: 767px) {
  .tv-stats--premium.tv-card__footer {
    flex-wrap: wrap;
  }

  .tv-listing-card__excerpt {
    min-height: calc(1.6em * 3);
  }

  .tv-toplist-card p {
    min-height: calc(1.6em * 2);
  }

  .tv-search-result-card__body p,
  .tv-nearby-card__body p {
    min-height: calc(1.55em * 2);
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
}


/* =========================================
   v14.3.38.13 search hero long unbroken text clamp
   Chặn nội dung viết liền không dấu cách và cắt bằng ...
   ========================================= */

.tv-search-hero-card,
.tv-search-hero-card * {
  min-width: 0;
}

.tv-search-hero-card--primary h2,
.tv-search-hero-card h3,
.tv-search-hero-card p,
.tv-search-hero-card__label,
.tv-search-hero-card__mini span,
.tv-search-hero-card__meta strong,
.tv-search-hero-card__meta a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.tv-search-hero-card--primary h2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tv-search-hero-card h3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}

.tv-search-hero-card p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}

@supports not (-webkit-line-clamp: 2) {
  .tv-search-hero-card--primary h2,
  .tv-search-hero-card h3,
  .tv-search-hero-card p {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}


/* =========================================
   v14.3.38.14 clickable quick cards on home hero
   Listing nổi bật / Gợi ý nhanh có thể nhấp link toàn card
   ========================================= */

.tv-search-hero-card--clickable {
  position: relative;
}

.tv-search-hero-card__stretched-link {
  position: absolute;
  inset: 0;
  z-index: 5;
  border-radius: inherit;
}

.tv-search-hero-card__stretched-link:focus-visible {
  outline: 2px solid #0f766e;
  outline-offset: 3px;
}

.tv-search-hero-card__label,
.tv-search-hero-card h3,
.tv-search-hero-card p,
.tv-search-hero-card__mini {
  position: relative;
  z-index: 6;
}

.tv-search-hero-card__title-link {
  color: inherit;
  text-decoration: none;
}

.tv-search-hero-card__title-link:hover,
.tv-search-hero-card__title-link:focus-visible {
  text-decoration: none;
}


/* Giữ layout ổn định khi người dùng nhập chữ/dãy ký tự liền không có dấu cách */
.tv-listing-hero-pro__copy h1,
.tv-listing-hero-pro__title-line h1,
.tv-toplist-card__title,
.tv-toplist-card__title a,
.tv-listing-card__hero strong,
.tv-search-result-card__body h2,
.tv-search-result-card__body h2 a,
.tv-ranking-item__title,
.tv-ranking-item__title a,
.tv-card__body h2,
.tv-card__body h2 a,
.tv-card__body h3,
.tv-card__body h3 a {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
}


/* Giới hạn số dòng cho hero title/excerpt và hiển thị dấu … khi quá dài */
.tv-listing-hero-pro__copy > h1,
.tv-listing-hero-pro__title-line h1 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  min-width: 0;
}

.tv-listing-hero-pro__title-line {
  display: flex;
  align-items: flex-start;
  flex-wrap: nowrap;
  min-width: 0;
  width: 100%;
}

.tv-listing-hero-pro__title-line h1 {
  flex: 1 1 auto;
}

.tv-listing-hero-pro__excerpt {
  display: block;
  max-width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

@supports (-webkit-line-clamp: 2) {
  .tv-listing-hero-pro__excerpt {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    line-clamp: 1;
    white-space: normal;
  }
}


/* ==========================================================
   MOBILE REWRITE / RESPONSIVE OVERRIDES
   Tối ưu lại layout mobile cho theme TopViet
   ========================================================== */

html, body {
  overflow-x: hidden;
}

img, svg, iframe, video {
  max-width: 100%;
  height: auto;
}

@media (max-width: 991px) {
  .tv-site-main {
    overflow: hidden;
  }

  .tv-section {
    padding-top: 48px;
    padding-bottom: 48px;
  }

  .tv-section--dense {
    padding-top: 32px;
    padding-bottom: 32px;
  }

  .tv-grid,
  .tv-grid--2,
  .tv-grid--3,
  .tv-grid--listings,
  .tv-grid--premium,
  .tv-home-metrics,
  .tv-home-submit-shell,
  .tv-home-ranking,
  .tv-detail-overview,
  .tv-detail-content,
  .tv-detail-nearby,
  .tv-detail-ranking,
  .tv-account-overview-grid,
  .tv-account-profile-form__grid,
  .tv-account-verify-form__grid,
  .tv-form-grid,
  .tv-filter-form,
  .tv-filter-form__actions {
    grid-template-columns: 1fr !important;
  }

  .tv-card,
  .tv-filter-card,
  .tv-submit-form-card,
  .tv-register-card,
  .tv-account-panel,
  .tv-account-panel-card,
  .tv-account-list-card,
  .tv-account-verify-card,
  .tv-empty-state,
  .tv-search-result-card,
  .tv-ranking-item,
  .tv-listing-card,
  .tv-toplist-card,
  .tv-taxonomy-card {
    border-radius: 24px;
  }

  .tv-site-header__inner {
    min-height: 72px;
    gap: 12px;
  }

  .tv-logo {
    min-width: 0;
    max-width: calc(100% - 88px);
  }

  .tv-logo__text {
    font-size: 15px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .tv-search-hero,
  .tv-search-hero__inner,
  .tv-search-hero__content,
  .tv-search-hero__visual,
  .tv-search-hero__stack,
  .tv-listing-hero-pro,
  .tv-listing-hero-pro__grid,
  .tv-ranking-hero,
  .tv-ranking-layout,
  .tv-taxonomy-hero,
  .tv-taxonomy-hero__grid,
  .tv-location-landing__hero,
  .tv-account-v2,
  .tv-account-v2__main {
    grid-template-columns: 1fr !important;
  }

  .tv-search-hero,
  .tv-listing-hero-pro,
  .tv-ranking-hero,
  .tv-taxonomy-hero,
  .tv-location-landing__hero,
  .tv-account-v2__hero {
    gap: 20px;
  }

  .tv-search-hero__content,
  .tv-search-hero__visual,
  .tv-search-hero-card,
  .tv-listing-hero-pro__copy,
  .tv-listing-hero-pro__media,
  .tv-ranking-hero__content,
  .tv-account-v2__sidebar,
  .tv-account-v2__main,
  .tv-account-v2__hero,
  .tv-account-v2__profile,
  .tv-account-v2__menu,
  .tv-account-list-cards,
  .tv-account-list-cards--full {
    min-width: 0;
  }

  .tv-search-hero__headline,
  .tv-listing-hero-pro__copy > h1,
  .tv-ranking-hero__title,
  .tv-taxonomy-hero__title,
  .tv-account-v2__hero h1 {
    font-size: clamp(28px, 7vw, 42px);
    line-height: 1.08;
  }

  .tv-search-hero__desc,
  .tv-listing-hero-pro__excerpt,
  .tv-ranking-hero__desc,
  .tv-taxonomy-hero__desc,
  .tv-account-v2__hero p {
    font-size: 15px;
    line-height: 1.7;
  }

  .tv-hero-search,
  .tv-filter-card,
  .tv-submit-form-card,
  .tv-register-card,
  .tv-account-panel,
  .tv-account-panel-card {
    padding: 20px;
  }

  .tv-hero-search__grid,
  .tv-hero-search__actions,
  .tv-search-hero__chips,
  .tv-home-metrics,
  .tv-home-submit-shell,
  .tv-breadcrumbs,
  .tv-listing-hero-pro__meta,
  .tv-listing-hero-pro__stats,
  .tv-ranking-period-nav,
  .tv-filter-card__list,
  .tv-account-v2__hero-actions,
  .tv-account-profile-form__actions,
  .tv-account-password__actions,
  .tv-account-verify-card__actions,
  .tv-account-verify-instructions__actions,
  .tv-form-grid,
  .tv-image-preview__actions {
    gap: 12px;
  }

  .tv-hero-search__field,
  .tv-form-field,
  .tv-account-profile-form label,
  .tv-account-password label,
  .tv-account-verify-form label {
    gap: 8px;
  }

  .tv-hero-search__field input,
  .tv-hero-search__field select,
  .tv-form input,
  .tv-form select,
  .tv-form textarea,
  .tv-account-profile-form input,
  .tv-account-profile-form select,
  .tv-account-profile-form textarea,
  .tv-account-password input,
  .tv-account-verify-form input,
  .tv-account-verify-form textarea {
    min-height: 50px;
    font-size: 16px;
  }

  .tv-form textarea,
  .tv-account-profile-form textarea,
  .tv-account-verify-form textarea {
    min-height: 132px;
  }

  .tv-btn,
  .tv-button,
  .tv-link,
  .tv-icon-btn,
  .tv-hero-search__actions .tv-btn,
  .tv-home-submit-shell .tv-btn,
  .tv-account-v2__hero-actions .tv-btn,
  .tv-account-profile-form__actions .tv-btn,
  .tv-account-password__actions .tv-btn,
  .tv-account-verify-card__actions .tv-btn,
  .tv-mobile-drawer__actions .tv-btn {
    width: 100%;
    justify-content: center;
  }

  .tv-btn--ghost,
  .tv-button--ghost {
    width: 100%;
  }

  .tv-listing-card__image,
  .tv-card__image,
  .tv-toplist-card__media,
  .tv-search-result-card__thumb,
  .tv-ranking-item__image {
    aspect-ratio: 16 / 10;
  }

  .tv-footer-main,
  .tv-footer-grid,
  .tv-footer-bottom,
  .tv-footer-list {
    grid-template-columns: 1fr !important;
    gap: 16px;
  }

  .tv-footer-bottom {
    text-align: left;
  }
}

@media (max-width: 767px) {
  .tv-container,
  .tv-container--wide,
  .tv-container--narrow {
    width: min(100%, 100% - 24px);
  }

  .tv-site-main {
    padding-top: 0;
  }

  .tv-section {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .tv-section-heading,
  .tv-section-head,
  .tv-listing-section-head,
  .tv-ranking-section-head,
  .tv-taxonomy-section-head {
    gap: 12px;
  }

  .tv-section-heading h2,
  .tv-section-head h2,
  .tv-listing-section-head h2,
  .tv-ranking-section-head h2,
  .tv-taxonomy-section-head h2,
  .tv-card__body h2,
  .tv-card__body h3 {
    font-size: clamp(22px, 6vw, 28px);
    line-height: 1.18;
  }

  .tv-site-header {
    position: sticky;
    top: 0;
    z-index: 70;
    backdrop-filter: blur(16px);
  }

  .tv-mobile-drawer__panel {
    width: min(100vw, 360px);
    padding-bottom: max(24px, env(safe-area-inset-bottom));
  }

  .tv-mobile-drawer__actions,
  .tv-mobile-nav {
    gap: 10px;
  }

  .tv-mobile-nav a,
  .tv-mobile-drawer__actions a,
  .tv-mobile-drawer__actions button {
    min-height: 48px;
  }

  .tv-search-hero,
  .tv-listing-hero-pro,
  .tv-ranking-hero,
  .tv-taxonomy-hero,
  .tv-location-landing__hero,
  .tv-home-submit-shell,
  .tv-account-v2 {
    gap: 16px;
  }

  .tv-search-hero,
  .tv-ranking-hero,
  .tv-taxonomy-hero,
  .tv-listing-hero-pro,
  .tv-account-v2__hero,
  .tv-card,
  .tv-filter-card,
  .tv-submit-form-card,
  .tv-register-card,
  .tv-account-panel,
  .tv-account-panel-card,
  .tv-account-list-card,
  .tv-account-verify-card,
  .tv-empty-state,
  .tv-search-result-card,
  .tv-ranking-item,
  .tv-listing-card,
  .tv-toplist-card,
  .tv-taxonomy-card {
    padding-left: 16px;
    padding-right: 16px;
  }

  .tv-search-hero__chips,
  .tv-breadcrumbs,
  .tv-ranking-period-nav,
  .tv-filter-card__list,
  .tv-listing-hero-pro__meta,
  .tv-listing-hero-pro__stats,
  .tv-account-v2__menu,
  .tv-account-v2__hero-actions,
  .tv-account-profile-form__actions,
  .tv-account-password__actions,
  .tv-account-verify-card__actions,
  .tv-account-verify-instructions__actions,
  .tv-account-list-cards,
  .tv-account-stats,
  .tv-account-stats--v2 {
    flex-direction: column;
    align-items: stretch;
  }

  .tv-search-hero__chips a,
  .tv-breadcrumbs a,
  .tv-ranking-period-nav .tv-period-pill,
  .tv-filter-card__list a,
  .tv-account-tab,
  .tv-chip,
  .tv-badge,
  .tv-badge--glass,
  .tv-badge--soft {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .tv-listing-card__hero,
  .tv-search-result-card,
  .tv-ranking-item,
  .tv-account-list-card,
  .tv-account-list-preview__head,
  .tv-account-verify-card__head,
  .tv-account-v2__profile,
  .tv-account-profile-form__top,
  .tv-account-profile-form__email-row {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .tv-listing-card__overlay,
  .tv-search-result-card__actions,
  .tv-account-list-card__meta,
  .tv-account-list-card__score,
  .tv-account-verify-card__meta {
    width: 100%;
  }

  .tv-account-avatar,
  .tv-account-avatar--large,
  .tv-account-avatar--editable {
    margin-inline: auto;
  }

  .tv-detail-map,
  .tv-map-canvas,
  .leaflet-container {
    min-height: 280px;
  }

  .tv-search-modal__dialog,
  .tv-auth-modal__dialog,
  .tv-account-email-modal__dialog {
    width: calc(100vw - 20px);
    max-height: calc(100dvh - 20px);
    margin: 10px;
    border-radius: 24px;
  }

  .tv-search-modal__body,
  .tv-auth-modal__body,
  .tv-account-email-modal__body {
    padding: 18px;
  }

  .tv-content-single,
  .tv-entry-content,
  .tv-entry-content--pro {
    font-size: 16px;
    line-height: 1.8;
  }

  table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 480px) {
  .tv-container,
  .tv-container--wide,
  .tv-container--narrow {
    width: min(100%, 100% - 20px);
  }

  .tv-site-header__inner {
    min-height: 66px;
  }

  .tv-logo__mark {
    width: 40px;
    height: 40px;
  }

  .tv-logo__text {
    font-size: 14px;
  }

  .tv-search-hero__headline,
  .tv-listing-hero-pro__copy > h1,
  .tv-ranking-hero__title,
  .tv-taxonomy-hero__title,
  .tv-account-v2__hero h1 {
    font-size: clamp(24px, 7vw, 32px);
  }

  .tv-hero-search,
  .tv-filter-card,
  .tv-submit-form-card,
  .tv-register-card,
  .tv-account-panel,
  .tv-account-panel-card,
  .tv-search-modal__body,
  .tv-auth-modal__body,
  .tv-account-email-modal__body {
    padding: 14px;
  }

  .tv-card,
  .tv-filter-card,
  .tv-submit-form-card,
  .tv-register-card,
  .tv-account-panel,
  .tv-account-panel-card,
  .tv-account-list-card,
  .tv-account-verify-card,
  .tv-empty-state,
  .tv-search-result-card,
  .tv-ranking-item,
  .tv-listing-card,
  .tv-toplist-card,
  .tv-taxonomy-card {
    border-radius: 20px;
  }

  .tv-detail-map,
  .tv-map-canvas,
  .leaflet-container {
    min-height: 240px;
  }
}

/* =========================================================
   SINGLE LISTING DETAIL - MOBILE HOTFIX
   Smart nav sticky 1 hàng ngang + giữ ổn định layout mobile
   ========================================================= */
@media (max-width: 767px) {
  body.single-tv_listing,
  body.single-tv_listing .tv-site-main,
  body.single-tv_listing .tv-content-single,
  body.single-tv_listing .tv-content-single-listing,
  body.single-tv_listing .tv-listing-detail-pro,
  body.single-tv_listing .tv-listing-detail-pro-v14 {
    overflow-x: hidden;
  }

  .tv-listing-detail-pro,
  .tv-listing-detail-pro-v14,
  .tv-listing-hero-pro,
  .tv-listing-detail-pro__content-card,
  .tv-listing-detail-pro__section,
  .tv-detail-overview,
  .tv-detail-content,
  .tv-detail-ranking,
  .tv-detail-map,
  .tv-review-block {
    max-width: 100%;
    min-width: 0;
  }

  .tv-listing-hero-pro,
  .tv-listing-hero-pro__top,
  .tv-listing-hero-pro__intro,
  .tv-listing-hero-pro__intro-inside,
  .tv-listing-detail-pro__content-card {
    box-sizing: border-box;
  }

  .tv-listing-hero-pro__title,
  .tv-listing-hero-pro h1 {
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .tv-listing-hero-pro__desc,
  .tv-listing-hero-pro__address,
  .tv-listing-hero-pro__website,
  .tv-listing-hero-pro__meta,
  .tv-listing-hero-pro__intro p,
  .tv-listing-detail-pro__content-card p,
  .tv-listing-detail-pro__content-card a,
  .tv-listing-detail-pro__content-card span {
    min-width: 0;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .tv-listing-hero-pro__stats,
  .tv-listing-hero-pro__meta,
  .tv-listing-hero-pro__trust,
  .tv-listing-hero-pro__trust-meta,
  .tv-listing-detail-pro__quick-info {
    min-width: 0;
  }

  .tv-listing-hero-pro__actions,
  .tv-listing-detail-pro__actions,
  .tv-listing-detail-pro__cta,
  .tv-listing-hero-pro .tv-actions,
  .tv-listing-detail-pro .tv-actions {
    width: 100%;
  }

  .tv-listing-hero-pro__actions > *,
  .tv-listing-detail-pro__actions > *,
  .tv-listing-detail-pro__cta > *,
  .tv-listing-hero-pro .tv-actions > *,
  .tv-listing-detail-pro .tv-actions > * {
    min-width: 0;
  }

  .tv-badge,
  .tv-chip,
  .tv-pill,
  .tv-stat-pill,
  .tv-listing-hero-pro__badge,
  .tv-listing-detail-pro__badge,
  .tv-listing-detail-pro__meta-item {
    max-width: 100%;
    min-width: 0;
    word-break: break-word;
  }

  .tv-listing-detail-pro__smart-nav,
  .tv-listing-detail-pro__smart-nav--floating,
  .tv-listing-detail-pro__smart-nav.is-sticky,
  .tv-listing-detail-pro__smart-nav--floating.is-sticky,
  [data-smart-nav] {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center;
    gap: 8px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    grid-template-columns: none !important;
    white-space: nowrap;
    box-sizing: border-box;
  }

  .tv-listing-detail-pro__smart-nav::-webkit-scrollbar,
  .tv-listing-detail-pro__smart-nav--floating::-webkit-scrollbar,
  .tv-listing-detail-pro__smart-nav.is-sticky::-webkit-scrollbar,
  .tv-listing-detail-pro__smart-nav--floating.is-sticky::-webkit-scrollbar,
  [data-smart-nav]::-webkit-scrollbar {
    display: none;
  }

  .tv-listing-detail-pro__smart-nav > *,
  .tv-listing-detail-pro__smart-nav--floating > *,
  .tv-listing-detail-pro__smart-nav .tv-smart-nav__item,
  .tv-listing-detail-pro__smart-nav--floating .tv-smart-nav__item,
  .tv-listing-detail-pro__smart-nav .tv-listing-detail-pro__smart-nav-item,
  .tv-listing-detail-pro__smart-nav--floating .tv-listing-detail-pro__smart-nav-item,
  .tv-listing-detail-pro__smart-nav a,
  .tv-listing-detail-pro__smart-nav button,
  .tv-listing-detail-pro__smart-nav--floating a,
  .tv-listing-detail-pro__smart-nav--floating button,
  [data-smart-nav] > *,
  [data-smart-nav] a,
  [data-smart-nav] button {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: max-content;
    max-width: none;
    white-space: nowrap !important;
    box-sizing: border-box;
  }

  .tv-listing-detail-pro__smart-nav {
    position: relative;
    z-index: 15;
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 10px;
    margin: 0;
    background: transparent;
  }

  .tv-listing-detail-pro__smart-nav--floating,
  .tv-listing-detail-pro__smart-nav--floating.is-sticky {
    position: fixed;
    top: var(--tv-smart-nav-top, 0px);
    left: 0;
    right: 0;
    width: 100%;
    z-index: 999;
    padding: 10px 16px;
    margin: 0;
    border-radius: 0 0 18px 18px;
    border: 1px solid #dceaf2;
    border-top: 0;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.10);
  }

  .tv-listing-detail-pro__smart-nav a,
  .tv-listing-detail-pro__smart-nav button,
  .tv-listing-detail-pro__smart-nav--floating a,
  .tv-listing-detail-pro__smart-nav--floating button,
  [data-smart-nav] a,
  [data-smart-nav] button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    font-size: 14px;
    line-height: 1;
  }

  body.tv-smart-nav-mobile-active .tv-site-header,
  body.tv-smart-nav-mobile-active .tv-site-header--premium,
  body.tv-smart-nav-mobile-active .site-header {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
  }

  .tv-detail-overview__grid,
  .tv-detail-content__grid,
  .tv-detail-ranking__grid,
  .tv-listing-detail-pro__overview-grid,
  .tv-listing-detail-pro__content-grid,
  .tv-listing-detail-pro__ranking-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .tv-detail-overview__card,
  .tv-detail-content__card,
  .tv-detail-ranking__item,
  .tv-listing-detail-pro__overview-card,
  .tv-listing-detail-pro__content-card,
  .tv-listing-detail-pro__ranking-item,
  .tv-ranking-timeline,
  .tv-ranking-timeline__item,
  .tv-ranking-list,
  .tv-ranking-list__item,
  .tv-ranking-timeline__item-content,
  .tv-ranking-list__item-content,
  .tv-detail-content,
  .tv-detail-content__body,
  .tv-listing-detail-pro__content,
  .tv-listing-detail-pro__content-body,
  .tv-detail-map,
  .tv-detail-map__inner,
  .tv-detail-map iframe,
  .tv-detail-map .leaflet-container,
  .tv-detail-map .mapboxgl-map,
  .tv-review-block,
  .tv-review-block__inner {
    min-width: 0;
    max-width: 100%;
  }

  .tv-detail-content img,
  .tv-listing-detail-pro__content img,
  .tv-detail-content iframe,
  .tv-listing-detail-pro__content iframe,
  .tv-detail-content table,
  .tv-listing-detail-pro__content table {
    max-width: 100%;
    height: auto;
  }

  .tv-detail-content table,
  .tv-listing-detail-pro__content table {
    display: block;
    overflow-x: auto;
  }
}


.tv-media-showcase {
  display: grid;
  gap: 24px;
  margin-top: 28px;
}
.tv-media-showcase--two-col {
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
  align-items: start;
}
.tv-media-showcase__panel {
  padding: 24px;
  border-radius: 28px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fcfd 100%);
  border: 1px solid #e3eef5;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
}
.tv-media-showcase__panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}
.tv-media-showcase__panel-head h3 {
  margin: 0;
  font-size: 1.125rem;
}
.tv-media-showcase__panel-head span {
  color: #5f6f81;
  font-size: .95rem;
}
.tv-media-gallery {
  display: grid;
  gap: 14px;
}
.tv-media-gallery__featured {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 24px;
  background: #eef5f9;
  aspect-ratio: 16 / 10;
}
.tv-media-gallery__featured img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .3s ease;
}
.tv-media-gallery__featured:hover img {
  transform: scale(1.03);
}
.tv-media-gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.tv-media-gallery__thumb {
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  overflow: hidden;
  border-radius: 18px;
  aspect-ratio: 4 / 3;
  box-shadow: 0 0 0 2px transparent;
  transition: transform .2s ease, box-shadow .2s ease;
}
.tv-media-gallery__thumb:hover {
  transform: translateY(-2px);
}
.tv-media-gallery__thumb.is-active {
  box-shadow: 0 0 0 2px #11b981;
}
.tv-media-gallery__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tv-media-video-slider {
  display: grid;
  gap: 14px;
}
.tv-media-video-slider__stage {
  overflow: hidden;
  border-radius: 24px;
  background: #0f1720;
}
.tv-media-video-slider__stage iframe,
.tv-media-video-slider__stage video,
.tv-media-video-slider__stage .wp-video,
.tv-media-video-slider__stage .wp-video-shortcode {
  width: 100%;
  display: block;
  aspect-ratio: 16 / 9;
  border: 0;
}
.tv-media-showcase__video-tag {
  background: #000;
}
.tv-media-video-slider__nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.tv-media-video-slider__thumb {
  display: grid;
  gap: 10px;
  width: 100%;
  padding: 10px;
  border: 1px solid #dde8ef;
  border-radius: 18px;
  background: #fff;
  cursor: pointer;
  text-align: left;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.tv-media-video-slider__thumb:hover {
  transform: translateY(-1px);
  border-color: #b8d7c4;
}
.tv-media-video-slider__thumb.is-active {
  border-color: #11b981;
  box-shadow: 0 10px 24px rgba(17,185,129,.12);
}
.tv-media-video-slider__thumb-media {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 14px;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, #dff7ec, #eef7ff);
}
.tv-media-video-slider__thumb-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tv-media-video-slider__thumb-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #059669;
  font-size: 24px;
  font-weight: 800;
}
.tv-media-video-slider__thumb-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 999px;
  background: rgba(15, 23, 32, .72);
  color: #fff;
  font-size: 18px;
  box-shadow: 0 10px 20px rgba(15, 23, 32, .22);
}
.tv-media-video-slider__thumb-copy {
  display: grid;
  gap: 2px;
  padding: 0 4px 2px;
}
.tv-media-video-slider__thumb-copy strong {
  font-size: .96rem;
  color: #11263c;
}
.tv-media-video-slider__thumb-copy small {
  color: #66788a;
  font-size: .86rem;
}
@media (max-width: 991px) {
  .tv-media-showcase--two-col {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .tv-media-gallery__thumbs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .tv-media-showcase__panel {
    padding: 18px;
    border-radius: 22px;
  }
  .tv-media-gallery__thumbs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .tv-media-video-slider__nav {
    grid-template-columns: 1fr;
  }
  .tv-media-video-slider__thumb {
    padding: 10px;
  }
}


.tv-media-gallery__featured {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}
.tv-media-gallery__zoom-badge {
  position: absolute;
  right: 16px;
  bottom: 16px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(15, 23, 42, .72);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}
.tv-gallery-lightbox[hidden] {
  display: none !important;
}
.tv-gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
}
.tv-gallery-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 23, .86);
  backdrop-filter: blur(4px);
}
.tv-gallery-lightbox__dialog {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 32px 88px;
}
.tv-gallery-lightbox__figure {
  margin: 0;
  width: min(100%, 1320px);
}
.tv-gallery-lightbox__figure img {
  display: block;
  width: 100%;
  max-height: calc(100vh - 140px);
  object-fit: contain;
  border-radius: 20px;
  background: #0f172a;
  box-shadow: 0 30px 80px rgba(15, 23, 42, .35);
}
.tv-gallery-lightbox__caption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
  color: #fff;
  font-weight: 600;
}
.tv-gallery-lightbox__caption a {
  color: #fff;
  text-decoration: none;
  padding: 10px 14px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
}
.tv-gallery-lightbox__caption a:hover {
  background: rgba(255,255,255,.14);
}
.tv-gallery-lightbox__close,
.tv-gallery-lightbox__nav {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease;
}
.tv-gallery-lightbox__close:hover,
.tv-gallery-lightbox__nav:hover {
  transform: scale(1.04);
  background: rgba(255,255,255,.2);
}
.tv-gallery-lightbox__close {
  top: 24px;
  right: 24px;
}
.tv-gallery-lightbox__nav--prev {
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
}
.tv-gallery-lightbox__nav--next {
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}
.tv-gallery-lightbox__nav--prev:hover,
.tv-gallery-lightbox__nav--next:hover {
  transform: translateY(-50%) scale(1.04);
}
body.tv-lightbox-open {
  overflow: hidden;
}
@media (max-width: 767px) {
  .tv-media-gallery__zoom-badge {
    right: 12px;
    bottom: 12px;
    padding: 7px 10px;
    font-size: 12px;
  }
  .tv-gallery-lightbox__dialog {
    padding: 24px 16px 32px;
  }
  .tv-gallery-lightbox__figure img {
    max-height: calc(100vh - 180px);
    border-radius: 16px;
  }
  .tv-gallery-lightbox__caption {
    flex-direction: column;
    align-items: flex-start;
  }
  .tv-gallery-lightbox__close,
  .tv-gallery-lightbox__nav {
    width: 44px;
    height: 44px;
    font-size: 28px;
  }
  .tv-gallery-lightbox__close {
    top: 12px;
    right: 12px;
  }
  .tv-gallery-lightbox__nav--prev {
    left: 8px;
  }
  .tv-gallery-lightbox__nav--next {
    right: 8px;
  }
}

/* Facebook-like gallery refresh */
.tv-media-gallery--facebook {
  gap: 16px;
}
.tv-media-gallery__thumbs--grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.tv-media-gallery__thumb {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: #eef5f9;
  cursor: pointer;
  overflow: hidden;
  border-radius: 18px;
  aspect-ratio: 1 / 1;
  box-shadow: 0 0 0 1px rgba(148, 163, 184, .18);
  transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.tv-media-gallery__thumb:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .12);
}
.tv-media-gallery__thumb.is-active {
  box-shadow: 0 0 0 2px #11b981, 0 14px 28px rgba(17, 185, 129, .16);
}
.tv-media-gallery__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tv-media-gallery__actions {
  display: flex;
  justify-content: center;
  gap: 10px;
}
.tv-media-gallery__thumb.is-collapsed-hidden { display: none !important; }
.tv-media-gallery__actions[hidden],
.tv-media-gallery__toggle[hidden] { display: none !important; }
.tv-media-gallery__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid #d8e7df;
  background: #f8fffb;
  color: #0f766e;
  font-weight: 700;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.tv-media-gallery__toggle:hover {
  transform: translateY(-1px);
  border-color: #8fd2ba;
  box-shadow: 0 10px 24px rgba(17,185,129,.10);
}
.tv-gallery-lightbox__dialog {
  align-items: center;
}
.tv-gallery-lightbox__figure {
  display: grid;
  gap: 16px;
}
.tv-gallery-lightbox__figure > img,
.tv-gallery-lightbox__figure img[data-tv-lightbox-image] {
  display: block;
  width: 100%;
  max-height: calc(100vh - 240px);
  object-fit: contain;
  border-radius: 20px;
  background: #020617;
  box-shadow: 0 30px 80px rgba(15,23,42,.35);
}
.tv-gallery-lightbox__thumbs {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 2px 2px 6px;
  scrollbar-width: thin;
}
.tv-gallery-lightbox__thumb {
  flex: 0 0 88px;
  width: 88px;
  height: 68px;
  padding: 0;
  border: 0;
  border-radius: 14px;
  overflow: hidden;
  background: rgba(255,255,255,.08);
  opacity: .72;
  cursor: pointer;
  box-shadow: 0 0 0 1px rgba(255,255,255,.12);
  transition: opacity .18s ease, transform .18s ease, box-shadow .18s ease;
}
.tv-gallery-lightbox__thumb:hover {
  opacity: .95;
  transform: translateY(-1px);
}
.tv-gallery-lightbox__thumb.is-active {
  opacity: 1;
  box-shadow: 0 0 0 2px #34d399;
}
.tv-gallery-lightbox__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 767px) {
  .tv-media-gallery__thumbs--grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }
  .tv-media-gallery__thumb {
    border-radius: 14px;
  }
  .tv-gallery-lightbox__dialog {
    padding: 20px 14px 18px;
  }
  .tv-gallery-lightbox__figure > img,
  .tv-gallery-lightbox__figure img[data-tv-lightbox-image] {
    max-height: calc(100vh - 210px);
    border-radius: 16px;
  }
  .tv-gallery-lightbox__thumb {
    flex-basis: 72px;
    width: 72px;
    height: 56px;
    border-radius: 12px;
  }
}


/* v6 inline video cards */
.tv-media-video-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.tv-media-video-card {
  position: relative;
  width: 100%;
  padding: 0;
  border: 1px solid #dde8ef;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.tv-media-video-card:hover {
  transform: translateY(-1px);
  border-color: #b8d7c4;
}
.tv-media-video-card.is-playing {
  border-color: #11b981;
  box-shadow: 0 12px 26px rgba(17,185,129,.14);
}
.tv-media-video-card__preview,
.tv-media-video-card__player {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, #dff7ec, #eef7ff);
}
.tv-media-video-card__preview img,
.tv-media-video-card__player iframe,
.tv-media-video-card__player video,
.tv-media-video-card__player .wp-video,
.tv-media-video-card__player .wp-video-shortcode {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border: 0;
}
.tv-media-video-card__player {
  display: none;
  background: #000;
}
.tv-media-video-card.is-playing .tv-media-video-card__player {
  display: block;
}
.tv-media-video-card.is-playing .tv-media-video-card__preview {
  display: none;
}
.tv-media-video-card__fallback {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #cceedd, #ddebff);
}
@media (max-width: 767px) {
  .tv-media-video-grid {
    grid-template-columns: 1fr;
  }
}


/* Unified media lightbox */
.tv-media-video-card {
  position: relative;
  overflow: hidden;
}
.tv-media-video-card__preview {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
}
.tv-media-video-card__preview img,
.tv-media-video-card__preview video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.tv-media-video-card__play {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  width: 68px;
  height: 68px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.3), inset 0 0 0 1px rgba(255,255,255,.2);
  color: #fff;
  font-size: 0;
  line-height: 0;
  transition: transform .22s ease, background .22s ease, box-shadow .22s ease;
  pointer-events: none;
}
.tv-media-video-card__play::before {
  content: '';
  display: block;
  margin-left: 4px;
  width: 0;
  height: 0;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
  border-left: 18px solid currentColor;
}
.tv-media-video-card:hover .tv-media-video-card__play {
  transform: translate(-50%, -50%) scale(1.08);
  background: rgba(16, 185, 129, 0.82);
  box-shadow: 0 18px 38px rgba(16, 185, 129, 0.35);
}

.tv-media-lightbox[hidden] { display:none; }
.tv-media-lightbox {
  position: fixed;
  inset: 0;
  z-index: 12000;
}
.tv-media-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 8, 23, 0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.tv-media-lightbox__dialog {
  position: relative;
  z-index: 1;
  width: min(1320px, calc(100vw - 32px));
  height: min(92vh, 920px);
  margin: 4vh auto;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr auto auto;
  gap: 16px;
}
.tv-media-lightbox__stage {
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 28px;
  overflow: hidden;
  background: rgba(15, 23, 42, 0.35);
}
.tv-media-lightbox__stage img,
.tv-media-lightbox__stage video,
.tv-media-lightbox__stage iframe {
  width: 100%;
  height: 100%;
  max-height: 100%;
  display: block;
  object-fit: contain;
  background: #000;
}
.tv-media-lightbox__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #fff;
  font-weight: 600;
}
.tv-media-lightbox__meta a {
  color: #fff;
  text-decoration: none;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  padding: 10px 14px;
  border-radius: 999px;
}
.tv-media-lightbox__thumbs {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 4px 2px 6px;
  scroll-behavior: smooth;
}
.tv-media-lightbox__thumb {
  position: relative;
  flex: 0 0 auto;
  width: 88px;
  height: 88px;
  border-radius: 16px;
  overflow: hidden;
  border: 2px solid transparent;
  background: rgba(255,255,255,.08);
  padding: 0;
}
.tv-media-lightbox__thumb img,
.tv-media-lightbox__thumb span {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.tv-media-lightbox__thumb.is-active {
  border-color: #10b981;
  box-shadow: 0 0 0 3px rgba(16,185,129,.18);
}
.tv-media-lightbox__thumb--video::after {
  content: '';
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 40px;
  border-radius: 999px;
  background: rgba(15,23,42,.58);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 8px 20px rgba(0,0,0,.28);
}
.tv-media-lightbox__thumb--video::before {
  content: '';
  position: absolute;
  z-index: 1;
  inset: 50% auto auto 50%;
  transform: translate(-40%, -50%);
  width: 0;
  height: 0;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 12px solid #fff;
}
.tv-media-lightbox__close,
.tv-media-lightbox__nav {
  position: absolute;
  z-index: 3;
  top: 18px;
  width: 52px;
  height: 52px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.tv-media-lightbox__close { right: 18px; }
.tv-media-lightbox__nav { top: 50%; transform: translateY(-50%); }
.tv-media-lightbox__nav--prev { left: 18px; }
.tv-media-lightbox__nav--next { right: 18px; }
body.tv-lightbox-open { overflow:hidden; }
@media (max-width: 767px) {
  .tv-media-video-card__play { width: 54px; height: 54px; font-size: 22px; }
  .tv-media-lightbox__dialog { width: calc(100vw - 16px); height: 94vh; margin: 3vh auto; gap: 12px; }
  .tv-media-lightbox__thumb { width: 72px; height: 72px; border-radius: 14px; }
  .tv-media-lightbox__close, .tv-media-lightbox__nav { width: 44px; height: 44px; }
  .tv-media-lightbox__meta { font-size: 14px; }
  .tv-media-lightbox__meta a { padding: 8px 12px; }
}


html.tv-lightbox-open,
body.tv-lightbox-open {
  overflow: hidden !important;
}
.tv-media-lightbox {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
}
.tv-media-lightbox__dialog {
  position: fixed !important;
  inset: 16px !important;
  width: auto !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  grid-template-rows: minmax(0,1fr) auto auto !important;
  pointer-events: none;
}
.tv-media-lightbox__stage,
.tv-media-lightbox__meta,
.tv-media-lightbox__thumbs,
.tv-media-lightbox__close,
.tv-media-lightbox__nav {
  pointer-events: auto;
}
.tv-media-lightbox__stage {
  min-height: 0 !important;
}
.tv-media-lightbox__stage img,
.tv-media-lightbox__stage video,
.tv-media-lightbox__stage iframe {
  max-width: 100%;
  max-height: 100%;
}
@media (max-width: 767px) {
  .tv-media-lightbox__dialog {
    inset: 12px !important;
    gap: 10px !important;
  }
  .tv-media-lightbox__close,
  .tv-media-lightbox__nav {
    top: auto;
    bottom: calc(100% - 56px);
  }
}


/* v8.3 gallery count + smoother lightbox motion */
.tv-media-lightbox {
  opacity: 0;
  transition: opacity .22s ease;
}
.tv-media-lightbox.is-open {
  opacity: 1;
}
.tv-media-lightbox__backdrop {
  opacity: 0;
  transition: opacity .22s ease;
}
.tv-media-lightbox.is-open .tv-media-lightbox__backdrop {
  opacity: 1;
}
.tv-media-lightbox__dialog {
  opacity: 0;
  transform: translateY(10px) scale(.985);
  transition: opacity .24s ease, transform .24s ease;
}
.tv-media-lightbox.is-open .tv-media-lightbox__dialog {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.tv-media-lightbox__stage > * {
  opacity: 0;
  transform: scale(.985);
  transition: opacity .24s ease, transform .24s ease;
}
.tv-media-lightbox__stage.is-ready > * {
  opacity: 1;
  transform: scale(1);
}
.tv-media-gallery__toggle {
  min-width: 132px;
}


/* TopList AI enhanced cards */
.tv-toplist-single--enhanced .tv-card__body{display:grid;gap:28px}
.tv-toplist-single__hero--enhanced{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.9fr);gap:24px;align-items:start}
.tv-toplist-single__stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tv-toplist-single__stat-card{padding:18px;border:1px solid rgba(15,23,42,.08);border-radius:18px;background:linear-gradient(180deg,rgba(248,250,252,.95),rgba(255,255,255,1));box-shadow:0 10px 30px rgba(15,23,42,.06)}
.tv-toplist-single__stat-card strong{display:block;font-size:1.5rem;line-height:1.1;color:#0f172a}
.tv-toplist-single__stat-card span{display:block;margin-top:6px;color:#475569;font-size:.95rem}
.tv-toplist-entities{display:grid;gap:20px}
.tv-toplist-entities__head{display:flex;justify-content:space-between;gap:18px;align-items:end;flex-wrap:wrap}
.tv-toplist-entities__head p{max-width:720px;color:#475569;margin:0}
.tv-toplist-entities__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.tv-toplist-entity-card{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;padding:18px;border:1px solid rgba(15,23,42,.08);border-radius:22px;background:#fff;box-shadow:0 14px 36px rgba(15,23,42,.08)}
.tv-toplist-entity-card__media{position:relative;display:block;border-radius:18px;overflow:hidden;min-height:180px;background:#e2e8f0}
.tv-toplist-entity-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.tv-toplist-entity-card__rank{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;background:rgba(15,23,42,.84);color:#fff;font-weight:700;font-size:.95rem}
.tv-toplist-entity-card__body{display:grid;gap:12px;align-content:start}
.tv-toplist-entity-card__meta{display:flex;flex-wrap:wrap;gap:8px;color:#0f766e;font-size:.9rem;font-weight:600}
.tv-toplist-entity-card__meta span{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(15,118,110,.09)}
.tv-toplist-entity-card h3{margin:0;font-size:1.35rem;line-height:1.3}
.tv-toplist-entity-card__address{margin:0;color:#334155}
.tv-toplist-entity-card__actions{display:flex;flex-wrap:wrap;gap:10px}
.tv-toplist-entity-card__actions a{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border:1px solid rgba(15,23,42,.1);border-radius:999px;background:#f8fafc;color:#0f172a;text-decoration:none;font-weight:600;transition:all .2s ease}
.tv-toplist-entity-card__actions a:hover{transform:translateY(-1px);background:#0f172a;color:#fff;border-color:#0f172a}
.tv-entry-content--toplist-pro{display:grid;gap:18px;padding:24px;border:1px solid rgba(15,23,42,.08);border-radius:22px;background:linear-gradient(180deg,#fff,rgba(248,250,252,.92))}
.tv-entry-content--toplist-pro h2,.tv-entry-content--toplist-pro h3{margin:0 0 10px}
.tv-entry-content--toplist-pro p,.tv-entry-content--toplist-pro ul,.tv-entry-content--toplist-pro ol{margin:0;color:#334155}
#tv-listing-address,#tv-listing-directions,#tv-listing-website,#tv-listing-facebook,#tv-listing-video,#tv-review-block{scroll-margin-top:110px}
@media (max-width: 991px){.tv-toplist-single__hero--enhanced,.tv-toplist-entity-card{grid-template-columns:1fr}.tv-toplist-entities__grid{grid-template-columns:1fr}.tv-toplist-single__stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 640px){.tv-toplist-single__stats-grid{grid-template-columns:1fr}.tv-toplist-entity-card{padding:14px}.tv-entry-content--toplist-pro{padding:18px}}


/* TopList UI + SEO v2 */
.tv-toplist-single--enhanced .tv-card__body{gap:34px}
.tv-toplist-single__hero--enhanced{grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr);padding:8px 0 0}
.tv-toplist-single__hero-main{display:grid;gap:16px;align-content:start}
.tv-toplist-single__summary{margin:0;color:#475569;font-size:1.02rem;line-height:1.8;max-width:64ch}
.tv-toplist-single__jump-links{display:flex;flex-wrap:wrap;gap:10px}
.tv-toplist-single__jump-links a{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:rgba(15,118,110,.08);border:1px solid rgba(15,118,110,.15);text-decoration:none;color:#0f172a;font-weight:700}
.tv-toplist-single__jump-links a:hover{background:#0f172a;color:#fff;border-color:#0f172a}
.tv-toplist-single__stats-grid{position:sticky;top:96px}
.tv-toplist-single__stat-card{min-height:108px}
.tv-toplist-entities{gap:22px;padding:28px;border:1px solid rgba(15,23,42,.08);border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.94))}
.tv-toplist-entities__head{align-items:start}
.tv-toplist-entities__head h2{margin:8px 0 0;font-size:clamp(1.7rem,2vw,2.2rem)}
.tv-toplist-entities__lead{margin:12px 0 0;max-width:70ch;color:#475569;line-height:1.8}
.tv-toplist-entities__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.tv-toplist-entity-card{grid-template-columns:1fr;gap:0;padding:0;overflow:hidden;border-radius:24px;box-shadow:0 18px 40px rgba(15,23,42,.08)}
.tv-toplist-entity-card__media{min-height:240px;border-radius:0;aspect-ratio:16/10}
.tv-toplist-entity-card__body{padding:18px 18px 20px;gap:14px}
.tv-toplist-entity-card h3{font-size:1.4rem;line-height:1.35}
.tv-toplist-entity-card h3 a{text-decoration:none;color:#0f172a}
.tv-toplist-entity-card h3 a:hover{color:#0f766e}
.tv-toplist-entity-card__address{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.7}
.tv-toplist-entity-card__actions{gap:8px}
.tv-toplist-entity-card__actions a{font-size:.94rem;padding:10px 12px;background:#fff}
.tv-toplist-entity-card__footer{padding-top:4px;border-top:1px solid rgba(148,163,184,.18)}
.tv-toplist-entity-card__detail-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700;color:#0f766e}
.tv-toplist-entity-card__detail-link:hover{color:#0f172a}
.tv-toplist-editorial{display:grid;gap:20px;padding:30px;border:1px solid rgba(15,23,42,.08);border-radius:28px;background:#fff}
.tv-toplist-editorial__head{display:flex;justify-content:space-between;gap:18px;align-items:end;flex-wrap:wrap}
.tv-toplist-editorial__head h2{margin:8px 0 0;font-size:clamp(1.7rem,2vw,2.15rem)}
.tv-toplist-editorial__head p{margin:0;max-width:720px;color:#475569;line-height:1.8}
.tv-entry-content--toplist-editorial{padding:0;border:0;background:transparent}
.tv-entry-content--toplist-editorial > :first-child{margin-top:0}
.tv-entry-content--toplist-editorial h2{font-size:1.5rem;padding-top:8px;border-top:1px solid rgba(148,163,184,.18)}
.tv-entry-content--toplist-editorial h2:first-of-type{border-top:0;padding-top:0}
.tv-entry-content--toplist-editorial h3{font-size:1.18rem}
.tv-entry-content--toplist-editorial p,
.tv-entry-content--toplist-editorial li{font-size:1.02rem;line-height:1.9;color:#334155}
.tv-entry-content--toplist-editorial ul,
.tv-entry-content--toplist-editorial ol{padding-left:1.2rem}
.tv-toplist-faq{padding:30px;border-radius:28px;border:1px solid rgba(15,23,42,.08);background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.95))}
.tv-toplist-faq h2{margin:0 0 18px;font-size:clamp(1.6rem,2vw,2.05rem)}
#tv-toplist-faq-title{scroll-margin-top:110px}
@media (max-width: 1200px){
  .tv-toplist-single__hero--enhanced{grid-template-columns:1fr}
  .tv-toplist-single__stats-grid{position:static}
}
@media (max-width: 991px){
  .tv-toplist-entities,.tv-toplist-editorial,.tv-toplist-faq{padding:22px}
  .tv-toplist-entities__grid{grid-template-columns:1fr}
}
@media (max-width: 640px){
  .tv-toplist-single__jump-links a,.tv-toplist-entity-card__actions a{width:100%}
  .tv-toplist-entity-card__media{min-height:220px}
  .tv-toplist-entity-card__body{padding:16px}
  .tv-toplist-editorial__head,.tv-toplist-entities__head{gap:12px}
}


/* =========================================
   v14.3.38.20 toplist equal-height premium cards
   Cân bằng bố cục: ảnh / meta / title / address / actions / footer
   ========================================= */
.tv-toplist-entities__grid{align-items:stretch}
.tv-toplist-entities__grid>*{height:100%}
.tv-toplist-entity-card--equalized{display:flex;flex-direction:column;height:100%;min-height:100%;overflow:hidden}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__media{aspect-ratio:16/10;min-height:0;flex:0 0 auto}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__body{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;gap:14px}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__meta{min-height:68px;align-content:flex-start}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__meta span{min-height:32px;align-items:center;font-size:.93rem;line-height:1.2}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__title{margin:0;min-height:3.05em;line-height:1.38;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;text-wrap:balance}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__title a{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;color:#0f172a;text-decoration:none}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__title a:hover{color:#0f766e}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__address{margin:0;min-height:4.1em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;line-height:1.7;color:#334155}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__actions{min-height:98px;align-content:flex-start;margin-top:2px}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__actions a{min-height:42px;white-space:nowrap}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__footer{margin-top:auto;padding-top:14px;border-top:1px solid rgba(148,163,184,.18)}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__detail-link{min-height:24px}
@media (max-width: 767px){
  .tv-toplist-entity-card--equalized .tv-toplist-entity-card__meta{min-height:unset}
  .tv-toplist-entity-card--equalized .tv-toplist-entity-card__title{min-height:unset}
  .tv-toplist-entity-card--equalized .tv-toplist-entity-card__address{min-height:unset;-webkit-line-clamp:3;line-clamp:3}
  .tv-toplist-entity-card--equalized .tv-toplist-entity-card__actions{min-height:unset}
}

/* =========================================
   v14.3.38.17 pro TopList UI like Google Maps
   1 card / 1 row, ảnh trái - thông tin phải
   ========================================= */
.tv-toplist-entities__grid{
  grid-template-columns:minmax(0,1fr)!important;
  gap:18px;
  max-width:980px;
  margin:0 auto;
}

.tv-toplist-entity-card,
.tv-toplist-entity-card--equalized{
  display:grid!important;
  grid-template-columns:320px minmax(0,1fr);
  gap:0;
  padding:0;
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(15,23,42,.08);
  background:#fff;
  box-shadow:0 10px 28px rgba(15,23,42,.06);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.tv-toplist-entity-card:hover,
.tv-toplist-entity-card--equalized:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(15,23,42,.1);
  border-color:rgba(15,118,110,.2);
}

.tv-toplist-entity-card__media,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__media{
  position:relative;
  min-height:240px;
  height:100%;
  aspect-ratio:auto;
  border-radius:0;
  background:#dbe4ea;
}

.tv-toplist-entity-card__media img,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.tv-toplist-entity-card__rank{
  top:14px;
  left:14px;
  min-width:48px;
  min-height:48px;
  padding:0 14px;
  border-radius:999px;
  background:rgba(15,23,42,.84);
  box-shadow:0 10px 18px rgba(15,23,42,.18);
}

.tv-toplist-entity-card__body,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__body{
  display:flex;
  flex-direction:column;
  gap:14px;
  min-width:0;
  min-height:100%;
  padding:22px 24px;
}

.tv-toplist-entity-card__meta,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__meta{
  min-height:auto;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-content:flex-start;
}

.tv-toplist-entity-card__meta span,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__meta span{
  min-height:32px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  background:rgba(15,118,110,.08);
  color:#0f766e;
  font-size:.92rem;
  line-height:1.2;
  font-weight:700;
}

.tv-toplist-entity-card__title,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__title{
  min-height:auto;
  margin:0;
  font-size:clamp(1.45rem,1.6vw,1.9rem);
  line-height:1.28;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  text-wrap:balance;
}

.tv-toplist-entity-card__title a,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__title a{
  color:#0f172a;
  text-decoration:none;
}

.tv-toplist-entity-card__title a:hover,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__title a:hover{
  color:#0f766e;
}

.tv-toplist-entity-card__address,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__address{
  min-height:auto;
  margin:0;
  color:#334155;
  line-height:1.75;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.tv-toplist-entity-card__actions,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__actions{
  min-height:auto;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-content:flex-start;
  margin-top:2px;
}

.tv-toplist-entity-card__actions a,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__actions a{
  min-height:42px;
  padding:0 15px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.35);
  background:#fff;
  color:#0f172a;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
  transition:all .18s ease;
}

.tv-toplist-entity-card__actions a:hover,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__actions a:hover{
  background:#0f172a;
  color:#fff;
  border-color:#0f172a;
}

.tv-toplist-entity-card__footer,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__footer{
  margin-top:auto;
  padding-top:16px;
  border-top:1px solid rgba(148,163,184,.18);
}

.tv-toplist-entity-card__detail-link,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__detail-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-weight:800;
  color:#0f766e;
  text-decoration:none;
}

.tv-toplist-entity-card__detail-link:hover,
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__detail-link:hover{
  color:#0f172a;
}

.tv-toplist-entities__head{
  max-width:980px;
  margin:0 auto 18px;
}

@media (max-width: 991px){
  .tv-toplist-entities__grid{
    max-width:760px;
  }
  .tv-toplist-entity-card,
  .tv-toplist-entity-card--equalized{
    grid-template-columns:260px minmax(0,1fr);
  }
  .tv-toplist-entity-card__body,
  .tv-toplist-entity-card--equalized .tv-toplist-entity-card__body{
    padding:20px;
  }
}

@media (max-width: 767px){
  .tv-toplist-entities__grid{
    max-width:none;
    gap:16px;
  }
  .tv-toplist-entity-card,
  .tv-toplist-entity-card--equalized{
    grid-template-columns:1fr;
    border-radius:20px;
  }
  .tv-toplist-entity-card__media,
  .tv-toplist-entity-card--equalized .tv-toplist-entity-card__media{
    min-height:220px;
  }
  .tv-toplist-entity-card__body,
  .tv-toplist-entity-card--equalized .tv-toplist-entity-card__body{
    padding:18px;
  }
  .tv-toplist-entity-card__actions a,
  .tv-toplist-entity-card--equalized .tv-toplist-entity-card__actions a{
    width:auto;
  }
}


/* Single TopList Pro */
.tv-section--single-toplist-pro{padding-top:0}
.tv-content-single--toplist-pro{max-width:min(1440px,calc(100vw - 32px));padding-inline:0}
.tv-toplist-single-pro{display:grid;gap:32px}
.tv-toplist-single-pro__hero{position:relative;overflow:hidden;border-radius:0 0 32px 32px;background:linear-gradient(135deg,#0f172a 0%,#0f766e 45%,#14b8a6 100%);background-size:cover;background-position:center;color:#fff}
.tv-toplist-single-pro__hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,23,42,.76),rgba(15,23,42,.82))}
.tv-toplist-single-pro__hero-inner{position:relative;z-index:1;max-width:min(1440px,calc(100vw - 32px));margin:0 auto;padding:28px 16px 36px}
.tv-toplist-breadcrumb{display:flex;flex-wrap:wrap;gap:8px;font-size:.95rem;color:rgba(255,255,255,.84);margin-bottom:18px}
.tv-toplist-breadcrumb a{color:#fff;text-decoration:none}
.tv-toplist-breadcrumb a:hover{text-decoration:underline}
.tv-toplist-single-pro__hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);gap:24px;align-items:start}
.tv-badge--hero{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.18)}
.tv-toplist-single-pro__hero-main{display:grid;gap:16px;align-content:start}
.tv-toplist-single-pro__hero-main h1{margin:0;font-size:clamp(2rem,4vw,3.6rem);line-height:1.08;max-width:15ch;color:#fff}
.tv-toplist-single-pro__excerpt,.tv-toplist-single-pro__intro{margin:0;max-width:72ch;color:rgba(255,255,255,.92);line-height:1.85}
.tv-toplist-single-pro__excerpt{font-size:1.06rem}
.tv-toplist-single-pro__meta-row{display:flex;flex-wrap:wrap;gap:10px}
.tv-toplist-single-pro__meta-row span{display:inline-flex;align-items:center;padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);font-weight:600}
.tv-toplist-single-pro__actions{display:flex;flex-wrap:wrap;gap:10px}
.tv-toplist-single-pro__actions a{display:inline-flex;align-items:center;justify-content:center;padding:11px 15px;border-radius:999px;text-decoration:none;font-weight:700;background:#fff;color:#0f172a;border:1px solid rgba(255,255,255,.18);transition:all .2s ease}
.tv-toplist-single-pro__actions a:hover{transform:translateY(-2px);background:#0f172a;color:#fff;border-color:#0f172a}
.tv-toplist-single-pro__hero-side{position:sticky;top:88px}
.tv-toplist-single-pro__stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tv-toplist-single-pro__stat-card{padding:20px;border-radius:24px;background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 40px rgba(2,8,23,.22)}
.tv-toplist-single-pro__stat-card strong{display:block;font-size:1.75rem;line-height:1.1;color:#fff}
.tv-toplist-single-pro__stat-card span{display:block;margin-top:6px;color:rgba(255,255,255,.86)}
.tv-toplist-single-pro__body{max-width:min(1440px,calc(100vw - 32px));margin:0 auto;padding:0 16px 40px;display:grid;gap:28px}
.tv-toplist-overview,.tv-toplist-methodology{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:22px;padding:26px;border:1px solid rgba(15,23,42,.08);border-radius:28px;background:linear-gradient(180deg,#fff,rgba(248,250,252,.96));box-shadow:0 18px 40px rgba(15,23,42,.06)}
.tv-toplist-overview__head,.tv-toplist-methodology__head{display:grid;gap:10px;margin-bottom:16px}
.tv-toplist-overview__head h2,.tv-toplist-methodology__head h2{margin:0}
.tv-toplist-overview__head p,.tv-toplist-methodology__head p{margin:0;color:#475569;line-height:1.8}
.tv-toplist-overview__points{margin:0;padding-left:18px;display:grid;gap:12px}
.tv-toplist-overview__points li{color:#0f172a;line-height:1.8}
.tv-toplist-overview__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-self:start}
.tv-toplist-fact{padding:16px;border-radius:20px;background:#f8fafc;border:1px solid rgba(148,163,184,.18);display:grid;gap:8px}
.tv-toplist-fact span{font-size:.86rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#0f766e}
.tv-toplist-fact strong{font-size:1rem;color:#0f172a;line-height:1.5}
.tv-toplist-methodology{grid-template-columns:1fr}
.tv-toplist-methodology__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tv-toplist-methodology__card{padding:20px;border-radius:22px;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 12px 30px rgba(15,23,42,.05)}
.tv-toplist-methodology__card h3{margin:0 0 10px;font-size:1.08rem}
.tv-toplist-methodology__card p{margin:0;color:#475569;line-height:1.8}
.tv-toplist-methodology__steps{margin:0;padding-left:18px;display:grid;gap:10px}
.tv-toplist-methodology__steps li{line-height:1.8;color:#0f172a}
@media (max-width: 991px){
  .tv-toplist-single-pro__hero-grid,
  .tv-toplist-overview,
  .tv-toplist-methodology__grid{grid-template-columns:1fr}
  .tv-toplist-single-pro__hero-side{position:static}
}
@media (max-width: 767px){
  .tv-content-single--toplist-pro,
  .tv-toplist-single-pro__hero-inner,
  .tv-toplist-single-pro__body{max-width:calc(100vw - 24px)}
  .tv-toplist-single-pro__hero{border-radius:0 0 24px 24px}
  .tv-toplist-single-pro__hero-inner{padding:22px 12px 28px}
  .tv-toplist-single-pro__body{padding:0 12px 28px}
  .tv-toplist-single-pro__stats-grid,
  .tv-toplist-overview__facts{grid-template-columns:1fr}
  .tv-toplist-single-pro__actions a{width:100%}
  .tv-toplist-overview,.tv-toplist-methodology{padding:18px;border-radius:22px}
}

.tv-toplist-highlights,
.tv-toplist-toc,
.tv-toplist-related {
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:24px;
  box-shadow:0 18px 48px rgba(15,23,42,.06);
}

.tv-toplist-highlights,
.tv-toplist-related {
  padding:28px;
}

.tv-toplist-highlights__head,
.tv-toplist-related__head {
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-end;
  flex-wrap:wrap;
  margin-bottom:18px;
}

.tv-toplist-highlights__head p,
.tv-toplist-related__head p {
  max-width:760px;
  margin:0;
  color:#475569;
}

.tv-toplist-highlights__grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.tv-toplist-highlight-card,
.tv-toplist-related-card {
  border:1px solid rgba(15,23,42,.08);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(248,250,252,.95),#fff);
  overflow:hidden;
}

.tv-toplist-highlight-card__media {
  position:relative;
  display:block;
  aspect-ratio:16/10;
  background:#e2e8f0;
}

.tv-toplist-highlight-card__media img {
  width:100%;
  height:100%;
  object-fit:cover;
}

.tv-toplist-highlight-card__badge {
  position:absolute;
  top:14px;
  left:14px;
  display:inline-flex;
  padding:8px 12px;
  border-radius:999px;
  background:#0f172a;
  color:#fff;
  font-weight:700;
  font-size:.86rem;
}

.tv-toplist-highlight-card__body,
.tv-toplist-related-card {
  padding:18px;
}

.tv-toplist-highlight-card__body h3,
.tv-toplist-related-card h4 {
  margin:0 0 10px;
  font-size:1.1rem;
  line-height:1.35;
}

.tv-toplist-highlight-card__meta {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:10px;
  color:#0f766e;
  font-weight:600;
}

.tv-toplist-highlight-card__body p,
.tv-toplist-related-card p {
  margin:0 0 12px;
  color:#475569;
}

.tv-toplist-highlight-card__link,
.tv-toplist-related-card a {
  font-weight:700;
  color:#0f766e;
}

.tv-toplist-toc {
  padding:22px;
  margin-bottom:18px;
}

.tv-toplist-toc__head {
  margin-bottom:12px;
}

.tv-toplist-toc__head h2 {
  margin:4px 0 0;
  font-size:1.35rem;
}

.tv-toplist-toc__list {
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}

.tv-toplist-toc__list li a {
  display:block;
  padding:11px 14px;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid rgba(15,23,42,.06);
  font-weight:600;
}

.tv-toplist-toc__list li.level-3 a {
  margin-left:18px;
  font-weight:500;
}

.tv-toplist-related__grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.tv-toplist-related__block {
  display:grid;
  gap:14px;
}

.tv-toplist-related__block h3 {
  margin:0;
  font-size:1.1rem;
}

.tv-toplist-related__items {
  display:grid;
  gap:14px;
}

@media (max-width: 991px) {
  .tv-toplist-highlights__grid,
  .tv-toplist-related__grid {
    grid-template-columns:1fr;
  }
}

@media (max-width: 640px) {
  .tv-toplist-highlights,
  .tv-toplist-related,
  .tv-toplist-toc {
    padding:18px;
    border-radius:18px;
  }

  .tv-toplist-toc__list li.level-3 a {
    margin-left:10px;
  }
}


/* v90 TopList listing cards: equal image + listing description + AI summary */
.tv-toplist-entities__grid{
  align-items:stretch;
}
.tv-toplist-entity-card--equalized{
  display:flex;
  flex-direction:column;
  height:100%;
}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__media{
  aspect-ratio: 4 / 3;
  width:100%;
  min-height:0;
  background:#e2e8f0;
}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.tv-toplist-entity-card--equalized .tv-toplist-entity-card__body{
  display:flex;
  flex-direction:column;
  gap:14px;
  flex:1 1 auto;
}
.tv-toplist-entity-card__desc-wrap{
  min-height:4.8em;
}
.tv-toplist-entity-card__description{
  margin:0;
  color:#334155;
  line-height:1.72;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.tv-toplist-entity-card__ai-summary{
  padding:14px 14px 12px;
  border:1px solid rgba(15,118,110,.12);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(236,253,245,.95), rgba(248,250,252,.92));
}
.tv-toplist-entity-card__ai-summary strong{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
  color:#0f766e;
  font-size:.92rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.tv-toplist-entity-card__ai-summary p{
  margin:0;
  color:#0f172a;
  line-height:1.72;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.tv-toplist-entity-card__address{
  margin-top:auto;
}
.tv-toplist-ai-brief{
  display:grid;
  gap:18px;
  margin-bottom:26px;
  padding:24px;
  border-radius:24px;
  background:linear-gradient(135deg, rgba(15,118,110,.06), rgba(255,255,255,.98));
  border:1px solid rgba(15,118,110,.12);
  box-shadow:0 16px 40px rgba(15,23,42,.06);
}
.tv-toplist-ai-brief__head p{
  margin:10px 0 0;
  color:#475467;
}
.tv-toplist-ai-brief__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.tv-toplist-ai-brief__item{
  padding:18px;
  border-radius:20px;
  background:#fff;
  border:1px solid rgba(148,163,184,.18);
}
.tv-toplist-ai-brief__item h3{
  margin:0 0 10px;
  font-size:1.05rem;
  line-height:1.4;
}
.tv-toplist-ai-brief__item p{
  margin:0;
  color:#334155;
}
@media (max-width: 991px){
  .tv-toplist-ai-brief__grid{grid-template-columns:1fr;}
}
@media (max-width: 640px){
  .tv-toplist-entity-card--equalized .tv-toplist-entity-card__media{aspect-ratio: 4 / 3;}
  .tv-toplist-entity-card__desc-wrap{min-height:0;}
}


/* Modern UX upgrade */
:root {
  --tv-bg: linear-gradient(180deg, #f8fafc 0%, #f7f8fc 46%, #f3f6fb 100%);
  --tv-surface-2: rgba(255,255,255,.72);
  --tv-shadow-lg: 0 24px 60px rgba(15, 23, 42, .12);
  --tv-ring: 0 0 0 4px rgba(20,184,166,.12);
}
body { background: var(--tv-bg); }
.tv-card, .tv-submit-form-card, .tv-register-card, .tv-search-hero__shell, .tv-account-panel-card, .tv-account-v2__profile-card {
  backdrop-filter: blur(10px);
}
.tv-card, .tv-submit-form-card, .tv-register-card {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.tv-card:hover, .tv-submit-form-card:hover, .tv-register-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--tv-shadow-lg);
  border-color: rgba(15,118,110,.16);
}
.tv-btn {
  box-shadow: 0 10px 22px rgba(15,118,110,.18);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.tv-btn:hover { transform: translateY(-1px); box-shadow: 0 16px 28px rgba(15,118,110,.2); }
.tv-btn:focus-visible, .tv-form input:focus-visible, .tv-form textarea:focus-visible, .tv-form select:focus-visible,
.tv-account-toolbar input:focus-visible, .tv-account-toolbar select:focus-visible, .tv-search-modal__chips button:focus-visible {
  outline: none;
  box-shadow: var(--tv-ring);
  border-color: rgba(15,118,110,.35);
}
.tv-search-modal__shortcut {
  margin-top: 10px; color: var(--tv-muted); font-size: .95rem;
}
.tv-search-modal__shortcut kbd {
  display:inline-flex; align-items:center; justify-content:center; min-width: 30px; height: 28px; padding: 0 8px;
  border-radius: 10px; background: #fff; border: 1px solid var(--tv-border); box-shadow: 0 4px 12px rgba(15,23,42,.06); font: inherit; font-weight: 700;
}
.tv-search-modal__quick { display:grid; gap:14px; margin: 0 0 16px; }
.tv-search-modal__suggestions > span, .tv-search-modal__recent > span {
  display:block; margin-bottom:8px; color: var(--tv-muted); font-weight:700; font-size:.92rem;
}
.tv-search-modal__chips { display:flex; flex-wrap:wrap; gap:10px; }
.tv-search-modal__chips button {
  border:1px solid var(--tv-border); background:#fff; color:var(--tv-text); border-radius:999px; padding:10px 14px; cursor:pointer; font:inherit; font-weight:600;
}
.tv-search-modal__chips button:hover { border-color: rgba(15,118,110,.25); color: var(--tv-primary-dark); }
.tv-form-progress {
  margin-bottom: 18px; padding: 16px 18px; border: 1px solid var(--tv-border); border-radius: 16px; background: linear-gradient(180deg, rgba(236,254,255,.85), rgba(255,255,255,.96));
}
.tv-form-progress__head { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:10px; }
.tv-form-progress__head strong { font-size: 1rem; }
.tv-form-progress__head span { color: var(--tv-primary-dark); font-weight:700; }
.tv-form-progress__bar { height: 10px; border-radius: 999px; background: rgba(15,23,42,.08); overflow: hidden; }
.tv-form-progress__bar span { display:block; width:0%; height:100%; border-radius:999px; background: linear-gradient(90deg, var(--tv-primary), #2dd4bf); transition: width .25s ease; }
.tv-form-progress__tips { margin-top: 10px; color: var(--tv-muted); font-size:.95rem; }
[data-tv-enhanced-submit-form] .tv-form-grid > label,
[data-tv-enhanced-submit-form] .tv-form-grid > .tv-form-grid__full,
[data-tv-enhanced-submit-form] .tv-form-grid > div { scroll-margin-top: 110px; }
.tv-account-toolbar {
  display:grid; grid-template-columns: minmax(0, 1fr) 220px; gap:12px; margin-bottom:16px;
}
.tv-account-toolbar input, .tv-account-toolbar select {
  width:100%; min-height:48px; border:1px solid var(--tv-border); border-radius:14px; padding:12px 14px; background:#fff; font:inherit;
}
.tv-account-toolbar__empty {
  margin-top: 14px; padding: 14px 16px; border-radius: 14px; background: #f8fafc; border:1px dashed var(--tv-border); color: var(--tv-muted);
}
.tv-account-list-card { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.tv-account-list-card:hover { transform: translateY(-2px); box-shadow: 0 16px 28px rgba(15,23,42,.08); border-color: rgba(15,118,110,.16); }
.tv-reveal { opacity: 0; transform: translateY(14px); transition: opacity .45s ease, transform .45s ease; }
.tv-reveal.is-visible { opacity: 1; transform: translateY(0); }
.tv-backtop {
  position: fixed; right: 22px; bottom: 22px; width: 48px; height: 48px; border-radius: 999px; border: 1px solid rgba(15,118,110,.2); background: rgba(255,255,255,.94); color: var(--tv-primary-dark); box-shadow: 0 18px 36px rgba(15,23,42,.12); display:grid; place-items:center; cursor:pointer; z-index: 120; opacity:0; visibility:hidden; transform:translateY(8px); transition: all .22s ease;
}
.tv-backtop.is-show { opacity:1; visibility:visible; transform:translateY(0); }
.tv-backtop:hover { transform: translateY(-2px); }
@media (max-width: 991px) {
  .tv-account-toolbar { grid-template-columns: 1fr; }
}


/* v1.4.0 mobile app shell */
:root {
  --tv-mobile-app-nav-height: 82px;
}

@supports (padding: max(0px)) {
  :root {
    --tv-mobile-safe-bottom: env(safe-area-inset-bottom, 0px);
  }
}

@media (max-width: 991px) {
  html {
    background: #eef2f7;
  }

  body {
    background:
      radial-gradient(circle at top, rgba(20,184,166,.08), transparent 24%),
      linear-gradient(180deg, #f8fbff 0%, #f3f6fb 48%, #eef2f7 100%);
    -webkit-tap-highlight-color: transparent;
  }

  body.admin-bar .tv-site-header,
  body.admin-bar .tv-site-header--premium {
    top: 46px;
  }

  .tv-site-header,
  .tv-site-header--premium {
    background: rgba(248, 250, 252, .78);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(226,232,240,.92);
    box-shadow: 0 10px 30px rgba(15,23,42,.05);
  }

  .tv-site-header__inner {
    min-height: 64px;
    gap: 12px;
  }

  .tv-logo__mark {
    width: 38px;
    height: 38px;
    border-radius: 12px;
  }

  .tv-logo__text {
    font-size: .98rem;
  }

  .tv-menu-toggle,
  .tv-search-toggle--mobile {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(226,232,240,.95);
    box-shadow: 0 8px 24px rgba(15,23,42,.06);
  }

  .tv-container {
    width: min(100% - 24px, 1180px);
  }

  main,
  .site-main {
    padding-bottom: calc(var(--tv-mobile-app-nav-height) + var(--tv-mobile-safe-bottom, 0px) + 18px);
  }

  .tv-hero {
    padding-top: 22px;
  }

  .tv-hero__inner,
  .tv-grid--2,
  .tv-grid--3,
  .tv-submit-wrap,
  .tv-account-grid,
  .tv-ranking-layout,
  .tv-results-layout,
  .tv-listing-layout,
  .tv-toplist-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .tv-section {
    padding: 16px 0 26px;
  }

  .tv-section-head {
    margin-bottom: 14px;
  }

  .tv-card,
  .tv-hero__card,
  .tv-submit-form-card,
  .tv-register-card,
  .tv-ranking-table-wrap,
  .tv-filter-card,
  .tv-listing-sidebar-card,
  .tv-account-panel,
  .tv-account-sidebar,
  .tv-search-result-card {
    border-radius: 22px;
    border-color: rgba(226,232,240,.95);
    box-shadow: 0 14px 36px rgba(15,23,42,.06);
  }

  .tv-card__body,
  .tv-hero__card,
  .tv-submit-form-card,
  .tv-register-card {
    padding: 18px;
  }

  .tv-site-footer {
    padding-bottom: calc(var(--tv-mobile-app-nav-height) + var(--tv-mobile-safe-bottom, 0px) + 18px);
  }

  .tv-mobile-app-nav {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 10px;
    z-index: 140;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
    align-items: end;
    padding: 8px 8px calc(8px + var(--tv-mobile-safe-bottom, 0px));
    border: 1px solid rgba(226,232,240,.9);
    border-radius: 26px;
    background: rgba(255,255,255,.9);
    backdrop-filter: blur(20px);
    box-shadow: 0 18px 46px rgba(15,23,42,.16);
  }

  .tv-mobile-app-nav__item {
    appearance: none;
    border: 0;
    background: transparent;
    color: #64748b;
    min-height: 58px;
    border-radius: 18px;
    padding: 8px 4px 6px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font: inherit;
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.1;
  }

  .tv-mobile-app-nav__icon {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .tv-mobile-app-nav__icon svg {
    width: 22px;
    height: 22px;
  }

  .tv-mobile-app-nav__item.is-active {
    color: var(--tv-primary);
    background: rgba(15,118,110,.08);
  }

  .tv-mobile-app-nav__item--accent {
    margin-top: -18px;
    min-height: 70px;
    background: linear-gradient(135deg, var(--tv-primary), #14b8a6);
    color: #fff;
    box-shadow: 0 14px 28px rgba(15,118,110,.28);
  }

  .tv-mobile-app-nav__item--accent.is-active {
    background: linear-gradient(135deg, var(--tv-primary-dark), var(--tv-primary));
    color: #fff;
  }

  .tv-mobile-drawer__panel {
    width: min(92vw, 380px);
    padding: 18px 16px calc(18px + var(--tv-mobile-safe-bottom, 0px));
    border-top-right-radius: 28px;
    border-bottom-right-radius: 28px;
  }

  .tv-search-modal__dialog,
  .tv-auth-modal__dialog,
  .tv-submit-status-modal__dialog {
    width: min(100% - 20px, 680px);
    max-height: calc(100vh - 24px - var(--tv-mobile-safe-bottom, 0px));
    border-radius: 26px;
    margin: 12px auto calc(12px + var(--tv-mobile-safe-bottom, 0px));
  }
}

@media (min-width: 992px) {
  .tv-mobile-app-nav {
    display: none;
  }
}

@media (max-width: 640px) {
  .tv-mobile-app-nav {
    left: 10px;
    right: 10px;
    bottom: 8px;
    gap: 4px;
    padding-inline: 6px;
    border-radius: 24px;
  }

  .tv-mobile-app-nav__item {
    font-size: .68rem;
  }

  .tv-mobile-app-nav__item--accent {
    min-height: 68px;
    margin-top: -16px;
  }

  .tv-site-footer__grid {
    gap: 18px;
  }
}


/* v1.3.8 mobile app-like home/account/detail */
.tv-home-mobile-quick { display: none; }
.tv-account-mobile-sections { display: none; }
.tv-listing-mobile-action-bar { display: none; }

@media (max-width: 767px) {
  body {
    background: linear-gradient(180deg, #f5f7fb 0%, #eef4f7 100%);
  }

  .tv-section {
    padding: 18px 0 28px;
  }

  .tv-section-head {
    margin-bottom: 16px;
  }

  .tv-search-hero {
    padding-top: 12px;
  }

  .tv-search-hero__shell {
    gap: 14px;
  }

  .tv-search-hero__content {
    padding: 22px 18px;
    border-radius: 28px;
  }

  .tv-search-hero__content h1 {
    letter-spacing: -0.03em;
    margin-bottom: 10px;
  }

  .tv-search-hero__chips {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    overflow-x: auto;
    padding-bottom: 2px;
    margin: 14px -2px 0;
    scrollbar-width: none;
  }

  .tv-search-hero__chips::-webkit-scrollbar,
  .tv-account-mobile-sections::-webkit-scrollbar,
  .tv-home-mobile-quick__actions::-webkit-scrollbar,
  .tv-home-mobile-quick__strip::-webkit-scrollbar {
    display: none;
  }

  .tv-search-hero__chips a {
    white-space: nowrap;
  }

  .tv-home-mobile-quick {
    display: block;
    padding-top: 4px;
  }

  .tv-home-mobile-quick__shell {
    display: grid;
    gap: 14px;
    padding: 18px;
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(248,250,252,.98));
    border: 1px solid rgba(226,232,240,.9);
    box-shadow: 0 18px 44px rgba(15, 23, 42, .06);
  }

  .tv-home-mobile-quick__head h2 {
    margin: 6px 0 8px;
    font-size: 1.55rem;
    line-height: 1.08;
  }

  .tv-home-mobile-quick__head p {
    margin: 0;
    color: var(--tv-muted);
  }

  .tv-home-mobile-quick__actions {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(220px, 78%);
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 2px;
    scroll-snap-type: x proximity;
  }

  .tv-home-mobile-action {
    scroll-snap-align: start;
    display: grid;
    gap: 6px;
    min-height: 108px;
    padding: 18px;
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(15,118,110,.09), rgba(37,99,235,.08));
    border: 1px solid rgba(15,118,110,.10);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
  }

  .tv-home-mobile-action strong {
    font-size: 1.05rem;
    line-height: 1.2;
  }

  .tv-home-mobile-action span,
  .tv-home-mobile-quick__strip a {
    color: var(--tv-muted);
    font-weight: 600;
  }

  .tv-home-mobile-quick__strip {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 2px;
  }

  .tv-home-mobile-quick__strip a {
    white-space: nowrap;
    padding: 10px 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--tv-border);
  }

  .tv-grid--premium,
  .tv-home-ranking-panel,
  .tv-home-metrics--premium {
    gap: 14px;
  }

  .tv-card,
  .tv-metric-card,
  .tv-ranking-item,
  .tv-account-panel-card,
  .tv-stat-card,
  .tv-account-overview-tile,
  .tv-account-list-card {
    border-radius: 24px;
  }

  .tv-card__body {
    padding: 16px;
  }

  .tv-listing-card-premium,
  .tv-card {
    overflow: hidden;
  }

  .tv-account-page {
    padding-top: 12px;
  }

  .tv-account-v2__sidebar {
    display: none;
  }

  .tv-account-v2__hero {
    position: relative;
    padding: 4px 0 0;
    gap: 12px;
  }

  .tv-account-v2__hero h1 {
    font-size: clamp(1.8rem, 8vw, 2.4rem);
    letter-spacing: -0.03em;
  }

  .tv-account-v2__hero-actions {
    width: 100%;
  }

  .tv-account-v2__hero-actions .tv-btn {
    width: 100%;
  }

  .tv-account-mobile-sections {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    gap: 10px;
    overflow-x: auto;
    padding: 2px 0 2px;
    position: sticky;
    top: calc(var(--tv-admin-bar-offset, 0px) + 68px);
    z-index: 11;
  }

  .tv-account-mobile-sections__pill {
    white-space: nowrap;
    padding: 11px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(226,232,240,.95);
    font-weight: 700;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
  }

  .tv-account-mobile-sections__pill:hover,
  .tv-account-mobile-sections__pill.is-active {
    color: #fff;
    background: linear-gradient(135deg, var(--tv-primary), #0ea5a4);
    border-color: transparent;
  }

  .tv-account-stats--v2 {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(170px, 74%);
    overflow-x: auto;
    gap: 12px;
    padding-bottom: 2px;
    scroll-snap-type: x proximity;
  }

  .tv-stat-card {
    scroll-snap-align: start;
  }

  .tv-account-panel {
    padding-bottom: 8px;
  }

  .tv-account-profile-form__top {
    grid-template-columns: 1fr;
  }

  .tv-listing-detail-pro--v14b {
    gap: 16px;
  }

  .tv-listing-hero-pro--v14b {
    border-radius: 28px;
    overflow: hidden;
    box-shadow: 0 20px 42px rgba(15, 23, 42, .10);
  }

  .tv-listing-hero-pro__media {
    min-height: 300px;
  }

  .tv-listing-hero-pro__intro-mobile {
    margin-top: -22px;
    position: relative;
    z-index: 2;
  }

  .tv-listing-hero-pro__intro--mobile,
  .tv-listing-hero-pro__trust-card,
  .tv-listing-detail-pro__long-content,
  .tv-listing-detail-pro__contact-card,
  .tv-media-showcase__panel,
  .tv-listing-detail-pro__highlight-card,
  .tv-listing-detail-pro__stat-box {
    border-radius: 24px;
  }

  .tv-listing-hero-pro__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .tv-listing-hero-pro__actions > * {
    width: 100%;
    justify-content: center;
  }

  .tv-listing-detail-pro__smart-nav,
  .tv-listing-detail-pro__smart-nav--floating {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    overflow-x: auto;
    gap: 10px;
    padding: 2px 0 4px;
    background: transparent;
    box-shadow: none;
  }

  .tv-listing-detail-pro__smart-nav a,
  .tv-listing-detail-pro__smart-nav--floating a {
    white-space: nowrap;
    min-height: 42px;
    padding: 0 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.95);
    border: 1px solid rgba(226,232,240,.95);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
  }

  body.tv-smart-nav-mobile-active .tv-listing-detail-pro__smart-nav.is-sticky,
  .tv-listing-detail-pro__smart-nav--floating.is-sticky {
    top: calc(var(--tv-admin-bar-offset, 0px) + 70px);
  }

  .tv-listing-mobile-action-bar {
    position: sticky;
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
    z-index: 30;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
    padding: 10px;
    border-radius: 24px;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(226,232,240,.95);
    box-shadow: 0 18px 36px rgba(15, 23, 42, .10);
  }

  .tv-listing-mobile-action-bar__item {
    min-width: 0;
    display: grid;
    gap: 3px;
    padding: 12px 10px;
    border-radius: 18px;
    background: linear-gradient(180deg, #fff, #f8fafc);
    text-align: center;
  }

  .tv-listing-mobile-action-bar__item strong {
    font-size: .94rem;
    line-height: 1.15;
  }

  .tv-listing-mobile-action-bar__item span {
    font-size: .78rem;
    line-height: 1.25;
    color: var(--tv-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

/* v1.4.1 mobile search app page + submit wizard */
.tv-search-app-shell {
  position: relative;
}

.tv-search-app-shell__toolbar {
  display: none;
}

.tv-search-app-shell__quick {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.tv-search-app-shell__group {
  display: grid;
  gap: 10px;
}

.tv-search-app-shell__group > span {
  font-size: .9rem;
  font-weight: 800;
  color: var(--tv-muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}

.tv-search-app-shell__chips,
.tv-search-app-shell__active {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.tv-search-app-shell__chips button,
.tv-search-app-shell__active span {
  min-height: 40px;
  border-radius: 999px;
  padding: 10px 14px;
  border: 1px solid rgba(15,118,110,.12);
  background: rgba(255,255,255,.88);
  color: var(--tv-text);
  font: inherit;
  font-weight: 700;
  box-shadow: 0 8px 20px rgba(15,23,42,.05);
}

.tv-search-app-shell__chips--soft button,
.tv-search-app-shell__active span {
  background: rgba(241,245,249,.95);
}

.tv-search-result-card--app .tv-search-result-card__head {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.tv-search-result-card__pin {
  color: var(--tv-muted);
  font-size: .92rem;
  font-weight: 700;
}

.tv-search-result-card__footer {
  margin-top: 14px;
}

.tv-search-results-section {
  padding-top: 10px;
}

.tv-empty-state--app {
  display: grid;
  gap: 14px;
}

.tv-submit-wizard {
  display: grid;
  gap: 18px;
}

.tv-form-progress--wizard {
  margin-bottom: 0;
}

.tv-submit-wizard__steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.tv-submit-wizard__steps button {
  min-height: 62px;
  border-radius: 18px;
  border: 1px solid rgba(15,118,110,.12);
  background: #fff;
  padding: 10px 12px;
  display: grid;
  gap: 6px;
  justify-items: start;
  font: inherit;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(15,23,42,.05);
}

.tv-submit-wizard__steps button span {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(15,118,110,.1);
  color: var(--tv-primary-dark);
  font-weight: 800;
}

.tv-submit-wizard__steps button strong {
  font-size: .95rem;
}

.tv-submit-wizard__steps button.is-active,
.tv-submit-wizard__steps button.is-complete {
  border-color: rgba(15,118,110,.28);
  background: linear-gradient(180deg, rgba(236,254,255,.98), rgba(255,255,255,.98));
}

.tv-submit-wizard__panel {
  display: none;
  gap: 16px;
}

.tv-submit-wizard__panel.is-active {
  display: grid;
}

.tv-submit-wizard__intro {
  display: grid;
  gap: 8px;
  padding: 16px 18px;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(236,254,255,.85), rgba(255,255,255,.96));
  border: 1px solid rgba(15,118,110,.12);
}

.tv-submit-wizard__intro strong {
  font-size: 1rem;
  color: #0f172a;
}

.tv-submit-wizard__intro p {
  margin: 0;
  color: var(--tv-muted);
}

.tv-submit-review-card {
  display: grid;
  gap: 14px;
  padding: 18px;
  border-radius: 22px;
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
  border: 1px solid #dbe7f3;
  box-shadow: 0 12px 28px rgba(15,23,42,.06);
}

.tv-submit-review-card__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.tv-submit-review-card__grid div {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.tv-submit-review-card__grid span {
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--tv-muted);
}

.tv-submit-review-card__grid strong {
  min-width: 0;
  font-size: 1rem;
  line-height: 1.45;
  color: #0f172a;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.tv-submit-wizard__submit {
  width: 100%;
}

.tv-submit-wizard__footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.tv-submit-wizard__footer .tv-btn {
  min-width: 140px;
}

@media (max-width: 991px) {
  .tv-search-app-shell__hero {
    display: grid;
    gap: 14px;
  }

  .tv-search-app-shell__toolbar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    margin-top: 16px;
    margin-bottom: 16px;
    align-items: stretch;
  }

  .tv-search-mobile-toggle,
  .tv-search-app-shell__summary {
    border-radius: 20px;
    border: 1px solid rgba(15,118,110,.12);
    background: rgba(255,255,255,.88);
    box-shadow: 0 12px 24px rgba(15,23,42,.06);
  }

  .tv-search-mobile-toggle {
    min-width: 108px;
    padding: 14px 16px;
    display: grid;
    place-items: center;
    gap: 6px;
    font: inherit;
    cursor: pointer;
  }

  .tv-search-app-shell__summary {
    padding: 14px 16px;
    display: grid;
    gap: 6px;
    min-width: 0;
  }

  .tv-search-app-shell__summary strong {
    font-size: 1rem;
    color: #0f172a;
  }

  .tv-search-app-shell__summary span {
    color: var(--tv-muted);
    font-size: .9rem;
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .tv-search-page-form--sheet {
    position: fixed;
    left: 0;
    right: 0;
    bottom: calc(var(--tv-mobile-app-nav-height) + var(--tv-mobile-safe-bottom) + 8px);
    z-index: 135;
    margin: 0 12px;
    padding: 16px;
    border-radius: 24px;
    transform: translateY(calc(100% + 24px));
    opacity: 0;
    visibility: hidden;
    transition: transform .24s ease, opacity .2s ease, visibility .2s ease;
  }

  .tv-search-page-form--sheet.is-open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
  }

  .tv-search-mobile-sheet-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(15,23,42,.42);
    backdrop-filter: blur(8px);
    z-index: 130;
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s ease, visibility .2s ease;
  }

  .tv-search-mobile-sheet-backdrop.is-open {
    opacity: 1;
    visibility: visible;
  }

  body.tv-search-page-sheet-open {
    overflow: hidden;
  }

  .tv-search-page-form__grid {
    grid-template-columns: 1fr;
  }

  .tv-search-page-form__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .tv-search-results-grid--app {
    gap: 14px;
  }

  .tv-search-result-card--app {
    grid-template-columns: 1fr;
    gap: 0;
    border-radius: 24px;
    overflow: hidden;
  }

  .tv-search-result-card--app .tv-search-result-card__image {
    min-height: 220px;
  }

  .tv-search-result-card--app .tv-search-result-card__body {
    padding: 16px;
  }

  .tv-search-result-card--app .tv-search-result-card__meta {
    gap: 8px;
    flex-wrap: wrap;
  }

  .tv-submit-wizard__steps {
    grid-template-columns: repeat(4, minmax(84px, 1fr));
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: none;
  }

  .tv-submit-wizard__steps::-webkit-scrollbar {
    display: none;
  }

  .tv-submit-wizard__steps button {
    min-width: 92px;
    border-radius: 16px;
  }

  .tv-submit-wizard__panel {
    min-height: 0;
  }

  .tv-submit-review-card__grid {
    grid-template-columns: 1fr;
  }

  .tv-submit-wizard__footer {
    position: sticky;
    bottom: calc(var(--tv-mobile-app-nav-height) + var(--tv-mobile-safe-bottom) + 8px);
    z-index: 40;
    padding: 12px;
    border-radius: 20px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(15,118,110,.12);
    box-shadow: 0 18px 36px rgba(15,23,42,.12);
    backdrop-filter: blur(12px);
  }

  .tv-submit-wizard__footer .tv-btn {
    flex: 1 1 0;
    min-width: 0;
  }
}

@media (min-width: 992px) {
  .tv-search-mobile-sheet-backdrop {
    display: none;
  }

  .tv-submit-wizard__footer {
    justify-content: flex-end;
  }
}

/* App-like listing archive, unified feed cards, submit states */
.tv-listing-card--feed {
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.06);
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.08);
}

.tv-listing-card--feed .tv-card__body {
  display: grid;
  gap: 12px;
}

.tv-listing-card__feed-meta,
.tv-listing-card__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tv-listing-card__feed-meta span,
.tv-listing-card__stats span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.05);
  color: #334155;
  font-size: 13px;
  font-weight: 600;
}

.tv-listing-card__feed-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.tv-card-link--pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--tv-primary), #1d4ed8);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}

.tv-listing-archive-toolbar {
  position: sticky;
  top: calc(var(--tv-desktop-sticky-header-offset, 0px) + var(--tv-admin-bar-offset, 0px) + 10px);
  z-index: 8;
  margin: 0 0 20px;
}

.tv-listing-archive-toolbar__head,
.tv-listing-archive-toolbar__controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 18px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(15, 23, 42, 0.08);
  backdrop-filter: blur(14px);
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.08);
}

.tv-listing-archive-toolbar__head > div {
  display: grid;
  gap: 4px;
}

.tv-listing-archive-toolbar__head strong {
  font-size: 16px;
}

.tv-listing-archive-toolbar__head span {
  color: #64748b;
  font-size: 14px;
}

.tv-listing-archive-toolbar__sheet-toggle {
  flex-shrink: 0;
}

.tv-listing-archive-toolbar__group {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(220px, 0.8fr);
  gap: 12px;
  flex: 1 1 auto;
}

.tv-listing-archive-toolbar__group label {
  display: grid;
  gap: 8px;
}

.tv-listing-archive-toolbar__group span {
  font-size: 13px;
  font-weight: 700;
  color: #475569;
}

.tv-listing-archive-toolbar__group input,
.tv-listing-archive-toolbar__group select {
  min-height: 48px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #fff;
}

.tv-listing-archive-toolbar__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.tv-listing-archive-toolbar__chips button {
  border: 0;
  border-radius: 999px;
  padding: 10px 14px;
  background: rgba(37, 99, 235, 0.08);
  color: #1d4ed8;
  font-weight: 700;
}

.tv-listing-archive-toolbar__chips button.is-active {
  background: linear-gradient(135deg, var(--tv-primary), #1d4ed8);
  color: #fff;
}

.tv-listing-archive-toolbar__sheet-close,
.tv-listing-archive-toolbar__backdrop {
  display: none;
}

.tv-submit-status-toast-stack {
  position: fixed;
  right: 18px;
  bottom: calc(var(--tv-mobile-app-nav-height, 82px) + var(--tv-mobile-safe-bottom, 0px) + 16px);
  z-index: 140;
  display: grid;
  gap: 10px;
  pointer-events: none;
}

.tv-submit-status-toast {
  min-width: 260px;
  max-width: 320px;
  padding: 14px 16px;
  border-radius: 20px;
  background: rgba(15, 23, 42, 0.92);
  color: #fff;
  box-shadow: 0 20px 40px rgba(15, 23, 42, 0.28);
  transform: translateY(8px);
  opacity: 0;
  transition: opacity .24s ease, transform .24s ease;
}

.tv-submit-status-toast.is-show {
  opacity: 1;
  transform: translateY(0);
}

.tv-submit-status-toast--success {
  background: rgba(5, 150, 105, 0.94);
}

.tv-submit-status-toast--error {
  background: rgba(220, 38, 38, 0.94);
}

.tv-submit-status-toast strong,
.tv-submit-state-card strong {
  display: block;
  margin-bottom: 4px;
}

.tv-submit-state-card {
  margin-top: 16px;
  padding: 16px 18px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(37, 99, 235, 0.08), rgba(37, 99, 235, 0.02));
  border: 1px solid rgba(37, 99, 235, 0.16);
}

.tv-submit-state-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.tv-submit-state-card__meta span {
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  font-size: 13px;
  font-weight: 700;
  color: #1e3a8a;
}

@media (max-width: 991px) {
  .tv-listing-card--feed {
    border-radius: 26px;
  }

  .tv-listing-card--feed .tv-card__image {
    min-height: 220px;
  }

  .tv-listing-card__feed-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .tv-card-link--pill {
    width: 100%;
  }

  .tv-listing-archive-toolbar {
    position: static;
    margin-bottom: 16px;
  }

  .tv-listing-archive-toolbar__head {
    border-radius: 24px;
    padding: 16px;
  }

  .tv-listing-archive-toolbar__controls {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(var(--tv-mobile-app-nav-height, 82px) + var(--tv-mobile-safe-bottom, 0px) + 8px);
    z-index: 120;
    display: grid;
    gap: 14px;
    align-items: stretch;
    padding: 18px;
    border-radius: 28px;
    transform: translateY(calc(100% + 28px));
    opacity: 0;
    pointer-events: none;
    transition: transform .28s ease, opacity .28s ease;
  }

  .tv-listing-archive-toolbar.is-open .tv-listing-archive-toolbar__controls {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }

  .tv-listing-archive-toolbar__group {
    grid-template-columns: 1fr;
  }

  .tv-listing-archive-toolbar__sheet-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-left: auto;
    border: 0;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.06);
    font-size: 20px;
  }

  .tv-listing-archive-toolbar__backdrop {
    position: fixed;
    inset: 0;
    z-index: 110;
    background: rgba(15, 23, 42, 0.4);
  }

  .tv-listing-archive-toolbar:not(.is-open) .tv-listing-archive-toolbar__backdrop {
    display: none;
  }

  .tv-listing-archive-toolbar.is-open .tv-listing-archive-toolbar__backdrop {
    display: block;
  }

  .tv-submit-status-toast-stack {
    left: 12px;
    right: 12px;
    bottom: calc(var(--tv-mobile-app-nav-height, 82px) + var(--tv-mobile-safe-bottom, 0px) + 12px);
  }

  .tv-submit-status-toast {
    min-width: 0;
    max-width: none;
  }
}

/* v1.4.3.31 app-like polish: skeletons, empty states, transitions */
.tv-skeleton-layer{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;transform:translateY(10px);transition:opacity .22s ease,transform .22s ease}
.tv-skeleton-layer.is-active{opacity:1;transform:translateY(0)}
.is-skeleton-loading>[data-tv-archive-grid],
.is-skeleton-loading>[data-tv-search-results-grid],
.tv-search-results-shell.is-searching .tv-search-results-grid{opacity:.18;filter:blur(2px);transform:translateY(6px);transition:opacity .2s ease,filter .2s ease,transform .2s ease}
.tv-listing-archive-results,
.tv-search-results-section .tv-container{position:relative}
.tv-skeleton-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.tv-skeleton-card{overflow:hidden;border-radius:28px;background:rgba(255,255,255,.88);box-shadow:0 20px 44px rgba(15,23,42,.08);border:1px solid rgba(148,163,184,.14)}
.tv-skeleton-card__media{display:block;width:100%;aspect-ratio:16/11}
.tv-skeleton-card__body{display:grid;gap:14px;padding:18px}
.tv-skeleton{position:relative;overflow:hidden;border-radius:999px;background:linear-gradient(90deg,rgba(226,232,240,.9) 0%,rgba(255,255,255,.95) 48%,rgba(226,232,240,.9) 100%);background-size:200% 100%;animation:tvSkeletonShimmer 1.1s linear infinite}
.tv-skeleton-card__chip{width:96px;height:12px}
.tv-skeleton-card__title{width:74%;height:18px;border-radius:10px}
.tv-skeleton-card__line{width:100%;height:12px;border-radius:10px}
.tv-skeleton-card__line--short{width:68%}
.tv-skeleton-card__footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:6px}
.tv-skeleton-card__meta{width:86px;height:12px}
.tv-skeleton-card__button{width:110px;height:36px;border-radius:999px}
@keyframes tvSkeletonShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

.tv-empty-state--app{display:grid;justify-items:center;gap:12px;padding:28px;border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(248,250,252,.92));border:1px solid rgba(148,163,184,.16);box-shadow:0 18px 40px rgba(15,23,42,.06);text-align:center}
.tv-empty-state--app .tv-empty-state__icon{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,rgba(37,99,235,.12),rgba(14,165,233,.16));font-size:30px;box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
.tv-empty-state--app h3{margin:0;font-size:1.1rem}
.tv-empty-state--app p{margin:0;max-width:520px;color:#64748b}

.tv-listing-archive-results__transition,
.tv-search-results-transition{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,0));transition:opacity .22s ease}
.tv-listing-archive-results__transition.is-active,
.tv-search-results-transition.is-active{opacity:1}

.tv-search-page-form--sheet,
.tv-listing-archive-toolbar__controls,
.tv-submit-wizard__panel,
.tv-submit-wizard__footer,
.tv-search-result-card,
[data-tv-feed-card]{transition:transform .24s ease,opacity .24s ease,box-shadow .24s ease,filter .24s ease}

.tv-submit-wizard{overflow:hidden}
.tv-submit-wizard__panel{opacity:0;transform:translateX(18px) translateY(6px);pointer-events:none}
.tv-submit-wizard__panel.is-active{opacity:1;transform:translateX(0) translateY(0);pointer-events:auto}
.tv-submit-wizard[data-step-direction="backward"] .tv-submit-wizard__panel{transform:translateX(-18px) translateY(6px)}
.tv-submit-wizard__panel.is-entering,.tv-submit-wizard__panel.is-leaving{will-change:transform,opacity}
.tv-submit-wizard__panel.is-entering{animation:tvStepEnter .28s ease both}
.tv-submit-wizard__panel.is-leaving{animation:tvStepLeave .24s ease both}
@keyframes tvStepEnter{from{opacity:0;transform:translateX(18px) translateY(6px)}to{opacity:1;transform:translateX(0) translateY(0)}}
@keyframes tvStepLeave{from{opacity:1;transform:translateX(0) translateY(0)}to{opacity:0;transform:translateX(-16px) translateY(4px)}}

@media (max-width: 991px){
  .tv-skeleton-grid{grid-template-columns:1fr;gap:16px}
  .tv-search-page-form--sheet,
  .tv-listing-archive-toolbar__controls{transform:translateY(18px) scale(.98);opacity:0;transition:transform .24s ease,opacity .24s ease}
  .tv-search-page-form--sheet.is-open,
  .tv-listing-archive-toolbar.is-open .tv-listing-archive-toolbar__controls{transform:translateY(0) scale(1);opacity:1}
  .tv-listing-archive-toolbar__backdrop,
  .tv-search-mobile-sheet-backdrop{opacity:0;transition:opacity .22s ease}
  .tv-listing-archive-toolbar.is-open .tv-listing-archive-toolbar__backdrop,
  .tv-search-mobile-sheet-backdrop.is-open{opacity:1}
  .tv-empty-state--app{padding:24px 18px;border-radius:24px}
}


/* v1.4.3.5 micro-interactions cấp app */
.tv-btn,
.tv-mobile-app-nav__item,
.tv-search-app-shell__chips button,
.tv-listing-archive-toolbar__chips button,
.tv-submit-wizard__steps button,
.tv-search-result-card--app,
.tv-listing-card--feed,
.tv-account-mobile-sections__item,
.tv-mobile-quick-action{position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;transform:translateZ(0);transition:transform .16s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,opacity .18s ease}
.tv-btn.is-pressed,
.tv-mobile-app-nav__item.is-pressed,
.tv-search-app-shell__chips button.is-pressed,
.tv-listing-archive-toolbar__chips button.is-pressed,
.tv-submit-wizard__steps button.is-pressed,
.tv-account-mobile-sections__item.is-pressed,
.tv-mobile-quick-action.is-pressed{transform:scale(.975)}
.tv-search-result-card--app.is-pressed,
.tv-listing-card--feed.is-pressed{transform:scale(.988) translateY(1px)}
.tv-search-result-card--app:hover,
.tv-listing-card--feed:hover{transform:translateY(-2px);box-shadow:0 22px 44px rgba(15,23,42,.12)}
.tv-search-result-card--app.is-tapped,
.tv-listing-card--feed.is-tapped{box-shadow:0 18px 42px rgba(37,99,235,.16);border-color:rgba(37,99,235,.2)}
.tv-tap-ripple{position:absolute;z-index:1;border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.34) 0%,rgba(255,255,255,.18) 38%,rgba(255,255,255,0) 72%);transform:translate(-50%,-50%) scale(.16);animation:tvTapRipple .5s ease-out forwards;pointer-events:none}
@keyframes tvTapRipple{to{transform:translate(-50%,-50%) scale(1);opacity:0}}

.tv-btn.is-busy,
.tv-listing-archive-toolbar__sheet-toggle.is-busy{pointer-events:none}
.tv-btn.is-busy::after,
.tv-listing-archive-toolbar__sheet-toggle.is-busy::after{content:"";display:block;position:absolute;top:50%;right:14px;width:16px;height:16px;margin-top:-8px;border-radius:999px;border:2px solid currentColor;border-right-color:transparent;animation:tvSpin .72s linear infinite;opacity:.8}
@keyframes tvSpin{to{transform:rotate(360deg)}}

.tv-mobile-app-nav{transition:transform .22s ease,opacity .22s ease,box-shadow .22s ease}
.tv-mobile-app-nav.is-condensed{transform:translateY(calc(100% + var(--tv-mobile-safe-bottom,0px) + 14px));opacity:.01;pointer-events:none}

.tv-mobile-quick-action{position:fixed;right:16px;bottom:calc(var(--tv-mobile-app-nav-height,82px) + var(--tv-mobile-safe-bottom,0px) + 18px);z-index:46;display:inline-flex;align-items:center;gap:10px;padding:13px 16px;border:0;border-radius:999px;background:linear-gradient(135deg,#111827,#1f2937);color:#fff;font-weight:800;font-size:13px;letter-spacing:.01em;box-shadow:0 18px 40px rgba(15,23,42,.22);opacity:0;transform:translateY(16px) scale(.96);pointer-events:none}
.tv-mobile-quick-action.is-visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.tv-mobile-quick-action.is-lifted{bottom:calc(var(--tv-mobile-app-nav-height,82px) + var(--tv-mobile-safe-bottom,0px) + 200px)}
.tv-mobile-quick-action__icon{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:999px;background:rgba(255,255,255,.12);font-size:13px}
.tv-mobile-quick-action::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(255,255,255,.28),rgba(255,255,255,.05));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}

.tv-search-app-shell__chips button.is-active,
.tv-listing-archive-toolbar__chips button.is-active,
.tv-submit-wizard__steps button[aria-current="step"]{box-shadow:0 10px 26px rgba(37,99,235,.14)}
.tv-submit-wizard__steps button.is-pulse{animation:tvStepPulse .34s ease}
@keyframes tvStepPulse{0%{transform:scale(1)}50%{transform:scale(1.04)}100%{transform:scale(1)}}

.tv-search-page-form.is-open,
.tv-listing-archive-toolbar.is-open .tv-listing-archive-toolbar__controls{will-change:transform,opacity}
.tv-search-mobile-toggle,
.tv-listing-archive-toolbar__sheet-toggle{transition:transform .18s ease,box-shadow .18s ease}
.tv-search-mobile-toggle:hover,
.tv-listing-archive-toolbar__sheet-toggle:hover{transform:translateY(-1px)}

@media (max-width: 991px){
  .tv-search-result-card--app,
  .tv-listing-card--feed{transition:transform .14s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease}
  .tv-mobile-quick-action{display:inline-flex}
}
@media (min-width: 992px){
  .tv-mobile-quick-action{display:none!important}
}
@media (prefers-reduced-motion: reduce){
  .tv-btn,
  .tv-mobile-app-nav,
  .tv-mobile-app-nav__item,
  .tv-search-app-shell__chips button,
  .tv-listing-archive-toolbar__chips button,
  .tv-submit-wizard__steps button,
  .tv-search-result-card--app,
  .tv-listing-card--feed,
  .tv-mobile-quick-action,
  .tv-tap-ripple{animation:none!important;transition:none!important}
}


/* =========================================================
   TopViet Mobile Design System v7
   ========================================================= */
:root {
  --tv-color-text-strong: #0f172a;
  --tv-color-text: #1f2937;
  --tv-color-text-soft: #475569;
  --tv-color-text-muted: #64748b;
  --tv-color-line: rgba(148, 163, 184, .18);
  --tv-color-line-strong: rgba(100, 116, 139, .24);
  --tv-color-primary-50: #f0fdfa;
  --tv-color-primary-100: #ccfbf1;
  --tv-color-primary-500: #14b8a6;
  --tv-color-primary-600: #0f766e;
  --tv-color-primary-700: #115e59;
  --tv-color-info-50: #eff6ff;
  --tv-color-info-600: #2563eb;
  --tv-color-success-50: #ecfdf3;
  --tv-color-success-600: #16a34a;
  --tv-color-warning-50: #fffbeb;
  --tv-color-warning-600: #d97706;
  --tv-color-danger-50: #fef2f2;
  --tv-color-danger-600: #dc2626;
  --tv-surface-0: #ffffff;
  --tv-surface-1: rgba(255,255,255,.94);
  --tv-surface-2: rgba(248,250,252,.96);
  --tv-surface-3: rgba(241,245,249,.96);
  --tv-radius-2xs: 10px;
  --tv-radius-xs: 12px;
  --tv-radius-sm: 14px;
  --tv-radius-md: 18px;
  --tv-radius-lg: 22px;
  --tv-radius-xl: 26px;
  --tv-radius-2xl: 30px;
  --tv-space-1: 4px;
  --tv-space-2: 8px;
  --tv-space-3: 12px;
  --tv-space-4: 16px;
  --tv-space-5: 20px;
  --tv-space-6: 24px;
  --tv-space-7: 28px;
  --tv-space-8: 32px;
  --tv-space-9: 36px;
  --tv-shadow-xs: 0 6px 18px rgba(15, 23, 42, .05);
  --tv-shadow-sm: 0 10px 28px rgba(15, 23, 42, .07);
  --tv-shadow-md: 0 18px 40px rgba(15, 23, 42, .10);
  --tv-shadow-lg: 0 24px 56px rgba(15, 23, 42, .14);
  --tv-shadow-inset-soft: inset 0 1px 0 rgba(255,255,255,.72);
  --tv-motion-fast: .16s;
  --tv-motion-base: .22s;
  --tv-motion-slow: .3s;
  --tv-ease-standard: cubic-bezier(.2,.8,.2,1);
  --tv-ease-emphasis: cubic-bezier(.22,1,.36,1);
  --tv-tap-scale: .982;
  --tv-focus-ring: 0 0 0 4px rgba(20, 184, 166, .15);
  --tv-mobile-shell-padding: 16px;
  --tv-mobile-stack-gap: 14px;
  --tv-mobile-card-radius: 24px;
  --tv-mobile-sheet-radius: 28px;
  --tv-mobile-control-height: 48px;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  color: var(--tv-color-text);
}

:focus-visible {
  outline: none;
  box-shadow: var(--tv-focus-ring);
  transition: box-shadow var(--tv-motion-fast) var(--tv-ease-standard);
}

.tv-btn,
.tv-chip,
.tv-icon-btn,
.tv-remove-btn,
.tv-mobile-app-nav__item,
.tv-mobile-quick-action,
.tv-submit-wizard__steps button,
button,
input,
select,
textarea {
  transition:
    transform var(--tv-motion-fast) var(--tv-ease-standard),
    box-shadow var(--tv-motion-base) var(--tv-ease-standard),
    background-color var(--tv-motion-base) var(--tv-ease-standard),
    border-color var(--tv-motion-base) var(--tv-ease-standard),
    opacity var(--tv-motion-fast) var(--tv-ease-standard),
    color var(--tv-motion-fast) var(--tv-ease-standard);
}

.tv-card,
.tv-hero__card,
.tv-submit-form-card,
.tv-register-card,
.tv-empty-state,
.tv-empty-state--app,
.tv-results-summary,
.tv-account-stat,
.tv-mobile-search-shell,
.tv-app-bottom-sheet__panel {
  border-radius: var(--tv-mobile-card-radius);
  border-color: var(--tv-color-line);
  box-shadow: var(--tv-shadow-sm);
  background: linear-gradient(180deg, var(--tv-surface-1), var(--tv-surface-2));
}

.tv-card__body,
.tv-submit-form-card,
.tv-register-card,
.tv-results-summary,
.tv-mobile-search-shell,
.tv-empty-state,
.tv-empty-state--app {
  padding: var(--tv-space-5);
}

.tv-btn {
  min-height: var(--tv-mobile-control-height);
  padding: 12px 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--tv-color-primary-600), var(--tv-color-primary-500));
  border-color: transparent;
  box-shadow: 0 10px 24px rgba(15, 118, 110, .18), var(--tv-shadow-inset-soft);
}

.tv-btn:hover,
.tv-btn:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 16px 34px rgba(15, 118, 110, .22), var(--tv-shadow-inset-soft);
}

.tv-btn:active,
.tv-btn.is-pressed,
.tv-chip:active,
.tv-chip.is-pressed,
.tv-card.is-pressed,
.tv-mobile-app-nav__item.is-pressed,
.tv-mobile-quick-action.is-pressed {
  transform: scale(var(--tv-tap-scale));
}

.tv-btn--ghost,
.tv-btn--soft,
.tv-chip,
.tv-section-pill,
.tv-filter-chip {
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.96));
  color: var(--tv-color-text-strong);
  border: 1px solid var(--tv-color-line);
  box-shadow: var(--tv-shadow-xs), var(--tv-shadow-inset-soft);
}

.tv-badge,
.tv-chip,
.tv-section-pill,
.tv-filter-chip,
.tv-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 34px;
  padding: 8px 12px;
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: .01em;
}

.tv-badge--verified,
.is-success .tv-badge,
[data-ui-state="success"] .tv-badge {
  background: var(--tv-color-info-50);
  color: var(--tv-color-info-600);
}

.tv-form input,
.tv-form textarea,
.tv-form select,
.tv-search-input,
.tv-search-shell__input {
  min-height: var(--tv-mobile-control-height);
  border-radius: var(--tv-radius-md);
  border: 1px solid var(--tv-color-line);
  background: rgba(255,255,255,.98);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6);
}

.tv-form input:focus,
.tv-form textarea:focus,
.tv-form select:focus,
.tv-search-input:focus,
.tv-search-shell__input:focus {
  border-color: rgba(20,184,166,.42);
  box-shadow: var(--tv-focus-ring);
}

.tv-form .is-invalid input,
.tv-form .is-invalid textarea,
.tv-form .is-invalid select,
.tv-form input[aria-invalid="true"],
.tv-form textarea[aria-invalid="true"],
.tv-form select[aria-invalid="true"] {
  border-color: rgba(220,38,38,.34);
  background: linear-gradient(180deg, #fff, var(--tv-color-danger-50));
}

.tv-mobile-app-nav,
.tv-mobile-quick-action,
.tv-app-bottom-sheet__panel,
.tv-toast,
.tv-submit-wizard__footer {
  backdrop-filter: blur(18px) saturate(1.15);
}

.tv-mobile-app-nav {
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(248,250,252,.94));
  border: 1px solid rgba(148,163,184,.16);
  box-shadow: var(--tv-shadow-md);
}

.tv-mobile-app-nav__item,
.tv-submit-wizard__steps button,
.tv-section-pill,
.tv-filter-chip,
.tv-chip {
  min-height: 42px;
}

.tv-mobile-app-nav__item.is-active,
.tv-submit-wizard__steps button.is-active,
.tv-submit-wizard__steps button[aria-current="step"],
.tv-section-pill.is-active,
.tv-filter-chip.is-active,
.tv-chip.is-active {
  color: var(--tv-color-primary-700);
  background: linear-gradient(180deg, rgba(240,253,250,.98), rgba(204,251,241,.92));
  border-color: rgba(20,184,166,.28);
  box-shadow: 0 12px 24px rgba(20,184,166,.12), var(--tv-shadow-inset-soft);
}

.tv-mobile-app-nav__item--accent,
.tv-mobile-quick-action,
.tv-cta-accent {
  background: linear-gradient(135deg, #111827, #1f2937);
  box-shadow: var(--tv-shadow-md);
}

.tv-app-bottom-sheet__panel {
  border-radius: var(--tv-mobile-sheet-radius) var(--tv-mobile-sheet-radius) 0 0;
  box-shadow: var(--tv-shadow-lg);
  border: 1px solid rgba(148,163,184,.14);
}

.tv-app-bottom-sheet__handle {
  width: 56px;
  height: 5px;
  border-radius: 999px;
  background: rgba(100,116,139,.26);
  margin: 10px auto 16px;
}

.tv-submit-wizard {
  --tv-step-surface: linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.95));
}

.tv-submit-wizard__steps {
  gap: 10px;
}

.tv-submit-wizard__steps button {
  background: var(--tv-step-surface);
  border: 1px solid var(--tv-color-line);
  border-radius: 20px;
  box-shadow: var(--tv-shadow-xs), var(--tv-shadow-inset-soft);
}

.tv-submit-wizard__steps button.is-complete {
  background: linear-gradient(180deg, rgba(236,253,243,.98), rgba(220,252,231,.94));
  border-color: rgba(34,197,94,.22);
  color: var(--tv-color-success-600);
}

.tv-submit-wizard__footer,
.tv-contextual-sticky-cta {
  border: 1px solid rgba(148,163,184,.14);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(248,250,252,.95));
  box-shadow: var(--tv-shadow-md);
}

.tv-results-summary,
.tv-empty-state,
.tv-empty-state--app,
[data-ui-state="empty"],
[data-ui-state="pending"],
[data-ui-state="success"],
[data-ui-state="error"] {
  position: relative;
  overflow: hidden;
}

.tv-results-summary::before,
.tv-empty-state::before,
.tv-empty-state--app::before,
[data-ui-state="pending"]::before,
[data-ui-state="success"]::before,
[data-ui-state="error"]::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(255,255,255,.7), rgba(255,255,255,0));
  pointer-events: none;
}

[data-ui-state="pending"] {
  background: linear-gradient(180deg, rgba(255,251,235,.98), rgba(255,255,255,.96));
  border: 1px solid rgba(245,158,11,.2);
}

[data-ui-state="success"] {
  background: linear-gradient(180deg, rgba(236,253,243,.98), rgba(255,255,255,.96));
  border: 1px solid rgba(34,197,94,.22);
}

[data-ui-state="error"] {
  background: linear-gradient(180deg, rgba(254,242,242,.98), rgba(255,255,255,.96));
  border: 1px solid rgba(239,68,68,.2);
}

.tv-toast {
  right: 16px;
  bottom: calc(var(--tv-mobile-app-nav-height, 82px) + var(--tv-mobile-safe-bottom, 0px) + 16px);
  padding: 14px 16px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(15,23,42,.96), rgba(30,41,59,.96));
  box-shadow: var(--tv-shadow-md);
}

.tv-toast.is-success {
  background: linear-gradient(135deg, rgba(22,163,74,.96), rgba(21,128,61,.96));
}

.tv-toast.is-error {
  background: linear-gradient(135deg, rgba(220,38,38,.96), rgba(185,28,28,.96));
}

.tv-empty-state,
.tv-empty-state--app {
  display: grid;
  gap: 12px;
  justify-items: center;
  text-align: center;
}

.tv-empty-state__icon,
.tv-status-icon {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(37,99,235,.12), rgba(14,165,233,.16));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
}

.tv-skeleton,
.tv-skeleton-card,
.tv-skeleton-line {
  background: linear-gradient(90deg, rgba(226,232,240,.6) 20%, rgba(255,255,255,.9) 38%, rgba(226,232,240,.6) 54%);
  background-size: 220% 100%;
  animation: tvDsShimmer 1.15s linear infinite;
}

@keyframes tvDsShimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -20% 0; }
}

.tv-feed-card,
.tv-listing-card,
.tv-card[data-card-variant="feed"] {
  border-radius: var(--tv-mobile-card-radius);
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.96));
  border: 1px solid rgba(148,163,184,.16);
  box-shadow: var(--tv-shadow-sm);
  overflow: hidden;
}

.tv-feed-card__footer,
.tv-card__footer,
.tv-listing-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 14px;
  margin-top: 14px;
  border-top: 1px solid rgba(148,163,184,.14);
}

.tv-surface-soft {
  background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(248,250,252,.94));
  border: 1px solid rgba(148,163,184,.14);
  box-shadow: var(--tv-shadow-xs);
  border-radius: var(--tv-radius-lg);
}

.tv-state-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: currentColor;
  opacity: .9;
  box-shadow: 0 0 0 6px color-mix(in srgb, currentColor 16%, transparent);
}

@media (max-width: 991px) {
  .tv-container,
  .tv-container--wide {
    width: min(100% - 20px, 1280px);
  }

  .tv-section {
    padding: 18px 0 28px;
  }

  .tv-card,
  .tv-hero__card,
  .tv-submit-form-card,
  .tv-register-card,
  .tv-results-summary,
  .tv-mobile-search-shell,
  .tv-empty-state,
  .tv-empty-state--app {
    border-radius: var(--tv-mobile-card-radius);
  }

  .tv-card__body,
  .tv-submit-form-card,
  .tv-register-card {
    padding: 18px;
  }

  .tv-form-grid {
    gap: 14px;
  }

  .tv-mobile-app-nav,
  .tv-submit-wizard__footer,
  .tv-mobile-quick-action,
  .tv-app-bottom-sheet__panel,
  .tv-toast {
    box-shadow: var(--tv-shadow-md);
  }
}

@media (max-width: 640px) {
  :root {
    --tv-mobile-card-radius: 22px;
    --tv-mobile-shell-padding: 14px;
    --tv-mobile-stack-gap: 12px;
  }

  .tv-section-head {
    gap: 12px;
    margin-bottom: 16px;
  }

  .tv-section-head h2 {
    line-height: 1.15;
  }

  .tv-btn,
  .tv-chip,
  .tv-filter-chip,
  .tv-section-pill {
    width: auto;
  }

  .tv-toast {
    left: 12px;
    right: 12px;
    width: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
