/*
 * LexNow Escolar — design system compartilhado.
 * Tokens auditados do Stitch, adaptados para Django/HTMX e white-label.
 */
:root {
    --cor-fundo: #f7f9fb;
    --cor-superficie: #fff;
    --cor-superficie-baixa: #f2f4f6;
    --cor-superficie-media: #eceef0;
    --cor-borda: #dfe3e8;
    --cor-borda-forte: #c6cbd2;
    --cor-muted: #667085;
    --cor-texto-forte: #191c1e;
    --cor-acao: color-mix(in srgb, var(--cor-secundaria, #0d9488) 78%, #003d38);
    --cor-sucesso-bg: #dcfce7;
    --cor-sucesso-texto: #166534;
    --cor-info-bg: #dbeafe;
    --cor-info-texto: #1e40af;
    --cor-aviso-bg: #fef3c7;
    --cor-aviso-texto: #92400e;
    --cor-erro-bg: #fee2e2;
    --cor-erro-texto: #b42318;
    --fonte-base: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    --fonte-mono: ui-monospace, "SFMono-Regular", Consolas, monospace;
    --fonte-tamanho-base: 14px;
    --espaco-1: 4px;
    --espaco-2: 8px;
    --espaco-3: 12px;
    --espaco-4: 16px;
    --espaco-5: 20px;
    --espaco-6: 24px;
    --espaco-8: 32px;
    --espaco-10: 40px;
    --espaco-12: 48px;
    --raio-sm: 6px;
    --raio-md: 8px;
    --raio-lg: 12px;
    --raio-xl: 16px;
    --raio-pill: 999px;
    --sombra-sm: 0 1px 2px rgba(15, 23, 42, .05);
    --sombra-md: 0 10px 24px rgba(15, 23, 42, .12);
    --largura-sidebar: 280px;
    --largura-sidebar-recolhida: 84px;
    --altura-topbar: 68px;
    --largura-conteudo: 1440px;
}

/* Funil de admissões — Kanban operacional e compacto. */
.admissions-page { min-width: 0; }
.admissions-header { align-items: end; margin-bottom: 22px; }
.admissions-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}
.admissions-metrics article {
    min-width: 0;
    padding: 15px 17px;
    border: 1px solid var(--cor-borda);
    border-radius: 12px;
    background: var(--cor-superficie);
    box-shadow: 0 1px 2px rgb(15 23 42 / 4%);
}
.admissions-metrics article::before {
    content: "";
    display: block;
    width: 22px;
    height: 3px;
    margin-bottom: 10px;
    border-radius: 999px;
    background: var(--cor-primaria);
}
.admissions-metrics article.is-alert::before { background: #c2410c; }
.admissions-metrics span,
.admissions-metrics small { display: block; color: var(--cor-muted); }
.admissions-metrics span {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.admissions-metrics strong { display: block; margin: 3px 0 1px; font-size: 25px; line-height: 1.15; }
.admissions-metrics small { font-size: 12px; }
.admissions-filters {
    display: grid;
    grid-template-columns: minmax(240px, 1.6fr) repeat(5, minmax(125px, .7fr));
    gap: 11px;
    align-items: end;
    padding: 14px;
    border: 1px solid var(--cor-borda);
    border-radius: 12px;
    background: var(--cor-superficie);
}
.admissions-filters > div { min-width: 0; }
.admissions-filters label:not(.admissions-my-filter) {
    display: block;
    margin: 0 0 5px;
    color: var(--cor-texto);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.admissions-filters input[type="search"],
.admissions-filters select {
    width: 100%;
    min-height: 38px;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    color: var(--cor-texto);
    font: inherit;
    font-size: 13px;
}
.admissions-filters input:focus,
.admissions-filters select:focus { outline: 2px solid rgb(13 148 136 / 18%); border-color: var(--cor-primaria); }
.admissions-my-filter {
    display: flex;
    grid-column: 1 / span 2;
    gap: 8px;
    align-items: center;
    min-height: 34px;
    font-size: 12px;
    font-weight: 700;
}
.admissions-filter-actions {
    display: flex;
    grid-column: 6 / 7;
    gap: 11px;
    align-items: center;
    justify-content: flex-end;
}
.admissions-filter-actions .botao { min-height: 36px; padding: 7px 13px; white-space: nowrap; }
.admissions-filter-actions a:not(.botao) { color: var(--cor-muted); font-size: 12px; font-weight: 700; }
.admissions-board-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 17px 1px 9px;
    color: var(--cor-muted);
    font-size: 12px;
}
.admissions-board-heading strong { color: var(--cor-texto); }
.admissions-board-heading p { margin: 0; }
.admissions-board {
    display: grid;
    grid-auto-columns: minmax(260px, 292px);
    grid-auto-flow: column;
    gap: 12px;
    overflow-x: auto;
    padding: 0 1px 14px;
    scroll-snap-type: x proximity;
    scrollbar-color: #94a3b8 transparent;
}
.admissions-column {
    display: flex;
    flex-direction: column;
    min-height: 315px;
    max-height: calc(100vh - 365px);
    overflow: hidden;
    border: 1px solid var(--cor-borda);
    border-radius: 12px;
    background: #f1f5f9;
    scroll-snap-align: start;
}
.admissions-column > header {
    display: flex;
    flex: 0 0 auto;
    justify-content: space-between;
    align-items: center;
    padding: 12px 13px;
    border-bottom: 1px solid var(--cor-borda);
    background: #fff;
}
.admissions-column > header > div { display: flex; gap: 8px; align-items: center; min-width: 0; }
.admissions-column h2 { margin: 0; overflow: hidden; font-size: 13px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.stage-indicator { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #64748b; }
.stage-visita .stage-indicator { background: #2563eb; }
.stage-proposta .stage-indicator { background: #7c3aed; }
.stage-reserva .stage-indicator { background: #d97706; }
.stage-convertida .stage-indicator { background: #059669; }
.stage-perdida .stage-indicator { background: #dc2626; }
.admissions-count {
    min-width: 22px;
    padding: 2px 6px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    font-size: 11px;
    font-weight: 800;
    text-align: center;
}
.admissions-column-body { display: grid; gap: 9px; overflow-y: auto; padding: 9px; }
.admissions-card { border: 1px solid #dbe2ea; border-radius: 10px; background: #fff; box-shadow: 0 1px 2px rgb(15 23 42 / 4%); }
.admissions-card:hover { border-color: #94a3b8; box-shadow: 0 5px 14px rgb(15 23 42 / 8%); transform: translateY(-1px); }
.admissions-card-main { display: block; padding: 12px; color: inherit; text-decoration: none; }
.admissions-card-top { display: flex; gap: 10px; justify-content: space-between; align-items: start; }
.admissions-card-top strong { overflow: hidden; font-size: 13px; line-height: 1.35; text-overflow: ellipsis; }
.admissions-card-top > span { flex: 0 0 auto; color: #64748b; font-size: 10px; font-weight: 700; }
.admissions-card-main > p { margin: 3px 0 11px; color: #64748b; font-size: 11px; }
.admissions-card dl { display: grid; gap: 5px; margin: 0; }
.admissions-card dl div { display: grid; grid-template-columns: 67px minmax(0, 1fr); gap: 7px; }
.admissions-card dt { color: #94a3b8; font-size: 10px; }
.admissions-card dd { margin: 0; overflow: hidden; color: #334155; font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.admissions-next-action { margin-top: 11px; padding: 8px 9px; border-radius: 7px; background: #eff6ff; }
.admissions-next-action span,
.admissions-next-action strong,
.admissions-next-action small { display: block; }
.admissions-next-action span { color: #1d4ed8; font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.admissions-next-action strong { margin-top: 2px; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.admissions-next-action small { margin-top: 1px; color: #64748b; font-size: 9px; }
.admissions-next-action.is-overdue { background: #fff1f2; }
.admissions-next-action.is-overdue span { color: #be123c; }
.admissions-next-action.is-empty { background: #f8fafc; color: #94a3b8; font-size: 10px; }
.admissions-column-empty { padding: 26px 12px; color: #64748b; font-size: 11px; line-height: 1.5; text-align: center; }
.admissions-load-more { display: block; flex: 0 0 auto; padding: 9px; border-top: 1px solid var(--cor-borda); background: #fff; color: var(--cor-primaria); font-size: 11px; font-weight: 800; text-align: center; text-decoration: none; }
.admissions-pagination { display: flex; flex: 0 0 auto; justify-content: space-between; align-items: center; padding: 9px 11px; border-top: 1px solid var(--cor-borda); background: #fff; color: #64748b; font-size: 10px; }
.admissions-pagination div { display: flex; gap: 10px; }
.admissions-pagination a { font-weight: 800; text-decoration: none; }
.admissions-empty {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    padding: 34px;
    border: 1px solid var(--cor-borda);
    border-radius: 14px;
    background: #fff;
}
.admissions-empty-mark { display: grid; width: 54px; height: 54px; place-items: center; border-radius: 14px; background: #ccfbf1; color: #0f766e; font-size: 16px; font-weight: 900; }
.admissions-empty h2 { margin: 2px 0 5px; font-size: 20px; }
.admissions-empty p:not(.page-eyebrow) { max-width: 680px; margin: 0; color: var(--cor-muted); }
.admissions-empty.compact-empty { margin-top: 16px; padding: 24px; }

@media (max-width: 1180px) {
    .admissions-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .admissions-filter-search { grid-column: span 2; }
    .admissions-my-filter { grid-column: 1 / span 2; }
    .admissions-filter-actions { grid-column: 3; }
}
@media (max-width: 760px) {
    .admissions-header { align-items: stretch; }
    .admissions-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admissions-filters { grid-template-columns: 1fr 1fr; }
    .admissions-filter-search { grid-column: 1 / -1; }
    .admissions-my-filter { grid-column: 1 / -1; }
    .admissions-filter-actions { grid-column: 1 / -1; justify-content: flex-start; }
    .admissions-board-heading p { display: none; }
    .admissions-column { max-height: 62vh; }
    .admissions-empty { grid-template-columns: auto 1fr; padding: 22px; }
    .admissions-empty .botao { grid-column: 1 / -1; width: 100%; }
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body {
    min-height: 100vh;
    margin: 0;
    color: var(--cor-texto, var(--cor-texto-forte));
    background: var(--cor-fundo);
    font: var(--fonte-tamanho-base)/1.5 var(--fonte-base);
    -webkit-font-smoothing: antialiased;
}
body.no-scroll { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: var(--cor-acao); text-underline-offset: 2px; }
img { max-width: 100%; }
svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--cor-acao) 35%, transparent);
    outline-offset: 2px;
}
::selection { background: color-mix(in srgb, var(--cor-secundaria) 28%, transparent); }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: var(--espaco-4); font-size: 28px; line-height: 1.2; letter-spacing: -.02em; }
h2 { margin-bottom: var(--espaco-3); font-size: 20px; line-height: 1.3; }
h3 { margin-bottom: var(--espaco-2); font-size: 16px; line-height: 1.4; }
small, .caption { color: var(--cor-muted); font-size: 12px; }

/* Marca e páginas públicas */
.brand {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--espaco-3);
    color: inherit;
    text-decoration: none;
}
.brand img, .brand-mark {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: var(--raio-md);
    object-fit: contain;
}
.brand-mark {
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(145deg, var(--cor-primaria), var(--cor-acao));
    font-size: 18px;
    font-weight: 800;
}
.brand strong, .brand small { display: block; }
.brand strong { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.brand small { overflow: hidden; margin-top: 1px; text-overflow: ellipsis; white-space: nowrap; }
.public-header {
    min-height: 72px;
    display: flex;
    align-items: center;
    padding: var(--espaco-4) clamp(20px, 5vw, 72px);
    background: var(--cor-superficie);
    border-bottom: 1px solid var(--cor-borda);
}
.brand-public strong { font-size: 17px; }
.public-main {
    width: min(100% - 32px, 1120px);
    margin: clamp(32px, 8vh, 80px) auto;
}
.login-card { width: min(100%, 420px); margin: 0 auto; }
.login-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(340px,420px); gap: clamp(40px,8vw,110px); align-items: center; min-height: 560px; }
.login-intro { max-width: 650px; }
.login-intro h1 { max-width: 620px; font-size: clamp(32px,4vw,48px); }
.login-intro > p:not(.page-eyebrow) { max-width: 590px; color: var(--cor-muted); font-size: 17px; }
.login-benefits { display: grid; gap: var(--espaco-3); margin: var(--espaco-6) 0 0; padding: 0; list-style: none; }
.login-benefits li { position: relative; padding-left: 28px; }
.login-benefits li::before { position: absolute; left: 0; content: "✓"; color: var(--cor-acao); font-weight: 800; }
.login-heading { display: flex; gap: var(--espaco-3); align-items: center; margin-bottom: var(--espaco-5); }
.login-heading h2, .login-heading p { margin-bottom: 0; }
.login-heading p { color: var(--cor-muted); }
.password-field { position: relative; }
.password-field input { padding-right: 74px; }
.password-toggle { position: absolute; top: 50%; right: 7px; min-height: 30px; padding: 4px 8px; color: var(--cor-acao); background: transparent; transform: translateY(-50%); font-size: 12px; }
.password-toggle:active { transform: translateY(-50%); }
.turnstile-container {
    display: grid;
    justify-items: center;
    gap: var(--espaco-2);
    margin-top: var(--espaco-5);
}
.turnstile-container p {
    margin: 0;
    color: var(--cor-muted);
    font-size: 11px;
    text-align: center;
}
.login-submit { width: 100%; margin-top: var(--espaco-5); }
.login-support { margin: var(--espaco-5) 0 0; color: var(--cor-muted); font-size: 12px; text-align: center; }

/* Primeiro acesso e definição obrigatória de senha */
.password-setup-body {
    background:
        radial-gradient(circle at 8% 14%, color-mix(in srgb, var(--cor-secundaria) 11%, transparent), transparent 34%),
        radial-gradient(circle at 92% 88%, color-mix(in srgb, var(--cor-primaria) 8%, transparent), transparent 30%),
        var(--cor-fundo);
}
.password-setup-body .public-main { width: min(100% - 32px, 1080px); margin-block: clamp(28px,6vh,64px); }
.password-setup-layout {
    min-height: calc(100vh - 200px);
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(380px, 520px);
    gap: clamp(36px,7vw,88px);
    align-items: center;
}
.password-setup-intro { max-width: 480px; }
.password-setup-intro h1 { max-width: 470px; font-size: clamp(32px,4vw,46px); line-height: 1.08; }
.password-setup-intro > p:not(.page-eyebrow) { color: var(--cor-muted); font-size: 17px; }
.security-illustration {
    width: 76px;
    height: 76px;
    display: grid;
    place-items: center;
    margin-bottom: var(--espaco-6);
    color: #fff;
    background: linear-gradient(145deg, var(--cor-primaria), var(--cor-acao));
    border-radius: 24px;
    box-shadow: 0 18px 36px color-mix(in srgb, var(--cor-primaria) 24%, transparent);
}
.security-illustration svg { width: 46px; height: 46px; stroke-width: 2.3; }
.security-benefits { display: grid; gap: var(--espaco-3); margin: var(--espaco-6) 0 0; padding: 0; list-style: none; }
.security-benefits li { position: relative; padding-left: 30px; color: var(--cor-texto-forte); font-weight: 600; }
.security-benefits li::before {
    position: absolute;
    left: 0;
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    content: "✓";
    color: var(--cor-sucesso-texto);
    background: var(--cor-sucesso-bg);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 900;
}
.password-setup-card { width: 100%; padding: clamp(24px,4vw,38px); box-shadow: 0 24px 64px rgba(15,23,42,.12); }
.password-setup-heading { display: flex; gap: var(--espaco-4); align-items: flex-start; margin-bottom: var(--espaco-6); }
.password-setup-heading h2 { margin-bottom: var(--espaco-1); font-size: 24px; }
.password-setup-heading p { margin: 0; color: var(--cor-muted); }
.security-mini-icon {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: grid;
    place-items: center;
    color: var(--cor-acao);
    background: color-mix(in srgb, var(--cor-secundaria) 13%, white);
    border-radius: var(--raio-lg);
}
.security-mini-icon svg { width: 24px; height: 24px; }
.password-setup-form { display: grid; gap: var(--espaco-5); }
.password-setup-form .form-field { margin: 0; }
.field-label-row { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-3); }
.field-status { color: var(--cor-muted); font-size: 12px; font-weight: 700; }
.password-setup-form .password-field input { min-height: 48px; }
.password-strength { height: 5px; margin-top: var(--espaco-2); overflow: hidden; background: var(--cor-superficie-media); border-radius: var(--raio-pill); }
.password-strength span { width: 0; height: 100%; display: block; background: var(--cor-erro-texto); border-radius: inherit; transition: width .2s ease, background .2s ease; }
.password-strength span[data-score="3"] { background: #d97706; }
.password-strength span[data-score="4"], .password-strength span[data-score="5"] { background: var(--cor-sucesso-texto); }
.password-requirements { padding: var(--espaco-4); background: var(--cor-superficie-baixa); border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); }
.password-requirements p { margin: 0 0 var(--espaco-2); font-weight: 700; }
.password-requirements ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--espaco-2) var(--espaco-4); margin: 0 0 var(--espaco-3); padding: 0; list-style: none; }
.password-requirements li { position: relative; padding-left: 22px; color: var(--cor-muted); font-size: 13px; }
.password-requirements li::before { position: absolute; left: 0; content: "○"; font-weight: 800; }
.password-requirements li.is-valid { color: var(--cor-sucesso-texto); }
.password-requirements li.is-valid::before { content: "✓"; }
.confirmation-status { margin: var(--espaco-2) 0 0; color: var(--cor-muted); font-size: 12px; }
.confirmation-status.is-valid { color: var(--cor-sucesso-texto); }
.confirmation-status.is-invalid { color: var(--cor-erro-texto); }
.password-setup-submit { width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: center; gap: var(--espaco-2); }
.password-setup-submit svg { width: 18px; height: 18px; }
.password-privacy-note { display: flex; gap: var(--espaco-2); align-items: flex-start; margin: var(--espaco-5) 0 0; color: var(--cor-muted); font-size: 12px; }
.password-privacy-note svg { width: 18px; height: 18px; flex: 0 0 18px; color: var(--cor-acao); }

/* App shell */
.app-shell { min-height: 100vh; }
.app-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 60;
    width: var(--largura-sidebar);
    display: flex;
    flex-direction: column;
    color: #e2e8f0;
    background: color-mix(in srgb, var(--cor-primaria, #0f172a) 88%, #020617);
    border-right: 1px solid rgba(255,255,255,.08);
    transition: width .2s ease, transform .2s ease;
}
.sidebar-brand {
    min-height: var(--altura-topbar);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--espaco-2);
    padding: var(--espaco-3) var(--espaco-4);
    border-bottom: 1px solid rgba(255,255,255,.1);
}
.sidebar-brand .brand { min-width: 0; flex: 1; }
.sidebar-brand .brand small { color: #94a3b8; }
.sidebar-brand .brand img { padding: 3px; background: #fff; }
.sidebar-close { display: none; color: #cbd5e1; }
.sidebar-nav {
    flex: 1;
    overflow-y: auto;
    padding: var(--espaco-4) var(--espaco-3);
    scrollbar-width: thin;
}
.nav-group + .nav-group { margin-top: var(--espaco-6); }
.nav-group h2 {
    margin: 0 0 var(--espaco-2);
    padding: 0 var(--espaco-3);
    color: #94a3b8;
    font-size: 10px;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.nav-link {
    width: 100%;
    min-height: 42px;
    display: flex;
    align-items: center;
    gap: var(--espaco-3);
    margin: 2px 0;
    padding: 9px var(--espaco-3);
    color: #cbd5e1;
    background: transparent;
    border: 0;
    border-radius: var(--raio-md);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: color .15s ease, background .15s ease;
}
.nav-link svg { flex: 0 0 20px; }
.nav-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav-link:hover { color: #fff; background: rgba(255,255,255,.08); }
.nav-link.ativo {
    color: #e6fffb;
    background: color-mix(in srgb, var(--cor-secundaria) 35%, transparent);
    box-shadow: inset 3px 0 var(--cor-secundaria);
    font-weight: 700;
}
.sidebar-footer { padding: var(--espaco-3); border-top: 1px solid rgba(255,255,255,.1); }
.app-frame {
    min-height: 100vh;
    padding-left: var(--largura-sidebar);
    transition: padding-left .2s ease;
}
.app-topbar {
    position: sticky;
    top: 0;
    z-index: 40;
    height: var(--altura-topbar);
    display: grid;
    grid-template-columns: minmax(180px, auto) minmax(260px, 620px) auto;
    align-items: center;
    gap: var(--espaco-5);
    padding: 0 var(--espaco-6);
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid var(--cor-borda);
    backdrop-filter: blur(12px);
}
.topbar-leading, .topbar-actions, .breadcrumb, .tenant-context {
    min-width: 0;
    display: flex;
    align-items: center;
}
.mobile-menu-button { display: none; }
.breadcrumb { gap: var(--espaco-2); color: var(--cor-muted); font-size: 13px; }
.breadcrumb svg { width: 14px; height: 14px; }
.breadcrumb strong { overflow: hidden; color: var(--cor-texto-forte); text-overflow: ellipsis; white-space: nowrap; }
.global-search { position: relative; width: 100%; }
.global-search svg {
    position: absolute;
    top: 50%;
    left: 14px;
    color: var(--cor-muted);
    transform: translateY(-50%);
}
.global-search input {
    height: 42px;
    padding: 0 16px 0 44px;
    background: var(--cor-superficie-baixa);
    border-color: transparent;
    border-radius: var(--raio-pill);
}
.topbar-actions { justify-content: flex-end; gap: var(--espaco-3); }
.tenant-context { max-width: 170px; align-items: flex-end; flex-direction: column; }
.tenant-context strong, .tenant-context small {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tenant-context strong { font-size: 12px; }
.icon-button {
    width: 40px;
    height: 40px;
    min-height: 40px;
    flex: 0 0 40px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    color: var(--cor-muted);
    background: transparent;
    border: 0;
    border-radius: var(--raio-md);
    cursor: pointer;
}
.icon-button:hover { color: var(--cor-texto-forte); background: var(--cor-superficie-media); }
.user-menu { position: relative; }
.user-menu summary {
    display: flex;
    align-items: center;
    gap: var(--espaco-2);
    padding: 4px;
    border-radius: var(--raio-md);
    cursor: pointer;
    list-style: none;
}
.user-menu summary::-webkit-details-marker { display: none; }
.user-menu summary:hover { background: var(--cor-superficie-baixa); }
.user-menu summary > svg { width: 14px; height: 14px; color: var(--cor-muted); }
.avatar {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--cor-primaria);
    border-radius: 50%;
    font-weight: 700;
}
.avatar-photo { display: block; object-fit: cover; }
.user-menu-copy { max-width: 140px; }
.user-menu-copy strong, .user-menu-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-menu-copy strong { font-size: 13px; }
.user-menu-panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 210px;
    padding: var(--espaco-2);
    background: var(--cor-superficie);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-lg);
    box-shadow: var(--sombra-md);
}
.user-menu-panel a, .user-menu-panel button { display: block; width: 100%; min-height: 0; padding: 9px 10px; color: var(--cor-texto-forte); background: transparent; border-radius: var(--raio-md); font: inherit; text-align: left; text-decoration: none; }
.user-menu-panel a:hover, .user-menu-panel button:hover { color: var(--cor-texto-forte); background: var(--cor-superficie-baixa); }
.user-menu-panel form { margin: 0; }
.app-main {
    width: min(100%, calc(var(--largura-conteudo) + 2 * var(--espaco-6)));
    min-height: calc(100vh - var(--altura-topbar));
    margin: 0 auto;
    padding: var(--espaco-8) var(--espaco-6) var(--espaco-12);
}
.sidebar-backdrop {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: none;
    background: rgba(15,23,42,.55);
    border: 0;
}
.sidebar-collapsed .app-sidebar { width: var(--largura-sidebar-recolhida); }
.sidebar-collapsed .app-frame { padding-left: var(--largura-sidebar-recolhida); }
.sidebar-collapsed .brand-copy,
.sidebar-collapsed .nav-group h2,
.sidebar-collapsed .nav-link span { display: none; }
.sidebar-collapsed .sidebar-brand { justify-content: center; }
.sidebar-collapsed .nav-link { justify-content: center; }

/* Componentes */
.card {
    background: var(--cor-superficie);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-lg);
    padding: var(--espaco-6);
    box-shadow: var(--sombra-sm);
}
.card + .card { margin-top: var(--espaco-5); }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--espaco-4); margin-bottom: var(--espaco-4); }
.section-heading h2 { margin-bottom: 2px; }
.section-heading p { margin-bottom: 0; color: var(--cor-muted); }
.page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--espaco-5);
    margin-bottom: var(--espaco-6);
}
.page-header-copy { max-width: 800px; }
.page-eyebrow { margin-bottom: var(--espaco-2); color: var(--cor-acao); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.page-description { margin: 0; color: var(--cor-muted); font-size: 15px; }
.acoes { display: flex; flex-wrap: wrap; gap: var(--espaco-2); }
.page-tabs {
    display: flex;
    align-items: flex-end;
    gap: 30px;
    margin: 30px 0 24px;
    padding: 0 4px;
    border-bottom: 1px solid var(--cor-borda);
}
.page-tabs a {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 4px 12px;
    color: var(--cor-muted);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: color .15s ease;
}
.page-tabs a:hover { color: var(--cor-acao); }
.page-tabs a.ativo { color: var(--cor-acao); }
.page-tabs a.ativo::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 3px;
    content: "";
    background: var(--cor-acao);
    border-radius: 3px 3px 0 0;
}
.student-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--espaco-4);
    margin: 0 0 24px;
}
.student-kpi {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 96px;
    padding: var(--espaco-4) var(--espaco-5);
    background: var(--cor-superficie);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-lg);
    box-shadow: var(--sombra-sm);
}
.student-kpi > span:last-child { display: grid; gap: 2px; }
.student-kpi small { color: var(--cor-muted); font-size: 11px; font-weight: 750; letter-spacing: .065em; text-transform: uppercase; }
.student-kpi strong { color: var(--cor-texto-forte); font-size: 25px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.student-kpi-icon { width: 44px; height: 44px; display: inline-grid; flex: 0 0 44px; place-items: center; border-radius: 50%; font-size: 29px; font-weight: 700; }
.student-kpi-icon svg { width: 22px; height: 22px; }
.student-kpi-icon.tone-teal { color: var(--cor-acao); background: color-mix(in srgb, var(--cor-secundaria) 18%, white); }
.student-kpi-icon.tone-green { color: var(--cor-sucesso-texto); background: var(--cor-sucesso-bg); }
.student-kpi-icon.tone-amber { color: var(--cor-aviso-texto); background: var(--cor-aviso-bg); }
.student-kpi-icon.tone-red { color: var(--cor-erro-texto); background: var(--cor-erro-bg); }
.search-card { display: grid; gap: var(--espaco-5); }
.search-card .search-toolbar { padding-bottom: var(--espaco-5); border-bottom: 1px solid var(--cor-borda); }
.student-status-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.student-status-filters > span { margin-right: 4px; color: var(--cor-muted); font-size: 11px; font-weight: 750; letter-spacing: .065em; text-transform: uppercase; }
.status-filter { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 5px 13px; color: var(--cor-texto); background: var(--cor-superficie-baixa); border: 0; border-radius: var(--raio-pill); font-size: 12px; font-weight: 700; text-decoration: none; box-shadow: none; }
.status-filter:hover { color: var(--cor-acao); background: color-mix(in srgb, var(--cor-secundaria) 13%, white); filter: none; }
.status-filter.ativo { color: #fff; background: var(--cor-acao); }
.matricula-code { display: inline-flex; padding: 3px 7px; color: var(--cor-texto-forte); background: var(--cor-superficie-baixa); border-radius: var(--raio-sm); font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; font-variant-numeric: tabular-nums; }
.alunos-table td:nth-child(5), .alunos-table th:nth-child(5) { text-align: center; }
.student-row-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 4px; }
.icon-action { position: relative; display: inline-grid; width: 34px; height: 34px; place-items: center; color: var(--cor-muted); border-radius: var(--raio-md); transition: color .15s ease, background .15s ease; }
.icon-action svg { width: 19px; height: 19px; }
.icon-action:hover { color: var(--cor-acao); background: color-mix(in srgb, var(--cor-secundaria) 13%, white); }
.icon-action:focus-visible { color: var(--cor-acao); outline: 2px solid var(--cor-acao); outline-offset: 2px; }
button.icon-action[data-quick-student] {
    min-height: 34px;
    padding: 0;
    color: var(--cor-muted);
    background: transparent;
    border: 0;
    box-shadow: none;
}
button.icon-action[data-quick-student]:hover {
    color: var(--cor-acao);
    background: color-mix(in srgb, var(--cor-secundaria) 13%, white);
    filter: none;
}
.icon-action::after { position: absolute; right: 0; bottom: calc(100% + 7px); z-index: 10; width: max-content; max-width: 180px; padding: 6px 8px; color: #fff; content: attr(data-tooltip); background: var(--cor-texto-forte); border-radius: var(--raio-sm); font-size: 11px; font-weight: 700; line-height: 1.2; opacity: 0; pointer-events: none; transform: translateY(3px); transition: opacity .15s ease, transform .15s ease; }
.icon-action:hover::after, .icon-action:focus-visible::after { opacity: 1; transform: translateY(0); }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.search-card { margin-bottom: var(--espaco-5); }
.search-toolbar { display: flex; gap: var(--espaco-3); align-items: flex-end; }
.search-field { position: relative; flex: 1; }
.search-field svg { position: absolute; top: 50%; left: 13px; color: var(--cor-muted); transform: translateY(-50%); }
.search-field input { padding-left: 42px; background: var(--cor-superficie-baixa); border-color: transparent; }
.htmx-indicator { display: none; margin: var(--espaco-2) 0 0; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { display: block; }
.results-card { padding: 0; overflow: hidden; }
.results-card .table-wrap { border: 0; border-radius: 0; }
.results-caption { margin: 0; padding: var(--espaco-3) var(--espaco-4); border-top: 1px solid var(--cor-borda); }
.empty-state { padding: clamp(36px,7vw,72px) var(--espaco-6); text-align: center; }
.empty-state strong { font-size: 16px; }
.empty-state p { margin: var(--espaco-1) 0 0; color: var(--cor-muted); }
button, input[type="submit"], .botao {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--espaco-2);
    padding: 9px 16px;
    color: #fff;
    background: var(--cor-acao);
    border: 1px solid transparent;
    border-radius: var(--raio-md);
    font-weight: 650;
    text-decoration: none;
    cursor: pointer;
    transition: filter .15s ease, transform .15s ease;
}
button:hover, input[type="submit"]:hover, .botao:hover { filter: brightness(.94); }
button:active, input[type="submit"]:active, .botao:active { transform: translateY(1px); }
button.secundario, .botao-secundario {
    color: var(--cor-texto-forte);
    background: var(--cor-superficie);
    border-color: var(--cor-borda-forte);
}
button:disabled, .botao[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.botao-compacto { min-height: 34px; padding: 6px 10px; font-size: 12px; }
label {
    display: block;
    margin: var(--espaco-4) 0 var(--espaco-1);
    font-weight: 650;
    letter-spacing: .035em;
    text-transform: uppercase;
}
input, select, textarea {
    width: 100%;
    min-height: 40px;
    padding: 8px 11px;
    color: var(--cor-texto-forte);
    background: var(--cor-superficie);
    border: 1px solid var(--cor-borda-forte);
    border-radius: var(--raio-md);
}
textarea { min-height: 96px; resize: vertical; }
input:hover, select:hover, textarea:hover { border-color: #98a2b3; }
input:focus, select:focus, textarea:focus { border-color: var(--cor-acao); outline: 2px solid color-mix(in srgb, var(--cor-acao) 18%, transparent); }
.helptext { display: block; margin-top: var(--espaco-1); color: var(--cor-muted); font-size: 12px; }
.errorlist { margin: var(--espaco-1) 0; padding: 0; color: var(--cor-erro-texto); list-style: none; font-size: 13px; }
.messages { width: 100%; margin: 0 0 var(--espaco-5); padding: 0; list-style: none; }
.messages li, .alerta, .erro, .sucesso {
    padding: var(--espaco-3) var(--espaco-4);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-md);
}
.messages .success, .sucesso { color: var(--cor-sucesso-texto); background: var(--cor-sucesso-bg); border-color: #bbf7d0; }
.messages .error, .erro { color: var(--cor-erro-texto); background: var(--cor-erro-bg); border-color: #fecaca; }
.alerta { color: var(--cor-aviso-texto); background: var(--cor-aviso-bg); border-color: #fde68a; }
fieldset {
    min-width: 0;
    margin: var(--espaco-5) 0 0;
    padding: var(--espaco-4);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-lg);
}
legend { padding: 0 var(--espaco-2); font-weight: 700; }
fieldset.fieldset-erro { border-color: #fecaca; }
fieldset.fieldset-erro legend { color: var(--cor-erro-texto); }
.badge {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    margin-left: var(--espaco-1);
    padding: 2px 8px;
    color: #344054;
    background: var(--cor-superficie-media);
    border-radius: var(--raio-pill);
    font-size: 11px;
    font-weight: 700;
}
.badge-sucesso, .badge-leve { color: var(--cor-sucesso-texto); background: var(--cor-sucesso-bg); }
.badge-info { color: var(--cor-info-texto); background: var(--cor-info-bg); }
.badge-aviso, .badge-moderada { color: var(--cor-aviso-texto); background: var(--cor-aviso-bg); }
.badge-erro, .badge-grave { color: var(--cor-erro-texto); background: var(--cor-erro-bg); }
.table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); }
table.tabela-dados { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
table.tabela-dados th {
    padding: 11px 14px;
    color: #475467;
    background: var(--cor-superficie-baixa);
    border-bottom: 1px solid var(--cor-borda);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .06em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}
table.tabela-dados td { padding: 12px 14px; border-bottom: 1px solid var(--cor-borda); vertical-align: middle; }
table.tabela-dados tbody tr:hover { background: #fafbfc; }
table.tabela-dados tbody tr:last-child td { border-bottom: 0; }
.person-cell { min-width: 190px; display: flex; align-items: center; gap: var(--espaco-3); }
.person-cell img, .avatar-soft { width: 36px; height: 36px; flex: 0 0 36px; border-radius: 50%; object-fit: cover; }
.avatar-soft { color: var(--cor-acao); background: color-mix(in srgb,var(--cor-secundaria) 16%,#fff); }
.person-cell strong, .person-cell small, .table-meta { display: block; }
.person-cell small, .table-meta { color: var(--cor-muted); font-size: 11px; }
.table-actions { text-align: right; white-space: nowrap; }
.return-link { display: inline-flex; align-items: center; min-height: 34px; margin: 0 0 var(--espaco-3); color: var(--cor-acao); font-size: 13px; font-weight: 700; text-decoration: none; }
.return-link:hover { text-decoration: underline; }
.botao-perigo { color: #fff; background: var(--cor-erro-texto); }
.student-danger-panel { border-color: #fecaca; }
.student-danger-panel > p:not(.page-eyebrow) { margin: 0; color: var(--cor-muted); font-size: 13px; }
.student-danger-panel form { display: grid; grid-template-columns: 1fr auto; gap: var(--espaco-2); margin-top: var(--espaco-4); }
.student-danger-panel label { grid-column: 1 / -1; margin: 0; color: var(--cor-texto-forte); font-size: 11px; }
.student-danger-panel input { min-width: 0; }
.student-registration-panel > p:not(.page-eyebrow) { margin: 0 0 var(--espaco-4); color: var(--cor-muted); font-size: 13px; }
.cadastro-edicao-page .matricula-stitch-card { max-width: 1120px; }
/* Configurações institucionais: formulário longo, navegável e consistente. */
.institution-settings { max-width: 1320px; margin: 0 auto; padding-bottom: 88px; }
.institution-settings-header { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--espaco-5); margin-bottom:32px; }
.institution-settings-header h1 { margin-bottom:6px; font-size:30px; }
.settings-last-update { display:grid; gap:3px; min-width:145px; text-align:right; }
.settings-last-update span { color:var(--cor-muted); font-size:10px; font-weight:750; letter-spacing:.07em; text-transform:uppercase; }
.settings-last-update strong { font-size:12px; font-variant-numeric:tabular-nums; }
.institution-settings-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:38px; align-items:start; }
.institution-settings-nav { position:sticky; top:calc(var(--altura-topbar) + 24px); display:grid; gap:4px; }
.institution-settings-nav a { display:flex; gap:11px; align-items:center; min-height:42px; padding:8px 12px; color:var(--cor-muted); border-radius:var(--raio-md); font-size:14px; font-weight:650; text-decoration:none; }
.institution-settings-nav a svg { width:17px; height:17px; flex:0 0 17px; color:var(--cor-acao); }
.institution-settings-nav a:hover,.institution-settings-nav a.is-active { color:var(--cor-acao); background:var(--ds-surface-low); }
.institution-settings-form { display:grid; gap:38px; }
.institution-section { scroll-margin-top:calc(var(--altura-topbar) + 24px); }
.institution-section-title { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.institution-section-title > span { display:grid; width:28px; height:28px; place-items:center; color:var(--cor-acao); background:color-mix(in srgb,var(--cor-secundaria) 14%,white); border-radius:50%; font-size:11px; font-weight:800; }
.institution-section-title h2 { margin:0; font-size:20px; }
.institution-section-card { padding:var(--espaco-5); background:var(--cor-superficie); border:1px solid var(--cor-borda); border-radius:var(--raio-lg); box-shadow:var(--sombra-sm); }
.institution-grid { display:grid; gap:var(--espaco-4); }
.institution-grid.two-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
.institution-grid.three-columns { grid-template-columns:repeat(3,minmax(0,1fr)); }
.span-two { grid-column:span 2; }.span-three { grid-column:1 / -1; }
.institution-field { min-width:0; }.institution-field label { margin:0 0 7px; color:var(--cor-muted); font-size:11px; }.institution-field input,.institution-field select { background:var(--ds-surface-low); border-color:transparent; font-size:14px; }
.address-grid { grid-template-columns:1fr 2fr .8fr 1.4fr 1.4fr 1fr .5fr; }.field-cep{grid-column:span 1}.field-logradouro{grid-column:span 2}.field-numero{grid-column:span 1}.field-complemento{grid-column:span 2}.field-bairro{grid-column:span 2}.field-cidade{grid-column:span 2}.field-uf{grid-column:span 1}
.institution-dpo-card { color:#fff; background:#131b2e; border-color:#131b2e; }.institution-dpo-card > p { margin:0; color:#bec6e0; font-size:12px; }.institution-dpo-card label { color:#bec6e0; }.institution-dpo-card input { color:#fff; background:rgba(255,255,255,.1); border-color:transparent; }
.institution-brand-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(220px,1fr); gap:var(--espaco-4); }.institution-brand-files { display:grid; gap:var(--espaco-4); }
.institution-upload-card { display:grid; grid-template-columns:110px minmax(0,1fr); gap:var(--espaco-4); align-items:center; padding:var(--espaco-4); background:var(--cor-superficie); border:1px solid var(--cor-borda); border-radius:var(--raio-lg); }.institution-upload-card h3,.institution-colors-card h3,.institution-signature-grid h3 { margin:0 0 4px; font-size:14px; }.institution-upload-card p { margin:0 0 10px; color:var(--cor-muted); font-size:12px; }
.upload-preview { display:grid; width:110px; height:90px; place-items:center; overflow:hidden; color:var(--cor-muted); background:var(--ds-surface-low); border:1px dashed var(--cor-borda-forte); border-radius:var(--raio-md); text-align:center; font-size:10px; font-weight:800; }.upload-preview.dark { color:#fff; background:#131b2e; }.upload-preview img { width:100%; height:100%; object-fit:contain; }.small-preview { height:64px; }
.institution-upload-card input[type=file] { padding:6px; font-size:11px; }.institution-colors-card { padding:var(--espaco-4); background:var(--cor-superficie); border:1px solid var(--cor-borda); border-radius:var(--raio-lg); }.institution-colors-card .institution-field + .institution-field { margin-top:14px; }.institution-colors-card input[type=color] { height:42px; padding:4px; }
.institution-signature-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--espaco-4); }.institution-signature-grid .institution-section-card { display:grid; gap:var(--espaco-3); }
.socio-card { display:block; padding:16px; }.socio-card .responsible-card-actions { display:flex; justify-content:flex-end; margin:-31px 0 13px; }.socio-card .responsible-remove-action { color:var(--cor-erro-texto); border-color:#fecaca; background:#fff; }
.institution-settings-footer { position:sticky; bottom:12px; z-index:4; display:flex; align-items:center; justify-content:space-between; gap:var(--espaco-4); padding:14px 16px; color:var(--cor-muted); background:rgba(255,255,255,.96); border:1px solid var(--cor-borda); border-radius:var(--raio-lg); box-shadow:var(--sombra-md); backdrop-filter:blur(10px); font-size:12px; }.institution-settings-footer b { color:var(--cor-erro-texto); }.institution-settings-footer > div { display:flex; gap:var(--espaco-2); }
@media (max-width:900px){.institution-settings-layout{grid-template-columns:1fr}.institution-settings-nav{position:static; display:flex; overflow:auto; padding-bottom:4px}.institution-settings-nav a{white-space:nowrap}.institution-brand-layout{grid-template-columns:1fr}}
@media (max-width:650px){.institution-settings-header{align-items:stretch;flex-direction:column}.settings-last-update{text-align:left}.institution-grid.two-columns,.institution-grid.three-columns,.institution-signature-grid{grid-template-columns:1fr}.span-two{grid-column:auto}.address-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.address-grid>div{grid-column:auto}.field-logradouro,.field-complemento,.field-bairro{grid-column:span 2!important}.institution-upload-card{grid-template-columns:1fr}.institution-settings-footer{align-items:stretch;flex-direction:column}.institution-settings-footer>div>*{width:100%}}
.grade-card { padding: 0; overflow: hidden; }
.grade-card .section-heading { padding: var(--espaco-5) var(--espaco-6) 0; }
.grade-table-wrap { border: 0; border-radius: 0; }
.grade-table th:first-child, .grade-table td:first-child { position: sticky; left: 0; z-index: 1; background: inherit; }
.grade-table thead th:first-child { z-index: 2; background: var(--cor-superficie-baixa); }
.save-state.htmx-request { color: var(--cor-muted); font-size: 0; }
.save-state.htmx-request::after { content: "Salvando…"; font-size: 12px; }
.lista-item { padding: var(--espaco-3) 0; border-bottom: 1px solid var(--cor-borda); }
.lista-item:last-child { border-bottom: 0; }
ul.timeline { display: flex; flex-direction: column; gap: var(--espaco-4); margin: 0; padding: 0; list-style: none; }
ul.timeline li { position: relative; padding-left: var(--espaco-5); border-left: 2px solid color-mix(in srgb, var(--cor-secundaria) 45%, var(--cor-borda)); }
ul.timeline li::before { position: absolute; top: 4px; left: -6px; width: 10px; height: 10px; content: ""; background: var(--cor-acao); border: 2px solid #fff; border-radius: 50%; }
ul.timeline .data { display: block; color: var(--cor-muted); font-size: 12px; }

/* Prontuário 360: resumo operacional do aluno, sem substituir os fluxos existentes. */
.student-record-return { margin-bottom: var(--espaco-3); }
.student-record-hero { position: relative; display: flex; gap: clamp(20px, 3vw, 40px); align-items: center; min-height: 210px; padding: clamp(24px, 3vw, 38px); overflow: hidden; color: #fff; background: #111b31; border-radius: var(--raio-lg); box-shadow: var(--sombra-md); }
.student-record-hero-art { position: absolute; right: -55px; width: 280px; height: 280px; background: rgba(255,255,255,.09); border-radius: 50%; }
.student-record-identity, .student-record-primary-actions { position: relative; z-index: 1; }
.student-record-identity { display: flex; flex: 1; gap: 22px; align-items: center; min-width: 0; }
.student-record-photo { display: grid; flex: 0 0 122px; width: 122px; height: 122px; overflow: hidden; color: var(--cor-acao); background: #d9f5ef; border: 4px solid rgba(0, 191, 174, .5); border-radius: 18px; place-items: center; font-size: 48px; font-weight: 800; }
.student-record-photo img { width: 100%; height: 100%; object-fit: cover; }
.student-record-hero .page-eyebrow { margin-bottom: 4px; color: #80eee0; }
.student-record-title { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.student-record-title h1 { margin: 0; color: #fff; font-size: clamp(26px, 3vw, 38px); line-height: 1.08; }
.student-record-status { padding: 6px 13px; color: #084b45; background: #8ff2e4; border-radius: 99px; font-size: 12px; font-weight: 800; letter-spacing: .05em; }
.student-record-meta { display: grid; grid-template-columns: repeat(4, minmax(90px,1fr)); gap: 18px; margin: 20px 0 0; }
.student-record-meta dt { margin-bottom: 3px; color: rgba(255,255,255,.55); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.student-record-meta dd { margin: 0; color: #d9e0ee; font-size: 15px; font-weight: 700; }
.student-record-primary-actions { display: grid; flex: 0 0 230px; gap: 10px; }
.student-record-primary-actions .botao { justify-content: center; }
.botao-hero-secondary { color: #fff; background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.32); }
.botao-hero-secondary:hover { color: #fff; background: rgba(255,255,255,.18); }
.student-record-tabs { display: flex; gap: 6px; margin: 24px calc(var(--espaco-5) * -1) 30px; padding: 0 var(--espaco-5); overflow-x: auto; background: #fff; border-bottom: 1px solid var(--cor-borda); }
.student-record-tabs a { display: block; padding: 15px 17px 13px; color: var(--cor-muted); border-bottom: 3px solid transparent; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.student-record-tabs a.ativo, .student-record-tabs a:hover { color: var(--cor-acao); border-color: var(--cor-acao); }
.student-record-layout { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(290px, .9fr); gap: 26px; align-items: start; scroll-margin-top: 25px; }
.student-record-layout--single { grid-template-columns: minmax(0, 1fr); }
.student-record-layout--side-only .student-record-side { grid-column: 1 / -1; }
.student-record-layout [data-record-panel][hidden] { display: none !important; }
.student-record-main, .student-record-side { display: grid; gap: 24px; }
.student-record-card { padding: 25px; background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); box-shadow: var(--sombra-sm); }
.student-record-card h2 { display: flex; gap: 9px; align-items: center; margin: 0; font-size: 21px; }
.student-record-card h2 svg { width: 23px; height: 23px; color: var(--cor-acao); }
.student-record-timeline { position: relative; display: grid; gap: 22px; margin: 22px 0 0; padding: 0; list-style: none; }
.student-record-timeline::before { position: absolute; top: 15px; bottom: 15px; left: 18px; width: 2px; content: ''; background: #dbe4e7; }
.student-record-timeline li { position: relative; display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 14px; align-items: start; }
.student-timeline-dot { position: relative; z-index: 1; display: grid; width: 38px; height: 38px; color: #056f66; background: #cff6ee; border-radius: 50%; place-items: center; }
.student-timeline-dot svg { width: 19px; height: 19px; }
.event-ocorrencia .student-timeline-dot { color: #b42318; background: #ffe4e1; }.event-financeiro .student-timeline-dot { color: #805b10; background: #fff0d5; }.event-matricula .student-timeline-dot { color: #fff; background: #111b31; }
.student-record-timeline article { padding: 15px 17px; background: var(--cor-superficie-baixa); border-radius: var(--raio-md); }
.student-record-timeline article > div { display: flex; gap: 12px; justify-content: space-between; }.student-record-timeline h3 { margin: 0; font-size: 15px; }.student-record-timeline time, .student-record-timeline small { color: var(--cor-muted); font-size: 12px; white-space: nowrap; }.student-record-timeline p { margin: 7px 0; color: var(--cor-texto); }
.student-timeline-empty { display: block !important; padding: 20px 0 0 54px; color: var(--cor-muted); }.student-timeline-empty::before { display: none; }
.student-record-kpis { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }.student-record-kpis > a { display: flex; justify-content: space-between; padding: 22px; color: var(--cor-texto-forte); background: #fff; border: 1px solid var(--cor-borda); border-left: 4px solid var(--cor-acao); border-radius: var(--raio-lg); text-decoration: none; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }.student-record-kpis > a:hover, .student-record-kpis > a:focus-visible { border-color: var(--cor-acao); box-shadow: var(--sombra-md); outline: none; transform: translateY(-2px); }.student-record-kpis > a + a { border-left-color: #68738f; }.student-record-kpis span { display: block; color: var(--cor-muted); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.student-record-kpis strong { display: block; margin: 9px 0 3px; font-size: 30px; line-height: 1; }.student-record-kpis small { color: var(--cor-muted); }.student-record-kpis em { display: block; margin-top: 13px; color: var(--cor-acao); font-size: 12px; font-style: normal; font-weight: 800; }.student-record-kpis svg { width: 25px; height: 25px; color: var(--cor-acao); }
.student-record-section { scroll-margin-top: 24px; }.student-record-list { display: grid; gap: 10px; margin-top: 16px; }.student-record-list > article { display: flex; gap: 15px; justify-content: space-between; padding: 15px; border: 1px solid var(--cor-borda); border-radius: var(--raio-md); }.student-record-list p { margin: 4px 0; color: var(--cor-muted); }.student-record-list small { color: var(--cor-muted); }.student-record-list .acoes { align-self: center; }
.student-document-groups { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; margin-top: 18px; }.student-document-groups > div { padding: 15px; background: var(--cor-superficie-baixa); border-radius: var(--raio-md); }.student-document-groups h3 { margin: 0 0 10px; font-size: 14px; }.student-document-groups article { display: grid; gap: 3px; padding: 10px 0; border-top: 1px solid var(--cor-borda); }.student-document-groups small { color: var(--cor-muted); }.student-document-groups a { color: var(--cor-acao); font-size: 12px; font-weight: 800; text-decoration: none; }
.financial-items { display: grid; gap: 10px; margin: 18px 0; }.financial-items div { display: flex; gap: 8px; justify-content: space-between; align-items: center; padding: 12px; background: var(--cor-superficie-baixa); border-radius: var(--raio-sm); }.full-width { display: flex; justify-content: center; width: 100%; }.health-alert { padding: 11px 12px; color: #b42318; background: #fff3f1; border: 1px solid #fed3cd; border-radius: var(--raio-sm); }.student-health-card .data-list { margin-top: 16px; }
.student-record-actions { padding: 24px; color: #fff; background: #111b31; border-radius: var(--raio-lg); box-shadow: var(--sombra-md); }.student-record-actions p { margin: 0 0 10px; color: #a7b1c8; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.student-record-actions a { display: block; padding: 11px 7px; color: #fff; border-radius: var(--raio-sm); text-decoration: none; }.student-record-actions a:hover { background: rgba(255,255,255,.1); }.student-side-actions { display: grid; gap: 8px; margin-top: 16px; }.student-side-actions .botao { justify-content: center; }
@media (max-width: 980px) { .student-record-hero { align-items: flex-start; flex-direction: column; }.student-record-primary-actions { width: 100%; grid-template-columns: repeat(2, minmax(0,1fr)); }.student-record-layout { grid-template-columns: 1fr; }.student-record-meta { grid-template-columns: repeat(2,minmax(0,1fr)); }.student-record-side { grid-template-columns: repeat(2,minmax(0,1fr)); }.student-record-side > .student-record-actions, .student-record-side > .student-danger-panel { grid-column: 1 / -1; } }
@media (max-width: 620px) { .student-record-photo { flex-basis: 78px; width: 78px; height: 78px; font-size: 32px; }.student-record-identity { gap: 14px; }.student-record-meta, .student-record-kpis, .student-record-primary-actions, .student-record-side, .student-document-groups { grid-template-columns: 1fr; }.student-record-tabs { margin-right: calc(var(--espaco-3) * -1); margin-left: calc(var(--espaco-3) * -1); padding: 0 var(--espaco-3); }.student-record-tabs a { padding-right: 12px; padding-left: 12px; }.student-record-list > article { display: block; }.student-record-list .acoes { margin-top: 12px; }.student-record-timeline article > div { display: block; }.student-record-timeline time { display: block; margin-top: 4px; } }
@media (max-width: 720px) { .form-grid-2 { grid-template-columns: 1fr; }.pagination { align-items: stretch; flex-direction: column; }.pagination > span { margin-right: 0; } }

.student-performance-header { margin-bottom: 18px; }.student-performance-context { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 0; }.student-performance-context span { padding: 9px 13px; color: var(--cor-muted); background: #fff; border: 1px solid var(--cor-borda); border-radius: 99px; font-size: 13px; }.student-performance-context strong { color: var(--cor-texto-forte); }.student-performance-tabs { margin-top: 20px; }.student-performance-tabs a { gap: 8px; }.student-performance-tabs svg { width: 18px; height: 18px; }.student-performance-card { padding: 25px; margin-bottom: 24px; background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); box-shadow: var(--sombra-sm); }.student-performance-card[hidden] { display: none; }.student-performance-card .section-heading h2 { display: flex; gap: 9px; align-items: center; }.student-performance-card .section-heading svg { width: 22px; height: 22px; color: var(--cor-acao); }.student-performance-table td, .student-performance-table th { vertical-align: middle; }.performance-grade, .attendance-rate { display: inline-block; min-width: 48px; padding: 5px 8px; color: #075e56; background: #d8f6f0; border-radius: var(--raio-sm); font-weight: 800; text-align: center; }.attendance-rate { color: #374151; background: #edf0f5; }.student-performance-subtitle { margin: 30px 0 12px; font-size: 16px; }
@media (max-width: 620px) { .student-performance-card { padding: 17px; }.student-performance-context { display: grid; grid-template-columns: 1fr; } }
.wizard-steps { display: flex; flex-wrap: wrap; gap: var(--espaco-2); margin-bottom: var(--espaco-5); }
.wizard-steps span { padding: 6px 11px; color: var(--cor-muted); background: var(--cor-superficie-media); border-radius: var(--raio-pill); font-size: 12px; text-transform: capitalize; }
.wizard-steps span.atual { color: #fff; background: var(--cor-acao); }
.variaveis-disponiveis { display: flex; flex-wrap: wrap; gap: var(--espaco-1); margin-bottom: var(--espaco-2); }
.variaveis-disponiveis button { min-height: 30px; padding: 4px 10px; color: var(--cor-texto-forte); background: var(--cor-superficie-media); border-radius: var(--raio-pill); font: 11px var(--fonte-mono); }
.variaveis-disponiveis button:hover { background: var(--cor-borda); }
#editor-corpo-html { margin-bottom: var(--espaco-2); background: #fff; }
#editor-corpo-html .ql-editor { min-height: 280px; font-size: var(--fonte-tamanho-base); }
.preview-img { display: block; max-height: 80px; margin-top: var(--espaco-2); }
.preview-img[src=""] { display: none; }
.form-nota input { max-width: 110px; }
.status-salvo { color: var(--cor-sucesso-texto); font-size: 12px; }
.alerta-risco { padding: var(--espaco-3); color: var(--cor-aviso-texto); background: var(--cor-aviso-bg); border-radius: var(--raio-md); }
#grafico-vida-pregressa { max-height: 360px; margin: var(--espaco-5) 0; }
.grade-chamada { display: grid; gap: var(--espaco-2); margin: var(--espaco-5) 0; }
.aluno-chamada { display: grid; grid-template-columns: minmax(180px, 1fr) 120px minmax(180px, 1fr); gap: var(--espaco-3); align-items: center; padding: var(--espaco-3); border: 1px solid var(--cor-borda); border-radius: var(--raio-md); }
.aluno-chamada small { display: block; }
.aluno-chamada button { width: 100%; }
.presenca-presente { background: var(--cor-sucesso-texto); }
.presenca-falta { background: var(--cor-erro-texto); }
.student-header { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-6); margin-bottom: var(--espaco-5); }
.student-identity { min-width: 0; display: flex; align-items: center; gap: var(--espaco-5); }
.student-avatar, .student-identity > img { width: 72px; height: 72px; flex: 0 0 72px; border-radius: var(--raio-lg); object-fit: cover; }
.student-avatar { display: grid; place-items: center; color: var(--cor-acao); background: color-mix(in srgb,var(--cor-secundaria) 16%,#fff); font-size: 26px; font-weight: 800; }
.student-identity h1 { margin-bottom: var(--espaco-2); }
.student-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espaco-2) var(--espaco-4); color: var(--cor-muted); font-size: 12px; }
.detail-grid { display: grid; grid-template-columns: minmax(0,2fr) minmax(260px,1fr); gap: var(--espaco-5); align-items: start; }
.occurrence-item { display: flex; justify-content: space-between; gap: var(--espaco-4); }
.occurrence-item p { margin: var(--espaco-2) 0 0; color: var(--cor-muted); }
.data-list { margin: 0; }
.data-list > div { padding: var(--espaco-3) 0; border-bottom: 1px solid var(--cor-borda); }
.data-list > div:last-child { border-bottom: 0; }
.data-list dt { color: var(--cor-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.data-list dd { margin: 2px 0 0; overflow-wrap: anywhere; }
.restricted-card { border-left: 3px solid var(--cor-aviso-texto); }
.student-documents h3 { margin: var(--espaco-5) 0 var(--espaco-1); font-size: 14px; }
.student-documents h3:first-of-type { margin-top: var(--espaco-2); }
.document-list { border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); padding: 0 var(--espaco-4); }
.document-row { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-4); }
.document-row > div:first-child { min-width: 0; }
.document-row strong, .document-row small { display: block; }
.document-row strong { overflow-wrap: anywhere; }
.document-row small { margin-top: 3px; color: var(--cor-muted); }
.source-document { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-5); border-left: 3px solid var(--cor-info-texto); }
.source-document h2 { margin: var(--espaco-1) 0; overflow-wrap: anywhere; }
.source-document p:last-child { margin-bottom: 0; color: var(--cor-muted); font-size: 12px; overflow-wrap: anywhere; }
.attendance-form .card { padding: var(--espaco-5); }
.attendance-summary { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin: 0 0 var(--espaco-4); overflow: hidden; background: var(--cor-superficie-baixa); border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); }
.attendance-summary > span { position: relative; min-width: 0; display: flex; align-items: center; gap: var(--espaco-2); padding: var(--espaco-3) var(--espaco-4); border-left: 1px solid var(--cor-borda); }
.attendance-summary > span:first-child { border-left: 0; }
.attendance-summary > span::before { width: 7px; height: 7px; flex: 0 0 7px; content: ""; background: var(--cor-muted); border-radius: 50%; }
.attendance-summary > span.is-present::before { background: var(--cor-sucesso-texto); }
.attendance-summary > span.is-absent::before { background: var(--cor-erro-texto); }
.attendance-summary > span.is-justified::before { background: var(--cor-info-texto); }
.attendance-summary > span.is-late::before { background: var(--cor-aviso-texto); }
.attendance-summary strong, .attendance-summary small { display: block; }
.attendance-summary strong { font-size: 18px; line-height: 1; font-variant-numeric: tabular-nums; }
.attendance-summary small { color: var(--cor-muted); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.aluno-chamada { grid-template-columns: minmax(180px,1fr) minmax(380px,auto) minmax(170px,.8fr); }
.attendance-student { display: flex; align-items: center; gap: var(--espaco-3); }
.attendance-options { display: grid; grid-template-columns: repeat(4,minmax(82px,1fr)); gap: var(--espaco-1); padding: 3px; background: var(--cor-superficie-baixa); border-radius: var(--raio-md); }
.attendance-options button { min-height: 34px; padding: 5px 8px; color: var(--cor-muted); background: transparent; font-size: 11px; }
.attendance-options button[aria-pressed="true"] { color: #fff; }
.attendance-options .status-presente { background: var(--cor-sucesso-texto); }
.attendance-options .status-falta { background: var(--cor-erro-texto); }
.attendance-options .status-justificada { color: var(--cor-info-texto); background: var(--cor-info-bg); }
.attendance-options .status-atrasado { color: var(--cor-aviso-texto); background: var(--cor-aviso-bg); }
.attendance-toolbar-actions, .chamada-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--espaco-2); }
[data-attendance-filter][aria-pressed="true"] { color: var(--cor-acao); border-color: var(--cor-acao); background: color-mix(in srgb,var(--cor-acao) 8%,#fff); }
.aluno-chamada[hidden] { display: none; }
.chamada-submit { position: sticky; bottom: var(--espaco-3); z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-4); margin-top: var(--espaco-4); padding: var(--espaco-3) var(--espaco-4); background: rgba(255,255,255,.96); border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); box-shadow: var(--sombra-md); backdrop-filter: blur(10px); }
.chamada-submit span, .chamada-submit small { display: block; }
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: var(--espaco-3); margin: var(--espaco-5) 0; }
.kpis div { min-width: 0; padding: var(--espaco-4); background: var(--cor-superficie); border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); }
.kpis small, .kpis strong { display: block; }
.kpis strong { margin-top: var(--espaco-1); font-size: 22px; font-variant-numeric: tabular-nums; }
.dashboard-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--espaco-4); margin-bottom: var(--espaco-5); }
.kpi-card { position: relative; min-height: 142px; display: flex; flex-direction: column; padding: var(--espaco-5); color: var(--cor-texto-forte); background: var(--cor-superficie); border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); box-shadow: var(--sombra-sm); text-decoration: none; overflow: hidden; }
.kpi-card::before { position: absolute; inset: 0 auto 0 0; width: 3px; content: ""; background: var(--cor-acao); }
.kpi-card:hover { border-color: var(--cor-borda-forte); box-shadow: 0 5px 16px rgba(15,23,42,.07); }
.kpi-card small { color: var(--cor-muted); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.kpi-card strong { margin: var(--espaco-2) 0; font-size: clamp(24px,2.4vw,34px); font-variant-numeric: tabular-nums; }
.kpi-card span { margin-top: auto; color: var(--cor-acao); font-size: 12px; }
.kpi-attention::before { background: var(--cor-aviso-texto); }
.kpi-danger::before { background: var(--cor-erro-texto); }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,2fr) minmax(280px,1fr); gap: var(--espaco-5); align-items: start; }
.dashboard-grid.equal { grid-template-columns: repeat(2,minmax(0,1fr)); }
.dashboard-side { display: grid; gap: var(--espaco-5); }
.dashboard-side .card + .card { margin-top: 0; }

/* Painel operacional da Coordenação Pedagógica. */
.coordination-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.coordination-kpi{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:11px;min-height:112px;padding:16px;color:var(--cor-texto-forte);background:#fff;border:1px solid var(--cor-borda);border-radius:11px;box-shadow:var(--sombra-sm);text-decoration:none;overflow:hidden}
.coordination-kpi:before{position:absolute;inset:0 auto 0 0;width:3px;background:var(--cor-acao);content:""}
.coordination-kpi.is-attention:before{background:var(--cor-aviso-texto)}
.coordination-kpi:hover{border-color:var(--cor-acao);transform:translateY(-1px)}
.coordination-kpi-icon,.coordination-row-icon{display:grid;width:38px;height:38px;place-items:center;color:#087a70;background:#e2f4f1;border-radius:9px}
.coordination-kpi-icon svg,.coordination-row-icon svg{width:19px;height:19px}
.coordination-kpi small,.coordination-kpi strong,.coordination-kpi em{display:block}
.coordination-kpi small{color:var(--cor-muted);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.coordination-kpi strong{margin:2px 0;font-size:25px;line-height:1.1;font-variant-numeric:tabular-nums}
.coordination-kpi em{color:var(--cor-muted);font-size:10px;font-style:normal;line-height:1.35}
.coordination-workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.68fr);gap:16px;align-items:start}
.coordination-main-stack,.coordination-side-stack{display:grid;gap:16px}
.coordination-side-stack{position:sticky;top:calc(var(--altura-topbar) + 16px)}
.coordination-queue-card,.coordination-side-card{margin:0;padding:18px}
.coordination-queue-card .section-heading,.coordination-side-card .section-heading{margin-bottom:12px}
.coordination-queue-card .section-heading p,.coordination-side-card .section-heading p{margin:2px 0 0;color:var(--cor-muted);font-size:10px}
.coordination-table{min-width:720px}
.coordination-table td:first-child{min-width:175px}
.coordination-plan-list{display:grid}
.coordination-plan-row{display:grid;grid-template-columns:38px minmax(170px,1.25fr) minmax(150px,.9fr) auto 16px;align-items:center;gap:11px;padding:11px 0;color:var(--cor-texto-forte);border-top:1px solid var(--cor-borda);text-decoration:none}
.coordination-plan-row:first-child{border-top:0}
.coordination-plan-row>span strong,.coordination-plan-row>span small,.coordination-side-row strong,.coordination-side-row small{display:block}
.coordination-plan-row>span small,.coordination-side-row small{margin-top:2px;color:var(--cor-muted);font-size:10px;line-height:1.4}
.coordination-chevron{width:15px;height:15px;color:var(--cor-muted)}
.coordination-plan-row:hover strong,.coordination-side-row:hover strong{color:var(--cor-acao)}
.coordination-side-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;color:var(--cor-texto-forte);border-top:1px solid var(--cor-borda);text-decoration:none}
.coordination-side-row:first-of-type{border-top:0}
.coordination-side-row>span:first-child{min-width:0}
.coordination-side-row>svg{width:15px;height:15px;flex:0 0 15px;color:var(--cor-muted)}
@media (max-width:1180px){.coordination-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.coordination-workspace{grid-template-columns:1fr}.coordination-side-stack{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px){.coordination-side-stack{grid-template-columns:1fr}.coordination-plan-row{grid-template-columns:38px minmax(0,1fr) auto 16px}.coordination-plan-row>span:nth-child(3){display:none}}
@media (max-width:560px){.coordination-kpis{grid-template-columns:1fr}.coordination-kpi{min-height:94px}.coordination-queue-card,.coordination-side-card{padding:15px}.coordination-plan-row{grid-template-columns:34px minmax(0,1fr) 14px}.coordination-plan-row>.badge{display:none}.coordination-row-icon{width:34px;height:34px}}
progress.progress-track { width: 100%; height: 8px; overflow: hidden; appearance: none; border: 0; border-radius: var(--raio-pill); }
progress.progress-track::-webkit-progress-bar { background: var(--cor-superficie-media); border-radius: inherit; }
progress.progress-track::-webkit-progress-value { background: var(--cor-acao); border-radius: inherit; }
progress.progress-track::-moz-progress-bar { background: var(--cor-acao); border-radius: inherit; }
.finance-list-item { display: flex; justify-content: space-between; gap: var(--espaco-4); }
.finance-list-item span, .finance-list-item small { display: block; }
.finance-shortcuts { display: flex; flex-wrap: wrap; gap: var(--espaco-2) var(--espaco-5); margin-bottom: var(--espaco-5); padding: var(--espaco-4) var(--espaco-5); }
.finance-shortcuts a { color: var(--cor-texto-forte); font-weight: 650; text-decoration: none; }
.finance-shortcuts a:hover { color: var(--cor-acao); }
.finance-dashboard-page,.finance-receivables-page{max-width:1480px;margin:0 auto}.finance-command-bar{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto;align-items:stretch;gap:0;margin-bottom:16px;padding:0}.finance-command-bar>a{display:flex;align-items:center;gap:10px;min-height:68px;padding:12px 15px;color:var(--cor-texto-forte);border-right:1px solid var(--cor-borda);text-decoration:none}.finance-command-bar>a:hover{background:var(--ds-surface-low)}.finance-command-bar>a>svg{width:21px;height:21px;flex:0 0 21px;color:var(--cor-acao)}.finance-command-bar span{display:grid;gap:2px}.finance-command-bar strong{font-size:12px}.finance-command-bar small{color:var(--cor-muted);font-size:10px}.finance-command-bar details{position:relative;display:grid;place-items:center}.finance-command-bar summary{display:flex;align-items:center;gap:5px;padding:12px;color:var(--cor-texto-forte);font-size:12px;font-weight:750;cursor:pointer;list-style:none}.finance-command-bar summary::-webkit-details-marker{display:none}.finance-command-bar summary svg{width:15px;height:15px}.finance-command-bar details>div{position:absolute;top:calc(100% + 6px);right:0;z-index:12;min-width:230px;display:grid;padding:6px;background:#fff;border:1px solid var(--cor-borda);border-radius:10px;box-shadow:var(--sombra-md)}.finance-command-bar details>div a{padding:9px 10px;color:var(--cor-texto-forte);border-radius:7px;font-size:12px;text-decoration:none}.finance-command-bar details>div a:hover{background:var(--ds-surface-low)}.finance-hero-kpis{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:14px;margin-bottom:16px}.finance-hero-kpis article{position:relative;min-height:132px;display:flex;flex-direction:column;padding:19px 20px;background:#fff;border:1px solid var(--cor-borda);border-radius:12px;box-shadow:var(--sombra-sm);overflow:hidden}.finance-hero-kpis article:before{position:absolute;inset:0 auto 0 0;width:3px;background:var(--cor-acao);content:""}.finance-hero-kpis .finance-primary-kpi{color:#fff;background:#0f1930;border-color:#0f1930}.finance-hero-kpis .finance-primary-kpi:before{width:5px;background:#41d8c3}.finance-hero-kpis .finance-overdue-kpi:before{background:var(--cor-erro-texto)}.finance-hero-kpis span{font-size:11px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.finance-hero-kpis strong{margin:8px 0;font-size:30px;line-height:1.1;font-variant-numeric:tabular-nums}.finance-hero-kpis small{margin-top:auto;color:var(--cor-muted)}.finance-primary-kpi small{color:#bac5d8}.finance-overview-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.8fr);gap:16px;align-items:start;margin-top:16px}.finance-side-stack{display:grid;gap:16px}.finance-side-stack>.card,.finance-bottom-grid>.card{margin:0}.finance-trend{display:grid;gap:12px}.finance-trend-row{display:grid;grid-template-columns:55px minmax(80px,1fr) 115px;align-items:center;gap:10px;font-size:11px}.finance-trend-row>div{height:8px;overflow:hidden;background:var(--ds-surface-low);border-radius:999px}.finance-trend-row i{display:block;min-width:3px;height:100%;background:var(--cor-acao);border-radius:inherit}.finance-trend-row strong{text-align:right;font-variant-numeric:tabular-nums}.finance-alert-card{border-top:3px solid var(--cor-aviso-texto)}.finance-alert-card a{font-size:12px;font-weight:750;text-decoration:none}.finance-class-list{display:grid}.finance-class-list>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid var(--cor-borda)}.finance-class-list>div:first-child{border-top:0}.finance-class-list span,.finance-class-list small{display:block}.finance-class-list small{margin-top:2px;color:var(--cor-muted)}.finance-bottom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.finance-compact-empty{min-height:130px}.finance-receivable-summary{display:grid;grid-template-columns:repeat(2,minmax(0,260px));gap:12px;margin-bottom:14px}.finance-receivable-summary article{display:grid;gap:2px;padding:14px 16px;background:#fff;border:1px solid var(--cor-borda);border-left:3px solid var(--cor-acao);border-radius:10px}.finance-receivable-summary span{color:var(--cor-muted);font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.finance-receivable-summary strong{font-size:23px;font-variant-numeric:tabular-nums}.finance-receivable-summary small{color:var(--cor-muted);font-size:10px}.finance-receivable-filters{display:grid;grid-template-columns:minmax(250px,1.5fr) repeat(3,minmax(135px,.65fr));align-items:end;gap:10px;margin-bottom:14px;padding:14px}.finance-receivable-filters label{display:grid;gap:5px;margin:0;color:var(--cor-muted);font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.finance-receivable-filters input,.finance-receivable-filters select{min-height:38px;margin:0;padding:7px 9px;background:var(--ds-surface-low);border-color:transparent;font-size:12px;text-transform:none}.finance-filter-search>span{position:relative}.finance-filter-search svg{position:absolute;top:50%;left:10px;width:16px;height:16px;transform:translateY(-50%);color:var(--cor-muted)}.finance-filter-search input{width:100%;padding-left:34px}.finance-receivable-filters label:nth-of-type(5){grid-column:2}.finance-filter-actions{display:flex;align-items:center;gap:7px}.finance-filter-actions .botao,.finance-filter-actions button{min-height:38px}.finance-receivables-table-card{padding:16px}.finance-receivables-table{min-width:1120px}.finance-receivables-table td:first-child{min-width:220px}.finance-receivables-table td:nth-child(2){min-width:190px}.finance-receivables-table .icon-button{width:34px;height:34px;min-height:34px;flex-basis:34px;color:var(--cor-acao);background:#e5f5f2}.finance-receivables-table .icon-button svg{width:17px;height:17px}.finance-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap}.table-muted{color:var(--cor-muted);font-size:11px}
@media(max-width:1100px){.finance-command-bar{grid-template-columns:repeat(2,1fr)}.finance-command-bar>a:nth-of-type(2){border-right:0}.finance-command-bar details{min-height:50px;grid-column:1/-1;border-top:1px solid var(--cor-borda)}.finance-overview-grid,.finance-bottom-grid{grid-template-columns:1fr}.finance-receivable-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-receivable-filters label:nth-of-type(5){grid-column:auto}}
@media(max-width:720px){.finance-command-bar,.finance-hero-kpis,.finance-receivable-summary,.finance-receivable-filters{grid-template-columns:1fr}.finance-command-bar>a{border-right:0;border-bottom:1px solid var(--cor-borda)}.finance-command-bar details{grid-column:auto}.finance-overview-grid{grid-template-columns:minmax(0,1fr)}.finance-trend-row{grid-template-columns:48px minmax(60px,1fr) 102px}.finance-receivable-summary article{max-width:none}.finance-filter-actions>*{flex:1}.finance-bottom-grid .lista-item{align-items:flex-start;flex-direction:column}}
.inline-form { display: inline-flex; margin: 0; }
.form-card { max-width: 920px; }
.form-card > form > p { margin: var(--espaco-3) 0; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espaco-2); margin-top: var(--espaco-5); }
.sticky-actions { position: sticky; bottom: var(--espaco-3); z-index: 5; padding: var(--espaco-3); background: rgba(255,255,255,.94); border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); box-shadow: var(--sombra-md); backdrop-filter: blur(8px); }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 var(--espaco-5); }
.margin-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--espaco-3); }
.checkbox-label, label:has(input[type="checkbox"]) { display: flex; align-items: center; gap: var(--espaco-2); }
.checkbox-label input, label:has(input[type="checkbox"]) input { width: auto; min-height: auto; }
.choice-list { display: grid; gap: var(--espaco-2); margin: 0; padding: 0; list-style: none; }
.choice-card { display: flex; align-items: center; gap: var(--espaco-3); margin: 0; padding: var(--espaco-4); border: 1px solid var(--cor-borda); border-radius: var(--raio-md); cursor: pointer; }
.choice-card:hover { border-color: var(--cor-acao); background: var(--cor-superficie-baixa); }
.choice-card input { width: auto; min-height: auto; }
.choice-card strong, .choice-card small { display: block; }
.choice-card small { color: var(--cor-muted); }
.resource-row { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-4); padding: var(--espaco-4) 0; color: var(--cor-texto-forte); border-bottom: 1px solid var(--cor-borda); text-decoration: none; }
.resource-row:last-child { border-bottom: 0; }
.resource-row:hover strong, .resource-row:hover > span:last-child { color: var(--cor-acao); }
.resource-row strong, .resource-row small { display: block; }
.resource-row small { margin-top: 2px; color: var(--cor-muted); }
.operation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--espaco-5); margin-top: var(--espaco-5); }
.operation-grid .card + .card { margin-top: 0; }
.table-action-form { display: inline-flex; align-items: center; justify-content: flex-end; gap: var(--espaco-2); margin: 0; }
.table-action-form select { width: auto; min-width: 150px; }
.shortcut-stat { margin-left: auto; color: var(--cor-muted); }
.code-block { max-width: 100%; padding: var(--espaco-4); overflow: auto; color: #e2e8f0; background: #0f172a; border-radius: var(--raio-md); white-space: pre-wrap; overflow-wrap: anywhere; }
.generated-content { padding: var(--espaco-4); background: var(--cor-superficie-baixa); border: 1px solid var(--cor-borda); border-radius: var(--raio-md); }
.danger-zone { margin-top: var(--espaco-5); padding-top: var(--espaco-4); border-top: 1px solid var(--cor-borda); }
button.botao-perigo, .botao-perigo { color: var(--cor-erro-texto); background: var(--cor-erro-bg); border-color: #fecaca; }
.checklist-row { padding: var(--espaco-2) 0; border-bottom: 1px solid var(--cor-borda); }
.checklist-row form { display: flex; align-items: center; gap: var(--espaco-3); }
.check-button { width: 36px; min-height: 36px; flex: 0 0 36px; padding: 0; color: var(--cor-muted); background: var(--cor-superficie-media); border-radius: 50%; }
.check-button.done { color: #fff; background: var(--cor-sucesso-texto); }
.pilot-card { padding: var(--espaco-4) 0; border-bottom: 1px solid var(--cor-borda); }
.pilot-card > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-3); }
.pilot-card > small { color: var(--cor-muted); }
.pilot-update { display: grid; grid-template-columns: 90px 1fr; gap: var(--espaco-3); margin-top: var(--espaco-2); padding: var(--espaco-2); background: var(--cor-superficie-baixa); border-radius: var(--raio-sm); }
.grade-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--espaco-3); }
.resource-card { min-height: 132px; display: flex; flex-direction: column; padding: var(--espaco-4); color: var(--cor-texto-forte); background: var(--cor-superficie-baixa); border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); text-decoration: none; }
.resource-card:hover { border-color: var(--cor-acao); box-shadow: var(--sombra-sm); }
.resource-card .resource-icon { margin-left: auto; color: var(--cor-acao); }
.resource-card strong { margin-top: auto; }
.resource-card small { color: var(--cor-muted); }
.report-group + .report-group { margin-top: var(--espaco-5); }
.validation-card { max-width: 540px; margin: 5vh auto; text-align: center; }
.validation-icon { display: grid; width: 64px; height: 64px; place-items: center; margin: 0 auto var(--espaco-4); border-radius: 50%; font-size: 30px; }
.validation-icon.success { color: var(--cor-sucesso-texto); background: var(--cor-sucesso-bg); }
.validation-icon.error { color: var(--cor-erro-texto); background: var(--cor-erro-bg); }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-4); margin-bottom: var(--espaco-5); padding: var(--espaco-4); }
.calendar-navigation { display: flex; align-items: center; gap: var(--espaco-3); }
.calendar-navigation strong { min-width: 180px; text-align: center; text-transform: capitalize; }
.calendar-filter { min-width: 220px; margin: 0; }
.calendar-list { display: grid; gap: var(--espaco-3); }
.calendar-event { display: grid; grid-template-columns: 76px minmax(0,1fr) auto; gap: var(--espaco-5); align-items: center; }
.calendar-event.card + .calendar-event.card { margin-top: 0; }
.calendar-date { display: grid; place-items: center; align-self: stretch; padding: var(--espaco-3); color: var(--cor-acao); background: color-mix(in srgb,var(--cor-secundaria) 12%,#fff); border-radius: var(--raio-md); text-transform: uppercase; }
.calendar-date strong { font-size: 30px; line-height: 1; }
.calendar-date span { font-size: 11px; font-weight: 750; letter-spacing: .08em; }
.calendar-event-content h2 { margin: var(--espaco-2) 0 var(--espaco-1); }
.calendar-event-content p { margin: 0 0 var(--espaco-2); color: var(--cor-muted); }
.calendar-event-content > small { color: var(--cor-muted); }
.calendar-event-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espaco-2); color: var(--cor-muted); font-size: 11px; }
.calendar-event.is-cancelled { opacity: .72; }
.calendar-event.is-cancelled h2 { text-decoration: line-through; }
.institutional-calendar-page, .family-calendar-page, .family-report-page { max-width: 1440px; }
.institutional-calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-4); margin-bottom: var(--espaco-5); padding: var(--espaco-4); }
.institutional-calendar-toolbar .calendar-navigation { min-width: 260px; }
.calendar-legend { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--espaco-3); color: var(--cor-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.calendar-legend span { display: inline-flex; align-items: center; gap: 6px; }
.calendar-legend span::before { width: 9px; height: 9px; content: ""; background: #64748b; border-radius: 50%; }
.calendar-legend-academico::before { background: #00796f !important; }
.calendar-legend-avaliacao::before { background: #7c3aed !important; }
.calendar-legend-feriado::before { background: #dc2626 !important; }
.calendar-legend-reuniao::before { background: #334155 !important; }
.institutional-calendar-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: var(--espaco-5); align-items: start; }
.institutional-calendar-main, .institutional-calendar-side { min-width: 0; }
.institutional-calendar-side { display: grid; gap: var(--espaco-4); }
.calendar-summary-card { padding: var(--espaco-5); color: #fff; background: #111a2f !important; border: 1px solid #111a2f; border-radius: var(--raio-lg); box-shadow: var(--sombra-sm); }
.calendar-summary-card .page-eyebrow, .calendar-summary-card p { color: #aeb8ce; }
.calendar-summary-card strong { display: block; margin: var(--espaco-2) 0; font-size: 40px; line-height: 1; }
.upcoming-calendar-card { padding: var(--espaco-4); }
.upcoming-calendar-event { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: var(--espaco-3); align-items: center; padding: var(--espaco-3) 0; border-bottom: 1px solid var(--cor-borda); }
.upcoming-calendar-event:last-child { border-bottom: 0; }
.upcoming-calendar-event time { display: grid; min-height: 46px; place-content: center; color: var(--cor-texto-forte); background: var(--cor-superficie-media); border-radius: var(--raio-md); font-size: 10px; text-align: center; text-transform: uppercase; }
.upcoming-calendar-event time strong { display: block; font-size: 16px; line-height: 1; }
.upcoming-calendar-event > div { min-width: 0; }
.upcoming-calendar-event > div strong, .upcoming-calendar-event > div small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upcoming-calendar-event > div small { color: var(--cor-muted); }
.real-calendar { padding: 0 !important; overflow: hidden; }
.real-calendar-weekdays, .real-calendar-week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.real-calendar-weekdays { color: var(--cor-muted); border-bottom: 1px solid var(--cor-borda); font-size: 11px; font-weight: 750; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.real-calendar-weekdays span { padding: var(--espaco-3); }
.real-calendar-week { border-bottom: 1px solid var(--cor-borda); }
.real-calendar-week:last-child { border-bottom: 0; }
.real-calendar-day { min-width: 0; min-height: 132px; padding: 10px; border-right: 1px solid var(--cor-borda); }
.real-calendar-day:last-child { border-right: 0; }
.real-calendar-day.is-outside { color: #a8adb5; background: #fafbfc; }
.real-calendar-day.is-today { background: #edf9f7; box-shadow: inset 0 0 0 1px #71bdb5; }
.real-calendar-day > time { display: block; margin-bottom: 8px; font-weight: 700; }
.real-calendar-day.is-today > time { color: #006a61; }
.real-calendar-events { display: grid; gap: 5px; }
.calendar-event-chip { display: block; min-width: 0; padding: 5px 6px; overflow: hidden; color: #075e57; background: #e0f2f0; border-left: 2px solid #00796f; border-radius: 3px; font-size: 10px; font-weight: 700; line-height: 13px; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event-chip.category-avaliacao { color: #5b21b6; background: #ede9fe; border-color: #7c3aed; }
.calendar-event-chip.category-feriado { color: #b91c1c; background: #fee2e2; border-color: #dc2626; }
.calendar-event-chip.category-reuniao { color: #334155; background: #e2e8f0; border-color: #334155; }
.calendar-event-chip.category-esportivo, .calendar-event-chip.category-cultural { color: #9a3412; background: #ffedd5; border-color: #ea580c; }
.calendar-event-chip.is-official { color: #334155; background: #f1f5f9; border-color: #64748b; }
.calendar-accessible-list { display: grid; gap: var(--espaco-4); margin-top: var(--espaco-5); }
.calendar-agenda-heading { display: flex; align-items: end; justify-content: space-between; gap: var(--espaco-4); padding: 0 2px; }
.calendar-agenda-heading h2 { margin: 3px 0 2px; font-size: 20px; }
.calendar-agenda-heading p { margin: 0; color: var(--cor-muted); }
.calendar-agenda-count { flex: 0 0 auto; padding: 6px 10px; color: #075e57; background: #e0f2f0; border-radius: 999px; font-size: 11px; font-weight: 800; }
.calendar-agenda-items { display: grid; gap: var(--espaco-3); }
.calendar-event-detail { --calendar-detail-color: #00796f; --calendar-detail-soft: #e0f2f0; position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: var(--espaco-4); align-items: center; min-width: 0; padding: var(--espaco-4); overflow: hidden; background: #fff; border: 1px solid var(--cor-borda); border-left: 4px solid var(--calendar-detail-color); border-radius: var(--raio-lg); box-shadow: var(--sombra-sm); }
.calendar-event-detail.category-avaliacao { --calendar-detail-color: #7c3aed; --calendar-detail-soft: #ede9fe; }
.calendar-event-detail.category-feriado { --calendar-detail-color: #dc2626; --calendar-detail-soft: #fee2e2; }
.calendar-event-detail.category-reuniao { --calendar-detail-color: #334155; --calendar-detail-soft: #e2e8f0; }
.calendar-event-detail.category-esportivo,
.calendar-event-detail.category-cultural { --calendar-detail-color: #ea580c; --calendar-detail-soft: #ffedd5; }
.calendar-event-detail-date { display: grid; min-height: 68px; place-content: center; color: var(--calendar-detail-color); background: var(--calendar-detail-soft); border-radius: var(--raio-md); line-height: 1; text-align: center; text-transform: uppercase; }
.calendar-event-detail-date span,
.calendar-event-detail-date small { font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.calendar-event-detail-date strong { margin: 3px 0; color: var(--cor-texto-forte); font-size: 24px; }
.calendar-event-detail-content { min-width: 0; }
.calendar-event-detail-title { display: flex; align-items: center; gap: var(--espaco-3); min-width: 0; }
.calendar-event-detail-title h3 { min-width: 0; margin: 0; overflow: hidden; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event-category { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; color: var(--calendar-detail-color); font-size: 10px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.calendar-event-category svg,
.calendar-event-edit svg { width: 16px; height: 16px; fill: none; stroke: currentColor; }
.calendar-event-detail-content > p { max-width: 920px; margin: 7px 0 8px; color: var(--cor-muted); line-height: 1.45; }
.calendar-event-detail-meta { display: flex; flex-wrap: wrap; gap: 6px 0; color: var(--cor-muted); font-size: 11px; }
.calendar-event-detail-meta span { display: inline-flex; align-items: center; }
.calendar-event-detail-meta span + span::before { width: 3px; height: 3px; margin: 0 9px; content: ""; background: #98a2b3; border-radius: 50%; }
.calendar-event-edit { display: grid; width: 36px; height: 36px; place-items: center; color: var(--calendar-detail-color); background: var(--calendar-detail-soft); border-radius: var(--raio-md); text-decoration: none; transition: transform .16s ease, box-shadow .16s ease; }
.calendar-event-edit:hover { box-shadow: 0 5px 14px rgb(15 23 42 / 12%); transform: translateY(-1px); }
.family-class-agenda { display: grid; gap: var(--espaco-3); }
.report-chart-card, .report-opinions-card, .report-subject-card { padding: var(--espaco-5); }
.report-chart { min-height: 260px; overflow-x: auto; }
.report-chart svg { display: block; width: 100%; min-width: 620px; height: auto; }
.report-chart-gridline { stroke: #dfe3e8; stroke-width: 1; }
.report-chart-axis-label { fill: #68717f; font: 11px var(--fonte-base); }
.report-chart-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.report-chart-point { stroke: #fff; stroke-width: 2; }
.report-chart-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-bottom: var(--espaco-3); color: var(--cor-muted); font-size: 12px; }
.report-chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
.report-chart-legend i { width: 9px; height: 9px; border-radius: 50%; }
.report-subjects { display: grid; gap: var(--espaco-5); margin-top: var(--espaco-5); }
.report-period { border-top: 1px solid var(--cor-borda); }
.report-period summary { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-4); padding: var(--espaco-4) 0; cursor: pointer; }
.report-period summary > span:first-child strong, .report-period summary > span:first-child small { display: block; }
.report-period summary small { color: var(--cor-muted); }
.report-average, .performance-grade { color: #006a61; font-weight: 800; }
.report-assessment-table { margin-bottom: var(--espaco-4); }
.report-opinions-card { margin-top: var(--espaco-5); }
.planning-page { max-width: 1240px; }
.planning-form-card { max-width: 840px; padding: var(--espaco-5); }
.planning-list-card { padding: var(--espaco-5); }
.planning-material-grid { display: grid; gap: var(--espaco-4); }
.planning-material-card { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: var(--espaco-4); align-items: center; }
.planning-material-card h2 { margin: 6px 0; }
.planning-material-card p { margin: 0 0 6px; color: var(--cor-muted); }
.planning-material-card small { color: var(--cor-muted); }
.planning-file-icon { display: grid; width: 48px; height: 48px; place-items: center; color: #006a61; background: #d9f4f0; border-radius: 50%; font-size: 24px; font-weight: 800; }
.planning-download-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--espaco-4); margin-bottom: var(--espaco-5); }
.planning-header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}.planning-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.planning-tabs{display:flex;gap:4px;margin-bottom:16px;padding:5px;background:#eef2f5;border:1px solid var(--cor-borda);border-radius:11px}.planning-tabs a{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;color:var(--cor-muted);border-radius:8px;font-size:13px;font-weight:750;text-decoration:none}.planning-tabs a svg{width:17px;height:17px}.planning-tabs a:hover{color:var(--cor-acao);background:rgba(255,255,255,.65)}.planning-tabs a.ativo{color:var(--cor-texto-forte);background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.08)}.planning-workflow-note{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;align-items:center;margin:-2px 0 14px;padding:13px 16px;color:#173d3a;background:#eef8f6;border:1px solid #c9e7e2;border-radius:11px}.planning-workflow-note p{margin:3px 0 0;color:#526b68;font-size:12px;line-height:1.45}.planning-workflow-icon{display:grid;width:36px;height:36px;place-items:center;color:var(--cor-acao);background:#fff;border:1px solid #d5ece8;border-radius:9px}.planning-workflow-icon svg{width:18px;height:18px}.planning-filter-card{margin-bottom:14px;padding:15px 18px}.planning-filters{display:grid;grid-template-columns:minmax(240px,1fr) 145px 190px 230px auto;align-items:end;gap:12px}.planning-filters-materials{grid-template-columns:minmax(280px,1fr) 160px 270px auto}.planning-filters label{display:grid;gap:6px;margin:0}.planning-filters label>span{color:var(--cor-muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.planning-filters input,.planning-filters select{margin:0;min-height:40px}.planning-filter-actions{display:flex;align-items:center;gap:10px}.planning-filter-actions a{color:var(--cor-muted);font-size:12px;font-weight:700}.planning-table td{vertical-align:middle}.planning-empty{display:grid;justify-items:center;gap:7px;padding:18px}.planning-empty p{max-width:590px}.planning-empty a{color:var(--cor-acao);font-size:12px;font-weight:750}.planning-empty-icon{display:grid;width:38px;height:38px;place-items:center;color:var(--cor-acao);background:#e4f4f1;border-radius:10px}.planning-empty-icon svg{width:19px;height:19px}.planning-status-rascunho{color:#475569;background:#eef2f5}.planning-status-enviado,.planning-status-em_revisao{color:#1d4ed8;background:#dbeafe}.planning-status-ajustes{color:#a14b05;background:#fff0ca}.planning-status-aprovado,.planning-status-publicado{color:#087443;background:#d9f8e7}.planning-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:18px}.planning-editor-card{padding:0 25px}.planning-editor-card>section{padding:24px 0;border-bottom:1px solid var(--cor-borda)}.planning-editor-card>section:last-child{border-bottom:0}.planning-editor-card textarea{resize:vertical}.planning-title-field{grid-column:1/-1}.planning-editor-aside{position:sticky;top:92px;display:grid;gap:12px}.planning-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:18px}.planning-detail-main,.planning-review-aside{display:grid;gap:14px}.planning-review-aside{position:sticky;top:92px}.planning-overview-card{padding:18px 20px}.planning-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.planning-overview-grid>div{display:grid;align-content:start;gap:7px}.planning-overview-grid small{color:var(--cor-muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.planning-overview-grid strong{font-size:13px}.planning-content-card{padding:0 22px}.planning-content-card>section{display:grid;grid-template-columns:35px minmax(0,1fr);gap:13px;padding:20px 0;border-bottom:1px solid var(--cor-borda)}.planning-content-card>section:last-child{border-bottom:0}.planning-content-card h2{margin:1px 0 8px;font-size:16px}.planning-content-card p{margin:0 0 7px;color:var(--cor-texto);font-size:13px;line-height:1.65}.planning-content-icon{display:grid;width:34px;height:34px;place-items:center;color:var(--cor-acao);background:#e3f3f1;border-radius:9px}.planning-content-icon svg{width:18px;height:18px}.planning-history-card{padding:20px 22px}.planning-history-card ol{display:grid;gap:0;margin:0;padding:0;list-style:none}.planning-history-card li{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;padding:0 0 19px}.planning-history-card li:not(:last-child)::before{position:absolute;top:13px;bottom:0;left:5px;width:2px;content:"";background:#dbe4e8}.planning-history-dot{position:relative;z-index:1;width:12px;height:12px;margin-top:3px;background:var(--cor-acao);border:3px solid #dff3f0;border-radius:50%}.planning-history-card li>div{display:grid;gap:3px}.planning-history-card li small{color:var(--cor-muted);font-size:11px}.planning-history-card li p{margin:4px 0 0;padding:9px 11px;background:#f4f7f8;border-radius:7px;font-size:12px}.planning-action-card{padding:18px}.planning-action-card h2{margin:3px 0 6px;font-size:17px}.planning-action-card>p:not(.page-eyebrow){margin:0 0 14px;color:var(--cor-muted);font-size:12px;line-height:1.5}.planning-action-card form{display:grid;gap:9px}.planning-action-card label{font-size:11px;font-weight:750}.planning-action-card textarea{margin:0;resize:vertical}.planning-action-card button{width:100%}.planning-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.planning-action-card.readonly{display:grid;gap:8px;background:#f8fafb}.planning-action-card.readonly>svg{width:22px;height:22px;color:var(--cor-acao)}.planning-action-card.readonly p{margin:0}.planning-file-icon svg{width:23px;height:23px}
.student-portal-home, .student-portal-page { max-width: 1240px; margin-inline: auto; }
.student-welcome { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--espaco-6); align-items: end; margin-bottom: var(--espaco-6); }
.student-welcome h1 { max-width: 760px; margin: 5px 0; font-size: clamp(28px, 3vw, 38px); line-height: 1.18; letter-spacing: -.025em; }
.student-welcome h1 span { color: var(--cor-muted); font-weight: 600; }
.student-welcome > div > p:last-child { margin: 0; color: var(--cor-muted); }
.student-quick-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espaco-3); }
.student-stat-card { min-height: 142px; display: flex; flex-direction: column; padding: var(--espaco-4); color: var(--cor-texto-forte); background: var(--cor-superficie-media); border-radius: var(--raio-lg); text-decoration: none; }
.student-stat-card small { color: var(--cor-muted); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.student-stat-card strong { margin: 9px 0 2px; font-size: 29px; line-height: 1; }
.student-stat-card span { margin-top: auto; color: var(--cor-acao); font-size: 11px; font-weight: 700; }
.student-stat-card progress { width: 100%; height: 5px; margin-top: 9px; accent-color: var(--cor-acao); }
.student-stat-card.is-dark { color: #fff; background: #111a2f; }
.student-stat-card.is-dark small { color: #bec6e0; }
.student-stat-card.is-dark span { color: #86f2e4; }
.student-portal-layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: var(--espaco-6); align-items: start; }
.student-portal-main { display: grid; gap: var(--espaco-6); }
.student-section-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-4); margin-bottom: var(--espaco-3); }
.student-section-heading h2 { position: relative; margin: 0; padding-left: 15px; font-size: 23px; }
.student-section-heading h2::before { position: absolute; inset: 2px auto 2px 0; width: 4px; content: ""; background: var(--cor-acao); border-radius: 4px; }
.student-section-heading a { color: var(--cor-acao); font-size: 12px; font-weight: 700; text-decoration: none; }
.student-assessment-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--espaco-3); }
.student-assessment-card { min-height: 178px; padding: var(--espaco-5); background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); }
.student-assessment-card h3 { margin: var(--espaco-4) 0 2px; font-size: 16px; }
.student-assessment-card p { margin: 0; color: var(--cor-muted); }
.student-assessment-card time { display: block; margin-top: var(--espaco-4); color: var(--cor-muted); font-size: 12px; }
.student-task-list { overflow: hidden; background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); }
.student-task-list article { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: var(--espaco-4); align-items: center; padding: var(--espaco-4); border-bottom: 1px solid var(--cor-borda); }
.student-task-list article:last-child { border-bottom: 0; }
.student-task-list article div strong, .student-task-list article div small { display: block; }
.student-task-list article div small, .student-task-list time { color: var(--cor-muted); font-size: 12px; }
.student-task-icon { display: grid; width: 48px; height: 48px; place-items: center; color: #006a61; background: #d9f4f0; border-radius: var(--raio-md); font-size: 20px; font-weight: 800; }
.student-material-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--espaco-3); }
.student-material-strip > a { min-width: 0; display: flex; flex-direction: column; padding: var(--espaco-4); color: var(--cor-texto-forte); background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); text-decoration: none; }
.student-material-strip > a strong, .student-material-strip > a small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.student-material-strip > a small { margin: 4px 0 var(--espaco-3); color: var(--cor-muted); }
.student-material-strip > a span { margin-top: auto; color: var(--cor-acao); font-weight: 750; }
.student-portal-side { display: grid; gap: var(--espaco-5); }
.student-agenda-card { padding: var(--espaco-5); color: #fff; background: #111a2f; border-radius: var(--raio-lg); }
.student-agenda-card .page-eyebrow { color: #86f2e4; }
.student-agenda-card article { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: var(--espaco-3); align-items: center; padding: var(--espaco-3) 0; border-bottom: 1px solid #303a50; }
.student-agenda-card article time { display: grid; min-height: 48px; place-content: center; background: #293349; border-radius: var(--raio-md); font-size: 10px; text-align: center; text-transform: uppercase; }
.student-agenda-card article time strong { display: block; font-size: 18px; line-height: 1; }
.student-agenda-card article div { min-width: 0; }
.student-agenda-card article div strong, .student-agenda-card article div small { display: block; }
.student-agenda-card article div small { color: #bec6e0; }
.student-agenda-card > .botao { width: 100%; justify-content: center; margin-top: var(--espaco-4); }
.student-shortcuts { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--espaco-2); padding: var(--espaco-4); }
.student-shortcuts h2 { grid-column: 1 / -1; font-size: 15px; }
.student-shortcuts a { display: grid; gap: 4px; padding: var(--espaco-3) 5px; color: var(--cor-texto-forte); background: var(--cor-superficie-media); border-radius: var(--raio-md); font-size: 10px; text-align: center; text-decoration: none; }
.student-shortcuts a strong { color: var(--cor-acao); font-size: 18px; }
.student-grade-grid { display: grid; gap: var(--espaco-4); }
.student-grade-card { padding: var(--espaco-5); }
.student-grade-card details { border-top: 1px solid var(--cor-borda); }
.student-grade-card summary { display: flex; justify-content: space-between; gap: var(--espaco-4); padding: var(--espaco-4) 0; cursor: pointer; }
.student-grade-card summary span { color: var(--cor-acao); font-weight: 800; }
.student-activity-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espaco-5); align-items: start; }
.student-activity-layout > .card { padding: var(--espaco-5); }
.student-document-grid { display: grid; gap: var(--espaco-4); }
.student-document-card { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: var(--espaco-4); align-items: center; }
.student-document-card h2 { margin: 0 0 4px; }
.student-document-card p, .student-document-card small { color: var(--cor-muted); }
@media (max-width: 1020px) {
    .institutional-calendar-layout { grid-template-columns: 1fr; }
    .institutional-calendar-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .student-welcome { grid-template-columns: 1fr; }
    .student-portal-layout { grid-template-columns: 1fr; }
    .student-portal-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .planning-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
    .planning-filters{grid-template-columns:1fr 1fr}.planning-search{grid-column:1/-1}
    .planning-editor-layout,.planning-detail-layout{grid-template-columns:1fr}.planning-editor-aside,.planning-review-aside{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.planning-editor-aside .structure-submit{align-self:stretch}.planning-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 760px) {
    .institutional-calendar-toolbar { align-items: stretch; flex-direction: column; }
    .institutional-calendar-toolbar .calendar-navigation { min-width: 0; justify-content: space-between; }
    .calendar-legend { justify-content: flex-start; }
    .real-calendar { overflow-x: auto; }
    .real-calendar-weekdays, .real-calendar-weeks { min-width: 700px; }
    .real-calendar-day { min-height: 112px; }
    .institutional-calendar-side { grid-template-columns: 1fr; }
    .calendar-agenda-heading { align-items: flex-start; }
    .calendar-event-detail { grid-template-columns: 54px minmax(0, 1fr); gap: var(--espaco-3); padding: var(--espaco-3); }
    .calendar-event-detail-date { min-height: 58px; }
    .calendar-event-detail-title { align-items: flex-start; flex-direction: column; gap: 4px; padding-right: 34px; }
    .calendar-event-detail-title h3 { overflow: visible; white-space: normal; }
    .calendar-event-edit { position: absolute; top: var(--espaco-3); right: var(--espaco-3); width: 32px; height: 32px; }
    .report-chart-card, .report-opinions-card, .report-subject-card { padding: var(--espaco-4); }
    .report-period summary { align-items: flex-start; flex-direction: column; gap: var(--espaco-2); }
    .planning-material-card { grid-template-columns: 44px minmax(0, 1fr); }
    .planning-material-card > .botao { width: 100%; grid-column: 1 / -1; }
    .planning-download-summary { grid-template-columns: 1fr; }
    .planning-kpis,.planning-filters,.planning-editor-aside,.planning-review-aside,.planning-overview-grid{grid-template-columns:1fr}.planning-tabs{overflow-x:auto}.planning-tabs a{white-space:nowrap}.planning-filter-actions{justify-content:flex-start}.planning-editor-card{padding:0 17px}.planning-review-actions{grid-template-columns:1fr}
    .student-quick-stats, .student-activity-layout, .student-portal-side { grid-template-columns: 1fr; }
    .student-assessment-grid, .student-material-strip { grid-template-columns: 1fr; }
    .student-task-list article { grid-template-columns: 40px minmax(0, 1fr); }
    .student-task-list article time { grid-column: 2; }
    .student-document-card { grid-template-columns: 44px minmax(0, 1fr); }
    .student-document-card > .botao, .student-document-card > .badge { grid-column: 1 / -1; width: 100%; }
}

/* Stitch 7 — contratos explícitos para os novos fluxos acadêmicos. */
.teacher-assignments-page,
.published-schedule {
    width: 100%;
}

.filter-bar,
.dialog-actions,
.dialog-header,
.sticky-form-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.filter-bar {
    flex-wrap: wrap;
}

.dialog-card {
    width: min(680px, calc(100vw - 32px));
    max-height: calc(100vh - 32px);
    overflow: auto;
    border: 1px solid var(--border, #e0e3e5);
    border-radius: 12px;
    background: #fff;
    padding: 24px;
}

.dialog-header {
    justify-content: space-between;
}

.dialog-actions,
.sticky-form-actions {
    justify-content: flex-end;
}

.tabs {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--border, #e0e3e5);
}

.tab {
    padding: 10px 14px;
    color: var(--text-secondary, #45464d);
    border-bottom: 2px solid transparent;
}

.texto-erro {
    color: #ba1a1a;
}

.narrow-page {
    max-width: 880px;
}

.alerta-sucesso {
    border-color: #99d5ca;
    background: #effaf7;
    color: #07665d;
}

.botao-escuro {
    border-color: #0f172a;
    background: #0f172a;
    color: #fff;
}

@media (max-width: 760px) {
    .dialog-actions,
    .sticky-form-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }
}

/* Stitch 7 — turmas, atribuições, horários e notas */
.stitch-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}
.stitch-kpi{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px;display:grid;gap:6px}
.stitch-kpi small,.consolidated-grade-toolbar small{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.stitch-kpi strong{font-size:30px;line-height:38px;font-variant-numeric:tabular-nums}
.stitch-actions{justify-content:flex-end;margin-bottom:16px}
.assignment-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.assignment-card{border-top:5px solid #0d9488;display:grid;gap:20px}
.assignment-card dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0}
.assignment-card dl div{background:#f2f4f6;border-radius:8px;padding:12px}
.assignment-card dt{font-size:12px;text-transform:uppercase;color:var(--muted)}
.assignment-card dd{margin:4px 0 0;font-weight:700}
.assignment-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.master-detail-layout{display:grid;grid-template-columns:320px 1fr;gap:24px}
.master-list{align-self:start;padding:0;overflow:hidden}
.master-list h2{padding:20px;margin:0;border-bottom:1px solid var(--border)}
.master-list>a{display:grid;padding:16px 20px;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none}
.master-list>a.ativo{background:#e7f7f5;border-left:4px solid #0d9488}
.master-list small{color:var(--muted);margin-top:4px}
.assignment-hub{max-width:1480px;margin:0 auto}.assignment-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.assignment-metrics article{display:flex;align-items:center;gap:12px;min-height:78px;padding:14px 16px;background:#fff;border:1px solid var(--cor-borda);border-radius:11px;box-shadow:var(--sombra-sm)}.assignment-metrics article>span{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;background:#e7f3f1;border-radius:9px;color:#087a70}.assignment-metrics article>span.warning{background:#fff2d7;color:#9c6300}.assignment-metrics article>span.success{background:#ddf7e7;color:#08703b}.assignment-metrics svg{width:19px;height:19px}.assignment-metrics article>div{display:grid;gap:2px}.assignment-metrics small{color:var(--cor-muted);font-size:10px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.assignment-metrics strong{font-size:24px;line-height:1.1;font-variant-numeric:tabular-nums}.assignment-mode-switch{display:grid;grid-template-columns:1fr 1fr;max-width:680px;margin-bottom:14px;padding:4px;background:#e9edef;border-radius:11px}.assignment-mode-switch a{display:flex;align-items:center;gap:10px;min-height:48px;padding:7px 13px;color:var(--cor-muted);border:1px solid transparent;border-radius:8px;text-decoration:none}.assignment-mode-switch a.ativo{background:#fff;border-color:var(--cor-borda);box-shadow:var(--sombra-sm);color:var(--cor-texto-forte)}.assignment-mode-switch svg{width:19px;height:19px}.assignment-mode-switch span{display:grid}.assignment-mode-switch strong{font-size:12px}.assignment-mode-switch small{font-size:10px;color:var(--cor-muted)}.assignment-filters{display:grid;grid-template-columns:minmax(230px,1.45fr) repeat(4,minmax(125px,.65fr)) auto;align-items:end;gap:10px;margin-bottom:16px;padding:14px 15px;background:#fff;border:1px solid var(--cor-borda);border-radius:11px}.assignment-filters label{display:grid;gap:5px;margin:0;color:var(--cor-muted);font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.assignment-filters input,.assignment-filters select{min-height:38px;margin:0;padding:7px 9px;background:var(--ds-surface-low);border-color:transparent;font-size:12px;text-transform:none}.assignment-search>span:last-child{position:relative}.assignment-search svg{position:absolute;top:50%;left:10px;width:16px;height:16px;transform:translateY(-50%);color:var(--cor-muted)}.assignment-search input{width:100%;padding-left:34px}.assignment-filters .botao{min-height:38px;white-space:nowrap}.assignment-master-detail{display:grid;grid-template-columns:310px minmax(0,1fr);align-items:start;gap:16px}.assignment-master-list{padding:0;overflow:hidden}.assignment-master-heading{padding:15px 16px;border-bottom:1px solid var(--cor-borda)}.assignment-master-heading .page-eyebrow{margin-bottom:2px}.assignment-master-heading strong{font-size:13px}.assignment-master-items{max-height:590px;overflow-y:auto}.assignment-master-items>a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:63px;padding:11px 13px;color:var(--cor-texto-forte);border-bottom:1px solid var(--cor-borda);text-decoration:none}.assignment-master-items>a:hover{background:#f5f8f8}.assignment-master-items>a.ativo{padding-left:10px;background:#e5f5f2;border-left:3px solid var(--cor-acao)}.assignment-master-items>a>span:first-child{display:grid;min-width:0;gap:2px}.assignment-master-items strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.assignment-master-items small{overflow:hidden;color:var(--cor-muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.assignment-list-count{display:grid;min-width:29px;height:25px;place-items:center;padding:0 6px;background:#e7f3f1;border-radius:999px;color:#087a70;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums}.assignment-list-count.warning{background:#fff0d2;color:#985f00}.assignment-list-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-top:1px solid var(--cor-borda);font-size:11px;font-weight:700}.assignment-list-pagination a[aria-disabled=true]{color:#9aa2a9;pointer-events:none}.assignment-detail-panel{min-width:0;padding:20px}.assignment-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.assignment-detail-header .page-eyebrow{margin-bottom:3px}.assignment-detail-header h2{margin:0 0 3px;font-size:20px}.assignment-detail-header p{margin:0;color:var(--cor-muted);font-size:12px}.assignment-table{min-width:860px}.assignment-table td{vertical-align:middle}.assignment-action-column{text-align:right}.assignment-row-actions{text-align:right;white-space:nowrap}.assignment-pending-row{background:#fffaf0!important}.assignment-permissions{display:flex;flex-wrap:wrap;gap:4px}.assignment-permissions>span{padding:3px 6px;background:#eef2f3;border-radius:5px;color:#4f5e64;font-size:9px;font-weight:750;text-transform:uppercase}.assignment-editor{max-width:1120px;margin:0 auto}.assignment-professor-picker{padding:22px}.assignment-picker-search{max-width:620px;margin-bottom:17px}.assignment-picker-search>label{display:block;margin-bottom:5px;color:var(--cor-muted);font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.assignment-picker-search>span{position:relative;display:flex;gap:8px}.assignment-picker-search svg{position:absolute;top:50%;left:11px;width:17px;height:17px;transform:translateY(-50%);color:var(--cor-muted)}.assignment-picker-search input{flex:1;min-height:39px;margin:0;padding-left:36px}.assignment-professor-results{display:grid;grid-template-columns:1fr 1fr;gap:8px}.assignment-professor-results>a{display:grid;grid-template-columns:38px minmax(0,1fr) auto 17px;align-items:center;gap:10px;padding:11px 12px;color:var(--cor-texto-forte);border:1px solid var(--cor-borda);border-radius:9px;text-decoration:none}.assignment-professor-results>a:hover{border-color:#9dcfc7;background:#f2faf8}.assignment-professor-results>a>span:nth-child(2){display:grid;min-width:0}.assignment-professor-results strong,.assignment-professor-results small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-professor-results strong{font-size:12px}.assignment-professor-results small{color:var(--cor-muted);font-size:10px}.assignment-professor-results svg{width:16px;height:16px}.assignment-avatar{display:grid;width:36px;height:36px;place-items:center;background:#dff3ef;border-radius:50%;color:#087a70;font-size:13px;font-weight:800}.assignment-avatar.large{width:43px;height:43px;font-size:16px}.assignment-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;align-items:start;gap:18px}.assignment-editor-card{padding:0 23px}.assignment-context-row{display:grid;grid-template-columns:43px minmax(0,1fr) auto;align-items:center;gap:11px;padding:17px 0;border-bottom:1px solid var(--cor-borda)}.assignment-context-row>div{display:grid}.assignment-context-row small{color:var(--cor-muted);font-size:9px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.assignment-context-row strong{font-size:13px}.assignment-context-row span{color:var(--cor-muted);font-size:10px}.assignment-context-row>a{font-size:11px;font-weight:700}.assignment-editor-card>section{padding:22px 0;border-bottom:1px solid var(--cor-borda)}.assignment-editor-card>section:last-child{border-bottom:0}.assignment-permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.assignment-permission-grid>label{display:flex;align-items:flex-start;gap:9px;margin:0;padding:11px;background:var(--ds-surface-low);border:1px solid var(--cor-borda);border-radius:8px;cursor:pointer}.assignment-permission-grid input{width:17px;height:17px;flex:0 0 17px;margin:1px 0 0}.assignment-permission-grid label>span{display:grid;gap:2px}.assignment-permission-grid strong{font-size:11px}.assignment-permission-grid small{color:var(--cor-muted);font-size:9px}.assignment-editor-aside{position:sticky;top:92px;display:grid;gap:11px}
.detail-panel{min-width:0}
.schedule-version-layout{display:grid;grid-template-columns:320px 1fr;gap:24px}
.schedule-current{background:#0f172a;color:#fff;border-radius:12px;padding:28px;display:grid;gap:14px;align-self:start}
.schedule-current>strong{font-size:30px}
.schedule-builder-page{margin:-32px;min-height:calc(100vh - 72px);background:#f7f9fb}
.schedule-builder-header{min-height:88px;padding:16px 28px;background:#fff;border-bottom:1px solid #d8dadc;display:flex;justify-content:space-between;align-items:center;gap:20px}
.schedule-builder-header h1{font-size:20px;margin:0}
.schedule-builder-header p{margin:4px 0 0}
.schedule-builder-layout{display:grid;grid-template-columns:300px minmax(700px,1fr) 300px;min-height:calc(100vh - 160px)}
.schedule-palette,.schedule-alerts{padding:24px;background:#f2f4f6}
.schedule-palette{border-right:1px solid #c6c6cd}
.schedule-alerts{border-left:1px solid #c6c6cd}
.schedule-palette h2,.schedule-alerts h2{font-size:16px}
.schedule-palette article{background:#fff;border:1px solid #c6c6cd;border-radius:8px;padding:14px;margin-bottom:12px;display:grid;gap:8px}
.schedule-canvas{padding:20px;overflow:auto}
.schedule-columns{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));min-height:700px}
.schedule-columns>section{border-left:1px solid #d8dadc;padding:0 8px}
.schedule-columns>section>h2{text-align:center;font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.schedule-activity{border-left:4px solid #0d9488;background:#e7f7f5;border-radius:8px;padding:10px;margin:10px 0;display:grid;gap:4px}
.schedule-activity time{font-size:12px;font-weight:700}
.schedule-activity small,.schedule-activity span{font-size:12px;color:#45464d}
.schedule-type-recreio,.schedule-type-alimentacao{background:#eceef0;border-left-color:#76777d}
.schedule-type-projeto,.schedule-type-evento{background:#dae2fd;border-left-color:#565e74}
.teacher-agenda{display:grid;gap:12px}
.teacher-agenda>article{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:18px}
.teacher-agenda time{display:grid;color:#006a61}
.consolidated-grade-page{margin:-32px;min-height:calc(100vh - 72px);background:#f7f9fb}
.consolidated-grade-toolbar{background:#fff;border-bottom:1px solid #c6c6cd;padding:14px 24px;display:flex;align-items:center;gap:24px;position:sticky;top:0;z-index:5}
.consolidated-grade-toolbar>div{display:grid;min-width:170px}
.consolidated-grade-wrap{overflow:auto;max-height:calc(100vh - 190px)}
.consolidated-grade{border-collapse:separate;border-spacing:0;min-width:1100px;width:100%;font-variant-numeric:tabular-nums}
.consolidated-grade th,.consolidated-grade td{height:72px;padding:10px 14px;border-right:1px solid #e0e3e5;border-bottom:1px solid #e0e3e5;background:#fff;text-align:center}
.consolidated-grade thead th{position:sticky;top:0;background:#e6e8ea;z-index:2}
.consolidated-grade .student-column{position:sticky;left:0;text-align:left;min-width:320px;z-index:3}
.consolidated-grade .student-column strong,.consolidated-grade .student-column small{display:block}
.consolidated-grade .average-column{background:#edf7f6;color:#006a61;font-weight:700;min-width:150px}
.consolidated-grade thead th strong,.consolidated-grade thead th span{display:block}
.grade-cell-input{width:82px;text-align:center;border:0;background:transparent;font-size:18px;color:#006a61;font-variant-numeric:tabular-nums}
.grade-cell-input:focus{outline:2px solid #0d9488;background:#fff;border-radius:6px}
.consolidated-grade-footer{position:sticky;bottom:0;background:#e6e8ea;border-top:1px solid #c6c6cd;padding:14px 24px;display:flex;gap:40px}
.published-schedule-grid{display:grid;grid-template-columns:repeat(7,minmax(170px,1fr));gap:1px;background:#c6c6cd;border:1px solid #c6c6cd;border-radius:12px;overflow:auto}
.published-schedule-grid>section{background:#fff;min-height:520px;padding:12px}
.published-schedule-grid h2{font-size:12px;text-transform:uppercase;letter-spacing:.05em;text-align:center}
.published-schedule-card{background:#edf2ff;border-left:4px solid #565e74;border-radius:8px;padding:12px;margin:10px 0;display:grid;gap:5px}
.published-schedule-card time{font-weight:700;color:#006a61}
.published-schedule-card small,.published-schedule-card span{font-size:12px;color:#45464d}
@media(max-width:1100px){.master-detail-layout,.schedule-version-layout{grid-template-columns:1fr}.schedule-builder-layout{grid-template-columns:240px minmax(650px,1fr)}.schedule-alerts{grid-column:1/-1;border-left:0;border-top:1px solid #c6c6cd}.stitch-kpi-grid{grid-template-columns:repeat(2,1fr)}.assignment-filters{grid-template-columns:repeat(3,1fr)}.assignment-search{grid-column:span 2}.assignment-master-detail{grid-template-columns:270px minmax(0,1fr)}}
@media(max-width:760px){.stitch-kpi-grid{grid-template-columns:1fr}.assignment-card-grid{grid-template-columns:1fr}.teacher-agenda>article{grid-template-columns:1fr}.schedule-builder-page,.consolidated-grade-page{margin:-20px}.schedule-builder-header{align-items:flex-start;flex-direction:column}.schedule-builder-layout{display:block}.schedule-palette{border-right:0}.schedule-columns{grid-template-columns:repeat(7,240px)}.consolidated-grade-toolbar{overflow:auto}.consolidated-grade .student-column{min-width:210px}.assignment-metrics{grid-template-columns:repeat(2,1fr)}.assignment-master-detail,.assignment-editor-layout{grid-template-columns:1fr}.assignment-master-items{max-height:360px}.assignment-editor-aside{position:static}.assignment-professor-results{grid-template-columns:1fr}}
@media(max-width:560px){.assignment-metrics,.assignment-filters,.assignment-permission-grid{grid-template-columns:1fr}.assignment-search{grid-column:auto}.assignment-mode-switch{grid-template-columns:1fr}.assignment-detail-panel{padding:14px}.assignment-professor-picker{padding:15px}}

/* Estrutura acadêmica: turmas anuais separadas do fluxo de avaliações. */
.structure-page,.structure-form-page,.structure-detail-page{max-width:1480px;margin:0 auto}
.structure-primary-action{display:inline-flex;align-items:center;gap:8px}
.structure-primary-action>span{font-size:21px;font-weight:400;line-height:1}
.structure-context{display:flex;align-items:center;gap:14px;margin:-4px 0 20px;padding:13px 16px;background:#eef8f6;border:1px solid #cfe8e3;border-radius:10px;color:#164e49}
.structure-context>svg{width:21px;height:21px;flex:0 0 21px;color:var(--cor-acao)}
.structure-context>div{display:flex;align-items:baseline;gap:8px;min-width:0}
.structure-context strong{font-size:13px}.structure-context span{font-size:13px;color:#526b68}
.structure-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.structure-kpis>article{display:flex;align-items:center;gap:13px;min-height:82px;padding:15px 17px;background:#fff;border:1px solid var(--cor-borda);border-radius:11px;box-shadow:var(--sombra-sm)}
.structure-kpis article>div{display:grid;gap:2px}.structure-kpis small{color:var(--cor-muted);font-size:10px;font-weight:750;letter-spacing:.065em;text-transform:uppercase}.structure-kpis strong{font-size:24px;line-height:1.15;font-variant-numeric:tabular-nums}.structure-kpis strong em{color:var(--cor-muted);font-size:14px;font-style:normal;font-weight:600}
.structure-kpi-icon{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;background:#ddf3ef;border-radius:9px;color:#087a70}.structure-kpi-icon.warning{background:#fff2d7;color:#9c6300}.structure-kpi-icon svg{width:19px;height:19px}
.structure-filter-card{margin-bottom:18px;padding:15px 16px}
.structure-filters{display:grid;grid-template-columns:minmax(250px,1.6fr) repeat(4,minmax(130px,.7fr)) auto;align-items:end;gap:11px}
.structure-filters label{display:grid;gap:5px;margin:0;color:var(--cor-muted);font-size:10px;font-weight:750;letter-spacing:.055em;text-transform:uppercase}
.structure-filters input,.structure-filters select{min-height:39px;margin:0;padding:8px 10px;background:var(--ds-surface-low);border-color:transparent;font-size:13px;text-transform:none}
.structure-filters .input-with-icon{position:relative}.structure-filters .input-with-icon svg{position:absolute;top:50%;left:11px;width:17px;height:17px;transform:translateY(-50%);color:var(--cor-muted)}.structure-filters .input-with-icon input{width:100%;padding-left:36px}
.structure-filter-actions{display:flex;align-items:center;gap:10px;min-height:39px}.structure-filter-actions .botao{min-height:39px;white-space:nowrap}.structure-filter-actions>a{color:var(--cor-muted);font-size:12px;font-weight:700}
.structure-table-card{padding:20px}.structure-result-count{padding:5px 9px;background:var(--ds-surface-low);border-radius:999px;color:var(--cor-muted);font-size:12px;font-weight:700}.structure-table-card .table-wrap{overflow-x:auto}.structure-table{min-width:980px}.structure-table td{vertical-align:middle}.structure-table .structure-actions-column{text-align:right}.structure-row-actions{text-align:right;white-space:nowrap}.icon-action{display:inline-grid;width:35px;height:35px;place-items:center;background:#e7f5f2;border:1px solid #b9ded7;border-radius:8px;color:#087a70;text-decoration:none;transition:.15s ease}.icon-action.secondary{margin-left:5px;background:#fff;border-color:var(--cor-borda);color:#536270}.icon-action:hover{border-color:var(--cor-acao);background:#d8efeb;color:#075f58}.icon-action svg{width:17px;height:17px}.structure-table .badge{white-space:nowrap}
.structure-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:20px}.structure-form-card{padding:0 26px}.structure-form-card>section{padding:25px 0;border-bottom:1px solid var(--cor-borda)}.structure-form-card>section:last-child{border-bottom:0}.structure-section-heading{display:flex;gap:12px;margin-bottom:18px}.structure-section-heading>span{display:grid;width:27px;height:27px;flex:0 0 27px;place-items:center;background:#def2ef;border-radius:50%;color:#087a70;font-size:12px;font-weight:800}.structure-section-heading h2{margin:1px 0 2px;font-size:17px}.structure-section-heading p{margin:0;color:var(--cor-muted);font-size:13px}.structure-field-grid{display:grid;gap:16px}.structure-field-grid.two{grid-template-columns:1fr 1fr}.structure-field-grid label{display:grid;gap:6px;margin:0;color:var(--cor-texto-forte);font-size:11px;font-weight:750;letter-spacing:.045em;text-transform:uppercase}.structure-field-grid label>b{display:inline;color:#a91212}.structure-field-grid input,.structure-field-grid select{margin:0;text-transform:none}.structure-field-grid small{color:var(--cor-muted);font-size:11px;font-weight:400;letter-spacing:0;text-transform:none}.structure-check-card{display:flex;align-items:flex-start;gap:12px;margin:0;padding:15px;background:var(--ds-surface-low);border:1px solid var(--cor-borda);border-radius:9px;cursor:pointer}.structure-check-card input{width:18px;height:18px;flex:0 0 18px;margin:2px 0 0}.structure-check-card span{display:grid;gap:3px}.structure-check-card strong{font-size:13px}.structure-check-card small{color:var(--cor-muted);font-size:12px}.structure-form-aside{position:sticky;top:92px;display:grid;gap:12px}.structure-summary-card,.structure-safe-card{padding:17px;background:#fff;border:1px solid var(--cor-borda);border-radius:10px}.structure-summary-card>strong{display:block;margin-bottom:12px;font-size:16px}.structure-summary-card ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.structure-summary-card li{position:relative;padding-left:17px;color:var(--cor-muted);font-size:12px}.structure-summary-card li::before{position:absolute;top:6px;left:1px;width:6px;height:6px;content:"";background:#1a9b8f;border-radius:50%}.structure-safe-card{display:flex;gap:10px;background:#f8fafb}.structure-safe-card>svg{width:19px;height:19px;flex:0 0 19px;color:#087a70}.structure-safe-card strong{font-size:12px}.structure-safe-card p{margin:4px 0 0;color:var(--cor-muted);font-size:11px;line-height:1.45}.structure-submit{width:100%;justify-content:center}
.structure-form-field{display:grid;gap:6px}.field-label-with-help{display:flex;align-items:center;gap:7px}.field-label-with-help>label{display:inline-flex!important;align-items:center;gap:3px}.field-help{position:relative;display:inline-flex}.field-help>button{display:inline-grid;width:20px;height:20px;min-height:20px;padding:0;place-items:center;color:var(--cor-acao);background:#e4f4f2;border:0;border-radius:50%;box-shadow:none}.field-help>button:hover,.field-help>button:focus-visible{color:#fff;background:var(--cor-acao);filter:none;outline:2px solid color-mix(in srgb,var(--cor-acao) 28%,transparent);outline-offset:2px}.field-help>button svg{width:14px;height:14px}.field-help-popover{position:absolute;bottom:calc(100% + 9px);left:50%;z-index:30;width:min(310px,80vw);padding:11px 12px;color:#fff;background:var(--cor-texto-forte);border-radius:8px;box-shadow:0 10px 26px rgba(15,23,42,.2);font-size:12px;font-weight:500;letter-spacing:0;line-height:1.45;text-transform:none;opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity .15s ease,transform .15s ease}.field-help-popover::after{position:absolute;top:100%;left:50%;border:6px solid transparent;border-top-color:var(--cor-texto-forte);content:"";transform:translateX(-50%)}.field-help:hover .field-help-popover,.field-help:focus-within .field-help-popover{opacity:1;transform:translate(-50%,0)}
.structure-header-actions{justify-content:flex-end}.structure-catalog-form{padding:24px}.structure-catalog-form .structure-field-grid{margin-top:18px}.structure-inline-field{display:flex!important;align-items:center;gap:9px}.structure-inline-field input{order:-1;width:18px;height:18px}.structure-catalog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px;padding-top:18px;border-top:1px solid var(--cor-borda)}
.structure-detail-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.structure-detail-kpis article{display:grid;gap:3px;padding:14px 16px;background:#fff;border:1px solid var(--cor-borda);border-radius:10px}.structure-detail-kpis small{color:var(--cor-muted);font-size:10px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.structure-detail-kpis strong{font-size:20px}.structure-tabs{margin-top:-8px}.structure-detail-page .table-toolbar{align-items:center}
@media(max-width:1180px){.structure-filters{grid-template-columns:repeat(3,1fr)}.structure-search{grid-column:span 2}.structure-filter-actions{justify-content:flex-end}.structure-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.structure-form-layout{grid-template-columns:1fr}.structure-form-aside{position:static}.structure-detail-kpis{grid-template-columns:repeat(2,1fr)}.structure-context>div{display:grid;gap:2px}}
@media(max-width:620px){.structure-kpis,.structure-detail-kpis,.structure-field-grid.two,.structure-filters{grid-template-columns:1fr}.structure-search{grid-column:auto}.structure-filter-actions{justify-content:flex-start}.structure-table-card{padding:14px}.structure-form-card{padding:0 17px}}
.dashboard-calendar { margin-bottom: var(--espaco-5); }
.upcoming-events { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--espaco-3); }
.upcoming-event { min-width: 0; display: flex; align-items: center; gap: var(--espaco-3); padding: var(--espaco-3); color: var(--cor-texto-forte); background: var(--cor-superficie-baixa); border: 1px solid var(--cor-borda); border-radius: var(--raio-md); text-decoration: none; }
.upcoming-event:hover { border-color: var(--cor-acao); }
.upcoming-event time { width: 44px; flex: 0 0 44px; text-align: center; }
.upcoming-event time strong, .upcoming-event time span, .upcoming-event > span strong, .upcoming-event > span small { display: block; }
.upcoming-event time strong { color: var(--cor-acao); font-size: 20px; }
.upcoming-event time span { color: var(--cor-muted); font-size: 10px; text-transform: uppercase; }
.upcoming-event > span { min-width: 0; }
.upcoming-event > span strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upcoming-event > span small { color: var(--cor-muted); }
.empty-state.compact { padding: var(--espaco-4); }
.kpi-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--espaco-3); margin-bottom: var(--espaco-5); }
.compact-field { display: grid; gap: 6px; min-width: 180px; margin: 0; color: var(--cor-texto-forte); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.compact-field select { width: 100%; }
.search-toolbar > .botao { min-height: 42px; }
.alunos-table td { font-size: 14px; }.alunos-table td strong { font-size: 15px; }.alunos-table .table-meta, .alunos-table td small { font-size: 12px; }
.student-quick-dialog { width: min(880px, calc(100vw - 32px)); max-height: min(760px, calc(100vh - 32px)); padding: 0; color: var(--cor-texto); background: #fff; border: 0; border-radius: 18px; box-shadow: 0 25px 65px rgba(15, 23, 42, .32); }.student-quick-dialog::backdrop { background: rgba(15, 23, 42, .52); backdrop-filter: blur(2px); }.student-quick-dialog-content { min-height: 180px; }.student-quick-loading { display: grid; min-height: 180px; padding: 30px; color: var(--cor-muted); place-items: center; }.student-quick-header { display: flex; gap: 18px; justify-content: space-between; padding: 25px 28px 18px; border-bottom: 1px solid var(--cor-borda); }.student-quick-header h2 { margin: 2px 0; font-size: 25px; }.student-quick-header p { margin: 0; color: var(--cor-muted); }.student-quick-header .icon-action { flex: 0 0 auto; font-size: 22px; }.student-quick-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 22px 28px; }.student-quick-grid section { padding: 17px; background: var(--cor-superficie-baixa); border: 1px solid var(--cor-borda); border-radius: var(--raio-md); }.student-quick-grid section:last-child:nth-child(3) { grid-column: 1 / -1; }.student-quick-grid h3 { margin: 0 0 13px; color: var(--cor-texto-forte); font-size: 14px; }.student-quick-grid dl { display: grid; gap: 10px; margin: 0; }.student-quick-grid dt { color: var(--cor-muted); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.student-quick-grid dd { margin: 3px 0 0; font-size: 14px; font-weight: 650; }.quick-contact-list { display: grid; gap: 9px; }.quick-contact-list article { display: grid; gap: 2px; padding-bottom: 9px; border-bottom: 1px solid var(--cor-borda); }.quick-contact-list article:last-child { padding: 0; border: 0; }.quick-contact-list span, .quick-contact-list a, .quick-emergency span { color: var(--cor-muted); font-size: 13px; }.quick-contact-list a, .quick-emergency a { color: var(--cor-acao); text-decoration: none; }.quick-emergency { display: grid; gap: 5px; margin-top: 14px; }.student-quick-footer { display: flex; gap: 10px; justify-content: flex-end; padding: 17px 28px; background: var(--cor-superficie-baixa); border-top: 1px solid var(--cor-borda); }.student-quick-footer .botao { justify-content: center; }
@media (max-width: 620px) { .student-quick-header, .student-quick-footer { padding-right: 18px; padding-left: 18px; }.student-quick-grid { grid-template-columns: 1fr; padding: 17px; }.student-quick-grid section:last-child:nth-child(3) { grid-column: auto; }.student-quick-footer { flex-direction: column-reverse; }.student-quick-footer .botao { width: 100%; } }
.student-quick-header { align-items: center; padding: 22px 26px; }
.student-quick-identity { display: flex; min-width: 0; gap: 13px; align-items: center; }
.student-quick-identity > div { min-width: 0; }
.student-quick-avatar {
    display: grid;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    color: #0f766e;
    background: #ccfbf1;
    border: 1px solid #99f6e4;
    border-radius: 13px;
    place-items: center;
    font-size: 17px;
    font-weight: 850;
}
.student-quick-header .page-eyebrow { margin-bottom: 1px; font-size: 9px; }
.student-quick-header h2 { margin: 0; font-size: 22px; }
.student-quick-meta { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin-top: 4px; color: var(--cor-muted); font-size: 12px; }
.student-quick-meta .badge { font-size: 9px; }
button.student-quick-close {
    min-height: 36px;
    padding: 0;
    color: #64748b;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    box-shadow: none;
}
button.student-quick-close:hover { color: #0f172a; background: #e2e8f0; filter: none; }
.student-quick-grid { gap: 12px; padding: 18px 22px 22px; background: #f8fafc; }
.student-quick-grid section { padding: 16px; background: #fff; border-color: #dbe3ec; border-radius: 10px; }
.student-quick-section-heading { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; }
.student-quick-section-heading > span {
    display: grid;
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    color: #0f766e;
    background: #ecfdf5;
    border-radius: 8px;
    place-items: center;
}
.student-quick-section-heading svg { width: 17px; height: 17px; }
.student-quick-section-heading h3 { margin: 0; font-size: 13px; }
.student-quick-section-heading p { margin: 1px 0 0; color: var(--cor-muted); font-size: 10px; }
.student-quick-grid dl { gap: 0; }
.student-quick-grid dl > div { padding: 8px 0; border-bottom: 1px solid #eef2f6; }
.student-quick-grid dl > div:first-child { padding-top: 0; }
.student-quick-grid dl > div:last-child { padding-bottom: 0; border-bottom: 0; }
.student-quick-grid dt { font-size: 9px; }
.student-quick-grid dd { margin-top: 2px; font-size: 12px; }
.quick-not-informed { color: #64748b; font-weight: 550; }
.quick-contact-list article { grid-template-columns: 30px minmax(0, 1fr); gap: 9px; }
.quick-contact-list article > div { display: grid; min-width: 0; gap: 1px; }
.quick-contact-avatar { display: grid; width: 28px; height: 28px; color: #475569; background: #e2e8f0; border-radius: 50%; place-items: center; font-size: 10px; font-weight: 800; }
.quick-contact-list strong { font-size: 12px; }
.quick-contact-list span,
.quick-contact-list a { overflow-wrap: anywhere; font-size: 11px; }
.quick-empty-line { margin: 0; color: var(--cor-muted); font-size: 12px; }
.student-quick-health { border-left: 0; }
.student-quick-health .student-quick-section-heading > span { color: #9a3412; background: #fff7ed; }
.student-quick-health-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(220px, .8fr); gap: 18px; }
.quick-emergency { align-content: start; margin: 0; padding: 11px 12px; background: #fff7ed; border: 1px solid #fed7aa; border-radius: 8px; }
.quick-emergency-heading { display: flex; gap: 7px; align-items: center; margin-bottom: 5px; color: #9a3412; }
.quick-emergency-heading svg { width: 16px; height: 16px; }
.quick-emergency-heading strong { font-size: 11px; }
.student-quick-footer { padding: 14px 22px; background: #fff; }
.student-quick-footer .botao svg { width: 16px; height: 16px; }
@media (max-width: 620px) {
    .student-quick-header { align-items: flex-start; }
    .student-quick-avatar { width: 40px; height: 40px; flex-basis: 40px; }
    .student-quick-health-layout { grid-template-columns: 1fr; }
}

/* Central de avaliações e notas. */
.evaluation-hub { min-width: 0; }
.evaluation-hub-header { align-items: end; margin-bottom: 20px; }
.evaluation-hub-header .acoes { max-width: 620px; justify-content: flex-end; }
.evaluation-hub-header .botao { white-space: nowrap; }
.evaluation-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.evaluation-metrics article { display: flex; min-width: 0; gap: 12px; align-items: center; padding: 15px 16px; background: #fff; border: 1px solid var(--cor-borda); border-radius: 12px; box-shadow: var(--sombra-sm); }
.evaluation-metrics article > div { min-width: 0; }
.evaluation-metrics small,
.evaluation-metrics strong,
.evaluation-metrics article > div > span { display: block; }
.evaluation-metrics small { color: #64748b; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.evaluation-metrics strong { margin: 1px 0; color: #0f172a; font-size: 24px; line-height: 1.15; }
.evaluation-metrics article > div > span { overflow: hidden; color: #64748b; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.evaluation-metric-icon { display: grid; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 10px; place-items: center; }
.evaluation-metric-icon svg { width: 19px; height: 19px; }
.evaluation-metric-icon.tone-teal { color: #0f766e; background: #ccfbf1; }
.evaluation-metric-icon.tone-amber { color: #b45309; background: #fef3c7; }
.evaluation-metric-icon.tone-green { color: #15803d; background: #dcfce7; }
.evaluation-metric-icon.tone-blue { color: #1d4ed8; background: #dbeafe; }
.evaluation-filters { display: grid; grid-template-columns: minmax(250px, 1.5fr) repeat(3, minmax(145px, .7fr)) auto auto; gap: 10px; align-items: end; padding: 13px 14px; margin-bottom: 12px; background: #fff; border: 1px solid var(--cor-borda); border-radius: 12px; }
.evaluation-filters > div { min-width: 0; }
.evaluation-filters label { display: block; margin: 0 0 4px; color: #475569; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.evaluation-filters input,
.evaluation-filters select { width: 100%; min-height: 38px; padding: 7px 9px; color: var(--cor-texto); background: #f8fafc; border: 1px solid #dbe3ec; border-radius: 8px; font-size: 12px; }
.evaluation-search-field > span { position: relative; display: block; }
.evaluation-search-field svg { position: absolute; top: 50%; left: 10px; width: 16px; height: 16px; color: #64748b; transform: translateY(-50%); }
.evaluation-search-field input { padding-left: 34px; }
.evaluation-filters .botao { min-height: 38px; padding: 7px 13px; }
.evaluation-clear-filter { align-self: center; color: #64748b; font-size: 11px; font-weight: 750; }
.evaluation-config-panel { margin-bottom: 14px; overflow: hidden; background: #fff; border: 1px solid var(--cor-borda); border-radius: 12px; }
.evaluation-config-panel > summary { display: flex; justify-content: space-between; align-items: center; min-height: 54px; padding: 10px 14px; cursor: pointer; list-style: none; }
.evaluation-config-panel > summary::-webkit-details-marker { display: none; }
.evaluation-config-panel > summary > span { display: grid; grid-template-columns: 30px auto; column-gap: 9px; align-items: center; }
.evaluation-config-panel > summary > span > svg { grid-row: 1 / span 2; width: 19px; height: 19px; padding: 6px; box-sizing: content-box; color: #0f766e; background: #ccfbf1; border-radius: 8px; }
.evaluation-config-panel summary strong { font-size: 12px; }
.evaluation-config-panel summary small { font-size: 10px; }
.evaluation-config-chevron { width: 17px; height: 17px; transition: transform .15s ease; }
.evaluation-config-panel[open] .evaluation-config-chevron { transform: rotate(180deg); }
.evaluation-config-panel nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 0 14px 14px; border-top: 1px solid #eef2f6; }
.evaluation-config-panel nav a { display: flex; min-width: 0; gap: 9px; align-items: center; padding: 11px; margin-top: 12px; color: inherit; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 9px; text-decoration: none; }
.evaluation-config-panel nav a:hover { border-color: #94a3b8; background: #f1f5f9; }
.evaluation-config-panel nav a > svg { width: 17px; height: 17px; flex: 0 0 auto; color: #0f766e; }
.evaluation-config-panel nav span { min-width: 0; }
.evaluation-config-panel nav strong,
.evaluation-config-panel nav small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evaluation-config-panel nav strong { font-size: 11px; }
.evaluation-config-panel nav small { margin-top: 1px; font-size: 9px; }
.evaluation-hub-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(310px, .8fr); gap: 14px; align-items: start; }
.evaluation-hub-layout > .card,
.evaluation-hub-side > .card { padding: 18px; }
.evaluation-hub-side { display: grid; gap: 14px; }
.evaluation-hub .section-heading .page-eyebrow { margin: 0 0 2px; font-size: 9px; }
.evaluation-hub .section-heading h2 { margin-bottom: 2px; font-size: 16px; }
.evaluation-hub .section-heading p:not(.page-eyebrow) { margin: 0; color: #64748b; font-size: 11px; }
.evaluation-list { display: grid; margin: 0 -18px; border-top: 1px solid #e2e8f0; }
.evaluation-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) 78px 34px; gap: 11px; align-items: center; padding: 12px 18px; border-bottom: 1px solid #e8edf3; }
.evaluation-row:hover { background: #f8fafc; }
.evaluation-row-icon { display: grid; width: 32px; height: 32px; color: #0f766e; background: #ecfdf5; border-radius: 8px; place-items: center; }
.evaluation-row-icon svg { width: 16px; height: 16px; }
.evaluation-row-main { min-width: 0; }
.evaluation-row-main > div:first-child { display: flex; gap: 7px; align-items: center; }
.evaluation-row-main strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.evaluation-row-main .badge { flex: 0 0 auto; font-size: 8px; }
.evaluation-row-main p { margin: 2px 0 7px; overflow: hidden; color: #64748b; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.evaluation-row-main > small { display: block; margin-top: 3px; color: #64748b; font-size: 9px; }
.evaluation-progress { height: 4px; overflow: hidden; background: #e2e8f0; border-radius: 999px; }
.evaluation-progress span { display: block; height: 100%; background: #0d9488; border-radius: inherit; }
.evaluation-row-date small,
.evaluation-row-date strong { display: block; }
.evaluation-row-date small { color: #94a3b8; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.evaluation-row-date strong { font-size: 10px; }
.evaluation-activity-card .pagination-bar { padding: 12px 0 0; }
.evaluation-system-card > article { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 9px; align-items: start; padding: 10px 0; border-top: 1px solid #e8edf3; }
.evaluation-system-mark { display: grid; width: 28px; height: 28px; color: #0f766e; background: #ecfdf5; border-radius: 7px; place-items: center; }
.evaluation-system-mark svg { width: 15px; height: 15px; }
.evaluation-system-card article strong,
.evaluation-system-card article small { display: block; }
.evaluation-system-card article strong { font-size: 11px; }
.evaluation-system-card article small { margin-top: 1px; font-size: 9px; }
.evaluation-system-card article > .badge { font-size: 8px; }
.evaluation-curriculum-card .section-heading a { font-size: 10px; font-weight: 800; text-decoration: none; }
.evaluation-curriculum-card > div > article { display: flex; justify-content: space-between; align-items: center; padding: 9px 0; border-top: 1px solid #e8edf3; }
.evaluation-curriculum-card article strong,
.evaluation-curriculum-card article small { display: block; }
.evaluation-curriculum-card article strong { font-size: 11px; }
.evaluation-curriculum-card article small { margin-top: 1px; font-size: 9px; }
.evaluation-series-count { display: grid; min-width: 26px; height: 24px; padding: 0 6px; color: #0f766e; background: #ccfbf1; border-radius: 999px; place-items: center; font-size: 10px; font-weight: 850; }
/* Avaliações: criação contextual, compacta e segura para operação em escala. */
.evaluation-form-header { align-items: end; }
.evaluation-form-card { max-width: 1120px; padding: 0 20px; }
.evaluation-form-card > form { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 22px; align-items: start; }
.evaluation-form-main { min-width: 0; }
.evaluation-form-section { display: grid; gap: 10px; padding: 15px 0; border-bottom: 1px solid var(--cor-borda); }
.evaluation-form-section .form-field { position: relative; }
.evaluation-form-section:last-child { border-bottom: 0; }
.evaluation-form-section .form-section-heading { margin-bottom: 2px; }
.evaluation-form-section .page-eyebrow { margin-bottom: 3px; font-size: 9px; }
.evaluation-form-section h2 { font-size: 16px; }
.evaluation-form-card input:not([type="checkbox"]):not([type="radio"]), .evaluation-form-card select { min-height: 38px; padding: 7px 10px; font-size: 14px; }
.evaluation-class-search { position: relative; }
.evaluation-class-search svg { position: absolute; top: 50%; left: 10px; width: 17px; height: 17px; color: var(--cor-muted); transform: translateY(-50%); pointer-events: none; }
.evaluation-class-search input { width: 100%; padding-left: 35px !important; }
.evaluation-search-results { position: absolute; z-index: 8; right: 0; left: 0; display: grid; max-height: 260px; overflow-y: auto; padding: 5px; border: 1px solid var(--cor-borda); border-radius: 9px; background: var(--cor-superficie); box-shadow: 0 10px 24px rgba(15, 23, 42, .13); }
.evaluation-search-results[hidden], .evaluation-selected-context[hidden] { display: none !important; }
.evaluation-search-results p { margin: 0; padding: 10px; color: var(--cor-muted); font-size: 12px; }
.evaluation-search-results button { display: flex; width: 100%; min-height: 45px; padding: 7px 9px; border: 0; border-radius: 7px; color: var(--cor-texto); background: transparent; text-align: left; }
.evaluation-search-results button:hover, .evaluation-search-results button:focus { background: #effcf9; outline: 0; }
.evaluation-search-results button span, .evaluation-selected-context > span { display: grid; gap: 1px; }
.evaluation-search-results strong, .evaluation-selected-context strong { font-size: 12px; }
.evaluation-search-results small, .evaluation-selected-context small { color: var(--cor-muted); font-size: 11px; }
.evaluation-selected-context { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 11px; border: 1px solid #99ded1; border-radius: 8px; background: #effcf9; }
.evaluation-selected-context button { min-height: 28px; padding: 4px 8px; border: 0; color: #06766c; background: transparent; font-size: 11px; font-weight: 800; }
.evaluation-weight-field { max-width: 240px; }
.evaluation-form-side { position: sticky; top: calc(var(--altura-topbar) + 16px); display: grid; gap: 10px; padding: 15px 0; }
.evaluation-context-summary, .evaluation-system-summary, .evaluation-form-note { display: grid; gap: 7px; padding: 13px; border: 1px solid var(--cor-borda); border-radius: 9px; background: var(--cor-superficie-baixa); }
.evaluation-context-summary { border-top: 3px solid var(--cor-secundaria); }
.evaluation-context-summary .page-eyebrow { margin: 0; font-size: 9px; }
.evaluation-context-summary > strong { font-size: 13px; }
.evaluation-context-summary > span:not(.page-eyebrow) { color: var(--cor-muted); font-size: 11px; }
.evaluation-system-summary > div { display: grid; gap: 2px; padding-bottom: 7px; border-bottom: 1px solid var(--cor-borda); }
.evaluation-system-summary > div:last-child { padding-bottom: 0; border-bottom: 0; }
.evaluation-system-summary span { color: var(--cor-muted); font-size: 10px; }
.evaluation-system-summary strong { font-size: 12px; }
.evaluation-form-note { grid-template-columns: 20px 1fr; }
.evaluation-form-note svg { width: 18px; height: 18px; color: #0f766e; }
.evaluation-form-note strong { font-size: 12px; }
.evaluation-form-note p { margin: 4px 0 0; color: var(--cor-muted); font-size: 11px; line-height: 1.45; }
.evaluation-form-actions { display: grid; gap: 8px; margin: 0; }
.evaluation-form-actions > * { width: 100%; justify-content: center; }
@media (max-width: 1180px) {
    .evaluation-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .evaluation-search-field { grid-column: span 2; }
    .evaluation-config-panel nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .evaluation-hub-layout { grid-template-columns: minmax(0, 1.4fr) minmax(280px, .8fr); }
}
@media (max-width: 900px) {
    .evaluation-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .evaluation-hub-layout { grid-template-columns: 1fr; }
    .evaluation-form-card > form { grid-template-columns: 1fr; }
    .evaluation-form-side { position: static; padding-top: 0; }
}
@media (max-width: 680px) {
    .evaluation-hub-header { align-items: stretch; }
    .evaluation-hub-header .acoes { justify-content: stretch; }
    .evaluation-hub-header .botao { width: 100%; }
    .evaluation-filters { grid-template-columns: 1fr; }
    .evaluation-search-field { grid-column: auto; }
    .evaluation-config-panel nav { grid-template-columns: 1fr; }
    .evaluation-row { grid-template-columns: 32px minmax(0, 1fr) 32px; }
    .evaluation-row-date { display: none; }
    .evaluation-form-header { align-items: stretch; }
    .evaluation-form-header > .botao { width: 100%; }
    .evaluation-form-card { padding: 0 14px; }
    .evaluation-form-section .form-grid { grid-template-columns: 1fr; }
    .evaluation-weight-field { max-width: none; }
}
.pagination-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-4); margin-top: var(--espaco-4); }
.pagination-bar p { margin: 0; }

/* Central de históricos escolares */
.history-hub{max-width:1480px;margin:0 auto}.history-hub .page-header .botao svg{width:16px;height:16px}.history-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.history-metrics article{display:flex;align-items:center;gap:12px;min-height:80px;padding:14px 16px;background:#fff;border:1px solid var(--cor-borda);border-radius:11px;box-shadow:var(--sombra-sm)}.history-metrics article>div{display:grid;min-width:0;gap:2px}.history-metrics small{color:var(--cor-muted);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.history-metrics strong{font-size:24px;line-height:1.1}.history-metrics article>div>span{overflow:hidden;color:var(--cor-muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.history-metric-icon{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;background:#ddf3ef;border-radius:9px;color:#087a70}.history-metric-icon.info{background:#e3edff;color:#245ab5}.history-metric-icon.warning{background:#fff1d4;color:#9b6100}.history-metric-icon svg{width:19px;height:19px}.history-filters{display:grid;grid-template-columns:minmax(250px,1.6fr) repeat(4,minmax(125px,.65fr)) auto;align-items:end;gap:10px;margin-bottom:16px;padding:14px 15px;background:#fff;border:1px solid var(--cor-borda);border-radius:11px}.history-filters label{display:grid;gap:5px;margin:0;color:var(--cor-muted);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.history-filters input,.history-filters select{min-height:38px;margin:0;padding:7px 9px;background:var(--ds-surface-low);border-color:transparent;font-size:12px;text-transform:none}.history-search>span:last-child{position:relative}.history-search svg{position:absolute;top:50%;left:10px;width:16px;height:16px;transform:translateY(-50%);color:var(--cor-muted)}.history-search input{width:100%;padding-left:34px}.history-filter-actions{display:flex;gap:7px}.history-filter-actions .botao{min-height:38px}.history-table-card{padding:0;overflow:hidden}.history-table-card .table-toolbar{padding:17px 20px;border-bottom:1px solid var(--cor-borda)}.history-result-count{padding:5px 9px;background:#e5f4f1;border-radius:999px;color:#087a70;font-size:10px;font-weight:800}.history-table td{vertical-align:middle}.history-student{display:flex;align-items:center;gap:10px}.history-student>span:last-child{display:grid;min-width:0;gap:2px}.history-student small,.history-cell-note{display:block;margin-top:2px;color:var(--cor-muted);font-size:10px}.history-avatar{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;background:#dff2ef;border-radius:50%;color:#087a70;font-size:12px;font-weight:800}.history-action{text-align:right}.history-action .icon-button{color:#087a70;background:#e4f3f1;border-color:transparent}.history-action .icon-button:hover{color:#fff;background:#087a70}.history-table-card>.pagination-bar{padding:0 20px 17px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1180px){.history-metrics{grid-template-columns:repeat(2,1fr)}.history-filters{grid-template-columns:repeat(3,1fr)}.history-search{grid-column:span 2}}@media(max-width:720px){.history-metrics,.history-filters{grid-template-columns:1fr}.history-search{grid-column:auto}.history-filter-actions{justify-content:flex-start}.history-table{min-width:880px}}
.page-context-actions { justify-content: flex-end; margin-bottom: var(--espaco-3); }
.dados-lista { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--espaco-4); margin: 0 0 var(--espaco-5); }
.dados-lista div { padding: var(--espaco-3); background: var(--cor-superficie-baixa); border-radius: var(--raio-md); }
.dados-lista dt { color: var(--cor-muted); font-size: 12px; font-weight: 700; }
.dados-lista dd { margin: var(--espaco-1) 0 0; font-weight: 650; }
.activity-list { display: grid; gap: var(--espaco-2); margin: 0; padding: 0; list-style: none; }
.activity-list li { display: grid; gap: 2px; padding: var(--espaco-3); background: var(--cor-superficie-baixa); border-radius: var(--raio-md); }
.activity-list small, .texto-suave { color: var(--cor-muted); }
.status-panel { max-width: 760px; }
.status-panel h2 { margin-top: var(--espaco-4); }
.progress-track { width: 100%; height: 9px; overflow: hidden; margin-top: var(--espaco-5); background: var(--cor-superficie-media); border-radius: var(--raio-pill); }
.progress-track span { display: block; width: 38%; height: 100%; background: var(--cor-acao); border-radius: inherit; animation: import-progress 1.3s ease-in-out infinite alternate; }
@keyframes import-progress { from { transform: translateX(-80%); } to { transform: translateX(240%); } }
.review-calendar-form { padding-bottom: 0; }
.calendar-review-table input[type="date"] { min-width: 145px; }
.calendar-review-table select { min-width: 170px; }
.calendar-review-table input[type="text"] { min-width: 240px; }
.review-low-confidence { background: color-mix(in srgb,var(--cor-aviso-bg) 55%,#fff); }
.approval-card, .calendar-year-summary { display: flex; align-items: center; justify-content: space-between; gap: var(--espaco-5); }
.approval-card p, .calendar-year-summary p { margin-bottom: 0; }
.calendar-year-summary details { min-width: min(100%,390px); }
.calendar-day-tags { max-height: 260px; overflow: auto; display: grid; gap: var(--espaco-2); margin: var(--espaco-3) 0 0; padding: 0; list-style: none; }
.calendar-day-tags li { display: flex; align-items: center; gap: var(--espaco-2); padding: var(--espaco-2); border-bottom: 1px solid var(--cor-borda); }
.calendar-day-tags time { min-width: 42px; font-weight: 750; }

@media (max-width: 1180px) {
    .app-topbar { grid-template-columns: auto minmax(220px,1fr) auto; }
    .tenant-context, .user-menu-copy { display: none; }
    .dashboard-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .grade-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .margin-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .upcoming-events { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 960px) {
    .login-layout { grid-template-columns: 1fr; min-height: auto; }
    .login-intro { display: none; }
    .password-setup-layout { min-height: auto; grid-template-columns: 1fr; }
    .password-setup-intro { display: none; }
    .password-setup-card { width: min(100%,560px); margin: 0 auto; }
    .app-sidebar { width: min(88vw,var(--largura-sidebar)); transform: translateX(-102%); }
    .app-frame, .sidebar-collapsed .app-frame { padding-left: 0; }
    .sidebar-collapsed .app-sidebar { width: min(88vw,var(--largura-sidebar)); }
    .sidebar-collapsed .brand-copy, .sidebar-collapsed .nav-group h2, .sidebar-collapsed .nav-link span { display: block; }
    .sidebar-collapsed .nav-link { justify-content: flex-start; }
    .sidebar-collapse { display: none; }
    .sidebar-close, .mobile-menu-button { display: inline-grid; }
    .sidebar-open .app-sidebar { transform: translateX(0); box-shadow: var(--sombra-md); }
    .sidebar-open .sidebar-backdrop { display: block; }
    .app-topbar { grid-template-columns: auto minmax(180px,1fr) auto; padding: 0 var(--espaco-4); }
    .breadcrumb { display: none; }
    .detail-grid { grid-template-columns: 1fr; }
    .aluno-chamada { grid-template-columns: 1fr; }
    .dashboard-grid, .dashboard-grid.equal { grid-template-columns: 1fr; }
    .operation-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    :root { --altura-topbar: 60px; }
    h1 { font-size: 24px; }
    .app-topbar { grid-template-columns: auto 1fr auto; gap: var(--espaco-2); }
    .global-search input { padding-right: 8px; font-size: 13px; }
    .topbar-actions > .icon-button { display: none; }
    .user-menu summary > svg { display: none; }
    .app-main { padding: var(--espaco-5) var(--espaco-4) var(--espaco-10); }
    .page-header { align-items: stretch; flex-direction: column; }
    .page-header .acoes, .page-header .botao { width: 100%; }
    .search-toolbar { align-items: stretch; flex-direction: column; }
    .search-toolbar .botao { width: 100%; }
    .compact-field { min-width: 0; }
    .card { padding: var(--espaco-4); }
    .kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .student-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--espaco-3); }
    .student-kpi { min-height: 80px; padding: var(--espaco-3); }
    .student-kpi strong { font-size: 21px; }
    .student-kpi-icon { width: 38px; height: 38px; flex-basis: 38px; }
    .dashboard-kpis { grid-template-columns: 1fr; }
    .form-grid, .margin-grid, .grade-cards { grid-template-columns: 1fr; }
    .form-actions > *, .table-action-form { width: 100%; }
    .table-action-form select { flex: 1; min-width: 0; }
    .shortcut-stat { width: 100%; margin-left: 0; }
    .calendar-toolbar { align-items: stretch; flex-direction: column; }
    .calendar-navigation { justify-content: space-between; }
    .calendar-filter { width: 100%; min-width: 0; }
    .calendar-event { grid-template-columns: 60px minmax(0,1fr); gap: var(--espaco-3); }
    .calendar-event > .botao { width: 100%; grid-column: 1 / -1; }
    .upcoming-events { grid-template-columns: 1fr; }
    .student-header, .student-identity, .occurrence-item { align-items: stretch; flex-direction: column; }
    .student-header .acoes, .student-header .botao { width: 100%; }
    .document-row, .source-document { align-items: stretch; flex-direction: column; }
    .document-row .acoes, .document-row .botao, .source-document .botao { width: 100%; }
    .attendance-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .attendance-summary > span { border-top: 1px solid var(--cor-borda); }
    .attendance-summary > span:first-child { grid-column: 1 / -1; border-top: 0; }
    .attendance-summary > span:nth-child(2) { border-left: 0; }
    .attendance-summary > span:nth-child(4) { border-left: 0; }
    .attendance-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .chamada-submit { align-items: stretch; flex-direction: column; }
    .chamada-actions, .chamada-submit button, .attendance-toolbar-actions, .attendance-toolbar-actions button { width: 100%; }
    .kpi-grid, .dados-lista { grid-template-columns: 1fr; }
    .pagination-bar { align-items: stretch; flex-direction: column; }
    .approval-card, .calendar-year-summary { align-items: stretch; flex-direction: column; }
    .password-setup-body .public-main { width: min(100% - 24px,560px); margin-block: var(--espaco-5); }
    .password-setup-heading { align-items: center; }
    .password-requirements ul { grid-template-columns: 1fr; }
    table.tabela-dados th, table.tabela-dados td { padding: 10px 12px; }
}
@media (max-width: 420px) {
    .global-search input::placeholder { color: transparent; }
    .kpis { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

.identity-check { border-left: 4px solid var(--cor-sucesso, #15803d); }
.identity-check.identity-warning { border-left-color: var(--cor-aviso, #d97706); }
.identity-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--espaco-4); }
.identity-grid div { display: flex; flex-direction: column; gap: var(--espaco-1); padding: var(--espaco-4); border-radius: var(--raio-md); background: var(--cor-superficie-baixa); }
.identity-grid small, .performance-row small { display: block; color: var(--cor-muted); }
.history-review-form { display: grid; gap: var(--espaco-4); }
.history-series-table input, .history-disciplines-table input, .history-disciplines-table select { min-width: 90px; }
.history-series-table input[name$="-escola_nome"] { min-width: 220px; }
.history-disciplines-table input[name$="-disciplina_nome"], .history-disciplines-table select[name$="-disciplina"] { min-width: 180px; }
.confirmation-check { display: flex; gap: var(--espaco-2); align-items: flex-start; margin-bottom: var(--espaco-4); max-width: 520px; }
.performance-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--espaco-4); margin-bottom: var(--espaco-4); }
.performance-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: var(--espaco-3); align-items: center; padding: var(--espaco-3) 0; border-bottom: 1px solid var(--cor-borda); }
.performance-row:last-child { border-bottom: 0; }
.performance-score { display: grid; place-items: center; min-width: 48px; min-height: 48px; border-radius: 999px; background: color-mix(in srgb, var(--cor-secundaria) 14%, white); color: var(--cor-acao); font-size: 18px; font-weight: 800; }
@media (max-width: 900px) {
    .identity-grid, .performance-grid { grid-template-columns: 1fr; }
    .history-series-table, .history-disciplines-table { min-width: 1100px; }
}

/* Design system operacional — formulários e tabelas
 * Baseado nas telas aprovadas no Stitch. Mantém os tokens white-label acima
 * e cobre tanto formulários renderizados pelo Django quanto campos manuais.
 */
:root {
    --ds-surface-low: #f2f4f6;
    --ds-surface-container: #eceef0;
    --ds-outline: #76777d;
    --ds-outline-variant: #c6c6cd;
    --ds-error: #ba1a1a;
    --ds-error-container: #ffdad6;
    --ds-focus-ring: color-mix(in srgb, var(--cor-acao) 24%, transparent);
    --ds-row-height: 48px;
}

/* Formulários renderizados globalmente pelo template django/forms/p.html. */
.form-card > form,
.form-system {
    display: grid;
    gap: var(--espaco-5);
}
form:has(> .form-field) {
    display: grid;
    gap: var(--espaco-5);
}
.form-card > form > p { margin: 0; }
.form-field {
    min-width: 0;
    display: grid;
    gap: var(--espaco-2);
}
.form-field > label,
.form-field .checkbox-control {
    margin: 0;
    color: var(--cor-texto-forte);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.required-mark { margin-left: 3px; color: var(--ds-error); font-weight: 800; }
.form-control-wrap { min-width: 0; }
.form-field input:not([type="checkbox"]):not([type="radio"]),
.form-field select,
.form-field textarea,
.form-card input:not([type="checkbox"]):not([type="radio"]),
.form-card select,
.form-card textarea {
    min-height: 44px;
    padding: 10px 12px;
    background: var(--cor-superficie-baixa);
    border-color: transparent;
    border-radius: var(--raio-md);
    box-shadow: inset 0 0 0 1px transparent;
}
.form-field textarea,
.form-card textarea { min-height: 116px; }
.form-field input:hover,
.form-field select:hover,
.form-field textarea:hover,
.form-card input:hover,
.form-card select:hover,
.form-card textarea:hover { background: var(--cor-superficie); border-color: var(--ds-outline-variant); }
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus,
.form-card input:focus,
.form-card select:focus,
.form-card textarea:focus {
    background: var(--cor-superficie);
    border-color: var(--cor-acao);
    box-shadow: 0 0 0 3px var(--ds-focus-ring);
    outline: 0;
}
.form-field input[aria-invalid="true"],
.form-field.has-error input,
.form-field.has-error select,
.form-field.has-error textarea {
    border-color: var(--ds-error);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ds-error) 12%, transparent);
}
.form-field input:disabled,
.form-field select:disabled,
.form-field textarea:disabled { color: var(--cor-muted); background: var(--ds-surface-container); cursor: not-allowed; }
.form-field input[readonly], .form-card input[readonly] { color: var(--cor-muted); background: var(--ds-surface-container); }
.field-help, .form-field .helptext { color: var(--cor-muted); font-size: 12px; line-height: 1.4; }
.form-field .errorlist, .form-errors .errorlist {
    display: grid;
    gap: 2px;
    margin: 0;
    padding: 0;
    color: var(--ds-error);
    font-size: 12px;
    font-weight: 650;
    list-style: none;
}
.form-errors--non-field, .form-card > form > .errorlist {
    padding: var(--espaco-3) var(--espaco-4);
    color: #93000a;
    background: var(--ds-error-container);
    border: 1px solid color-mix(in srgb, var(--ds-error) 28%, transparent);
    border-radius: var(--raio-md);
}
.form-field--checkbox { gap: var(--espaco-1); }
.checkbox-control { display: inline-flex; align-items: flex-start; gap: var(--espaco-3); cursor: pointer; }
.checkbox-control input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-height: 18px;
    margin: 0;
    accent-color: var(--cor-acao);
}
.form-field input[type="file"], .form-card input[type="file"] { padding: 8px; cursor: pointer; }
.form-field input[type="file"]::file-selector-button, .form-card input[type="file"]::file-selector-button {
    margin-right: var(--espaco-3);
    padding: 7px 10px;
    color: var(--cor-texto-forte);
    background: var(--cor-superficie);
    border: 1px solid var(--ds-outline-variant);
    border-radius: var(--raio-sm);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
.form-actions {
    margin-top: var(--espaco-2);
    padding-top: var(--espaco-4);
    border-top: 1px solid var(--cor-borda);
}
.form-actions > :first-child { min-width: 132px; }
.form-section {
    display: grid;
    gap: var(--espaco-4);
    padding: var(--espaco-5);
    background: color-mix(in srgb, var(--ds-surface-low) 76%, white);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-lg);
}
.form-section > :last-child { margin-bottom: 0; }
.form-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--espaco-4); }
.form-section-heading h2, .form-section-heading h3, .form-section-heading p { margin: 0; }
.form-section-heading p { margin-top: 2px; color: var(--cor-muted); font-size: 13px; }
#form-config fieldset { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--espaco-3) var(--espaco-5); }
#form-config fieldset legend { grid-column: 1 / -1; }
#form-config fieldset > label { margin: 0; color: var(--cor-texto-forte); font-size: 12px; font-weight: 700; }
#form-config fieldset > label + input,
#form-config fieldset > label + select,
#form-config fieldset > label + textarea { margin-top: calc(var(--espaco-1) * -1); }
#form-config .preview-img { grid-column: 1 / -1; }

/* Tabelas operacionais, filtros e estados de alta densidade. */
.table-toolbar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--espaco-4);
    margin-bottom: var(--espaco-4);
}
.table-toolbar-copy { min-width: 0; }
.table-toolbar-copy h2, .table-toolbar-copy p { margin: 0; }
.table-toolbar-copy p { margin-top: 2px; color: var(--cor-muted); font-size: 13px; }
.table-filter-grid { display: grid; grid-template-columns: minmax(220px,1fr) repeat(3,minmax(150px,.45fr)); gap: var(--espaco-3); }
.table-filter-grid label { margin: 0; color: var(--cor-muted); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.table-filter-grid input, .table-filter-grid select { margin-top: var(--espaco-1); }
.table-wrap { background: var(--cor-superficie); }
table.tabela-dados th { height: 44px; background: var(--ds-surface-low); color: var(--cor-muted); }
table.tabela-dados td { min-height: var(--ds-row-height); }
table.tabela-dados tbody tr:nth-child(even) { background: color-mix(in srgb, var(--ds-surface-low) 38%, white); }
table.tabela-dados tbody tr:hover { background: color-mix(in srgb, var(--cor-secundaria) 7%, white); }
table.tabela-dados .numeric, table.tabela-dados td[data-type="numeric"] { font-variant-numeric: tabular-nums; text-align: right; }
.table-empty td { padding: 0 !important; }
.table-empty .empty-state { min-width: 320px; }
.table-density-compact th { height: 38px; padding-block: 8px !important; }
.table-density-compact td { padding-block: 8px !important; }
.table-sticky-head thead th { position: sticky; top: 0; z-index: 2; }
.table-search { position: relative; min-width: min(100%, 300px); }
.table-search input { padding-left: 40px; background: var(--ds-surface-low); border-color: transparent; }
.table-search svg, .table-search .search-icon { position: absolute; top: 50%; left: 12px; color: var(--cor-muted); transform: translateY(-50%); pointer-events: none; }
.table-row-hidden { display: none; }

/* Campos de operação de maior densidade: chamada e lançamento de notas. */
.attendance-toolbar, .grade-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--espaco-4);
    margin-bottom: var(--espaco-4);
}
.attendance-toolbar .table-search, .grade-toolbar .table-search { flex: 1; max-width: 360px; }
.attendance-student .avatar { display: grid; place-items: center; }
.grade-table .form-nota input {
    min-height: 36px;
    padding: 6px 9px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.grade-table td:nth-child(2) { font-variant-numeric: tabular-nums; color: var(--cor-muted); }
.wizard-steps { counter-reset: wizard-step; gap: var(--espaco-3); }
.wizard-steps span {
    display: inline-flex;
    align-items: center;
    gap: var(--espaco-2);
    padding: 7px 11px;
    border: 1px solid transparent;
}
.wizard-steps span::before { content: counter(wizard-step); counter-increment: wizard-step; display: grid; width: 18px; height: 18px; place-items: center; background: rgba(255,255,255,.65); border-radius: 50%; font-size: 11px; font-weight: 800; }
.wizard-steps span.atual { box-shadow: 0 0 0 3px var(--ds-focus-ring); }

@media (max-width: 700px) {
    .form-card > form, .form-system { gap: var(--espaco-4); }
    .form-field input:not([type="checkbox"]):not([type="radio"]), .form-field select, .form-field textarea, .form-card input:not([type="checkbox"]):not([type="radio"]), .form-card select, .form-card textarea { min-height: 46px; }
    .form-actions > :first-child, .form-actions > * { width: 100%; }
    .form-section { padding: var(--espaco-4); }
    .table-toolbar, .attendance-toolbar, .grade-toolbar { align-items: stretch; flex-direction: column; }
    .table-search, .attendance-toolbar .table-search, .grade-toolbar .table-search { width: 100%; max-width: none; }
    .table-filter-grid { grid-template-columns: 1fr; }
    .table-wrap { margin-inline: -1px; border-radius: var(--raio-md); }
    .wizard-steps { display: grid; grid-template-columns: 1fr; }
}

/* Matrícula progressiva: referência das telas Stitch, sem perder o wizard Django. */
.enrollment-page-header { align-items: center; }
.enrollment-wizard { max-width: 1120px; }
.enrollment-progress {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--espaco-3);
    margin: 0 0 var(--espaco-8);
    padding: 0;
    list-style: none;
}
.enrollment-progress li {
    position: relative;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--espaco-2);
    color: var(--cor-muted);
}
.enrollment-progress li:not(:last-child)::after {
    position: absolute;
    top: 17px;
    left: calc(100% - 4px);
    width: calc(100% - 30px);
    height: 2px;
    content: "";
    background: var(--cor-borda);
}
.enrollment-step-number {
    width: 34px;
    height: 34px;
    z-index: 1;
    flex: 0 0 34px;
    display: grid;
    place-items: center;
    color: var(--cor-muted);
    background: var(--cor-superficie);
    border: 2px solid var(--cor-borda-forte);
    border-radius: 50%;
    font-size: 12px;
    font-weight: 800;
}
.enrollment-progress strong, .enrollment-progress small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.enrollment-progress strong { color: inherit; font-size: 12px; }
.enrollment-progress small { margin-top: 1px; font-size: 10px; }
.enrollment-progress .is-current { color: var(--cor-acao); }
.enrollment-progress .is-current .enrollment-step-number { color: #fff; background: var(--cor-acao); border-color: var(--cor-acao); box-shadow: 0 0 0 4px var(--ds-focus-ring); }
.enrollment-progress .is-complete { color: var(--cor-sucesso-texto); }
.enrollment-progress .is-complete .enrollment-step-number { color: #fff; background: var(--cor-sucesso-texto); border-color: var(--cor-sucesso-texto); }
.enrollment-progress .is-complete:not(:last-child)::after { background: var(--cor-sucesso-texto); }
.responsible-step [data-formset-forms] { display: grid; gap: var(--espaco-4); }
.responsible-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espaco-4) var(--espaco-5); margin: 0; }
.responsible-card legend, .responsible-card > .form-errors { grid-column: 1 / -1; }
.responsible-card { position: relative; padding-top: 10px; }
.responsible-card-actions {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    margin-top: -34px;
    margin-bottom: 6px;
}
.responsible-remove-action {
    position: static;
    min-height: 30px;
    padding: 5px 9px;
    color: var(--cor-erro-texto);
    background: transparent;
    border: 1px solid color-mix(in srgb, var(--cor-erro-texto) 32%, transparent);
    border-radius: var(--raio-sm);
    font-size: 11px;
}
.responsible-remove-action:disabled { color: var(--cor-muted); border-color: var(--cor-borda); background: transparent; }
.responsible-card .form-field:has(input[name$="-DELETE"]) { display: none; }
.responsible-card .form-field:first-of-type { grid-column: 1 / -1; padding: var(--espaco-3); background: color-mix(in srgb, var(--cor-secundaria) 8%, white); border-radius: var(--raio-md); }
.responsible-card .form-field--checkbox { grid-column: span 1; }
.credentials-card { display: grid; gap: var(--espaco-5); max-width: 920px; }
.credential-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--espaco-4); }
.credential-item { padding: var(--espaco-5); background: var(--ds-surface-low); border: 1px solid var(--cor-borda); border-radius: var(--raio-lg); }
.credential-item h2 { margin: var(--espaco-3) 0; font-size: 17px; }
.credential-item code { font-size: 14px; font-weight: 750; overflow-wrap: anywhere; }
@media (max-width: 960px) {
    .enrollment-progress { grid-template-columns: 1fr; }
    .enrollment-progress li:not(:last-child)::after { top: 36px; left: 16px; width: 2px; height: calc(100% + 10px); }
}
@media (max-width: 700px) {
    .enrollment-page-header { align-items: stretch; }
    .responsible-card { grid-template-columns: 1fr; padding: var(--espaco-4); }
    .responsible-card .form-field--checkbox { grid-column: auto; }
}

/* Nova matrícula — composição visual da referência Stitch de Gestão de Alunos. */
.matricula-stitch-page {
    max-width: 1280px;
    margin: 0 auto;
    padding: 8px 0 36px;
}
.matricula-stitch-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}
.matricula-stitch-eyebrow {
    margin: 0 0 5px;
    color: #131b2e;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .2em;
}
.matricula-stitch-header h1 {
    margin: 0;
    color: #191c1e;
    font-size: clamp(27px, 3vw, 30px);
    line-height: 1.25;
    letter-spacing: -.02em;
}
.matricula-stitch-header p:not(.matricula-stitch-eyebrow) {
    max-width: 680px;
    margin: 7px 0 0;
    color: #45464d;
}
.matricula-stitch-step-counter {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 12px 16px;
    color: #006f66;
    background: #86f2e4;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .06em;
}
.matricula-stitch-step-icon {
    display: grid;
    width: 20px;
    height: 20px;
    place-items: center;
    color: #fff;
    background: #006a61;
    border-radius: 50%;
    font-size: 12px;
}
.matricula-stitch-card {
    max-width: none;
    padding: 28px;
    background: #fff;
    border: 1px solid rgba(198, 198, 205, .65);
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(25, 28, 30, .06);
}
.matricula-stitch-card .enrollment-progress {
    padding: 18px 20px;
    background: #f2f4f6;
    border: 0;
    border-radius: 10px;
}
.matricula-stitch-card .enrollment-step-number {
    color: #45464d;
    background: #fff;
    border: 2px solid #c6c6cd;
}
.matricula-stitch-card .enrollment-progress .is-current { color: #006a61; }
.matricula-stitch-card .enrollment-progress .is-current .enrollment-step-number {
    background: #006a61;
    border-color: #006a61;
    box-shadow: 0 0 0 4px rgba(134, 242, 228, .7);
}
.matricula-stitch-card .enrollment-progress .is-complete { color: #006f66; }
.matricula-stitch-card .enrollment-progress .is-complete .enrollment-step-number,
.matricula-stitch-card .enrollment-progress .is-complete:not(:last-child)::after {
    background: #006a61;
    border-color: #006a61;
}
.matricula-stitch-form { gap: 24px; }
.wizard-stage-body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 24px;
}
.wizard-stage-body .form-field { gap: 7px; }
.wizard-stage-body .form-field:has(input[name$="-nome"]),
.wizard-stage-body .form-field:has(input[name$="-logradouro"]),
.wizard-stage-body .form-field:has(input[name$="-certidao_numero"]),
.wizard-stage-body .form-field:has(textarea) { grid-column: 1 / -1; }
.matricula-stitch-card .form-field > label,
.matricula-stitch-card .checkbox-control {
    color: #45464d;
    font-size: 12px;
    letter-spacing: .06em;
}
.matricula-stitch-card .form-field input:not([type="checkbox"]):not([type="radio"]),
.matricula-stitch-card .form-field select,
.matricula-stitch-card .form-field textarea {
    background: #f2f4f6;
    border-color: transparent;
    border-radius: 8px;
}
.matricula-stitch-card .form-field input:focus,
.matricula-stitch-card .form-field select:focus,
.matricula-stitch-card .form-field textarea:focus {
    background: #fff;
    border-color: #006a61;
    box-shadow: 0 0 0 3px rgba(134, 242, 228, .45);
}
input[data-mask="cpf"],
.form-field:has(input[name$="-cpf"]) input {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-variant-numeric: tabular-nums;
    letter-spacing: .045em;
}
input[data-mask="cpf"],
.form-field:has(input[name$="-cpf"]) input {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-variant-numeric: tabular-nums;
    letter-spacing: .045em;
}
.matricula-stitch-card .responsible-step {
    padding: 24px;
    background: #f7f9fb;
    border-color: rgba(198, 198, 205, .8);
    border-radius: 10px;
}
.wizard-student-section,
.wizard-address-card {
    padding: 24px;
    background: #fff;
    border: 1px solid #e0e3e5;
    border-radius: 12px;
}
.wizard-student-section .form-section-heading,
.wizard-address-card .form-section-heading,
.wizard-transport-card .form-section-heading { margin-bottom: 22px; }
.matricula-section-kicker {
    margin: 0 0 4px;
    color: #006a61;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .09em;
}
.wizard-student-section h2,
.wizard-address-card h2,
.wizard-transport-card h2 { font-size: 20px; }
.wizard-student-grid .form-field:has(input[name$="-nome"]),
.wizard-student-grid .form-field:has(input[name$="-certidao_numero"]) { grid-column: 1 / -1; }
.wizard-address-transport {
    display: grid;
    grid-template-columns: minmax(0, 2.1fr) minmax(290px, 1fr);
    gap: 24px;
}
.wizard-address-grid {
    display: grid;
    grid-template-columns: 1fr 2.4fr 1.15fr .7fr;
    gap: 18px 16px;
}
.wizard-field-logradouro { grid-column: span 2; }
.wizard-field-complemento { grid-column: span 2; }
.wizard-field-bairro { grid-column: span 2; }
.wizard-field-cidade { grid-column: span 3; }
.wizard-transport-card {
    position: relative;
    overflow: hidden;
    min-height: 100%;
    padding: 24px;
    color: #fff;
    background: #131b2e;
    border: 1px solid #131b2e;
    border-radius: 12px;
    box-shadow: 0 16px 28px rgba(19, 27, 46, .17);
}
.wizard-transport-card .matricula-section-kicker { color: #86f2e4; }
.wizard-transport-card h2 { color: #fff; }
.wizard-transport-card .form-field > label { color: rgba(255, 255, 255, .56); }
.wizard-transport-card .form-field input,
.wizard-transport-card .form-field select {
    position: relative;
    z-index: 1;
    color: #fff;
    background: rgba(255, 255, 255, .1);
}
.wizard-transport-route {
    position: relative;
    z-index: 1;
    transition: opacity .18s ease, filter .18s ease;
}
.wizard-transport-route.is-disabled { opacity: .43; filter: grayscale(.35); }
.wizard-transport-route.is-disabled input,
.wizard-transport-route.is-disabled select {
    color: rgba(255, 255, 255, .72);
    background: rgba(255, 255, 255, .06);
    cursor: not-allowed;
}
.wizard-transport-card .form-field select option { color: #191c1e; background: #fff; }
.wizard-transport-toggle {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 22px;
    padding: 15px;
    color: #fff;
    background: rgba(255, 255, 255, .11);
    border: 1px solid rgba(255, 255, 255, .17);
    border-radius: 8px;
    font-size: 13px;
    letter-spacing: 0;
}
.wizard-transport-toggle input {
    appearance: none;
    width: 46px;
    height: 25px;
    min-height: 25px;
    margin: 0;
    background: #687083;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    transition: background .18s ease;
}
.wizard-transport-toggle input::after {
    display: block;
    width: 19px;
    height: 19px;
    margin: 3px;
    content: '';
    background: #fff;
    border-radius: 50%;
    transition: transform .18s ease;
}
.wizard-transport-toggle input:checked { background: #86f2e4; }
.wizard-transport-toggle input:checked::after { transform: translateX(21px); }
.wizard-transport-decoration {
    position: absolute;
    right: -10px;
    bottom: -25px;
    color: rgba(255, 255, 255, .09);
    font-size: 170px;
    line-height: 1;
}
.matricula-stitch-card .form-actions { align-items: center; }
.matricula-cancel-action {
    margin-right: auto;
    color: #45464d;
    font-size: 13px;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
}
.matricula-cancel-action:hover { color: #ba1a1a; }
.matricula-stitch-card .responsible-card {
    padding: 20px;
    background: #fff;
    border: 1px solid #e0e3e5;
    border-radius: 10px;
}
.matricula-stitch-card .form-actions {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-top: 24px;
    border-color: #e0e3e5;
}
.matricula-wizard-actions { display: flex; align-items: center; justify-content: flex-end; gap: 16px; }
.matricula-stitch-card .form-actions .secundario,
.matricula-draft-action {
    min-width: 140px;
    color: #45464d;
    background: #fff;
    border: 1px solid #c6c6cd;
    border-radius: 8px;
    box-shadow: none;
}
.matricula-stitch-card .form-actions .secundario:disabled {
    color: #9a9ca4;
    background: #f7f9fb;
    border-color: #e0e3e5;
    opacity: 1;
}
.matricula-draft-action { color: #006f66; border-color: #b8dedd; }
.matricula-continue-action {
    min-width: 176px;
    color: #fff;
    background: #006a61;
    border-radius: 8px;
    box-shadow: 0 5px 12px rgba(0, 106, 97, .24);
}
@media (max-width: 760px) {
    .matricula-stitch-header { align-items: stretch; flex-direction: column; }
    .matricula-stitch-step-counter { align-self: flex-start; }
    .matricula-stitch-card { padding: 18px; }
    .wizard-stage-body { grid-template-columns: 1fr; }
    .wizard-stage-body .form-field { grid-column: auto !important; }
    .matricula-stitch-card .form-actions,
    .matricula-wizard-actions { align-items: stretch; flex-direction: column; }
    .matricula-wizard-actions > * { width: 100%; }
    .wizard-address-transport { grid-template-columns: 1fr; }
    .wizard-address-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .wizard-field-logradouro, .wizard-field-complemento, .wizard-field-bairro { grid-column: span 2; }
    .wizard-field-cidade { grid-column: span 1; }
    .wizard-field-uf { grid-column: span 1; }
    .matricula-cancel-action { margin: 0; text-align: center; }
}

/* Consolidação Stitch v3 — telas operacionais remanescentes. */
.stitch-page {
    width: min(100%, var(--largura-conteudo));
    margin-inline: auto;
    color: #191c1e;
    font-family: var(--fonte-base);
    font-size: 14px;
    line-height: 20px;
}
.stitch-page-header h1,
.validation-card-stitch h1 {
    margin-bottom: 8px;
    font-size: 30px;
    font-weight: 700;
    line-height: 38px;
    letter-spacing: -.02em;
}
.stitch-page h2 {
    font-size: 20px;
    font-weight: 600;
    line-height: 28px;
}
.stitch-page .page-eyebrow,
.stitch-page label,
.stitch-page table th {
    font-size: 12px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: .05em;
}
.stitch-page .card {
    border-color: #e0e3e5;
    border-radius: 12px;
    box-shadow: none;
}
.stitch-page .page-description { max-width: 720px; color: #45464d; }

/* Importação de alunos */
.import-stitch-page { max-width: 1120px; }
.import-upload-card { max-width: 820px; }
.import-dropzone {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px 16px;
    padding: 28px;
    background: #f2f4f6;
    border: 1px dashed #76777d;
    border-radius: 12px;
}
.import-dropzone-icon {
    width: 44px;
    height: 44px;
    grid-row: 1 / span 2;
    display: grid;
    place-items: center;
    color: #006a61;
    background: #86f2e4;
    border-radius: 50%;
    font-size: 24px;
    font-weight: 700;
}
.import-dropzone > div > strong,
.import-dropzone > div > small { display: block; }
.import-dropzone > div > small { margin-top: 2px; }
.import-dropzone > .form-field,
.import-dropzone > p { grid-column: 1 / -1; margin: 8px 0 0; }
.import-mapping-card { padding: 0; overflow: hidden; }
.import-mapping-card > .alerta { margin: 24px 24px 0; }
.import-mapping-card > form { gap: 0; }
.import-mapping-grid { display: grid; }
.import-mapping-row {
    min-height: 72px;
    display: grid;
    grid-template-columns: minmax(220px, .8fr) minmax(260px, 1.2fr);
    gap: 24px;
    align-items: center;
    padding: 12px 24px;
    border-bottom: 1px solid #e0e3e5;
}
.import-mapping-row:nth-child(even) { background: #f7f9fb; }
.import-mapping-row label { margin: 0; color: #45464d; }
.import-mapping-row select { margin: 0; background-color: #fff; }
.import-mapping-card .form-actions { margin: 0; padding: 20px 24px; background: #f2f4f6; }

/* Ocorrências */
.occurrence-stitch-page { max-width: 920px; }
.occurrence-form-card { padding: 28px; }
.occurrence-severity-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}
.occurrence-form-card .form-field { margin: 0; }
.occurrence-form-card textarea { min-height: 160px; resize: vertical; }

/* Central de relatórios */
.reports-hub { max-width: 1440px; }
.reports-hub-header { margin-bottom: 20px; }
.reports-hub-header .page-header-actions svg,
.reports-scope-notice svg,
.reports-overview svg,
.reports-search svg,
.reports-group-heading svg,
.reports-card svg,
.reports-empty svg { width: 20px; height: 20px; fill: none; stroke: currentColor; }
.reports-scope-notice {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
    padding: 15px 18px;
    border: 1px solid #b9ded9;
    border-radius: 12px;
    background: #effbf9;
}
.reports-scope-notice > span {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    flex: 0 0 auto;
    color: #006a61;
    border-radius: 10px;
    background: #d8f4ef;
}
.reports-scope-notice strong,
.reports-scope-notice p { display: block; margin: 0; }
.reports-scope-notice p { margin-top: 2px; color: #536072; font-size: 13px; }
.reports-overview {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}
.reports-overview > article {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 96px;
    padding: 17px 20px;
    border: 1px solid #dce1e6;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}
.reports-overview-icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    flex: 0 0 auto;
    color: #006a61;
    border-radius: 12px;
    background: #dff5f1;
}
.reports-overview-icon.scheduled { color: #315ea8; background: #e7eefc; }
.reports-overview-icon.recent { color: #795315; background: #fff0d2; }
.reports-overview small,
.reports-overview strong,
.reports-overview article span { display: block; }
.reports-overview small { color: #5e6b7d; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.reports-overview strong { margin: 2px 0; color: #111827; font-size: 24px; line-height: 1; }
.reports-overview article div > span { color: #718096; font-size: 12px; }
.reports-tabs {
    display: flex;
    gap: 24px;
    margin-bottom: 18px;
    border-bottom: 1px solid #dce1e6;
}
.reports-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 44px;
    color: #5b6575;
    border-bottom: 2px solid transparent;
    font-weight: 700;
    text-decoration: none;
}
.reports-tabs a:hover,
.reports-tabs a.active { color: #006a61; border-bottom-color: #008f83; }
.reports-tabs a span {
    min-width: 21px;
    padding: 2px 6px;
    color: inherit;
    border-radius: 999px;
    background: #edf0f3;
    font-size: 11px;
    text-align: center;
}
.reports-search {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) 230px auto auto;
    align-items: end;
    gap: 12px;
    margin-bottom: 14px;
    padding: 16px;
    border: 1px solid #dce1e6;
    border-radius: 12px;
    background: #fff;
}
.reports-search > label:first-child { position: relative; display: block; }
.reports-search > label:first-child svg {
    position: absolute;
    top: 50%;
    left: 15px;
    z-index: 1;
    color: #758196;
    transform: translateY(-50%);
}
.reports-search input[type="search"] {
    width: 100%;
    height: 44px;
    padding: 0 16px 0 44px;
    border: 1px solid transparent;
    border-radius: 9px;
    background: #f0f2f4;
}
.reports-search input[type="search"]:focus { border-color: #008f83; background: #fff; outline: 3px solid rgba(0, 143, 131, .12); }
.reports-category-select { display: grid; gap: 5px; margin: 0; }
.reports-category-select > span { color: #596579; font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.reports-category-select select { height: 44px; margin: 0; }
.reports-search .botao { min-height: 44px; }
.reports-clear { align-self: center; color: #006a61; font-size: 13px; font-weight: 700; }
.reports-category-chips { display: flex; gap: 8px; margin-bottom: 26px; overflow-x: auto; scrollbar-width: none; }
.reports-category-chips::-webkit-scrollbar { display: none; }
.reports-category-chips a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    white-space: nowrap;
    color: #4f5b6b;
    border: 1px solid #dce1e6;
    border-radius: 999px;
    background: #fff;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}
.reports-category-chips a:hover,
.reports-category-chips a.active { color: #005d55; border-color: #8ccfc7; background: #e5f7f4; }
.reports-category-chips span { color: #697587; }
.reports-groups { display: grid; gap: 32px; }
.reports-group { min-width: 0; }
.reports-group-heading {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}
.reports-group-heading > span {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    color: #006a61;
    border-radius: 50%;
    background: #dff5f1;
}
.reports-group-heading h2,
.reports-group-heading p { margin: 0; }
.reports-group-heading h2 { color: #111827; font-size: 19px; }
.reports-group-heading p { margin-top: 1px; color: #687588; font-size: 13px; }
.reports-group-heading > small { color: #748095; font-size: 12px; }
.reports-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.reports-card {
    position: relative;
    display: flex;
    min-height: 166px;
    flex-direction: column;
    padding: 18px;
    overflow: hidden;
    color: #111827;
    border: 1px solid #dce1e6;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .035);
    text-decoration: none;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.reports-card::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    content: "";
    background: #008f83;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .18s ease;
}
.reports-card:hover { border-color: #9acfc9; box-shadow: 0 8px 22px rgba(15, 23, 42, .08); transform: translateY(-2px); }
.reports-card:hover::after { transform: scaleX(1); }
.reports-card[hidden],
.reports-group[hidden] { display: none; }
.reports-card-icon {
    display: grid;
    width: 36px;
    height: 36px;
    margin-bottom: 16px;
    place-items: center;
    color: #006a61;
    border-radius: 9px;
    background: #e4f7f4;
}
.reports-card-open { position: absolute; top: 18px; right: 16px; color: #8a95a5; transition: color .18s ease, transform .18s ease; }
.reports-card-open svg { width: 17px; height: 17px; }
.reports-card:hover .reports-card-open { color: #006a61; transform: translateX(2px); }
.reports-card strong { margin-bottom: 5px; font-size: 14px; }
.reports-card p { margin: 0 0 14px; color: #667386; font-size: 12.5px; line-height: 1.45; }
.reports-card small { margin-top: auto; color: #00786e; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.reports-operation-card { padding: 22px; }
.reports-operation-card .section-heading { margin-bottom: 18px; }
.reports-table td > strong,
.reports-table td > small { display: block; }
.reports-table td > small { margin-top: 2px; color: #718096; }
.reports-format { display: inline-flex; padding: 4px 8px; color: #334155; border-radius: 6px; background: #edf0f3; font-size: 11px; font-weight: 800; }
.reports-empty {
    display: grid;
    min-height: 250px;
    place-items: center;
    align-content: center;
    padding: 32px;
    color: #647184;
    border: 1px dashed #cbd2db;
    border-radius: 12px;
    background: #fafbfc;
    text-align: center;
}
.reports-empty > span { display: grid; width: 46px; height: 46px; margin-bottom: 10px; place-items: center; color: #006a61; border-radius: 50%; background: #dff5f1; }
.reports-empty h2,
.reports-empty p { margin: 0; }
.reports-empty h2 { color: #1f2937; font-size: 18px; }
.reports-empty p { margin: 5px 0 16px; }
.reports-empty.compact { min-height: 290px; border: 0; }

@media (max-width: 1180px) {
    .reports-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .reports-overview { grid-template-columns: 1fr; }
    .reports-search { grid-template-columns: minmax(0, 1fr) 220px auto; }
    .reports-search > label:first-child { grid-column: 1 / -1; }
    .reports-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .reports-hub-header { align-items: stretch; }
    .reports-hub-header .page-header-actions,
    .reports-hub-header .botao { width: 100%; }
    .reports-overview > article { min-height: 82px; }
    .reports-tabs { gap: 18px; overflow-x: auto; }
    .reports-search { grid-template-columns: 1fr; }
    .reports-search > label:first-child { grid-column: auto; }
    .reports-search .botao { width: 100%; }
    .reports-clear { justify-self: center; }
    .reports-group-heading { grid-template-columns: 38px minmax(0, 1fr); }
    .reports-group-heading > span { width: 38px; height: 38px; }
    .reports-group-heading > small { display: none; }
    .reports-group-heading p { display: none; }
    .reports-card-grid { grid-template-columns: 1fr; }
    .reports-card { min-height: 148px; }
    .reports-operation-card { padding: 16px; }
}

/* Relatórios: consulta, preview, automações e visão corporativa. */
.report-detail-page,
.report-schedules-page,
.report-corporate-page { max-width: 1440px; }
.report-detail-header .page-header-actions .botao svg { width: 17px; height: 17px; transform: rotate(180deg); }
.report-filter-card { margin-bottom: 18px; padding: 20px; }
.report-filter-heading,
.report-card-heading { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.report-filter-heading h2,
.report-filter-heading p,
.report-card-heading h2,
.report-card-heading p { margin: 0; }
.report-filter-heading h2,
.report-card-heading h2 { font-size: 18px; line-height: 1.3; }
.report-filter-heading p,
.report-card-heading p:last-child { margin-top: 2px; color: #687588; font-size: 12px; }
.report-section-icon,
.report-card-heading > span { display: grid; width: 38px; height: 38px; flex: 0 0 38px; color: #006a61; border-radius: 10px; background: #dff5f1; place-items: center; }
.report-section-icon svg,
.report-card-heading svg,
.report-metric svg,
.report-schedule-metrics svg,
.report-security-card svg,
.report-export svg { width: 18px; height: 18px; fill: none; stroke: currentColor; }
.report-filter-form,
.report-schedule-form { display: grid; gap: 16px; }
.report-filter-grid { display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr)); gap: 12px; }
.report-filter-field { display: grid; align-content: start; gap: 5px; min-width: 0; }
.report-filter-field > label { margin: 0; color: #536072; font-size: 10px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.report-filter-field input:not([type="checkbox"]),
.report-filter-field select,
.report-filter-field textarea { width: 100%; min-height: 42px; margin: 0; border-color: transparent; background: #f0f2f4; font-size: 13px; }
.report-filter-field textarea { min-height: 82px; resize: vertical; }
.report-filter-field input:focus,
.report-filter-field select:focus,
.report-filter-field textarea:focus { border-color: #008f83; background: #fff; outline: 3px solid rgba(0, 143, 131, .12); }
.report-filter-field small { color: #718096; font-size: 10px; line-height: 1.4; }
.report-filter-field.has-error input,
.report-filter-field.has-error select,
.report-filter-field.has-error textarea { border-color: #dc2626; }
.report-filter-field .field-error { color: #b42318; font-size: 11px; font-weight: 700; }
.report-filter-actions { display: flex; align-items: center; gap: 9px; padding-top: 1px; border: 0; }
.report-filter-actions .botao { min-height: 40px; }
.report-filter-actions .botao svg { width: 17px; height: 17px; fill: none; stroke: currentColor; }
.report-loading { margin-left: auto; color: #627084; font-size: 12px; }
.report-live-notice { margin-bottom: 18px; }
.report-preview { display: grid; gap: 18px; }
.report-metrics,
.report-schedule-metrics,
.report-corporate-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.report-schedule-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 18px; }
.report-metric,
.report-schedule-metrics article,
.report-corporate-metrics article { display: flex; align-items: center; gap: 13px; min-height: 92px; padding: 16px 18px; border: 1px solid #dce1e6; border-radius: 12px; background: #fff; box-shadow: 0 1px 2px rgba(15, 23, 42, .035); }
.report-metric > span,
.report-schedule-metrics article > span { display: grid; width: 40px; height: 40px; flex: 0 0 40px; color: #006a61; border-radius: 11px; background: #dff5f1; place-items: center; }
.report-metric.info > span { color: #315ea8; background: #e7eefc; }
.report-metric.money > span,
.report-schedule-metrics article > span.success { color: #08703b; background: #dcf5e5; }
.report-metric.warning > span,
.report-schedule-metrics article > span.warning { color: #946200; background: #fff0d2; }
.report-metric div,
.report-schedule-metrics article div { display: grid; gap: 2px; min-width: 0; }
.report-metric small,
.report-schedule-metrics small,
.report-corporate-metrics small { color: #5e6b7d; font-size: 10px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.report-metric strong,
.report-schedule-metrics strong,
.report-corporate-metrics strong { color: #111827; font-size: 23px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.report-metric p,
.report-schedule-metrics p,
.report-corporate-metrics span { margin: 0; color: #718096; font-size: 11px; }
.report-result-card { padding: 0; overflow: hidden; }
.report-result-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 19px 22px; border-bottom: 1px solid #dce1e6; }
.report-result-toolbar h2,
.report-result-toolbar p { margin: 0; }
.report-result-toolbar h2 { margin: 2px 0; font-size: 19px; }
.report-result-toolbar > div:first-child > p:last-child { color: #718096; font-size: 11px; }
.report-export-group { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.report-export-group > span { margin-right: 3px; color: #687588; font-size: 10px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.report-export { display: inline-flex; min-height: 35px; align-items: center; justify-content: center; gap: 6px; padding: 0 11px; color: #263345; border: 1px solid #cbd2db; border-radius: 8px; background: #fff; font-size: 11px; font-weight: 800; text-decoration: none; }
.report-export:hover { color: #006a61; border-color: #8ccfc7; background: #f2fbf9; }
.report-export.primary { color: #fff; border-color: #008f83; background: #008f83; }
.report-export.primary:hover { border-color: #006a61; background: #006a61; }
.report-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; padding: 11px 22px; border-bottom: 1px solid #dce1e6; background: #fafbfc; }
.report-active-filters > strong { margin-right: 3px; color: #536072; font-size: 10px; letter-spacing: .055em; text-transform: uppercase; }
.report-active-filters > span { padding: 5px 8px; color: #536072; border: 1px solid #dce1e6; border-radius: 999px; background: #fff; font-size: 10px; }
.report-active-filters b { color: #1f2937; }
.report-table-wrap { max-height: 660px; overflow: auto; }
.report-data-table { min-width: 840px; }
.report-data-table thead { position: sticky; z-index: 2; top: 0; }
.report-data-table th { background: #eef1f4; box-shadow: inset 0 -1px #dce1e6; }
.report-data-table td { vertical-align: middle; }
.report-data-table td.cell-money,
.report-data-table td.cell-number { white-space: nowrap; font-variant-numeric: tabular-nums; }
.report-data-table td.cell-money { color: #0f5132; font-weight: 800; }
.report-data-table td.cell-empty { color: #94a3b8; }
.report-status { display: inline-flex; align-items: center; min-height: 23px; padding: 3px 8px; white-space: nowrap; border-radius: 999px; font-size: 10px; font-weight: 800; }
.report-status.success { color: #08703b; background: #dcf5e5; }
.report-status.warning { color: #8a5a00; background: #fff0d2; }
.report-status.danger { color: #b42318; background: #fee4e2; }
.report-status.info { color: #245ab5; background: #e4edff; }
.report-status.neutral { color: #536072; background: #edf0f3; }
.report-pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 22px; border-top: 1px solid #dce1e6; background: #fafbfc; color: #687588; font-size: 11px; }
.report-pagination > div { display: flex; align-items: center; gap: 12px; }
.report-pagination a { color: #006a61; font-weight: 800; text-decoration: none; }
.report-pagination strong { color: #344054; font-size: 11px; }
.report-result-empty { min-height: 330px; margin: 18px; }
.report-schedule-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 18px; margin-bottom: 18px; }
.report-schedule-form-card { padding: 22px; }
.report-schedule-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.schedule-field-destinatarios { grid-column: 1 / -1; }
.schedule-field-ativo { display: flex; align-items: center; gap: 9px; padding-top: 20px; }
.schedule-field-ativo label { order: 2; }
.schedule-field-ativo input { width: 18px; height: 18px; margin: 0; accent-color: #008f83; }
.report-security-card { padding: 22px; color: #d9f4ef; border-radius: 12px; background: #0f1a31; }
.report-security-card > span { display: grid; width: 42px; height: 42px; color: #0f1a31; border-radius: 11px; background: #86f2e4; place-items: center; }
.report-security-card .page-eyebrow { margin: 18px 0 4px; color: #86f2e4; }
.report-security-card h2 { margin: 0 0 14px; color: #fff; font-size: 19px; }
.report-security-card ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.report-security-card li { position: relative; padding-left: 17px; font-size: 12px; line-height: 1.5; }
.report-security-card li::before { position: absolute; top: .52em; left: 0; width: 6px; height: 6px; content: ""; border-radius: 50%; background: #49cbbb; }
.report-schedules-list { padding: 0; overflow: hidden; }
.report-schedules-list .section-heading,
.report-corporate-table-card .section-heading { padding: 20px 22px; border-bottom: 1px solid #dce1e6; }
.report-schedules-list form { margin: 0; }
.report-link-danger { padding: 0; color: #b42318; border: 0; background: transparent; font-size: 11px; font-weight: 800; cursor: pointer; }
.report-link-danger:hover { text-decoration: underline; }
.report-corporate-metrics { margin-bottom: 18px; }
.report-corporate-metrics article { display: grid; align-content: center; gap: 2px; border-top: 3px solid #008f83; }
.report-corporate-metrics article.money { border-top-color: #08703b; }
.report-corporate-metrics article.warning { border-top-color: #d99a18; }
.report-corporate-table-card { padding: 0; overflow: hidden; }
.report-corporate-table-card td > strong,
.report-corporate-table-card td > small { display: block; }
.report-corporate-table-card td > small { margin-top: 2px; color: #718096; }

@media (max-width: 1180px) {
    .report-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .report-metrics,
    .report-corporate-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .report-schedule-layout { grid-template-columns: 1fr; }
    .report-schedule-metrics { grid-template-columns: 1fr; }
    .report-security-card { min-height: auto; }
}
@media (max-width: 700px) {
    .report-filter-grid,
    .report-schedule-grid,
    .report-metrics,
    .report-corporate-metrics { grid-template-columns: 1fr; }
    .schedule-field-destinatarios { grid-column: auto; }
    .report-result-toolbar { align-items: stretch; flex-direction: column; }
    .report-export-group { flex-wrap: wrap; }
    .report-export-group > span { width: 100%; }
    .report-pagination { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 520px) {
    .report-filter-card,
    .report-schedule-form-card { padding: 16px; }
    .report-filter-actions { align-items: stretch; flex-direction: column; }
    .report-filter-actions .botao { width: 100%; }
    .report-loading { margin-left: 0; text-align: center; }
    .report-result-toolbar,
    .report-active-filters,
    .report-pagination { padding-right: 16px; padding-left: 16px; }
}

/* Editor de modelos */
.document-editor-page { max-width: 1280px; }
.document-editor-card { padding: 0; overflow: hidden; }
.document-editor-form { gap: 0; }
.document-editor-settings { display: grid; gap: 20px; padding: 24px; border-bottom: 1px solid #e0e3e5; }
.document-editor-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.document-editor-settings .margin-grid { gap: 16px; }
.document-editor-settings .form-field { margin: 0; }
.document-editor-workspace {
    min-height: 620px;
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    background: #eceef0;
}
.document-variable-panel { padding: 24px 18px; background: #f7f9fb; border-right: 1px solid #e0e3e5; }
.document-variable-panel h2 { margin-bottom: 4px; }
.document-variable-panel .variaveis-disponiveis { display: grid; gap: 6px; margin-top: 16px; }
.document-variable-panel .variaveis-disponiveis button {
    width: 100%;
    justify-content: flex-start;
    min-height: 34px;
    padding: 7px 10px;
    color: #005049;
    background: #fff;
    border-color: #c6c6cd;
    font-family: var(--fonte-mono);
    font-size: 11px;
    text-align: left;
}
.document-canvas {
    width: min(100% - 48px, 820px);
    align-self: start;
    margin: 24px auto 40px;
    padding: 24px;
    background: #fff;
    border: 1px solid #c6c6cd;
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(15,23,42,.08);
}
.document-canvas-heading { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.document-canvas-heading p { margin: 2px 0 0; }
.document-canvas-heading > span { color: #667085; font: 600 12px/16px var(--fonte-base); letter-spacing: .05em; }
.document-editor-form > .form-actions { margin: 0; padding: 18px 24px; background: #fff; }

/* Portal da família e painéis por papel */
.role-dashboard-page .dashboard-kpis .kpi-card,
.family-portal-page .card { border-color: #e0e3e5; }
.role-dashboard-page .kpi-card > strong { font-size: 30px; line-height: 38px; letter-spacing: -.02em; }
.family-portal-hero {
    padding: 24px;
    color: #fff;
    background: #131b2e;
    border-radius: 12px;
}
.family-portal-hero .page-eyebrow { color: #89f5e7; }
.family-portal-hero h1 { color: #fff; }
.family-portal-hero .page-description { color: #bec6e0; }
.family-dependent-card { margin-top: 16px; }
.family-portal-grid { align-items: stretch; }
.family-registration-card { margin-top: 16px; }
.portal-shortcuts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 16px 0;
}
.portal-shortcuts a {
    min-height: 92px;
    display: grid;
    align-content: center;
    gap: 3px;
    padding: 16px;
    color: #191c1e;
    background: #fff;
    border: 1px solid #e0e3e5;
    border-radius: 8px;
    text-decoration: none;
}
.portal-shortcuts a:hover { border-color: #006a61; background: #f2f4f6; }
.portal-shortcuts strong { color: #006a61; font-size: 16px; line-height: 24px; }
.portal-shortcuts small { font-size: 12px; line-height: 16px; }
.family-pending-card { margin-top: 16px; }

/* Privacidade e validação pública */
.privacy-stitch-page { max-width: 1180px; }
.privacy-request-card { min-width: 0; }
.privacy-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
    gap: 16px;
}
.privacy-officer-card {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    color: #fff;
    background: #131b2e;
    border-color: #131b2e !important;
}
.privacy-officer-card h2 { color: #fff; }
.privacy-officer-card .page-eyebrow { color: #89f5e7; }
.privacy-officer-card dt { color: #bec6e0; }
.privacy-officer-card dd { color: #fff; }
.privacy-shield {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    display: grid;
    place-items: center;
    color: #005049;
    background: #89f5e7;
    border-radius: 16px;
    font-size: 24px;
    font-weight: 800;
}
.privacy-table-card { margin-top: 16px; }
.governance-page { max-width: 1180px; }
.governance-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, .8fr);
    gap: 28px;
    align-items: center;
    padding: 28px;
    color: #fff;
    background: #10192d;
    border-radius: 12px;
}
.governance-hero h2 { margin: 4px 0 8px; color: #fff; font-size: 24px; }
.governance-hero p { margin: 0; color: #c2cada; }
.governance-hero .page-eyebrow { color: #83e6d9; }
.governance-hero-icon, .governance-kpi-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    flex: 0 0 44px;
    color: #006a61;
    background: #d5f5ef;
    border-radius: 12px;
}
.governance-hero-icon { float: left; margin: 0 14px 24px 0; }
.governance-hero-icon svg, .governance-kpi-icon svg, .control-list svg, .privacy-shield svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.governance-hero-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.governance-hero-facts div { padding: 8px 16px; border-left: 1px solid #34405a; }
.governance-hero-facts dt { color: #aeb8cb; font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.governance-hero-facts dd { margin: 5px 0 0; color: #fff; font-size: 26px; font-weight: 800; }
.danger-text { color: #ffb4ab !important; }
.governance-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 16px 0; }
.governance-kpi { display: flex; gap: 14px; align-items: flex-start; min-height: 128px; border-top: 3px solid #b8c0ce !important; }
.governance-kpi.is-ok { border-top-color: #00897b !important; }
.governance-kpi.is-warning { border-top-color: #e29b16 !important; }
.governance-kpi.is-danger { border-top-color: #ba1a1a !important; }
.governance-kpi small, .governance-kpi strong, .governance-kpi a { display: block; }
.governance-kpi small { color: var(--cor-muted); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.governance-kpi strong { margin: 4px 0 10px; font-size: 18px; }
.governance-kpi a { color: var(--cor-acao); font-size: 12px; font-weight: 700; }
.governance-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr); gap: 16px; align-items: start; }
.governance-protocols td small { display: block; margin-top: 3px; color: var(--cor-muted); font-size: 11px; }
.governance-side { display: grid; gap: 16px; }
.privacy-officer-summary { color: #fff; background: #006a61; border-color: #006a61 !important; }
.privacy-officer-summary h2 { margin: 4px 0 18px; color: #fff; }
.privacy-officer-summary .page-eyebrow, .privacy-officer-summary dt { color: #b8eee6; }
.privacy-officer-summary dl { margin: 0; }
.privacy-officer-summary dl div + div { margin-top: 12px; }
.privacy-officer-summary dt { font-size: 11px; font-weight: 800; text-transform: uppercase; }
.privacy-officer-summary dd { margin: 3px 0 0; color: #fff; overflow-wrap: anywhere; }
.control-list ul { display: grid; gap: 16px; margin: 16px 0 0; padding: 0; list-style: none; }
.control-list li { display: flex; gap: 11px; }
.control-list svg { width: 20px; height: 20px; flex: 0 0 20px; color: #00897b; }
.control-list strong, .control-list small { display: block; }
.control-list small { margin-top: 2px; color: var(--cor-muted); }
.student-picker { position: relative; margin-bottom: 16px; }
.student-picker .search-field { display: flex; align-items: center; gap: 9px; padding: 0 12px; background: #f2f4f6; border: 1px solid transparent; border-radius: 8px; }
.student-picker .search-field:focus-within { border-color: #00897b; box-shadow: 0 0 0 3px rgba(0, 137, 123, .12); }
.student-picker .search-field svg { position: static; width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: #657080; stroke-width: 1.8; transform: none; }
.student-picker .search-field input { margin: 0; padding-left: 0; background: transparent; border: 0; box-shadow: none !important; }
.student-picker > small { display: block; margin-top: 6px; color: var(--cor-muted); }
.student-picker-results { position: absolute; z-index: 20; top: 82px; right: 0; left: 0; display: none; max-height: 270px; overflow-y: auto; background: #fff; border: 1px solid #c8ced8; border-radius: 8px; box-shadow: 0 14px 35px rgba(14, 24, 41, .16); }
.student-picker-results.is-open { display: block; }
.student-picker-results button { width: 100%; padding: 11px 14px; color: #171b22; background: #fff; border: 0; border-radius: 0; text-align: left; }
.student-picker-results button + button { border-top: 1px solid #e4e7ec; }
.student-picker-results button:hover, .student-picker-results button:focus { background: #e7f5f2; }
.student-picker-results strong, .student-picker-results small, .student-picker-selected strong, .student-picker-selected small { display: block; }
.student-picker-results small, .student-picker-selected small { margin-top: 2px; color: var(--cor-muted); }
.student-picker-empty { margin: 0; padding: 16px; color: var(--cor-muted); }
.student-picker-selected { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 10px; padding: 12px 14px; background: #e1f4ef; border: 1px solid #9dd9ce; border-radius: 8px; }
.student-picker-selected button { padding: 7px 10px; color: #006a61; background: #fff; border: 1px solid #89c9bf; }
.mfa-status-page { max-width: 940px; }
.mfa-validation-card { display: flex; gap: 18px; align-items: flex-start; padding: 28px; border-top: 3px solid #00897b !important; }
.mfa-validation-card h2 { margin: 4px 0 8px; }
.validation-page { width: min(100%, 760px); margin: 0 auto; }
.validation-heading { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 28px; }
.validation-heading strong, .validation-heading small { display: block; }
.validation-heading small { margin-top: 2px; }
.validation-card-stitch { padding: clamp(28px, 6vw, 48px); text-align: left; }
.validation-card-stitch .validation-icon { margin: 0 0 20px; }
.validation-card-stitch .page-eyebrow { color: #006a61; }
.validation-document-name { color: #45464d; font-size: 16px; }
.validation-search { display: grid; gap: 7px; margin-bottom: var(--espaco-5); padding-bottom: var(--espaco-5); border-bottom: 1px solid var(--cor-borda); }
.validation-search > label { color: var(--cor-muted); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.validation-search > div { display: flex; gap: 8px; }
.validation-search input { flex: 1; margin: 0; }
.validation-search button { white-space: nowrap; }
.form-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espaco-4); }
.danger-confirm-card { max-width: 760px; border-top: 3px solid var(--cor-erro-texto); }
.danger-confirm-card h2 { margin-top: 0; }
.danger-confirm-card .data-list { margin-bottom: var(--espaco-5); }
.pagination { display: flex; align-items: center; justify-content: flex-end; gap: var(--espaco-3); margin-top: var(--espaco-4); }
.pagination > span { margin-right: auto; color: var(--cor-muted); font-size: 12px; font-weight: 700; }
.validation-card-stitch .data-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin-top: 28px;
    overflow: hidden;
    background: #e0e3e5;
    border: 1px solid #e0e3e5;
    border-radius: 8px;
}
.validation-card-stitch .data-list > div { padding: 16px; background: #f7f9fb; }
.validation-security-note {
    display: grid;
    gap: 4px;
    margin: 24px 0 0;
    padding: 16px;
    color: #45464d;
    background: #f2f4f6;
    border-radius: 8px;
    font-size: 13px;
}
.validation-security-note strong { color: #191c1e; }

/* Supervisão de IA e operações financeiras */
.ai-stitch-hero {
    padding: 28px;
    color: #fff;
    background: #131b2e;
    border-radius: 12px;
}
.ai-stitch-hero h1 { color: #fff; }
.ai-stitch-hero .page-eyebrow { color: #89f5e7; }
.ai-stitch-hero .page-description { color: #bec6e0; }
.ai-stitch-hero .botao-secundario { color: #fff; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.3); }
.ai-stitch-page .dashboard-kpis .kpi-card > strong { font-size: 30px; line-height: 38px; }

/* LexIA definitiva: supervisão, redação, BI seguro e auditoria */
.ai-page{max-width:1440px;margin:0 auto}.ai-command-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:14px;padding:24px 26px;color:#fff;background:#111a2f;border-radius:12px;box-shadow:var(--sombra-sm)}.ai-command-copy{max-width:760px}.ai-command-copy .page-eyebrow{display:inline-block;margin:0 0 8px;color:#7ce6d7}.ai-command-copy h1{margin:0;color:#fff;font-size:30px;line-height:1.15}.ai-command-copy>p:last-child{max-width:680px;margin:8px 0 0;color:#bec8da}.ai-live-badge{float:left;margin:0 10px 0 0;padding:4px 8px;color:#052b29;background:#83e8dc;border-radius:999px;font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.ai-command-actions{display:flex;gap:8px;flex-wrap:wrap}.ai-command-actions .botao{white-space:nowrap}.ai-command-actions .botao-secundario{color:#fff;background:rgba(255,255,255,.08);border-color:#667087}.ai-safety-banner{display:flex;align-items:flex-start;gap:12px;margin:0 0 14px;padding:13px 15px;color:#594412;background:#fff7d8;border:1px solid #efd886;border-radius:9px}.ai-safety-banner>svg{width:19px;height:19px;flex:0 0 19px}.ai-safety-banner strong{display:block;font-size:12px}.ai-safety-banner p{margin:2px 0 0;font-size:11px;line-height:1.45}.ai-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.ai-kpi-grid>article,.ai-kpi-grid>a{position:relative;display:grid;grid-template-columns:38px 1fr;column-gap:10px;padding:15px 16px;color:var(--cor-texto-forte);background:#fff;border:1px solid var(--cor-borda);border-top:3px solid var(--cor-acao);border-radius:10px;box-shadow:var(--sombra-sm);text-decoration:none}.ai-kpi-icon{grid-row:1/span 3;display:grid;width:36px;height:36px;place-items:center;color:#087a70;background:#dff4f1;border-radius:9px}.ai-kpi-icon svg{width:18px;height:18px}.ai-kpi-grid small{color:var(--cor-muted);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.ai-kpi-grid strong{margin:2px 0;font-size:19px}.ai-kpi-grid p{margin:0;color:var(--cor-muted);font-size:10px}.ai-kpi-grid>a:hover{border-color:var(--cor-acao);transform:translateY(-1px)}.ai-workspace-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(290px,.65fr);gap:16px;align-items:start}.ai-main-stack,.ai-control-rail{display:grid;gap:16px}.ai-control-rail{position:sticky;top:calc(var(--altura-topbar) + 18px)}.ai-section-card,.ai-engine-card,.ai-recent-card{margin:0;padding:18px}.ai-section-card .section-heading{margin-bottom:13px}.ai-risk-table{min-width:760px}.ai-review-list{display:grid}.ai-review-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto 16px;align-items:center;gap:10px;padding:11px 0;color:var(--cor-texto-forte);border-top:1px solid var(--cor-borda);text-decoration:none}.ai-review-row:first-child{border-top:0}.ai-review-row>svg{width:15px;height:15px;color:var(--cor-muted)}.ai-review-icon{display:grid;width:34px;height:34px;place-items:center;color:#087a70;background:#e4f4f2;border-radius:9px}.ai-review-icon svg{width:17px;height:17px}.ai-review-row strong,.ai-review-row small{display:block}.ai-review-row small{margin-top:2px;color:var(--cor-muted);font-size:10px}.ai-engine-card{color:#fff;background:#111a2f;border-color:#111a2f}.ai-engine-card .page-eyebrow{color:#7ce6d7}.ai-engine-card h2{margin:4px 0 14px;color:#fff;font-size:18px}.ai-engine-card dl{margin:0 0 15px}.ai-engine-card dl>div,.ai-usage-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid rgba(255,255,255,.14)}.ai-engine-card dt{color:#aeb9ce;font-size:10px}.ai-engine-card dd{margin:0;font-size:10px;font-weight:750;text-align:right}.ai-engine-card .botao{width:100%;justify-content:center;color:#111a2f;background:#fff;border-color:#fff}.ai-recent-card .section-heading{margin-bottom:6px}.ai-usage-row{border-top-color:var(--cor-borda)}.ai-usage-row span:last-child{text-align:right}.ai-usage-row strong,.ai-usage-row small{display:block}.ai-usage-row strong{font-size:11px}.ai-usage-row small{margin-top:2px;color:var(--cor-muted);font-size:9px}.ai-form-page,.ai-data-page{max-width:1180px}.ai-form-layout,.ai-data-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:18px;align-items:start}.ai-form-card{margin:0;padding:0 24px}.ai-form-card>section{padding:22px 0;border-bottom:1px solid var(--cor-borda)}.ai-form-card .structure-section-heading{margin-bottom:15px}.ai-form-card textarea{min-height:220px;resize:vertical}.ai-form-card b,.ai-question-card b{color:#a91212}.ai-textarea-meta{display:flex;justify-content:space-between;gap:12px;margin-top:5px;color:var(--cor-muted);font-size:10px}.ai-form-actions{position:sticky;bottom:0;z-index:5;margin:0 -24px;padding:13px 24px;background:rgba(255,255,255,.96);border-top:1px solid var(--cor-borda);border-radius:0 0 12px 12px;backdrop-filter:blur(8px)}.ai-form-aside,.ai-question-aside{position:sticky;top:calc(var(--altura-topbar) + 18px);display:grid;gap:12px}.ai-context-card,.ai-safe-card,.ai-examples{padding:15px;background:#fff;border:1px solid var(--cor-borda);border-radius:10px;box-shadow:var(--sombra-sm)}.ai-context-card{border-top:3px solid var(--cor-acao)}.ai-context-card ul{display:grid;gap:8px;margin:10px 0 0;padding-left:18px;color:var(--cor-muted);font-size:11px}.ai-safe-card{display:flex;gap:10px;background:#f8fafb}.ai-safe-card>svg{width:19px;height:19px;flex:0 0 19px;color:#087a70}.ai-safe-card strong{font-size:11px}.ai-safe-card p{margin:3px 0 0;color:var(--cor-muted);font-size:10px;line-height:1.5}.ai-examples{display:grid;gap:7px}.ai-examples>strong{margin-bottom:3px;font-size:11px}.ai-examples button,.ai-context-card button{min-height:36px;padding:8px 10px;color:#087a70;background:#f0f8f7;border:1px solid #cce5e1;border-radius:7px;box-shadow:none;font-size:10px;text-align:left}.ai-examples button:hover,.ai-context-card button:hover{color:#fff;background:#087a70}.ai-data-layout>main{display:grid;gap:14px}.ai-question-card{margin:0;padding:20px}.ai-question-card .section-heading{margin-bottom:16px}.ai-question-icon{display:grid;width:40px;height:40px;place-items:center;color:#087a70;background:#dff4f1;border-radius:10px}.ai-question-icon svg{width:20px;height:20px}.ai-question-card input[type=text]{min-height:46px;font-size:14px}.ai-cache-choice{margin-top:14px}.ai-result-error{padding:14px 16px;color:#8f1717;background:#fff0ef;border:1px solid #f2b7b3;border-radius:9px}.ai-result-error strong,.ai-result-error span{display:block}.ai-result-error p{margin:4px 0;font-size:11px}.ai-result-error span{font-size:10px}.ai-result-card{margin:0;padding:18px}.ai-result-card .section-heading{align-items:flex-start}.ai-sql-details{position:relative}.ai-sql-details summary{padding:8px 10px;color:#087a70;background:#f0f8f7;border-radius:7px;font-size:10px;font-weight:750;cursor:pointer}.ai-sql-details pre{position:absolute;top:38px;right:0;z-index:12;width:min(650px,80vw);max-height:250px;margin:0;padding:13px;overflow:auto;color:#d9e2f2;background:#111a2f;border-radius:8px;box-shadow:var(--sombra-md);font-size:10px}.ai-question-aside .ai-context-card{display:grid;gap:7px}.ai-page .empty-state.compact>svg{width:28px;height:28px;margin-bottom:7px;color:#087a70}
@media(max-width:1000px){.ai-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-workspace-grid,.ai-form-layout,.ai-data-layout{grid-template-columns:1fr}.ai-control-rail,.ai-form-aside,.ai-question-aside{position:static}.ai-control-rail,.ai-form-aside,.ai-question-aside{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-engine-card{grid-row:1/span 2}}
@media(max-width:680px){.ai-command-hero{align-items:stretch;flex-direction:column;padding:19px}.ai-command-actions,.ai-command-actions .botao{width:100%}.ai-command-actions .botao{justify-content:center}.ai-kpi-grid,.ai-control-rail,.ai-form-aside,.ai-question-aside,.structure-field-grid.two{grid-template-columns:1fr}.ai-engine-card{grid-row:auto}.ai-form-card{padding:0 16px}.ai-form-actions{margin:0 -16px;padding:12px 16px}.ai-review-row{grid-template-columns:34px minmax(0,1fr) auto}.ai-review-row>svg{display:none}.ai-sql-details pre{position:fixed;inset:20% 12px auto;width:auto;max-height:60vh}}
.ai-review-workspace{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}.ai-source-panel,.ai-decision-panel,.ai-history-card{margin:0;padding:18px}.ai-source-panel .generated-content{min-height:270px;padding:16px;color:#344054;background:#f5f7f9;border:1px solid var(--cor-borda);border-left:3px solid #8a96aa;border-radius:8px;line-height:1.65}.ai-decision-panel{display:flex;flex-direction:column}.ai-decision-panel textarea{min-height:270px;resize:vertical}.ai-decision-panel .form-actions{margin-top:auto}.ai-review-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:11px 14px;background:#fff;border:1px solid var(--cor-borda);border-radius:9px}.ai-review-footer span{color:var(--cor-muted);font-size:10px}.ai-apply-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px}.ai-apply-card h2{margin:3px 0}.ai-apply-card p:last-child{margin:0;color:var(--cor-muted);font-size:11px}.ai-history-page{display:grid;gap:14px}.ai-history-page>.page-header{margin-bottom:0}.ai-history-card .icon-button{color:#087a70;background:#e4f4f2}.ai-history-card table{min-width:900px}@media(max-width:800px){.ai-review-workspace{grid-template-columns:1fr}.ai-apply-card{align-items:stretch;flex-direction:column}.ai-apply-card .acoes,.ai-apply-card .botao{width:100%}}
.finance-operation-page { max-width: 1040px; }
.finance-operation-grid {
    display: grid;
    grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
    gap: 16px;
    align-items: start;
}
.finance-operation-context {
    position: sticky;
    top: calc(var(--altura-topbar) + 20px);
    color: #fff;
    background: #131b2e;
    border-color: #131b2e !important;
}
.finance-operation-context h2 { color: #fff; }
.finance-operation-context .page-eyebrow { color: #89f5e7; }
.finance-operation-context p:last-child { margin: 0; color: #bec6e0; }

/* Classes semânticas das telas recentes, mantidas explícitas para auditoria visual. */
.login-form { display: grid; gap: var(--espaco-4); }
.section-description { margin: 0 0 var(--espaco-4); color: var(--cor-muted); font-size: 13px; }
.wizard-field-cep { min-width: 0; }
.wizard-field-numero { min-width: 0; }
.student-quick-health { border-left: 3px solid var(--cor-aviso-texto); }
.student-timeline-card { min-width: 0; }
.health-edit-form { display: grid; gap: var(--espaco-5); }
.health-contacts-section { display: grid; gap: var(--espaco-4); }
.payment-choice-card { display: grid; gap: var(--espaco-5); margin-bottom: var(--espaco-5); }
.payment-choice-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: var(--espaco-4);
}
.payment-choice-grid form {
    display: grid;
    align-content: start;
    gap: var(--espaco-3);
    padding: var(--espaco-4);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-md);
    background: var(--cor-superficie-baixa);
}
.payment-choice-grid form strong { font-size: 18px; }
.payment-choice-grid form small { min-height: 38px; color: var(--cor-muted); }
.finance-product-row { display: grid; gap: var(--espaco-3); padding: var(--espaco-4); border: 1px solid var(--cor-borda); border-radius: var(--raio-md); }
.finance-pricing-page { max-width: 1480px; margin: 0 auto; }
.finance-pricing-form { min-width: 0; }
.finance-pricing-errors { margin-bottom: 14px; }
.finance-pricing-layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; align-items: start; gap: 20px; }
.finance-pricing-main { min-width: 0; padding: 0 26px; }
.finance-pricing-section { padding: 25px 0; border-bottom: 1px solid var(--cor-borda); }
.finance-pricing-section:last-child { border-bottom: 0; }
.finance-pricing-section-heading { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.finance-pricing-section-heading > span { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; color: #087a70; background: #def2ef; border-radius: 50%; font-size: 12px; font-weight: 800; }
.finance-pricing-section-heading h2 { margin: 1px 0 3px; font-size: 18px; }
.finance-pricing-section-heading p { margin: 0; color: var(--cor-muted); font-size: 12px; }
.finance-pricing-fields { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 15px; }
.finance-pricing-fields .field-group { grid-column: span 2; gap: 6px; }
.finance-pricing-fields .field-group > label,
.finance-product-entry .field-group > label { color: var(--cor-texto-forte); font-size: 10px; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.finance-pricing-fields input:not([type="checkbox"]),
.finance-pricing-fields select,
.finance-product-entry input:not([type="checkbox"]),
.finance-product-entry select { min-height: 40px; margin: 0; padding: 7px 10px; background: var(--ds-surface-low); border-color: transparent; font-size: 13px; }
.finance-pricing-fields input:focus,
.finance-pricing-fields select:focus,
.finance-product-entry input:focus,
.finance-product-entry select:focus { background: #fff; border-color: var(--cor-secundaria); }
.finance-pricing-fields small,
.finance-product-entry .field-group small { color: var(--cor-muted); font-size: 10px; line-height: 1.4; }
.finance-pricing-fields.base .field-turma_modelo { grid-column: span 3; }
.finance-pricing-fields.base .field-ano_letivo { grid-column: span 3; }
.finance-pricing-fields.conditions .field-forma_entrada { grid-column: span 4; }
.finance-money-input { position: relative; }
.finance-money-input > span { position: absolute; top: 50%; left: 11px; z-index: 1; color: var(--cor-muted); font-size: 11px; font-weight: 800; transform: translateY(-50%); pointer-events: none; }
.finance-money-input input { width: 100%; padding-left: 35px !important; font-variant-numeric: tabular-nums; }
.finance-pricing-toggle { position: relative; display: flex; grid-column: span 2; align-items: flex-start; gap: 10px; margin: 0; padding: 12px; background: var(--ds-surface-low); border: 1px solid var(--cor-borda); border-radius: 9px; cursor: pointer; }
.finance-pricing-toggle > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.finance-pricing-toggle > span:last-child { display: grid; gap: 3px; }
.finance-pricing-toggle strong { font-size: 11px; line-height: 1.3; }
.finance-pricing-toggle small { color: var(--cor-muted); font-size: 10px; line-height: 1.4; }
.finance-pricing-toggle input:checked + .toggle-track { background: var(--cor-secundaria); }
.finance-pricing-toggle input:checked + .toggle-track::after { transform: translateX(14px); }
.finance-pricing-toggle:focus-within { outline: 2px solid color-mix(in srgb, var(--cor-secundaria) 42%, transparent); outline-offset: 2px; }
.finance-pricing-section-heading.product-heading { align-items: center; }
.finance-pricing-section-heading.product-heading > div { flex: 1; }
.finance-pricing-section-heading.product-heading .botao { flex: 0 0 auto; }
.finance-pricing-section-heading.product-heading .botao svg { width: 15px; height: 15px; }
.finance-contract-note { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; padding: 11px 13px; color: #35534f; background: #f0faf8; border: 1px solid #cce9e4; border-radius: 9px; }
.finance-contract-note svg { width: 18px; height: 18px; flex: 0 0 18px; color: #087a70; }
.finance-contract-note p { display: grid; gap: 2px; margin: 0; }
.finance-contract-note strong { font-size: 11px; }
.finance-contract-note span { font-size: 10px; line-height: 1.45; }
.finance-products-list { display: grid; gap: 10px; }
.finance-product-entry { min-width: 0; overflow: hidden; background: #fff; border: 1px solid var(--cor-borda); border-radius: 10px; transition: opacity .15s ease, border-color .15s ease; }
.finance-product-entry.is-placeholder { display: none; }
.finance-product-entry.is-removed { opacity: .55; border-color: #efb7b7; background: #fff8f8; }
.finance-product-entry > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 43px; padding: 8px 12px; background: #f7f9fa; border-bottom: 1px solid var(--cor-borda); }
.finance-product-entry > header > div { display: flex; align-items: center; gap: 9px; min-width: 0; }
.finance-product-index { display: inline-flex; gap: 3px; padding: 4px 7px; color: #087a70; background: #dff3ef; border-radius: 999px; font-size: 9px; font-weight: 750; text-transform: uppercase; white-space: nowrap; }
.finance-product-entry > header strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.finance-product-remove { display: inline-flex; align-items: center; gap: 5px; padding: 5px 7px; color: #a51b1b; background: transparent; border: 0; border-radius: 6px; font-size: 10px; font-weight: 750; }
.finance-product-remove:hover { background: #fee7e7; }
.finance-product-remove svg { width: 14px; height: 14px; }
.finance-delete-control { display: none; }
.finance-product-primary { display: grid; grid-template-columns: minmax(145px, 1.1fr) minmax(220px, 2fr) minmax(110px, .7fr) minmax(85px, .55fr); gap: 10px; padding: 12px; }
.finance-product-primary .product-description { min-width: 0; }
.finance-product-contract { display: grid; grid-template-columns: repeat(3, minmax(135px, .8fr)) minmax(220px, 1.7fr); align-items: stretch; gap: 8px; padding: 10px 12px 12px; border-top: 1px solid #eef1f2; }
.finance-mini-toggle { display: flex; align-items: flex-start; gap: 7px; margin: 0; padding: 8px; background: var(--ds-surface-low); border-radius: 7px; cursor: pointer; }
.finance-mini-toggle > input { width: 15px; height: 15px; flex: 0 0 15px; margin: 1px 0 0; }
.finance-mini-toggle > span { display: grid; gap: 2px; }
.finance-mini-toggle strong { font-size: 9px; line-height: 1.3; text-transform: uppercase; }
.finance-mini-toggle small { color: var(--cor-muted); font-size: 9px; line-height: 1.35; }
.finance-product-contract .product-foundation input { min-height: 100%; }
.finance-pricing-aside { position: sticky; top: calc(var(--altura-topbar) + 16px); display: grid; gap: 11px; }
.finance-pricing-summary { padding: 17px; background: #fff; border: 1px solid var(--cor-borda); border-top: 3px solid var(--cor-secundaria); border-radius: 10px; box-shadow: var(--sombra-sm); }
.finance-pricing-summary .page-eyebrow { margin-bottom: 4px; }
.finance-pricing-summary h2 { margin: 0 0 2px; font-size: 17px; }
.finance-pricing-summary > span { color: var(--cor-muted); font-size: 11px; }
.finance-pricing-summary dl { display: grid; gap: 0; margin: 15px 0 0; }
.finance-pricing-summary dl > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--cor-borda); }
.finance-pricing-summary dt { color: var(--cor-muted); font-size: 10px; }
.finance-pricing-summary dd { margin: 0; font-size: 11px; font-weight: 800; text-align: right; font-variant-numeric: tabular-nums; }
.finance-pricing-total { display: grid; gap: 3px; margin: 1px -7px 10px; padding: 12px; color: #fff; background: #101b30; border-radius: 8px; }
.finance-pricing-total span { color: #b8c2d7; font-size: 9px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.finance-pricing-total strong { font-size: 20px; font-variant-numeric: tabular-nums; }
.finance-pricing-summary > small { display: block; color: var(--cor-muted); font-size: 9px; line-height: 1.45; }
.finance-pricing-safe { display: flex; align-items: flex-start; gap: 9px; padding: 13px; background: #f8fafb; border: 1px solid var(--cor-borda); border-radius: 9px; }
.finance-pricing-safe svg { width: 18px; height: 18px; flex: 0 0 18px; color: #087a70; }
.finance-pricing-safe strong { font-size: 11px; }
.finance-pricing-safe p { margin: 3px 0 0; color: var(--cor-muted); font-size: 10px; line-height: 1.45; }
.finance-pricing-actions { display: grid; gap: 8px; }
.finance-pricing-actions > * { width: 100%; justify-content: center; }
@media (max-width: 1180px) {
    .finance-pricing-layout { grid-template-columns: minmax(0, 1fr); }
    .finance-pricing-aside { position: static; grid-template-columns: 1fr 1fr; }
    .finance-pricing-actions { align-self: end; }
    .finance-product-contract { grid-template-columns: repeat(3, 1fr); }
    .finance-product-contract .product-foundation { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
    .finance-pricing-main { padding: 0 16px; }
    .finance-pricing-fields { grid-template-columns: 1fr 1fr; }
    .finance-pricing-fields .field-group,
    .finance-pricing-fields.base .field-turma_modelo,
    .finance-pricing-fields.base .field-ano_letivo,
    .finance-pricing-fields.conditions .field-forma_entrada,
    .finance-pricing-toggle { grid-column: span 1; }
    .finance-product-primary { grid-template-columns: 1fr 1fr; }
    .finance-product-contract { grid-template-columns: 1fr 1fr; }
    .finance-product-contract .product-foundation { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .finance-pricing-fields,
    .finance-product-primary,
    .finance-product-contract,
    .finance-pricing-aside { grid-template-columns: 1fr; }
    .finance-pricing-fields .field-group,
    .finance-pricing-fields.base .field-turma_modelo,
    .finance-pricing-fields.base .field-ano_letivo,
    .finance-pricing-fields.conditions .field-forma_entrada,
    .finance-pricing-toggle,
    .finance-product-contract .product-foundation { grid-column: 1; }
    .finance-pricing-section-heading.product-heading { flex-wrap: wrap; }
    .finance-pricing-section-heading.product-heading .botao { width: 100%; justify-content: center; }
}
.compact-stack { display: grid; gap: var(--espaco-3); }
.annual-closing-table td { vertical-align: top; }
.annual-closing-page, .finance-pricing-page, .finance-enrollment-page { min-width: 0; }
.notice-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--espaco-4);
}
.notice-warning { border-left: 4px solid var(--cor-aviso-texto); }
.notice-success { border-left: 4px solid var(--cor-sucesso); }
.field-group { display: grid; align-content: start; gap: var(--espaco-2); min-width: 0; }
.form-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.inline-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espaco-3); }

/* Calendário: editor administrativo compacto e escalável. */
.evento-form-card { max-width: 1120px; padding: 0 20px; }
.evento-form-card > form { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 22px; align-items: start; }
.evento-editor-main { min-width: 0; }
.evento-editor-side { position: sticky; top: calc(var(--altura-topbar) + 16px); display: grid; gap: 12px; padding: 16px 0; }
.evento-form-card input:not([type="checkbox"]):not([type="radio"]),
.evento-form-card select { min-height: 38px; padding: 7px 10px; font-size: 14px; }
.evento-form-card textarea { min-height: 78px; padding: 9px 10px; font-size: 14px; }
.evento-bloco { display: grid; gap: 10px; padding: 14px 0; border-bottom: 1px solid var(--cor-borda); }
.evento-bloco:last-of-type { border-bottom: 0; }
.evento-bloco h2 { margin: 0; font-size: 16px; }
.evento-bloco > div > .page-eyebrow { margin-bottom: 4px; }
.evento-bloco > div > p { margin: 3px 0 0; color: var(--cor-muted); font-size: 13px; }
.alcance-opcoes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 3px; border-radius: 9px; background: var(--cor-superficie-baixa); }
.alcance-opcao { position: relative; display: flex; align-items: center; justify-content: center; min-height: 36px; padding: 7px 9px; border: 1px solid transparent; border-radius: 7px; cursor: pointer; color: var(--cor-muted); font-size: 11px; font-weight: 750; line-height: 1.2; text-align: center; }
.alcance-opcao input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.alcance-opcao:has(input:checked) { border-color: var(--cor-borda); color: var(--cor-texto); background: var(--cor-superficie); box-shadow: 0 1px 2px rgba(15, 23, 42, .08); }
.alcance-opcao:focus-within { outline: 2px solid var(--cor-secundaria); outline-offset: 1px; }
.recorte-evento { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--cor-borda); border-radius: 9px; background: var(--cor-superficie-baixa); }
.recorte-evento[hidden] { display: none !important; }
.campo-multiplas { padding: 0; border: 0; }
.campo-multiplas legend { width: 100%; margin-bottom: 6px; font-size: 12px; font-weight: 800; }
.campo-multiplas > div, .evento-form-card #id_series_destinatarias { display: flex; flex-wrap: wrap; gap: 6px; }
.campo-multiplas > div > div, .evento-form-card #id_series_destinatarias > div { display: contents; }
.campo-multiplas label, .evento-form-card #id_series_destinatarias label { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 5px 9px; border: 1px solid var(--cor-borda); border-radius: 999px; background: var(--cor-superficie); font-size: 12px; font-weight: 650; cursor: pointer; }
.campo-multiplas label:has(input:checked), .evento-form-card #id_series_destinatarias label:has(input:checked) { border-color: var(--cor-secundaria); color: #065f56; background: #e8faf6; }
.turmas-opcoes { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-height: 34px; }
.turmas-opcoes > span { color: var(--cor-muted); font-size: 12px; }
.turmas-opcoes button { min-height: 30px; padding: 5px 10px; border: 1px solid var(--cor-borda); border-radius: 999px; background: var(--cor-superficie); color: var(--cor-texto); font-size: 12px; font-weight: 650; line-height: 1.2; }
.turmas-opcoes button:hover { border-color: var(--cor-secundaria); background: #f0fdfa; }
.turmas-opcoes button.is-selected { border-color: var(--cor-secundaria); color: #065f56; background: #dff7f1; box-shadow: inset 0 0 0 1px var(--cor-secundaria); }
.evento-form-card #id_turmas[hidden] { display: none !important; }
.toggle-control { position: relative; display: inline-flex; align-items: center; gap: 9px; width: fit-content; cursor: pointer; color: var(--cor-texto); font-size: 13px; font-weight: 700; }
.toggle-control input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.toggle-track { position: relative; flex: 0 0 auto; width: 34px; height: 20px; border-radius: 999px; background: #cbd5e1; transition: background-color .15s ease; }
.toggle-track::after { position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(15, 23, 42, .25); content: ""; transition: transform .15s ease; }
.toggle-control input:checked + .toggle-track { background: var(--cor-secundaria); }
.toggle-control input:checked + .toggle-track::after { transform: translateX(14px); }
.toggle-control:focus-within .toggle-track { outline: 2px solid color-mix(in srgb, var(--cor-secundaria) 42%, transparent); outline-offset: 2px; }
.horario-evento[hidden] { display: none !important; }
.resumo-alcance { display: grid; gap: 5px; padding: 14px; border: 1px solid var(--cor-borda); border-top: 3px solid var(--cor-secundaria); border-radius: 9px; background: var(--cor-superficie-baixa); font-size: 13px; }
.resumo-alcance span { color: var(--cor-muted); font-size: 13px; }
.resumo-alcance .page-eyebrow { font-size: 10px; }
.evento-editor-note { padding: 12px; border: 1px solid var(--cor-borda); border-radius: 9px; font-size: 12px; }
.evento-editor-note p { margin: 5px 0 0; color: var(--cor-muted); line-height: 1.45; }
.evento-editor-actions { display: grid; gap: 8px; margin: 0; }
.evento-editor-actions > * { width: 100%; justify-content: center; }
.resultados-destinatarios { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.resultados-destinatarios button { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 50px; padding: 8px 10px; text-align: left; background: var(--cor-superficie); color: var(--cor-texto); border: 1px solid var(--cor-borda); }
.resultados-destinatarios button:hover { border-color: var(--cor-secundaria); background: #f0fdfa; }
.resultados-destinatarios button > span, .aluno-selecionado > span { display: grid; min-width: 0; gap: 2px; }
.resultados-destinatarios strong, .aluno-selecionado strong { overflow: hidden; font-size: 12px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.resultados-destinatarios small, .aluno-selecionado small { overflow: hidden; color: var(--cor-muted); font-size: 11px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.resultados-destinatarios em { flex: 0 0 auto; color: var(--cor-secundaria); font-size: 10px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.alunos-selecionados { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; min-height: 34px; }
.alunos-selecionados > span { color: var(--cor-muted); font-size: 12px; }
.aluno-selecionado { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; padding: 8px 10px; border: 1px solid #99ded1; border-radius: 8px; background: #effcf9; }
.aluno-selecionado button { flex: 0 0 auto; width: 26px; min-height: 26px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #64748b; font-size: 18px; line-height: 1; }
.aluno-selecionado button:hover { color: #b42318; background: #fee4e2; }
.evento-form-card #id_alunos[hidden] { display: none !important; }

/* Períodos letivos: linha do tempo anual e edição operacional. */
.periodos-page-header { align-items: end; }
.periodos-year-filter { display: flex; align-items: end; gap: 8px; padding: 10px; border: 1px solid var(--cor-borda); border-radius: 10px; background: var(--cor-superficie); }
.periodos-year-filter label { align-self: center; color: var(--cor-muted); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.periodos-year-filter select { min-width: 132px; min-height: 34px; padding: 5px 30px 5px 9px; font-size: 13px; }
.periodos-context { display: grid; grid-template-columns: minmax(180px,.7fr) minmax(260px,1fr) minmax(220px,.75fr); gap: 1px; overflow: hidden; margin-bottom: 14px; border: 1px solid var(--cor-borda); border-radius: 11px; background: var(--cor-borda); }
.periodos-context > div { display: grid; align-content: center; gap: 3px; min-height: 82px; padding: 13px 16px; background: var(--cor-superficie); }
.periodos-context .page-eyebrow { margin: 0; font-size: 9px; }
.periodos-context strong { font-size: 14px; }
.periodos-context small, .context-warning { margin: 0; color: var(--cor-muted); font-size: 11px; }
.periodos-context-action { justify-items: end; }
.periodos-context-action .badge { margin: 0; }
.periodos-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 16px; }
.periodos-metrics article { display: grid; align-content: start; gap: 4px; min-height: 96px; padding: 13px 15px; border: 1px solid var(--cor-borda); border-radius: 10px; background: var(--cor-superficie); box-shadow: var(--sombra-sm); }
.periodos-metrics article > span { color: var(--cor-muted); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.periodos-metrics article > strong { font-size: 18px; line-height: 1.2; }
.periodos-metrics article > small { color: var(--cor-muted); font-size: 11px; line-height: 1.35; }
.periodos-metrics progress { width: 100%; height: 5px; margin-top: 3px; overflow: hidden; border: 0; border-radius: 999px; accent-color: var(--cor-secundaria); }
.periodos-timeline-card, .periodos-operation-card { padding: 18px 20px; }
.periodos-timeline { position: relative; display: grid; grid-template-columns: repeat(var(--period-count),minmax(190px,1fr)); gap: 12px; margin: 0; padding: 20px 0 0; list-style: none; }
.periodos-timeline::before { position: absolute; top: 31px; right: 5%; left: 5%; height: 2px; content: ""; background: var(--cor-borda); }
.periodo-timeline-item { position: relative; min-width: 0; padding-top: 24px; }
.periodo-timeline-marker { position: absolute; top: 0; left: 16px; z-index: 1; display: grid; width: 24px; height: 24px; border: 3px solid var(--cor-superficie); border-radius: 50%; background: #cbd5e1; color: #334155; box-shadow: 0 0 0 1px var(--cor-borda); place-items: center; font-size: 10px; font-weight: 850; }
.periodo-timeline-item.is-atual .periodo-timeline-marker { color: #fff; background: var(--cor-secundaria); box-shadow: 0 0 0 3px color-mix(in srgb,var(--cor-secundaria) 20%,transparent); }
.periodo-timeline-item.is-publicado .periodo-timeline-marker, .periodo-timeline-item.is-fechado .periodo-timeline-marker { color: #067647; background: #d1fadf; }
.periodo-timeline-item > article { display: grid; align-content: start; gap: 10px; height: 100%; padding: 13px; border: 1px solid var(--cor-borda); border-radius: 9px; background: var(--cor-superficie-baixa); }
.periodo-timeline-item.is-atual > article { border-color: color-mix(in srgb,var(--cor-secundaria) 65%,var(--cor-borda)); box-shadow: inset 0 3px 0 var(--cor-secundaria); }
.periodo-timeline-item article > header { display: flex; align-items: start; justify-content: space-between; gap: 8px; }
.periodo-timeline-item h3 { margin: 2px 0 0; font-size: 14px; }
.periodo-state { color: var(--cor-muted); font-size: 9px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.is-atual .periodo-state { color: #06766c; }
.periodo-completude { flex: 0 0 auto; color: var(--cor-muted); font-size: 9px; }
.periodo-range { margin: 0; font-size: 12px; font-weight: 750; }
.periodo-milestones { display: grid; gap: 6px; margin: 0; }
.periodo-milestones > div { display: grid; grid-template-columns: minmax(72px,.8fr) minmax(0,1fr); gap: 6px; padding-top: 6px; border-top: 1px solid color-mix(in srgb,var(--cor-borda) 75%,transparent); }
.periodo-milestones dt { color: var(--cor-muted); font-size: 10px; }
.periodo-milestones dd { margin: 0; font-size: 10px; font-weight: 650; text-align: right; }
.periodo-timeline-item footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 4px; }
.periodo-timeline-item footer .badge { margin: 0; }
.periodo-timeline-item footer a { color: var(--cor-acao); font-size: 11px; font-weight: 800; text-decoration: none; }
.periodos-table { min-width: 1080px; }
.periodos-table td strong { font-size: 12px; }
.periodos-table .badge { margin-left: 0; }
.periodo-form-card { max-width: 1120px; padding: 0 20px; }
.periodo-form-card > form { display: grid; grid-template-columns: minmax(0,1fr) 250px; gap: 22px; align-items: start; }
.periodo-form-main { min-width: 0; }
.periodo-form-section { display: grid; gap: 10px; padding: 15px 0; border-bottom: 1px solid var(--cor-borda); }
.periodo-form-section:last-child { border-bottom: 0; }
.periodo-form-section .form-section-heading { margin-bottom: 2px; }
.periodo-form-section .page-eyebrow { margin-bottom: 3px; font-size: 9px; }
.periodo-form-section h2 { font-size: 16px; }
.periodo-form-card input:not([type="checkbox"]):not([type="radio"]), .periodo-form-card textarea { min-height: 38px; padding: 7px 10px; font-size: 14px; }
.periodo-form-card textarea { min-height: 76px; }
.periodo-form-side { position: sticky; top: calc(var(--altura-topbar) + 16px); display: grid; gap: 10px; padding: 15px 0; }
.periodo-side-summary, .periodo-side-details, .periodo-side-note { display: grid; gap: 7px; padding: 13px; border: 1px solid var(--cor-borda); border-radius: 9px; background: var(--cor-superficie-baixa); }
.periodo-side-summary { border-top: 3px solid var(--cor-secundaria); }
.periodo-side-summary .page-eyebrow { margin: 0; font-size: 9px; }
.periodo-side-summary > span:not(.page-eyebrow) { color: var(--cor-muted); font-size: 11px; }
.periodo-side-state { width: fit-content; padding: 3px 8px; border-radius: 999px; font-weight: 750; }
.periodo-side-state.is-atual { color: #06766c !important; background: #dff7f1; }
.periodo-side-state.is-fechado, .periodo-side-state.is-publicado { color: #067647 !important; background: #d1fadf; }
.periodo-side-details > div { display: grid; gap: 2px; padding-bottom: 7px; border-bottom: 1px solid var(--cor-borda); }
.periodo-side-details > div:last-child { padding-bottom: 0; border-bottom: 0; }
.periodo-side-details span, .periodo-side-details small { color: var(--cor-muted); font-size: 10px; }
.periodo-side-details strong { font-size: 12px; }
.periodo-side-note strong { font-size: 12px; }
.periodo-side-note p { margin: 0; color: var(--cor-muted); font-size: 11px; line-height: 1.45; }
.periodo-form-actions { display: grid; gap: 8px; margin: 0; }
.periodo-form-actions > * { width: 100%; justify-content: center; }
.governanca-justificativa[hidden] { display: none !important; }

/* Orbe: componentes do backoffice interno, também declarados no catálogo
   global para que a auditoria automatizada de templates reconheça o contrato. */
.topbar { min-height: 64px; }
.operator { display: flex; gap: 16px; align-items: center; }
.shell { min-height: calc(100vh - 64px); }
.eyebrow { text-transform: uppercase; letter-spacing: .08em; font-size: 11px; font-weight: 800; }
.page-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.panel { min-width: 0; }
.auth-card { max-width: 480px; margin-inline: auto; }
.filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; }

@media (max-width: 760px) {
    .stitch-page-header h1, .validation-card-stitch h1 { font-size: 24px; line-height: 32px; }
    .import-mapping-row, .occurrence-severity-grid, .document-editor-meta,
    .privacy-intro-grid, .validation-card-stitch .data-list, .governance-hero, .governance-grid { grid-template-columns: 1fr; }
    .governance-kpis { grid-template-columns: 1fr; }
    .governance-hero-facts div:first-child { border-left: 0; }
    .import-mapping-row { gap: 6px; }
    .document-editor-workspace { grid-template-columns: 1fr; }
    .document-variable-panel { border-right: 0; border-bottom: 1px solid #e0e3e5; }
    .document-variable-panel .variaveis-disponiveis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .document-canvas { width: calc(100% - 24px); margin: 12px auto 24px; padding: 16px; }
    .portal-shortcuts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .privacy-officer-card { flex-direction: column; }
    .finance-operation-grid { grid-template-columns: 1fr; }
    .finance-operation-context { position: static; }
    .form-grid-3 { grid-template-columns: 1fr; }
    .notice-card { align-items: flex-start; flex-direction: column; }
    .alcance-opcoes { grid-template-columns: 1fr; }
    .evento-form-card > form { grid-template-columns: 1fr; }
    .evento-editor-side { position: static; padding-top: 0; }
    .periodos-page-header { align-items: stretch; }
    .periodos-year-filter { align-items: stretch; flex-direction: column; }
    .periodos-context, .periodos-metrics { grid-template-columns: 1fr; }
    .periodos-context-action { justify-items: start; }
    .periodos-timeline { grid-template-columns: 1fr; gap: 10px; padding-top: 0; }
    .periodos-timeline::before { top: 12px; bottom: 12px; left: 12px; width: 2px; height: auto; }
    .periodo-timeline-item { padding: 0 0 0 36px; }
    .periodo-timeline-marker { top: 10px; left: 0; }
    .periodos-operation-card .table-wrap { overflow: visible; border: 0; }
    table.periodos-table { min-width: 0; }
    table.periodos-table thead { display: none; }
    table.periodos-table, table.periodos-table tbody, table.periodos-table tr, table.periodos-table td { display: block; width: 100%; }
    table.periodos-table tr { margin-bottom: 10px; padding: 10px 12px; border: 1px solid var(--cor-borda); border-radius: 9px; background: var(--cor-superficie); }
    table.periodos-table td { display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 8px; min-height: 0; padding: 7px 0; border-bottom: 1px solid var(--cor-borda); text-align: left; }
    table.periodos-table td::before { color: var(--cor-muted); content: attr(data-label); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
    table.periodos-table td:last-child { border-bottom: 0; }
    .periodo-form-card > form { grid-template-columns: 1fr; }
    .periodo-form-side { position: static; padding-top: 0; }
}

@media (min-width: 761px) and (max-width: 1100px) {
    .evento-form-card > form { grid-template-columns: minmax(0, 1fr) 220px; gap: 16px; }
    .periodos-context { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .periodos-context-action { grid-column: 1 / -1; min-height: 58px !important; justify-items: start; }
    .periodos-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .periodos-timeline { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .periodos-timeline::before { display: none; }
    .periodo-timeline-item { padding-top: 0; }
    .periodo-timeline-marker { top: 10px; }
    .periodo-timeline-item > article { padding-left: 48px; }
    .periodo-form-card > form { grid-template-columns: minmax(0,1fr) 220px; gap: 16px; }
}

/* Entrada de históricos: busca progressiva por aluno */
.history-entry-page { max-width: 1180px; margin: 0 auto; }
.history-method-tabs { display: grid; grid-template-columns: 1fr 1fr; max-width: 720px; margin-bottom: 16px; padding: 4px; background: #e9edef; border-radius: 11px; }
.history-method-tabs a { display: grid; gap: 2px; min-height: 51px; padding: 8px 14px; color: var(--cor-muted); border: 1px solid transparent; border-radius: 8px; text-decoration: none; }
.history-method-tabs a.ativo { color: var(--cor-texto-forte); background: #fff; border-color: var(--cor-borda); box-shadow: var(--sombra-sm); }
.history-method-tabs strong { font-size: 12px; }
.history-method-tabs small { font-size: 10px; }
.history-entry-layout { display: grid; grid-template-columns: minmax(0,1fr) 280px; align-items: start; gap: 18px; }
.history-entry-card { padding: 0 24px; }
.history-entry-section { padding: 22px 0; border-bottom: 1px solid var(--cor-borda); }
.history-entry-section:last-child { border-bottom: 0; }
.history-entry-heading { display: flex; gap: 11px; margin-bottom: 16px; }
.history-entry-heading > span { display: grid; width: 27px; height: 27px; flex: 0 0 27px; color: #087a70; background: #def2ef; border-radius: 50%; place-items: center; font-size: 12px; font-weight: 800; }
.history-entry-heading h2 { margin: 1px 0 2px; font-size: 17px; }
.history-entry-heading p { margin: 0; color: var(--cor-muted); font-size: 12px; }
.history-picker-search { display: grid; gap: 6px; margin: 0; color: var(--cor-texto-forte); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.history-picker-search > span:last-child { position: relative; }
.history-picker-search svg { position: absolute; top: 50%; left: 11px; width: 17px; height: 17px; color: var(--cor-muted); transform: translateY(-50%); }
.history-picker-search input { width: 100%; min-height: 42px; margin: 0; padding-left: 37px; background: var(--ds-surface-low); border-color: transparent; text-transform: none; }
.history-picker-results { margin-top: 13px; }
.history-picker-results > p { grid-column: 1 / -1; margin: 0; padding: 10px; color: var(--cor-muted); font-size: 12px; }
.history-picker-selected { margin-top: 13px; }
.history-picker-selected > span { color: var(--cor-muted); font-size: 12px; }
.history-selected-student { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 11px 12px; background: #eff8f6; border: 1px solid #b9ddd7; border-radius: 9px; }
.history-selected-student > span:nth-child(2) { display: grid; min-width: 0; gap: 2px; }
.history-selected-student strong, .history-selected-student small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.history-selected-student strong { font-size: 12px; }
.history-selected-student small { color: var(--cor-muted); font-size: 10px; }
.history-selected-student button { padding: 6px 9px; color: #087a70; background: #fff; border: 1px solid #acd4ce; border-radius: 7px; font-size: 10px; font-weight: 800; }
.history-entry-aside { position: sticky; top: 92px; display: grid; gap: 9px; }
.history-entry-summary { padding: 17px; background: #fff; border: 1px solid var(--cor-borda); border-radius: 10px; }
.history-entry-summary strong { display: block; margin: 4px 0 5px; font-size: 15px; }
.history-entry-summary p:last-child { margin: 0; color: var(--cor-muted); font-size: 11px; line-height: 1.5; }
.history-entry-aside > .botao { width: 100%; justify-content: center; }
.history-entry-submit:disabled { cursor: not-allowed; opacity: .52; }
@media (max-width: 840px) { .history-entry-layout { grid-template-columns: 1fr; } .history-entry-aside { position: static; } .history-method-tabs { max-width: none; } }
@media (max-width: 560px) { .history-method-tabs { grid-template-columns: 1fr; } .history-entry-card { padding: 0 16px; } .history-selected-student { grid-template-columns: 34px minmax(0,1fr); } .history-selected-student button { grid-column: 1 / -1; } }
.history-manual-page { max-width: 1220px; margin: 0 auto; }
.history-manual-student { display: flex; align-items: center; gap: 10px; max-width: 520px; margin: -5px 0 14px; padding: 10px 12px; background: #eff8f6; border: 1px solid #c5e2dd; border-radius: 9px; }
.history-manual-student > span:last-child { display: grid; min-width: 0; gap: 1px; }
.history-manual-student small { color: var(--cor-muted); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.history-manual-student strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.history-manual-layout { display: grid; grid-template-columns: minmax(0,1fr) 280px; align-items: start; gap: 18px; }
.history-manual-card { padding: 0 24px; }
.history-manual-card > section { padding: 22px 0; border-bottom: 1px solid var(--cor-borda); }
.history-manual-card > section:last-child { border-bottom: 0; }
.history-manual-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.history-manual-grid .wide { grid-column: 1 / -1; }
.history-manual-grid input, .history-manual-grid select { margin: 0; }
.history-manual-table { width: 100%; min-width: 640px; table-layout: fixed; }
.history-manual-table th, .history-manual-table td { padding-right: 7px; padding-left: 7px; }
.history-manual-table th:nth-child(1) { width: 22%; }
.history-manual-table th:nth-child(2) { width: 14%; }
.history-manual-table th:nth-child(3) { width: 12%; }
.history-manual-table th:nth-child(4) { width: 13%; }
.history-manual-table th:nth-child(5) { width: 16%; }
.history-manual-table th:nth-child(6) { width: 17%; }
.history-manual-table th:nth-child(7) { width: 44px; }
.history-manual-table input, .history-manual-table select { width: 100%; min-width: 0; margin: 0; padding: 7px 8px; font-size: 11px; }
.history-manual-table td { vertical-align: top; }
.history-manual-remove { width: 42px; text-align: center; }
.history-manual-remove input { display: none; }
.history-manual-remove button { width: 28px; height: 28px; padding: 0; color: #9f1d1d; background: #fff1f1; border: 1px solid #f0c6c6; border-radius: 7px; font-size: 17px; }
.history-year-record { display: grid; gap: 14px; margin: 0 0 14px; padding: 17px; border: 1px solid var(--cor-borda); border-radius: 10px; }
.history-year-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.history-year-header legend { float: none; width: auto; margin: 0 0 5px; padding: 0; font-size: 15px; font-weight: 800; }
.history-year-header p { margin: 0; color: var(--cor-muted); font-size: 12px; }
.history-source-correction { flex: 0 0 auto; color: var(--cor-acao); font-size: 11px; font-weight: 800; text-decoration: none; }
.history-revision-note { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 2px 10px; padding: 10px 12px; color: #4a3b00; background: #fff8d8; border: 1px solid #ead990; border-radius: 8px; }
.history-revision-note strong, .history-revision-note span { font-size: 11px; }
.history-revision-note small { grid-column: 1 / -1; color: #6b5a14; font-size: 10px; }
@media (max-width: 1180px) { .history-manual-layout { grid-template-columns: 1fr; } .history-manual-layout .history-entry-aside { position: static; } }
@media (max-width: 600px) { .history-manual-grid { grid-template-columns: 1fr; } .history-manual-grid .wide { grid-column: auto; } .history-manual-card { padding: 0 16px; } .history-year-header { flex-direction: column; } }

/* Histórico individual: leitura documental e pedagógica em escala operacional. */
.student-history-page { max-width: 1440px; margin: 0 auto; }
.student-history-header { margin-bottom: 18px; }
.student-history-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 16px; }
.student-history-summary article { min-width: 0; padding: 16px 18px; background: #fff; border: 1px solid var(--cor-borda); border-left: 3px solid var(--cor-acao); border-radius: 10px; box-shadow: var(--sombra-sm); }
.student-history-summary small, .student-history-summary strong, .student-history-summary span { display: block; }
.student-history-summary small { color: var(--cor-muted); font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.student-history-summary strong { margin: 7px 0 3px; color: var(--cor-texto-forte); font-size: 25px; line-height: 1.1; }
.student-history-summary .student-history-summary-text { font-size: 15px; line-height: 1.35; }
.student-history-summary span { color: var(--cor-muted); font-size: 11px; }
.student-history-source { margin-bottom: 16px; }
.student-history-source > div { min-width: 0; }
.student-history-source-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; }
.student-history-source-meta span { padding: 5px 8px; color: #42526a; background: var(--cor-superficie-baixa); border-radius: 999px; font-size: 10px; }
.student-history-external { margin-bottom: 16px; }
.student-history-external .section-heading, .student-history-chart-card .section-heading, .student-history-records > .section-heading { align-items: flex-start; margin-bottom: 14px; }
.student-history-external-list { display: grid; gap: 8px; }
.student-history-external-list article { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; background: var(--cor-superficie-baixa); border: 1px solid transparent; border-radius: 9px; }
.student-history-external-list article.needs-review { background: #fff8e5; border-color: #ecd58c; }
.student-history-external-list strong { display: block; font-size: 13px; }
.student-history-external-list p { margin: 3px 0 0; color: var(--cor-muted); font-size: 11px; }
.student-history-review-label { flex: 0 0 auto; padding: 5px 8px; color: #855b00; background: #ffedb7; border-radius: 999px; font-size: 10px; font-weight: 800; }
.student-history-chart-card { margin-bottom: 16px; }
.student-history-chart-wrap { position: relative; height: 270px; margin-top: 10px; }
#grafico-vida-pregressa { width: 100% !important; max-height: none; margin: 0; }
.student-history-records { padding-bottom: 10px; }
.student-history-records .history-year-record:last-child { margin-bottom: 0; }
.history-year-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; color: var(--cor-muted); font-size: 11px; }
.history-year-meta > span:not(.badge) { position: relative; }
.history-year-meta > span:not(.badge) + span:not(.badge)::before { margin-right: 10px; color: #a7adb7; content: "•"; }
@media (max-width: 1000px) { .student-history-summary { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 620px) {
    .student-history-summary { grid-template-columns: 1fr; }
    .student-history-external-list article { align-items: flex-start; flex-direction: column; }
    .student-history-chart-wrap { height: 230px; }
}

/* Comunicação: editor operacional com alcance e publicação explícitos. */
.communication-editor { max-width: 1240px; margin: 0 auto; }
.communication-editor-header { margin-bottom: 16px; }
.communication-editor-header .botao svg { width: 16px; height: 16px; }
.communication-event-context { display: flex; align-items: center; gap: 11px; margin-bottom: 14px; padding: 11px 14px; color: #315c57; background: #eef8f6; border: 1px solid #c8e3df; border-radius: 9px; }
.communication-event-context svg { width: 19px; height: 19px; flex: 0 0 19px; }
.communication-event-context span { display: flex; flex-wrap: wrap; gap: 5px 9px; font-size: 12px; }
.communication-layout { display: grid; grid-template-columns: minmax(0,1fr) 270px; align-items: start; gap: 18px; }
.communication-card { padding: 0 24px; }
.communication-section { padding: 22px 0; border-bottom: 1px solid var(--cor-borda); }
.communication-section:last-child { border-bottom: 0; }
.communication-section-heading { display: flex; gap: 11px; margin-bottom: 16px; }
.communication-section-heading > span { display: grid; width: 27px; height: 27px; flex: 0 0 27px; color: #087a70; background: #def2ef; border-radius: 50%; place-items: center; font-size: 12px; font-weight: 800; }
.communication-section-heading h2 { margin: 1px 0 2px; font-size: 17px; }
.communication-section-heading p { margin: 0; color: var(--cor-muted); font-size: 12px; line-height: 1.45; }
.communication-field, .communication-conditional { display: grid; gap: 6px; margin-top: 14px; }
.communication-field > label, .communication-conditional > label { margin: 0; color: var(--cor-texto-forte); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.communication-field label b, .communication-conditional label b { color: var(--ds-error); }
.communication-field input, .communication-field textarea, .communication-conditional select, .communication-conditional input { width: 100%; margin: 0; background: var(--ds-surface-low); border-color: transparent; text-transform: none; }
.communication-field input, .communication-conditional select, .communication-conditional input { min-height: 40px; padding: 8px 10px; }
.communication-field textarea { min-height: 142px; padding: 10px 12px; resize: vertical; }
.communication-field input:focus, .communication-field textarea:focus, .communication-conditional select:focus, .communication-conditional input:focus { background: #fff; border-color: var(--cor-acao); box-shadow: 0 0 0 3px var(--ds-focus-ring); outline: 0; }
.communication-field-meta { display: flex; justify-content: space-between; min-height: 16px; color: var(--cor-muted); font-size: 10px; }
.communication-field-meta .errorlist, .communication-conditional .errorlist, .communication-section > .errorlist { margin: 0; padding: 0; color: var(--ds-error); font-size: 11px; list-style: none; }
.communication-field.has-error input, .communication-field.has-error textarea, .communication-conditional.has-error select, .communication-conditional.has-error input { border-color: var(--ds-error); }
.communication-audience-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.communication-audience-options > label { display: grid; grid-template-columns: 18px 30px minmax(0,1fr); align-items: start; gap: 8px; min-height: 82px; margin: 0; padding: 11px; color: var(--cor-texto-forte); background: #fff; border: 1px solid var(--cor-borda); border-radius: 9px; cursor: pointer; letter-spacing: 0; text-transform: none; }
.communication-audience-options > label:hover { background: #f7fbfa; border-color: #9dccca; }
.communication-audience-options > label.is-selected { color: #075f57; background: #edf9f7; border-color: #65b9af; box-shadow: inset 0 0 0 1px #65b9af; }
.communication-audience-options input { width: 17px; height: 17px; min-height: 17px; margin: 3px 0 0; accent-color: var(--cor-acao); }
.communication-audience-options svg { width: 22px; height: 22px; margin-top: 1px; color: #087a70; }
.communication-audience-options span { display: grid; gap: 3px; }
.communication-audience-options strong { font-size: 11px; line-height: 1.3; }
.communication-audience-options small { color: var(--cor-muted); font-size: 9px; font-weight: 500; line-height: 1.35; }
.communication-conditional { padding: 13px; background: var(--ds-surface-low); border: 1px solid var(--cor-borda); border-radius: 9px; }
.communication-conditional[hidden] { display: none !important; }
.communication-conditional > small { color: var(--cor-muted); font-size: 10px; }
.communication-choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.communication-channel-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.communication-choice-card { display: grid; grid-template-columns: 18px minmax(0,1fr); align-items: start; gap: 9px; min-height: 61px; margin: 0; padding: 11px 12px; color: var(--cor-texto-forte); background: var(--ds-surface-low); border: 1px solid var(--cor-borda); border-radius: 9px; cursor: pointer; letter-spacing: 0; text-transform: none; }
.communication-channel-grid .communication-choice-card { grid-template-columns: 18px 24px minmax(0,1fr); }
.communication-choice-card:hover { border-color: #9dccca; }
.communication-choice-card.is-selected { background: #edf9f7; border-color: #78beb6; }
.communication-choice-card input { width: 17px; height: 17px; min-height: 17px; margin: 2px 0 0; accent-color: var(--cor-acao); }
.communication-choice-card svg { width: 20px; height: 20px; color: #087a70; }
.communication-choice-card span { display: grid; gap: 2px; }
.communication-choice-card strong { font-size: 11px; line-height: 1.3; }
.communication-choice-card small { color: var(--cor-muted); font-size: 9px; font-weight: 500; line-height: 1.35; }
.communication-aside { position: sticky; top: 92px; display: grid; gap: 9px; }
.communication-summary, .communication-safe-card { padding: 16px; background: #fff; border: 1px solid var(--cor-borda); border-radius: 10px; box-shadow: var(--sombra-sm); }
.communication-summary .page-eyebrow { margin-bottom: 12px; }
.communication-reach { display: grid; gap: 0; padding-bottom: 13px; border-bottom: 1px solid var(--cor-borda); }
.communication-reach strong { color: var(--cor-texto-forte); font-size: 27px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.communication-reach span { color: var(--cor-muted); font-size: 10px; }
.communication-summary dl { display: grid; gap: 10px; margin: 13px 0 0; }
.communication-summary dl > div { display: grid; gap: 2px; }
.communication-summary dt { color: var(--cor-muted); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.communication-summary dd { margin: 0; font-size: 11px; font-weight: 700; line-height: 1.4; }
.communication-safe-card { display: flex; gap: 10px; background: #f8fafb; box-shadow: none; }
.communication-safe-card > svg { width: 20px; height: 20px; flex: 0 0 20px; color: #087a70; }
.communication-safe-card strong { font-size: 11px; }
.communication-safe-card p { margin: 3px 0 0; color: var(--cor-muted); font-size: 10px; line-height: 1.45; }
.communication-publish, .communication-draft { width: 100%; justify-content: center; }
.communication-publish svg { width: 16px; height: 16px; }
@media (max-width: 1060px) { .communication-layout { grid-template-columns: 1fr; } .communication-aside { position: static; grid-template-columns: 1fr 1fr; } .communication-aside .communication-summary, .communication-aside .communication-safe-card { grid-column: 1 / -1; } }
@media (max-width: 760px) { .communication-audience-options, .communication-channel-grid { grid-template-columns: 1fr; } .communication-audience-options > label { min-height: 64px; } }
@media (max-width: 600px) { .communication-card { padding: 0 16px; } .communication-choice-grid, .communication-aside { grid-template-columns: 1fr; } .communication-aside .communication-summary, .communication-aside .communication-safe-card { grid-column: auto; } .communication-editor-header .acoes, .communication-editor-header .botao { width: 100%; } }

/* RH, acessos e horários: acabamento operacional do padrão Stitch. */
[data-link-field][hidden] { display: none !important; }
.compact-icon-actions { white-space: nowrap; }
.compact-icon-actions form { display: inline-flex; margin: 0 0 0 4px; vertical-align: middle; }
.compact-icon-actions .icon-action { display: inline-grid; width: 34px; height: 34px; padding: 0; place-items: center; color: #087a70; background: #e7f5f2; border: 1px solid transparent; border-radius: 8px; vertical-align: middle; }
.compact-icon-actions .icon-action:hover { color: #fff; background: #087a70; }
.compact-icon-actions .icon-action.danger { color: #a32727; background: #fff0f0; }
.compact-icon-actions .icon-action.danger:hover { color: #fff; background: #b32929; }
.compact-icon-actions .icon-action svg { width: 17px; height: 17px; }
.schedule-version-filter { display: flex; justify-content: flex-end; margin-bottom: 14px; padding: 12px 15px; }
.schedule-version-filter label { display: grid; min-width: 290px; gap: 5px; margin: 0; color: var(--cor-muted); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.schedule-version-filter select { min-height: 38px; margin: 0; background: var(--ds-surface-low); border-color: transparent; text-transform: none; }
.schedule-current { display: grid; align-content: start; gap: 12px; }
.schedule-current > form { margin: 0; }
.schedule-current > .botao, .schedule-current > form .botao { width: 100%; justify-content: center; }
.schedule-current-empty { min-height: 210px; }
.schedule-readonly-note { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; padding: 11px 15px; color: #315c57; background: #eef8f6; border: 1px solid #c8e3df; border-radius: 9px; font-size: 12px; }
.schedule-readonly-note strong { flex: 0 0 auto; color: #075f57; }
.schedule-activity-actions { display: flex; gap: 8px; margin-top: 8px; padding-top: 7px; border-top: 1px solid rgba(8,122,112,.18); }
.schedule-activity-actions a, .schedule-activity-actions button, .link-button { padding: 0; color: #087a70; background: none; border: 0; font: inherit; font-size: 10px; font-weight: 800; text-decoration: underline; cursor: pointer; }
.schedule-activity-actions form, .table-actions form { display: inline-flex; margin: 0; }
.schedule-activity-actions button { color: #9f2727; }
.schedule-edit-hint { display: grid; gap: 3px; margin-top: 14px; padding: 11px; color: #315c57; background: #eef8f6; border: 1px solid #c8e3df; border-radius: 8px; font-size: 11px; }
.schedule-edit-hint span { color: var(--cor-muted); line-height: 1.4; }
@media (max-width: 760px) { .schedule-version-filter { justify-content: stretch; } .schedule-version-filter label { min-width: 0; width: 100%; } .schedule-readonly-note { align-items: flex-start; flex-direction: column; } }

/* Central de versões do horário — composição compacta e escalável. */
.schedule-versions-page { max-width: 1480px; margin: 0 auto; }
.schedule-versions-page .page-header .botao svg,
.schedule-current-actions .botao svg { width: 16px; height: 16px; }
.schedule-context-bar { display: grid; grid-template-columns: minmax(0,1fr) minmax(300px,420px); align-items: center; gap: 18px; margin-bottom: 14px; padding: 14px 16px; background: #fff; border: 1px solid var(--cor-borda); border-radius: 11px; box-shadow: var(--sombra-sm); }
.schedule-context-copy { display: flex; align-items: center; gap: 11px; min-width: 0; }
.schedule-context-copy > span:last-child { display: grid; min-width: 0; gap: 2px; }
.schedule-context-copy strong { font-size: 13px; }
.schedule-context-copy small { color: var(--cor-muted); font-size: 11px; }
.schedule-context-icon { display: grid; width: 36px; height: 36px; flex: 0 0 36px; color: #087a70; background: #e1f3ef; border-radius: 9px; place-items: center; }
.schedule-context-icon svg { width: 18px; height: 18px; }
.schedule-context-bar label { display: grid; gap: 5px; margin: 0; color: var(--cor-muted); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.schedule-context-bar select { width: 100%; min-height: 40px; margin: 0; background: var(--ds-surface-low); border-color: transparent; text-transform: none; }
.schedule-current-banner { display: grid; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 15px; margin-bottom: 14px; padding: 17px 18px; color: #fff; background: #0f172a; border-radius: 12px; box-shadow: 0 10px 24px rgba(15,23,42,.12); }
.schedule-current-mark { display: grid; width: 46px; height: 46px; color: #8ee1d7; background: rgba(255,255,255,.09); border-radius: 10px; place-items: center; }
.schedule-current-mark svg { width: 22px; height: 22px; }
.schedule-current-copy { min-width: 0; }
.schedule-current-copy .page-eyebrow { margin: 0 0 3px; color: #7fd8ce; }
.schedule-current-copy h2 { overflow: hidden; margin: 0 0 3px; color: #fff; font-size: 20px; text-overflow: ellipsis; white-space: nowrap; }
.schedule-current-copy p { margin: 0; color: #cbd5e1; font-size: 11px; }
.schedule-current-copy p span { padding: 0 4px; color: #64748b; }
.schedule-current-actions { display: flex; align-items: center; gap: 8px; }
.schedule-current-actions form { margin: 0; }
.schedule-current-actions .botao-secundario { color: #0f172a; background: #fff; border-color: #fff; }
.schedule-context-notice { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; padding: 11px 14px; color: #315c57; background: #eef8f6; border: 1px solid #c8e3df; border-radius: 9px; }
.schedule-context-notice.warning { color: #704d08; background: #fff8e8; border-color: #ead9aa; }
.schedule-context-notice > svg { width: 19px; height: 19px; flex: 0 0 19px; }
.schedule-context-notice > span { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.schedule-context-notice strong { font-size: 12px; }
.schedule-context-notice small { color: var(--cor-muted); font-size: 11px; }
.schedule-versions-card { padding: 0; overflow: hidden; }
.schedule-versions-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 17px 20px; border-bottom: 1px solid var(--cor-borda); }
.schedule-versions-heading h2 { margin: 0 0 2px; font-size: 18px; }
.schedule-versions-heading p { margin: 0; color: var(--cor-muted); font-size: 11px; }
.schedule-versions-heading > span { flex: 0 0 auto; padding: 5px 9px; color: #087a70; background: #e5f4f1; border-radius: 999px; font-size: 10px; font-weight: 800; }
.schedule-versions-table { min-width: 980px; }
.schedule-versions-table td { vertical-align: middle; }
.schedule-versions-table th:last-child { width: 96px; }
.schedule-class-name { font-size: 12px; }
.schedule-date-range { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.schedule-date-range b { color: #94a3b8; font-weight: 600; }
.schedule-row-actions { text-align: right; white-space: nowrap; }
.schedule-row-actions form { display: inline-flex; margin: 0 0 0 4px; vertical-align: middle; }
.schedule-row-actions .icon-action { margin: 0; }
.schedule-version-dialog .dialog-header { margin-bottom: 4px; }
.schedule-version-dialog .dialog-header h2 { margin: 2px 0 0; font-size: 21px; }
.schedule-version-dialog .field-help { margin: 0 0 17px; color: var(--cor-muted); font-size: 11px; line-height: 1.5; }
.schedule-version-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.schedule-version-fields label { display: grid; gap: 6px; margin: 0; color: var(--cor-texto-forte); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.schedule-version-fields label.wide { grid-column: 1 / -1; }
.schedule-version-fields label b { color: #a91212; }
.schedule-version-fields input, .schedule-version-fields select { width: 100%; min-height: 40px; margin: 0; background: var(--ds-surface-low); border-color: transparent; text-transform: none; }
.schedule-version-fields .errorlist { margin: 0; padding: 0; color: var(--ds-error); font-size: 10px; font-weight: 600; letter-spacing: 0; list-style: none; text-transform: none; }
.schedule-version-dialog .dialog-actions { margin-top: 20px; padding-top: 15px; border-top: 1px solid var(--cor-borda); }
@media (max-width: 880px) { .schedule-context-bar { grid-template-columns: 1fr; } .schedule-current-banner { grid-template-columns: 42px minmax(0,1fr); } .schedule-current-actions { grid-column: 1 / -1; } }
@media (max-width: 600px) { .schedule-context-copy small { white-space: normal; } .schedule-current-banner { grid-template-columns: 1fr; } .schedule-current-mark { display: none; } .schedule-current-actions { align-items: stretch; flex-direction: column; } .schedule-current-actions .botao, .schedule-current-actions form, .schedule-current-actions form .botao { width: 100%; justify-content: center; } .schedule-context-notice { align-items: flex-start; } .schedule-context-notice > span { display: grid; } .schedule-versions-heading { align-items: flex-start; } .schedule-version-fields { grid-template-columns: 1fr; } .schedule-version-fields label.wide { grid-column: auto; } }

/* Fechamento anual: central de decisão compacta, paginada e auditável. */
.annual-closing-hub { max-width: 1480px; margin: 0 auto; }
.annual-context-bar { display: grid; grid-template-columns: minmax(0,1fr) minmax(410px,560px); align-items: center; gap: 18px; margin-bottom: 15px; padding: 14px 16px; background: #fff; border: 1px solid var(--cor-borda); border-radius: 11px; box-shadow: var(--sombra-sm); }
.annual-context-copy { display: flex; align-items: center; gap: 11px; min-width: 0; }
.annual-context-copy > span:last-child { display: grid; min-width: 0; gap: 2px; }
.annual-context-copy strong { font-size: 13px; }
.annual-context-copy small { color: var(--cor-muted); font-size: 11px; line-height: 1.45; }
.annual-context-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; color: #087a70; background: #e1f3ef; border-radius: 9px; place-items: center; }
.annual-context-icon svg { width: 19px; height: 19px; }
.annual-context-fields { display: grid; grid-template-columns: minmax(120px,.55fr) minmax(230px,1fr); gap: 10px; }
.annual-context-fields label, .annual-filters label { display: grid; gap: 5px; margin: 0; color: var(--cor-muted); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.annual-context-fields select, .annual-filters input, .annual-filters select { width: 100%; min-height: 39px; margin: 0; padding: 7px 9px; background: var(--ds-surface-low); border-color: transparent; font-size: 12px; text-transform: none; }
.annual-metrics { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; margin-bottom: 15px; }
.annual-metrics article { display: flex; align-items: center; gap: 11px; min-height: 78px; padding: 13px 14px; background: #fff; border: 1px solid var(--cor-borda); border-radius: 11px; box-shadow: var(--sombra-sm); }
.annual-metrics article > div { display: grid; min-width: 0; gap: 1px; }
.annual-metrics small { color: var(--cor-muted); font-size: 9px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.annual-metrics strong { font-size: 23px; line-height: 1.05; font-variant-numeric: tabular-nums; }
.annual-metrics article > div > span { overflow: hidden; color: var(--cor-muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.annual-metric-icon { display: grid; width: 36px; height: 36px; flex: 0 0 36px; color: #087a70; background: #def2ef; border-radius: 9px; place-items: center; }
.annual-metric-icon.warning { color: #976000; background: #fff0cf; }
.annual-metric-icon.success { color: #08703b; background: #dcf5e5; }
.annual-metric-icon.info { color: #245ab5; background: #e4edff; }
.annual-metric-icon svg { width: 18px; height: 18px; }
.annual-protection { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; padding: 11px 14px; color: #315c57; background: #eef8f6; border: 1px solid #c8e3df; border-radius: 9px; }
.annual-protection > svg { width: 19px; height: 19px; flex: 0 0 19px; color: #087a70; }
.annual-protection > div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 9px; }
.annual-protection strong { font-size: 12px; }
.annual-protection span { color: #526d69; font-size: 11px; line-height: 1.45; }
.annual-filter-card { margin-bottom: 15px; padding: 14px 15px; }
.annual-filters { display: grid; grid-template-columns: minmax(250px,1.45fr) repeat(3,minmax(150px,.7fr)) auto; align-items: end; gap: 10px; }
.annual-search > span:last-child { position: relative; }
.annual-search svg { position: absolute; top: 50%; left: 10px; width: 16px; height: 16px; color: var(--cor-muted); transform: translateY(-50%); }
.annual-search input { padding-left: 34px; }
.annual-filter-actions { display: flex; align-items: center; gap: 8px; min-height: 39px; }
.annual-filter-actions .botao { min-height: 39px; white-space: nowrap; }
.annual-filter-actions a { font-size: 11px; font-weight: 800; }
.annual-table-card { padding: 0; overflow: hidden; }
.annual-table-heading { padding: 17px 20px; border-bottom: 1px solid var(--cor-borda); }
.annual-table-heading > span { padding: 5px 9px; color: #087a70; background: #e5f4f1; border-radius: 999px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.annual-closing-table { min-width: 1080px; }
.annual-closing-table td { vertical-align: middle; }
.annual-closing-table th:nth-child(1) { width: 25%; }
.annual-closing-table th:nth-child(2) { width: 17%; }
.annual-closing-table th:nth-child(3) { width: 16%; }
.annual-closing-table th:nth-child(4) { width: 13%; }
.annual-closing-table th:nth-child(5) { width: 22%; }
.annual-action-column { width: 62px; text-align: right; }
.annual-student { display: flex; align-items: center; gap: 10px; }
.annual-student > span:first-child { display: grid; width: 34px; height: 34px; flex: 0 0 34px; color: #087a70; background: #dff2ef; border-radius: 50%; place-items: center; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.annual-student > span:last-child { display: grid; min-width: 0; gap: 2px; }
.annual-student strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.annual-student small, .annual-cell-note { display: block; margin-top: 2px; color: var(--cor-muted); font-size: 10px; }
.annual-muted { color: var(--cor-muted); font-size: 11px; }
.annual-row-action { text-align: right; }
.annual-review { display: inline-block; }
.annual-review > summary { list-style: none; cursor: pointer; }
.annual-review > summary::-webkit-details-marker { display: none; }
.annual-review > summary.icon-action { display: inline-grid; width: 34px; height: 34px; padding: 0; color: #087a70; background: #e4f3f1; border: 1px solid transparent; border-radius: 8px; place-items: center; }
.annual-review > summary.icon-action:hover { color: #fff; background: #087a70; }
.annual-review > summary svg { width: 17px; height: 17px; }
.annual-review[open] > summary { color: #fff; background: #087a70; }
.annual-review-backdrop { position: fixed; z-index: 1090; inset: 0; background: rgba(15,23,42,.48); backdrop-filter: blur(2px); }
.annual-review-panel { position: fixed; z-index: 1100; top: 0; right: 0; bottom: 0; width: min(520px,100vw); overflow-y: auto; color: var(--cor-texto-forte); background: #fff; box-shadow: -18px 0 42px rgba(15,23,42,.2); text-align: left; animation: annual-panel-in .18s ease-out; }
@keyframes annual-panel-in { from { opacity: .7; transform: translateX(22px); } to { opacity: 1; transform: translateX(0); } }
.annual-review-panel > header { position: sticky; z-index: 2; top: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 22px 24px 18px; background: #fff; border-bottom: 1px solid var(--cor-borda); }
.annual-review-panel header h2 { margin: 2px 0 3px; font-size: 22px; }
.annual-review-panel header p:last-child { margin: 0; color: var(--cor-muted); font-size: 11px; }
.annual-review-panel header button { display: grid; width: 34px; height: 34px; flex: 0 0 34px; padding: 0; color: #087a70; background: #e4f3f1; border: 0; border-radius: 8px; place-items: center; cursor: pointer; }
.annual-review-panel header button svg { width: 17px; height: 17px; }
.annual-review-panel > section { padding: 22px 24px; border-bottom: 1px solid var(--cor-borda); }
.annual-panel-heading { display: flex; gap: 10px; margin-bottom: 15px; }
.annual-panel-heading > span { display: grid; width: 27px; height: 27px; flex: 0 0 27px; color: #087a70; background: #def2ef; border-radius: 50%; place-items: center; font-size: 11px; font-weight: 800; }
.annual-panel-heading h3 { margin: 1px 0 2px; font-size: 16px; }
.annual-panel-heading p { margin: 0; color: var(--cor-muted); font-size: 11px; }
.annual-review-form { display: grid; gap: 12px; }
.annual-review-form label { display: grid; gap: 5px; margin: 0; color: var(--cor-muted); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.annual-review-form select, .annual-review-form textarea { width: 100%; margin: 0; background: var(--ds-surface-low); border-color: transparent; font-size: 12px; text-transform: none; }
.annual-review-form select { min-height: 40px; }
.annual-review-form textarea { min-height: 70px; resize: vertical; }
.annual-review-form > .botao, .annual-effective-form .botao { width: 100%; justify-content: center; }
.annual-review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.annual-finance-context, .annual-process-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; padding: 11px 12px; background: var(--ds-surface-low); border: 1px solid var(--cor-borda); border-radius: 9px; }
.annual-finance-context > span, .annual-process-card > span { display: grid; gap: 2px; }
.annual-finance-context strong, .annual-process-card strong { font-size: 11px; }
.annual-finance-context small, .annual-process-card small, .annual-process-card em { color: var(--cor-muted); font-size: 10px; font-style: normal; }
.annual-finance-context > em { padding: 4px 7px; color: #315c57; background: #e1f2ef; border-radius: 999px; font-size: 9px; font-style: normal; font-weight: 800; white-space: nowrap; }
.annual-process-card .botao { min-height: 34px; font-size: 10px; white-space: nowrap; }
.annual-effective-form { margin: 0; }
.annual-awaiting { display: grid; gap: 3px; padding: 13px; color: #704d08; background: #fff8e8; border: 1px solid #ead9aa; border-radius: 9px; }
.annual-awaiting strong { font-size: 12px; }
.annual-awaiting span { font-size: 10px; line-height: 1.45; }
.annual-table-card > .pagination { padding: 0 20px 17px; }
.annual-empty-selection { display: grid; min-height: 260px; place-items: center; align-content: center; gap: 7px; text-align: center; }
.annual-empty-selection > span { display: grid; width: 50px; height: 50px; color: #087a70; background: #def2ef; border-radius: 12px; place-items: center; }
.annual-empty-selection svg { width: 24px; height: 24px; }
.annual-empty-selection h2 { margin: 4px 0 0; font-size: 19px; }
.annual-empty-selection p { margin: 0; color: var(--cor-muted); font-size: 12px; }
@media (max-width: 1180px) { .annual-context-bar { grid-template-columns: 1fr; } .annual-metrics { grid-template-columns: repeat(3,1fr); } .annual-filters { grid-template-columns: repeat(3,1fr); } .annual-search { grid-column: span 2; } }
@media (max-width: 760px) { .annual-context-fields, .annual-metrics, .annual-filters { grid-template-columns: 1fr; } .annual-search { grid-column: auto; } .annual-protection { align-items: flex-start; } .annual-protection > div { display: grid; } .annual-review-grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .annual-review-panel > header, .annual-review-panel > section { padding-right: 17px; padding-left: 17px; } .annual-finance-context, .annual-process-card { align-items: flex-start; flex-direction: column; } }

/* Diário de classe — agenda operacional */
.diary-hub { max-width: 1480px; margin: 0 auto; }
.diary-hub .page-header .botao svg { width: 16px; height: 16px; }
.diary-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; margin-bottom: 16px; }
.diary-metrics article { display: flex; align-items: center; gap: 12px; min-height: 80px; padding: 14px 16px; background: #fff; border: 1px solid var(--cor-borda); border-radius: 11px; box-shadow: var(--sombra-sm); }
.diary-metrics article > div { display: grid; min-width: 0; gap: 2px; }
.diary-metrics small { color: var(--cor-muted); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.diary-metrics strong { font-size: 24px; line-height: 1.05; font-variant-numeric: tabular-nums; }
.diary-metrics article > div > span { overflow: hidden; color: var(--cor-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.diary-metric-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; color: #087a70; background: #ddf3ef; border-radius: 9px; place-items: center; }
.diary-metric-icon.warning { color: #9b6100; background: #fff1d4; }
.diary-metric-icon.info { color: #245ab5; background: #e4edff; }
.diary-metric-icon.success { color: #08703b; background: #dcf5e5; }
.diary-metric-icon svg { width: 19px; height: 19px; }
.diary-control-card { margin-bottom: 16px; padding: 14px 15px; }
.diary-period-control { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 13px; border-bottom: 1px solid var(--cor-borda); }
.diary-view-switch { display: inline-grid; grid-template-columns: repeat(3,auto); padding: 4px; background: #edf1f2; border-radius: 9px; }
.diary-view-switch a { min-width: 76px; padding: 8px 12px; color: var(--cor-muted); border-radius: 7px; font-size: 11px; font-weight: 800; text-align: center; text-decoration: none; }
.diary-view-switch a.ativo { color: var(--cor-texto-forte); background: #fff; box-shadow: var(--sombra-sm); }
.diary-date-navigation { display: flex; align-items: center; gap: 9px; }
.diary-date-navigation .icon-button { display: grid; width: 34px; height: 34px; color: #087a70; background: #e5f4f1; border-color: transparent; place-items: center; text-decoration: none; }
.diary-date-navigation > div { display: grid; min-width: 200px; text-align: center; }
.diary-date-navigation small { color: var(--cor-muted); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.diary-date-navigation strong { font-size: 12px; text-transform: capitalize; }
.diary-today-link { padding: 8px 5px; font-size: 11px; font-weight: 800; text-decoration: none; }
.diary-filters { display: grid; grid-template-columns: minmax(290px,1.5fr) minmax(190px,.8fr) minmax(170px,.65fr) auto; align-items: end; gap: 10px; padding-top: 13px; }
.diary-filters label { display: grid; gap: 5px; margin: 0; color: var(--cor-muted); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.diary-filters input, .diary-filters select { min-height: 38px; margin: 0; padding: 7px 9px; background: var(--ds-surface-low); border-color: transparent; font-size: 12px; text-transform: none; }
.diary-search > span:last-child { position: relative; }
.diary-search svg { position: absolute; top: 50%; left: 10px; width: 16px; height: 16px; color: var(--cor-muted); transform: translateY(-50%); }
.diary-search input { width: 100%; padding-left: 34px; }
.diary-filter-actions { display: flex; align-items: center; gap: 9px; min-height: 38px; }
.diary-filter-actions .botao { min-height: 38px; }
.diary-filter-actions a { font-size: 11px; font-weight: 800; }
.diary-agenda-card { padding: 0; overflow: hidden; }
.diary-agenda-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 20px; border-bottom: 1px solid var(--cor-borda); }
.diary-agenda-heading h2 { margin: 1px 0 2px; font-size: 19px; }
.diary-agenda-heading p:last-child { margin: 0; color: var(--cor-muted); font-size: 11px; }
.diary-agenda-heading > span { padding: 5px 9px; color: #087a70; background: #e5f4f1; border-radius: 999px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.diary-day-group + .diary-day-group { border-top: 1px solid var(--cor-borda); }
.diary-day-group > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 20px; background: #f7f9fa; border-bottom: 1px solid var(--cor-borda); }
.diary-day-group > header > div { display: flex; align-items: center; gap: 10px; }
.diary-day-group > header > div > span { display: grid; width: 35px; height: 35px; color: #087a70; background: #dff2ef; border-radius: 9px; place-items: center; font-size: 15px; font-weight: 900; }
.diary-day-group > header div div { display: grid; }
.diary-day-group > header strong { font-size: 12px; text-transform: capitalize; }
.diary-day-group > header small, .diary-day-group > header p { margin: 0; color: var(--cor-muted); font-size: 10px; text-transform: capitalize; }
.diary-lesson-row { display: grid; grid-template-columns: 95px minmax(230px,1.25fr) minmax(220px,1fr) 150px 125px; align-items: center; gap: 15px; min-height: 68px; padding: 10px 20px; border-bottom: 1px solid var(--cor-borda); }
.diary-lesson-row:last-child { border-bottom: 0; }
.diary-lesson-row:hover { background: #fbfcfc; }
.diary-time, .diary-lesson-main, .diary-class-context { display: grid; min-width: 0; gap: 2px; }
.diary-time strong { font-size: 14px; font-variant-numeric: tabular-nums; }
.diary-time span, .diary-lesson-main span, .diary-class-context span { overflow: hidden; color: var(--cor-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.diary-lesson-main strong, .diary-class-context strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.diary-status { justify-self: start; padding: 5px 8px; border-radius: 999px; font-size: 9px; font-weight: 850; white-space: nowrap; }
.diary-status.pendente { color: #8a5700; background: #fff0d2; }
.diary-status.andamento { color: #245ab5; background: #e4edff; }
.diary-status.finalizada { color: #08703b; background: #dcf5e5; }
.diary-status.cancelada { color: #b42318; background: #fee4e2; }
.diary-row-action { display: flex; justify-content: flex-end; }
.diary-row-action form { margin: 0; }
.diary-row-action .botao { min-width: 112px; justify-content: center; white-space: nowrap; }
.diary-no-action { color: var(--cor-muted); font-size: 10px; }
.diary-empty { min-height: 260px; }
.diary-empty > span { display: grid; width: 50px; height: 50px; margin: 0 auto 10px; color: #087a70; background: #def2ef; border-radius: 12px; place-items: center; }
.diary-empty svg { width: 24px; height: 24px; }
.diary-pagination { padding: 0 20px 17px; }
@media (max-width: 1180px) { .diary-metrics { grid-template-columns: repeat(2,1fr); } .diary-filters { grid-template-columns: repeat(2,1fr); } .diary-search { grid-column: span 2; } .diary-lesson-row { grid-template-columns: 82px minmax(190px,1fr) minmax(180px,.8fr) 140px 120px; gap: 10px; } }
@media (max-width: 820px) { .diary-period-control { align-items: stretch; flex-direction: column; } .diary-date-navigation { justify-content: space-between; } .diary-date-navigation > div { flex: 1; min-width: 0; } .diary-lesson-row { grid-template-columns: 70px minmax(0,1fr) auto; } .diary-class-context { grid-column: 2; } .diary-status { grid-column: 3; grid-row: 1; } .diary-row-action { grid-column: 3; grid-row: 2; } }
@media (max-width: 620px) { .diary-metrics, .diary-filters { grid-template-columns: 1fr; } .diary-search { grid-column: auto; } .diary-agenda-heading > span { display: none; } .diary-day-group > header { padding-right: 14px; padding-left: 14px; } .diary-lesson-row { grid-template-columns: 62px minmax(0,1fr); padding-right: 14px; padding-left: 14px; } .diary-status, .diary-row-action { grid-column: 2; grid-row: auto; justify-self: start; } .diary-row-action { justify-content: flex-start; } }

/* Editor de atividades do horário — formulário operacional Stitch. */
.schedule-activity-page { max-width: 1320px; margin: 0 auto; }
.schedule-activity-header { align-items: flex-start; }
.schedule-activity-layout { grid-template-columns: minmax(0,1fr) 270px; align-items: start; gap: 18px; }
.schedule-activity-card { padding: 0; overflow: hidden; }
.schedule-activity-card > section { padding: 20px 22px; }
.schedule-activity-card > section + section { border-top: 1px solid var(--cor-borda); }
.schedule-activity-card .structure-section-heading { margin-bottom: 15px; }
.schedule-activity-card .structure-field-grid { gap: 12px 14px; }
.schedule-activity-card label, .schedule-additional-teachers legend, .schedule-notes { color: var(--cor-texto-forte); font-size: 12px; font-weight: 750; }
.schedule-activity-card label > b { margin-left: 2px; color: #b42318; }
.schedule-activity-card input, .schedule-activity-card select, .schedule-activity-card textarea { width: 100%; min-height: 39px; margin: 5px 0 0; padding: 8px 10px; background: #fbfcfc; border: 1px solid #cfd6d8; border-radius: 8px; font-size: 13px; }
.schedule-activity-card textarea { min-height: 76px; max-height: 180px; line-height: 1.45; resize: vertical; }
.schedule-activity-card label > small { display: block; margin-top: 5px; color: var(--cor-muted); font-size: 10px; font-weight: 500; line-height: 1.4; }
.schedule-activity-card input:focus, .schedule-activity-card select:focus, .schedule-activity-card textarea:focus { border-color: #0d9488; box-shadow: 0 0 0 3px rgba(13,148,136,.13); outline: 0; }
.schedule-form-alert, .schedule-activity-errors { display: grid; gap: 2px; margin: 18px 22px 0; padding: 10px 12px; color: #8f2018; background: #fff1f0; border: 1px solid #f4c7c3; border-radius: 8px; font-size: 11px; }
.schedule-form-alert strong { font-size: 12px; }
.schedule-activity-errors ul, .schedule-activity-card .errorlist { margin: 5px 0 0; padding: 0; color: #b42318; font-size: 10px; font-weight: 650; list-style: none; }
.schedule-activity-card input[aria-invalid="true"], .schedule-activity-card select[aria-invalid="true"], .schedule-activity-card textarea[aria-invalid="true"] { border-color: #d92d20; background: #fffafa; }
.schedule-time-grid { display: grid; grid-template-columns: minmax(150px,1fr) 170px minmax(150px,1fr); align-items: end; gap: 12px; }
.schedule-duration-card { display: grid; min-height: 66px; padding: 9px 12px; align-content: center; gap: 1px; color: #315c57; background: #eef8f6; border: 1px solid #c8e3df; border-radius: 9px; text-align: center; }
.schedule-duration-card > span { color: #526d69; font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.schedule-duration-card strong { font-size: 15px; font-variant-numeric: tabular-nums; }
.schedule-duration-card small { color: #617a76; font-size: 9px; }
.schedule-duration-card.is-invalid { color: #9b271f; background: #fff1f0; border-color: #edb9b4; }
.schedule-duration-card strong.is-invalid { color: #b42318; }
.schedule-environment-grid { margin-top: 12px; }
.schedule-teacher-grid { display: grid; grid-template-columns: minmax(250px,.8fr) minmax(320px,1.2fr); align-items: start; gap: 16px; }
.schedule-additional-teachers { min-width: 0; margin: 0; padding: 0; border: 0; }
.schedule-additional-teachers > p { margin: 3px 0 8px; color: var(--cor-muted); font-size: 10px; line-height: 1.4; }
.schedule-teacher-options > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.schedule-teacher-options > div > div { min-width: 0; }
.schedule-teacher-options label { display: flex; min-height: 43px; align-items: flex-start; gap: 8px; padding: 8px 10px; overflow: hidden; background: #fbfcfc; border: 1px solid #dce2e4; border-radius: 8px; font-size: 10px; font-weight: 650; line-height: 1.35; cursor: pointer; }
.schedule-teacher-options label:hover { background: #f1f8f7; border-color: #a8d7d1; }
.schedule-teacher-options input[type="checkbox"] { width: 15px; min-width: 15px; height: 15px; min-height: 15px; margin: 0; accent-color: #0d9488; }
.schedule-teacher-options label:has(input:checked) { color: #075f57; background: #e7f5f2; border-color: #69b8af; }
.schedule-empty-teachers { padding: 11px; color: var(--cor-muted); background: #f7f9fa; border: 1px dashed #cfd6d8; border-radius: 8px; font-size: 10px; text-align: center; }
.schedule-empty-teachers[hidden], .schedule-teacher-options [hidden] { display: none !important; }
.schedule-notes { display: grid; }
.schedule-activity-aside { position: sticky; top: 76px; display: grid; gap: 10px; }
.schedule-live-summary { padding: 16px; }
.schedule-live-summary > strong { display: block; margin: 3px 0 13px; overflow-wrap: anywhere; font-size: 17px; line-height: 1.25; }
.schedule-live-summary ul { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.schedule-live-summary li { display: grid; gap: 2px; padding: 8px 0; border-top: 1px solid var(--cor-borda); }
.schedule-live-summary li span { color: var(--cor-muted); font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.schedule-live-summary li b { overflow-wrap: anywhere; font-size: 11px; line-height: 1.35; }
.schedule-activity-aside .structure-safe-card { margin: 0; padding: 12px; }
.schedule-activity-aside .structure-safe-card p { margin: 2px 0 0; font-size: 9px; line-height: 1.4; }
.schedule-activity-aside .structure-submit { width: 100%; min-height: 39px; justify-content: center; }
@media (max-width: 1040px) { .schedule-activity-layout { grid-template-columns: minmax(0,1fr) 235px; } .schedule-teacher-grid { grid-template-columns: 1fr; } .schedule-teacher-options > div { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 820px) { .schedule-activity-layout { grid-template-columns: 1fr; } .schedule-activity-aside { position: static; grid-template-columns: 1fr 1fr; } .schedule-live-summary, .schedule-activity-aside .structure-safe-card { grid-column: 1 / -1; } }
@media (max-width: 620px) { .schedule-activity-header { gap: 12px; } .schedule-activity-header .botao { width: 100%; justify-content: center; } .schedule-activity-card > section { padding: 17px 15px; } .schedule-form-alert, .schedule-activity-errors { margin: 15px 15px 0; } .schedule-time-grid, .schedule-teacher-options > div { grid-template-columns: 1fr; } .schedule-time-grid { align-items: stretch; } .schedule-duration-card { min-height: 60px; grid-row: 3; } .schedule-activity-card input, .schedule-activity-card select { min-height: 44px; } .schedule-activity-aside { grid-template-columns: 1fr; } .schedule-live-summary, .schedule-activity-aside .structure-safe-card { grid-column: auto; } }

/* Portal do professor — painel Stitch centrado na rotina docente. */
.teacher-dashboard { max-width: 1440px; margin: 0 auto; }
.teacher-dashboard-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 16px; }
.teacher-dashboard-header h1 { margin: 3px 0 5px; font-size: clamp(26px,3vw,32px); letter-spacing: -.025em; }
.teacher-dashboard-header p:last-child { margin: 0; color: var(--cor-muted); font-size: 13px; }
.teacher-dashboard-header > .botao { flex: 0 0 auto; }
.teacher-next-class { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 24px; margin-bottom: 14px; padding: 23px 25px; color: #fff; background: #101a2f; border: 1px solid #1d2b45; border-radius: 12px; box-shadow: 0 8px 22px rgba(15,23,42,.1); }
.teacher-next-class .page-eyebrow { color: #73e6d7; }
.teacher-next-class h2 { margin: 5px 0 4px; color: #fff; font-size: clamp(23px,2.6vw,30px); }
.teacher-next-class p:not(.page-eyebrow) { margin: 0; color: #c6cede; font-size: 13px; }
.teacher-next-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px; }
.teacher-next-meta span { padding: 5px 8px; color: #d7f8f3; background: rgba(13,148,136,.18); border: 1px solid rgba(94,234,212,.22); border-radius: 999px; font-size: 10px; font-weight: 750; }
.teacher-next-actions { display: flex; align-items: center; gap: 8px; }
.teacher-next-actions .botao { min-height: 40px; white-space: nowrap; }
.teacher-next-actions .botao svg { width: 16px; height: 16px; }
.teacher-next-actions .teacher-secondary-action { color: #e4eaf4; background: #26334d; border-color: #3a4864; }
.teacher-next-actions .teacher-secondary-action:hover { background: #33415e; }
.teacher-shortcuts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; margin-bottom: 14px; }
.teacher-shortcuts > a { display: flex; min-width: 0; min-height: 86px; align-items: center; gap: 11px; padding: 13px 14px; color: var(--cor-texto-forte); background: #fff; border: 1px solid var(--cor-borda); border-radius: 10px; box-shadow: var(--sombra-sm); text-decoration: none; }
.teacher-shortcuts > a:hover { border-color: #9bcfc9; background: #fbfefd; }
.teacher-shortcuts > a.is-attention { border-color: #e9d19a; background: #fffdf7; }
.teacher-shortcut-icon { display: grid; width: 37px; height: 37px; flex: 0 0 37px; color: #087a70; background: #ddf3ef; border-radius: 9px; place-items: center; }
.teacher-shortcuts .is-attention .teacher-shortcut-icon { color: #956000; background: #fff0d2; }
.teacher-shortcut-icon svg { width: 18px; height: 18px; }
.teacher-shortcuts > a > span:last-child { display: grid; min-width: 0; grid-template-columns: 1fr auto; align-items: baseline; gap: 1px 8px; }
.teacher-shortcuts small { grid-column: 1; overflow: hidden; color: var(--cor-muted); font-size: 9px; font-weight: 800; letter-spacing: .045em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.teacher-shortcuts strong { grid-column: 2; grid-row: 1 / span 2; font-size: 24px; font-variant-numeric: tabular-nums; }
.teacher-shortcuts em { grid-column: 1; overflow: hidden; color: var(--cor-muted); font-size: 9px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.teacher-dashboard-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(350px,.75fr); align-items: start; gap: 14px; }
.teacher-today-card, .teacher-classes-card, .teacher-evaluations-card { padding: 0; overflow: hidden; }
.teacher-today-card > .section-heading, .teacher-classes-card > .section-heading, .teacher-evaluations-card > .section-heading { margin: 0; padding: 16px 18px 13px; border-bottom: 1px solid var(--cor-borda); }
.teacher-today-card .section-heading h2, .teacher-classes-card .section-heading h2, .teacher-evaluations-card .section-heading h2 { margin-top: 2px; font-size: 18px; }
.teacher-today-card .section-heading > a, .teacher-classes-card .section-heading > a, .teacher-evaluations-card .section-heading > a { font-size: 10px; font-weight: 800; }
.teacher-timeline { padding: 2px 18px 5px; }
.teacher-lesson-row { display: grid; grid-template-columns: 58px 10px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 74px; padding: 10px 0; border-bottom: 1px solid var(--cor-borda); }
.teacher-lesson-row:last-child { border-bottom: 0; }
.teacher-lesson-row time { display: grid; color: var(--cor-muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.teacher-lesson-row time strong { color: var(--cor-texto-forte); font-size: 15px; }
.teacher-lesson-mark { width: 3px; height: 42px; background: #0d9488; border-radius: 999px; }
.teacher-lesson-row > div { min-width: 0; }
.teacher-lesson-row h3 { overflow: hidden; margin: 0 0 2px; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.teacher-lesson-row p, .teacher-lesson-row > div > span { display: block; overflow: hidden; margin: 0; color: var(--cor-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.teacher-lesson-row > a { padding: 7px 9px; color: #087a70; background: #e5f4f1; border-radius: 7px; font-size: 9px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.teacher-empty-state { display: grid; min-height: 250px; align-content: center; justify-items: center; gap: 5px; text-align: center; }
.teacher-empty-state > span { display: grid; width: 46px; height: 46px; margin-bottom: 4px; color: #087a70; background: #ddf3ef; border-radius: 12px; place-items: center; }
.teacher-empty-state svg { width: 22px; height: 22px; }
.teacher-empty-state strong { font-size: 13px; }
.teacher-empty-state p { margin: 0; color: var(--cor-muted); font-size: 10px; }
.teacher-dashboard-side { display: grid; gap: 14px; }
.teacher-class-row { display: flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 16px; color: var(--cor-texto-forte); border-bottom: 1px solid var(--cor-borda); text-decoration: none; }
.teacher-class-row:last-child { border-bottom: 0; }
.teacher-class-row:hover { background: #f7fbfa; }
.teacher-class-row > span { display: grid; min-width: 0; gap: 2px; }
.teacher-class-row strong, .teacher-class-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.teacher-class-row strong { font-size: 11px; }
.teacher-class-row small { color: var(--cor-muted); font-size: 9px; }
.teacher-class-row svg { width: 15px; height: 15px; flex: 0 0 15px; color: #087a70; }
.teacher-evaluation-row { display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: center; gap: 10px; min-height: 54px; padding: 9px 16px; border-bottom: 1px solid var(--cor-borda); }
.teacher-evaluation-row:last-child { border-bottom: 0; }
.teacher-evaluation-row time { display: grid; width: 38px; height: 32px; color: #087a70; background: #e5f4f1; border-radius: 7px; place-items: center; font-size: 10px; font-weight: 850; }
.teacher-evaluation-row > span { display: grid; min-width: 0; gap: 2px; }
.teacher-evaluation-row strong, .teacher-evaluation-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.teacher-evaluation-row strong { font-size: 11px; }
.teacher-evaluation-row small { color: var(--cor-muted); font-size: 9px; }
.teacher-empty-compact { padding: 28px 16px; color: var(--cor-muted); font-size: 10px; text-align: center; }
@media (max-width: 1120px) { .teacher-shortcuts { grid-template-columns: repeat(2,minmax(0,1fr)); } .teacher-dashboard-grid { grid-template-columns: minmax(0,1fr) 320px; } }
@media (max-width: 860px) { .teacher-next-class { grid-template-columns: 1fr; align-items: start; } .teacher-dashboard-grid { grid-template-columns: 1fr; } .teacher-next-actions { justify-content: flex-start; } }
@media (max-width: 620px) { .teacher-dashboard-header { flex-direction: column; } .teacher-dashboard-header > .botao { width: 100%; justify-content: center; } .teacher-next-class { padding: 20px 17px; } .teacher-next-actions { align-items: stretch; flex-direction: column; } .teacher-next-actions .botao { width: 100%; justify-content: center; } .teacher-shortcuts { grid-template-columns: 1fr; } .teacher-lesson-row { grid-template-columns: 52px 8px minmax(0,1fr); } .teacher-lesson-row > a { grid-column: 3; justify-self: start; } }

.teacher-students-table .teacher-subject-chip { display: inline-flex; margin: 2px 4px 2px 0; padding: 4px 8px; color: #075e57; background: #e0f2f0; border-radius: 999px; font-size: 10px; font-weight: 750; }
.teacher-student-quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.teacher-student-privacy-note > p { margin: 14px 0 0; color: var(--cor-muted); line-height: 1.5; }
@media (max-width: 720px) { .teacher-student-quick-grid { grid-template-columns: 1fr; } }

.grade-window-notice { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; padding: 10px 14px; color: #7c4a03; background: #fff7df; border: 1px solid #f0d58a; border-radius: var(--raio-md); font-size: 12px; }
.grade-window-notice strong { flex: 0 0 auto; color: #5f3700; }
.grade-cell-input:disabled { cursor: not-allowed; color: #64748b; background: #f1f5f9; }
.grade-cell-state { display: block; min-height: 14px; margin-top: 4px; color: var(--cor-muted); font-size: 9px; }
.status-erro { color: #b42318; font-weight: 750; }
.evaluation-flow-dialog { width: min(620px,calc(100vw - 28px)); }
.evaluation-flow-steps { display: grid; gap: 12px; padding: 8px 0 18px; }
.evaluation-flow-steps article { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 12px; align-items: start; padding: 12px; background: var(--cor-superficie-media); border-radius: var(--raio-md); }
.evaluation-flow-steps article > span { display: grid; width: 30px; height: 30px; place-items: center; color: #006a61; background: #dff4f1; border-radius: 999px; font-weight: 850; }
.evaluation-flow-steps strong, .evaluation-flow-steps p { display: block; }
.evaluation-flow-steps p { margin: 3px 0 0; color: var(--cor-muted); font-size: 12px; line-height: 1.45; }
@media (max-width: 700px) { .grade-window-notice { align-items: flex-start; flex-direction: column; gap: 3px; } }

/* Autocadastro seguro do professor */
.teacher-profile-page{max-width:1320px;margin:0 auto}.teacher-profile-heading{display:flex;align-items:center;gap:16px}.teacher-profile-avatar{display:grid;width:68px;height:68px;flex:0 0 68px;place-items:center;object-fit:cover;color:#087a70;background:#dff3ef;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px var(--cor-borda);font-size:25px;font-weight:800}.teacher-profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;align-items:start;gap:18px}.teacher-profile-main{display:grid;gap:16px}.teacher-profile-form{padding-bottom:0}.teacher-profile-photo-field{align-content:start}.teacher-profile-photo-field input{padding:8px;background:var(--ds-surface-low)}.teacher-profile-remove{align-self:end;min-height:62px}.teacher-profile-form-actions{display:flex;justify-content:flex-end;padding:18px 0 23px;border-top:1px solid var(--cor-borda)}.teacher-password-card{padding:23px 26px}.teacher-password-card .structure-field-grid{max-width:620px}.teacher-password-card .teacher-profile-form-actions{padding-bottom:0}.teacher-profile-aside{position:sticky;top:92px;display:grid;gap:12px}.teacher-institutional-data{display:grid;gap:0;margin:0}.teacher-institutional-data>div{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--cor-borda)}.teacher-institutional-data dt{color:var(--cor-muted);font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.teacher-institutional-data dd{margin:0;color:var(--cor-texto-forte);font-size:12px;font-weight:700}@media(max-width:980px){.teacher-profile-layout{grid-template-columns:1fr}.teacher-profile-aside{position:static;grid-template-columns:1fr 1fr}}@media(max-width:620px){.teacher-profile-heading{align-items:flex-start}.teacher-profile-avatar{width:52px;height:52px;flex-basis:52px}.teacher-profile-aside{grid-template-columns:1fr}.teacher-password-card{padding:20px 17px}}

.finance-received-card{margin:0 0 16px;padding:0;overflow:hidden}.finance-received-card>.section-heading{margin:0;padding:17px 20px;border-bottom:1px solid var(--cor-borda)}.finance-received-table{min-width:1120px}.finance-received-table td{vertical-align:middle}.finance-received-table td:first-child{min-width:225px}.finance-received-table td:nth-child(2){min-width:190px}.finance-received-table td:nth-child(6){min-width:210px}.finance-received-table .numeric{white-space:nowrap}

/* Contas a pagar e despesas */
.finance-expense-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 16px;overflow:hidden;background:#fff;border:1px solid var(--cor-borda);border-radius:var(--raio-lg);box-shadow:var(--sombra-sm)}
.finance-expense-summary article{display:grid;gap:5px;min-width:0;padding:18px 20px;border-right:1px solid var(--cor-borda)}
.finance-expense-summary article:nth-child(3){border-left:3px solid #0d9488}
.finance-expense-summary span{color:var(--cor-muted);font-size:10px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}
.finance-expense-summary strong{color:var(--cor-texto-forte);font-size:21px;font-variant-numeric:tabular-nums}
.finance-expense-summary small{overflow:hidden;color:var(--cor-muted);font-size:10px;line-height:1.4}
.finance-expense-summary>a{grid-column:1/-1;padding:11px 20px;color:#087a70;background:#f7fbfa;border-top:1px solid var(--cor-borda);font-size:11px;font-weight:800;text-decoration:none}
.finance-expense-summary>a:hover{background:#edf8f6}
.finance-payables-page{max-width:1440px;margin:0 auto}
.finance-payable-entry-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);align-items:start;gap:16px;margin:16px 0}
.finance-payable-entry-grid>.card,.finance-payable-side>.card{padding:20px}
.finance-payable-side{display:grid;gap:16px}
.finance-payable-flow ol{display:grid;gap:9px;margin:15px 0;padding-left:22px;color:var(--cor-texto-forte);font-size:12px}
.finance-payable-flow>p:last-child{margin:0;padding:11px;color:#7c4a03;background:#fff7df;border-radius:8px;font-size:11px;line-height:1.45}
.finance-payable-filters{display:grid;grid-template-columns:minmax(240px,1.4fr) repeat(4,minmax(145px,.65fr)) auto;align-items:end;gap:12px;margin:0 0 16px;padding:16px 18px}
.finance-payable-filters label{display:grid;gap:6px;color:var(--cor-muted);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.finance-payable-filters input,.finance-payable-filters select{width:100%;min-height:41px;padding:9px 11px;background:var(--cor-superficie-media);border:1px solid var(--cor-borda);border-radius:8px;color:var(--cor-texto-forte)}
.finance-filter-search>span{position:relative;display:block}.finance-filter-search svg{position:absolute;top:50%;left:11px;width:16px;height:16px;color:var(--cor-muted);transform:translateY(-50%)}.finance-filter-search input{padding-left:35px}
.finance-filter-actions{display:flex;gap:7px}.finance-filter-actions>*{min-height:41px;justify-content:center}
.finance-payables-table-card{padding:0;overflow:hidden}.finance-payables-table-card>.table-toolbar{padding:17px 20px;border-bottom:1px solid var(--cor-borda)}
.finance-payables-table{min-width:1160px}.finance-payables-table td{vertical-align:middle}.finance-payables-table .table-actions{min-width:185px}.finance-payables-table .table-action-form{display:grid;grid-template-columns:minmax(110px,1fr) auto;gap:7px}.finance-payables-table .table-action-form select{min-height:34px;padding:6px 8px;border:1px solid var(--cor-borda);border-radius:7px}
@media(max-width:1180px){.finance-expense-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-expense-summary article:nth-child(2){border-right:0}.finance-payable-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-filter-search{grid-column:span 2}}
@media(max-width:900px){.finance-payable-entry-grid{grid-template-columns:1fr}.finance-payable-side{grid-template-columns:1fr 1fr}.finance-payable-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-filter-search{grid-column:1/-1}}
@media(max-width:620px){.finance-expense-summary{grid-template-columns:1fr}.finance-expense-summary article{border-right:0;border-bottom:1px solid var(--cor-borda)}.finance-payable-side{grid-template-columns:1fr}.finance-payable-filters{grid-template-columns:1fr}.finance-filter-search{grid-column:auto}.finance-filter-actions>*{flex:1}}

/* Recebimentos identificados e fechamento diário */
.finance-manual-payment-page,.treasury-page{max-width:1440px;margin:0 auto}.finance-manual-payment-grid{display:grid;grid-template-columns:minmax(300px,.7fr) minmax(0,1.3fr);align-items:start;gap:18px}.finance-payment-context{position:sticky;top:90px;padding:24px}.finance-payment-context h2{margin:5px 0 18px}.finance-payment-context dl{display:grid;margin:0 0 18px}.finance-payment-context dl>div{display:grid;gap:3px;padding:11px 0;border-top:1px solid var(--cor-borda)}.finance-payment-context dt{color:var(--cor-muted);font-size:10px;font-weight:800;text-transform:uppercase}.finance-payment-context dd{margin:0;font-size:13px;font-weight:750}.finance-payment-context .notice-card{margin:0;padding:14px}.finance-payment-form{padding:22px}.treasury-date-filter{display:flex;align-items:end;gap:10px;margin-bottom:16px;padding:14px 18px}.treasury-date-filter label{display:grid;gap:5px;color:var(--cor-muted);font-size:10px;font-weight:800;text-transform:uppercase}.treasury-date-filter input{min-height:40px;padding:8px 11px;border:1px solid var(--cor-borda);border-radius:8px}.treasury-day-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.treasury-day-summary>article{padding:18px;border-top:3px solid #d19a2b}.treasury-day-summary>article.is-closed{border-top-color:#0d9488}.treasury-day-summary article>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}.treasury-day-summary article>div:first-child span{font-size:14px;font-weight:850}.treasury-day-summary article>div:first-child em{padding:4px 7px;color:#7c4a03;background:#fff5d8;border-radius:999px;font-size:9px;font-style:normal;font-weight:800}.treasury-day-summary article.is-closed>div:first-child em{color:#087a70;background:#e0f3ef}.treasury-day-summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0 0}.treasury-day-summary dl>div{min-width:0}.treasury-day-summary dt{color:var(--cor-muted);font-size:9px;text-transform:uppercase}.treasury-day-summary dd{overflow:hidden;margin:3px 0;color:var(--cor-texto-forte);font-size:15px;font-weight:850;text-overflow:ellipsis}.treasury-day-summary small,.treasury-day-summary article>p{color:var(--cor-muted);font-size:9px}.treasury-day-summary article>p{margin:13px 0 0;padding-top:10px;border-top:1px solid var(--cor-borda);line-height:1.45}.treasury-movements-card,.treasury-closures-card{padding:0;overflow:hidden}.treasury-movements-card>.section-heading,.treasury-closures-card>.section-heading{margin:0;padding:17px 20px;border-bottom:1px solid var(--cor-borda)}.treasury-operation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;margin:16px 0}.treasury-operation-grid>.card{padding:20px}.treasury-close-card{border-top:3px solid #0d9488}.treasury-close-card>small{display:block;margin-top:13px;color:#7c4a03}.treasury-closures-card{margin-top:16px}.treasury-closures-card table{min-width:1080px}@media(max-width:1050px){.treasury-day-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:820px){.finance-manual-payment-grid{grid-template-columns:1fr}.finance-payment-context{position:static}.treasury-operation-grid{grid-template-columns:1fr}}@media(max-width:620px){.treasury-day-summary{grid-template-columns:1fr}.treasury-date-filter{align-items:stretch;flex-direction:column}.treasury-day-summary dl{grid-template-columns:1fr 1fr}.treasury-day-summary dl>div:last-child{grid-column:1/-1}}

.treasury-page{max-width:1320px}.treasury-onboarding{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.75fr);align-items:start;gap:18px}.treasury-onboarding>div,.treasury-first-account{padding:26px}.treasury-onboarding-guide>p{max-width:650px;color:var(--cor-muted);line-height:1.55}.treasury-onboarding-guide ol{display:grid;gap:0;margin:22px 0 0;padding:0;list-style:none}.treasury-onboarding-guide li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:14px 0;border-top:1px solid var(--cor-borda)}.treasury-onboarding-guide li>span,.treasury-workflow>div>span{display:grid;width:30px;height:30px;place-items:center;color:#087a70;background:#dff3ef;border-radius:999px;font-size:12px;font-weight:850}.treasury-onboarding-guide li strong,.treasury-onboarding-guide li p{display:block}.treasury-onboarding-guide li p{margin:3px 0 0;color:var(--cor-muted);font-size:11px}.treasury-workflow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 16px;padding:0;overflow:hidden}.treasury-workflow>div{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;padding:16px 18px;border-right:1px solid var(--cor-borda)}.treasury-workflow>div:last-child{border-right:0}.treasury-workflow p,.treasury-workflow strong,.treasury-workflow small{display:block;margin:0}.treasury-workflow strong{font-size:11px}.treasury-workflow small{margin-top:2px;color:var(--cor-muted);font-size:9px;line-height:1.4}.treasury-day-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:20px 0 12px}.treasury-day-toolbar h2{margin:3px 0 0;font-size:20px}.treasury-day-toolbar form{display:flex;align-items:end;gap:8px}.treasury-day-toolbar label{display:grid;gap:4px;color:var(--cor-muted);font-size:9px;font-weight:800;text-transform:uppercase}.treasury-day-toolbar input{min-height:39px;padding:7px 10px;background:#fff;border:1px solid var(--cor-borda);border-radius:8px}.treasury-closing-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(290px,.55fr);align-items:start;gap:16px;margin:16px 0}.treasury-closing-layout>.card{padding:21px}.treasury-help-card p,.treasury-help-card li{color:var(--cor-muted);font-size:11px;line-height:1.5}.treasury-help-card ul{display:grid;gap:7px;margin:16px 0 0;padding-left:18px}.treasury-secondary{margin:16px 0;padding:0;background:#fff;border:1px solid var(--cor-borda);border-radius:var(--raio-lg);box-shadow:var(--sombra-sm);overflow:hidden}.treasury-secondary>.section-heading{margin:0;padding:17px 20px}.treasury-secondary details{border-top:1px solid var(--cor-borda)}.treasury-secondary summary{padding:15px 20px;color:var(--cor-texto-forte);font-size:11px;font-weight:800;cursor:pointer}.treasury-secondary summary:hover{background:#f7fbfa}.treasury-secondary details form{max-width:720px;padding:4px 20px 20px}.treasury-secondary details[open] summary{color:#087a70;background:#f3faf8}@media(max-width:900px){.treasury-onboarding,.treasury-closing-layout{grid-template-columns:1fr}.treasury-workflow{grid-template-columns:1fr}.treasury-workflow>div{border-right:0;border-bottom:1px solid var(--cor-borda)}.treasury-workflow>div:last-child{border-bottom:0}}@media(max-width:620px){.treasury-day-toolbar{align-items:stretch;flex-direction:column}.treasury-day-toolbar form{align-items:stretch;flex-direction:column}.treasury-onboarding>div,.treasury-first-account{padding:20px}}
