.closing-hero{--subject-color:#176a50;display:flex;align-items:center;justify-content:space-between;gap:2rem;margin:1rem 0 1.1rem;padding:2rem;border-radius:24px;color:#fff;background:linear-gradient(120deg,color-mix(in srgb,var(--subject-color) 92%,#10251e),color-mix(in srgb,var(--subject-color) 70%,#fff));box-shadow:0 18px 50px rgba(20,60,47,.16)}.closing-hero h1{margin:.35rem 0 .25rem;font-size:var(--font-page-title);letter-spacing:-.035em}.closing-hero p{margin:0;opacity:.82}.closing-hero .tag{color:#fff;background:rgba(255,255,255,.15)}.closing-status{display:flex;align-items:center;gap:.85rem;min-width:190px;padding:1rem 1.15rem;border:1px solid rgba(255,255,255,.22);border-radius:18px;background:rgba(255,255,255,.1)}.closing-status>span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;font-weight:800;background:rgba(255,255,255,.16)}.closing-status div{display:flex;flex-direction:column}.closing-status small,.closing-status time{font-size:var(--font-caption);opacity:.75}.closing-status strong{font-size:var(--font-body)}.closing-nav{position:sticky;top:10px;z-index:10;display:flex;gap:.35rem;margin-bottom:1.2rem;padding:.4rem;border:1px solid var(--border-color);border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(24,49,40,.07);backdrop-filter:blur(12px)}.closing-nav a{padding:.7rem 1rem;border-radius:10px;color:var(--text-muted);font-size:var(--font-small);font-weight:700}.closing-nav a:hover{color:var(--primary);background:var(--surface-soft)}.closing-nav span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:.25rem;border-radius:99px;color:#fff;background:var(--primary);font-size:.7rem}.closing-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.2rem}.closing-kpis article{display:flex;flex-direction:column;min-height:126px;padding:1.15rem;border:1px solid var(--border-color);border-top:4px solid #82958e;border-radius:17px;background:#fff}.closing-kpis article.success{border-top-color:#279269}.closing-kpis article.warning{border-top-color:#e49b24}.closing-kpis article.danger{border-top-color:#d05252}.closing-kpis small,.closing-kpis span{color:var(--text-muted);font-size:var(--font-caption)}.closing-kpis strong{margin:.35rem 0;font-size:2rem;line-height:1}.closing-section{margin:1.2rem 0;padding:1.35rem;border:1px solid var(--border-color);border-radius:20px;background:#fff;scroll-margin-top:135px}.closing-section>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.closing-section h2{margin:.25rem 0;font-size:var(--font-section-title)}.closing-section header p{margin:0;color:var(--text-muted);font-size:var(--font-small)}.closing-section>header>a,.secondary-button{padding:.7rem 1rem;border:1px solid var(--primary);border-radius:10px;color:var(--primary);background:#fff;font-weight:700}.assessment-blocks{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.assessment-block{overflow:hidden;border:1px solid var(--border-color);border-radius:16px;background:var(--surface-soft)}.assessment-block>header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border-color);background:#fff}.assessment-block h3{margin:.1rem 0 0;font-size:var(--font-card-title)}.assessment-block header small{color:var(--text-muted)}.assessment-block header>strong{font-size:1.45rem}.assessment-block header>strong span{color:var(--text-muted);font-size:.8rem}.assessment-block.complete{border-color:#acd7c7}.assessment-block.complete>header>strong{color:#187652}.assessment-block.incomplete{border-color:#eac17d}.assessment-block.incomplete>header>strong{color:#a96800}.assessment-block>div{display:flex;flex-direction:column;padding:.45rem}.assessment-block a{display:flex;justify-content:space-between;gap:.7rem;padding:.7rem;border-radius:10px;color:var(--text)}.assessment-block a:hover{background:#fff}.assessment-block a span{display:flex;flex-direction:column;min-width:0}.assessment-block a b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assessment-block a small,.assessment-block>div>p{color:var(--text-muted);font-size:var(--font-caption)}.unassigned-assessments{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:1rem;padding:.85rem;border-radius:12px;color:#8b4a00;background:#fff4df}.unassigned-assessments a{padding:.4rem .6rem;border-radius:8px;color:#8b4a00;background:#fff}.closing-table-wrap{overflow:auto;border:1px solid var(--border-color);border-radius:14px}.closing-table-wrap table{width:100%;border-collapse:collapse;min-width:930px}.closing-table-wrap th{position:sticky;top:0;padding:.75rem;text-align:left;color:var(--text-muted);background:#f5f8f7;font-size:var(--font-caption);text-transform:uppercase;letter-spacing:.04em}.closing-table-wrap td{padding:.8rem .75rem;border-top:1px solid var(--border-color);vertical-align:middle}.closing-table-wrap td>small{display:block;margin-top:.2rem;color:var(--text-muted);font-size:var(--font-caption)}.closing-student{display:flex;align-items:center;gap:.65rem;min-width:210px}.closing-student>span{display:grid;place-items:center;overflow:hidden;width:38px;height:38px;border-radius:50%;color:#fff;background:var(--primary);font-weight:800}.closing-student img{width:100%;height:100%;object-fit:cover}.closing-student div{display:flex;flex-direction:column}.closing-student small{color:var(--text-muted);font-size:var(--font-caption)}.closing-grade,.final-grade{font-size:1.08rem}.final-grade{color:var(--primary)}.grade-empty{color:var(--text-muted);font-size:var(--font-caption)}.grade-pending{color:#a36000;font-weight:750}.result-status{display:inline-flex;padding:.35rem .55rem;border-radius:99px;font-size:var(--font-caption);font-weight:800;white-space:nowrap;background:#edf1ef}.result-status.aprovado{color:#126b49;background:#e4f5ee}.result-status.recuperacao{color:#8a5400;background:#fff1d6}.result-status.risco_freq,.result-status.reprovado_freq,.result-status.reprovado_nota{color:#a03535;background:#fde8e8}.audit-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.audit-columns article{overflow:hidden;border:1px solid var(--border-color);border-radius:15px}.audit-columns article>header{display:flex;align-items:center;gap:.7rem;padding:1rem}.audit-columns article>header>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-weight:900}.audit-columns header div{display:flex;flex-direction:column}.audit-columns header small{font-size:var(--font-caption)}.audit-columns ul{display:flex;flex-direction:column;gap:.55rem;margin:0;padding:0 1rem 1rem;list-style:none}.audit-columns li{padding:.7rem .8rem;border-radius:9px;font-size:var(--font-small);background:#fff}.audit-columns .blockers{border-color:#efc2c2;background:#fff5f5}.audit-columns .blockers header>span{color:#a03333;background:#fbdede}.audit-columns .alerts{border-color:#f0d49e;background:#fff9ec}.audit-columns .alerts header>span{color:#905800;background:#ffebbd}.audit-columns .all-clear{color:#166a4a;background:#e7f6f0}.finalization-panel{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;border-color:#9fd3bf;background:#effaf5}.finalization-panel.blocked{border-color:#edbaba;background:#fff5f5}.finalization-panel>div{display:flex;align-items:center;gap:1rem}.finalization-icon{display:grid;place-items:center;flex:none;width:48px;height:48px;border-radius:50%;color:#fff;background:#20805c;font-size:1.25rem;font-weight:900}.blocked .finalization-icon{background:#bc4747}.finalization-panel h2{margin:0 0 .25rem}.finalization-panel p{margin:0;color:var(--text-muted)}.finalization-panel form{display:flex;align-items:flex-end;flex-direction:column;gap:.7rem}.finalization-panel label{max-width:410px;font-size:var(--font-small)}.finalization-panel button:disabled{cursor:not-allowed;opacity:.45}.primary-button.published{background:#356156}@media(max-width:900px){.closing-kpis{grid-template-columns:repeat(2,1fr)}.assessment-blocks{grid-template-columns:1fr}.audit-columns{grid-template-columns:1fr}.finalization-panel{align-items:stretch;flex-direction:column}.finalization-panel form{align-items:stretch}.closing-nav{overflow:auto}.closing-nav a{white-space:nowrap}}@media(max-width:600px){.closing-hero{align-items:flex-start;flex-direction:column;padding:1.35rem}.closing-status{width:100%}.closing-kpis{grid-template-columns:1fr 1fr}.closing-section{padding:1rem}.closing-section>header{flex-direction:column}}
