/* cabecalhos · isolated reviewed fragment */
/* Portal interno: ritmo de títulos e superfícies. Carregar depois dos CSS existentes. */
@media screen {
#portal .main-content {
  --domus-section-ink: var(--navy, #15105f);
  --domus-section-muted: var(--muted, #72758b);
  --domus-section-line: var(--line, #e5e1ef);
  --domus-section-space: clamp(20px, 2.4vw, 30px);
}

/* Cabeçalho de página usado por Administração, Alunos e relatórios de alunos. */
#portal .main-content:has(> :is(.admin-hub-group,.admin-panel,.admin-csv-intro,.student-directory-panel,.enrollment-report-tabs,.monthly-enrollment-inline)) > .workspace-heading {
  align-items: flex-start;
  gap: 18px;
  margin-bottom: var(--domus-section-space);
}
#portal .main-content:has(> :is(.admin-hub-group,.admin-panel,.admin-csv-intro,.student-directory-panel,.enrollment-report-tabs,.monthly-enrollment-inline)) > .workspace-heading > div:first-child { min-width: 0; }
#portal .main-content:has(> :is(.admin-hub-group,.admin-panel,.admin-csv-intro,.student-directory-panel,.enrollment-report-tabs,.monthly-enrollment-inline)) > .workspace-heading .eyebrow {
  margin: 0 0 8px;
  color: var(--domus-section-muted);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.3;
  letter-spacing: .08em;
  text-transform: uppercase;
}
#portal .main-content:has(> :is(.admin-hub-group,.admin-panel,.admin-csv-intro,.student-directory-panel,.enrollment-report-tabs,.monthly-enrollment-inline)) > .workspace-heading h1 {
  margin: 0 0 8px;
  color: var(--domus-section-ink);
  font-family: Montserrat, sans-serif;
  font-size: 1.65rem;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: -.025em;
}
#portal .main-content:has(> :is(.admin-hub-group,.admin-panel,.admin-csv-intro,.student-directory-panel,.enrollment-report-tabs,.monthly-enrollment-inline)) > .workspace-heading > div:first-child > p:last-child {
  max-width: 72ch;
  margin: 0;
  color: var(--domus-section-muted);
  font-size: 15px;
  line-height: 1.55;
}

/* Grupos e cartões do hub administrativo, sem afetar botões ou formulários. */
#portal .main-content > .admin-hub-group { margin-bottom: 30px; }
#portal .main-content > .admin-hub-group > h2 {
  margin: 0 0 14px;
  color: var(--domus-section-ink);
  font-size: 19px;
  font-weight: 700;
  font-family: 'DM Sans', Arial, sans-serif;
  line-height: 1.3;
  letter-spacing: -.015em;
}
#portal .main-content .admin-cards { gap: 16px; }
#portal .main-content .admin-cards > a.panel,
#portal .main-content .admin-csv-card {
  border-color: var(--domus-section-line);
  border-radius: 16px;
  padding: clamp(18px, 2vw, 24px);
}
#portal .main-content .admin-cards > a.panel > .admin-card-icon { margin-top: 0; }
#portal .main-content .admin-cards > a.panel h3,
#portal .main-content .admin-csv-card h2 {
  margin: 0 0 9px;
  color: var(--domus-section-ink);
  font-size: 19px;
  font-family: 'DM Sans', Arial, sans-serif;
  line-height: 1.3;
  letter-spacing: -.015em;
}
#portal .main-content .admin-cards > a.panel > p,
#portal .main-content .admin-csv-card > p {
  color: var(--domus-section-muted);
  line-height: 1.55;
}

/* Lista de alunos: título da seção e superfície, sem alterar controles/fotos. */
#portal .main-content > .student-directory-panel { border-color: var(--domus-section-line); border-radius: 16px; }
#portal .main-content .student-directory-title h2 {
  color: var(--domus-section-ink);
  font-size: 20px;
  font-family: 'DM Sans', Arial, sans-serif;
  line-height: 1.3;
  letter-spacing: -.015em;
}
#portal .main-content .student-directory-card { border-color: var(--domus-section-line); border-radius: 16px; }

/* RH: somente painéis e cartões do corpo. Diálogos ficam no estilo próprio. */
#portal .main-content .rhw-panel { border-color: var(--domus-section-line); border-radius: 16px; }
#portal .main-content .rhw-panel > .rhw-heading .rhw-eyebrow {
  color: var(--domus-section-muted);
  font-size: 12px;
  line-height: 1.3;
  letter-spacing: .08em;
}
#portal .main-content .rhw-panel > .rhw-heading h2 {
  color: var(--domus-section-ink);
  font-size: clamp(22px, 2vw, 25px);
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 750;
  line-height: 1.25;
  letter-spacing: -.02em;
}
#portal .main-content .rhw-panel > .rhw-heading p:not(.rhw-eyebrow) {
  max-width: 72ch;
  color: var(--domus-section-muted);
  font-size: 15px;
  line-height: 1.55;
}
#portal .main-content .rhw-record-group > h3,
#portal .main-content .rhw-teacher > header h3 {
  color: var(--domus-section-ink);
  font-size: 18px;
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 700;
  line-height: 1.35;
}
#portal .main-content .rhw-teacher { border-color: var(--domus-section-line); border-radius: 16px; }

