/* ================================
   Base + Fonte unificada
   ================================ */
   .schedule-wrapper,
   .schedule-mobile {
     font-family: 'Lexend', sans-serif;
   }
   
   /* ================================
      Container da tabela (scroll mobile)
      ================================ */
   .schedule-wrapper {
     overflow-x: auto;
     width: 100%;
   }
   
   /* ================================
      Estilos gerais da tabela
      ================================ */
   .schedule-table {
     width: max-content; /* permite scroll horizontal ao precisar */
     min-width: 100%;
     border-collapse: separate; /* para border-radius e linhas separadas */
     border-spacing: 0;
     font-size: 14px;
     color: #222;
     background: #f4f4f4;
     border-radius: 16px;
     overflow: hidden;
     border: none;
     position: relative;
   }
   
   /* ================================
      Cabeçalho da tabela (dias da semana)
      ================================ */
   .schedule-table thead th {
     background-color: #181818 !important;
     color: #fff !important;
     font-weight: 500;
     font-family: 'Plus Jakarta Sans', serif;
     font-size: 16px;
     letter-spacing: 0.05em;
     user-select: none;
     text-transform: lowercase;
     padding: 24px 15px;
     border: none !important;
     position: relative;
     white-space: nowrap;
   }
   
   /* Primeira letra maiúscula */
   .schedule-table thead th::first-letter {
     text-transform: uppercase;
   }
   
   /* Ícone SVG no lugar do texto "Hora" */
   .schedule-table thead th:first-child {
     text-indent: -9999px;
     width: 112px;
     min-width: 112px;
     max-width: 112px;
     padding: 10px 5px;
     text-align: center;
     white-space: nowrap;
   }
   
   .schedule-table thead th:first-child::before {
     content: "";
     position: absolute;
     left: 50%;
     top: 50%;
     width: 24px;
     height: 24px;
     transform: translate(-50%, -50%);
     background-image: url('data:image/svg+xml;utf8,<svg fill="%23fff" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 1a11 11 0 1 0 11 11A11 11 0 0 0 12 1Zm0 20a9 9 0 1 1 9-9 9 9 0 0 1-9 9Zm.5-13h-1v6l5.25 3.15.5-.86-4.75-2.79Z"/></svg>');
     background-repeat: no-repeat;
     background-size: contain;
   }
   
   /* ================================
      Corpo da tabela
      ================================ */
   .schedule-table tbody td {
     background-color: #f4f4f4;
     vertical-align: top;
     text-align: left;
     padding: 15px;
     border-right: 2px solid #E2E2E2;
     border-bottom: 2px solid #E2E2E2;
     font-size: 14px;
     color: #000;
     min-height: 110px;
     height: auto;
     line-height: 1.4;
     box-sizing: border-box;
     position: relative;
     word-wrap: break-word;
   }
   
   /* Remove a borda da última célula da linha */
   .schedule-table tbody td:last-child {
     border-right: none;
   }
   
   /* Células com aulas */
   .schedule-table tbody td:has(div) {
     background-color: #ffffff;
   }
   
   /* Células vazias */
   .schedule-table tbody td:empty {
     background-color: #f9f9f9;
     min-height: 110px;
     height: 110px;
     line-height: 110px;
     text-align: center;
     vertical-align: middle;
   }
   
   /* ================================
      Card de aula dentro das células
      ================================ */
   .schedule-table tbody td div {
     margin-bottom: 6px;
     padding: 4px 8px;
     border-radius: 6px;
     box-shadow: 0 1px 3px rgba(255, 255, 255, 0.7);
     font-size: 14px;
     color: #000;
     position: relative;
     word-wrap: break-word;
     min-height: 70px;
     line-height: 1.3;
   }
   
   /* Título do card */
   .schedule-table tbody td div strong {
     display: block;
     font-weight: 500;
     margin-bottom: 2px;
     font-size: 14px;
   }
   
   /* Cidade sem negrito */
   .schedule-table tbody td div small.cidade {
     font-weight: normal;
     font-size: 14px;
     display: block;
     margin: 0 0 2px 0;
   }
   
   /* Nome da sala menor e sem negrito */
   .schedule-table tbody td div small.sala {
     font-weight: normal;
     font-size: 12px;
     display: block;
     margin: 0 0 4px 0;
   }
   
   /* Texto pequeno (ex.: horário) */
   .schedule-table tbody td div small.horario {
     opacity: 0.7;
     display: block;
     margin-bottom: 2px;
   }
   
   /* Último pequeno tem mais margem inferior */
   .schedule-table tbody td div small:last-child {
     margin-bottom: 6px;
   }
   
   /* Espaço invisível para células vazias */
   .schedule-table tbody td div.empty-space {
     min-height: 70px;
     line-height: 70px;
     color: transparent;
     user-select: none;
   }
   
   /* ================================
      Efeito hover na linha
      ================================ */
   .schedule-table tbody tr:hover {
     background-color: #f1f7ff;
   }
   
   /* ================================
      Destaque "AULA AGORA"
      ================================ */
   .schedule-table td.now {
     position: relative;
     font-weight: 600;
     background-color: #ffffff !important;
   }
   
   .schedule-table td.now::after {
     content: "AULA AGORA";
     position: absolute;
     right: 6px;
     top: 6px;
     font-size: 11px;
     padding: 2px 6px;
     background-color: #ff3b3b; /* vermelho */
     color: white;
     border-radius: 8px;
     font-weight: 500;
     white-space: nowrap;
   }
   
   /* ================================
      Estilo minimalista para filtros
      ================================ */
   .filter-container {
     display: flex;
     gap: 10px;
     margin-bottom: 20px;
   }
   
   .filter-button {
     padding: 8px 16px;
     border: 1px solid #ccc;
     border-radius: 12px;
     background-color: #f0f0f0;
     color: #333;
     cursor: pointer;
     font-weight: 500;
     transition: background-color 0.3s ease, border-color 0.3s ease;
     user-select: none;
     box-shadow: none;
   }
   
   .filter-button:hover {
     background-color: #e0e0e0;
   }
   
   .filter-button.active {
     background-color: #004d40;
     border-color: #004d40;
     color: #fff;
     box-shadow: none;
   }
   
   /* ================================
      Responsividade (desktop → tablet)
      ================================ */
   @media (max-width: 1024px) {
     .schedule-wrapper { overflow-x: auto; }
   
     .schedule-table {
       width: max-content; /* mantém largura das colunas */
       display: table;
     }
   
     .schedule-table tbody td,
     .schedule-table thead th {
       padding: 14px 8px; /* ajuste para mobile */
     }
   
     .schedule-table tbody td:empty {
       line-height: 110px;
     }
   }
   
   /* ================================
      MOBILE: versão em cartões (sem hora no rótulo)
      ================================ */
   @media (max-width: 768px) {
     /* Esconde a tabela no mobile e usa a lista mobile */
     .schedule-wrapper,
     .schedule-table {
       display: none !important;
     }
   
     .schedule-mobile {
       display: block !important;
       margin: 0;
       padding: 0 12px 12px;
     }
   
     .schedule-day {
       background: #fff;
       border: 1px solid #E2E2E2;
       border-radius: 14px;
       padding: 12px;
       margin: 12px 0 16px;
       box-shadow: 0 1px 3px rgba(0,0,0,.04);
     }
   
     /* Título do dia – vistoso, porém sem peso exagerado */
     .schedule-day__title {
       display: block;
       margin: 0 0 10px 0;
       padding: 10px 12px;
       border-radius: 10px;
       font-size: 15px;
       font-weight: 600;
       letter-spacing: .2px;
       color: #fff;
       background: #181818;
     }
   
     .schedule-card {
       position: relative;
       background: #fff;
       border-radius: 12px;
       border: 1px solid #E2E2E2;
       padding: 12px 12px 10px 12px;
       margin-top: 12px;
     }
   
     .schedule-card .class-box {
       margin: 0;
       border-radius: 8px;
       background: #fff;
     }
   
     /* Badge “ACONTECENDO” fixa no canto do cartão */
     .schedule-card .now-badge {
       position: absolute;
       top: 8px;
       right: 12px;
       display: inline-block;
       font-size: 11px;
       line-height: 1;
       padding: 2px 6px;
       border-radius: 8px;
       font-weight: 600;
       background: #2ecc71;
       color: #fff;
       text-transform: uppercase;
       letter-spacing: .5px;
     }
   
     .schedule-card + .schedule-card { margin-top: 10px; }
   }
   
   /* Desktop/Tablet continuam usando a tabela normal */
   @media (min-width: 769px) {
     .schedule-mobile { display: none !important; }
   }
   
   /* ================================
      Esconder DOMINGO
      ================================ */
   /* Desktop: na tua ordem, th/td 1=Hora, 2=Seg, 3=Ter, 4=Qua, 5=Qui, 6=Sex, 7=Sáb, 8=Dom */
   .schedule-table thead th:nth-child(8),
   .schedule-table tbody td:nth-child(8) {
     display: none !important;
   }
   
   /* Mobile: como a lista é gerada em ordem Seg→Dom, esconder o último bloco (Domingo) */
   @media (max-width: 768px) {
     .schedule-mobile .schedule-day:last-child {
       display: none !important;
     }
   }
   /* === Ajustes finais de tipografia === */

