/* Calendar public UI v20 — arquivo separado para evitar cache do CSS antigo */
body.modal-open{overflow:hidden!important}

/* Semana disponível: mesmo desenho do painel administrativo */
.calendar-results-panel .public-available-slot{
  display:grid!important;
  grid-template-columns:48px minmax(0,1fr)!important;
  gap:9px!important;
  align-items:stretch!important;
  min-height:70px!important;
  padding:7px!important;
  border:1px solid transparent!important;
  border-bottom-color:#e4ebf2!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
  cursor:pointer!important;
  transition:.18s ease!important;
}
.calendar-results-panel .public-available-slot:last-child{border-bottom-color:transparent!important}
.calendar-results-panel .public-available-slot:hover,
.calendar-results-panel .public-available-slot:focus-visible{
  background:#fffaf0!important;
  outline:none!important;
}
.calendar-results-panel .public-available-slot.is-selected{
  background:#fffaf0!important;
  border-color:#e1bd62!important;
}
.calendar-results-panel .public-available-slot .visit-date{
  width:auto!important;
  height:auto!important;
  min-height:56px!important;
  display:grid!important;
  place-content:center!important;
  text-align:center!important;
  border-radius:8px!important;
  background:#edf4fa!important;
  color:#123f69!important;
  padding:0!important;
}
.calendar-results-panel .public-available-slot .visit-date strong{font-size:19px!important;line-height:1!important}
.calendar-results-panel .public-available-slot .visit-date span{font-size:9px!important;font-weight:900!important;margin-top:4px!important}
.calendar-results-panel .public-available-slot .visit-person{
  min-width:0!important;
  width:100%!important;
  display:block!important;
}
.calendar-results-panel .public-available-box{
  box-sizing:border-box!important;
  min-height:56px!important;
  width:100%!important;
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:8px!important;
  padding:9px 10px!important;
  border:1px dashed #d7b35a!important;
  border-left-width:3px!important;
  border-radius:8px!important;
  background:#fffdf7!important;
  color:#123f69!important;
}
.calendar-results-panel .public-available-box strong{
  display:block!important;
  font-size:12px!important;
  font-weight:850!important;
  white-space:nowrap!important;
}
.calendar-results-panel .public-available-box small{
  display:block!important;
  margin:0!important;
  color:#70839a!important;
  font-size:10px!important;
  text-align:right!important;
}
.calendar-results-panel .public-available-slot .public-week-flags{margin-top:4px!important}

/* Modal compacto para solicitar a semana */
.week-request-modal[hidden]{display:none!important}
.week-request-modal{
  position:fixed!important;
  inset:0!important;
  z-index:10050!important;
  display:grid!important;
  place-items:center!important;
  padding:18px!important;
  opacity:0!important;
  visibility:hidden!important;
  transition:opacity .18s ease,visibility .18s ease!important;
}
.week-request-modal.is-open{opacity:1!important;visibility:visible!important}
.week-request-backdrop{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:rgba(8,27,48,.62)!important;
  backdrop-filter:blur(3px)!important;
  cursor:default!important;
}
.week-request-card{
  box-sizing:border-box!important;
  position:relative!important;
  z-index:1!important;
  width:min(470px,100%)!important;
  max-height:calc(100vh - 36px)!important;
  overflow:auto!important;
  margin:0!important;
  padding:26px 26px 22px!important;
  border:1px solid #dbe4ee!important;
  border-top:4px solid #d5aa3e!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:0 24px 70px rgba(5,31,59,.28)!important;
  transform:translateY(8px) scale(.985)!important;
  transition:transform .18s ease!important;
}
.week-request-modal.is-open .week-request-card{transform:none!important}
.week-request-close{
  position:absolute!important;
  right:11px!important;
  top:9px!important;
  width:34px!important;
  height:34px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:7px!important;
  background:transparent!important;
  color:#63778e!important;
  font-size:26px!important;
  line-height:1!important;
  cursor:pointer!important;
}
.week-request-close:hover{background:#eef3f8!important;color:#123f69!important}
.week-request-card .eyebrow{display:block!important;padding-right:36px!important}
.week-request-card h2{margin:5px 34px 14px 0!important;color:#123f69!important;font-family:Georgia,serif!important;font-size:1.65rem!important;line-height:1.15!important}
.week-choice-summary{padding:12px 14px!important;margin:0 0 17px!important;border:1px solid #d9e4ee!important;border-left:3px solid #d5aa3e!important;border-radius:8px!important;background:#f8fbfd!important}
.week-choice-summary span,.week-choice-summary small{display:block!important;color:#71839a!important;font-size:.72rem!important}
.week-choice-summary strong{display:block!important;margin:3px 0!important;color:#123f69!important;font-size:.9rem!important}
.week-request-form{display:grid!important;gap:12px!important;margin:0!important;padding:0!important}
.week-request-form label{display:grid!important;gap:5px!important;margin:0!important;color:#35506d!important;font-size:.75rem!important;font-weight:800!important}
.week-request-form input,.week-request-form textarea{
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  margin:0!important;
  border:1px solid #cddae6!important;
  border-radius:7px!important;
  background:#fff!important;
  padding:10px 11px!important;
  color:#12365c!important;
  font:inherit!important;
  font-weight:500!important;
  outline:none!important;
  transition:.15s!important;
}
.week-request-form input:focus,.week-request-form textarea:focus{border-color:#789bbb!important;box-shadow:0 0 0 3px rgba(38,92,139,.09)!important}
.week-request-form textarea{resize:vertical!important;min-height:70px!important}
.week-request-actions{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;gap:9px!important;margin-top:2px!important}
.week-request-actions .btn,.week-cancel{box-sizing:border-box!important;min-height:42px!important;margin:0!important;border-radius:7px!important;font-weight:850!important;cursor:pointer!important}
.week-cancel{padding:0 16px!important;border:1px solid #d5dfe8!important;background:#f7f9fb!important;color:#50667e!important}
.week-request-actions .btn{width:100%!important;border:0!important}

@media(max-width:620px){
  .calendar-results-panel .public-available-slot{grid-template-columns:44px minmax(0,1fr)!important;padding:6px!important}
  .calendar-results-panel .public-available-box{flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:2px!important;padding:8px 10px!important}
  .calendar-results-panel .public-available-box small{text-align:left!important}
  .week-request-modal{padding:12px!important}
  .week-request-card{padding:22px 18px 18px!important;max-height:calc(100vh - 24px)!important}
  .week-request-card h2{font-size:1.4rem!important}
  .week-request-actions{grid-template-columns:1fr!important}
  .week-request-actions .btn{grid-row:1!important}
  .week-cancel{grid-row:2!important}
}
