/* Administração › Horário de acesso (21/10/2026) — escopo #v-horario; aviso de fim de expediente (.ha-aviso, .ha-fim). Paleta Minerva via orbis-ds.css. */
#v-horario { --ha-az: var(--mf-azul-escuro, #2c5372); --ha-az3: var(--mf-azul-claro, #5d86a5); --ha-ouro: var(--mf-dourado, #c7b475);
  --ha-linha: var(--ob-linha, #dfe6ee); --ha-linha2: var(--ob-linha-2, #eef2f6); --ha-txt: #1c2f40; --ha-mut: #5f7184; }
#v-horario .ha { padding: 26px 30px 40px; font-family: Montserrat, "Segoe UI", Arial, sans-serif; color: var(--ha-txt); max-width: 1300px; }
#v-horario .ha-h { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 18px; }
#v-horario .ha-eyebrow { margin: 0 0 4px; font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--ha-az3); font-weight: 600; }
#v-horario h1 { margin: 0; font-size: 27px; font-weight: 300; color: var(--ha-az); }
#v-horario .ha-sub { margin: 6px 0 0; max-width: 760px; font-size: 13px; line-height: 1.55; color: var(--ha-mut); }
#v-horario .ha-acoes { display: flex; align-items: center; gap: 12px; }
#v-horario .ha-status { font-size: 12px; color: var(--ha-mut); }
#v-horario .ha-btn { font: 600 12.5px Montserrat, "Segoe UI", Arial, sans-serif; height: 36px; padding: 0 16px; border-radius: 8px; border: 1px solid #c9d5e1; background: #fff; color: var(--ha-az); cursor: pointer; }
#v-horario .ha-btn:hover { border-color: var(--ha-az3); background: #f7fafc; }
#v-horario .ha-btn-p { background: var(--ha-az); border-color: var(--ha-az); color: #fff; }
#v-horario .ha-btn-p:hover { background: var(--ha-az); opacity: .9; }
#v-horario .ha-btn-p:disabled { opacity: .45; cursor: default; }
#v-horario .ha-btn-x { white-space: nowrap; height: 30px; font-size: 11.5px; color: #9b2f3c; border-color: #f1c9ce; }
#v-horario .ha-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin-bottom: 12px; }
#v-horario .ha-card { background: #fff; border: 1px solid var(--ha-linha); border-radius: 12px; padding: 16px 18px; min-width: 0; margin-bottom: 12px; }
#v-horario .ha-grade .ha-card { margin-bottom: 0; }
#v-horario .ha-card > small { display: block; font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--ha-mut); margin-bottom: 10px; }
#v-horario .ha-agora { border-left: 3px solid var(--ha-ouro); }
#v-horario .ha-agora b { display: block; font-size: 20px; font-weight: 400; color: var(--ha-az); text-transform: capitalize; }
#v-horario .ha-agora p { margin: 6px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--ha-mut); }
#v-horario .ha-sit { display: inline-block; margin-top: 8px; font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: #e4f1e8; color: #2e6b45; }
#v-horario .ha-sit.fora { background: #f8e6e8; color: #9b2f3c; }
#v-horario .ha-sit.desl { background: #eef2f6; color: var(--ha-mut); }
#v-horario .ha-liga { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--ha-az); margin-bottom: 12px; cursor: pointer; }
#v-horario .ha-dias { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
#v-horario .ha-dias label { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; padding: 6px 10px; border: 1px solid #d0d9e3; border-radius: 999px; cursor: pointer; user-select: none; }
#v-horario .ha-dias label:has(input:checked) { background: #eaf1f7; border-color: var(--ha-az3); color: var(--ha-az); font-weight: 600; }
#v-horario .ha-horas { display: flex; gap: 12px; flex-wrap: wrap; }
#v-horario .ha-campo, #v-horario .ha-form label { display: flex; flex-direction: column; gap: 5px; font-size: 10.5px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--ha-mut); }
#v-horario input[type=time], #v-horario input[type=date], #v-horario input[type=email], #v-horario input[type=text], #v-horario select {
  font: 500 13px Montserrat, "Segoe UI", Arial, sans-serif; text-transform: none; letter-spacing: 0; color: var(--ha-txt);
  padding: 7px 10px; border: 1px solid #d0d9e3; border-radius: 8px; box-sizing: border-box; min-height: 36px; }
#v-horario .ha-form { display: grid; grid-template-columns: 2fr 1.2fr 1fr 1fr 1.2fr; gap: 10px 12px; align-items: end; margin-top: 12px; }
#v-horario .ha-form .ha-larga { grid-column: 1 / -1; }
#v-horario .ha-form .ha-dias { margin: 0; }
#v-horario .ha-form .ha-dias label, #v-horario .ha-form .ha-liga { flex-direction: row; text-transform: none; letter-spacing: 0; }
#v-horario .ha-form .ha-dias label { font-size: 12px; font-weight: 500; color: var(--ha-txt); }
#v-horario .ha-form .ha-dias label:has(input:checked) { color: var(--ha-az); font-weight: 600; }
#v-horario .ha-form .ha-liga { font-size: 12.5px; margin: 10px 0 0; }
#v-horario .ha-form-acoes { grid-column: 1 / -1; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
#v-horario .ha-erro { font-size: 12px; color: #9b2f3c; }
#v-horario .ha-nota { font-size: 12px; color: var(--ha-mut); margin: 10px 0 0; line-height: 1.5; }
#v-horario details > summary { cursor: pointer; font-weight: 600; font-size: 13px; color: var(--ha-az); }
#v-horario .ha-card-h { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 4px; }
#v-horario .ha-card-h b { color: var(--ha-az); font-size: 13px; }
#v-horario table { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-top: 10px; }
#v-horario th { text-align: left; font-size: 10.5px; text-transform: uppercase; letter-spacing: .5px; color: var(--ha-mut); padding: 8px; background: #f6f8fb; }
#v-horario td { padding: 9px 8px; border-top: 1px solid var(--ha-linha2); vertical-align: top; overflow-wrap: anywhere; white-space: normal !important; }
#v-horario td small { display: block; color: var(--ha-mut); font-size: 11px; margin-top: 3px; }
#v-horario td em { display: inline-block; font-style: normal; font-size: 10.5px; font-weight: 700; padding: 2px 7px; border-radius: 999px; background: #e4f1e8; color: #2e6b45; }
#v-horario td em.janela { background: #eaf1f7; color: var(--ha-az); }
#v-horario tr.ha-vencida td { opacity: .5; }
#v-horario .ha-vazio { font-size: 12.5px; color: var(--ha-mut); padding: 10px 0 0; }
@media (max-width: 900px) {
  #v-horario .ha { padding: 18px 16px 30px; }
  #v-horario .ha-grade, #v-horario .ha-form { grid-template-columns: 1fr; }
  #v-horario .ha-tabela { overflow-x: auto; }
  #v-horario .ha-tabela table { min-width: 600px; }
}

/* Aviso a todos os usuários com restrição: 10 minutos antes do fim da janela, e tela de sessão encerrada. */
.ha-aviso { position: fixed; z-index: 99990; left: 50%; bottom: 22px; transform: translateX(-50%); max-width: calc(100vw - 32px); box-sizing: border-box;
  display: flex; align-items: center; gap: 14px; padding: 12px 16px; border-radius: 12px; background: #2c5372; color: #fff;
  font: 500 13px/1.45 Montserrat, "Segoe UI", Arial, sans-serif; box-shadow: 0 12px 32px rgba(20, 40, 60, .28); border-left: 4px solid #c7b475; }
.ha-aviso b { font-weight: 700; }
.ha-aviso button { flex: none; font: 600 12px Montserrat, "Segoe UI", Arial, sans-serif; height: 30px; padding: 0 12px; border-radius: 7px; border: 1px solid rgba(255,255,255,.45); background: transparent; color: #fff; cursor: pointer; }
.ha-fim { position: fixed; inset: 0; z-index: 99995; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(18, 34, 50, .72);
  font-family: Montserrat, "Segoe UI", Arial, sans-serif; }
.ha-fim > div { max-width: 440px; background: #fff; border-radius: 14px; padding: 26px 28px; color: #1c2f40; box-shadow: 0 20px 50px rgba(0,0,0,.3); border-top: 4px solid #c7b475; }
.ha-fim h2 { margin: 0 0 10px; font-size: 20px; font-weight: 400; color: #2c5372; }
.ha-fim p { margin: 0 0 18px; font-size: 13.5px; line-height: 1.55; color: #4d6073; }
.ha-fim button { font: 600 13px Montserrat, "Segoe UI", Arial, sans-serif; height: 38px; padding: 0 18px; border-radius: 8px; border: 0; background: #2c5372; color: #fff; cursor: pointer; }
