.module-page-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:24px;
    margin-bottom:24px
}
.module-page-header h1{
    margin:4px 0 6px;
    color:var(--navy);
    font-size:clamp(1.7rem,3vw,2.35rem)
}
.module-page-header p{margin:0;color:var(--muted)}
.context-chip{
    min-width:125px;
    display:flex;
    flex-direction:column;
    padding:13px 16px;
    border:1px solid #cfe0f3;
    border-radius:13px;
    background:var(--blue-light)
}
.context-chip span{font-size:.7rem;color:var(--muted)}
.context-chip strong{color:var(--navy);font-size:1.2rem}
.cadastro-cards{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px
}
.cadastro-card{
    min-height:210px;
    display:flex;
    flex-direction:column;
    gap:18px;
    padding:24px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
    box-shadow:var(--shadow);
    color:inherit;
    text-decoration:none;
    transition:.18s ease
}
.cadastro-card:hover{
    transform:translateY(-3px);
    border-color:#b8d2ee
}
.cadastro-card-icon{
    width:64px;
    height:64px;
    display:grid;
    place-items:center;
    border-radius:17px;
    background:var(--navy);
    color:#fff;
    font-weight:800
}
.cadastro-card h2{margin:0 0 7px;color:var(--navy)}
.cadastro-card p{margin:0 0 18px;color:var(--muted)}
.cadastro-card strong{color:var(--blue);font-size:.8rem}
.table-card,.data-form{
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
    box-shadow:var(--shadow)
}
.table-card{overflow:hidden}
.data-table{width:100%;border-collapse:collapse}
.data-table th,.data-table td{
    padding:15px 18px;
    border-bottom:1px solid var(--line);
    text-align:left
}
.data-table th{
    background:#f8fafc;
    color:var(--muted);
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.07em
}
.data-table tbody tr:hover{background:#fbfdff}
.actions-column{width:90px}
.table-link{color:var(--blue);font-weight:700;text-decoration:none}
.status-badge{
    display:inline-flex;
    padding:4px 8px;
    border-radius:999px;
    background:#eef1f4;
    color:var(--muted);
    font-size:.7rem;
    font-weight:700
}
.status-active{background:#eaf6ec;color:var(--success)}
.empty-table{
    padding:55px 25px;
    text-align:center
}
.empty-table h2{margin:0 0 7px;color:var(--navy)}
.empty-table p{margin:0 0 20px;color:var(--muted)}
.data-form{padding:24px}
.form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px
}
.form-group{display:flex;flex-direction:column;gap:7px}
.form-group label{font-weight:700;font-size:.82rem;color:var(--text)}
.form-control{
    width:100%;
    min-height:44px;
    padding:10px 12px;
    border:1px solid #cfd9e5;
    border-radius:9px;
    background:#fff;
    outline:none
}
.form-control:focus{
    border-color:var(--blue);
    box-shadow:0 0 0 3px rgba(30,107,214,.12)
}
.checkbox-group{justify-content:flex-end}
.checkbox-group .form-control{
    width:auto;
    min-height:auto;
    align-self:flex-start
}
.field-error{color:#a92323;font-size:.75rem}
.form-errors{
    margin-bottom:18px;
    padding:12px 14px;
    border-radius:9px;
    background:#fdecec;
    color:#a92323
}
.form-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid var(--line)
}
.button-secondary{
    background:#fff;
    color:var(--muted);
    border:1px solid var(--line)
}
@media(max-width:900px){
    .cadastro-cards{grid-template-columns:1fr}
    .form-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
    .module-page-header{flex-direction:column}
    .table-card{overflow-x:auto}
    .data-table{min-width:700px}
}
#id_qualificacoes_exigidas {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 10px 28px;
    margin: 0;
    padding: 0;
    list-style: none;
}

#id_qualificacoes_exigidas li {
    margin: 0;
}

#id_qualificacoes_exigidas label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

#id_qualificacoes_exigidas input[type="checkbox"] {
    width: 18px;
    height: 18px;
}

@media (max-width: 768px) {
    #id_qualificacoes_exigidas {
        grid-template-columns: 1fr;
    }
}
/* v0.36.0 — cadastros em lote e dados da escola */
.form-group-full{grid-column:1/-1}
.form-group-full textarea{min-height:110px;resize:vertical}
.form-tip{
    margin-top:18px;
    padding:13px 15px;
    border:1px solid #cfe0f3;
    border-radius:11px;
    background:var(--blue-light);
    color:var(--muted);
    font-size:.82rem;
}
.form-tip strong{color:var(--navy)}
.form-section-title{
    margin:22px 0 14px;
    padding-bottom:9px;
    border-bottom:1px solid var(--line);
}
.form-section-title:first-child{margin-top:0}
.form-section-title h2{margin:0;color:var(--navy);font-size:1.05rem}
.period-config-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin-bottom:22px;
}
.schedule-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.schedule-entry-table{min-width:560px}
.schedule-entry-table td:first-child{width:140px}
.schedule-entry-table input[type="time"]{max-width:220px}
.field-error-block{display:block;margin-top:5px}
.period-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin-bottom:24px;
}
.period-summary-card{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    padding:19px;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    box-shadow:var(--shadow);
}
.period-summary-card span{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.period-summary-card h2{margin:4px 0;color:var(--navy)}
.period-summary-card p{margin:0;color:var(--muted);font-size:.82rem}
.period-table-card{margin-bottom:20px}
.period-table-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:17px 18px;
    border-bottom:1px solid var(--line);
}
.period-table-header h2{margin:3px 0 0;color:var(--navy);font-size:1.12rem}
@media(max-width:900px){
    .period-summary-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
    .period-config-grid{grid-template-columns:1fr}
    .period-summary-card{align-items:flex-start;flex-direction:column}
}


/* v0.43.0 — organização dos dados da escola e ATPC */
.school-teaching-types > ul,
#id_tipos_ensino_form{
    display:grid;
    grid-template-columns:repeat(2,minmax(220px,1fr));
    gap:9px 24px;
    margin:0;
    padding:0;
    list-style:none;
}
#id_tipos_ensino_form li{margin:0}
#id_tipos_ensino_form label{
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:600;
}
#id_tipos_ensino_form input[type="checkbox"]{
    width:18px;
    height:18px;
}
.atpc-config{
    display:grid;
    gap:10px;
    padding:16px;
    border:1px solid var(--line);
    border-radius:12px;
    background:#f8fafc;
}
.atpc-config-heading{
    display:flex;
    flex-direction:column;
    gap:3px;
    margin-bottom:2px;
}
.atpc-config-heading strong{color:var(--navy);font-size:.95rem}
.atpc-config-heading small{color:var(--muted)}
.atpc-row{
    display:grid;
    grid-template-columns:minmax(150px,.45fr) minmax(320px,1.55fr);
    gap:16px;
    align-items:start;
}
.atpc-row-heading{
    padding:0 2px;
    color:var(--muted);
    font-size:.76rem;
    font-weight:700;
}
.atpc-row > div{
    display:flex;
    flex-direction:column;
    gap:5px;
}
@media(max-width:700px){
    .school-teaching-types > ul,
    #id_tipos_ensino_form{grid-template-columns:1fr}
    .atpc-row{grid-template-columns:1fr}
    .atpc-row-heading{display:none}
}