/* Fonte unificada em todo o widget */
.schedule-wrapper,
.schedule-mobile {
  font-family: 'Lexend', sans-serif;
}

/* Dia da semana no mobile (faixa no topo do cartão) */
.schedule-day__title {
  display: block;
  margin: 0 0 10px 0;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 500; /* antes era 600/bold */
  letter-spacing: .2px;
  color: #fff;
  background: #181818;
}

/* Nome da aula (menos pesado) */
.schedule-table tbody td div strong,
.schedule-card .class-box strong {
  display: block;
  font-weight: 500; /* antes era bold */
  margin-bottom: 2px;
  font-size: 15px;
}

/* Badge "ACONTECENDO" sempre clean */
.now-badge {
  display: inline-block;
  position: absolute;
  top: 8px;
  right: 12px;
  font-size: 11px;
  line-height: 1;
  padding: 2px 6px;
  border-radius: 8px;
  font-weight: 600;
  background: #2ecc71;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .5px;
}
/* Texto auxiliar (cidade, sala, hora) */
.schedule-table tbody td div span,
.schedule-card .class-box span {
  display: block !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
  font-weight: 400 !important;   /* garante peso normal */
  opacity: 0.8 !important;
  font-family: 'Lexend', sans-serif !important;
}

/* ===== RESET fino de tipografia (desktop + mobile) ===== */

