/* Portal /Relatorios — layout responsivo (mobile-first) */

body.rel-public-body {
  background: linear-gradient(180deg, #f0f7f5 0%, #fff 45%);
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}

.rel-public-wrap {
  width: 100%;
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: max(0.75rem, env(safe-area-inset-left));
  padding-right: max(0.75rem, env(safe-area-inset-right));
  padding-bottom: env(safe-area-inset-bottom);
}

@media (min-width: 576px) {
  .rel-public-wrap {
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
  }
}

.rel-public-brand {
  margin-bottom: 0.5rem;
}

.rel-public-brand .rel-public-logo {
  width: 72px;
  height: auto;
  max-width: 100%;
}

@media (min-width: 576px) {
  .rel-public-brand .rel-public-logo {
    width: 96px;
  }
}

/* iOS: evita zoom ao focar campos */
.rel-public-wrap .form-control,
.rel-public-wrap .form-select,
.rel-public-wrap textarea.form-control {
  font-size: 1rem;
}

.rel-public-wrap .btn {
  min-height: 2.75rem;
}

@media (min-width: 576px) {
  .rel-public-wrap .btn-sm {
    min-height: 2.125rem;
  }
}

.rel-public-wrap .card {
  overflow: hidden;
}

/* Sim / Não — área de toque */
.rel-sn-radios {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (min-width: 576px) {
  .rel-sn-radios {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
  }
}

.rel-sn-radios .rel-sn-choice {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.35rem 0.5rem;
  margin: 0;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  background: #fff;
  cursor: pointer;
}

.rel-sn-radios .rel-sn-choice:has(input:checked) {
  border-color: var(--bs-primary);
  background: rgba(13, 110, 253, 0.06);
}

.rel-sn-radios .form-check-input {
  width: 1.15em;
  height: 1.15em;
  margin-top: 0;
}

/* Envio fixo no rodapé (mobile) */
.rel-form-sticky-actions {
  margin-top: 1.25rem;
}

@media (max-width: 575.98px) {
  .rel-form-sticky-actions {
    position: sticky;
    bottom: 0;
    z-index: 20;
    margin-left: -0.75rem;
    margin-right: -0.75rem;
    padding: 0.75rem max(0.75rem, env(safe-area-inset-left)) calc(0.75rem + env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-right));
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.85) 0%, #fff 40%);
    backdrop-filter: blur(6px);
    border-top: 1px solid var(--bs-border-color);
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.06);
  }

  .rel-form-sticky-actions .btn-success {
    width: 100%;
    min-height: 3rem;
    font-size: 1.0625rem;
  }
}

/* Calendário — grade (tablet+) */
.rel-cal-table {
  table-layout: fixed;
  min-width: 36rem;
}

.rel-cal-th,
.rel-cal-td {
  width: 14.28%;
  vertical-align: top;
  padding: 0.35rem !important;
  min-height: 5.75rem;
  position: relative;
}

.rel-cal-day-link:hover {
  background: rgba(0, 0, 0, 0.03);
  border-radius: 0.25rem;
}

.rel-cal-client {
  margin-top: 0.15rem;
  margin-bottom: 0.2rem;
  line-height: 1.2;
}

.rel-cal-client-label {
  display: block;
  font-size: 0.55rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: #6c757d;
  font-weight: 600;
}

.rel-cal-client-name {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  color: #212529;
  word-break: break-word;
}

.rel-cal-client-ico {
  font-size: 0.65rem;
  vertical-align: 0.05em;
  margin-left: 0.1rem;
}

.rel-cal-shift {
  font-size: 0.58rem;
  line-height: 1.15;
}

.rel-cal-td--pad {
  background: transparent;
  border-color: transparent !important;
}

.rel-cal-td--sem-plantao {
  background: #f8f9fa;
  color: #adb5bd;
}

.rel-cal-td--hoje {
  outline: 2px solid #0d6efd;
  outline-offset: -2px;
}

.rel-cal-td--pendente,
.rel-cal-td--parcial {
  background: #fff8e6;
}

.rel-cal-td--ok {
  background: #e8f5e9;
}

.rel-cal-td--futuro {
  background: #eef1f3;
}

.rel-cal-day-num {
  font-size: 0.9rem;
  line-height: 1.2;
}

.rel-cal-badge {
  display: block;
  font-size: 0.65rem;
  line-height: 1.25;
  margin-top: 0.2rem;
  font-weight: 600;
}

.rel-cal-badge--pendente,
.rel-cal-badge--parcial {
  color: #856404;
}

.rel-cal-badge--ok {
  color: #1b5e20;
}

.rel-cal-badge--futuro {
  color: #6c757d;
}

.rel-cal-dot {
  display: inline-block;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  margin-right: 0.2rem;
  vertical-align: middle;
}

.rel-cal-dot--ok {
  background: #2e7d32;
}

.rel-cal-dot--pendente {
  background: #ffc107;
}

.rel-cal-dot--futuro {
  background: #adb5bd;
}

/* Calendário — lista (mobile) */
.rel-cal-mobile-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.rel-cal-mobile-card {
  display: block;
  text-decoration: none;
  color: inherit;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.75rem;
  padding: 0.75rem 1rem;
  background: #fff;
}

.rel-cal-mobile-card.rel-cal-mobile-card--pendente,
.rel-cal-mobile-card.rel-cal-mobile-card--parcial {
  background: #fff8e6;
  border-color: #ffecb5;
}

.rel-cal-mobile-card.rel-cal-mobile-card--ok {
  background: #e8f5e9;
  border-color: #c8e6c9;
}

.rel-cal-mobile-card.rel-cal-mobile-card--futuro {
  background: #eef1f3;
  opacity: 0.95;
}

.rel-cal-mobile-card:not(.rel-cal-mobile-card--disabled):active {
  transform: scale(0.99);
}

.rel-cal-mobile-card--disabled {
  pointer-events: none;
}

.rel-cal-mobile-date {
  font-weight: 700;
  font-size: 1rem;
}

.rel-cal-mobile-badge {
  font-size: 0.8125rem;
  font-weight: 600;
}

/* Tabelas SV / HGT */
.rel-table-sv th,
.rel-table-sv td {
  white-space: nowrap;
}

@media (max-width: 575.98px) {
  .rel-table-sv {
    font-size: 0.8125rem;
  }

  .rel-table-sv th,
  .rel-table-sv td {
    padding: 0.35rem 0.25rem;
  }
}

.rel-public-wrap details summary {
  cursor: pointer;
  padding: 0.25rem 0;
}

/* Ver relatório — botões */
@media (max-width: 575.98px) {
  .rel-ver-actions .btn {
    width: 100%;
  }
}

/* Utilitários */
.rel-public-wrap .text-break-word {
  overflow-wrap: anywhere;
  word-break: break-word;
}
