/* Tábua de Marés Maragogi — Frontend
   Usa div + CSS Grid (não <table>) para evitar override de temas WordPress */

.tm-wrap { font-family: system-ui,-apple-system,sans-serif; max-width:960px; margin:0 auto; }
.tm-title { font-size:1.3rem; font-weight:700; color:#0c4a6e; margin-bottom:.85rem; }

/* Nav */
.tm-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:.85rem; gap:.5rem; }
.tm-nav-btn { background:#e0f2fe; color:#0369a1; padding:.38rem .85rem; border-radius:6px; text-decoration:none; font-size:.87rem; font-weight:600; white-space:nowrap; }
.tm-nav-btn:hover { background:#bae6fd; }
.tm-nav-current { color:#0c4a6e; font-size:.92rem; font-weight:700; text-align:center; }

/* Grid principal — 5 colunas: dia + 4 marés */
.tm-grid-wrap {
  border:1px solid #e2e8f0;
  border-radius:10px;
  overflow:hidden;
  margin-bottom:.85rem;
  background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}

.tm-grid-header,
.tm-grid-row {
  display:grid !important;
  grid-template-columns: 70px repeat(4,1fr) !important;
  border-bottom:1px solid #f1f5f9;
}
.tm-grid-header { background:#f0f9ff !important; border-bottom:2px solid #bae6fd !important; }
.tm-grid-row:last-child { border-bottom:none; }
.tm-grid-row:hover { background:#f8fafc; }
.tm-grid-today { background:#eff6ff !important; }

.tm-grid-cell {
  padding:.45rem .6rem !important;
  display:flex !important;
  align-items:center !important;
  box-sizing:border-box !important;
}
.tm-grid-header .tm-grid-cell {
  font-size:.68rem !important;
  font-weight:700 !important;
  color:#475569 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
}

/* Coluna dia */
.tm-grid-day-col { flex-wrap:wrap; gap:.2rem; align-content:center; }
.tm-day-num { font-weight:700; font-size:.95rem; color:#1e293b; }
.tm-day-dow { font-size:.68rem; color:#94a3b8; margin-left:.25rem; }
.tm-today-badge { background:#3b82f6; color:#fff; font-size:.58rem; font-weight:700; border-radius:3px; padding:.1rem .3rem; margin-left:.2rem; }

/* Pills de maré */
.tm-tide-pill {
  display:inline-flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  padding:.22rem .5rem !important;
  border-radius:6px !important;
  line-height:1.35 !important;
  width:100% !important;
  box-sizing:border-box !important;
}
.tm-tide-low  { background:#fef9c3 !important; }
.tm-tide-high { background:#dbeafe !important; }
.tm-time { font-variant-numeric:tabular-nums; font-weight:600; color:#1e293b; font-size:.82rem; }
.tm-ht   { font-weight:700; font-size:.74rem; }
.tm-tide-low  .tm-ht { color:#854d0e !important; }
.tm-tide-high .tm-ht { color:#1e40af !important; }
.tm-dash { color:#cbd5e1; font-size:.8rem; }

/* Legenda */
.tm-legend { display:flex; gap:1.25rem; flex-wrap:wrap; margin-bottom:.75rem; font-size:.8rem; color:#475569; align-items:center; }
.tm-legend-item { display:flex; align-items:center; gap:.4rem; }

/* Fonte */
.tm-source { font-size:.7rem; color:#94a3b8; text-align:right; }
.tm-empty,.tm-notice { background:#f1f5f9; border-radius:8px; padding:1.5rem; text-align:center; color:#64748b; font-size:.88rem; }

/* Mobile — diminui colunas mas NUNCA esconde */
@media (max-width:600px) {
  .tm-grid-header,
  .tm-grid-row {
    grid-template-columns: 52px repeat(4,1fr) !important;
  }
  .tm-grid-cell { padding:.35rem .3rem !important; }
  .tm-time { font-size:.72rem !important; }
  .tm-ht   { font-size:.66rem !important; }
  .tm-tide-pill { padding:.18rem .3rem !important; }
  .tm-day-num { font-size:.85rem !important; }
  .tm-day-dow { display:none; }
  .tm-nav-current { font-size:.82rem; }
}

/* ──────────────────────────────────────────────────────────────────────────
   v1.4.0 — Diferenciais SEO, Calendário, Modo Escuro, Print
   ────────────────────────────────────────────────────────────────────────── */

/* ── Texto SEO Intro ─────────────────────────────────────────────────────── */
.tm-seo-intro {
  font-family: system-ui, -apple-system, sans-serif;
  max-width: 960px;
  margin: 1rem auto 2rem;
  line-height: 1.65;
  color: #1e293b;
}
.tm-seo-intro h2 {
  font-size: 1.5rem;
  color: #0c4a6e;
  margin-bottom: 0.75rem;
}
.tm-seo-intro h3 {
  font-size: 1.1rem;
  color: #0369a1;
  margin: 1.5rem 0 0.5rem;
}
.tm-seo-intro p {
  margin: 0.75rem 0;
}

/* ── Melhores dias ───────────────────────────────────────────────────────── */
.tm-best-days {
  font-family: system-ui, -apple-system, sans-serif;
  max-width: 960px;
  margin: 1.5rem auto;
  padding: 1.25rem;
  background: linear-gradient(135deg, #fef9c3 0%, #fef3c7 100%);
  border: 1px solid #fde047;
  border-radius: 12px;
}
.tm-best-title {
  margin: 0 0 0.4rem;
  font-size: 1.3rem;
  color: #854d0e;
  font-weight: 700;
}
.tm-best-intro {
  font-size: 0.92rem;
  color: #525252;
  margin: 0 0 1rem;
  line-height: 1.55;
}
.tm-best-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0.85rem;
}
.tm-best-item {
  background: #fff;
  border-radius: 10px;
  padding: 1rem;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  border-left: 4px solid #fbbf24;
}
.tm-best-rating-top   { border-left-color: #dc2626; background: #fef2f2; }
.tm-best-rating-great { border-left-color: #ea580c; }
.tm-best-rating-good  { border-left-color: #fbbf24; }
.tm-best-date {
  flex-shrink: 0;
  text-align: center;
  min-width: 60px;
  border-right: 1px solid #e5e7eb;
  padding-right: 0.85rem;
}
.tm-best-weekday {
  font-size: 0.7rem;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
}
.tm-best-date-big {
  font-size: 1.25rem;
  font-weight: 800;
  color: #1e293b;
  font-variant-numeric: tabular-nums;
}
.tm-best-year {
  font-size: 0.7rem;
  color: #94a3b8;
}
.tm-best-info {
  flex: 1;
  min-width: 0;
}
.tm-best-time {
  font-size: 0.92rem;
  color: #1f2937;
  margin-bottom: 0.25rem;
}
.tm-best-height {
  font-size: 0.88rem;
  color: #525252;
  margin-bottom: 0.2rem;
}
.tm-best-stars {
  margin-left: 0.35rem;
  font-size: 0.78rem;
  letter-spacing: -2px;
}
.tm-best-window {
  font-size: 0.78rem;
  color: #6b7280;
}
.tm-best-cta {
  flex-shrink: 0;
  background: #15803d;
  color: #fff;
  padding: 0.55rem 1rem;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.85rem;
  white-space: nowrap;
}
.tm-best-cta:hover {
  background: #166534;
  color: #fff;
}
.tm-best-footer {
  font-size: 0.78rem;
  color: #78350f;
  text-align: right;
  margin: 1rem 0 0;
}
.tm-best-empty {
  background: #f1f5f9;
  padding: 1rem;
  border-radius: 8px;
  text-align: center;
  color: #64748b;
  font-size: 0.9rem;
}

@media (max-width: 600px) {
  .tm-best-item {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }
  .tm-best-date {
    border-right: none;
    border-bottom: 1px solid #e5e7eb;
    padding-right: 0;
    padding-bottom: 0.5rem;
  }
}

/* ── Compartilhar ────────────────────────────────────────────────────────── */
.tm-share-wrap {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
  max-width: 960px;
  margin: 1rem auto;
  padding: 0.85rem 1rem;
  background: #f0fdf4;
  border: 1px solid #86efac;
  border-radius: 10px;
}
.tm-share-label {
  font-weight: 600;
  color: #14532d;
  font-size: 0.9rem;
}
.tm-share-btn {
  background: #25d366;
  color: #fff !important;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.88rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.tm-share-btn:hover { background: #128c7e; color: #fff !important; }

/* ── Mapa ────────────────────────────────────────────────────────────────── */
.tm-map-wrap {
  max-width: 960px;
  margin: 1.5rem auto;
  font-family: system-ui, -apple-system, sans-serif;
}
.tm-map-title {
  font-size: 1.2rem;
  color: #0c4a6e;
  margin-bottom: 0.4rem;
}
.tm-map-intro {
  font-size: 0.92rem;
  color: #525252;
  line-height: 1.55;
  margin: 0 0 0.85rem;
}
.tm-map-frame {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  margin-bottom: 1rem;
}
.tm-map-frame iframe {
  width: 100%;
  display: block;
  border: 0;
}
.tm-map-spots {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.6rem;
}
.tm-map-spots li {
  background: #f0f9ff;
  padding: 0.6rem 0.85rem;
  border-radius: 8px;
  font-size: 0.85rem;
  color: #334155;
  border-left: 3px solid #0369a1;
}

/* ── FAQ ─────────────────────────────────────────────────────────────────── */
.tm-faq-wrap {
  max-width: 960px;
  margin: 1.5rem auto;
  font-family: system-ui, -apple-system, sans-serif;
}
.tm-faq-title {
  font-size: 1.25rem;
  color: #0c4a6e;
  margin-bottom: 1rem;
}
.tm-faq-list {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.tm-faq-item {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
}
.tm-faq-item[open] { border-color: #bae6fd; }
.tm-faq-q {
  padding: 0.85rem 1rem;
  cursor: pointer;
  font-weight: 600;
  color: #1e293b;
  font-size: 0.95rem;
  list-style: none;
  position: relative;
  user-select: none;
}
.tm-faq-q::after {
  content: "+";
  position: absolute;
  right: 1rem;
  font-size: 1.3rem;
  color: #0369a1;
  transition: transform 0.15s;
}
.tm-faq-item[open] .tm-faq-q::after { content: "−"; }
.tm-faq-q::-webkit-details-marker { display: none; }
.tm-faq-a {
  padding: 0 1rem 1rem;
  color: #475569;
  font-size: 0.92rem;
  line-height: 1.6;
}

/* ── Modo escuro: DESATIVADO na v1.6.10 ──────────────────────────────────
   Os estilos `.tm-darkmode-*` e `html.tm-dark *` foram removidos.
   O shortcode `[tabua_mares_dark_mode]` agora renderiza vazio. Se você tem
   o shortcode em alguma página, pode remover sem riscos. */

/* ── Contraste reforçado para legibilidade no mobile (v1.6.10) ────────── */
.tm-best-intro,
.tm-best-info,
.tm-best-time,
.tm-best-height,
.tm-best-window,
.tm-faq-a,
.tm-map-intro,
.tm-map-spot-text,
.tm-seo-intro p {
  color: #0f172a !important;  /* Slate-900 — quase preto, máximo contraste */
}
.tm-best-weekday {
  color: #334155 !important;  /* Slate-700 — escuro mas com hierarquia */
}
.tm-best-year,
.tm-best-footer {
  color: #475569 !important;  /* Slate-600 — claro mas legível */
}
.tm-seo-intro p,
.tm-seo-intro li {
  color: #1e293b !important;  /* Slate-800 — texto principal */
}

/* ── Print: comportamento de fallback ────────────────────────────────────── */
/* O botão "Imprimir / Salvar PDF" usa um iframe isolado que ignora estas regras
   e renderiza só a tábua. Estas regras só se aplicam quando o usuário faz
   Ctrl+P manualmente. Não conseguimos esconder elementos do tema do WordPress
   de forma confiável aqui — é por isso que existe o botão dedicado. */
@media print {
  .tm-darkmode-toggle,
  .tm-share-wrap,
  .tm-print-actions { display: none !important; }
  .tm-tide-table, .tm-best-days, .tm-seo-intro, .tm-faq-wrap, .tm-map-wrap {
    box-shadow: none !important;
    page-break-inside: avoid;
  }
}

/* ── Animação sutil de onda no widget hoje ───────────────────────────────── */
.tm-hoje-widget {
  position: relative;
  overflow: hidden;
}
.tm-hoje-widget::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 200%;
  height: 4px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255,255,255,0.4) 30%,
    rgba(255,255,255,0.7) 50%,
    rgba(255,255,255,0.4) 70%,
    transparent 100%);
  animation: tm-wave 8s ease-in-out infinite;
  pointer-events: none;
}
@keyframes tm-wave {
  0%, 100% { transform: translateX(0); }
  50%      { transform: translateX(-25%); }
}

/* Respeito a prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .tm-hoje-widget::before { animation: none; }
}

/* ── Mapas individuais por ponto de interesse (v1.6.0) ──────────────────── */
.tm-map-spot-has-iframe {
  background: #fff !important;
  border-left: 3px solid #0369a1 !important;
  padding: 0.85rem 1rem !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.75rem;
}
.tm-map-spot-text {
  font-size: 0.92rem;
  color: #334155;
}
.tm-map-spot-iframe {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
.tm-map-spot-iframe iframe {
  width: 100%;
  display: block;
  border: 0;
}

/* ──────────────────────────────────────────────────────────────────────────
   v1.8.0 — Avaliações (Reviews)
   ────────────────────────────────────────────────────────────────────────── */
.tm-reviews-wrap {
  max-width: 960px;
  margin: 1.5rem auto;
  font-family: system-ui, -apple-system, sans-serif;
}

.tm-reviews-title {
  font-size: 1.3rem;
  color: #0c4a6e;
  margin: 0 0 1rem;
}

/* Resumo agregado (média + estrelas + contagem) */
.tm-reviews-summary {
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
  border: 1px solid #fcd34d;
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.tm-reviews-rating-big {
  font-size: 2.5rem;
  font-weight: 800;
  color: #92400e;
  line-height: 1;
}
.tm-reviews-out-of {
  font-size: 1.2rem;
  font-weight: 600;
  color: #b45309;
}
.tm-reviews-count-text {
  font-size: 0.95rem;
  color: #78350f;
  font-weight: 600;
}

/* Stars (display) — tamanhos aumentados na v1.8.1 para visibilidade no mobile */
.tm-stars {
  display: inline-flex;
  gap: 3px;
  letter-spacing: 0;
  line-height: 1;
  /* Sombra leve pra dar contraste em fundos claros */
  text-shadow: 0 1px 1px rgba(0,0,0,0.05);
}
.tm-star { font-weight: 700; }
.tm-star-full { color: #eab308; }   /* yellow-500 — ouro mais vivo */
.tm-star-half {
  color: #eab308;
  background: linear-gradient(90deg, currentColor 50%, #d1d5db 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.tm-star-empty { color: #d1d5db; }   /* gray-300 — mais visível que #e5e7eb */

/* Tamanho das estrelas no resumo agregado (média grande no topo) */
.tm-reviews-stars-row {
  font-size: 2.2rem;
  line-height: 1;
}
.tm-reviews-stars-row .tm-stars {
  gap: 4px;
}

/* Tamanho das estrelas dentro de cada review individual */
.tm-review-stars {
  font-size: 1.6rem;
  line-height: 1;
}

/* Mobile: aumenta ainda mais */
@media (max-width: 600px) {
  .tm-reviews-stars-row { font-size: 2.4rem; }
  .tm-review-stars { font-size: 1.8rem; }
}

/* Lista de reviews */
.tm-reviews-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2rem;
}
.tm-review-item {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 1.15rem 1.35rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.tm-review-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 0.65rem;
  flex-wrap: wrap;
}
.tm-review-meta {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.tm-review-name {
  font-size: 1rem;
  color: #0f172a;
  font-weight: 700;
}
.tm-review-city {
  font-size: 0.85rem;
  color: #64748b;
}
.tm-review-comment {
  font-size: 0.95rem;
  color: #1e293b;
  line-height: 1.55;
  margin-bottom: 0.65rem;
}
.tm-review-footer {
  font-size: 0.78rem;
  color: #94a3b8;
  font-style: italic;
}

.tm-reviews-empty {
  background: #f1f5f9;
  padding: 1.5rem;
  border-radius: 8px;
  text-align: center;
  color: #64748b;
  margin-bottom: 1.5rem;
}

/* ── Formulário ───────────────────────────────────────────────────────── */
.tm-review-form-wrap {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  padding: 1.5rem;
  margin-top: 1.5rem;
}
.tm-review-form-title {
  font-size: 1.15rem;
  color: #0c4a6e;
  margin: 0 0 0.4rem;
}
.tm-review-form-intro {
  font-size: 0.92rem;
  color: #475569;
  margin: 0 0 1.25rem;
}

.tm-review-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}
.tm-review-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.tm-review-field label {
  font-size: 0.82rem;
  font-weight: 600;
  color: #334155;
}
.tm-required { color: #dc2626; }
.tm-review-field input[type=text],
.tm-review-field input[type=date],
.tm-review-field textarea {
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 0.55rem 0.7rem;
  font-size: 0.95rem;
  background: #fff;
  font-family: inherit;
  color: #0f172a;
  width: 100%;
  box-sizing: border-box;
}
.tm-review-field input:focus,
.tm-review-field textarea:focus {
  border-color: #0369a1;
  outline: 2px solid rgba(3, 105, 161, 0.2);
}
.tm-review-field-comment textarea {
  resize: vertical;
  min-height: 100px;
}
.tm-review-field-hint {
  font-size: 0.78rem;
  color: #64748b;
  margin: 0.2rem 0 0;
}

/* Rating input (estrelas clicáveis usando CSS sibling trick) */
/* ── Componente de input de estrelas (clicáveis) ─────────────────────────
   Container estica na largura disponível e centraliza as estrelas dentro.
   Padding vertical balanceado (não fica grudado em cima/embaixo). */
.tm-rating-input {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  align-items: center;
  font-size: 3rem;
  line-height: 1;
  gap: 8px;
  padding: 18px 16px;
  background: #fffbeb;            /* amber-50 — destaca o componente */
  border: 2px dashed #fcd34d;     /* amber-300 — indica "interativo" */
  border-radius: 12px;
  margin-top: 4px;
  /* Quando alguma estrela está selecionada, troca a borda pra sólida ouro */
  transition: border-color 0.2s, background 0.2s;
}
.tm-rating-input:has(input:checked) {
  border-style: solid;
  border-color: #eab308;
  background: #fef9c3;            /* yellow-100 — confirma a seleção */
}

.tm-rating-input input[type=radio] {
  /* Esconde visualmente mas mantém acessível por teclado */
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.tm-rating-input label {
  cursor: pointer;
  /* Estrela vazia: cinza com OUTLINE escuro pra ser visível */
  color: #fff;
  text-shadow:
    -1.5px -1.5px 0 #6b7280,
     1.5px -1.5px 0 #6b7280,
    -1.5px  1.5px 0 #6b7280,
     1.5px  1.5px 0 #6b7280;       /* outline cinza-700 efeito "stroked" */
  font-weight: 700;
  padding: 0;                      /* sem padding interno — gap do container já espaça */
  transition: color 0.15s, transform 0.15s, text-shadow 0.15s;
  text-align: center;
  user-select: none;
  /* Área de toque generosa no mobile, sem aumentar a célula visual */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3rem;
  min-height: 3rem;
  user-select: none;
}

/* Hover: estrelas amarelas vivas + leve zoom */
.tm-rating-input label:hover,
.tm-rating-input label:hover ~ label {
  color: #fbbf24;                  /* amber-400 — preview */
  text-shadow:
    -1.5px -1.5px 0 #d97706,
     1.5px -1.5px 0 #d97706,
    -1.5px  1.5px 0 #d97706,
     1.5px  1.5px 0 #d97706;
}
.tm-rating-input label:hover {
  transform: scale(1.15);
}

/* Selecionada: dourado forte + brilho */
.tm-rating-input input:checked ~ label {
  color: #eab308;                  /* yellow-500 sólido */
  text-shadow:
    -1.5px -1.5px 0 #92400e,
     1.5px -1.5px 0 #92400e,
    -1.5px  1.5px 0 #92400e,
     1.5px  1.5px 0 #92400e,
     0 0 8px rgba(234, 179, 8, 0.4);
}

/* Focus pelo teclado: aro azul (acessibilidade) */
.tm-rating-input input:focus-visible ~ label[for] {
  outline: 3px solid #3b82f6;
  outline-offset: 2px;
  border-radius: 4px;
}

/* Hint visual abaixo das estrelas */
.tm-rating-input-hint {
  display: block;
  font-size: 0.78rem;
  color: #92400e;
  margin-top: 6px;
  font-style: italic;
}

@media (max-width: 600px) {
  .tm-rating-input {
    font-size: 3.4rem;
    padding: 20px 12px;
    gap: 10px;
  }
  .tm-rating-input label {
    min-width: 3.4rem;
    min-height: 3.4rem;
    padding: 0;
  }
}

/* Honeypot — escondido visualmente mas focusável (bots preenchem qualquer campo) */
.tm-review-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.tm-review-actions {
  margin-top: 0.75rem;
}
.tm-review-submit {
  background: #0369a1;
  color: #fff;
  border: none;
  padding: 0.7rem 1.4rem;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}
.tm-review-submit:hover { background: #075985; }
.tm-review-submit:disabled { background: #94a3b8; cursor: wait; }

.tm-review-message {
  margin-top: 0.85rem;
  padding: 0;
  font-size: 0.9rem;
}
.tm-review-message:not(:empty) {
  padding: 0.7rem 1rem;
  border-radius: 6px;
}
.tm-review-success {
  background: #dcfce7;
  border: 1px solid #86efac;
  color: #14532d;
}
.tm-review-error {
  background: #fee2e2;
  border: 1px solid #fca5a5;
  color: #991b1b;
}

@media (max-width: 600px) {
  .tm-reviews-summary {
    flex-direction: column;
    text-align: center;
    gap: 0.6rem;
  }
}