/* família padrão do widget (como antes) */
.schedule-wrapper,
.schedule-mobile {
  font-family: 'Lexend', sans-serif !important;
}

/* cabeçalho da tabela segue com Plus Jakarta */
.schedule-table thead th {
  font-family: 'Plus Jakarta Sans', serif !important;
  font-weight: 500 !important;
}

/* Título da aula (mesmo destaque de antes) */
.schedule-table .class-box strong,
.schedule-card .class-box strong {
  font-weight: 500 !important;   /* meio-negrito, não 700 */
  font-size: 14px !important;    /* o mesmo tamanho que você aprovou */
  margin-bottom: 2px !important;
  display: block !important;
}

/* Cidade (14), Sala (12), Hora (12/itálico) — todos REGULAR 400 */
.schedule-table .class-box .class-meta,
.schedule-card  .class-box .class-meta {
  font-family: 'Lexend', sans-serif !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  opacity: .8 !important;
  display: block !important;
  margin: 0 0 2px 0 !important;
}

/* tamanhos específicos iguais ao original */
.schedule-table .class-box .class-meta.city,
.schedule-card  .class-box .class-meta.city {
  font-size: 14px !important;
}

.schedule-table .class-box .class-meta.room,
.schedule-card  .class-box .class-meta.room {
  font-size: 14px !important;
}

.schedule-table .class-box .class-meta.time,
.schedule-card  .class-box .class-meta.time {
  font-size: 14px !important;
  margin-bottom: 6px !important;
}

/* Faixa do dia no mobile – menos pesada (como aprovado) */
.schedule-day__title {
  font-weight: 500 !important;
  font-family: 'Lexend', sans-serif !important;
}

