/* Evita que a classe global .page do ERP oculte o body das páginas do WordPress. */
body.page {
  display: block !important;
}

#agreementStatusField[hidden] { display: none !important; }

/* O ERP ocupa a página inteira e não herda cabeçalho, título ou rodapé do tema. */
body:has(#oralmed-erp-app) #top-bar-wrap,
body:has(#oralmed-erp-app) #site-header,
body:has(#oralmed-erp-app) header.site-header,
body:has(#oralmed-erp-app) .page-header,
body:has(#oralmed-erp-app) .entry-header,
body:has(#oralmed-erp-app) #footer,
body:has(#oralmed-erp-app) #footer-widgets,
body:has(#oralmed-erp-app) #footer-bottom,
body:has(#oralmed-erp-app) footer.site-footer,
body:has(#oralmed-erp-app) [data-elementor-type="header"],
body:has(#oralmed-erp-app) [data-elementor-type="footer"] {
  display: none !important;
}

body:has(#oralmed-erp-app) #main,
body:has(#oralmed-erp-app) #content-wrap,
body:has(#oralmed-erp-app) #primary,
body:has(#oralmed-erp-app) .content-area,
body:has(#oralmed-erp-app) .site-main {
  border: 0 !important;
  float: none !important;
  margin: 0 !important;
  max-width: none !important;
  padding: 0 !important;
  width: 100% !important;
}

/* Mantém a navegação entre as telas restrita ao contêiner do ERP. */
#oralmed-erp-app .page {
  display: none;
}

#oralmed-erp-app .page.active {
  display: block;
}

.actions-cell .icon-btn:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.actions-cell .icon-btn.danger {
  color: #b42318;
}

.actions-cell .icon-btn.danger:hover {
  background: #fff0ee;
  border-color: #f2b8b2;
}

.catalog-table td:last-child,
.catalog-table th:last-child {
  width: 110px;
}

.access-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.access-summary article {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.access-summary small {
  color: var(--muted);
}

.access-summary strong {
  color: var(--nav);
  font-size: 25px;
}

#accessModal .modal-card {
  width: min(940px, 100%);
}

#accessModal h3 {
  border-bottom: 1px solid var(--line);
  font-size: 16px;
  margin: 24px 0 12px;
  padding-bottom: 9px;
}

#accessModal input[type="checkbox"] {
  width: auto;
}

.schedule-grid > div {
  grid-template-columns: minmax(140px, 1fr) minmax(340px, 1.5fr);
  border-bottom: 1px solid #eef2f7;
  padding: 7px 0;
}

.schedule-grid > div > label,
.menu-grid label {
  align-items: center;
  display: flex;
  gap: 8px;
}

.schedule-time {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr auto 1fr;
}

.schedule-time em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}

.menu-grid label {
  background: #f7f9fc;
  border: 1px solid #e7edf5;
  border-radius: 8px;
  padding: 10px 12px;
}

.access-notice {
  background: #eaf4ff;
  border: 1px solid #badcff;
  border-radius: 8px;
  color: #164f7c;
  padding: 12px 14px;
}

#linkedModal .modal-card {
  width: min(820px, 100%);
}

#linkedModalText {
  color: var(--muted);
  margin: 10px 0 18px;
}

.linked-table {
  border: 1px solid var(--line);
  border-radius: 9px;
  max-height: 420px;
}

@media (max-width: 900px) {
  .access-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .access-summary {
    grid-template-columns: 1fr;
  }

  .schedule-grid > div {
    grid-template-columns: 1fr;
  }

  .schedule-time {
    grid-template-columns: 1fr auto 1fr;
  }
}

/* Use the same A4 dimensions for measurement and actual printing. */
#contractPrint .contract-data {
  border-top: 1px solid #222;
  margin-top: 3mm;
}

#contractPrint.contract-measuring {
  display: block !important;
  position: absolute;
  left: -10000px;
  top: 0;
  width: 210mm;
  visibility: hidden;
}

#contractPrint.contract-measuring .contract-page {
  box-sizing: border-box;
  width: 210mm;
  height: 297mm;
  padding: 7mm 8mm;
  font-size: 14px;
}
#contractPrint.contract-measuring .contract-text { font-size: 14px; line-height: 1.18; }
#contractPrint.contract-measuring .contract-text p { margin: 0 0 7px; }
#contractPrint.contract-measuring .contract-text ul { margin: 0 0 7px 18px; padding: 0; }
#contractPrint.contract-measuring .contract-data { margin-bottom: 0; }
#contractPrint.contract-measuring .contract-header-gap { display: block; height: 7mm; }
#contractPrint.contract-measuring .contract-data p { font-size: 14px; line-height: 1.18; margin: 3px 0; }
#contractPrint.contract-measuring .contract-title,
#contractPrint.contract-measuring .contract-code,
#contractPrint.contract-measuring .contract-date,
#contractPrint.contract-measuring .signatures,
#contractPrint.contract-measuring .signatures div { font-size: 14px; }
#contractPrint.contract-measuring .contract-date { margin: 8px 0 0 !important; }
#contractPrint.contract-measuring .signatures { margin-top: 38mm; }

@media print {
  @page {
    size: A4;
    margin: 0;
  }

  html,
  body {
    margin: 0 !important;
    padding: 0 !important;
  }

  #contractPrint {
    inset: 0 !important;
    width: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .contract-page {
    box-sizing: border-box !important;
    font-size: 14px !important;
    height: 297mm !important;
    margin: 0 !important;
    width: 210mm !important;
    padding: 7mm 8mm !important;
    break-after: page !important;
    page-break-after: always !important;
    page-break-inside: avoid !important;
  }

  .contract-page:last-child {
    break-after: auto !important;
    page-break-after: auto !important;
  }

  .contract-page:first-child,
  .contract-header:first-child {
    margin-top: 0 !important;
  }

  .contract-text {
    font-size: 14px !important;
    line-height: 1.18 !important;
  }

  .contract-text p {
    margin: 0 0 7px !important;
  }

  .contract-text ul {
    margin: 0 0 7px 18px !important;
    padding: 0 !important;
  }

  .contract-data {
    margin-bottom: 0 !important;
  }

  .contract-header-gap {
    display: block !important;
    height: 7mm !important;
  }

  .contract-data p {
    font-size: 14px !important;
    line-height: 1.1 !important;
    margin: 3px 0 !important;
  }

  .contract-title,
  .contract-code,
  .contract-date,
  .signatures,
  .signatures div {
    font-size: 14px !important;
  }

  .contract-date {
    margin: 8px 0 0 !important;
  }

  .signatures {
    margin-top: 38mm !important;
  }
}
