/* ==========================================================
   SMARTPANEL — LAYOUT EXCLUSIVO PARA TV
   Arquivo: assets/css/tv.css

   Carregue este arquivo DEPOIS de main.css.
========================================================== */

@media (min-width: 1200px) and (orientation: landscape) {
  :root {
    --tv-ticker-height: 44px;
    --tv-gap: 10px;
    --tv-padding: 10px;
    --tv-radius: 18px;
  }

  html,
  body {
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  body {
    cursor: none;
  }

  /* ========================================================
     TICKER
  ======================================================== */

  .top-ticker {
    height: var(--tv-ticker-height);
  }

  .top-ticker-track {
    font-size: clamp(16px, 1.15vw, 22px);

    /*
     * Valor maior = movimento mais lento.
     * Antes: 40s
     * Agora: 70s
     */
    animation-duration: 70s;
  }

  .top-ticker-content {
    gap: 30px;
    padding-right: 30px;
  }

  /* ========================================================
     GRID PRINCIPAL DA TV
  ======================================================== */

  .dashboard {
    width: 100vw;
    height: calc(100vh - var(--tv-ticker-height));
    margin-top: var(--tv-ticker-height);

    padding: var(--tv-padding);

    display: grid;
    grid-template-columns:
      minmax(0, 56fr)
      minmax(0, 28fr)
      minmax(0, 16fr);
    grid-template-rows:
      minmax(0, 58fr)
      minmax(0, 42fr);

    gap: var(--tv-gap);
  }

  .panel {
    border-radius: var(--tv-radius);
  }

  .main-panel {
    grid-column: 1;
    grid-row: 1;

    padding: 14px 18px 12px;

    display: grid;
    grid-template-rows:
      auto
      minmax(0, 1fr)
      auto;

    overflow: hidden;
  }

  .weather-panel {
    grid-column: 1;
    grid-row: 2;

    padding: 10px 12px;

    display: grid;
    grid-template-rows:
      auto
      minmax(0, 1fr)
      auto;

    gap: 4px;
  }

  .calendar-panel {
    grid-column: 2;
    grid-row: 1;

    padding: 12px 14px;
  }

  .events-panel {
    grid-column: 2;
    grid-row: 2;

    padding: 10px 12px;
  }

  .family-panel {
    grid-column: 3;
    grid-row: 1 / 3;

    min-height: 0;

    padding: 10px;

    display: grid;
    grid-template-rows:
      auto
      minmax(0, 1fr);

    overflow: hidden;
  }

  /* ========================================================
     PAINEL PRINCIPAL
  ======================================================== */

  .weekday {
    font-size: clamp(25px, 2vw, 38px);
    line-height: 1;
  }

  .date-area {
    min-height: 0;

    display: grid;
    grid-template-columns:
      minmax(130px, 1fr)
      minmax(300px, 1.45fr)
      minmax(130px, 1fr);

    align-items: start;

    gap: 10px;
  }

  .sun-box {
    margin-top: clamp(34px, 5vh, 58px);

    font-size: clamp(16px, 1.25vw, 22px);
  }

  .sun-icon {
    width: clamp(48px, 3.7vw, 66px);
    height: clamp(48px, 3.7vw, 66px);
  }

  .sun-box strong {
    font-size: clamp(28px, 2.2vw, 42px);
  }

  .date-center {
    min-height: 0;
    padding-top: 6px;

    justify-content: flex-start;
  }

  .clock-time {
    margin-bottom: 8px;

    font-size: clamp(36px, 3.3vw, 60px);
  }

  .day-number {
    font-size: clamp(150px, 15vw, 250px);
    line-height: 0.72;
  }

  .month-name {
    margin-top: 14px;

    font-size: clamp(44px, 4.4vw, 76px);
  }

  .main-devotional-row {
    width: 100%;

    display: grid;
    grid-template-columns:
      minmax(145px, 0.8fr)
      minmax(300px, 1.6fr)
      minmax(190px, 1fr);

    align-items: end;

    gap: 16px;
  }

  .main-devotional-label {
    font-size: clamp(13px, 1vw, 18px);
  }

  .main-rpsp strong {
    font-size: clamp(20px, 1.5vw, 28px);
  }

  .bible-promise {
    max-width: 100%;
    margin: 0;

    font-size: clamp(16px, 1.4vw, 25px);
    line-height: 1.22;
  }

  .main-lesson strong {
    font-size: clamp(15px, 1.15vw, 22px);
  }

  .main-lesson > span:last-child {
    font-size: clamp(12px, 0.95vw, 18px);
  }

  /* ========================================================
     CALENDÁRIO
  ======================================================== */

  .calendar-panel h2 {
    margin-bottom: 10px;

    font-size: clamp(25px, 2.2vw, 40px);
  }

  .calendar-grid {
    grid-template-rows: repeat(7, minmax(0, 1fr));

    gap: 4px;

    font-size: clamp(17px, 1.45vw, 27px);
  }

  .calendar-weekday,
  .calendar-day {
    min-height: 0;
    padding: 2px 0;
  }

  .calendar-event-indicator {
    top: -3px;
    right: -2px;
    z-index: 5;

    min-width: 17px;
    height: 17px;

    border-width: 2px;

    font-size: 8px;
  }

  .calendar-day-number {
    z-index: 2;
  }

  /* ========================================================
     EVENTOS
  ======================================================== */

  .events-panel h2 {
    margin-bottom: 8px;

    font-size: clamp(18px, 1.55vw, 28px);
  }

  .events-list {
    gap: 6px;
  }

  .event-card {
    min-height: 0;

    padding: 7px 9px;

    grid-template-columns:
      minmax(58px, 0.7fr)
      minmax(0, 2fr);

    gap: 8px;
  }

  .event-date {
    font-size: clamp(11px, 0.9vw, 16px);
  }

  .event-info strong {
    font-size: clamp(13px, 1.05vw, 19px);
  }

  .event-info span {
    font-size: clamp(10px, 0.8vw, 15px);
  }

  /* ========================================================
     CLIMA
  ======================================================== */

  .weather-summary {
    grid-template-columns:
      minmax(220px, 0.85fr)
      minmax(0, 1.15fr);

    gap: 10px;
  }

  .weather-current {
    gap: 10px;
  }

  .weather-icon {
    width: clamp(48px, 3.6vw, 66px);
    height: clamp(48px, 3.6vw, 66px);
  }

  .weather-temp {
    font-size: clamp(38px, 3.3vw, 60px);
  }

  .weather-desc {
    font-size: clamp(13px, 1.15vw, 21px);
  }

  .weather-details {
    font-size: clamp(11px, 0.95vw, 17px);
  }

  .weather-detail-icon {
    width: clamp(18px, 1.35vw, 25px);
    height: clamp(18px, 1.35vw, 25px);
  }

  .weather-chart-svg {
    min-height: 88px;
  }

  .weather-forecast {
    gap: 3px;
    padding-top: 4px;
  }

  .weather-day-name {
    font-size: clamp(9px, 0.75vw, 13px);
  }

  .weather-day-icon {
    width: clamp(22px, 1.7vw, 30px);
    height: clamp(22px, 1.7vw, 30px);
  }

  .weather-day-temp {
    font-size: clamp(10px, 0.8vw, 14px);
  }

  /* ========================================================
     ANIVERSÁRIOS
  ======================================================== */

  .family-panel h2 {
    margin-bottom: 8px;

    font-size: clamp(18px, 1.65vw, 30px);
    line-height: 1.05;
  }

  .family-list {
    min-height: 0;

    display: grid;
    grid-template-rows:
      repeat(4, minmax(0, 1fr));

    gap: 7px;
  }

  .family-card {
    min-height: 0;

    padding: 9px 10px;

    justify-content: center;

    border-radius: 12px;
  }

  .family-name {
    font-size: clamp(20px, 1.7vw, 31px);
  }

  .family-date {
    margin-top: 5px;

    font-size: clamp(13px, 1vw, 18px);
  }

  .family-days {
    margin-top: 5px;

    font-size: clamp(12px, 0.9vw, 17px);
  }

  .family-age {
    margin-top: 4px;

    font-size: clamp(11px, 0.82vw, 15px);
  }
}

/* ==========================================================
   TV COM ALTURA REDUZIDA
   Ex.: 1536 × 717
========================================================== */

@media (min-width: 1200px) and (orientation: landscape) and (max-height: 760px) {
  :root {
    --tv-ticker-height: 38px;
    --tv-gap: 8px;
    --tv-padding: 8px;
  }

  .top-ticker-track {
    font-size: 15px;
    animation-duration: 75s;
  }

  .main-panel {
    padding: 10px 14px 9px;
  }

  .weekday {
    font-size: 24px;
  }

  .sun-box {
    margin-top: 24px;
    font-size: 14px;
  }

  .sun-icon {
    width: 42px;
    height: 42px;
  }

  .sun-box strong {
    font-size: 26px;
  }

  .clock-time {
    margin-bottom: 5px;
    font-size: 34px;
  }

  .day-number {
    font-size: 138px;
  }

  .month-name {
    margin-top: 10px;
    font-size: 38px;
  }

  .main-devotional-row {
    grid-template-columns:
      minmax(115px, 0.8fr)
      minmax(250px, 1.7fr)
      minmax(150px, 1fr);

    gap: 10px;
  }

  .main-devotional-label {
    font-size: 12px;
  }

  .main-rpsp strong {
    font-size: 18px;
  }

  .bible-promise {
    font-size: 14px;
  }

  .main-lesson strong {
    font-size: 13px;
  }

  .main-lesson > span:last-child {
    font-size: 11px;
  }

  .calendar-panel {
    padding: 9px 11px;
  }

  .calendar-panel h2 {
    margin-bottom: 6px;
    font-size: 24px;
  }

  .calendar-grid {
    gap: 2px;
    font-size: 16px;
  }

  .calendar-event-indicator {
    min-width: 14px;
    height: 14px;
    font-size: 7px;
  }

  .events-panel {
    padding: 8px 9px;
  }

  .events-panel h2 {
    margin-bottom: 5px;
    font-size: 16px;
  }

  .events-list {
    gap: 4px;
  }

  .event-card {
    padding: 5px 7px;
  }

  .event-date {
    font-size: 10px;
  }

  .event-info strong {
    font-size: 12px;
  }

  .event-info span {
    font-size: 9px;
  }

  .weather-panel {
    padding: 7px 9px;
  }

  .weather-summary {
    grid-template-columns:
      minmax(185px, 0.8fr)
      minmax(0, 1.2fr);
  }

  .weather-icon {
    width: 42px;
    height: 42px;
  }

  .weather-temp {
    font-size: 34px;
  }

  .weather-desc {
    font-size: 12px;
  }

  .weather-details {
    font-size: 10px;
  }

  .weather-detail-icon {
    width: 15px;
    height: 15px;
  }

  .weather-chart-svg {
    min-height: 70px;
  }

  .weather-day-name {
    font-size: 8px;
  }

  .weather-day-icon {
    width: 18px;
    height: 18px;
  }

  .weather-day-temp {
    font-size: 9px;
  }

  .family-panel {
    padding: 7px;
  }

  .family-panel h2 {
    margin-bottom: 5px;
    font-size: 17px;
  }

  .family-list {
    gap: 5px;
  }

  .family-card {
    padding: 6px 7px;
  }

  .family-name {
    font-size: 17px;
  }

  .family-date {
    margin-top: 3px;
    font-size: 11px;
  }

  .family-days {
    margin-top: 3px;
    font-size: 10px;
  }

  .family-age {
    margin-top: 2px;
    font-size: 9px;
  }
}