/* Links de calendário discretos e herdando a cor do texto */
.schedule-table .class-box a,
.schedule-card  .class-box a {
  font-size: 12px !important;
  color: inherit !important;
  text-decoration: none !important;
  opacity: .85 !important;
}
.schedule-table .class-box a:hover,
.schedule-card  .class-box a:hover {
  opacity: 1 !important;
}
/* Links Apple/Google dentro das cards – desktop */
@media (min-width: 1025px) {
  .schedule-table .class-box a {
    display: inline;               /* um do lado do outro */
    margin: 0;                     /* sem quebras estranhas */
    font-size: 12px;
    color: inherit;                /* herda cor do texto */
    text-decoration: none;
    opacity: .75;
    white-space: nowrap;           /* cada link não quebra no meio */
  }
  .schedule-table .class-box a:hover { opacity: 1; }

  /* separador “·” entre os dois links */
  .schedule-table .class-box a + a::before {
    content: " · ";
    opacity: .6;
    margin: 0 4px;
  }

  /* aproxima do conteúdo, mas sem “empurrar” nada */
  .schedule-table .class-box > div { margin-top: 4px !important; }
}
/* ---------- Links Apple/Google nas cards (DESKTOP) ---------- */
@media (min-width: 1025px) {
  /* o último <div> dentro da card é o contêiner dos links */
  .schedule-table .class-box > div:last-of-type {
    display: flex;               /* ficam lado a lado */
    align-items: center;
    gap: 10px;                   /* espacinho entre eles */
    flex-wrap: nowrap;           /* impede quebra de linha entre os 2 */
    margin-top: 6px !important;
  }

  /* o próprio link */
  .schedule-table .class-box > div:last-of-type a {
    display: inline-flex;
    white-space: nowrap;         /* não quebra “Apple Calendar” ao meio */
    word-break: keep-all;
    hyphens: none;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: inherit !important;
    text-decoration: none !important;
    opacity: .8;
    line-height: 1.2;
  }
  .schedule-table .class-box > div:last-of-type a:hover { opacity: 1; }

  /* separador elegante entre os 2 links */
  .schedule-table .class-box > div:last-of-type a + a::before {
    content: "·";
    margin: 0 6px 0 2px;
    opacity: .6;
  }
}
/* --- Links Apple/Google nas cards (DESKTOP, estilo mobile limpo) --- */
@media (min-width: 1025px) {
  /* container dos dois links */
  .schedule-table .class-box > div:last-of-type {
    display: block !important;          /* como no mobile */
    margin-top: 6px !important;
    line-height: 1.2;
    white-space: normal !important;     /* permite quebrar ENTRE os links */
    overflow: visible;
  }

  /* cada link */
  .schedule-table .class-box > div:last-of-type a {
    display: inline-block !important;   /* ficam lado a lado, mas podem pular de linha */
    margin-right: 14px !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: inherit !important;
    text-decoration: none !important;
    opacity: .8 !important;
    white-space: nowrap !important;     /* NÃO quebra dentro de “Apple Calendar” */
    word-break: keep-all;
    hyphens: none;
  }
  .schedule-table .class-box > div:last-of-type a:hover { opacity: 1 !important; }

  /* separador aparece só quando existe o segundo link */
  .schedule-table .class-box > div:last-of-type a + a::before {
    content: "·";
    margin: 0 6px 0 2px;
    opacity: .6;
  }
}
/* --- Links Apple/Google alinhados sem ponto estranho (DESKTOP) --- */
@media (min-width: 1025px) {
  .schedule-table .class-box > div:last-of-type {
    display: block !important;
    margin-top: 6px !important;
    line-height: 1.2;
    white-space: normal !important;
  }

  .schedule-table .class-box > div:last-of-type a {
    display: inline-block !important;
    margin-right: 14px !important;  /* espaçamento entre os links */
    font-size: 12px !important;
    font-weight: 400 !important;
    color: inherit !important;
    text-decoration: none !important;
    opacity: .8 !important;
    white-space: nowrap !important;
  }

  .schedule-table .class-box > div:last-of-type a:hover {
    opacity: 1 !important;
  }

  /* remove qualquer marcador de lista inesperado */
  .schedule-table .class-box > div:last-of-type a::before {
    content: none !important;
  }
}
/* --- Links Apple/Google alinhados e estilo pill --- */
@media (min-width: 1025px) {
  .schedule-table .class-box > div:last-of-type {
    display: flex !important;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px !important;
    justify-content: flex-start !important; /* alinha à esquerda */
  }

  .schedule-table .class-box > div:last-of-type a {
    display: inline-block !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: #333 !important;
    text-decoration: none !important;
    background: #f2f2f2 !important; /* pill minimalista */
    padding: 4px 10px !important;
    border-radius: 14px !important;
    line-height: 1.3;
    transition: background 0.2s ease, opacity 0.2s ease;
  }

  .schedule-table .class-box > div:last-of-type a:hover {
    background: #e0e0e0 !important;
    opacity: 1 !important;
  }

  /* elimina marcador */
  .schedule-table .class-box > div:last-of-type a::before {
    content: none !important;
  }
}
/* --- Links Apple/Google com ícone e corzinha --- */
@media (min-width: 1025px) {
  .schedule-table .class-box > div:last-of-type {
    display: flex !important;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px !important;
    justify-content: flex-start !important;
  }

  .schedule-table .class-box > div:last-of-type a {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
    font-size: 12px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    background: #f7f7f7 !important;
    padding: 4px 10px !important;
    border-radius: 14px !important;
    line-height: 1.3;
    transition: background 0.2s ease, transform 0.2s ease;
  }

  .schedule-table .class-box > div:last-of-type a::before {
    content: "+"; /* ícone */
    font-weight: 700;
    font-size: 14px;
  }

  .schedule-table .class-box > div:last-of-type a:hover {
    background: #e0e0e0 !important;
    transform: scale(1.05);
  }

  /* Cor diferente para cada */
  .schedule-table .class-box > div:last-of-type a[href*="ics"] {
    color: #2c82c9 !important; /* Azul Apple */
  }

  .schedule-table .class-box > div:last-of-type a[href*="calendar.google"] {
    color: #0f9d58 !important; /* Verde Google */
  }
}
/* --- Links Apple/Google com ícone e corzinha --- */
@media (min-width: 1025px) {
  .schedule-table .class-box > div:last-of-type {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px !important;
    justify-content: flex-start !important;
  }

  .schedule-table .class-box > div:last-of-type a {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    padding: 4px 12px !important;
    border-radius: 14px !important;
    border: 1px solid transparent !important;
    line-height: 1.3;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
  }

  .schedule-table .class-box > div:last-of-type a::before {
    content: "+"; /* ícone fixo */
    font-weight: 700;
    font-size: 15px;
    margin-right: 2px;
  }

  /* Apple */
  .schedule-table .class-box > div:last-of-type a[href*="ics"] {
    color: #2c82c9 !important;
    border-color: #2c82c9 !important;
  }
  .schedule-table .class-box > div:last-of-type a[href*="ics"]:hover {
    background: #2c82c9 !important;
    color: #fff !important;
    transform: scale(1.05);
  }

  /* Google */
  .schedule-table .class-box > div:last-of-type a[href*="calendar.google"] {
    color: #0f9d58 !important;
    border-color: #0f9d58 !important;
  }
  .schedule-table .class-box > div:last-of-type a[href*="calendar.google"]:hover {
    background: #0f9d58 !important;
    color: #fff !important;
    transform: scale(1.05);
  }
}
/* Evitar que o badge "ACONTECENDO" sobreponha o título */
.schedule-table .class-box,
.schedule-card  .class-box {
  position: relative; /* garante referência para o badge */
}