/* Relatórios embutidos: hierarquia textual, sem tocar métricas, gráficos ou tabelas. */
#portal .main-content .reenrollment-report > header h2 {
  color: var(--domus-section-ink);
  font-size: clamp(21px, 1.9vw, 24px);
  font-family: 'DM Sans', Arial, sans-serif;
  font-weight: 750;
  line-height: 1.3;
  letter-spacing: -.02em;
}
#portal .main-content .monthly-enrollment-inline [data-monthly-result] > h3,
#portal .main-content .reenrollment-report [data-reenrollment-result] > h3 {
  color: var(--domus-section-ink);
  font-size: 18px;
  line-height: 1.35;
}
#portal .main-content .reenrollment-report > header .reenrollment-help {
  max-width: 72ch;
  color: var(--domus-section-muted);
  line-height: 1.55;
}
}

@media screen and (max-width: 700px) {
  #portal .main-content:has(> :is(.admin-hub-group,.admin-panel,.admin-csv-intro,.student-directory-panel,.enrollment-report-tabs,.monthly-enrollment-inline)) > .workspace-heading { gap: 12px; margin-bottom: 20px; }
  #portal .main-content:has(> :is(.admin-hub-group,.admin-panel,.admin-csv-intro,.student-directory-panel,.enrollment-report-tabs,.monthly-enrollment-inline)) > .workspace-heading h1 { font-size: 1.45rem; }
  #portal .main-content .admin-cards { gap: 12px; }
  #portal .main-content .admin-cards > a.panel,
  #portal .main-content .admin-csv-card { padding: 18px; }
  #portal .main-content .rhw-panel > .rhw-heading h2 { font-size: 22px; }
}

/* controles · isolated reviewed fragment */
/* Shared workspace controls. Load after existing module styles. */
@media screen{
.main-content :is(.workspace-actions,.form-actions,.collab-actions,.collab-filters,.student-directory-filters,.admin-pagination):not(dialog *){min-width:0;row-gap:10px}

/* Keep action labels legible without changing primary, status, or destructive colors. */
.main-content :is(.workspace-actions,.form-actions,.collab-actions,.collab-filters,.admin-pagination):not(dialog *) .button:not(dialog *){min-width:0;max-width:100%;line-height:1.35;text-align:center}
.main-content :is(.workspace-panel,.view-filter) .button:not(dialog *):focus-visible,
.main-content :is(.workspace-panel,.view-filter) :is(input:not([type=checkbox]):not([type=radio]),select,textarea):not(dialog *):focus-visible{
  outline:3px solid var(--navy,#15105f);outline-offset:2px
}

/* Direct label/control pairs used by the shared workspace forms. */
.main-content :is(.workspace-panel,.view-filter) label > :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea):not(dialog *){min-width:0;max-width:100%;line-height:1.4}
.main-content :is(.workspace-panel,.view-filter) label > :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea):not([type=color]):not(dialog *){border-radius:10px}
/* Admin photo/profile member dialogs reuse these action rows; leave their headers and close controls to dialogos.css. */
.main-content .admin-dialog :is(.form-actions,.admin-pagination){min-width:0;row-gap:10px}
.main-content .admin-dialog :is(.form-actions,.admin-pagination) .button{min-width:0;max-width:100%;line-height:1.35;text-align:center}
.main-content .admin-dialog :is(.form-actions,.admin-pagination) .button:focus-visible{outline:3px solid var(--navy,#15105f);outline-offset:3px}
}

@media screen and (max-width:720px),screen and (pointer:coarse){
  .main-content :is(.workspace-actions,.form-actions,.collab-actions,.collab-filters,.admin-pagination):not(dialog *) .button:not(dialog *),
  .main-content .student-directory-filters .button:not(dialog *){min-height:44px;white-space:normal;overflow-wrap:anywhere}
  .main-content :is(.workspace-panel,.view-filter) label > :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea):not([type=color]):not(dialog *){min-height:44px;font-size:16px}
  .main-content .collab-toolbar label:not(dialog *){min-width:0;max-width:100%}
  .main-content .collab-toolbar label > input:not(dialog *){min-width:0;width:100%}
  .main-content .student-directory-filters #student-search:not(dialog *){min-width:0;min-height:44px;height:auto;font-size:16px}
  .main-content .admin-dialog :is(.form-actions,.admin-pagination) .button{min-height:44px;white-space:normal;overflow-wrap:anywhere}
}

@media screen and (max-width:430px){
  .main-content :is(.workspace-actions,.form-actions,.collab-actions,.collab-filters,.student-directory-filters,.admin-pagination):not(dialog *){gap:8px}
  .main-content :is(.workspace-actions,.form-actions,.collab-actions,.collab-filters,.student-directory-filters,.admin-pagination):not(dialog *) .button:not(dialog *){flex:1 1 auto}
  .main-content .collab-toolbar label:not(dialog *){flex:1 1 100%}
  .main-content .admin-dialog :is(.form-actions,.admin-pagination){gap:8px}
  .main-content .admin-dialog :is(.form-actions,.admin-pagination) .button{flex:1 1 auto}
}

/* dialogos · isolated reviewed fragment */
/* Load after each module stylesheet. Deliberately limited to four existing surfaces. */
@media screen{
:is(.student-detail-dialog,.admin-dialog,.rhw-dialog,.pa-dialog){
  --du-dialog-ink:var(--ink,#242743);
  --du-dialog-line:var(--line,#e5e7f0);
  --du-dialog-focus:var(--navy,#15105f);
  box-sizing:border-box;
  max-height:calc(100dvh - 32px);
  border:1px solid var(--du-dialog-line);
  border-radius:16px;
  background:#fff;
  color:var(--du-dialog-ink);
  font-family:'DM Sans',Arial,sans-serif;
  box-shadow:0 24px 80px #10162f38;
  overflow:auto;
  overscroll-behavior:contain;
}
:is(.student-detail-dialog,.admin-dialog,.rhw-dialog)::backdrop{background:#10162f99}
.pa-dialog-backdrop{background:#10162f99}

/* The student header already has its own padding and sticky position. */
.student-detail-dialog>.student-detail-heading,
.admin-dialog>header,.admin-dialog>form>header,
.rhw-dialog>header,.rhw-dialog>form>header,
.pa-dialog>header{
  position:sticky;
  top:0;
  z-index:3;
  min-width:0;
  background:#fff;
  border-bottom:1px solid var(--du-dialog-line);
}
.student-detail-dialog>.student-detail-heading{padding:20px 26px}
.admin-dialog>header,.admin-dialog>form>header{top:-26px;margin:-26px -26px 20px;padding:20px 26px}
.rhw-dialog>header,.rhw-dialog>form>header{margin:-24px -24px 18px;padding:18px 24px}
.pa-dialog>header{margin:-26px -26px 18px;padding:18px 26px}

:is(.student-detail-dialog,.admin-dialog,.rhw-dialog,.pa-dialog) :is(h2,h3){overflow-wrap:anywhere}
:is(.student-detail-dialog,.admin-dialog,.rhw-dialog,.pa-dialog) :is(p,dd,li){overflow-wrap:anywhere;line-height:1.55}
.student-detail-dialog :is([data-student-detail-close]),
.admin-dialog>header [data-admin-close],
.admin-dialog>form>header [data-admin-close],
.rhw-dialog .rhw-heading>.rhw-close,
.pa-dialog .pa-close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:none;
  min-width:44px;
  min-height:44px;
  padding:8px 12px;
  border:1px solid var(--du-dialog-line);
  border-radius:10px;
  background:#f5f6fa;
  color:var(--navy,#15105f);
  font:700 14px/1.2 'DM Sans',Arial,sans-serif;
}
.student-detail-dialog [data-student-detail-close],
.rhw-dialog .rhw-heading>.rhw-close,
.pa-dialog .pa-close{font-size:20px}
.student-detail-dialog [data-student-detail-close]:hover,
.admin-dialog>header [data-admin-close]:hover,
.admin-dialog>form>header [data-admin-close]:hover,
.rhw-dialog .rhw-heading>.rhw-close:hover,
.pa-dialog .pa-close:hover{background:#eceefa}
:is(.student-detail-dialog,.admin-dialog,.rhw-dialog,.pa-dialog) :is(button,input,select,textarea):focus-visible{
  outline:3px solid var(--du-dialog-focus);
  outline-offset:3px;
}

}
@media screen and (max-width:650px){
  :is(.student-detail-dialog,.admin-dialog,.rhw-dialog,.pa-dialog){max-height:calc(100dvh - 16px);border-radius:16px}
  .student-detail-dialog{width:calc(100vw - 16px)}
  .admin-dialog,.rhw-dialog{width:calc(100% - 16px);padding:18px}
  .pa-dialog-backdrop{padding:8px}
  .pa-dialog{width:100%;padding:18px}
  .student-detail-dialog>.student-detail-heading{padding:16px 18px}
  .admin-dialog>header,.admin-dialog>form>header{top:-18px;margin:-18px -18px 18px;padding:16px 18px}
  .rhw-dialog>header,.rhw-dialog>form>header{margin:-18px -18px 16px;padding:16px 18px}
  .pa-dialog>header{margin:-18px -18px 16px;padding:16px 18px}
  :is(.student-detail-dialog,.admin-dialog,.rhw-dialog,.pa-dialog) h2{font-size:clamp(19px,5vw,23px);line-height:1.3}
}