/* quando existir o badge, damos um espaço no topo do card */
.schedule-table .class-box:has(.now-badge),
.schedule-card  .class-box:has(.now-badge) {
  padding-top: 28px !important;  /* ajuste fino se precisar 24–32 */
}

/* posição do badge (continua no canto superior direito) */
.schedule-table .class-box .now-badge,
.schedule-card  .class-box .now-badge {
  position: absolute;
  top: 6px;
  right: 10px;
  z-index: 1;
}
/* Badge "ACONTECENDO" alinhado à esquerda e fora do título */
.schedule-table .class-box .now-badge,
.schedule-card  .class-box .now-badge {
  position: relative;     /* deixa no fluxo normal */
  display: inline-block;
  margin: 0 0 0 0;      /* espaço abaixo do badge */
  top: auto;
  right: auto;
  left: 0;
}
.schedule-table .class-box,
.schedule-card .class-box {
  padding-top: 10px;  /* ajusta se quiser mais respiro */
}
/* Badge "ACONTECENDO" fixo no topo, à esquerda */
.schedule-table .class-box,
.schedule-card .class-box {
  position: relative; /* cria referência pro badge */
}

.schedule-table .class-box .now-badge,
.schedule-card  .class-box .now-badge {
  position: absolute;
  top: 8px;
  left: 10px;
  margin-bottom: 20px;
  padding: 4px 8px;
  font-size: 11px;
  line-height: 1.2;
  border-radius: 6px;
  font-weight: 600;
  background: #2ecc71;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .5px;
}
/* ===== Badge ACONTECENDO — topo à esquerda, sem sobrepor o título ===== */
.schedule-table .class-box,
.schedule-card  .class-box {
  position: relative; /* referência para o badge */
}

/* cria espaço para o badge (altura ~24px + respiro) */
.schedule-table .class-box:has(.now-badge),
.schedule-card  .class-box:has(.now-badge) {
  padding-top: 38px !important;  /* ajuste fino: 34–42 conforme preferir */
}

/* posiciona o badge alinhado com o conteúdo (não em cima da faixa colorida) */
.schedule-table .class-box .now-badge,
.schedule-card  .class-box .now-badge {
  position: absolute;
  top: 8px;          /* distância do topo do card */
  left: 14px;        /* alinha com o texto (padding-left do card) */
  z-index: 2;
  white-space: nowrap;   /* não quebra a palavra */
  margin: 0;             /* sem margem extra fantasma */
  /* mantém seu visual atual (cores/tipografia) */
  padding: 4px 8px;
  font-size: 11px;
  line-height: 1.2;
  border-radius: 6px;
  font-weight: 600;
  background: #2ecc71;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .5px;
}
