/* Tema poscore — rosa predominante (dark) */
:root {
    --itera-primary: #db2777;
    --itera-primary-hover: #be185d;
    --itera-primary-dark: #9d174d;
    --itera-primary-rgb: 219, 39, 119;
    --itera-accent-rgb: 244, 114, 182;
    --itera-surface-rgb: 26, 10, 20;
    --itera-overlay-rgb: 26, 14, 22;
    --itera-bg: #0c080a;
    --itera-bg-elevated: #1a1016;
    --itera-bg-sidebar: #140c12;
    --itera-border-subtle: #3d2435;
    --itera-text-main: #fce7f3;
    --itera-text-muted: #c4a3b5;
    --itera-heading: #ffffff;
    --itera-link: #f472b6;
    --itera-accent-line: rgb(244, 114, 182);
    --itera-gradient-mid: #1a0a14;
    --itera-card-radius: 0.75rem;
    --itera-table-radius: 0.65rem;

    --bs-primary: #db2777;
    --bs-primary-rgb: 219, 39, 119;
    --bs-body-bg: #0c080a;
    --bs-body-color: #fce7f3;
    --bs-link-color: #f472b6;
    --bs-link-hover-color: #f9a8d4;
    --bs-border-color: #3d2435;
    --bs-focus-ring-color: rgba(219, 39, 119, 0.45);
}

.itera-body {
    background-color: var(--itera-bg);
    color: var(--itera-text-main);
    font-weight: 400;
    overflow-x: hidden;
}

/* Bootstrap Icons só em botões: brancos (labels, badges, títulos etc. usam cor semântica / herdada) */
.itera-body .btn i.bi,
.login-page-body .btn i.bi {
    color: #ffffff !important;
}

/* Garantir contraste: todo texto na área principal legível */
.itera-main,
.itera-main p,
.itera-main li,
.itera-main dd,
.itera-main td,
.itera-main th,
.itera-main label,
.itera-main .form-label,
.itera-main .card-subtitle,
.itera-main .navbar-text {
    color: var(--itera-text-main);
}

.itera-main .text-muted,
.itera-main .card-subtitle.text-muted,
.itera-main .form-text,
.itera-main thead th {
    color: var(--itera-text-muted) !important;
}

.itera-layout {
    min-height: 100vh;
    min-width: 0;
}

.itera-sidebar {
    flex-shrink: 0;
    width: 250px;
    max-width: 250px;
    background: var(--itera-bg-sidebar);
    color: var(--itera-text-main);
    padding: 1.5rem 1rem;
    border-right: 1px solid var(--itera-border-subtle);
}

.itera-logo-mark {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    background: var(--itera-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    color: #ffffff;
    font-size: 1.1rem;
}

.itera-logo-text {
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-size: 0.9rem;
}

.itera-logo-img {
    height: 56px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.itera-logo-link {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    flex: 1 1 auto;
    text-decoration: none;
}

.home-hero {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    padding: 1.25rem 1.5rem;
    border-radius: var(--itera-card-radius);
    border: 1px solid var(--itera-border-subtle);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
}

.home-hero__logo {
    height: 56px;
    width: auto;
    max-width: min(100%, 240px);
    object-fit: contain;
    flex-shrink: 0;
}

.home-hero__texto {
    min-width: 0;
    flex: 1 1 280px;
}

.itera-sidebar-toggle {
    width: 2rem;
    min-width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--itera-border-subtle) !important;
    background: rgba(255, 255, 255, 0.04) !important;
    color: var(--itera-text-main) !important;
    border-radius: 0.5rem;
    padding: 0;
}

.itera-sidebar-toggle:hover {
    background: rgba(255, 255, 255, 0.1) !important;
}

.itera-sidebar-toggle .bi {
    color: inherit !important;
}

.itera-layout.itera-sidebar-collapsed .itera-sidebar {
    width: 76px;
    max-width: 76px;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.itera-layout.itera-sidebar-collapsed .itera-logo {
    justify-content: center;
}

.itera-layout.itera-sidebar-collapsed .itera-logo-img {
    display: none;
}

.itera-layout.itera-sidebar-collapsed .itera-section-title,
.itera-layout.itera-sidebar-collapsed .itera-sidebar-footer .small {
    display: none;
}

.itera-layout.itera-sidebar-collapsed .itera-nav-link {
    justify-content: center;
    font-size: 0;
    padding-left: 0.4rem;
    padding-right: 0.4rem;
}

.itera-layout.itera-sidebar-collapsed .itera-nav-link i {
    margin-right: 0 !important;
    font-size: 1.05rem;
}

.itera-section-title {
    text-transform: uppercase;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    color: var(--itera-text-muted);
    margin-bottom: 0.35rem;
}

.itera-nav {
    margin-bottom: 0.5rem;
}

.itera-nav-link {
    display: flex;
    align-items: center;
    padding: 0.4rem 0.6rem;
    border-radius: 0.45rem;
    color: var(--itera-text-muted);
    font-size: 0.92rem;
}

.itera-nav-link i {
    font-size: 1rem;
}

.itera-nav-link:hover {
    background-color: rgba(255, 255, 255, 0.04);
    color: #ffffff;
}

.itera-nav-link.active {
    background-color: var(--itera-primary);
    color: #ffffff;
}

.itera-sidebar-footer {
    border-top: 1px solid var(--itera-border-subtle);
}

.itera-main {
    background-color: var(--itera-bg);
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: hidden;
}

main.container-fluid {
    max-width: 1600px;
    min-width: 0;
    padding-top: 2.5rem !important;
    padding-bottom: 2rem !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

/* Área de conteúdo: espaçamento e títulos legíveis */
.itera-main main h1,
.itera-main main h2,
.itera-main main h3,
.itera-main main h4,
.itera-main main h5,
.itera-main main h6 {
    color: var(--itera-heading) !important;
    font-weight: 600;
}

.itera-main main .card-title {
    color: var(--itera-heading) !important;
}

/* Bloco de cabeçalho da página (título + descrição) */
.itera-page-header {
    margin-bottom: 1.5rem;
}

.itera-page-header h1,
.itera-page-header h2 {
    margin-bottom: 0.25rem;
}

.itera-page-header p {
    margin-bottom: 0;
}

/* Cabeçalho: bloco de ações à direita; ordem no DOM = esquerda→direita (último = mais à direita, ex.: Voltar) */
.itera-page-header .itera-page-header__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    justify-content: flex-end;
    margin-left: auto;
    flex-shrink: 0;
}

/* Botões agrupados sem wrapper __actions (ex.: div.d-flex gap-2): mantém alinhamento à direita ao quebrar linha */
.itera-page-header > .d-flex:where(:has(.btn), :has(.dropdown)) {
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    margin-left: auto;
    flex-shrink: 0;
}

/* Botão único como filho direto do cabeçalho (ex.: “Nova alocação”) */
.itera-page-header.d-flex > a.btn {
    margin-left: auto;
    flex-shrink: 0;
}

/* Rodapé de formulário: ações alinhadas à esquerda */
.itera-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
}

/* Modais e painéis: ações à esquerda; confirmar/salvar sempre primeiro */
.itera-modal .modal-footer,
.modal-footer.itera-modal-footer-actions,
.itera-modal .modal-footer.itera-modal-footer-actions,
.itera-confirm-panel__actions,
.itera-form-panel__footer > .d-flex {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    justify-content: flex-start;
    flex-direction: row;
}
.itera-modal-footer-actions .btn-primary,
.itera-modal-footer-actions button[type="submit"]:not([data-bs-dismiss]),
.itera-confirm-panel__actions #iteraConfirmOk,
.itera-confirm-panel__actions .btn-danger,
.itera-form-panel__footer .btn-primary,
.itera-form-panel__footer button[type="submit"]:not([data-bs-dismiss]) {
    order: 1;
}
.itera-modal-footer-actions .btn-outline-secondary,
.itera-modal-footer-actions [data-bs-dismiss],
.itera-confirm-panel__actions [data-bs-dismiss],
.itera-form-panel__footer .btn-outline-secondary,
.itera-form-panel__footer [data-bs-dismiss] {
    order: 2;
}

.itera-topbar {
    background-color: var(--itera-bg-elevated);
    border-bottom: 1px solid var(--itera-border-subtle);
}

.itera-topbar-title {
    font-weight: 600;
    font-size: 1rem;
}

.itera-topbar-subtitle {
    font-size: 0.8rem;
}

/* Tipografia e links */
a {
    color: var(--itera-primary);
}

a:hover {
    color: var(--itera-link);
}

.text-primary {
    color: var(--itera-primary) !important;
}

/* Títulos de página: branco para contraste no fundo escuro */
.itera-main main .text-primary.h1,
.itera-main main .text-primary.h2,
.itera-main main .text-primary.h3,
.itera-main main h1.text-primary,
.itera-main main h2.text-primary,
.itera-main main h3.text-primary {
    color: var(--itera-heading) !important;
}

.text-muted {
    color: var(--itera-text-muted) !important;
}

/* Listas de definição e conteúdo secundário */
.itera-main dl.row dt {
    color: var(--itera-text-muted);
    font-weight: 500;
}

.itera-main dl.row dd {
    color: var(--itera-text-main);
}

/* Cards: visual fluido e amigável */
.card {
    background-color: var(--itera-bg-elevated);
    color: var(--itera-text-main);
    border: 1px solid var(--itera-border-subtle);
    border-radius: var(--itera-card-radius);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}

.card-body {
    padding: 1.25rem 1.5rem;
}

.card .card-subtitle {
    font-size: 0.85rem;
    letter-spacing: 0.02em;
    color: var(--itera-text-muted) !important;
}

.card .card-title {
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--itera-heading) !important;
    margin-bottom: 0;
}

a.card.itera-card:hover,
a.card.itera-card:focus-visible {
    border-color: rgba(var(--itera-primary-rgb), 0.55);
    box-shadow: 0 6px 22px rgba(var(--itera-primary-rgb), 0.22);
}

/* Tabelas: container arredondado e células mais confortáveis */
.itera-main .table-responsive {
    border-radius: var(--itera-table-radius);
    overflow: hidden;
    border: 1px solid var(--itera-border-subtle);
    background-color: var(--itera-bg-elevated);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}

.table {
    --bs-table-bg: transparent;
    --bs-table-border-color: rgba(255, 255, 255, 0.06);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.02);
    --bs-table-striped-color: var(--itera-text-main);
    --bs-table-hover-bg: rgba(255, 255, 255, 0.06);
    --bs-table-hover-color: var(--itera-text-main);

    color: var(--itera-text-main);
    background-color: transparent;
    margin-bottom: 0;
}

.table > :not(caption) > * > * {
    background-color: transparent;
    border-color: rgba(255, 255, 255, 0.06);
    padding: 0.75rem 1rem;
    vertical-align: middle;
}

.table thead th {
    color: var(--itera-text-muted) !important;
    border-bottom-color: var(--itera-border-subtle);
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.85rem 1rem;
}

.table tbody td {
    color: var(--itera-text-main);
    font-size: 0.95rem;
}

.table-hover tbody tr:hover {
    background-color: rgba(255, 255, 255, 0.06);
}

.table-hover tbody .allocation-group-detail-collapse.show .allocation-group-inner-table tbody tr:hover > td {
    background-color: rgba(255, 255, 255, 0.06);
}

.table-hover tbody tr.allocation-group-summary-row.is-active > td {
    background-color: rgba(var(--itera-accent-rgb), 0.14);
}

/* Coluna de ações: mantém botões e forms na mesma linha (evita quebra e sobreposição) */
.itera-main .table tbody td.text-end,
.itera-main .table thead th.text-end {
    white-space: nowrap;
    vertical-align: middle;
}

.itera-main .table tbody td.text-end form.d-inline {
    display: inline-flex !important;
    align-items: center;
    vertical-align: middle;
}

.form-label,
.itera-main label {
    color: var(--itera-text-muted) !important;
    font-weight: 500;
    font-size: 0.92rem;
    margin-bottom: 0.3rem;
}

.form-control,
.form-select {
    background-color: rgba(var(--itera-surface-rgb), 0.6);
    border: 1px solid var(--itera-border-subtle);
    color: #ffffff !important;
    caret-color: #ffffff;
    border-radius: 0.75rem;
    padding: 0.6rem 1rem;
    font-size: 0.98rem;
    min-height: 2.75rem;
}

.form-check-input {
    background-color: rgba(var(--itera-surface-rgb), 0.6);
    border: 1px solid var(--itera-border-subtle);
    color: #ffffff !important;
    caret-color: #ffffff;
    border-radius: 0.35rem;
}

.form-check-input:checked {
    background-color: var(--itera-primary) !important;
    border-color: var(--itera-primary) !important;
}

.form-check-label {
    color: var(--itera-text-main) !important;
}

.form-control:disabled,
.form-select:disabled {
    background-color: rgba(var(--itera-surface-rgb), 0.38) !important;
    border-color: var(--itera-border-subtle) !important;
    color: var(--itera-text-muted) !important;
    -webkit-text-fill-color: var(--itera-text-muted);
    opacity: 1;
    cursor: not-allowed;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12);
}

.form-select:disabled {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23c4a3b5' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 16px 12px;
}

.form-control[readonly],
.form-select[readonly] {
    opacity: 0.85;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    background-color: var(--itera-bg-elevated);
    border-color: var(--itera-primary);
    box-shadow: 0 0 0 0.15rem rgba(var(--itera-primary-rgb), 0.4);
}

.form-control::placeholder {
    color: var(--itera-text-muted);
}

.input-group-text {
    background-color: rgba(var(--itera-surface-rgb), 0.6);
    border: 1px solid var(--itera-border-subtle);
    color: var(--itera-text-muted);
    font-weight: 600;
    min-height: 2.75rem;
}

.input-group > .input-group-text:first-child {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-right: 0;
}

.input-group > .form-control:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.input-group:focus-within .input-group-text {
    background-color: var(--itera-bg-elevated);
    border-color: var(--itera-primary);
    color: var(--itera-text-main);
}

.input-group:focus-within .form-control {
    border-left-color: var(--itera-primary);
}

/* Melhor comportamento de inputs de data e selects no tema escuro */
.itera-body {
    color-scheme: dark;
}

.form-select option {
    background-color: var(--itera-bg);
    color: #ffffff;
}

/* Texto dentro do campo date em alguns navegadores */
input[type="date"].form-control,
input[type="datetime-local"].form-control {
    color: #ffffff !important;
}

/* Upload de arquivos — botão nativo e componente visual */
input[type="file"].form-control,
input[type="file"].itera-file-upload__input {
    color: var(--itera-text-muted);
    padding: 0.5rem 0.75rem;
    cursor: pointer;
}

input[type="file"].form-control::file-selector-button,
input[type="file"].itera-file-upload__input::file-selector-button {
    margin-right: 0.85rem;
    padding: 0.45rem 1rem;
    border: none;
    border-radius: 0.55rem;
    background: linear-gradient(135deg, var(--itera-primary) 0%, var(--itera-primary-dark) 100%);
    color: #ffffff;
    font-weight: 600;
    font-size: 0.88rem;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
    box-shadow: 0 2px 10px rgba(var(--itera-primary-rgb), 0.28);
}

input[type="file"].form-control::-webkit-file-upload-button,
input[type="file"].itera-file-upload__input::-webkit-file-upload-button {
    margin-right: 0.85rem;
    padding: 0.45rem 1rem;
    border: none;
    border-radius: 0.55rem;
    background: linear-gradient(135deg, var(--itera-primary) 0%, var(--itera-primary-dark) 100%);
    color: #ffffff;
    font-weight: 600;
    font-size: 0.88rem;
    cursor: pointer;
    transition: background 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 2px 10px rgba(var(--itera-primary-rgb), 0.28);
}

@media (hover: hover) {
    input[type="file"].form-control:hover::file-selector-button,
    input[type="file"].itera-file-upload__input:hover::file-selector-button,
    input[type="file"].form-control:hover::-webkit-file-upload-button,
    input[type="file"].itera-file-upload__input:hover::-webkit-file-upload-button {
        background: linear-gradient(135deg, var(--itera-primary-hover) 0%, var(--itera-primary-dark) 100%);
        box-shadow: 0 4px 14px rgba(var(--itera-primary-rgb), 0.38);
    }
}

input[type="file"].form-control:focus,
input[type="file"].itera-file-upload__input:focus {
    border-color: var(--itera-primary);
    box-shadow: 0 0 0 0.15rem rgba(var(--itera-primary-rgb), 0.35);
    outline: none;
}

.itera-file-upload {
    width: 100%;
}

.itera-file-upload__zona {
    position: relative;
    display: block;
    margin: 0;
    padding: 0;
    border-radius: 0.85rem;
    border: 1px dashed rgba(var(--itera-primary-rgb), 0.42);
    background:
        radial-gradient(ellipse at top, rgba(var(--itera-primary-rgb), 0.12) 0%, transparent 58%),
        rgba(var(--itera-surface-rgb), 0.55);
    cursor: pointer;
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.itera-file-upload__zona:hover,
.itera-file-upload__zona--hover {
    border-color: rgba(var(--itera-primary-rgb), 0.72);
    box-shadow: 0 0 0 1px rgba(var(--itera-primary-rgb), 0.18), 0 8px 24px rgba(0, 0, 0, 0.22);
    background:
        radial-gradient(ellipse at top, rgba(var(--itera-primary-rgb), 0.18) 0%, transparent 60%),
        rgba(var(--itera-surface-rgb), 0.68);
}

.itera-file-upload__zona--preenchido,
.itera-file-upload--preenchido .itera-file-upload__zona {
    border-style: solid;
    border-color: rgba(var(--itera-primary-rgb), 0.55);
    background:
        linear-gradient(135deg, rgba(var(--itera-primary-rgb), 0.14) 0%, rgba(var(--itera-surface-rgb), 0.62) 100%);
}

.itera-file-upload__input {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: pointer;
    border: none;
    min-height: 0;
    background: transparent;
    box-shadow: none;
}

.itera-file-upload__input::file-selector-button,
.itera-file-upload__input::-webkit-file-upload-button {
    visibility: hidden;
    width: 0;
    padding: 0;
    margin: 0;
    border: none;
}

.itera-file-upload__conteudo {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.95rem 1rem;
    pointer-events: none;
}

.itera-file-upload__icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.75rem;
    background: rgba(var(--itera-primary-rgb), 0.18);
    border: 1px solid rgba(var(--itera-primary-rgb), 0.35);
    color: #fce7f3;
    font-size: 1.35rem;
}

.itera-file-upload__textos {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
    flex: 1 1 auto;
}

.itera-file-upload__titulo {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--itera-text-main);
}

.itera-file-upload__subtitulo {
    font-size: 0.82rem;
    color: var(--itera-text-muted);
}

.itera-file-upload__arquivos {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #fbcfe8;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.itera-file-upload__arquivos:empty {
    display: none;
}

.itera-file-upload__acao {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--itera-primary) 0%, var(--itera-primary-dark) 100%);
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    box-shadow: 0 2px 10px rgba(var(--itera-primary-rgb), 0.32);
}

.itera-file-upload__zona--preenchido .itera-file-upload__acao,
.itera-file-upload--preenchido .itera-file-upload__acao {
    background: linear-gradient(135deg, #22c55e 0%, #15803d 100%);
    box-shadow: 0 2px 10px rgba(34, 197, 94, 0.28);
}

.itera-file-upload__zona--preenchido .itera-file-upload__icone,
.itera-file-upload--preenchido .itera-file-upload__icone {
    background: rgba(34, 197, 94, 0.16);
    border-color: rgba(34, 197, 94, 0.38);
    color: #bbf7d0;
}

/* Alertas: texto legível no tema escuro */
.itera-main .alert {
    border-radius: 0.5rem;
}

.itera-main .alert-success { background-color: rgba(25, 135, 84, 0.25); border-color: rgba(25, 135, 84, 0.5); color: #b8e0ce; }
.itera-main .alert-danger,
.itera-main .alert-error { background-color: rgba(220, 53, 69, 0.2); border-color: rgba(220, 53, 69, 0.5); color: #f5c2c7; }
.itera-main .alert-warning { background-color: rgba(255, 193, 7, 0.15); border-color: rgba(255, 193, 7, 0.4); color: #e8e0b8; }
.itera-main .alert-info { background-color: rgba(13, 202, 240, 0.15); border-color: rgba(13, 202, 240, 0.4); color: #b8e8f0; }

/* Botões: todos com fundo sólido */
.btn-primary,
.page-link,
.list-group-item.active {
    background-color: var(--itera-primary) !important;
    border-color: var(--itera-primary) !important;
    color: #ffffff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.page-link:hover,
.page-link:focus {
    background-color: var(--itera-primary-hover) !important;
    border-color: var(--itera-primary-hover) !important;
    color: #ffffff !important;
}

.btn-outline-primary {
    background-color: var(--itera-primary) !important;
    border-color: var(--itera-primary) !important;
    color: #ffffff !important;
}

.btn-outline-primary:hover {
    background-color: var(--itera-primary-hover) !important;
    border-color: var(--itera-primary-hover) !important;
    color: #ffffff !important;
}

.btn-outline-secondary {
    background-color: #4a5568 !important;
    border-color: #4a5568 !important;
    color: #ffffff !important;
}

.btn-outline-secondary:hover {
    background-color: #5a6578 !important;
    border-color: #5a6578 !important;
    color: #ffffff !important;
}

.btn-outline-light {
    background-color: #fce7f3 !important;
    border-color: #f9a8d4 !important;
    color: var(--itera-bg) !important;
}

.btn-outline-light:hover {
    background-color: #ffffff !important;
    border-color: #fce7f3 !important;
    color: var(--itera-bg) !important;
}

.btn-outline-warning {
    background-color: #f0ad4e !important;
    border-color: #f0ad4e !important;
    color: #1a1a1a !important;
}

.btn-outline-warning:hover {
    background-color: #ec9c3d !important;
    border-color: #ec9c3d !important;
    color: #1a1a1a !important;
}

.btn-outline-success {
    /* Garantir variáveis BS5 no tema sólido: .btn.show usa --bs-btn-active-* (evita tom primário/azul). */
    --bs-btn-color: #fff;
    --bs-btn-bg: #28a745;
    --bs-btn-border-color: #28a745;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #218838;
    --bs-btn-hover-border-color: #218838;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #218838;
    --bs-btn-active-border-color: #218838;
    --bs-btn-focus-shadow-rgb: 40, 167, 69;
    --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(40, 167, 69, 0.45);
    background-color: #28a745 !important;
    border-color: #28a745 !important;
    color: #ffffff !important;
}

.btn-outline-success:hover {
    --bs-btn-hover-bg: #218838;
    --bs-btn-hover-border-color: #218838;
    background-color: #218838 !important;
    border-color: #218838 !important;
    color: #ffffff !important;
}

/*
 * Dropdown Exportar: o BS5 coloca .show no .dropdown e também no botão (.btn.show → var(--bs-btn-active-bg)).
 * Reforçar verde no toggle aberto + foco (anel não pode cair no RGB primário).
 */
.itera-body .dropdown.show > .btn-outline-success.dropdown-toggle,
.itera-body .dropdown.show > .btn-outline-success.dropdown-toggle:hover,
.itera-body .dropdown.show > .btn-outline-success.dropdown-toggle:focus,
.itera-body .dropdown.show > .btn-outline-success.dropdown-toggle:active,
.itera-body .btn-outline-success.dropdown-toggle.show,
.itera-body .btn-outline-success.dropdown-toggle.show:hover,
.itera-body .btn-outline-success.dropdown-toggle.show:focus,
.itera-body .btn-outline-success.dropdown-toggle.show:active,
.itera-body .btn-outline-success.dropdown-toggle[aria-expanded="true"],
.itera-body .btn-outline-success.dropdown-toggle[aria-expanded="true"]:hover,
.itera-body .btn-outline-success.dropdown-toggle[aria-expanded="true"]:focus,
.itera-body .btn-outline-success.dropdown-toggle[aria-expanded="true"]:active {
    --bs-btn-bg: #218838;
    --bs-btn-border-color: #218838;
    --bs-btn-color: #fff;
    --bs-btn-active-bg: #218838;
    --bs-btn-active-border-color: #218838;
    --bs-btn-active-color: #fff;
    --bs-btn-hover-bg: #218838;
    --bs-btn-hover-border-color: #218838;
    --bs-btn-hover-color: #fff;
    --bs-btn-focus-shadow-rgb: 40, 167, 69;
    --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(40, 167, 69, 0.45);
    background-color: #218838 !important;
    border-color: #218838 !important;
    color: #ffffff !important;
    outline: none !important;
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.45) !important;
}

.itera-body .btn-outline-success.dropdown-toggle:focus-visible,
.itera-body .btn-outline-success.dropdown-toggle.show:focus-visible,
.itera-body .btn-outline-success.dropdown-toggle[aria-expanded="true"]:focus-visible,
.itera-body .dropdown.show > .btn-outline-success.dropdown-toggle:focus-visible {
    --bs-btn-focus-shadow-rgb: 40, 167, 69;
    --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(40, 167, 69, 0.45);
    outline: none !important;
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.45) !important;
}

.btn-outline-danger {
    background-color: rgba(220, 53, 69, 0.2) !important;
    border-color: #dc3545 !important;
    color: #ffffff !important;
}

.btn-outline-danger:hover {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #ffffff !important;
}

/* Botão "info" — rosa claro no tema escuro */
.btn-info,
.btn-outline-info {
    background-color: var(--itera-link) !important;
    border-color: var(--itera-link) !important;
    color: var(--itera-bg) !important;
    font-weight: 600;
}
.btn-info:hover,
.btn-outline-info:hover {
    background-color: #f9a8d4 !important;
    border-color: #f9a8d4 !important;
    color: var(--itera-bg) !important;
}

/* Botões mais confortáveis para navegação */
.btn {
    padding: 0.55rem 1.05rem;
    border-radius: 0.65rem;
}

/* Botões com fundo transparente (ex.: btn-link): sem bordas */
.btn.btn-link,
.btn.btn-link:hover,
.btn.btn-link:focus,
.btn.btn-link:active {
    border-color: transparent !important;
}
.btn.btn-link {
    border-width: 0 !important;
}

/* Botão sem borda (mantém o background da variante Bootstrap usada) */
.btn.itera-btn-sem-borda,
.btn.itera-btn-sem-borda:hover,
.btn.itera-btn-sem-borda:focus,
.btn.itera-btn-sem-borda:active {
    border-color: transparent !important;
}
.btn.itera-btn-sem-borda {
    border-width: 0 !important;
}

/* Badges no mesmo padrao: sem borda, mantendo background/cor */
.badge,
[class$="-badge"],
[class*="-badge-"],
.badge:hover,
.badge:focus,
.badge:active,
[class$="-badge"]:hover,
[class$="-badge"]:focus,
[class$="-badge"]:active,
[class*="-badge-"]:hover,
[class*="-badge-"]:focus,
[class*="-badge-"]:active {
    border-width: 0 !important;
    border-color: transparent !important;
}

/* Alinhamento vertical do conteúdo das badges */
.badge,
.itera-badge,
.modern-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    line-height: 1.2;
    transform: translateY(1px);
}

.badge .bi,
.itera-badge .bi,
.modern-chip .bi {
    line-height: 1;
    vertical-align: middle;
}

/* Compensação óptica vertical do texto nas badges */
.badge,
.itera-badge {
    padding-top: 0.4em;
    padding-bottom: 0.4em;
}

.itera-badge,
.modern-chip {
    min-height: 1.55rem;
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
}

/* Badges “ghost” */
.badge.bg-transparent {
    border-width: 0 !important;
    border-color: transparent !important;
}

.btn-sm {
    padding: 0.35rem 0.8rem;
    border-radius: 0.55rem;
    font-size: 0.86rem;
}

/* Somente ícone: coluna de ações em tabelas de páginas de listagem (*list.html). Demais botões usam label. */
.btn.btn-icon-action {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0;
    line-height: 1 !important;
    box-sizing: border-box;
}

/* Padding igual nos quatro lados evita deslocamento vertical */
.btn.btn-icon-action:not(.btn-sm):not(.w-100) {
    padding: 0.5rem !important;
    min-width: 2.5rem;
    min-height: 2.5rem;
}

.btn-sm.btn-icon-action:not(.w-100) {
    padding: 0.4rem !important;
    min-width: 2.25rem;
    min-height: 2.25rem;
}

/* Bootstrap Icons: neutraliza o vertical-align padrão do ::before */
.btn.btn-icon-action .bi {
    font-size: 1.0625rem;
    line-height: 1;
    flex-shrink: 0;
}

.btn.btn-icon-action .bi::before {
    vertical-align: 0;
    line-height: 1;
}

/* Botões full-width (ex.: Adicionar fato): ícone centralizado na área */
.btn.btn-icon-action.w-100 {
    min-height: 2.75rem;
    padding: 0.55rem 1rem !important;
}

/* WhatsApp ao lado do telefone: ícone compacto nas listagens */
.btn.btn-success.btn-icon-action:has(.bi-whatsapp) {
    padding: 0.15rem 0.3rem !important;
    min-width: 1.55rem;
    min-height: 1.55rem;
    border-radius: 0.35rem;
    vertical-align: middle;
}

.btn.btn-success.btn-icon-action:has(.bi-whatsapp) .bi {
    font-size: 0.85rem;
}

/* Ajustes de layout — tablets: conteúdo mais compacto (sidebar drawer abaixo de lg) */
@media (max-width: 991.98px) {
    main.container-fluid {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
        padding-top: 1.15rem !important;
        padding-bottom: 1.15rem !important;
    }
}

/* Ajustes globais para notebooks/laptops 1366x768 e similares */
@media (max-width: 1366px) {
    .itera-sidebar {
        width: 228px;
        max-width: 228px;
        padding: 1.15rem 0.8rem;
    }

    .itera-nav-link {
        font-size: 0.88rem;
        padding: 0.36rem 0.5rem;
    }

    .itera-main .itera-topbar {
        padding-inline: 0.85rem !important;
    }

    main.container-fluid {
        max-width: 100%;
        padding-top: 1.35rem !important;
        padding-bottom: 1.35rem !important;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .itera-page-header {
        margin-bottom: 1rem;
    }

    .itera-page-header .itera-page-header__actions,
    .itera-main .d-flex.gap-2,
    .itera-main .d-flex.gap-3 {
        flex-wrap: wrap;
    }

    .itera-main .card-body {
        padding: 1rem 1rem;
    }

    .itera-main .table > :not(caption) > * > *,
    .itera-main .table thead th {
        padding: 0.6rem 0.75rem;
        font-size: 0.84rem;
    }

    .itera-main .table tbody td {
        font-size: 0.9rem;
    }

    .itera-main .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .itera-main .row > [class*="col-"] {
        min-width: 0;
    }
}

/* Dashboard moderna */
.dashboard-modern {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
    width: 100%;
    max-width: 100%;
}

/* Colunas Bootstrap em flex: evita overflow horizontal com cards/tabelas */
.dashboard-modern > .row > [class*="col-"] {
    min-width: 0;
}

.modern-hero {
    border: 1px solid var(--itera-border-subtle);
    border-radius: 1rem;
    padding: 1.25rem;
    background:
        radial-gradient(1200px 280px at 0% -20%, rgba(63, 99, 255, 0.22), transparent 45%),
        radial-gradient(900px 300px at 100% -30%, rgba(13, 202, 240, 0.14), transparent 50%),
        linear-gradient(150deg, #0d1433 0%, #070d25 100%);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    min-width: 0;
    max-width: 100%;
}
.modern-hero__left {
    min-width: 0;
    flex: 1 1 auto;
    max-width: 100%;
}
.modern-hero__title {
    font-size: 1.45rem;
    letter-spacing: -0.01em;
    margin-bottom: 0.2rem;
}
.modern-hero__subtitle {
    color: var(--itera-text-muted);
    max-width: min(900px, 100%);
    overflow-wrap: anywhere;
    word-wrap: break-word;
}
.modern-hero__chips {
    margin-top: 0.9rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}
.modern-kpis {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
}
.modern-kpi {
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.7rem;
    padding: 0.65rem 0.75rem;
}
.modern-kpi__label {
    color: var(--itera-text-muted);
    text-transform: uppercase;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.06em;
}
.modern-kpi__value {
    margin-top: 0.15rem;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1;
    color: var(--itera-heading);
}
.modern-card {
    border-radius: 0.95rem;
    min-width: 0;
    max-width: 100%;
}
.modern-card .card-body {
    padding: 1.1rem 1.15rem;
}
.modern-card__title {
    font-size: 1rem;
    font-weight: 650;
    color: var(--itera-heading);
}
.modern-card__subtitle {
    font-size: 0.82rem;
    color: var(--itera-text-muted);
}
.itera-badge,
.modern-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border-radius: 999px;
    border: 0 !important;
    background: rgba(255, 255, 255, 0.04);
    color: var(--itera-text-main);
    font-size: 0.74rem;
    font-weight: 600;
    padding: 0.22rem 0.58rem;
}
.itera-badge--good,
.modern-chip--good {
    color: #63d89e;
    border-color: transparent !important;
    background: rgba(30, 170, 90, 0.16);
}
.itera-badge--warn,
.modern-chip--warn {
    color: #ffd251;
    border-color: transparent !important;
    background: rgba(255, 193, 7, 0.14);
}
.itera-badge--risk,
.modern-chip--risk {
    color: #ff8da2;
    border-color: transparent !important;
    background: rgba(255, 107, 129, 0.16);
}
.itera-badge--info,
.modern-chip--info {
    color: #93c5fd;
    border-color: transparent !important;
    background: rgba(37, 99, 235, 0.14);
}
.itera-badge--muted,
.modern-chip--muted {
    color: var(--itera-text-muted);
    border-color: transparent !important;
    background: rgba(255, 255, 255, 0.06);
}
.modern-bars {
    display: grid;
    gap: 0.7rem;
}
.modern-bar-item__head {
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.25rem;
    font-size: 0.82rem;
    color: var(--itera-text-main);
}
.modern-progress {
    height: 0.55rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
}
.modern-progress .progress-bar {
    border-radius: 999px;
}
.modern-signal-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}
.modern-signal {
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.02);
    border-radius: 0.7rem;
    padding: 0.65rem;
}
.modern-signal--good {
    border-left: 3px solid #1eaa5a;
}
.modern-signal--risk {
    border-left: 3px solid #ff6b81;
}
.modern-signal__value {
    font-size: 1.25rem;
    line-height: 1;
    font-weight: 700;
}
.modern-signal__label {
    margin-top: 0.18rem;
    color: var(--itera-text-muted);
    font-size: 0.76rem;
}
.modern-todo-list,
.modern-people-list {
    display: grid;
    gap: 0.55rem;
}
.modern-todo-item,
.modern-people-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.7rem;
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.7rem;
    padding: 0.58rem 0.68rem;
    background: rgba(255, 255, 255, 0.018);
    min-width: 0;
}

.modern-todo-item .itera-badge,
.modern-todo-item .modern-chip,
.modern-people-item > .badge,
.modern-people-item > .itera-badge,
.modern-people-item > .modern-chip {
    flex-shrink: 0;
}

/* Nomes em grid da dashboard: uma linha com reticências (sem quebra) */
.modern-people-item > div:first-child {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

.modern-people-item .fw-semibold {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.modern-people-item .small.text-muted {
    overflow-wrap: anywhere;
    word-break: break-word;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.modern-todo-item > .d-flex {
    min-width: 0;
    flex: 1 1 auto;
}

.modern-todo-item > .d-flex > div:last-child {
    min-width: 0;
    overflow: hidden;
}

.modern-todo-item .fw-semibold {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.modern-todo-item .small.text-muted {
    overflow-wrap: anywhere;
    word-break: break-word;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

/* Utilitário: texto em uma linha com … (flex/grid precisa de min-width: 0 no pai) */
.itera-line-ellipsis {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

span.itera-line-ellipsis {
    display: inline-block;
    max-width: 100%;
}

/* Células de tabela só com nome (sem avatar): reticências */
.itera-main .table td.itera-td-ellipsis {
    max-width: 16rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Badge com nome longo (ex.: cliente na lista de profissionais) */
.itera-badge-ellipsis {
    display: inline-block;
    max-width: 11rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

.modern-todo-item__icon {
    color: #7a90ff;
}
.modern-table-wrap {
    border: 1px solid var(--itera-border-subtle);
    max-width: 100%;
    min-width: 0;
}

/* Ranking: células com reticências não forçam largura mínima grande em telas estreitas */
.dashboard-modern .modern-table-wrap .table td.itera-td-ellipsis {
    max-width: min(16rem, 42vw);
}
.modern-rank {
    min-width: 1.6rem;
    height: 1.6rem;
    border-radius: 999px;
    border: 1px solid var(--itera-border-subtle);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--itera-text-muted);
    background: rgba(255, 255, 255, 0.03);
}
.modern-level-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
    justify-content: flex-end;
    max-width: 100%;
}
/* Normalizar espaçamentos verticais entre blocos da dashboard;
   usamos o gap da .dashboard-modern em vez dos mb-* do Bootstrap */
.dashboard-modern > section {
    margin-bottom: 0 !important;
}

/* Cabeçalho do card de ranking: título + legenda sem estourar */
.dashboard-modern section.modern-card .card-body > .d-flex.flex-wrap {
    min-width: 0;
}

.dashboard-modern section.modern-card .card-body > .d-flex.flex-wrap > div:first-child {
    min-width: 0;
}
/* Laptop ~1366px: hero em coluna evita KPIs + texto competindo largura e estourar a viewport */
@media (max-width: 1399.98px) {
    .modern-hero {
        flex-direction: column;
        align-items: stretch;
        gap: 0.75rem;
        padding: 1.05rem 1.1rem;
    }

    .modern-kpis {
        width: 100%;
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1200px) {
    .modern-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .modern-kpis {
        grid-template-columns: 1fr 1fr;
    }
    .modern-signal-row {
        grid-template-columns: 1fr;
    }
}

/* Viewports baixas em altura (ex.: 1366×768): menos padding, radar menor, dashboard mais compacta */
@media (max-height: 800px) {
    main.container-fluid {
        padding-top: 1.35rem !important;
        padding-bottom: 1.35rem !important;
    }

    .itera-page-header {
        margin-bottom: 1rem;
    }

    .dashboard-modern {
        gap: 0.9rem;
    }

    .modern-hero {
        padding: 0.85rem 1rem;
    }

    .modern-hero__title {
        font-size: 1.25rem;
    }

    .modern-hero__chips {
        margin-top: 0.55rem;
    }

    .evaluation-radar-inline .radar-chart-container {
        height: 280px;
    }

    .evaluation-radar-card .radar-chart-container {
        min-height: 220px;
    }
}

/* ========== Tela de login (layout split: formulário + imagem) ========== */
.login-page-body {
    margin: 0;
    min-height: 100vh;
    overflow-x: hidden;
}

.login-split {
    display: flex;
    min-height: 100vh;
}

.login-form-side {
    flex: 0 0 50%;
    min-height: 100vh;
    background: linear-gradient(160deg, var(--itera-bg) 0%, var(--itera-gradient-mid) 50%, var(--itera-bg-sidebar) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.login-form-wrapper {
    width: 100%;
    max-width: 400px;
}

.login-logo-img {
    height: 88px;
    width: auto;
    max-width: min(100%, 280px);
    object-fit: contain;
}

.login-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 0.35rem;
}

.login-subtitle {
    color: var(--itera-text-muted);
    margin-bottom: 2rem;
}

.login-form .form-label {
    color: var(--itera-text-muted);
    font-weight: 500;
}

.login-form .form-control {
    background-color: rgba(var(--itera-surface-rgb), 0.6);
    border: 1px solid var(--itera-border-subtle);
    color: #ffffff !important;
    border-radius: 0.5rem;
    padding: 0.6rem 0.85rem;
}

.login-form .form-control::placeholder {
    color: var(--itera-text-muted);
}

.login-form .input-group-text {
    background-color: rgba(var(--itera-surface-rgb), 0.8);
    border: 1px solid var(--itera-border-subtle);
    border-right: none;
    color: var(--itera-text-muted);
    border-radius: 0.5rem 0 0 0.5rem;
}

.login-form .input-group .form-control {
    border-radius: 0 0.5rem 0.5rem 0;
    border-left: none;
}

.login-form .input-group:focus-within .input-group-text,
.login-form .input-group:focus-within .form-control {
    border-color: var(--itera-primary);
    box-shadow: 0 0 0 0.2rem rgba(var(--itera-primary-rgb), 0.25);
}

.btn-login {
    background-color: var(--itera-primary) !important;
    border-color: var(--itera-primary) !important;
    font-weight: 600;
    border-radius: 0.5rem;
}

.btn-login:hover {
    background-color: var(--itera-primary-hover) !important;
    border-color: var(--itera-primary-hover) !important;
}

.login-hint {
    color: var(--itera-text-muted);
}

.login-hint strong {
    color: var(--itera-text-main);
}

.login-page-link,
.login-page-link:visited,
.login-page-link:hover,
.login-page-link:focus,
.login-page-link:active {
    color: #ffffff !important;
    text-decoration: none !important;
}

.login-page-link:hover,
.login-page-link:focus {
    opacity: 0.9;
}

.login-form-side .alert {
    border-radius: 0.5rem;
}

.login-form-side .alert-danger,
.login-form-side .alert-error {
    background-color: rgba(220, 53, 69, 0.2);
    border-color: rgba(220, 53, 69, 0.5);
    color: #f5c2c7;
}

.login-form-side .alert-success {
    background-color: rgba(25, 135, 84, 0.25);
    border-color: rgba(25, 135, 84, 0.5);
    color: #b8e0ce;
}

/* Toasts globais no canto superior direito (fundo sólido) */
.itera-toast {
    background-color: var(--itera-bg-elevated);
    color: var(--itera-text-main);
    border-radius: 0.6rem;
    border: 1px solid var(--itera-border-subtle);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
    font-size: 0.9rem;
}

.itera-toast-success {
    background-color: #198754;
    border: 1px solid #157347;
    border-left-width: 3px;
    border-left-color: #146c43;
    color: #ffffff;
}

.itera-toast-danger {
    background-color: #dc3545;
    border: 1px solid #b02a37;
    border-left-width: 3px;
    border-left-color: #a52834;
    color: #ffffff;
}

.itera-toast-warning {
    background-color: #ffc107;
    border: 1px solid #e0a800;
    border-left-width: 3px;
    border-left-color: #cc9a06;
    color: #212529;
}

.itera-toast-info {
    background-color: var(--itera-primary);
    border: 1px solid var(--itera-primary-hover);
    border-left-width: 3px;
    border-left-color: var(--itera-primary-dark);
    color: #ffffff;
}

.itera-toast-success .btn-close-white,
.itera-toast-danger .btn-close-white {
    filter: invert(1) grayscale(100%) brightness(200%);
}

.itera-toast-warning .btn-close-white,
.itera-toast-info .btn-close-white {
    filter: none;
    opacity: 0.55;
}

#itera-toast-container .toast.text-bg-primary {
    background-color: var(--itera-primary) !important;
    color: #ffffff !important;
}

/* Stack único (#itera-toast-container): múltiplos toasts em coluna sem encavalamento */
.itera-toast-stack {
    display: flex !important;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
    width: auto;
    max-width: min(420px, calc(100vw - 1.5rem));
    z-index: 1090;
    pointer-events: none;
}

.itera-toast-stack > .toast {
    pointer-events: auto;
    margin-bottom: 0 !important;
    width: 100%;
    max-width: 100%;
}

/* Botões em envio: spinner e trava no primeiro clique */
.btn .spinner-border-sm {
    vertical-align: middle;
}
.btn:disabled {
    cursor: not-allowed;
    pointer-events: none;
}

/* Avatar do profissional (formulário e exibição) */
.itera-avatar-wrap {
    width: 120px;
    height: 120px;
    flex-shrink: 0;
}
.itera-avatar-preview,
.itera-avatar-placeholder {
    width: 120px;
    height: 120px;
    object-fit: cover;
}
.itera-avatar-placeholder {
    background: var(--itera-bg-elevated);
    border: 2px dashed var(--itera-border-subtle);
}
.itera-avatar-list {
    width: 40px;
    height: 40px;
    object-fit: cover;
    border-radius: 50%;
}
.itera-avatar-list-wrap {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
}
.itera-avatar-list-fallback {
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1;
    object-fit: unset;
}
.itera-avatar-view {
    width: 96px;
    height: 96px;
    object-fit: cover;
    border-radius: 50%;
}

.itera-avatar-view-wrap {
    width: 96px;
    height: 96px;
    flex-shrink: 0;
}

.itera-avatar-view-fallback {
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1;
    object-fit: unset;
}

.itera-account-menu-btn {
    min-height: 36px;
    padding: 0.35rem 0.7rem;
    border-radius: 0.5rem;
    border: 1px solid var(--itera-border-subtle) !important;
    background: var(--itera-bg-elevated) !important;
    color: var(--itera-text-main) !important;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.1;
    gap: 0.45rem !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18) !important;
    transition: background-color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.itera-account-menu-btn:hover,
.itera-account-menu-btn:focus,
.itera-account-menu-btn:active,
.itera-account-menu-btn.show {
    border-color: rgba(var(--itera-accent-rgb), 0.55) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    color: var(--itera-text-main) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24) !important;
}

.itera-account-menu-btn::after {
    margin-left: 0.2rem;
    vertical-align: 0.08em;
}

.itera-account-menu-btn__avatar {
    width: 26px;
    height: 26px;
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.itera-account-menu-avatar-fallback {
    font-size: 0.62rem;
    line-height: 1;
    letter-spacing: -0.03em;
}

.itera-account-menu-btn__icon {
    font-size: 1.05rem;
}

.itera-account-menu-btn__label {
    line-height: 1.1;
}

/* Container do gráfico de evolução (listagem de avaliações) */
.evaluations-evolution-chart-card .evaluation-profile-section-title--muted {
    color: #a8b4e8 !important;
}
.evaluations-evolution-chart-section .evolution-chart-container {
    position: relative;
    width: 100%;
    height: 220px;
    min-height: 200px;
    display: block;
    z-index: 1;
}
@media (min-width: 992px) {
    .evaluations-evolution-chart-section .evolution-chart-container {
        height: 280px;
        min-height: 240px;
    }
}
.evolution-chart-container {
    position: relative;
    width: 100%;
    display: block;
    z-index: 1;
}
.evolution-chart-container canvas {
    display: block;
    max-width: 100%;
    z-index: 1;
}

/* Containers do gráfico de radar */
.radar-chart-container {
    position: relative;
    width: 100%;
    padding: 0;
    line-height: 0;
}
.radar-chart-container canvas {
    display: block;
    vertical-align: top;
}
/* Card de radar na tela de edição: centraliza o gráfico no card */
.evaluation-radar-card .radar-chart-container {
    min-height: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* Wrapper de radar na tela de visualização (perfil) */
.evaluation-radar-inline {
    max-width: 713px;
    width: 100%;
    padding: 0;
}
.evaluation-radar-inline .radar-chart-container {
    height: 391px;
}
.evaluation-radar-avatar {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 92px;
    height: 92px;
    object-fit: cover;
    box-shadow: 0 0 0 4px rgba(5, 8, 25, 0.85);
}

/* Abas da avaliação / alocação: botões arredondados e cores do tema */
.evaluation-tabs-card .evaluation-tabs-header,
.allocation-tabs-card .allocation-tabs-header {
    background-color: var(--itera-bg);
    border-bottom: 1px solid var(--itera-border-subtle);
    padding: 0.75rem 1rem 0;
}
.allocation-hub-shell .allocation-hub-nav {
    background-color: var(--itera-bg);
    border-bottom: none;
    /* Alinha com demais páginas: sem recuo horizontal extra dentro do container */
    padding: 0;
    margin-bottom: 1rem;
}
.evaluation-tabs-card .evaluation-tabs,
.allocation-tabs-card .allocation-tabs,
.allocation-hub-shell .allocation-hub-nav .allocation-tabs {
    border-bottom: none;
    gap: 0.35rem;
}
.evaluation-tabs-card .evaluation-tabs .nav-link,
.allocation-tabs-card .allocation-tabs .nav-link,
.allocation-hub-shell .allocation-hub-nav .allocation-tabs .nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1px solid var(--itera-border-subtle);
    border-radius: var(--itera-card-radius);
    color: var(--itera-text-muted);
    background-color: var(--itera-bg-elevated);
    padding: 0.5rem 1rem;
    margin-bottom: 0;
    transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.evaluation-tabs-card .evaluation-tabs .nav-link:hover,
.allocation-tabs-card .allocation-tabs .nav-link:hover,
.allocation-hub-shell .allocation-hub-nav .allocation-tabs .nav-link:hover {
    color: var(--itera-text-main);
    background-color: var(--itera-bg-elevated);
    border-color: var(--itera-border-subtle);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}
.evaluation-tabs-card .evaluation-tabs .nav-link.active,
.allocation-tabs-card .allocation-tabs .nav-link.active,
.allocation-hub-shell .allocation-hub-nav .allocation-tabs .nav-link.active {
    background-color: var(--itera-primary);
    border-color: var(--itera-primary);
    color: #ffffff;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.35);
}

/* Contador nas abas (quantidade de itens) */
.evaluation-tabs-card .evaluation-tabs .nav-link[data-count]:not([data-count=""])::after {
    content: attr(data-count);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background-color: rgba(232, 236, 255, 0.18);
    color: var(--itera-text-main);
    font-size: 0.75rem;
    font-weight: 600;
}
.evaluation-tabs-card .evaluation-tabs .nav-link.active[data-count]:not([data-count=""])::after {
    background-color: rgba(5, 8, 25, 0.85);
    color: #ffffff;
}

/* Listas de direcionadores e fatos relevantes (mesmo visual) */
.evaluation-tabs-card #direcionadores-list,
.evaluation-tabs-card #fatos-relevantes-list {
    background-color: transparent;
}
.evaluation-tabs-card #direcionadores-list .list-group-item,
.evaluation-tabs-card #fatos-relevantes-list .list-group-item {
    background-color: var(--itera-bg);
    border-color: var(--itera-border-subtle);
    color: var(--itera-text-main);
    padding: 0.65rem 0.9rem;
}
.evaluation-tabs-card #direcionadores-list .list-group-item:hover,
.evaluation-tabs-card #fatos-relevantes-list .list-group-item:hover {
    background-color: rgba(255, 255, 255, 0.03);
}
.evaluation-tabs-card #direcionadores-list .list-group-item .text-muted,
.evaluation-tabs-card #fatos-relevantes-list .list-group-item .text-muted {
    color: var(--itera-text-muted) !important;
}
.evaluation-tabs-card #direcionadores-list .list-group-item.direcionador-concluido {
    border-left: 4px solid #28a745;
    background-color: rgba(25, 135, 84, 0.12);
}
.evaluation-tabs-card #direcionadores-list .list-group-item.direcionador-concluido .direcionador-text-concluido {
    color: #6fcf87 !important;
}

/* Cards internos das abas (inputs agrupados) */
.evaluation-inner-card {
    background-color: var(--itera-bg-elevated);
    border-color: var(--itera-border-subtle);
    border-left: 3px solid var(--itera-primary);
}

/* Demais cards das seções de perfil: mesmo bg dos cards de nota */
.evaluation-profile-section .card {
    background-color: var(--itera-bg-elevated);
}

.evaluation-fact-icon {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background-color: rgba(var(--itera-primary-rgb), 0.35);
    color: var(--itera-text-main);
    font-size: 0.95rem;
}

.evaluation-fact-add-btn {
    padding: 0.7rem 1.1rem;
    min-height: 2.8rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.evaluation-expl-table thead th {
    border-bottom-color: var(--itera-border-subtle);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.evaluation-expl-table tbody td {
    border-top-color: rgba(255, 255, 255, 0.06);
}

.evaluation-tabs-card #courses-cert-list {
    background-color: transparent;
}
.evaluation-tabs-card #courses-cert-list .list-group-item-fato {
    background-color: var(--itera-bg);
    border-color: var(--itera-border-subtle);
    color: var(--itera-text-main);
    padding: 0.65rem 0.9rem;
}
.evaluation-tabs-card #courses-cert-list .list-group-item-fato:hover {
    background-color: rgba(255, 255, 255, 0.03);
}
.evaluation-tabs-card .btn-danger {
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
    color: #ffffff !important;
}
.evaluation-tabs-card .btn-danger:hover {
    background-color: #c82333 !important;
    border-color: #bd2130 !important;
    color: #ffffff !important;
}

/* —— Perfil avaliativo: card do topo (visual distinto) —— */
.evaluation-profile-header {
    border-radius: var(--itera-card-radius);
    overflow: hidden;
    border: 1px solid var(--itera-border-subtle);
    background: var(--itera-bg-elevated);
    border-left-width: 4px;
}
.evaluation-profile-header--tier-above {
    border-left-color: #1eaa5a;
}
.evaluation-profile-header--tier-expected {
    border-left-color: #ffc107;
}
.evaluation-profile-header--tier-below {
    border-left-color: #ff6b81;
}

.evaluation-profile-header--tier-blue {
    border-left-color: var(--itera-primary);
}
.evaluation-profile-header--tier-neutral {
    border-left-color: rgba(var(--itera-accent-rgb), 0.45);
}

/* Hub Detalhes da alocação: mesmo vocabulário do cabeçalho de avaliação, layout mais compacto */
.evaluations-professional-top .evaluation-profile-header {
    margin-bottom: 0 !important;
}
.evaluations-professional-top .evaluation-profile-header__inner {
    padding: 0.85rem 1.1rem;
}
.evaluations-professional-top .evaluation-profile-header__main {
    gap: 1rem;
    align-items: center;
}
.evaluations-professional-top .evaluation-profile-header__score-block {
    padding: 0.65rem 0.95rem;
    min-width: 128px;
}
.evaluations-professional-top .evaluations-hub-comparison {
    margin-top: 0.35rem;
}
.evaluations-professional-top .evaluation-profile-header__chips.evaluations-allocation-hub-meta-chips {
    margin-top: 0.55rem;
    padding-top: 0.55rem;
    gap: 0.4rem;
}
.evaluations-professional-top .evaluation-profile-header__chip {
    padding: 0.28rem 0.58rem;
    font-size: 0.78rem;
}
.evaluations-professional-top .evaluation-profile-header__chip .bi:first-child {
    font-size: 0.92em;
}
.evaluations-professional-top .evaluation-profile-header__classification {
    margin-top: 0.35rem !important;
}
.evaluations-professional-top .evaluations-analise-resumo-card {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.evaluation-profile-header__inner {
    padding: 1.25rem 1.5rem;
}
.evaluation-profile-header__main {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: space-between;
    gap: 1.5rem;
}
.evaluation-profile-header__identity {
    flex: 1;
    min-width: 200px;
}
.evaluation-profile-header__label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--itera-text-muted);
    margin-bottom: 0.25rem;
}
.evaluation-profile-header__name {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--itera-heading);
    margin: 0 0 0.2rem 0;
    line-height: 1.25;
}
.evaluation-profile-header__client {
    font-size: 0.95rem;
    color: var(--itera-text-muted);
}
/* Período da avaliação: caixa destacada (telas de lista, visualização e formulário) */
.evaluation-period-box {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    font-size: 0.875rem;
    line-height: 1.35;
    padding: 0.45rem 0.85rem;
    border-radius: 0.5rem;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.05);
    color: var(--itera-text-main);
    max-width: 100%;
}

.evaluation-period-box .bi {
    flex-shrink: 0;
    opacity: 0.9;
}

/* Card do bloco “Período da avaliação” no formulário */
.evaluation-period-card {
    border: 1px solid var(--itera-border-subtle);
    border-left: 3px solid rgba(13, 202, 240, 0.55);
}

.evaluation-profile-header__period {
    margin-top: 0.65rem;
}
.evaluation-profile-header__score-block {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    padding: 1rem 1.25rem;
    border-radius: 0.65rem;
    min-width: 140px;
    background: rgba(255, 255, 255, 0.03);
}
.evaluation-profile-header__score-block.text-success {
    background: rgba(30, 170, 90, 0.08);
}
.evaluation-profile-header__score-block.text-warning {
    background: rgba(255, 193, 7, 0.06);
}
.evaluation-profile-header__score-block.text-danger {
    background: rgba(255, 107, 129, 0.08);
}
.evaluation-profile-header__score-block.text-primary {
    background: rgba(var(--itera-primary-rgb), 0.1);
}
.evaluation-profile-header__score-block--label-only {
    padding: 0.75rem 1rem;
    min-width: auto;
}
.evaluation-profile-header__score-block--label-only .evaluation-profile-header__classification {
    margin-top: 0;
}
.evaluation-profile-header__score-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--itera-text-muted);
    margin-bottom: 0.2rem;
}
.evaluation-profile-header__score-value {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.02em;
}
.evaluation-profile-header__score-max {
    font-size: 1rem;
    font-weight: 600;
    opacity: 0.7;
    margin-left: 0.15rem;
}
.evaluation-profile-header__classification {
    margin-top: 0.5rem;
    font-size: 0.75rem !important;
}
.evaluation-profile-header__comparison {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
}
.evaluation-profile-header__comparison-label {
    color: var(--itera-text-muted);
}
.evaluation-profile-header__comparison-badge {
    font-size: 0.7rem !important;
    font-weight: 600;
    padding: 0.25rem 0.5rem;
}
.evaluation-profile-header__comparison-badge--improved {
    background: rgba(30, 170, 90, 0.2) !important;
    color: #1eaa5a !important;
}
.evaluation-profile-header__comparison-badge--worse {
    background: rgba(255, 107, 129, 0.2) !important;
    color: #ff6b81 !important;
}
.evaluation-profile-header__comparison-badge--same {
    background: rgba(255, 255, 255, 0.06) !important;
    color: var(--itera-text-muted) !important;
}
.evaluation-profile-header__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--itera-border-subtle);
}
.evaluation-profile-header__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: var(--itera-text-muted);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--itera-border-subtle);
    padding: 0.35rem 0.65rem;
    border-radius: 9999px;
}
.evaluation-profile-header__chip .bi {
    font-size: 0.9em;
    opacity: 0.9;
}
.evaluation-profile-header__chip-compare {
    font-size: 0.75em;
    margin-left: 0.2rem;
}
.evaluation-profile-header__chip-compare .bi {
    font-size: 1em;
    vertical-align: -0.1em;
}
.evaluation-profile-header__chip-compare--up {
    color: #1eaa5a !important;
}
.evaluation-profile-header__chip-compare--up .bi {
    color: inherit;
}
.evaluation-profile-header__chip-compare--down {
    color: #ff6b81 !important;
}
.evaluation-profile-header__chip-compare--down .bi {
    color: inherit;
}
.evaluation-profile-header__chip-compare--same {
    color: var(--itera-text-muted);
    opacity: 0.95;
}
.evaluation-profile-header__chip-compare--same .bi {
    color: inherit;
}
.evaluation-profile-header__chip--highlight {
    color: #ffc107;
    border-color: rgba(255, 193, 7, 0.35);
    background: rgba(255, 193, 7, 0.06);
}
.evaluation-profile-header__chip--success {
    color: #1eaa5a;
    border-color: rgba(30, 170, 90, 0.35);
    background: rgba(30, 170, 90, 0.06);
}
.evaluation-profile-header__chip--risk {
    color: #ff6b81;
    border-color: rgba(255, 107, 129, 0.35);
    background: rgba(255, 107, 129, 0.06);
}
.evaluation-profile-header__chip--risk-medium {
    color: #ffc107;
    border-color: rgba(255, 193, 7, 0.35);
    background: rgba(255, 193, 7, 0.06);
}
.evaluation-profile-header__chip--prospecto-context {
    max-width: min(100%, 26rem);
}
.evaluation-profile-header__chip--prospecto-context .evaluation-profile-header__chip-text-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.evaluation-radar-card .card-body {
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}
.evaluation-profile-section {
    display: block;
}
.evaluation-profile-section-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--itera-heading) !important;
    margin-bottom: 0.75rem;
    padding-bottom: 0.35rem;
    border-bottom: 1px solid var(--itera-border-subtle);
}
.evaluation-profile-section-title--muted {
    color: #a8b4e8 !important;
}
.evaluation-profile-section-title .bi {
    opacity: 0.9;
}
.evaluation-criterion-card {
    border-left: 3px solid var(--itera-border-subtle);
    max-width: 100%;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    cursor: pointer;
    box-sizing: border-box;
}
.evaluation-criterion-header.d-flex {
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.5rem;
    min-height: 1.75rem;
}

.evaluation-criterion-header > span:first-child {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.evaluation-criterion-header > span:last-child {
    flex-shrink: 0;
}
.evaluation-criterion-weight-label {
    font-size: 0.75rem;
    opacity: 0.85;
    margin-bottom: 0.15rem;
}
.evaluation-criterion-trend {
    font-size: 1.25rem;
    line-height: 1;
}
.evaluation-criterion-trend--up {
    color: #1eaa5a;
}
.evaluation-criterion-trend--down {
    color: #ff6b81;
}
.evaluation-note-badge {
    min-width: 2.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-weight: 700;
    font-size: 1.05rem;
    border-radius: 0.6rem;
    height: 100%;
}

.evaluation-criterion-header .evaluation-note-badge {
    height: auto;
    min-height: 2.25rem;
}

.evaluation-note-badge.bg-success {
    background-color: rgba(25, 135, 84, 0.28) !important;
    color: #1eaa5a !important;
}
.evaluation-note-badge.bg-warning {
    background-color: rgba(255, 193, 7, 0.25) !important;
    color: #ffc107 !important;
}
.evaluation-note-badge.bg-danger {
    background-color: rgba(220, 53, 69, 0.28) !important;
    color: #ff6b81 !important;
}

/* Badges do card de destaque/atenção usando o mesmo esquema de cores das notas */
.evaluation-highlight-badge-success {
    background-color: rgba(25, 135, 84, 0.28) !important;
    color: #1eaa5a !important;
}
.evaluation-highlight-badge-danger {
    background-color: rgba(220, 53, 69, 0.28) !important;
    color: #ff6b81 !important;
}

/* Oportunidade de melhoria (amarelo, não vermelho) */
.evaluation-highlight-badge-warning {
    background-color: rgba(255, 193, 7, 0.25) !important;
    color: #e6a800 !important;
}

/* Badge de classificação da nota geral (Abaixo / Dentro / Acima do Esperado) */
.evaluation-classification-badge-success {
    background-color: rgba(25, 135, 84, 0.28) !important;
    color: #1eaa5a !important;
    font-weight: 600;
    font-size: 0.8rem;
}
.evaluation-classification-badge-warning {
    background-color: rgba(255, 193, 7, 0.25) !important;
    color: #ffc107 !important;
    font-weight: 600;
    font-size: 0.8rem;
}
.evaluation-classification-badge-danger {
    background-color: rgba(220, 53, 69, 0.28) !important;
    color: #ff6b81 !important;
    font-weight: 600;
    font-size: 0.8rem;
}

.evaluation-classification-badge-blue {
    background-color: rgba(var(--itera-primary-rgb), 0.25) !important;
    color: var(--itera-primary) !important;
    font-weight: 600;
    font-size: 0.8rem;
}
.evaluation-criterion-card .card-body {
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}
.evaluation-criterion-card .card-body .text-muted.small:last-child {
    line-height: 1.35;
    margin-bottom: 0;
}
.evaluation-highlight-card {
    border-left: 3px solid var(--itera-primary);
}

.evaluation-highlight-card--success {
    border-left-color: #1eaa5a;
}

.evaluation-highlight-card--danger {
    border-left-color: #ff6b81;
}

.evaluation-highlight-card--warning {
    border-left-color: #ffc107;
}

/* Timeline de objetivos da alocação (alinhada a evaluation-inner-card / hub) */
.allocation-goals-timeline {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.allocation-goal-item {
    border-radius: var(--itera-card-radius);
    border: 1px solid var(--itera-border-subtle);
    background-color: var(--itera-bg-elevated);
    overflow: hidden;
    display: flex;
    align-items: stretch;
    border-left: 3px solid var(--itera-primary);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}
.allocation-goal-period-badge {
    flex: 0 0 5.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.75rem 0.65rem;
    background: rgba(255, 255, 255, 0.03);
    color: var(--itera-text-muted);
    border-right: 1px solid var(--itera-border-subtle);
}
.allocation-goal-content {
    flex: 1;
    padding: 0.75rem 1rem;
    min-width: 0;
}

/* Objetivos da alocação: título + Editar/Excluir na mesma linha quando possível */
.allocation-goal-content > .d-flex:first-child {
    align-items: flex-start;
}

.allocation-goal-content > .d-flex:first-child > h6 {
    min-width: 0;
    flex: 1 1 auto;
}

.allocation-goal-content > .d-flex:first-child > .d-flex.gap-1 {
    flex-wrap: nowrap;
    align-items: center;
    flex-shrink: 0;
}
.allocation-goal-period-3 {
    border-left-color: rgba(var(--itera-accent-rgb), 0.85);
}
.allocation-goal-period-3 .allocation-goal-period-badge {
    background: rgba(var(--itera-accent-rgb), 0.08);
    color: var(--itera-text-main);
}
.allocation-goal-period-6 {
    border-left-color: rgba(255, 193, 7, 0.85);
}
.allocation-goal-period-6 .allocation-goal-period-badge {
    background: rgba(255, 193, 7, 0.1);
    color: var(--itera-text-main);
}
.allocation-goal-period-12 {
    border-left-color: rgba(30, 170, 90, 0.9);
}
.allocation-goal-period-12 .allocation-goal-period-badge {
    background: rgba(30, 170, 90, 0.08);
    color: var(--itera-text-main);
}

/* Timeline de acompanhamento: tronco vertical + grupos por dia (lados alternados por dia) */
.allocation-acompanhamento-grupo-dia {
    position: relative;
    margin-bottom: 1.15rem;
}
.allocation-acompanhamento-dia-marker {
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 3;
    margin: 0.15rem 0 0.5rem;
}
.allocation-acompanhamento-dia-chip {
    display: inline-block;
    padding: 0.22rem 0.82rem;
    font-size: 0.71rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 999px;
    color: var(--itera-heading, #eef2ff);
    background: linear-gradient(165deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.04));
    border: 1px solid var(--itera-border-subtle, rgba(255, 255, 255, 0.18));
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}
.allocation-acompanhamento-grupo-dia .allocation-acompanhamento-item {
    margin-bottom: 0.65rem;
}
.allocation-acompanhamento-grupo-dia .allocation-acompanhamento-item:last-child {
    margin-bottom: 0;
}
.allocation-acompanhamento-legend {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.35rem;
    margin-bottom: 0.85rem;
    margin-left: auto;
    width: fit-content;
    max-width: 100%;
}

.allocation-acompanhamento-legend__titulo {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.65rem;
}

.allocation-acompanhamento-legend__lista {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem 1rem;
}

.allocation-acompanhamento-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    color: var(--itera-text-muted, #a8b4e8);
}

.allocation-acompanhamento-legend__amostra {
    width: 1.35rem;
    height: 0.35rem;
    border-radius: 2px;
    flex-shrink: 0;
}

.allocation-acompanhamento-legend__amostra--normal {
    background-color: var(--itera-primary);
}

.allocation-acompanhamento-legend__amostra--positivo {
    background-color: #198754;
}

.allocation-acompanhamento-legend__amostra--atencao {
    background-color: #fd7e14;
}

.allocation-acompanhamento-legend__amostra--recorrente {
    background-color: #6f42c1;
}

.allocation-acompanhamento-legend__amostra--ausencia {
    background-color: #64748b;
}

.allocation-acompanhamento-track {
    position: relative;
    margin-top: 0.25rem;
}
.allocation-acompanhamento-track__head {
    display: flex;
    justify-content: center;
    margin-bottom: 0.75rem;
    position: relative;
    z-index: 2;
}
.allocation-acompanhamento-btn-add {
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    flex-shrink: 0;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}
.allocation-acompanhamento-track__body {
    position: relative;
    padding: 0.25rem 0;
}
.allocation-acompanhamento-track__body::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    transform: translateX(-50%);
    background: var(--itera-border-subtle, rgba(255, 255, 255, 0.12));
    border-radius: 1px;
    pointer-events: none;
}
.allocation-acompanhamento-item {
    position: relative;
    display: flex;
    width: 100%;
    align-items: flex-start;
    margin-bottom: 1rem;
}
.allocation-acompanhamento-item--left {
    flex-direction: row;
    justify-content: flex-start;
}
.allocation-acompanhamento-item--right {
    flex-direction: row-reverse;
    justify-content: flex-start;
}
.allocation-acompanhamento-item .allocation-acompanhamento-card {
    flex: 0 1 calc(50% - 0.65rem);
    max-width: calc(50% - 0.65rem);
    border: 1px solid var(--itera-border-subtle, rgba(255, 255, 255, 0.1));
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.allocation-acompanhamento-card-strip {
    height: 5px;
    width: 100%;
    flex-shrink: 0;
}
.allocation-acompanhamento-marcador--normal .allocation-acompanhamento-card-strip {
    background-color: var(--itera-primary);
}
.allocation-acompanhamento-marcador--positivo .allocation-acompanhamento-card-strip {
    background-color: #198754;
}
.allocation-acompanhamento-marcador--atencao .allocation-acompanhamento-card-strip {
    background-color: #fd7e14;
}
.allocation-acompanhamento-marcador--recorrente .allocation-acompanhamento-card-strip {
    background-color: #6f42c1;
}
.allocation-acompanhamento-marcador--ausencia .allocation-acompanhamento-card-strip {
    background-color: #64748b;
}
.allocation-acompanhamento-marcador-badge {
    font-size: 0.7rem;
    font-weight: 600;
}
.allocation-acompanhamento-marcador-badge--normal {
    background-color: rgba(var(--itera-primary-rgb), 0.35);
    border: 1px solid rgba(var(--itera-primary-rgb), 0.5);
}
.allocation-acompanhamento-marcador-badge--positivo {
    background-color: rgba(25, 135, 84, 0.35);
    border: 1px solid rgba(25, 135, 84, 0.55);
}
.allocation-acompanhamento-marcador-badge--atencao {
    background-color: rgba(253, 126, 20, 0.4);
    border: 1px solid rgba(253, 126, 20, 0.75);
}
.allocation-acompanhamento-marcador-badge--recorrente {
    background-color: rgba(111, 66, 193, 0.38);
    border: 1px solid rgba(111, 66, 193, 0.72);
}
.allocation-acompanhamento-marcador-badge--ausencia {
    background-color: rgba(100, 116, 139, 0.38);
    border: 1px solid rgba(100, 116, 139, 0.72);
}
.allocation-acompanhamento-item--left .allocation-acompanhamento-card {
    margin-left: 0;
    margin-right: auto;
}
.allocation-acompanhamento-item--right .allocation-acompanhamento-card {
    margin-right: 0;
    margin-left: auto;
    text-align: right;
}
.allocation-acompanhamento-card-text {
    white-space: pre-wrap;
}
.turma-acompanhamento-card--editavel {
    cursor: pointer;
    transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}
@media (hover: hover) {
    .turma-acompanhamento-card--editavel:hover {
        box-shadow: 0 8px 28px rgba(0, 0, 0, 0.22);
        transform: translateY(-2px);
        border-color: rgba(255, 255, 255, 0.16);
    }
}

/* Turma — feed de acompanhamentos (legibilidade) */
.turma-acompanhamento-legenda {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--itera-border-subtle) !important;
    border-radius: var(--itera-card-radius);
}
.turma-acompanhamento-legenda__titulo {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--itera-text-muted);
    margin-bottom: 0.65rem;
}
.turma-acompanhamento-legenda__lista {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
}
.turma-acompanhamento-legenda__item {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--itera-heading);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
}
.turma-acompanhamento-legenda__bar {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    flex-shrink: 0;
}
.turma-acompanhamento-legenda__item--normal .turma-acompanhamento-legenda__bar { background: var(--itera-primary); }
.turma-acompanhamento-legenda__item--positivo .turma-acompanhamento-legenda__bar { background: #3dd68c; }
.turma-acompanhamento-legenda__item--atencao .turma-acompanhamento-legenda__bar { background: #ffb057; }
.turma-acompanhamento-legenda__item--recorrente .turma-acompanhamento-legenda__bar { background: #a98ae8; }
.turma-acompanhamento-legenda__item--ausencia .turma-acompanhamento-legenda__bar { background: #94a3b8; }

/* Timeline central + cards legíveis */
.turma-acompanhamento-feed .allocation-acompanhamento-track__body::before {
    display: block;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    background: rgba(255, 255, 255, 0.14);
}
.turma-acompanhamento-feed__head {
    margin-bottom: 1rem;
}
.turma-acompanhamento-feed__body {
    padding: 0.25rem 0 0.5rem;
}
.turma-acompanhamento-grupo-dia {
    margin-bottom: 1.15rem;
}
.turma-acompanhamento-feed .allocation-acompanhamento-item {
    position: relative;
    display: flex;
    width: 100%;
    align-items: flex-start;
    margin-bottom: 0.85rem;
}
.turma-acompanhamento-feed .allocation-acompanhamento-item::before {
    content: '';
    position: absolute;
    top: 1.35rem;
    left: 50%;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    transform: translateX(-50%);
    background: var(--itera-bg-elevated, #1a1420);
    border: 2px solid var(--itera-primary);
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.18);
    z-index: 2;
}
.turma-acompanhamento-feed .allocation-acompanhamento-marcador--positivo::before { border-color: #3dd68c; }
.turma-acompanhamento-feed .allocation-acompanhamento-marcador--atencao::before { border-color: #ffb057; }
.turma-acompanhamento-feed .allocation-acompanhamento-marcador--recorrente::before { border-color: #a98ae8; }
.turma-acompanhamento-feed .allocation-acompanhamento-marcador--ausencia::before { border-color: #94a3b8; }
.turma-acompanhamento-feed .allocation-acompanhamento-item .turma-acompanhamento-card {
    flex: 0 0 calc(50% - 1.25rem);
    width: calc(50% - 1.25rem);
    max-width: calc(50% - 1.25rem);
}
.turma-acompanhamento-feed .allocation-acompanhamento-item--left {
    flex-direction: row;
    justify-content: flex-start;
}
.turma-acompanhamento-feed .allocation-acompanhamento-item--left .turma-acompanhamento-card {
    margin-right: auto;
    margin-left: 0;
}
.turma-acompanhamento-feed .allocation-acompanhamento-item--right {
    flex-direction: row;
    justify-content: flex-end;
}
.turma-acompanhamento-feed .allocation-acompanhamento-item--right .turma-acompanhamento-card {
    margin-left: auto;
    margin-right: 0;
    text-align: left;
}
.turma-acompanhamento-card {
    position: relative;
    display: flex;
    gap: 0;
    width: auto;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.9rem;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    text-align: left;
}
.turma-acompanhamento-card__accent {
    width: 5px;
    flex-shrink: 0;
    background: var(--itera-primary);
}
.turma-acompanhamento-card.allocation-acompanhamento-marcador--positivo .turma-acompanhamento-card__accent { background: #3dd68c; }
.turma-acompanhamento-card.allocation-acompanhamento-marcador--atencao .turma-acompanhamento-card__accent { background: #ffb057; }
.turma-acompanhamento-card.allocation-acompanhamento-marcador--recorrente .turma-acompanhamento-card__accent { background: #a98ae8; }
.turma-acompanhamento-card.allocation-acompanhamento-marcador--ausencia .turma-acompanhamento-card__accent { background: #94a3b8; }
.turma-acompanhamento-card__conteudo {
    flex: 1 1 auto;
    min-width: 0;
    padding: 1rem 1.1rem 0.95rem;
}
.turma-acompanhamento-card__topo {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    margin-bottom: 0.75rem;
}
.turma-acompanhamento-card__marcador {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 0.35em 0.75em;
    color: #f8fafc;
}
.turma-acompanhamento-card__hora {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--itera-heading);
    white-space: nowrap;
}
.turma-acompanhamento-card__hora .bi {
    opacity: 0.75;
    font-size: 0.95em;
}
.turma-acompanhamento-card__pessoas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
}
.turma-acompanhamento-meta-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    max-width: 100%;
    padding: 0.35rem 0.65rem;
    border-radius: 0.55rem;
    font-size: 0.84rem;
    font-weight: 500;
    color: var(--itera-heading);
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.turma-acompanhamento-meta-chip span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.turma-acompanhamento-meta-chip--aluno .bi { color: #7eb8ff; }
.turma-acompanhamento-meta-chip--professor .bi { color: #c4a7ff; }
.turma-acompanhamento-card__texto {
    color: var(--itera-text-main);
    font-size: 0.96rem;
    line-height: 1.6;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    margin-bottom: 0.85rem;
}
.turma-acompanhamento-card__rodape {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.turma-acompanhamento-card__autor {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: var(--itera-text-muted);
}
.turma-acompanhamento-card__autor .bi {
    font-size: 1rem;
    opacity: 0.85;
}
.turma-acompanhamento-card__excluir {
    margin-left: auto;
}
.turma-acompanhamento-vazio {
    text-align: center;
    padding: 3rem 1.5rem;
    color: var(--itera-text-muted);
    border: 1px dashed rgba(255, 255, 255, 0.12);
    border-radius: var(--itera-card-radius);
    background: rgba(255, 255, 255, 0.02);
}
.turma-acompanhamento-vazio__icone {
    display: block;
    font-size: 2rem;
    margin-bottom: 0.75rem;
    opacity: 0.55;
}
@media (max-width: 767.98px) {
    .turma-acompanhamento-feed .allocation-acompanhamento-track__body::before {
        left: 0.65rem;
        transform: none;
    }
    .turma-acompanhamento-feed .allocation-acompanhamento-item::before {
        left: 0.65rem;
        transform: none;
    }
    .turma-acompanhamento-feed .allocation-acompanhamento-item {
        flex-direction: row !important;
        justify-content: flex-start !important;
        padding-left: 1.75rem;
    }
    .turma-acompanhamento-feed .allocation-acompanhamento-item .turma-acompanhamento-card {
        flex: 1 1 100%;
        width: 100%;
        max-width: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .turma-acompanhamento-card__conteudo {
        padding: 0.9rem 0.85rem 0.85rem;
    }
    .turma-acompanhamento-card__texto {
        font-size: 0.92rem;
    }
}
.allocation-acompanhamento-hora .bi-clock {
  font-size: 0.85em;
  opacity: 0.75;
}

.allocation-acompanhamento-card > .allocation-acompanhamento-card-body {
  flex: 1 1 auto;
}

.allocation-acompanhamento-card-body {
  display: flex;
  flex-direction: column;
  min-height: 5.5rem;
}

.allocation-acompanhamento-card-footer {
  margin-top: auto;
  padding-top: 0.65rem;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  width: 100%;
}

.allocation-acompanhamento-item--right .allocation-acompanhamento-card-footer {
  justify-content: flex-end;
}

.allocation-acompanhamento-audit-badge {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  background-color: rgba(var(--itera-primary-rgb), 0.35) !important;
  border: 1px solid var(--itera-border-subtle) !important;
  color: var(--itera-text-muted, #a8b4e8) !important;
  opacity: 0.88;
}

.evaluation-list-audit-badge {
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
  background-color: rgba(88, 62, 140, 0.28) !important;
  border: 1px solid rgba(168, 140, 220, 0.35) !important;
  color: #d4c4f0 !important;
  opacity: 0.95;
}

.allocation-acompanhamento-markdown-wrap {
    text-align: start;
}

.allocation-acompanhamento-modal-meta-row > [class*="col-"] label {
    line-height: 1.35;
}

.allocation-acompanhamento-modal-toolbar-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    align-items: stretch;
}

@media (min-width: 992px) {
    .allocation-acompanhamento-modal-toolbar-wrap {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
        justify-content: space-between;
        gap: 0.75rem;
    }

    .allocation-acompanhamento-modal-toolbar-ia {
        flex-shrink: 0;
        margin-left: auto;
    }
}

.allocation-acompanhamento-modal-textarea {
    min-height: 10rem;
    resize: vertical;
    line-height: 1.55;
    font-size: 0.95rem;
    color: var(--itera-text-main);
}

@media (min-width: 768px) {
    .allocation-acompanhamento-modal-textarea {
        min-height: 12rem;
    }
}

.allocation-hub-shell .allocation-hub-nav .allocation-tabs {
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.35) transparent;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 0.35rem;
    -webkit-overflow-scrolling: touch;
}
.allocation-hub-shell .allocation-hub-nav .allocation-tabs::-webkit-scrollbar {
    height: 6px;
}
.allocation-hub-shell .allocation-hub-nav .allocation-tabs::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 0.25);
    border-radius: 999px;
}
.allocation-hub-shell .allocation-hub-panels {
    padding-top: 0;
}
.allocation-hub-shell .allocation-hub-panels > .tab-pane {
    padding-bottom: 0;
}
.allocation-hub-pane-intro {
    margin-bottom: 1rem;
}
.allocation-hub-pane-intro .h5 {
    margin-bottom: 0.25rem;
}
.allocation-hub-kpi {
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.02);
    border-radius: var(--itera-card-radius);
}
.allocation-hub-kpi-label {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
}
.allocation-hub-kpi-value {
    font-size: 1.35rem;
    font-weight: 600;
}
.allocation-hub-kpi--situation .allocation-hub-kpi-value {
    font-size: 1rem;
}
.allocation-hub-inner-card {
    border: 1px solid var(--itera-border-subtle);
    background-color: var(--itera-bg-elevated);
    border-radius: var(--itera-card-radius);
    border-left: 3px solid var(--itera-primary);
}

/* Card “Perfil de atuação / gestor” na aba Atuação (edição de alocação) */
.allocation-tabs-card .allocation-tab-pane-card {
    background-color: var(--itera-bg-elevated);
    border: 1px solid var(--itera-border-subtle);
    border-radius: var(--itera-card-radius);
    border-left: 3px solid var(--itera-primary);
}
.allocation-hub-detail-dl dt {
    color: var(--itera-text-muted);
    font-size: 0.85rem;
    font-weight: 500;
    padding-top: 0.35rem;
}
.allocation-hub-detail-dl dd {
    padding-top: 0.35rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.allocation-hub-detail-dl dd:last-of-type {
    border-bottom: none;
}

/* Hub — aba Atuação: dois blocos agrupados (cartão envelope) */
.allocation-hub-shell .allocation-hub-atuacao-panel {
    border: 1px solid var(--itera-border-subtle);
    border-radius: var(--itera-card-radius);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0)),
        var(--itera-bg-elevated);
    padding: 1rem 1.15rem 1.2rem;
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.15);
}

@media (min-width: 768px) {
    .allocation-hub-shell .allocation-hub-atuacao-panel {
        padding: 1.25rem 1.4rem 1.35rem;
    }
}

.allocation-hub-shell .allocation-hub-atuacao-panel-heading {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.055em;
    color: var(--itera-text-muted);
    margin: 0 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--itera-border-subtle);
}

.allocation-hub-shell .allocation-hub-atuacao-panel .evaluation-inner-card {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--itera-border-subtle);
    border-left: 2px solid rgba(var(--itera-accent-rgb), 0.5);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.allocation-hub-shell .allocation-hub-atuacao-panel .allocation-hub-projeto-card.evaluation-inner-card {
    border-left-color: rgba(var(--itera-accent-rgb), 0.45);
}

/* Aba Atuação (hub da alocação): cards tipo avaliação, hover suave */
.allocation-hub-shell .allocation-hub-atuacao-field-card,
.allocation-hub-shell .allocation-hub-projeto-card {
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
@media (hover: hover) {
    .allocation-hub-shell .allocation-hub-atuacao-field-card:hover,
    .allocation-hub-shell .allocation-hub-projeto-card:hover {
        box-shadow: 0 0.4rem 1rem rgba(0, 0, 0, 0.26);
        transform: translateY(-2px);
    }
}
@media (max-width: 767.98px) {
    .allocation-acompanhamento-track__body::before {
        display: none;
    }
    .allocation-acompanhamento-item {
        flex-direction: row !important;
        justify-content: flex-start !important;
    }
    .allocation-acompanhamento-item .allocation-acompanhamento-card {
        flex: 1 1 100%;
        max-width: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important;
        text-align: left !important;
    }
}

/* Projetos vinculados na tela de alocacao */
.allocation-project-panel {
    border: 1px solid var(--itera-border-subtle);
    border-radius: var(--itera-card-radius);
    background: rgba(255, 255, 255, 0.02);
    padding: 0.85rem;
}
.allocation-project-panel__controls {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    gap: 0.6rem;
    align-items: center;
}
.allocation-project-panel__controls .form-select {
    max-width: 100%;
}
.allocation-project-panel__label {
    letter-spacing: 0.04em;
}
.allocation-project-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 0.6rem;
    margin-top: 0.35rem;
}
.allocation-project-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    padding: 0.6rem 0.7rem;
    border-radius: 0.7rem;
    border: 1px solid var(--itera-border-subtle);
    background: var(--itera-bg-elevated);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.01);
}
.allocation-project-item__content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}
.allocation-project-item__label {
    font-size: 0.72rem;
    color: var(--itera-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.allocation-project-item__name {
    font-weight: 600;
    color: var(--itera-text-main);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.allocation-project-item__client-badge {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    padding: 0.16rem 0.48rem;
    border-radius: 999px;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(var(--itera-accent-rgb), 0.12);
    color: #6edff6;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.2;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.allocation-project-item__remove {
    flex-shrink: 0;
    min-width: 2rem;
    padding-inline: 0.45rem;
}
.allocation-project-badge {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 0.32rem 0.55rem;
    border-radius: 999px;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(var(--itera-accent-rgb), 0.12);
    color: #6edff6;
    font-weight: 600;
    font-size: 0.78rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Tabela interna de linhas agrupadas na listagem de alocacoes */
.allocations-group-table td {
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    border-top: 1px solid var(--itera-border-subtle);
}
.allocations-group-table tr:first-child td {
    border-top: 0;
}

/* Ícone do bloco gestor na aba Atuação (classes do card já em allocation-tab-pane-card) */
.allocation-manager-card__icon {
    font-size: 1.15rem;
    color: var(--itera-text-muted);
    opacity: 1;
}

/* Card de dias permitidos para lancamento de horas */
.allocation-weekdays-card {
    background: rgba(255, 255, 255, 0.03);
}

.allocation-weekdays-card__icon {
    font-size: 1.15rem;
    color: var(--itera-text-main);
    opacity: 1;
}

.allocation-weekdays-card__options {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
}

.allocation-weekdays-card__options .form-check {
    margin-bottom: 0;
    min-width: 3.25rem;
}

/* Autocomplete customizado (cargo/papel, vínculo turma, etc.) */
.allocation-role-autocomplete,
.turma-vinculo-autocomplete {
    position: relative;
}
.allocation-role-autocomplete__menu {
    position: absolute;
    top: calc(100% + 0.3rem);
    left: 0;
    right: 0;
    z-index: 1100;
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.7rem;
    background: var(--itera-bg-elevated);
    box-shadow: 0 10px 32px rgba(0, 0, 0, 0.38);
    padding: 0.3rem;
    max-height: 14rem;
    overflow-y: auto;
}
.allocation-role-autocomplete__item {
    display: block;
    width: 100%;
    text-align: left;
    border: 0;
    border-radius: 0.5rem;
    background: transparent;
    color: var(--itera-text-main);
    padding: 0.45rem 0.55rem;
    font-size: 0.92rem;
}
.allocation-role-autocomplete__item:hover,
.allocation-role-autocomplete__item.is-active {
    background: rgba(255, 255, 255, 0.08);
    color: var(--itera-heading);
}
.turma-vinculo-autocomplete .invalid-feedback {
    display: none;
}
.turma-vinculo-autocomplete .form-control.is-invalid ~ .invalid-feedback {
    display: block;
}
.allocation-role-autocomplete__empty {
    padding: 0.45rem 0.55rem;
}

/* Destaque do card do dia atual no lancamento de horas */
.hours-day-card-today {
    border-color: rgba(var(--itera-accent-rgb), 0.65) !important;
    box-shadow: 0 0 0 1px rgba(var(--itera-accent-rgb), 0.35), 0 8px 18px rgba(0, 0, 0, 0.2);
    background: linear-gradient(180deg, rgba(var(--itera-accent-rgb), 0.08), rgba(255, 255, 255, 0.02));
}

.hours-day-card-absence {
    border-color: rgba(255, 193, 7, 0.55) !important;
    box-shadow: 0 0 0 1px rgba(255, 193, 7, 0.22), 0 8px 18px rgba(0, 0, 0, 0.2);
    background: linear-gradient(180deg, rgba(255, 193, 7, 0.12), rgba(255, 255, 255, 0.02));
}

#hours-form .hours-day-card-absence input[type="time"] {
    border-color: rgba(255, 193, 7, 0.55);
}

#hours-form .hours-days-row {
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    scrollbar-width: thin;
    --bs-gutter-x: 0.5rem;
}

#hours-form .hours-day-col {
    min-width: 170px;
}

#hours-form .hours-day-col-outside-part {
    opacity: 0.5;
    filter: saturate(0.75);
}

#hours-form .hours-day-col-outside-part .hours-day-card {
    border-color: rgba(255, 255, 255, 0.1) !important;
    background: rgba(255, 255, 255, 0.015);
    box-shadow: none !important;
}

#hours-form .hours-day-col-outside-part input[type="time"] {
    padding-right: 2rem;
}

#hours-form .hours-day-col-outside-part input[type="time"]::-webkit-calendar-picker-indicator {
    display: none !important;
}

#hours-form .hours-day-col-outside-part .hours-day-card .fw-semibold,
#hours-form .hours-day-col-outside-part .hours-day-card .small {
    color: rgba(232, 243, 255, 0.9) !important;
}

#hours-form .hours-day-card .text-muted,
#hours-form .hours-day-card .small.text-muted {
    color: rgba(232, 243, 255, 0.85) !important;
}

.hours-week-part-chip {
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.05);
    color: #e8f7ff;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 600;
}

.hours-week-part-chip:hover {
    border-color: rgba(var(--itera-accent-rgb), 0.45);
    background: rgba(var(--itera-accent-rgb), 0.12);
    color: #f3fbff;
}

.hours-week-part-chip.is-active {
    border-color: rgba(var(--itera-accent-rgb), 0.65);
    background: rgba(var(--itera-accent-rgb), 0.18);
    box-shadow: 0 0 0 1px rgba(var(--itera-accent-rgb), 0.18);
    color: #ffffff;
}

.hours-week-part-chip__period {
    color: rgba(232, 243, 255, 0.96) !important;
}

.hours-week-part-chip__status {
    font-size: 0.72rem;
    color: var(--itera-text-main) !important;
    border-left: 1px solid rgba(199, 220, 255, 0.25);
    padding-left: 0.45rem;
}

.hours-launch-partition-label {
    color: #d6f6ff !important;
}

.hours-launch-partition-hint {
    color: rgba(232, 243, 255, 0.9) !important;
    background: rgba(var(--itera-accent-rgb), 0.08);
    border: 1px solid rgba(var(--itera-accent-rgb), 0.2);
    border-radius: 0.5rem;
    padding: 0.45rem 0.6rem;
}

.hours-launch-toolbar {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 0.6rem;
    padding: 0.55rem 0.7rem;
}

.hours-day-outside-hint {
    color: rgba(255, 255, 255, 0.78) !important;
}

#hours-form .hours-day-card .card-body {
    padding: 0.75rem;
}

#hours-form .hours-day-card .fw-semibold {
    font-size: 0.85rem;
}

#hours-form .hours-day-card .small {
    font-size: 0.74rem;
}

#hours-form .hours-day-card .form-label {
    font-size: 0.72rem;
}

#hours-form .hours-day-card .form-control {
    font-size: 0.82rem;
    padding: 0.35rem 0.45rem;
}

#hours-form .hours-time-wrap {
    position: relative;
}

#hours-form .hours-time-wrap .form-control {
    padding-right: 2rem !important;
}

#hours-form .hours-time-wrap__icon {
    position: absolute;
    right: 0.65rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.78rem;
    color: rgba(214, 246, 255, 0.82);
    pointer-events: none;
}

#hours-form .hours-time-wrap--dim .hours-time-wrap__icon {
    color: rgba(199, 220, 255, 0.42);
}

#hours-form .hours-day-card input[type="time"] {
    text-align: center !important;
    text-align-last: center;
    -moz-appearance: textfield;
}

#hours-form .hours-day-card input[type="time"]::-webkit-date-and-time-value {
    text-align: center !important;
}

#hours-form .hours-day-card input[type="time"]::-webkit-datetime-edit {
    display: inline-flex;
    justify-content: center;
    width: 100%;
    text-align: center;
}

#hours-form .hours-day-card input[type="time"]::-webkit-datetime-edit-fields-wrapper {
    display: inline-flex;
    justify-content: center;
    width: 100%;
}

/* Um único relógio (ícone custom em .hours-time-wrap); esconder o nativo em todos os estados */
#hours-form .hours-time-wrap input[type="time"]::-webkit-calendar-picker-indicator,
#hours-form .hours-time-wrap input[type="time"]:focus::-webkit-calendar-picker-indicator,
#hours-form .hours-time-wrap input[type="time"]:focus-visible::-webkit-calendar-picker-indicator,
#hours-form .hours-time-wrap input[type="time"]:active::-webkit-calendar-picker-indicator,
#hours-form .hours-day-card input[type="time"]::-webkit-calendar-picker-indicator {
    display: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    opacity: 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    pointer-events: none !important;
}

#hours-form .hours-time-wrap input[type="time"]::-moz-calendar-picker-indicator {
    display: none !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
}

#hours-form .hours-day-card .hours-notes-open {
    padding: 0.2rem 0.42rem;
    font-size: 0.75rem;
}

/* Lançamento de horas: campos bloqueados com destaque visual */
#hours-form .hours-day-card .form-control:disabled {
    background-color: var(--itera-bg-sidebar);
    border-color: rgba(var(--itera-accent-rgb), 0.55);
    color: var(--itera-text-main) !important;
    -webkit-text-fill-color: var(--itera-text-main) !important;
    font-weight: 600;
    opacity: 1;
    box-shadow: inset 0 0 0 1px rgba(var(--itera-accent-rgb), 0.18);
}

#hours-form .hours-day-card input[type="time"].form-control:disabled,
#hours-form .hours-day-card input[type="time"]:disabled {
    background-color: var(--itera-bg-sidebar) !important;
    color: var(--itera-text-main) !important;
    -webkit-text-fill-color: var(--itera-text-main) !important;
    border-color: rgba(var(--itera-accent-rgb), 0.55) !important;
    caret-color: var(--itera-text-main) !important;
    opacity: 1 !important;
}

#hours-form .hours-day-card input[type="time"]:disabled::-webkit-date-and-time-value,
#hours-form .hours-day-card input[type="time"]:disabled::-webkit-datetime-edit-fields-wrapper {
    color: var(--itera-text-main) !important;
    -webkit-text-fill-color: var(--itera-text-main) !important;
    opacity: 1 !important;
}

#hours-form .hours-day-card input[type="time"]:disabled::-webkit-datetime-edit,
#hours-form .hours-day-card input[type="time"]:disabled::-webkit-datetime-edit-hour-field,
#hours-form .hours-day-card input[type="time"]:disabled::-webkit-datetime-edit-minute-field,
#hours-form .hours-day-card input[type="time"]:disabled::-webkit-datetime-edit-ampm-field,
#hours-form .hours-day-card input[type="time"]:disabled::-webkit-datetime-edit-text {
    color: var(--itera-text-main) !important;
    -webkit-text-fill-color: var(--itera-text-main) !important;
}

#hours-form .hours-day-card input[type="time"]:disabled::-webkit-datetime-edit-text {
    color: #d4a8c0 !important;
    -webkit-text-fill-color: #d4a8c0 !important;
}

#hours-form .hours-day-card input[type="time"]:disabled::-webkit-calendar-picker-indicator {
    display: none !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
}

/* Fallback robusto: bloqueio visual com readonly para garantir contraste legível */
#hours-form .hours-day-card .hours-time-readonly {
    background-color: var(--itera-bg-sidebar) !important;
    border-color: rgba(var(--itera-accent-rgb), 0.55) !important;
    color: var(--itera-text-main) !important;
    -webkit-text-fill-color: var(--itera-text-main) !important;
    font-weight: 600;
    pointer-events: none;
    padding-right: 2rem;
}

#hours-form .hours-day-card .hours-time-readonly::-webkit-calendar-picker-indicator {
    display: none !important;
}

#hours-form .hours-day-card .hours-time-readonly::-webkit-datetime-edit,
#hours-form .hours-day-card .hours-time-readonly::-webkit-datetime-edit-hour-field,
#hours-form .hours-day-card .hours-time-readonly::-webkit-datetime-edit-minute-field,
#hours-form .hours-day-card .hours-time-readonly::-webkit-datetime-edit-text,
#hours-form .hours-day-card .hours-time-readonly::-webkit-date-and-time-value,
#hours-form .hours-day-card .hours-time-readonly::-webkit-datetime-edit-fields-wrapper {
    color: var(--itera-text-main) !important;
    -webkit-text-fill-color: var(--itera-text-main) !important;
    opacity: 1 !important;
    text-align: center !important;
}

/* Tela de aprovacao de horas alinhada ao tema */
.hours-approval-filters-card,
.hours-approval-list-card {
    border-color: var(--itera-border-subtle);
}

.hours-approval-view-toggle .hours-approval-view-btn {
    font-weight: 600;
    min-width: 7.5rem;
    border-width: 1px;
}

.hours-approval-view-toggle .hours-approval-view-btn--week:not(.is-active) {
    border-color: rgba(var(--itera-accent-rgb), 0.55);
    color: #bfeeff;
}

.hours-approval-view-toggle .hours-approval-view-btn--period:not(.is-active) {
    border-color: rgba(180, 156, 255, 0.55);
    color: #ddccff;
}

.hours-approval-view-toggle .hours-approval-view-btn.is-active {
    color: #ffffff;
    border-color: transparent;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28);
}

.hours-approval-view-toggle .hours-approval-view-btn--week.is-active {
    background: linear-gradient(135deg, rgba(var(--itera-primary-rgb), 0.96), rgba(var(--itera-accent-rgb), 0.92));
}

.hours-approval-view-toggle .hours-approval-view-btn--period.is-active {
    background: linear-gradient(135deg, rgba(var(--itera-primary-rgb), 0.96), rgba(var(--itera-accent-rgb), 0.92));
}

.hours-approval-week-nav-btn {
    min-width: 2.35rem;
}

.hours-approval-week-nav-btn--current {
    font-weight: 700;
    border-color: rgba(var(--itera-accent-rgb), 0.58);
    color: #d6f6ff;
    background: rgba(var(--itera-accent-rgb), 0.12);
}

.hours-approval-week-nav-btn--current:hover {
    background: rgba(var(--itera-accent-rgb), 0.2);
    border-color: rgba(var(--itera-accent-rgb), 0.72);
    color: #e8fbff;
}

.hours-approval-table:not(.hours-approval-table--period) tbody tr:nth-child(4n + 1) > td {
    border-top-color: rgba(255, 255, 255, 0.08);
}

/* Modo período: cada profissional vira um bloco (cartão) na listagem */
.hours-approval-table--period {
    border-collapse: separate;
    border-spacing: 0;
}

/* Bloco do profissional sem cantos arredondados (topo e última linha retos) */
.hours-approval-table--period .hours-approval-period-group {
    outline: 1px solid var(--itera-border-subtle);
    border-radius: 0;
    margin-bottom: 1.1rem;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
    background: rgba(var(--itera-overlay-rgb), 0.35);
    overflow: hidden;
}

.hours-approval-table--period .hours-approval-period-group > tr:last-child > td {
    border-radius: 0 !important;
}

.hours-approval-table--period .hours-approval-period-group:last-of-type {
    margin-bottom: 0;
}

.hours-approval-period-group-header .hours-approval-period-group-header__cell,
.hours-approval-period-group-header .hours-approval-period-group-header__inner {
    border-radius: 0;
}

.hours-approval-period-group-header__cell {
    padding: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    background: linear-gradient(
        135deg,
        rgba(var(--itera-primary-rgb), 0.55) 0%,
        rgba(var(--itera-overlay-rgb), 0.92) 42%,
        var(--itera-bg-elevated) 100%
    );
    vertical-align: middle;
}

.hours-approval-period-group-header__inner {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.85rem 1rem 0.85rem 0.95rem;
}

.hours-approval-period-group-header__avatar {
    flex-shrink: 0;
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    border: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: 0 4px 14px rgba(var(--itera-primary-rgb), 0.45);
    background: rgba(0, 0, 0, 0.22);
}

.hours-approval-period-group-header__avatar--initials {
    background: linear-gradient(145deg, rgba(var(--itera-accent-rgb), 0.35), var(--itera-primary-dark));
}

.hours-approval-period-group-header__avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 0;
}

.hours-approval-period-group-header__avatar-fallback {
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #ffffff;
    line-height: 1;
}

.hours-approval-period-group-header__text {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.hours-approval-period-group-header__label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--itera-text-muted);
    font-weight: 600;
}

.hours-approval-period-group-header__title {
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.25;
    color: var(--itera-heading);
    letter-spacing: 0.01em;
}

.hours-approval-period-group-header__meta {
    font-size: 0.78rem;
    color: var(--itera-text-muted);
}

/* Faixa vertical + coluna profissional vazia (nome só no cabeçalho do grupo) */
.hours-approval-period-group__row--summary td:first-child {
    box-shadow: inset 4px 0 0 var(--itera-accent-line);
}

.hours-approval-period-group__row--detail td.hours-approval-details-cell {
    box-shadow: inset 4px 0 0 rgba(var(--itera-accent-rgb), 0.72);
}

.hours-approval-period-group__prof-cell {
    border-left: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(255, 255, 255, 0.02);
}

.hours-approval-summary-row {
    cursor: pointer;
}

.hours-approval-summary-row.is-active > td {
    background-color: rgba(var(--itera-accent-rgb), 0.14);
}

.hours-approval-detail-row {
    display: none;
}

.hours-approval-detail-row.is-open {
    display: table-row;
}

.hours-approval-summary-row .hours-approval-toggle-btn .bi {
    transition: transform 0.15s ease;
}

.hours-approval-summary-row.is-active .hours-approval-toggle-btn .bi {
    transform: rotate(180deg);
}

.hours-approval-details-cell {
    background: rgba(255, 255, 255, 0.03);
    border-top-color: rgba(255, 255, 255, 0.04);
}

.hours-approval-entry-badge {
    background: rgba(255, 255, 255, 0.06);
    color: var(--itera-text-main);
}

.hours-approval-reject-form .form-control {
    min-width: 12rem;
}

.hours-approval-days-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.65rem;
}

.hours-approval-day-card {
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.7rem;
    background: rgba(255, 255, 255, 0.03);
    padding: 0.65rem 0.75rem;
}

.hours-approval-day-card-absence {
    border-color: rgba(255, 193, 7, 0.55) !important;
    box-shadow: 0 0 0 1px rgba(255, 193, 7, 0.22), 0 8px 18px rgba(0, 0, 0, 0.2);
    background: linear-gradient(180deg, rgba(255, 193, 7, 0.12), rgba(255, 255, 255, 0.02));
}

.hours-approval-day-card__header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.4rem;
    margin-bottom: 0.35rem;
}

.hours-approval-day-card__weekday {
    font-weight: 600;
    color: var(--itera-text-main);
}

.hours-approval-day-card__date {
    font-size: 0.78rem;
    color: var(--itera-text-muted);
}

.hours-approval-day-card__hours {
    font-size: 1.05rem;
    font-weight: 700;
    color: #6edff6;
    margin-bottom: 0.2rem;
}

.hours-approval-day-card__context {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    font-size: 0.82rem;
    color: var(--itera-text-muted);
}

.hours-approval-day-card__actions {
    margin-top: 0.45rem;
}

.hours-approval-notes-open--has-notes {
    background: rgba(var(--itera-accent-rgb), 0.12) !important;
    border-color: rgba(var(--itera-accent-rgb), 0.4) !important;
    color: #d6f6ff !important;
}

.hours-approval-notes-open--has-notes:hover {
    background: rgba(var(--itera-accent-rgb), 0.2) !important;
    border-color: rgba(var(--itera-accent-rgb), 0.55) !important;
}

.hours-approval-notes-content {
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.6rem;
    background: rgba(255, 255, 255, 0.03);
    padding: 0.75rem;
    white-space: pre-wrap;
    color: var(--itera-text-main);
}

.hours-notes-modal__meta {
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.03);
    padding: 0.65rem 0.75rem;
}

.hours-notes-modal__day {
    color: #d6f6ff;
    margin-bottom: 0.2rem;
}

.evaluation-template-criteria-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    border: 1px solid rgba(var(--itera-accent-rgb), 0.35);
    border-radius: 0.7rem;
    background: rgba(var(--itera-accent-rgb), 0.1);
    padding: 0.75rem 0.9rem;
}

.evaluation-template-criteria-cta__text {
    min-width: 0;
}

.evaluation-template-criteria-cta__btn {
    font-weight: 700;
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .allocation-project-panel__controls {
        grid-template-columns: 1fr;
    }

    .evaluation-template-criteria-cta {
        flex-direction: column;
        align-items: stretch;
    }

    .evaluation-template-criteria-cta__btn {
        width: 100%;
    }
}

/* Confirmação global: offcanvas vindo da direita */
.itera-confirm-panel.offcanvas {
    width: min(100%, 26rem);
    background-color: var(--itera-bg-elevated);
    border-left: 1px solid var(--itera-border-subtle);
    color: var(--itera-text-main);
    box-shadow: -8px 0 32px rgba(0, 0, 0, 0.35);
}

.itera-confirm-panel .offcanvas-header {
    border-color: var(--itera-border-subtle) !important;
}

.itera-confirm-panel .offcanvas-title {
    color: var(--itera-heading);
    font-weight: 600;
    font-size: 1.05rem;
}

.itera-confirm-panel__message {
    color: var(--itera-text-main);
    font-size: 0.95rem;
    line-height: 1.5;
    margin-bottom: 0;
}

.itera-confirm-panel .offcanvas-body {
    padding: 1.25rem 1.35rem;
    min-height: 12rem;
}

.itera-confirm-panel__actions .btn {
    min-width: 6.5rem;
}

/* Formulários em painel lateral (ex.: usuários): desliza da direita, mais largo que confirmação */
.itera-form-panel.offcanvas {
    width: min(100%, 42rem);
    background-color: var(--itera-bg-elevated);
    border-left: 1px solid var(--itera-border-subtle);
    color: var(--itera-text-main);
    box-shadow: -8px 0 32px rgba(0, 0, 0, 0.35);
}

.itera-form-panel .offcanvas-header {
    border-color: var(--itera-border-subtle) !important;
}

.itera-form-panel .offcanvas-title {
    color: var(--itera-heading);
    font-weight: 600;
    font-size: 1.05rem;
}

.itera-form-panel__mount {
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}

.itera-form-panel__mount > form.itera-form-panel__form {
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.itera-form-panel__form-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0.5rem 1rem 1rem;
}

.itera-form-panel__footer {
    border-color: var(--itera-border-subtle) !important;
    background-color: var(--itera-bg-elevated);
}

.itera-form-panel__footer .btn + .btn {
    margin-left: 0;
}

/* Modal no tema escuro (ex.: objetivo da alocação) */
.itera-modal .modal-content {
    background-color: var(--itera-bg-elevated);
    border-color: var(--itera-border-subtle);
    color: var(--itera-text-main);
}
.itera-modal .modal-header,
.itera-modal .modal-footer {
    border-color: var(--itera-border-subtle);
}
.itera-modal .modal-title {
    color: var(--itera-heading);
}

/* Modais laterais (padrao): entram pela direita como painel */
.itera-modal .modal-dialog {
    margin: 0 0 0 auto;
    max-width: min(100%, 34rem);
    height: 100vh;
    transform: translateX(110%);
    opacity: 0;
    transition: transform 0.28s ease, opacity 0.22s ease;
}

.itera-modal.fade.show .modal-dialog,
.itera-modal.show .modal-dialog {
    transform: translateX(0);
    opacity: 1;
}

.itera-modal.fade:not(.show) .modal-dialog {
    transform: translateX(110%);
    opacity: 0;
}

.itera-modal .modal-content {
    display: flex;
    flex-direction: column;
    height: 100vh;
    border-radius: 0;
    border-left: 1px solid var(--itera-border-subtle);
    box-shadow: -8px 0 32px rgba(0, 0, 0, 0.35);
}

.itera-modal .modal-content > form {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
}

.itera-modal .modal-header,
.itera-modal .modal-footer {
    flex-shrink: 0;
}

.itera-modal .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

/* Variante: painel lateral com metade da largura do ecrã (ex.: edição de prompts) */
.itera-modal.itera-modal--half-viewport .modal-dialog {
    max-width: min(100%, 50vw);
    width: 50vw;
}

/* Editor único de conjunto de prompts (admin): área de texto mais alta */
#modalPrompt .modal-prompt-textarea--grupo {
    min-height: min(58vh, 36rem);
    field-sizing: content;
}

/* Toast de auto-save da edição de avaliação: canto superior direito */
.evaluation-autosave-toast {
    position: fixed;
    right: 1.5rem;
    top: 1.5rem;
    bottom: auto;
    z-index: 1080;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.45);
    border-radius: 999px;
}
.evaluation-profile-text {
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--itera-text-main);
}
.evaluation-profile-list.list-group-flush .list-group-item {
    background-color: transparent;
    border-color: var(--itera-border-subtle);
    color: var(--itera-text-main);
    padding: 0.6rem 0.75rem;
    border-radius: 0.75rem;
    margin-bottom: 0.25rem;
}
.evaluation-profile-list.list-group-flush .list-group-item:nth-child(odd) {
    background-color: rgba(255, 255, 255, 0.02);
}
.evaluation-profile-list .direcionador-concluido .direcionador-text-concluido {
    color: var(--itera-text-muted);
}
.evaluation-header-radar-chart {
    width: 220px;
    max-width: 100%;
}
.evaluation-header-radar-chart canvas {
    width: 100% !important;
    height: auto !important;
}
.evaluation-score-badge {
    font-size: 0.9rem;
    padding: 0.4rem 0.75rem;
}
.evaluation-score-text {
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1;
}

/* Lado da imagem: ocupa metade da tela, altura total */
.login-image-side {
    flex: 0 0 50%;
    min-height: 100vh;
    background-color: var(--itera-primary);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Se não houver imagem, o fundo rosa do tema aparece */
@media (max-width: 991.98px) {
    .login-split {
        flex-direction: column;
    }

    .login-form-side {
        flex: 1 1 auto;
        min-height: auto;
        padding: 2rem 1.5rem 3rem;
    }

    .login-image-side {
        flex: 0 0 280px;
        min-height: 280px;
        order: -1;
    }
}

/* Menus dropdown no tema escuro: painel com acento rosa */
.itera-main .dropdown-menu {
    --bs-dropdown-link-hover-bg: rgba(var(--itera-primary-rgb), 0.22);
    --bs-dropdown-link-hover-color: #fff;
    --bs-dropdown-link-active-bg: var(--itera-primary);
    --bs-dropdown-link-active-color: #fff;
    background-color: var(--itera-bg-elevated);
    border: 1px solid rgba(var(--itera-primary-rgb), 0.35);
}

.itera-main .dropdown-item {
    color: var(--itera-text-main);
}

.itera-main .dropdown-item:hover,
.itera-main .dropdown-item:focus {
    background-color: rgba(var(--itera-primary-rgb), 0.2);
    color: #fff;
}

.itera-main .dropdown-item.disabled,
.itera-main .dropdown-item:disabled {
    color: var(--itera-text-muted);
    pointer-events: none;
}

/* Tela horas (somente leitura): mesmo vocabulário visual da avaliação (evaluation-profile-header, período, cards) */
.professional-hours-summary-num {
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.professional-hours-summary-num .evaluation-profile-header__score-max {
    font-size: 0.95rem;
    font-weight: 600;
}

.professional-hours-summary-divider {
    font-size: 1.35rem;
    font-weight: 300;
    opacity: 0.55;
    line-height: 1;
    align-self: center;
    padding-bottom: 0.2rem;
}

.professional-hours-summary-score .evaluation-profile-header__score-value.text-success {
    color: #1eaa5a !important;
}

/* Lançadas: cor padrão do texto (o bloco .text-primary herdava azil ilegível no fundo) */
.professional-hours-summary-score .professional-hours-lancadas-num {
    color: var(--itera-heading) !important;
}

.professional-hours-summary-score .professional-hours-lancadas-num .evaluation-profile-header__score-max {
    color: var(--itera-text-muted) !important;
    opacity: 1;
}

.professional-hours-month-input {
    max-width: 12rem;
    min-width: 10rem;
    background-color: var(--itera-bg-elevated);
    border-color: var(--itera-border-subtle);
    color: var(--itera-text-main);
}

.professional-hours-month-input:focus {
    border-color: rgba(var(--itera-accent-rgb), 0.55);
    box-shadow: 0 0 0 0.15rem rgba(var(--itera-accent-rgb), 0.2);
    color: var(--itera-text-main);
    background-color: var(--itera-bg-elevated);
}

.professional-hours-daily-chart-wrap {
    position: relative;
    width: 100%;
    height: 260px;
    min-height: 220px;
}

@media (max-width: 576px) {
    .professional-hours-daily-chart-wrap {
        height: 220px;
    }
}

.itera-body .professional-hours-page .professional-hours-empty-icon {
    color: var(--itera-text-muted) !important;
    opacity: 1 !important;
}

/* Botão Voltar (mesmo padrão da lista de avaliações: outline-secondary) */
.itera-body .professional-hours-page .btn-outline-secondary i.bi {
    color: inherit !important;
}

/*
 * Override dedicado do botão Exportar (dropdown-toggle).
 * Mantém verde em aberto/foco/ativo sem depender de regras globais de .btn-outline-success.
 */
.itera-body .itera-export-toggle,
.itera-body .itera-export-toggle:hover,
.itera-body .itera-export-toggle:focus,
.itera-body .itera-export-toggle:active,
.itera-body .itera-export-toggle.show,
.itera-body .itera-export-toggle.show:hover,
.itera-body .itera-export-toggle.show:focus,
.itera-body .itera-export-toggle.show:active,
.itera-body .dropdown.show > .itera-export-toggle,
.itera-body .dropdown.show > .itera-export-toggle:hover,
.itera-body .dropdown.show > .itera-export-toggle:focus,
.itera-body .dropdown.show > .itera-export-toggle:active,
.itera-body .itera-export-toggle[aria-expanded="true"],
.itera-body .itera-export-toggle[aria-expanded="true"]:hover,
.itera-body .itera-export-toggle[aria-expanded="true"]:focus,
.itera-body .itera-export-toggle[aria-expanded="true"]:active {
    --bs-btn-color: #fff;
    --bs-btn-bg: #218838;
    --bs-btn-border-color: #218838;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #218838;
    --bs-btn-hover-border-color: #218838;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #218838;
    --bs-btn-active-border-color: #218838;
    --bs-btn-focus-shadow-rgb: 40, 167, 69;
    --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(40, 167, 69, 0.45);
    background-color: #218838 !important;
    border-color: #218838 !important;
    color: #ffffff !important;
    outline: none !important;
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.45) !important;
}

.itera-body .itera-export-toggle:focus-visible,
.itera-body .itera-export-toggle.show:focus-visible,
.itera-body .dropdown.show > .itera-export-toggle:focus-visible,
.itera-body .itera-export-toggle[aria-expanded="true"]:focus-visible {
    --bs-btn-focus-shadow-rgb: 40, 167, 69;
    --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(40, 167, 69, 0.45);
    outline: none !important;
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.45) !important;
}

.professional-hours-page .professional-hours-alloc-inner .card-header {
    background-color: var(--itera-bg-elevated);
    color: var(--itera-heading);
}

.itera-body .professional-hours-page .professional-hours-alloc-inner .card-header i.bi {
    color: var(--itera-heading) !important;
}

.professional-hours-readonly .professional-hours-entry-list {
    gap: 0.45rem;
    display: flex;
    flex-direction: column;
}

.professional-hours-readonly .professional-hours-entry-list .professional-hours-entry {
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.04);
    color: var(--itera-text-main);
}

.professional-hours-readonly .professional-hours-entry-list .professional-hours-entry:hover {
    background: rgba(var(--itera-accent-rgb), 0.08);
    border-color: rgba(var(--itera-accent-rgb), 0.35);
}

.prospecto-detail-kpi-card {
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.03);
}

.prospecto-detail-kpi-value {
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1.1;
    margin-top: 0.25rem;
    color: var(--itera-heading);
}

.prospecto-detail-kpi-value-sm {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
}

.prospecto-detail-list .list-group-item {
    background: transparent;
    border-color: var(--itera-border-subtle);
    color: var(--itera-text-main);
}

/* Prospecto: duas colunas (~1280px+) — critérios mais largos; texto quebra sem estourar */
.itera-body .prospecto-detail-criterios-fatos-row .evaluation-inner-card {
    min-width: 0;
}

.itera-body .prospecto-detail-criterios-fatos-row .evaluation-inner-card .card-body {
    min-width: 0;
}

.itera-body .prospecto-detail-criterios-fatos-row .prospecto-detail-criterio-row .evaluation-profile-text {
    overflow-wrap: anywhere;
    word-break: break-word;
    max-width: 100%;
}

.itera-body .prospecto-detail-criterios-fatos-row .prospecto-criterio-summary {
    align-items: flex-start;
}

.itera-body .prospecto-detail-criterios-fatos-row .prospecto-criterio-summary__label {
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.itera-body .prospecto-detail-criterios-fatos-row .prospecto-criterio-details__body img,
.itera-body .prospecto-detail-criterios-fatos-row .prospecto-criterio-details__body table {
    max-width: 100%;
    height: auto;
}

.itera-body .prospecto-detail-criterios-fatos-row .prospecto-criterio-details__body pre {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

.itera-body .prospecto-detail-criterios-fatos-row .prospecto-detail-criterio-row .fw-semibold {
    overflow-wrap: anywhere;
    line-height: 1.35;
}

/* Nota/cor só à direita da linha; sticky evita “descer” visualmente com o bloco expandido ao rolar */
.itera-body .prospecto-detail-criterios-fatos-row .prospecto-detail-criterio-row > .prospecto-detail-criterio-badge {
    position: sticky;
    top: 0.35rem;
    align-self: flex-start;
}

/* Prospecto: critério com descrição geral recolhível (<details>) */
.prospecto-criterio-details {
    margin-bottom: 0;
}

.prospecto-criterio-summary {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    cursor: pointer;
    list-style: none;
    font-weight: 600;
    color: var(--itera-heading, inherit);
    user-select: none;
}

.prospecto-criterio-summary::-webkit-details-marker {
    display: none;
}

.prospecto-criterio-summary:focus-visible {
    outline: 2px solid var(--itera-link);
    outline-offset: 2px;
    border-radius: 0.2rem;
}

.prospecto-criterio-summary__label {
    min-width: 0;
}

.prospecto-criterio-summary__chev {
    flex-shrink: 0;
    transition: transform 0.2s ease;
    color: var(--itera-text-muted);
    font-size: 0.85em;
}

.prospecto-criterio-details[open] .prospecto-criterio-summary__chev {
    transform: rotate(180deg);
}

.prospecto-criterio-details__body {
    padding-left: 0.65rem;
    border-left: 2px solid var(--itera-border-subtle);
    margin-left: 0.2rem;
}

/* Descrição da faixa de nota: sempre visível; destaque só quando o <details> deste critério está aberto */
.prospecto-criterio-nota-descricao {
    margin-top: 0.35rem;
}

.itera-body .prospecto-detail-criterios-fatos-row .prospecto-criterio-stack:has(> .prospecto-criterio-details[open]) > .prospecto-criterio-nota-descricao .prospecto-criterio-nota-descricao__body {
    padding-left: 0.5rem;
    border-left: 3px solid var(--itera-accent-line, #6edff6);
}

.itera-body .prospecto-detail-criterios-fatos-row .prospecto-criterio-stack:has(> .prospecto-criterio-details[open]) > .prospecto-criterio-nota-descricao {
    padding: 0.65rem 0.75rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(var(--itera-accent-rgb), 0.35);
    background: rgba(var(--itera-accent-rgb), 0.07);
}

.itera-body .prospecto-detail-criterios-fatos-row .prospecto-criterio-nota-descricao__body p:last-child {
    margin-bottom: 0;
}

.prospecto-detail-positive-points {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.prospecto-detail-positive-point {
    border: 1px solid rgba(25, 135, 84, 0.3);
    background: rgba(25, 135, 84, 0.08);
    border-radius: 0.65rem;
    padding: 0.7rem 0.8rem;
}

/* Detalhe do prospecto: cores alinhadas ao tema (variáveis Itera) */
.itera-body .prospecto-detail-page-lead {
    color: var(--itera-text-muted);
}

.itera-body .prospecto-detail-kv-row {
    margin-top: 0.35rem;
    font-size: 0.95rem;
    line-height: 1.4;
    color: var(--itera-text-main);
}

.itera-body .prospecto-detail-kv-row:first-of-type {
    margin-top: 0.15rem;
}

.itera-body .prospecto-detail-kv-label {
    display: inline-block;
    margin-right: 0.45rem;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--itera-text-muted);
}

.itera-body .prospecto-detail-kv-value {
    font-weight: 600;
    color: var(--itera-text-main);
}

.itera-body .prospecto-detail-kv-value--wrap {
    display: inline;
    word-break: break-word;
}

/* Link LinkedIn do profissional */
.itera-body .professional-linkedin-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid rgba(10, 102, 194, 0.45);
    background: linear-gradient(135deg, rgba(10, 102, 194, 0.18), rgba(10, 102, 194, 0.08));
    color: #7eb8ff;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.12s ease;
}
.itera-body .professional-linkedin-link:hover,
.itera-body .professional-linkedin-link:focus-visible {
    background: linear-gradient(135deg, rgba(10, 102, 194, 0.32), rgba(10, 102, 194, 0.16));
    border-color: rgba(10, 102, 194, 0.65);
    color: #cfe4ff;
    transform: translateY(-1px);
}
.itera-body .professional-linkedin-link .bi-linkedin {
    font-size: 1.05rem;
}
.itera-body .professional-linkedin-link__external {
    font-size: 0.72rem;
    opacity: 0.85;
}
.itera-body .professional-linkedin-link--header {
    margin-top: 0.15rem;
}
.itera-body .professional-linkedin-link--prospecto {
    padding: 0.45rem 0.95rem;
    font-size: 0.9rem;
}
.itera-body .evaluation-profile-header__chip--linkedin {
    padding: 0;
    border: none;
    background: transparent;
}
.itera-body .evaluation-profile-header__chip--linkedin .professional-linkedin-link {
    margin: 0;
}

/* Link currículo (PDF) do profissional */
.itera-body .professional-curriculo-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid rgba(220, 53, 69, 0.45);
    background: linear-gradient(135deg, rgba(220, 53, 69, 0.18), rgba(220, 53, 69, 0.08));
    color: #f5a8b0;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.12s ease;
}
.itera-body .professional-curriculo-link:hover,
.itera-body .professional-curriculo-link:focus-visible {
    background: linear-gradient(135deg, rgba(220, 53, 69, 0.32), rgba(220, 53, 69, 0.16));
    border-color: rgba(220, 53, 69, 0.65);
    color: #ffd6da;
    transform: translateY(-1px);
}
.itera-body .professional-curriculo-link .bi-file-earmark-pdf-fill {
    font-size: 1.05rem;
}
.itera-body .professional-curriculo-link__external {
    font-size: 0.72rem;
    opacity: 0.85;
}
.itera-body .professional-curriculo-link--header {
    margin-top: 0;
}
.itera-body .professional-curriculo-link--prospecto {
    padding: 0.45rem 0.95rem;
    font-size: 0.9rem;
}
.itera-body .evaluation-profile-header__chip--curriculo {
    padding: 0;
    border: none;
    background: transparent;
}
.itera-body .evaluation-profile-header__chip--curriculo .professional-curriculo-link {
    margin: 0;
}

/* Bootstrap .text-muted no bloco de nota sem média: volta ao padrão do tema */
.itera-body .prospecto-detail-profile .evaluation-profile-header__score-block.text-muted {
    color: var(--itera-text-main) !important;
}

.itera-body .prospecto-detail-profile .evaluation-profile-header__score-block.text-muted .evaluation-profile-header__score-label {
    color: var(--itera-text-muted);
}

.itera-body .prospecto-detail-profile .evaluation-profile-header__score-block.text-muted .evaluation-profile-header__score-value {
    color: var(--itera-heading);
}

.itera-body .prospecto-detail-profile .evaluation-profile-header__main {
    align-items: flex-start;
}

.itera-body .prospecto-detail-profile .evaluation-profile-header__score-block.evaluation-profile-header__score-block--label-only {
    align-items: flex-start;
    text-align: left;
}

.itera-body .prospecto-detail-empty,
.itera-body .prospecto-detail-list-meta {
    color: var(--itera-text-muted) !important;
}

.itera-body .prospecto-historico-desempenho-badge {
    white-space: normal;
    max-width: 14rem;
    line-height: 1.25;
}

.itera-body .table .prospecto-historico-col-desempenho {
    min-width: 10rem;
}

.itera-modal.prospecto-eval-modal .modal-header {
    border-bottom: 1px solid var(--itera-border-subtle);
    padding-bottom: 1rem;
}

.itera-modal.prospecto-eval-modal .modal-title {
    font-size: 1.1rem;
    font-weight: 700;
}

.itera-modal.prospecto-eval-modal .modal-footer {
    padding-top: 0.75rem;
}

.prospecto-eval-modal-title-icon {
    width: 2.35rem;
    height: 2.35rem;
    font-size: 1.05rem;
    flex-shrink: 0;
    background: rgba(var(--itera-accent-rgb), 0.14);
    color: var(--itera-accent-line);
}

.prospecto-eval-modal-hero {
    border: 1px solid var(--itera-border-subtle);
    background: linear-gradient(
        145deg,
        rgba(var(--itera-accent-rgb), 0.07) 0%,
        rgba(255, 255, 255, 0.03) 55%
    );
    border-left: 4px solid var(--itera-accent-line);
}

.prospecto-eval-modal-hero--tier-blue {
    border-left-color: var(--itera-link);
    background: linear-gradient(
        145deg,
        rgba(var(--itera-primary-rgb), 0.14) 0%,
        rgba(255, 255, 255, 0.03) 60%
    );
}

.prospecto-eval-modal-hero--tier-good {
    border-left-color: rgba(25, 135, 84, 0.85);
    background: linear-gradient(
        145deg,
        rgba(25, 135, 84, 0.12) 0%,
        rgba(255, 255, 255, 0.03) 60%
    );
}

.prospecto-eval-modal-hero--tier-warn {
    border-left-color: rgba(255, 193, 7, 0.95);
    background: linear-gradient(
        145deg,
        rgba(255, 193, 7, 0.12) 0%,
        rgba(255, 255, 255, 0.03) 60%
    );
}

.prospecto-eval-modal-hero--tier-low {
    border-left-color: rgba(220, 53, 69, 0.9);
    background: linear-gradient(
        145deg,
        rgba(220, 53, 69, 0.12) 0%,
        rgba(255, 255, 255, 0.03) 60%
    );
}

.prospecto-eval-modal-hero__label {
    letter-spacing: 0.06em;
    font-size: 0.68rem;
    color: var(--itera-text-muted);
}

.prospecto-eval-modal-hero__value {
    font-size: 2.35rem;
    font-weight: 800;
    line-height: 1;
    color: var(--itera-heading);
}

.prospecto-eval-modal-hero__denom {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--itera-text-muted);
}

.prospecto-eval-modal-hero__badge {
    font-size: 0.78rem;
    font-weight: 600;
}

.prospecto-eval-modal-meta--in-hero {
    border-top: 1px solid var(--itera-border-subtle);
}

.prospecto-eval-modal-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.38rem 0.72rem;
    border-radius: 999px;
    font-size: 0.78rem;
    line-height: 1.25;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--itera-border-subtle);
    color: var(--itera-text-main);
}

.prospecto-eval-modal-chip .bi {
    opacity: 0.85;
    color: var(--itera-accent-line);
}

.prospecto-eval-modal-panel {
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.65rem;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.02);
}

.prospecto-eval-modal-panel--fatos {
    border-left: 3px solid rgba(var(--itera-accent-rgb), 0.55);
}

.prospecto-eval-modal-panel--positivos {
    border-left: 3px solid rgba(25, 135, 84, 0.55);
}

.prospecto-eval-modal-panel--evolucao {
    border-left: 3px solid rgba(255, 193, 7, 0.65);
}

.prospecto-eval-modal-panel--dir {
    border-left: 3px solid rgba(153, 102, 255, 0.45);
}

.prospecto-eval-modal-panel__head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 1rem;
    font-weight: 600;
    font-size: 0.88rem;
    color: var(--itera-heading);
    background: rgba(255, 255, 255, 0.04);
    border-bottom: 1px solid var(--itera-border-subtle);
}

.prospecto-eval-modal-panel__icon {
    opacity: 0.95;
    color: var(--itera-accent-line);
}

.prospecto-eval-modal-panel__body {
    padding: 1rem;
}

.prospecto-eval-modal-progress {
    height: 8px;
    background: rgba(255, 255, 255, 0.07);
}

.prospecto-eval-modal-criterion__name {
    color: var(--itera-text-main);
}

.prospecto-eval-modal-criterion__badge {
    font-variant-numeric: tabular-nums;
    background: rgba(var(--itera-accent-rgb), 0.12) !important;
    color: var(--itera-heading) !important;
    border: 1px solid rgba(var(--itera-accent-rgb), 0.35);
    font-weight: 600;
}

.prospecto-eval-modal-criterion-sep {
    border-color: var(--itera-border-subtle) !important;
}

.prospecto-eval-modal-fatos-list {
    margin: 0;
}

.prospecto-eval-modal-fato-item {
    display: flex;
    gap: 0.35rem;
    padding: 0.4rem 0;
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--itera-text-main);
}

.prospecto-eval-modal-fato-bullet {
    flex-shrink: 0;
    color: var(--itera-accent-line);
    font-size: 1.35rem;
    line-height: 1;
    margin-top: 0.12rem;
    opacity: 0.9;
}

.prospecto-eval-modal-empty {
    font-size: 0.875rem;
    color: var(--itera-text-muted);
}

.prospecto-eval-modal-markdown :last-child {
    margin-bottom: 0;
}

/* Parecer do prospecto: leitura visual sem títulos grandes e cor padrão do tema */
.itera-body .prospecto-parecer-markdown {
    color: var(--itera-text-main);
    line-height: 1.6;
}

.itera-body .prospecto-parecer-markdown * {
    color: inherit;
}

.itera-body .prospecto-parecer-markdown h1,
.itera-body .prospecto-parecer-markdown h2,
.itera-body .prospecto-parecer-markdown h3,
.itera-body .prospecto-parecer-markdown h4,
.itera-body .prospecto-parecer-markdown h5,
.itera-body .prospecto-parecer-markdown h6 {
    font-size: 1rem;
    line-height: 1.4;
    font-weight: 700;
    margin: 1rem 0 0.45rem;
    color: var(--itera-heading);
}

.itera-body .prospecto-parecer-markdown h1:first-child,
.itera-body .prospecto-parecer-markdown h2:first-child,
.itera-body .prospecto-parecer-markdown h3:first-child {
    margin-top: 0;
}

.itera-body .prospecto-parecer-markdown p,
.itera-body .prospecto-parecer-markdown ul,
.itera-body .prospecto-parecer-markdown ol {
    margin-bottom: 0.65rem;
}

.itera-body .prospecto-parecer-markdown ul,
.itera-body .prospecto-parecer-markdown ol {
    padding-left: 1.1rem;
}

.itera-body .prospecto-parecer-markdown li {
    margin-bottom: 0.2rem;
}

.itera-body .prospecto-parecer-markdown blockquote {
    margin: 0.8rem 0;
    padding: 0.45rem 0.75rem;
    border-left: 3px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.03);
    color: var(--itera-text-main);
}

.itera-body .prospecto-parecer-markdown :last-child {
    margin-bottom: 0;
}

.prospecto-eval-modal-dir-list {
    border: 1px solid var(--itera-border-subtle);
}

.itera-modal.prospecto-eval-modal .prospecto-eval-modal-dir-list .list-group-item {
    min-width: 0;
}

.itera-modal.prospecto-eval-modal .prospecto-eval-modal-dir-row {
    min-width: 0;
}

.itera-modal.prospecto-eval-modal .prospecto-eval-modal-dir-icon {
    font-size: 1rem;
    line-height: 1;
    margin-top: 0.2rem;
}

.itera-modal.prospecto-eval-modal .prospecto-eval-modal-dir-row > span {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* Prospecto: indicadores apenas por cor (lista sem notas numéricas) */
.itera-body .prospecto-nota-indicador {
    display: inline-block;
    flex-shrink: 0;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
}

.itera-body .prospecto-nota-indicador--ranking {
    width: 2rem;
    height: 2rem;
}

.itera-body .prospecto-nota-indicador--chip {
    width: 0.72rem;
    height: 0.72rem;
}

.itera-body .prospecto-nota-indicador--table {
    width: 1.85rem;
    height: 1.85rem;
}

.itera-body .prospecto-nota-indicador--criterion {
    width: 1.35rem;
    height: 1.35rem;
}

.itera-body .prospecto-nota-indicador--modal-criterion {
    width: 1.15rem;
    height: 1.15rem;
}

/* Faixa de cor à esquerda: preenche toda a altura da linha (evita “barra flutuando” com vertical-align middle) */
.itera-body .prospecto-ranking-table tbody td.prospecto-ranking-cell-bar {
    position: relative;
    width: 8px;
    min-width: 8px;
    max-width: 8px;
    padding: 0 !important;
    vertical-align: top;
}

.itera-body .prospecto-ranking-table tbody td.prospecto-ranking-cell-bar .prospecto-ranking-bar {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 8px;
    border-radius: 0;
}

/* Prospecto: linha clicável no ranking */
.itera-body .prospecto-ranking-table tbody tr.prospecto-ranking-row {
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.itera-body .prospecto-ranking-table tbody tr.prospecto-ranking-row:hover {
    background-color: rgba(var(--itera-accent-rgb), 0.12) !important;
}

.itera-body .prospecto-ranking-table tbody tr.prospecto-ranking-row:focus-visible {
    outline: 2px solid rgba(var(--itera-accent-rgb), 0.85);
    outline-offset: -2px;
    background-color: rgba(var(--itera-accent-rgb), 0.1) !important;
}

.itera-body .prospecto-ranking-cell-avatar {
    width: 1%;
    vertical-align: middle !important;
    white-space: nowrap;
}

.itera-body .prospecto-ranking-avatar-wrap {
    width: 56px;
    height: 56px;
}

.itera-body .prospecto-ranking-avatar-wrap img.itera-avatar-list {
    width: 56px;
    height: 56px;
    object-fit: cover;
    display: block;
}

.itera-body .prospecto-ranking-avatar-fallback {
    width: 56px;
    height: 56px;
    min-width: 56px;
    font-size: 0.88rem;
}

.itera-body .prospecto-ranking-cell-info {
    min-width: 0;
    max-width: 100%;
}

.itera-body .prospecto-ranking-cell-info__text {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.itera-body .prospecto-ranking-row__hint {
    color: var(--itera-text-main);
    opacity: 0;
    margin-top: 0.1rem;
    line-height: 1.25;
    transition: opacity 0.15s ease, color 0.15s ease;
    pointer-events: none;
}

.itera-body .prospecto-ranking-table tbody tr.prospecto-ranking-row:hover .prospecto-ranking-row__hint,
.itera-body .prospecto-ranking-table tbody tr.prospecto-ranking-row:focus-visible .prospecto-ranking-row__hint {
    opacity: 1;
    color: #6edff6;
}

.itera-body .prospecto-ranking-cell-score {
    width: 1%;
    white-space: normal;
    vertical-align: middle !important;
    padding-right: 2rem !important;
}

.itera-body .prospecto-ranking-desempenho-badge {
    white-space: nowrap;
    max-width: none;
    line-height: 1.2;
    font-size: 0.8rem;
    display: inline-block;
    vertical-align: middle;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

.itera-body .prospecto-ranking-row__chevron {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    color: rgba(var(--itera-accent-rgb), 0.35);
    font-size: 1.25rem;
    line-height: 1;
    transition: color 0.15s ease, transform 0.15s ease, opacity 0.15s ease;
    pointer-events: none;
}

.itera-body .prospecto-ranking-table tbody tr.prospecto-ranking-row:hover .prospecto-ranking-row__chevron {
    color: #6edff6;
    opacity: 1;
    transform: translateY(-50%) translateX(2px);
}

@media (hover: none) {
    .itera-body .prospecto-ranking-row__hint {
        opacity: 0.55;
    }

    .itera-body .prospecto-ranking-row__chevron {
        color: rgba(var(--itera-accent-rgb), 0.55);
    }
}

.itera-chat-ia-fab {
    position: fixed;
    right: 1.4rem;
    bottom: 1.4rem;
    width: 3.4rem;
    height: 3.4rem;
    border-radius: 999px;
    border: 1px solid var(--itera-border-subtle);
    background: linear-gradient(145deg, var(--itera-primary), var(--itera-primary-dark));
    color: #fff;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
    z-index: 1080;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.itera-chat-ia-fab:hover,
.itera-chat-ia-fab:focus-visible {
    color: #fff;
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 16px 30px rgba(0, 0, 0, 0.42);
    filter: brightness(1.08);
}

.itera-chat-ia-fab.is-hidden {
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
}

.itera-chat-ia-modal .modal-body {
    display: flex;
    flex-direction: column;
    min-height: 420px;
    gap: 0.35rem;
    padding: 1rem 1rem 0.9rem;
    background:
        radial-gradient(120% 120% at 0% 0%, rgba(var(--itera-accent-rgb), 0.06), transparent 45%),
        radial-gradient(120% 120% at 100% 100%, rgba(var(--itera-primary-rgb), 0.08), transparent 50%);
}

.itera-chat-ia-dialog {
    width: 42vw !important;
    max-width: 42vw !important;
    min-width: 520px;
}

.itera-chat-ia-modal {
    border: 1px solid rgba(var(--itera-accent-rgb), 0.24);
    border-radius: 1rem;
    overflow: hidden;
    box-shadow:
        0 18px 45px rgba(0, 0, 0, 0.45),
        0 0 0 1px rgba(var(--itera-accent-rgb), 0.08) inset;
}

.itera-chat-ia-modal .modal-header {
    border-bottom: 1px solid rgba(var(--itera-accent-rgb), 0.2);
    background: linear-gradient(120deg, rgba(30, 10, 22, 0.95), rgba(50, 16, 38, 0.92));
    padding: 0.85rem 1rem;
}

.itera-chat-ia-modal .modal-title {
    letter-spacing: 0.15px;
    font-weight: 650;
}

.itera-chat-ia-modal .modal-footer {
    border-top: 1px solid var(--itera-border-subtle);
    background: rgba(12, 6, 10, 0.6);
    padding: 0.7rem 1rem;
}

@media (max-width: 1200px) {
    .itera-chat-ia-dialog {
        width: 65vw !important;
        max-width: 65vw !important;
    }
}

@media (max-width: 900px) {
    .itera-chat-ia-dialog {
        width: 90vw !important;
        max-width: 90vw !important;
        min-width: 0;
    }
}

.itera-chat-ia-contextos {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.itera-chat-ia-contextos-toggle {
    width: 100%;
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.8rem;
    background: rgba(255, 255, 255, 0.03);
    color: var(--itera-text-main);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.62rem 0.78rem;
    font-weight: 600;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.16);
}

.itera-chat-ia-contextos-toggle:hover,
.itera-chat-ia-contextos-toggle:focus-visible {
    border-color: rgba(var(--itera-accent-rgb), 0.6);
    background: rgba(var(--itera-accent-rgb), 0.1);
}

.itera-chat-ia-contextos-toggle[aria-expanded="true"] .itera-chat-ia-contextos-toggle__icone {
    transform: rotate(180deg);
}

.itera-chat-ia-contextos-toggle__icone {
    transition: transform 0.15s ease;
}

.itera-chat-ia-contextos-lista {
    display: grid;
    gap: 0.45rem;
}

.itera-chat-ia-contexto-btn {
    text-align: left;
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02));
    border: 1px solid var(--itera-border-subtle);
    color: var(--itera-text-main);
    border-radius: 0.75rem;
    padding: 0.62rem 0.78rem;
    transition: transform 0.14s ease, border-color 0.14s ease, background 0.14s ease, box-shadow 0.14s ease;
}

.itera-chat-ia-contexto-btn:hover,
.itera-chat-ia-contexto-btn:focus-visible,
.itera-chat-ia-contexto-btn.is-active {
    border-color: rgba(var(--itera-accent-rgb), 0.6);
    background: rgba(var(--itera-accent-rgb), 0.12);
    box-shadow: 0 8px 20px rgba(19, 45, 128, 0.32);
    transform: translateY(-1px);
}

.itera-chat-ia-contexto-btn__titulo {
    display: block;
    font-weight: 600;
}

.itera-chat-ia-contexto-btn__subtitulo {
    display: block;
    margin-top: 0.1rem;
    font-size: 0.76rem;
    color: var(--itera-text-muted);
}

.itera-chat-ia-profissional-busca {
    position: relative;
}

.itera-chat-ia-profissional-sugestoes {
    position: absolute;
    z-index: 20;
    left: 0;
    right: 0;
    top: calc(100% + 0.25rem);
    max-height: 220px;
    overflow: auto;
    margin: 0;
    padding: 0.25rem;
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.55rem;
    background: var(--itera-bg-elevated, #1a2332);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

.itera-chat-ia-profissional-sugestao {
    display: block;
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
    color: var(--itera-text-main);
    padding: 0.45rem 0.55rem;
    border-radius: 0.4rem;
    font-size: 0.88rem;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.itera-chat-ia-profissional-sugestao:hover,
.itera-chat-ia-profissional-sugestao:focus-visible {
    background: rgba(var(--itera-accent-rgb), 0.12);
    color: var(--itera-text-main);
}

.itera-chat-ia-profissional-sugestoes li.text-muted .itera-chat-ia-profissional-sugestao {
    cursor: default;
    color: var(--itera-text-muted);
}

.itera-chat-ia-profissional-selecionado-grupo .form-control[readonly] {
    color: var(--itera-text-main);
    background-color: var(--itera-bg-subtle, rgba(255, 255, 255, 0.06));
    cursor: default;
}

.itera-chat-ia-profissional-limpar {
    flex-shrink: 0;
}

.itera-chat-ia-mensagens {
    flex: 1;
    min-width: 0;
    overflow: auto;
    overflow-x: hidden;
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.9rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.028), rgba(255, 255, 255, 0.015));
    padding: 0.95rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.itera-chat-ia-vazio {
    color: var(--itera-text-muted);
    text-align: center;
    padding: 1.5rem 1rem;
}

.itera-chat-ia-msg-row {
    display: flex;
    align-items: flex-end;
    gap: 0.55rem;
}

.itera-chat-ia-msg-row--user {
    justify-content: flex-end;
}

.itera-chat-ia-msg-row--user .itera-chat-ia-avatar {
    order: 2;
}

.itera-chat-ia-avatar {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    flex: 0 0 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    border: 1px solid var(--itera-border-subtle);
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.2);
    background: rgba(255, 255, 255, 0.08);
}

.itera-chat-ia-avatar--assistant {
    background: linear-gradient(145deg, rgba(35, 71, 189, 0.95), rgba(17, 35, 111, 0.95));
}

.itera-chat-ia-avatar--user {
    background: linear-gradient(145deg, rgba(var(--itera-accent-rgb), 0.35), rgba(29, 80, 206, 0.3));
}

.itera-chat-ia-avatar__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.itera-chat-ia-avatar__fallback {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.2px;
}

.itera-chat-ia-avatar__fallback.is-visible {
    display: inline-flex;
}

.itera-chat-ia-msg {
    max-width: 90%;
    min-width: 0;
    box-sizing: border-box;
    overflow-wrap: anywhere;
    word-break: break-word;
    border-radius: 0.78rem;
    padding: 0.62rem 0.8rem;
    border: 1px solid var(--itera-border-subtle);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.14);
}

.itera-chat-ia-msg--user {
    background: linear-gradient(155deg, rgba(var(--itera-primary-rgb), 0.46), rgba(23, 60, 190, 0.34));
    border-color: rgba(var(--itera-accent-rgb), 0.28);
}

.itera-chat-ia-msg--assistant {
    background: linear-gradient(165deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.035));
}

.itera-chat-ia-msg--digitando {
    opacity: 0.95;
}

.itera-chat-ia-typing {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 1.1rem;
}

.itera-chat-ia-typing__dot {
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 999px;
    background: rgba(var(--itera-accent-rgb), 0.85);
    animation: iteraChatIaTyping 1.1s infinite ease-in-out;
}

.itera-chat-ia-typing__dot:nth-child(2) {
    animation-delay: 0.15s;
}

.itera-chat-ia-typing__dot:nth-child(3) {
    animation-delay: 0.3s;
}

@keyframes iteraChatIaTyping {
    0%, 100% { transform: translateY(0); opacity: 0.45; }
    50% { transform: translateY(-3px); opacity: 1; }
}

.itera-chat-ia-msg__autor {
    font-size: 0.73rem;
    font-weight: 600;
    color: var(--itera-text-muted);
    margin-bottom: 0.2rem;
}

.itera-chat-ia-msg__texto {
    display: block;
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
    color: var(--itera-text-main);
}

.itera-chat-ia-msg__texto--plain {
    white-space: pre-wrap;
}

.itera-chat-ia-msg__texto--md {
    white-space: normal;
    font-size: 0.875rem;
    line-height: 1.5;
}

.itera-chat-ia-msg__texto--md > :first-child {
    margin-top: 0;
}

.itera-chat-ia-msg__texto--md > :last-child {
    margin-bottom: 0;
}

.itera-chat-ia-msg__texto * {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.itera-chat-ia-msg__texto br {
    line-height: 1.35;
}

/* Markdown da IA: títulos compactos (sem h1/h2 gigantes do Bootstrap) */
.itera-chat-ia-msg__texto--md h1,
.itera-chat-ia-msg__texto--md h2,
.itera-chat-ia-msg__texto--md h3,
.itera-chat-ia-msg__texto--md h4,
.itera-chat-ia-msg__texto--md h5,
.itera-chat-ia-msg__texto--md h6,
.itera-chat-ia-md-h1,
.itera-chat-ia-md-h2,
.itera-chat-ia-md-h3 {
    color: var(--itera-heading);
    font-size: 0.9rem;
    line-height: 1.4;
    font-weight: 700;
    margin: 0.55rem 0 0.3rem;
}

.itera-chat-ia-msg__texto--md h1:first-child,
.itera-chat-ia-msg__texto--md h2:first-child,
.itera-chat-ia-msg__texto--md h3:first-child,
.itera-chat-ia-msg__texto--md h4:first-child,
.itera-chat-ia-msg__texto--md h5:first-child,
.itera-chat-ia-msg__texto--md h6:first-child {
    margin-top: 0;
}

.itera-chat-ia-md-inline {
    background: rgba(255, 255, 255, 0.08);
    border-radius: 0.3rem;
    padding: 0.05rem 0.3rem;
}

.itera-chat-ia-md-pre {
    background: rgba(0, 0, 0, 0.28);
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.5rem;
    padding: 0.55rem 0.7rem;
    margin: 0.35rem 0;
    font-size: 0.82rem;
    line-height: 1.45;
    max-width: 100%;
    box-sizing: border-box;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.itera-chat-ia-md-pre code {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.itera-chat-ia-md-list {
    margin: 0.25rem 0 0.35rem 1.25rem;
    padding: 0;
}

.itera-chat-ia-md-list--ordered {
    list-style-type: decimal;
}

.itera-chat-ia-md-list li {
    margin: 0.15rem 0;
}

.itera-chat-ia-md-quote {
    margin: 0.35rem 0;
    padding: 0.35rem 0.65rem;
    border-left: 3px solid rgba(var(--itera-accent-rgb), 0.55);
    background: rgba(255, 255, 255, 0.04);
    border-radius: 0 0.35rem 0.35rem 0;
    color: var(--itera-text-muted);
}

.itera-chat-ia-md-link {
    color: rgba(var(--itera-accent-rgb), 0.95);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.itera-chat-ia-msg__texto--md p,
.itera-chat-ia-msg__texto p {
    margin: 0.2rem 0 0.4rem;
}

.itera-chat-ia-msg__texto--md ul,
.itera-chat-ia-msg__texto--md ol {
    margin: 0.25rem 0 0.45rem 1.25rem;
    padding: 0;
}

.itera-chat-ia-msg__texto--md table {
    width: 100%;
    border-collapse: collapse;
    margin: 0.3rem 0 0.5rem;
    min-width: 280px;
}

.itera-chat-ia-msg__texto--md th,
.itera-chat-ia-msg__texto--md td {
    padding: 0.42rem 0.52rem;
    border: 1px solid var(--itera-border-subtle);
    text-align: left;
    vertical-align: top;
    font-size: 0.84rem;
}

.itera-chat-ia-msg__texto--md thead th {
    background: rgba(var(--itera-accent-rgb), 0.08);
    color: var(--itera-heading);
    font-weight: 650;
}

.itera-chat-ia-msg__texto--md blockquote {
    margin: 0.35rem 0;
    padding: 0.35rem 0.65rem;
    border-left: 3px solid rgba(var(--itera-accent-rgb), 0.55);
    background: rgba(255, 255, 255, 0.04);
    color: var(--itera-text-muted);
}

.itera-chat-ia-msg__texto--md a {
    color: rgba(var(--itera-accent-rgb), 0.95);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.itera-chat-ia-msg__texto--md pre {
    background: rgba(0, 0, 0, 0.28);
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.5rem;
    padding: 0.55rem 0.7rem;
    margin: 0.35rem 0;
    font-size: 0.82rem;
    line-height: 1.45;
    white-space: pre-wrap;
    overflow-x: auto;
}

.itera-chat-ia-msg__texto--md code {
    font-size: 0.82rem;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 0.3rem;
    padding: 0.05rem 0.3rem;
}

.itera-chat-ia-md-table-wrap {
    width: 100%;
    overflow-x: auto;
    margin: 0.3rem 0 0.5rem;
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.55rem;
    background: rgba(255, 255, 255, 0.02);
}

.itera-chat-ia-md-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 340px;
}

.itera-chat-ia-md-table th,
.itera-chat-ia-md-table td {
    padding: 0.42rem 0.52rem;
    border-bottom: 1px solid var(--itera-border-subtle);
    text-align: left;
    vertical-align: top;
    font-size: 0.84rem;
    color: var(--itera-text-main);
    white-space: normal;
}

.itera-chat-ia-md-table thead th {
    background: rgba(var(--itera-accent-rgb), 0.08);
    color: var(--itera-heading);
    font-weight: 650;
}

.itera-chat-ia-md-table tbody tr:last-child td {
    border-bottom: 0;
}

.itera-chat-ia-admin-box {
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.7rem;
    background: rgba(255, 255, 255, 0.02);
    padding: 0.55rem 0.7rem;
}

.itera-chat-ia-admin-box > summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--itera-text-main);
}

.itera-chat-ia-admin-box__meta {
    margin-top: 0.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem;
    color: var(--itera-text-muted);
    font-size: 0.82rem;
}

.itera-chat-ia-admin-box__pre {
    max-height: 200px;
    overflow: auto;
    margin: 0;
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.55rem;
    background: rgba(0, 0, 0, 0.22);
    color: var(--itera-text-main);
    padding: 0.55rem 0.65rem;
    font-size: 0.76rem;
    line-height: 1.4;
}

.itera-chat-ia-aviso-validacao {
    color: var(--itera-text-muted);
    font-size: 0.78rem;
    line-height: 1.35;
}

.itera-chat-ia-form-row {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.5rem;
}

#itera-chat-ia-form .form-control {
    flex: 1 1 12rem;
    min-width: 0;
    border-radius: 0.75rem;
    border-color: rgba(var(--itera-accent-rgb), 0.22);
    background: rgba(255, 255, 255, 0.04);
    min-height: 2.55rem;
}

#itera-chat-ia-form .form-control:focus {
    border-color: rgba(var(--itera-accent-rgb), 0.65);
    box-shadow: 0 0 0 0.18rem rgba(var(--itera-accent-rgb), 0.2);
    background: rgba(255, 255, 255, 0.06);
}

#itera-chat-ia-enviar {
    flex-shrink: 0;
    align-self: stretch;
    border-radius: 0.75rem;
    padding: 0 1rem;
    font-weight: 600;
    box-shadow: 0 10px 22px rgba(19, 45, 128, 0.3);
}

/* —— Turma: listagem em cards —— */
.turma-lista-resumo {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.turma-lista-resumo__pill {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--itera-heading);
    background: rgba(var(--itera-primary-rgb), 0.14);
    border: 1px solid rgba(var(--itera-primary-rgb), 0.28);
}
.turma-lista-resumo__pill--muted {
    color: var(--itera-text-muted);
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--itera-border-subtle);
}
.turma-lista-catalogo {
    display: grid;
    gap: 1.75rem;
}
.turma-lista-grupo__cabecalho {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--itera-border-subtle);
}
.turma-lista-grupo__icone {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #f9a8d4;
    background: rgba(var(--itera-primary-rgb), 0.16);
    border: 1px solid rgba(var(--itera-primary-rgb), 0.28);
    font-size: 1.1rem;
}
.turma-lista-grupo__titulo {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 650;
    color: var(--itera-heading);
    line-height: 1.25;
}
.turma-lista-grupo__meta {
    font-size: 0.82rem;
    color: var(--itera-text-muted);
}
.turma-lista-grupo__contagem {
    margin-left: auto;
    flex-shrink: 0;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--itera-text-muted);
    padding: 0.28rem 0.6rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--itera-border-subtle);
}
.turma-lista-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 1rem;
}
.turma-lista-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid var(--itera-border-subtle);
    border-radius: var(--itera-card-radius);
    background: var(--itera-bg-elevated);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    border-left-width: 3px;
    border-left-style: solid;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.turma-lista-card--good {
    border-left-color: #63d89e;
}
.turma-lista-card--warn {
    border-left-color: #ffd251;
}
.turma-lista-card--muted {
    border-left-color: #94a3b8;
}
.turma-lista-card:hover {
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.16);
    border-color: rgba(var(--itera-primary-rgb), 0.28);
}
.turma-lista-card__cabecalho {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 1rem 1.15rem 0.9rem;
    border-bottom: 1px solid var(--itera-border-subtle);
}
.turma-lista-card__identidade {
    flex: 1 1 auto;
    min-width: 0;
}
.turma-lista-card__cabecalho-lado {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.45rem;
    flex-shrink: 0;
}
.turma-lista-card__titulo {
    margin: 0 0 0.3rem;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
}
.turma-lista-card__titulo-link {
    color: var(--itera-heading);
    text-decoration: none;
}
.turma-lista-card__titulo-link:hover {
    color: #f9a8d4;
}
.turma-lista-card__periodo {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    color: var(--itera-text-muted);
}
.turma-lista-card__periodo .bi {
    color: #f472b6;
    flex-shrink: 0;
}
.turma-lista-card__acoes {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}
.turma-lista-card__corpo {
    flex: 1 1 auto;
    padding: 0.9rem 1.15rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.turma-lista-card__stats {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.6rem;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.02);
}
.turma-lista-card__stats li {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    padding: 0.6rem 0.35rem;
    text-align: center;
}
.turma-lista-card__stats li + li {
    border-left: 1px solid var(--itera-border-subtle);
}
.turma-lista-card__stats-valor {
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1;
    color: var(--itera-heading);
    font-variant-numeric: tabular-nums;
}
.turma-lista-card__stats-rotulo {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--itera-text-muted);
    white-space: nowrap;
}
.turma-lista-card__stats-rotulo .bi {
    font-size: 0.72rem;
    opacity: 0.85;
}
.turma-lista-card__financeiro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem 1rem;
    margin: 0;
}
.turma-lista-card__financeiro-item {
    min-width: 0;
}
.turma-lista-card__financeiro dt {
    margin: 0 0 0.15rem;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--itera-text-muted);
}
.turma-lista-card__financeiro dd {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    color: var(--itera-heading);
}
.turma-lista-card__rodape {
    padding: 0.75rem 1.15rem 1rem;
    border-top: 1px solid var(--itera-border-subtle);
    background: rgba(0, 0, 0, 0.06);
}
.turma-lista-vazio__icone {
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto 0.85rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: var(--itera-text-muted);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--itera-border-subtle);
}
@media (max-width: 575.98px) {
    .turma-lista-grupo__contagem {
        display: none;
    }
    .turma-lista-card__cabecalho {
        flex-direction: column;
        align-items: stretch;
    }
    .turma-lista-card__cabecalho-lado {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        width: 100%;
    }
    .turma-lista-card__stats-rotulo {
        font-size: 0.65rem;
    }
}

/* —— Turma: página de detalhe (hub) —— */
.turma-detalhe-page {
    width: 100%;
    max-width: 100%;
}
.turma-detalhe-hero,
.turma-detalhe-hub {
    width: 100%;
}
.turma-detalhe-hero__inner {
    padding: 1.35rem 1.5rem 1.5rem;
}
@media (min-width: 992px) {
    .turma-detalhe-hero__inner {
        padding: 1.5rem 1.75rem 1.65rem;
    }
}
.turma-detalhe-hero__icon {
    width: 3.5rem;
    height: 3.5rem;
    font-size: 1.55rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
.turma-detalhe-hero__lead {
    font-size: 0.95rem;
    color: var(--itera-text-muted);
    line-height: 1.5;
}
.turma-detalhe-stat-card {
    padding: 1rem 1.15rem;
    border: 1px solid var(--itera-border-subtle);
    border-radius: var(--itera-card-radius);
    background: rgba(255, 255, 255, 0.03);
    min-height: 100%;
}
.turma-detalhe-stat-card__label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--itera-text-muted);
    margin-bottom: 0.45rem;
}
.turma-detalhe-stat-card__value {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--itera-heading);
    line-height: 1.35;
    word-break: break-word;
}
@media (min-width: 992px) {
    .turma-detalhe-stat-card__value {
        font-size: 1.15rem;
    }
}
.turma-detalhe-chips {
    border-top: 1px solid var(--itera-border-subtle);
}
.turma-detalhe-chips .evaluation-profile-header__chip {
    padding: 0.4rem 0.75rem;
    font-size: 0.85rem;
}
.turma-detalhe-hub-shell {
    position: relative;
    width: 100%;
    margin-top: 0.25rem;
}
.turma-detalhe-tabs-float {
    position: relative;
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding: 0 0.15rem;
    margin-bottom: -1.15rem;
}
.turma-detalhe-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
    margin: 0;
    padding: 0;
    border: none;
    list-style: none;
}
.turma-detalhe-tabs .nav-item {
    margin: 0;
}
.turma-detalhe-tabs .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 1.25rem;
    border: 1px solid #3d2f38;
    border-radius: 999px;
    background-color: #2a1f26;
    color: var(--itera-text-muted);
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.2;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease,
        background-color 0.18s ease;
}
.turma-detalhe-tabs .nav-link:hover {
    color: var(--itera-heading);
    background-color: #362a34;
    border-color: #4a3a45;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.24);
}
.turma-detalhe-tabs .nav-link.active {
    color: #ffffff;
    background-color: var(--itera-primary);
    border-color: var(--itera-primary);
    transform: translateY(-3px);
    box-shadow: 0 10px 24px rgba(var(--itera-primary-rgb), 0.45);
}
.turma-detalhe-tabs .nav-link.active:hover {
    color: #ffffff;
    background-color: var(--itera-primary-hover);
    border-color: var(--itera-primary-hover);
}
.turma-detalhe-tab-badge {
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.2em 0.55em;
}
.turma-detalhe-tabs .nav-link.active .turma-detalhe-tab-badge {
    background-color: #ffffff;
    color: var(--itera-primary);
}
.turma-detalhe-tabs .nav-link:not(.active) .turma-detalhe-tab-badge {
    background-color: #3d2f38;
    color: var(--itera-heading);
}
.turma-detalhe-hub {
    position: relative;
    z-index: 1;
    border: 1px solid var(--itera-border-subtle);
    border-radius: var(--itera-card-radius);
    background: var(--itera-bg-elevated);
    overflow: visible;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
    padding-top: 1.65rem;
}
.turma-detalhe-hub__panels,
.turma-detalhe-hub__panels > .tab-pane,
.turma-aba-panel {
    overflow: visible;
}
.turma-detalhe-hub__panels > .tab-pane {
    padding: 0;
}
.turma-aba-vinculo-card,
.turma-aba-vinculo-card .card-body {
    overflow: visible;
}
@media (max-width: 575.98px) {
    .turma-detalhe-tabs-float {
        margin-bottom: -0.85rem;
    }
    .turma-detalhe-tabs .nav-link {
        padding: 0.6rem 1rem;
        font-size: 0.85rem;
    }
    .turma-detalhe-hub {
        padding-top: 1.35rem;
    }
}
.turma-aba-panel {
    padding: 1.35rem 1.25rem 1.6rem;
}
@media (min-width: 768px) {
    .turma-aba-panel {
        padding: 1.5rem 1.75rem 1.85rem;
    }
}
.turma-aba-intro {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1.25rem;
    margin-bottom: 1.35rem;
}
.turma-aba-intro__title {
    font-size: 1.2rem;
    font-weight: 600;
    margin: 0 0 0.35rem;
    color: var(--itera-heading);
}
.turma-aba-intro__text {
    margin: 0;
    color: var(--itera-text-muted);
    font-size: 0.95rem;
    line-height: 1.5;
}
.turma-aba-intro > div:first-child {
    flex: 1 1 12rem;
    min-width: 0;
}
.turma-aba-intro__acoes {
    display: flex;
    align-items: stretch;
    gap: 0.65rem;
    flex-shrink: 0;
    flex-wrap: wrap;
}
.turma-aba-intro__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.85rem 1.15rem;
    border-radius: var(--itera-card-radius);
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    min-height: 4.15rem;
    box-sizing: border-box;
}
.turma-aba-intro__kpi {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.85rem 1.15rem;
    min-width: 7rem;
    min-height: 4.15rem;
    box-sizing: border-box;
    text-align: right;
}
.turma-aba-vinculo-card .card-body {
    padding: 1rem 1.15rem;
}
.turma-vinculo-professor-disciplina-picker {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    align-items: end;
}
@media (min-width: 768px) {
    .turma-vinculo-professor-disciplina-picker {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
        column-gap: 1rem;
        row-gap: 0;
    }
}
.turma-vinculo-professor-disciplina-picker__campo {
    min-width: 0;
}
.turma-vinculo-professor-disciplina-picker__acao {
    width: 100%;
}
@media (min-width: 768px) {
    .turma-vinculo-professor-disciplina-picker__acao {
        width: auto;
        min-width: 10.5rem;
        padding-bottom: 0.1rem;
    }
    .turma-vinculo-professor-disciplina-picker__acao .btn {
        white-space: nowrap;
    }
}
.turma-vinculo-professor-disciplina-picker .form-control[readonly] {
    cursor: not-allowed;
    opacity: 0.72;
}
.professor-disciplina-picker__campo {
    min-width: 0;
}
.professor-disciplina-picker .allocation-role-autocomplete__menu {
    z-index: 1200;
}

/* Cards de disciplinas vinculadas / pendentes */
.disciplina-vinculo-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr));
    gap: 0.75rem;
}
.disciplina-vinculo-card {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.85rem 0.9rem;
    border-radius: var(--itera-card-radius, 0.75rem);
    border: 1px solid var(--itera-border-subtle);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
    min-width: 0;
}
.disciplina-vinculo-card--pendente {
    border-color: rgba(var(--itera-accent-rgb, 236, 72, 153), 0.45);
    background: linear-gradient(145deg, rgba(var(--itera-accent-rgb, 236, 72, 153), 0.1), rgba(255, 255, 255, 0.02));
}
.disciplina-vinculo-card--vinculada {
    border-color: rgba(25, 135, 84, 0.35);
}
.disciplina-vinculo-card__icon {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.65rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: var(--itera-heading);
    background: rgba(255, 255, 255, 0.06);
}
.disciplina-vinculo-card--pendente .disciplina-vinculo-card__icon {
    color: rgb(var(--itera-accent-rgb, 236, 72, 153));
    background: rgba(var(--itera-accent-rgb, 236, 72, 153), 0.15);
}
.disciplina-vinculo-card--vinculada .disciplina-vinculo-card__icon {
    color: #75b798;
    background: rgba(25, 135, 84, 0.15);
}
.disciplina-vinculo-card__body {
    flex: 1 1 auto;
    min-width: 0;
}
.disciplina-vinculo-card__title {
    font-size: 0.95rem;
    font-weight: 600;
    margin: 0 0 0.2rem;
    color: var(--itera-heading);
}
.disciplina-vinculo-card__meta {
    font-size: 0.78rem;
    color: var(--itera-text-muted);
}
.disciplina-vinculo-card__acao {
    flex-shrink: 0;
    margin-left: auto;
}
.turma-aba-tabela-card {
    border: 1px solid var(--itera-border-subtle);
    border-radius: var(--itera-card-radius);
    overflow: hidden;
}
.turma-aba-tabela thead th {
    padding: 0.85rem 1rem;
    white-space: nowrap;
}
.turma-aba-tabela tbody td {
    padding: 0.9rem 1rem;
    vertical-align: middle;
}
.turma-edit-modal-form .modal-body {
    max-height: min(62vh, 520px);
    overflow-y: auto;
}

/* Professor — disciplinas no painel lateral */
.professor-disciplinas-box {
    overflow: visible;
}
.professor-disciplinas-lista .list-group-item {
    font-size: 0.95rem;
}
.itera-form-panel__mount .professor-disciplinas-box .allocation-role-autocomplete:focus-within {
    position: relative;
    z-index: 20;
}

/* Turma — Kanban de tarefas */
.turma-kanban__board {
    align-items: stretch;
}
.turma-kanban-col {
    display: flex;
    flex-direction: column;
    min-height: 18rem;
    border: 1px solid var(--itera-border-subtle);
    border-radius: var(--itera-card-radius);
    background: rgba(255, 255, 255, 0.02);
}
.turma-kanban-col__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.turma-kanban-col__titulo {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--itera-heading);
}
.turma-kanban-col--pendente .turma-kanban-col__titulo { color: #94a3b8; }
.turma-kanban-col--fazendo .turma-kanban-col__titulo { color: #60a5fa; }
.turma-kanban-col--pronto .turma-kanban-col__titulo { color: #3dd68c; }
.turma-kanban-col__contagem {
    background: rgba(255, 255, 255, 0.08);
    color: var(--itera-text-muted);
}
.turma-kanban-col__lista {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.85rem;
    min-height: 10rem;
    transition: background-color 0.15s ease;
}
.turma-kanban-col__lista--over {
    background: rgba(var(--itera-primary-rgb), 0.08);
    outline: 1px dashed rgba(var(--itera-primary-rgb), 0.35);
    outline-offset: -4px;
    border-radius: 0 0 var(--itera-card-radius) var(--itera-card-radius);
}
.turma-kanban-col__vazio {
    margin: 0;
    padding: 0 1rem 1rem;
    font-size: 0.82rem;
    color: var(--itera-text-muted);
    text-align: center;
}
.turma-kanban-card {
    position: relative;
    display: flex;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.75rem;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.12);
    overflow: hidden;
}
.turma-kanban-card__accent {
    width: 4px;
    flex-shrink: 0;
    background: #64748b;
}
.turma-kanban-card--prioridade-baixa .turma-kanban-card__accent { background: #64748b; }
.turma-kanban-card--prioridade-media .turma-kanban-card__accent { background: #f59e0b; }
.turma-kanban-card--prioridade-alta .turma-kanban-card__accent { background: #ef4444; }
.turma-kanban-card__conteudo {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.85rem 0.9rem 0.75rem;
}
.turma-kanban-card__topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}
.turma-kanban-card__prioridade {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.turma-kanban-card__prioridade--baixa {
    color: #cbd5e1;
    background: rgba(100, 116, 139, 0.25);
    border: 1px solid rgba(100, 116, 139, 0.45);
}
.turma-kanban-card__prioridade--media {
    color: #fcd34d;
    background: rgba(245, 158, 11, 0.22);
    border: 1px solid rgba(245, 158, 11, 0.5);
}
.turma-kanban-card__prioridade--alta {
    color: #fca5a5;
    background: rgba(239, 68, 68, 0.22);
    border: 1px solid rgba(239, 68, 68, 0.55);
}
.turma-kanban-card__arrastar {
    color: var(--itera-text-muted);
    opacity: 0.65;
    cursor: grab;
}
.turma-kanban-card__texto {
    color: var(--itera-text-main);
    font-size: 0.92rem;
    line-height: 1.55;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
.turma-kanban-card__datas {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-top: 0.55rem;
}
.turma-kanban-card__data {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.76rem;
    color: var(--itera-text-muted);
}
.turma-kanban-card__data--prazo {
    color: #fcd34d;
}
.turma-kanban-card__data--conclusao {
    color: #3dd68c;
}
.turma-kanban-card__autor {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.55rem;
    font-size: 0.74rem;
    color: var(--itera-text-muted);
}
.turma-tarefa-modal-conclusao__valor {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
}
.turma-kanban-card__rodape {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}
.turma-kanban-card--editavel {
    cursor: pointer;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
@media (hover: hover) {
    .turma-kanban-card--editavel:hover {
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
        transform: translateY(-1px);
    }
}
.turma-kanban-card--arrastando {
    opacity: 0.45;
}
.turma-kanban-card--ghost {
    min-height: 4.5rem;
    border: 1px dashed rgba(var(--itera-primary-rgb), 0.45);
    background: rgba(var(--itera-primary-rgb), 0.08);
    box-shadow: none;
}
.turma-kanban-vazio {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--itera-text-muted);
    border: 1px dashed rgba(255, 255, 255, 0.12);
    border-radius: var(--itera-card-radius);
}
.turma-kanban-vazio__icone {
    display: block;
    font-size: 1.75rem;
    margin-bottom: 0.5rem;
    opacity: 0.55;
}

/* Painel professor/aluno — acompanhamentos vinculados */
.vinculo-acompanhamentos-card__head {
    background: rgba(255, 255, 255, 0.03);
}
.vinculo-acompanhamentos-card__titulo {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--itera-heading);
}
.vinculo-acompanhamentos-card__total {
    background: rgba(255, 255, 255, 0.08);
    color: var(--itera-text-muted);
}
.vinculo-acompanhamentos-lista {
    max-height: min(42vh, 420px);
    overflow-y: auto;
}
.vinculo-acompanhamentos-item {
    padding: 0.85rem 1rem;
    background: transparent;
    border-color: rgba(255, 255, 255, 0.07) !important;
}
.vinculo-acompanhamentos-item__topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.45rem;
}
.vinculo-acompanhamentos-item__data {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--itera-text-muted);
}
.vinculo-acompanhamentos-item__hora {
    margin-left: 0.35rem;
    font-weight: 500;
    opacity: 0.85;
}
.vinculo-acompanhamentos-item__turma {
    font-size: 0.8rem;
    margin-bottom: 0.35rem;
}
.vinculo-acompanhamentos-item__turma-link {
    color: var(--itera-primary);
    text-decoration: none;
}
@media (hover: hover) {
    .vinculo-acompanhamentos-item__turma-link:hover {
        text-decoration: underline;
    }
}
.vinculo-acompanhamentos-item__meta {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: var(--itera-text-muted);
    margin-bottom: 0.4rem;
}
.vinculo-acompanhamentos-item__texto {
    font-size: 0.88rem;
    line-height: 1.5;
    color: var(--itera-text-main);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* --- Aulas: hub unificado (cards alinhados em todas as abas) --- */
.aula-hub-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: 1rem;
}
.aula-hub-grid--checklist {
    grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
}
.aula-hub-grupos {
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
}
.aula-hub-grupo__dia {
    display: inline-flex;
    align-items: center;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--itera-text-muted);
    margin-bottom: 0.75rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(15, 23, 42, 0.35);
}
.aula-hub-vazio {
    text-align: center;
    padding: 3rem 1.5rem;
    border-radius: 0.9rem;
    border: 1px dashed var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.02);
    color: var(--itera-text-muted);
}
.aula-hub-vazio__icone {
    display: block;
    font-size: 2rem;
    opacity: 0.45;
    margin: 0 auto 0.65rem;
}
.aula-hub-card {
    position: relative;
    display: flex;
    min-height: 100%;
    border-radius: 0.9rem;
    border: 1px solid var(--itera-border-subtle);
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.015) 100%);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.14);
    overflow: hidden;
    transition: border-color 0.22s ease, box-shadow 0.22s ease, transform 0.2s ease;
}
.aula-conteudo-item--editavel,
.aula-compra-item--editavel,
.aula-link-item--editavel {
    cursor: pointer;
}
@media (hover: hover) {
    .aula-conteudo-item--editavel:hover,
    .aula-compra-item--editavel:hover,
    .aula-link-item--editavel:hover {
        border-color: rgba(var(--itera-primary-rgb), 0.55);
        box-shadow: 0 10px 28px rgba(0, 0, 0, 0.2);
        transform: translateY(-2px);
    }
}
.aula-hub-card__faixa {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--itera-primary);
}
.aula-hub-card--slide .aula-hub-card__faixa { background: linear-gradient(180deg, #fb923c, #ea580c); }
.aula-hub-card--video .aula-hub-card__faixa { background: linear-gradient(180deg, #f87171, #dc2626); }
.aula-hub-card--pdf .aula-hub-card__faixa { background: linear-gradient(180deg, #fca5a5, #b91c1c); }
.aula-hub-card--outro .aula-hub-card__faixa { background: linear-gradient(180deg, #94a3b8, #64748b); }
.aula-hub-card--compra .aula-hub-card__faixa { background: linear-gradient(180deg, #4ade80, #16a34a); }
.aula-hub-card--link .aula-hub-card__faixa { background: linear-gradient(180deg, #60a5fa, #2563eb); }
.aula-hub-card--anotacao .aula-hub-card__faixa { background: linear-gradient(180deg, #c4b5fd, #7c3aed); }
.aula-hub-card--checklist .aula-hub-card__faixa { background: rgba(148, 163, 184, 0.55); }
.aula-hub-card--checklist.aula-checklist-item--concluido .aula-hub-card__faixa {
    background: linear-gradient(180deg, #4ade80, #16a34a);
}
.aula-hub-card--resumo .aula-hub-card__faixa { background: linear-gradient(180deg, #60a5fa, var(--itera-primary)); }
.aula-hub-card__inner {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    padding: 1rem 1rem 0.9rem 1.15rem;
}
.aula-hub-card__topo {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}
.aula-hub-card__icone {
    width: 2.85rem;
    height: 2.85rem;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.45rem;
    flex-shrink: 0;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}
.aula-hub-card--slide .aula-hub-card__icone { background: rgba(234, 88, 12, 0.18); color: #fdba74; }
.aula-hub-card--video .aula-hub-card__icone { background: rgba(220, 38, 38, 0.18); color: #fca5a5; }
.aula-hub-card--pdf .aula-hub-card__icone { background: rgba(185, 28, 28, 0.18); color: #fecaca; }
.aula-hub-card--outro .aula-hub-card__icone { background: rgba(100, 116, 139, 0.2); color: #cbd5e1; }
.aula-hub-card--compra .aula-hub-card__icone { background: rgba(34, 197, 94, 0.18); color: #86efac; }
.aula-hub-card--link .aula-hub-card__icone { background: rgba(37, 99, 235, 0.18); color: #93c5fd; }
.aula-hub-card--anotacao .aula-hub-card__icone { background: rgba(124, 58, 237, 0.18); color: #c4b5fd; }
.aula-hub-card--checklist .aula-hub-card__icone { background: rgba(100, 116, 139, 0.2); color: #cbd5e1; }
.aula-hub-card--checklist.aula-checklist-item--concluido .aula-hub-card__icone {
    background: rgba(34, 197, 94, 0.18);
    color: #86efac;
}
.aula-hub-card__badge {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.3rem 0.55rem;
    border-radius: 999px;
    border: 1px solid var(--itera-border-subtle);
    color: var(--itera-text-muted);
    background: rgba(15, 23, 42, 0.35);
    white-space: nowrap;
}
.aula-hub-card--slide .aula-hub-card__badge { color: #fdba74; border-color: rgba(234, 88, 12, 0.35); background: rgba(234, 88, 12, 0.12); }
.aula-hub-card--video .aula-hub-card__badge { color: #fca5a5; border-color: rgba(220, 38, 38, 0.35); background: rgba(220, 38, 38, 0.12); }
.aula-hub-card--pdf .aula-hub-card__badge { color: #fecaca; border-color: rgba(185, 28, 28, 0.35); background: rgba(185, 28, 28, 0.12); }
.aula-hub-card--compra .aula-hub-card__badge { color: #86efac; border-color: rgba(34, 197, 94, 0.35); background: rgba(34, 197, 94, 0.12); }
.aula-hub-card--link .aula-hub-card__badge { color: #93c5fd; border-color: rgba(37, 99, 235, 0.35); background: rgba(37, 99, 235, 0.12); }
.aula-hub-card--anotacao .aula-hub-card__badge { color: #c4b5fd; border-color: rgba(124, 58, 237, 0.35); background: rgba(124, 58, 237, 0.12); text-transform: none; }
.aula-hub-card--checklist .aula-hub-card__badge { text-transform: none; }
.aula-hub-card--checklist.aula-checklist-item--concluido .aula-hub-card__badge {
    color: #86efac;
    border-color: rgba(34, 197, 94, 0.35);
    background: rgba(34, 197, 94, 0.12);
}
.aula-hub-card__corpo {
    flex: 1;
    min-width: 0;
    margin-bottom: 0.9rem;
}
.aula-hub-card__titulo {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
    margin-bottom: 0.45rem;
    color: var(--itera-text-main);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.aula-hub-card__texto {
    font-size: 0.95rem;
    line-height: 1.5;
    color: var(--itera-text-main);
    white-space: pre-wrap;
}
.aula-hub-card__detalhe {
    font-size: 0.78rem;
    color: var(--itera-text-muted);
    opacity: 0.92;
}
.aula-hub-card__detalhe--destaque {
    font-weight: 600;
    color: var(--itera-text-main);
    opacity: 1;
}
.aula-hub-card__rodape {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--itera-border-subtle);
}
.aula-hub-card__rodape form {
    display: inline-flex;
}
.aula-hub-card__acao {
    font-weight: 600;
    padding-inline: 0.85rem;
}
.aula-hub-card--checklist.aula-checklist-item--concluido {
    background: linear-gradient(160deg, rgba(34, 197, 94, 0.08) 0%, rgba(255, 255, 255, 0.015) 100%);
    border-color: rgba(34, 197, 94, 0.28);
}
.aula-checklist-resumo {
    border: 1px solid var(--itera-border-subtle);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
    overflow: hidden;
}
.aula-checklist-resumo__grid {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
}
.aula-checklist-resumo__anel {
    --anel-tamanho: 5.5rem;
    width: var(--anel-tamanho);
    height: var(--anel-tamanho);
    border-radius: 50%;
    flex-shrink: 0;
    padding: 0.35rem;
    background: conic-gradient(
        var(--itera-primary) calc(var(--aula-checklist-pct, 0) * 1%),
        rgba(148, 163, 184, 0.22) 0
    );
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
    transition: background 0.35s ease;
}
.aula-checklist-resumo__anel-inner {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--itera-surface, #0f172a);
    border: 1px solid var(--itera-border-subtle);
}
.aula-checklist-resumo__pct {
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--itera-text, #f8fafc);
}
.aula-checklist-resumo__titulo {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--itera-text-muted, #94a3b8);
    margin-bottom: 0.2rem;
}
.aula-checklist-resumo__contagem {
    font-size: 1.05rem;
    margin-bottom: 0.35rem;
}
.aula-checklist-resumo__contagem strong {
    font-size: 1.45rem;
    line-height: 1;
    color: var(--itera-primary);
}
.aula-checklist-resumo__status {
    font-size: 0.9rem;
    color: var(--itera-text-muted, #94a3b8);
}
.aula-checklist-resumo__segmentos {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid var(--itera-border-subtle);
}
.aula-checklist-segmento {
    flex: 1 1 2.5rem;
    min-width: 2rem;
    max-width: 4rem;
    height: 0.45rem;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.25);
    transition: background 0.3s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.aula-checklist-segmento--ok {
    background: linear-gradient(90deg, #22c55e, #16a34a);
    box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.25);
}
.aula-checklist-lista {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.aula-checklist-item {
    position: relative;
    border-radius: 0.9rem;
    border: 1px solid var(--itera-border-subtle);
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.015) 100%);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.14);
    overflow: hidden;
    transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.2s ease;
}
@media (hover: hover) {
    .aula-checklist-item:hover {
        border-color: rgba(148, 163, 184, 0.45);
        box-shadow: 0 6px 18px rgba(15, 23, 42, 0.1);
    }
}
.aula-checklist-item__faixa {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: rgba(148, 163, 184, 0.45);
    transition: background 0.3s ease, width 0.2s ease;
}
.aula-checklist-item--concluido {
    background: linear-gradient(160deg, rgba(34, 197, 94, 0.08) 0%, rgba(255, 255, 255, 0.015) 100%);
    border-color: rgba(34, 197, 94, 0.28);
}
.aula-checklist-item--concluido .aula-checklist-item__faixa {
    width: 5px;
    background: linear-gradient(180deg, #4ade80, #16a34a);
}
.aula-checklist-item__corpo {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem 1.1rem 1rem 1.25rem;
}
.aula-checklist-item__numero {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 0.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 700;
    flex-shrink: 0;
    color: var(--itera-text-muted, #94a3b8);
    background: rgba(148, 163, 184, 0.12);
    border: 1px solid var(--itera-border-subtle);
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.aula-checklist-item--concluido .aula-checklist-item__numero {
    color: #166534;
    background: rgba(34, 197, 94, 0.15);
    border-color: rgba(34, 197, 94, 0.35);
}
.aula-checklist-item__toggle {
    flex-shrink: 0;
    margin: 0;
    cursor: pointer;
}
.aula-checklist-item__toggle-face {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid rgba(148, 163, 184, 0.55);
    background: rgba(15, 23, 42, 0.35);
    color: transparent;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease, transform 0.15s ease;
}
.aula-checklist-item__toggle-face .bi {
    font-size: 1.15rem;
    font-weight: 700;
}
@media (hover: hover) {
    .aula-checklist-item__toggle:hover .aula-checklist-item__toggle-face {
        border-color: var(--itera-primary);
        transform: scale(1.05);
    }
}
.aula-checklist-toggle:checked + .aula-checklist-item__toggle-face {
    border-color: #22c55e;
    background: linear-gradient(145deg, #4ade80, #16a34a);
    color: #fff;
    box-shadow: 0 4px 14px rgba(34, 197, 94, 0.35);
}
.aula-checklist-item__estado {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 2px solid rgba(148, 163, 184, 0.4);
    color: rgba(148, 163, 184, 0.7);
    background: rgba(15, 23, 42, 0.25);
}
.aula-checklist-item__estado--ok {
    border-color: #22c55e;
    background: rgba(34, 197, 94, 0.15);
    color: #22c55e;
}
.aula-checklist-item__conteudo {
    flex: 1;
    min-width: 0;
    padding-top: 0.1rem;
}
.aula-checklist-item__texto {
    font-size: 0.98rem;
    font-weight: 500;
    line-height: 1.45;
    transition: color 0.25s ease, opacity 0.25s ease;
}
.aula-checklist-item--concluido .aula-checklist-item__texto {
    color: var(--itera-text-muted, #94a3b8);
    text-decoration: line-through;
    text-decoration-color: rgba(148, 163, 184, 0.65);
}
.aula-checklist-item__meta {
    font-size: 0.78rem;
    color: var(--itera-text-muted, #94a3b8);
    margin-top: 0.35rem;
}
.aula-checklist-item__meta-sep {
    margin: 0 0.25rem;
    opacity: 0.6;
}
.aula-checklist-item__acoes {
    display: flex;
    gap: 0.35rem;
    flex-shrink: 0;
    opacity: 0.85;
}
@media (hover: hover) {
    .aula-checklist-item:hover .aula-checklist-item__acoes {
        opacity: 1;
    }
}
.aula-vazio__icone {
    font-size: 2rem;
    opacity: 0.45;
    margin-bottom: 0.5rem;
}

/* --- Turmas: cronograma (timeline) --- */
.turma-cronograma-feed .turma-cronograma-card__disciplina {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    max-width: 100%;
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--itera-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.turma-cronograma-feed .turma-cronograma-card__disciplina .bi {
    color: var(--itera-link);
    flex-shrink: 0;
}
.turma-cronograma-feed .turma-cronograma-card__titulo {
    font-size: 1.02rem;
    font-weight: 600;
    line-height: 1.45;
    margin-bottom: 0.85rem;
    white-space: normal;
}
.turma-cronograma-feed .turma-cronograma-card__acoes {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    margin-left: auto;
}
.turma-cronograma-feed .turma-acompanhamento-card__rodape {
    align-items: center;
}

/* --- Turmas: execução da aula (checklist + compras por turma) --- */
.turma-aula-compra-detalhes {
    margin-top: 0.35rem;
    line-height: 1.45;
}
.turma-aula-compra-detalhes__sep {
    margin: 0 0.3rem;
    opacity: 0.65;
}
.aula-checklist-item--compra .aula-checklist-item__faixa {
    background: linear-gradient(180deg, #f472b6, #db2777);
}

/* --- Turmas: atendimentos da aula --- */
.turma-atendimento-card {
    position: relative;
    display: flex;
    gap: 0;
    height: 100%;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.9rem;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
    overflow: hidden;
}
.turma-atendimento-card--editavel {
    cursor: pointer;
}
@media (hover: hover) {
    .turma-atendimento-card--editavel:hover {
        border-color: rgba(244, 114, 182, 0.35);
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
    }
}
.turma-atendimento-card__accent {
    width: 5px;
    flex-shrink: 0;
    background: var(--itera-primary);
}
.turma-atendimento-card--retorno .turma-atendimento-card__accent {
    background: #3dd68c;
}
.turma-atendimento-card__conteudo {
    flex: 1 1 auto;
    min-width: 0;
    padding: 1rem 1.1rem 0.95rem;
}
.turma-atendimento-card__topo {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem 1rem;
    margin-bottom: 0.85rem;
}
.turma-atendimento-card__nome {
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--itera-heading);
}
.turma-atendimento-card__pessoas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}
.turma-atendimento-card__meta-sep {
    margin: 0 0.35rem;
    opacity: 0.65;
}
.turma-atendimento-card__label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--itera-text-muted);
    margin-bottom: 0.35rem;
}
.turma-atendimento-card__texto {
    color: var(--itera-text-main);
    font-size: 0.94rem;
    line-height: 1.55;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
.turma-atendimento-card__indicacao {
    margin-bottom: 0.95rem;
}
.turma-atendimento-card__rodape {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.95rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.turma-atendimento-foto__label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--itera-text-muted);
    margin-bottom: 0.35rem;
}
.turma-atendimento-foto__link {
    display: block;
    position: relative;
    width: 100%;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.75rem;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.03);
    cursor: zoom-in;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
button.turma-atendimento-foto__link {
    appearance: none;
    text-align: inherit;
}
@media (hover: hover) {
    .turma-atendimento-foto__link:hover {
        border-color: rgba(244, 114, 182, 0.45);
        box-shadow: 0 0 0 1px rgba(244, 114, 182, 0.2);
    }
}
.turma-atendimento-foto__overlay {
    position: absolute;
    inset: auto 0.55rem 0.55rem auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: rgba(12, 8, 10, 0.72);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #f8fafc;
    font-size: 0.95rem;
    pointer-events: none;
}
.turma-atendimento-foto__img,
.turma-atendimento-foto-preview__img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.turma-atendimento-foto-preview__img {
    border-radius: 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
}
.turma-atendimento-foto__pendente {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 8.5rem;
    padding: 1rem;
    border-radius: 0.75rem;
    border: 1px dashed rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.02);
    color: var(--itera-text-muted);
    font-size: 0.84rem;
    text-align: center;
}
.turma-atendimento-foto__pendente .bi {
    font-size: 1.35rem;
    opacity: 0.75;
}
.turma-atendimento-vazio {
    text-align: center;
    padding: 3rem 1.5rem;
    color: var(--itera-text-muted);
    border: 1px dashed rgba(255, 255, 255, 0.12);
    border-radius: var(--itera-card-radius);
    background: rgba(255, 255, 255, 0.02);
}
.turma-atendimento-vazio__icone {
    font-size: 2.5rem;
    opacity: 0.45;
    display: block;
    margin-bottom: 0.75rem;
}
.turma-atendimento-retorno-check {
    padding: 0.65rem 0.85rem;
    border-radius: 0.75rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
}
.turma-atendimento-modal-divisor {
    margin: 1.1rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.turma-atendimento-modal-subtitulo {
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--itera-text-muted);
}
.turma-atendimento-modal-foto-col {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}
.turma-atendimento-modal-foto-col .itera-file-upload__conteudo {
    padding: 0.7rem 0.8rem;
    gap: 0.65rem;
}
.turma-atendimento-modal-foto-col .itera-file-upload__icone {
    width: 2.25rem;
    height: 2.25rem;
    font-size: 1.1rem;
}
.turma-atendimento-modal-foto-col .itera-file-upload__titulo {
    font-size: 0.88rem;
}
.turma-atendimento-modal-foto-col .itera-file-upload__subtitulo {
    font-size: 0.76rem;
}
.turma-atendimento-modal-foto-col .itera-file-upload__acao {
    padding: 0.35rem 0.7rem;
    font-size: 0.76rem;
}
.turma-atendimento-modal-foto-miniaturas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: flex-start;
    margin-top: 0.35rem;
}
.turma-atendimento-modal-foto-miniatura {
    flex: 0 0 auto;
    max-width: min(100%, 9.5rem);
}
.turma-atendimento-modal-foto-miniatura__legenda {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--itera-text-muted);
    margin-bottom: 0.2rem;
}
.turma-atendimento-modal-foto-col .turma-atendimento-foto-preview__img {
    width: 100%;
    max-height: 6.5rem;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.turma-atendimento-registros {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.turma-atendimento-registros__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}
.turma-atendimento-registro {
    height: 100%;
    padding: 0.85rem;
    border-radius: 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.03);
    transition: border-color 0.2s ease, background 0.2s ease;
}
.turma-atendimento-registro--editavel {
    cursor: pointer;
}
@media (hover: hover) {
    .turma-atendimento-registro--editavel:hover {
        border-color: rgba(244, 114, 182, 0.35);
        background: rgba(255, 255, 255, 0.05);
    }
}
.turma-atendimento-registro__topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}
.turma-atendimento-registro__nome {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--itera-heading);
}
.turma-atendimento-registro__excluir .btn-link {
    text-decoration: none;
}

/* Comparador antes/depois (modal) — 60% da largura da tela */
.itera-modal.itera-modal--atendimento-comparacao .modal-dialog {
    max-width: min(100%, 60vw);
    width: 60vw;
}

.turma-atendimento-comparacao-dica {
    color: var(--itera-text-muted);
    font-size: 0.88rem;
}
.turma-atendimento-comparacao__stage {
    position: relative;
    width: 100%;
    min-height: 10rem;
    max-height: min(72vh, 720px);
    overflow: hidden;
    border-radius: 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(0, 0, 0, 0.25);
    user-select: none;
    touch-action: none;
    cursor: ew-resize;
}
.turma-atendimento-comparacao__img--antes,
.turma-atendimento-comparacao__img--depois {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    max-width: none;
    object-fit: contain;
    object-position: center center;
    pointer-events: none;
}
.turma-atendimento-comparacao__img--antes {
    z-index: 1;
}
.turma-atendimento-comparacao__depois-wrap {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    overflow: hidden;
    z-index: 2;
    border-right: 3px solid #fff;
    box-shadow: 2px 0 12px rgba(0, 0, 0, 0.35);
    will-change: width;
    pointer-events: none;
}
.turma-atendimento-comparacao__handle {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    width: 2.6rem;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    transform: translateX(-50%);
    cursor: ew-resize;
    touch-action: none;
}
.turma-atendimento-comparacao__barra {
    flex: 1 1 auto;
    width: 4px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35), 0 0 12px rgba(255, 255, 255, 0.45);
}
.turma-atendimento-comparacao__seta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: var(--itera-primary);
    color: #fff;
    font-size: 1rem;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}
.turma-atendimento-comparacao__legendas {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.85rem;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--itera-text-muted);
}
.turma-atendimento-comparacao__legenda--depois {
    text-align: right;
}
.turma-atendimento-comparacao-simples__img {
    display: inline-block;
    max-width: 100%;
    max-height: min(72vh, 720px);
    border-radius: 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    object-fit: contain;
    background: rgba(0, 0, 0, 0.25);
}

.despesa-nota-thumb {
    display: inline-flex;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 0.5rem;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(0, 0, 0, 0.2);
}
.despesa-nota-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.despesa-nota-existente {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
}
.despesa-nota-existente__excluir {
    margin: 0;
}

.despesa-resumo {
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.03);
    overflow: hidden;
}
.despesa-resumo__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.despesa-resumo__item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.15rem 1.35rem;
    min-height: 5.75rem;
}
.despesa-resumo__item + .despesa-resumo__item {
    border-left: 1px solid var(--itera-border-subtle);
}
.despesa-resumo__item--total {
    background: linear-gradient(
        135deg,
        rgba(var(--itera-primary-rgb), 0.1) 0%,
        rgba(255, 255, 255, 0.02) 72%
    );
}
.despesa-resumo__icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 3rem;
    height: 3rem;
    border-radius: 0.85rem;
    background: rgba(var(--itera-primary-rgb), 0.14);
    border: 1px solid rgba(var(--itera-primary-rgb), 0.28);
    color: #fbcfe8;
    font-size: 1.35rem;
}
.despesa-resumo__item--pendentes .despesa-resumo__icone {
    background: rgba(234, 179, 8, 0.12);
    border-color: rgba(234, 179, 8, 0.32);
    color: #fde68a;
}
.despesa-resumo__conteudo {
    min-width: 0;
    flex: 1 1 auto;
}
.despesa-resumo__label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--itera-text-muted);
    margin-bottom: 0.3rem;
}
.despesa-resumo__valor,
.despesa-resumo__quantidade {
    font-size: clamp(1.45rem, 2vw, 1.85rem);
    font-weight: 700;
    line-height: 1.15;
    color: var(--itera-heading);
}
.despesa-resumo__meta {
    margin-top: 0.3rem;
    font-size: 0.82rem;
    color: var(--itera-text-muted);
    line-height: 1.35;
}
@media (max-width: 767.98px) {
    .despesa-resumo__grid {
        grid-template-columns: 1fr;
    }
    .despesa-resumo__item + .despesa-resumo__item {
        border-left: none;
        border-top: 1px solid var(--itera-border-subtle);
    }
}
.despesa-valor-col {
    white-space: nowrap;
    vertical-align: middle;
}
.despesa-valor-badge,
.lista-valor-badge {
    font-size: 0.82rem;
    font-weight: 700;
    padding: 0.35rem 0.7rem;
    font-variant-numeric: tabular-nums;
}
.lista-contagem-badge {
    min-width: 2rem;
    justify-content: center;
    font-variant-numeric: tabular-nums;
}
.lista-badge-inline {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.despesa-reembolso-col {
    width: 3.25rem;
    padding-left: 0.65rem;
    padding-right: 0.35rem;
    vertical-align: middle;
}
.despesa-reembolso-toggle {
    display: inline-flex;
    vertical-align: middle;
}
.despesa-reembolso-fixo {
    display: inline-flex;
    vertical-align: middle;
    opacity: 0.88;
    cursor: default;
}
.despesa-reembolso-fixo__face {
    border-color: #22c55e;
    background: linear-gradient(145deg, #4ade80, #16a34a);
    color: #fff;
    box-shadow: 0 4px 14px rgba(34, 197, 94, 0.35);
}

.despesa-reembolso-checkbox:disabled + .aula-checklist-item__toggle-face {
    opacity: 0.72;
    cursor: default;
}

.despesa-reembolso-checkbox:disabled:checked + .aula-checklist-item__toggle-face {
    opacity: 1;
}

/* Dashboard operacional (home) */
.home-page {
    min-width: 0;
}

.dashboard-operacional__hero {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.5rem;
    padding: 1.35rem 1.5rem;
    border-radius: var(--itera-card-radius);
    border: 1px solid var(--itera-border-subtle);
    background:
        radial-gradient(900px 220px at 0% -10%, rgba(var(--itera-primary-rgb), 0.16), transparent 52%),
        radial-gradient(700px 200px at 100% -15%, rgba(var(--itera-accent-rgb), 0.1), transparent 55%),
        linear-gradient(155deg, var(--itera-bg-elevated) 0%, rgba(var(--itera-surface-rgb), 0.85) 100%);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.12);
}
.dashboard-operacional__hero-conteudo {
    min-width: 0;
    flex: 1 1 320px;
}
.dashboard-operacional__hero-rotulo {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--itera-link);
}
.dashboard-operacional__hero-titulo {
    margin: 0 0 0.45rem;
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--itera-heading);
}
.dashboard-operacional__hero-texto {
    margin: 0;
    max-width: 42rem;
    color: var(--itera-text-muted);
    line-height: 1.5;
}
.dashboard-operacional__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.95rem;
}
.dashboard-operacional__hero-painel {
    flex: 0 1 260px;
    min-width: min(100%, 220px);
    padding: 1rem 1.1rem;
    border-radius: 0.85rem;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(var(--itera-primary-rgb), 0.06);
}
.dashboard-operacional__hero .modern-chip {
    color: var(--itera-text-main);
    background: rgba(var(--itera-primary-rgb), 0.12);
    border: 1px solid rgba(var(--itera-primary-rgb), 0.22);
}
.dashboard-operacional__hero .modern-chip .bi {
    color: var(--itera-link);
}
.dashboard-operacional__hero-painel-titulo {
    margin: 0 0 0.65rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #ff8da2;
}
.dashboard-operacional__hero-alertas {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}
.dashboard-operacional__hero-alertas li {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    font-size: 0.84rem;
    color: var(--itera-text-main);
    line-height: 1.35;
}
.dashboard-operacional__hero-alerta-valor {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--itera-heading);
    font-variant-numeric: tabular-nums;
    min-width: 1.4rem;
}
.dashboard-operacional__hero-ok {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    color: #63d89e;
}
.dashboard-operacional__hero-ok i {
    font-size: 1.35rem;
    flex-shrink: 0;
    margin-top: 0.1rem;
}
.dashboard-operacional__hero-ok p {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.45;
    color: var(--itera-text-main);
}

.dashboard-operacional {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    margin-bottom: 1.5rem;
}
/* Resumo rápido — painéis agrupados */
.dashboard-resumo {
    border: 1px solid var(--itera-border-subtle);
    border-radius: var(--itera-card-radius);
    padding: 1.1rem 1.2rem 1.2rem;
    background:
        radial-gradient(800px 180px at 100% 0%, rgba(var(--itera-primary-rgb), 0.08), transparent 55%),
        var(--itera-bg-elevated);
}
.dashboard-resumo__cabecalho {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.75rem 1.25rem;
    margin-bottom: 1rem;
}
.dashboard-resumo__titulo {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 650;
    color: var(--itera-heading);
}
.dashboard-resumo__subtitulo {
    margin: 0.2rem 0 0;
    font-size: 0.82rem;
    color: var(--itera-text-muted);
}
.dashboard-resumo__legenda {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1rem;
    font-size: 0.74rem;
    color: var(--itera-text-muted);
}
.dashboard-resumo__legenda-item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
.dashboard-resumo__legenda-cor {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
}
.dashboard-resumo__legenda-cor--ok {
    background: #63d89e;
}
.dashboard-resumo__legenda-cor--alerta {
    background: #ff8da2;
}

.dashboard-resumo__grade {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}
.dashboard-resumo__grupo {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    min-height: 100%;
    min-width: 0;
    padding: 0.95rem 1rem;
    border-radius: 0.85rem;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.025);
    color: inherit;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, background 0.18s ease;
}
a.dashboard-resumo__grupo:hover {
    border-color: rgba(122, 144, 255, 0.42);
    background: rgba(255, 255, 255, 0.045);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.16);
    transform: translateY(-2px);
    color: inherit;
}
.dashboard-resumo__grupo--alerta {
    border-color: rgba(255, 107, 129, 0.28);
    background: linear-gradient(160deg, rgba(255, 107, 129, 0.06), rgba(255, 255, 255, 0.02));
}
.dashboard-resumo__grupo--tarefas {
    border-top: 3px solid rgba(122, 144, 255, 0.55);
}
.dashboard-resumo__grupo--agenda {
    border-top: 3px solid rgba(13, 202, 240, 0.5);
}
.dashboard-resumo__grupo--prep {
    border-top: 3px solid rgba(255, 193, 7, 0.55);
}
.dashboard-resumo__grupo--acompanhamento {
    border-top: 3px solid rgba(30, 170, 90, 0.5);
}
.dashboard-resumo__grupo-topo {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}
.dashboard-resumo__grupo-icone {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    background: rgba(255, 255, 255, 0.06);
    color: var(--itera-text-main);
}
.dashboard-resumo__grupo--tarefas .dashboard-resumo__grupo-icone {
    background: rgba(37, 99, 235, 0.14);
    color: #93c5fd;
}
.dashboard-resumo__grupo--agenda .dashboard-resumo__grupo-icone {
    background: rgba(13, 202, 240, 0.12);
    color: #67e8f9;
}
.dashboard-resumo__grupo--prep .dashboard-resumo__grupo-icone {
    background: rgba(255, 193, 7, 0.12);
    color: #ffd251;
}
.dashboard-resumo__grupo--acompanhamento .dashboard-resumo__grupo-icone {
    background: rgba(30, 170, 90, 0.12);
    color: #63d89e;
}
.dashboard-resumo__grupo-nome {
    display: block;
    font-size: 0.92rem;
    font-weight: 650;
    color: var(--itera-heading);
    line-height: 1.25;
}
.dashboard-resumo__grupo-hint {
    display: block;
    margin-top: 0.12rem;
    font-size: 0.74rem;
    color: var(--itera-text-muted);
    line-height: 1.35;
}
.dashboard-resumo__grupo-rodape {
    margin-top: auto;
    font-size: 0.74rem;
    color: var(--itera-text-muted);
    padding-top: 0.15rem;
}

.dashboard-resumo__metricas-duplas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}
.dashboard-resumo__metrica {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    padding: 0.55rem 0.6rem;
    border-radius: 0.6rem;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.05);
}
.dashboard-resumo__metrica--destaque {
    padding: 0.15rem 0;
    border: none;
    background: transparent;
}
.dashboard-resumo__metrica-valor {
    font-size: clamp(1.55rem, 2.2vw, 2rem);
    font-weight: 700;
    line-height: 1;
    color: var(--itera-heading);
    font-variant-numeric: tabular-nums;
}
.dashboard-resumo__metrica--risk .dashboard-resumo__metrica-valor {
    color: #ff8da2;
}
.dashboard-resumo__metrica--warn .dashboard-resumo__metrica-valor {
    color: #ffd251;
}
.dashboard-resumo__metrica-rotulo {
    font-size: 0.72rem;
    color: var(--itera-text-muted);
    line-height: 1.3;
}

.dashboard-resumo__barra-composta {
    display: flex;
    height: 0.42rem;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.08);
}
.dashboard-resumo__barra-segmento {
    display: block;
    height: 100%;
    transition: width 0.35s ease;
}
.dashboard-resumo__barra-segmento--periodo {
    background: linear-gradient(90deg, #4f6ef7, #7a90ff);
}
.dashboard-resumo__barra-segmento--risk {
    background: linear-gradient(90deg, #ff6b81, #ff8da2);
}

.dashboard-resumo__mes-barras {
    display: grid;
    gap: 0.5rem;
}
.dashboard-resumo__mes-linha {
    display: grid;
    grid-template-columns: minmax(4.5rem, 34%) 1fr auto;
    align-items: center;
    gap: 0.45rem;
}
.dashboard-resumo__mes-rotulo {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--itera-text-muted);
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-resumo__barra-track {
    height: 0.5rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}
.dashboard-resumo__barra-fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    transition: width 0.35s ease;
}
.dashboard-resumo__barra-fill--atual {
    background: linear-gradient(90deg, #0ea5e9, #67e8f9);
}
.dashboard-resumo__barra-fill--proximo {
    background: linear-gradient(90deg, #6366f1, #a5b4fc);
}
.dashboard-resumo__mes-qtd {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--itera-heading);
    font-variant-numeric: tabular-nums;
    min-width: 1.25rem;
    text-align: right;
}

.dashboard-resumo__anel {
    position: relative;
    width: 3.5rem;
    height: 3.5rem;
    margin: 0 auto;
}
.dashboard-resumo__anel-svg {
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}
.dashboard-resumo__anel-fundo,
.dashboard-resumo__anel-progresso {
    fill: none;
    stroke-width: 3;
}
.dashboard-resumo__anel-fundo {
    stroke: rgba(255, 255, 255, 0.1);
}
.dashboard-resumo__anel-progresso {
    stroke: #ffd251;
    stroke-linecap: round;
    transition: stroke-dasharray 0.35s ease;
}
.dashboard-resumo__anel-icone {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: #ffd251;
}

.dashboard-resumo__mini-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    flex: 1;
}
.dashboard-resumo__mini-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    min-height: 6.5rem;
    padding: 0.65rem 0.5rem;
    border-radius: 0.65rem;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.03);
    color: inherit;
    text-align: center;
    transition: border-color 0.16s ease, background 0.16s ease, transform 0.16s ease;
}
a.dashboard-resumo__mini-card:hover {
    border-color: rgba(122, 144, 255, 0.38);
    background: rgba(255, 255, 255, 0.05);
    color: inherit;
    transform: translateY(-1px);
}
.dashboard-resumo__mini-card--alerta {
    border-color: rgba(255, 107, 129, 0.3);
    background: rgba(255, 107, 129, 0.06);
}
.dashboard-resumo__mini-card--muted {
    opacity: 0.65;
}
.dashboard-resumo__mini-card-icone {
    font-size: 1.1rem;
    color: var(--itera-text-muted);
}
.dashboard-resumo__mini-card--alerta .dashboard-resumo__mini-card-icone {
    color: #ff8da2;
}
.dashboard-resumo__mini-card-valor {
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 1;
    color: var(--itera-heading);
    font-variant-numeric: tabular-nums;
}
.dashboard-resumo__mini-card-rotulo {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--itera-text-muted);
    line-height: 1.25;
}
.dashboard-resumo__mini-card-extra {
    font-size: 0.68rem;
    color: var(--itera-text-muted);
    font-variant-numeric: tabular-nums;
}

.dashboard-operacional__faixa-titulo {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    margin-top: 0.35rem;
    padding: 0.15rem 0;
}
.dashboard-operacional__faixa-num {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    font-weight: 700;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.04);
    color: var(--itera-text-muted);
}
.dashboard-operacional__faixa-titulo--pessoal .dashboard-operacional__faixa-num {
    color: #93c5fd;
    border-color: rgba(37, 99, 235, 0.25);
    background: rgba(37, 99, 235, 0.1);
}
.dashboard-operacional__faixa-titulo--equipe .dashboard-operacional__faixa-num {
    color: #ffd251;
    border-color: rgba(255, 193, 7, 0.25);
    background: rgba(255, 193, 7, 0.08);
}
.dashboard-operacional__faixa-titulo--prep .dashboard-operacional__faixa-num {
    color: #63d89e;
    border-color: rgba(30, 170, 90, 0.25);
    background: rgba(30, 170, 90, 0.1);
}
.dashboard-operacional__faixa-nome {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 650;
    color: var(--itera-heading);
}
.dashboard-operacional__faixa-desc {
    margin: 0.12rem 0 0;
    font-size: 0.8rem;
    color: var(--itera-text-muted);
}

.dashboard-operacional__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.dashboard-operacional__bloco {
    min-width: 0;
    overflow: hidden;
    transition: box-shadow 0.2s ease;
}
.dashboard-operacional__bloco:hover {
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14) !important;
}
.dashboard-operacional__bloco--pessoal,
.dashboard-operacional__bloco--tarefas {
    border-top: 3px solid rgba(37, 99, 235, 0.55);
}
.dashboard-operacional__subsecao + .dashboard-operacional__subsecao {
    margin-top: 0;
}
.dashboard-operacional__subsecao--divisor {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--itera-border-subtle);
}
.dashboard-operacional__subsecao-titulo {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 0.65rem;
    font-size: 0.8rem;
    font-weight: 650;
    color: var(--itera-heading);
}
.dashboard-operacional__subsecao-titulo .bi {
    color: #93c5fd;
    font-size: 0.88rem;
}
.dashboard-operacional__bloco--agenda {
    border-top: 3px solid rgba(13, 202, 240, 0.45);
}
.dashboard-operacional__bloco--equipe {
    border-top: 3px solid rgba(255, 193, 7, 0.5);
}
.dashboard-operacional__bloco--prep {
    border-top: 3px solid rgba(30, 170, 90, 0.5);
}
.dashboard-operacional__bloco--financeiro {
    border-top: 3px solid rgba(122, 144, 255, 0.45);
}
.dashboard-operacional__bloco--full {
    grid-column: 1 / -1;
}
.dashboard-operacional__aulas-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    align-items: start;
}
.dashboard-operacional__aulas-coluna {
    min-width: 0;
    padding: 0.85rem 0.95rem;
    border-radius: 0.75rem;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.02);
}
.dashboard-operacional__aulas-mes-titulo {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0 0 0.65rem;
    padding-bottom: 0.55rem;
    border-bottom: 1px solid var(--itera-border-subtle);
    font-size: 0.82rem;
    font-weight: 650;
    color: var(--itera-heading);
}
.dashboard-operacional__aulas-mes-titulo .bi {
    color: #93c5fd;
    font-size: 0.9rem;
}
.dashboard-operacional__aulas-vazio-mes {
    margin: 0;
    padding: 0.75rem 0;
    font-size: 0.84rem;
    color: var(--itera-text-muted);
    text-align: center;
}

.dashboard-operacional__card-head {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
    min-width: 0;
}
.dashboard-operacional__card-icone {
    flex-shrink: 0;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
}
.dashboard-operacional__card-icone--pessoal {
    background: rgba(37, 99, 235, 0.14);
    color: #93c5fd;
}
.dashboard-operacional__card-icone--agenda {
    background: rgba(13, 202, 240, 0.12);
    color: #67e8f9;
}
.dashboard-operacional__card-icone--equipe {
    background: rgba(255, 193, 7, 0.12);
    color: #ffd251;
}
.dashboard-operacional__card-icone--prep {
    background: rgba(30, 170, 90, 0.14);
    color: #63d89e;
}
.dashboard-operacional__card-icone--financeiro {
    background: rgba(122, 144, 255, 0.14);
    color: #a5b4fc;
}
.dashboard-operacional__card-icone--paciente {
    background: rgba(255, 107, 129, 0.12);
    color: #ff8da2;
}
.dashboard-operacional__card-titulos {
    min-width: 0;
    flex: 1 1 auto;
}
.dashboard-operacional__card-titulo {
    margin: 0;
    font-size: 1rem;
    font-weight: 650;
    color: var(--itera-heading);
}
.dashboard-operacional__card-subtitulo {
    margin: 0.15rem 0 0;
    font-size: 0.82rem;
    color: var(--itera-text-muted);
    line-height: 1.35;
}
.dashboard-operacional__card-ver {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.1rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #93c5fd;
    text-decoration: none;
    white-space: nowrap;
    padding-top: 0.2rem;
}
.dashboard-operacional__card-ver:hover {
    color: #bfdbfe;
}
.dashboard-operacional__card-ver i {
    font-size: 1.1rem;
    line-height: 1;
}

.dashboard-operacional__lista {
    display: grid;
    gap: 0.45rem;
}
.dashboard-operacional__lista--compacta {
    gap: 0.35rem;
}
.dashboard-operacional__item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.62rem 0.7rem;
    border: 1px solid var(--itera-border-subtle);
    border-radius: 0.7rem;
    background: rgba(255, 255, 255, 0.018);
    color: inherit;
    min-width: 0;
    transition: border-color 0.16s ease, background 0.16s ease, transform 0.16s ease;
}
.dashboard-operacional__item:hover {
    border-color: rgba(122, 144, 255, 0.38);
    background: rgba(255, 255, 255, 0.045);
    color: inherit;
    transform: translateX(2px);
}
.dashboard-operacional__item--hoje {
    border-color: rgba(30, 170, 90, 0.35);
    background: rgba(30, 170, 90, 0.06);
}
.dashboard-operacional__item--proxima_semana {
    border-color: rgba(37, 99, 235, 0.3);
    background: rgba(37, 99, 235, 0.05);
}
.dashboard-operacional__item-indicador {
    flex-shrink: 0;
    width: 0.28rem;
    align-self: stretch;
    border-radius: 999px;
    min-height: 2rem;
}
.dashboard-operacional__item-indicador--risk {
    background: #ff6b81;
}
.dashboard-operacional__item-indicador--warn {
    background: #ffd251;
}
.dashboard-operacional__item-indicador--muted {
    background: rgba(255, 255, 255, 0.2);
}
.dashboard-operacional__item-corpo {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
}
.dashboard-operacional__item-titulo {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--itera-heading);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-operacional__item-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.35rem;
    font-size: 0.78rem;
    color: var(--itera-text-muted);
    line-height: 1.35;
}
.dashboard-operacional__item-meta .bi {
    font-size: 0.72rem;
    opacity: 0.85;
}
.dashboard-operacional__item-sep {
    opacity: 0.5;
}
.dashboard-operacional__item-seta {
    flex-shrink: 0;
    font-size: 0.95rem;
    color: var(--itera-text-muted);
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity 0.16s ease, transform 0.16s ease;
}
.dashboard-operacional__item:hover .dashboard-operacional__item-seta {
    opacity: 0.75;
    transform: translateX(0);
}

.dashboard-operacional__data-pill {
    flex-shrink: 0;
    width: 2.65rem;
    padding: 0.35rem 0.25rem;
    border-radius: 0.55rem;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.04);
    text-align: center;
    line-height: 1.1;
}
.dashboard-operacional__data-pill--sm {
    width: 2.35rem;
    padding: 0.28rem 0.2rem;
}
.dashboard-operacional__data-dia {
    display: block;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--itera-heading);
    font-variant-numeric: tabular-nums;
}
.dashboard-operacional__data-mes {
    display: block;
    font-size: 0.62rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--itera-text-muted);
}

.dashboard-operacional__grupo + .dashboard-operacional__grupo {
    margin-top: 0.85rem;
}
.dashboard-operacional__grupo-titulo {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--itera-text-muted);
    margin: 0 0 0.45rem;
}
.dashboard-operacional__grupo-titulo--risk {
    color: #ff8da2;
}

.dashboard-operacional__vazio {
    text-align: center;
    padding: 1.35rem 1rem;
    border-radius: 0.75rem;
    border: 1px dashed var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.015);
}
.dashboard-operacional__vazio-icone {
    width: 2.6rem;
    height: 2.6rem;
    margin: 0 auto 0.65rem;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    color: var(--itera-text-muted);
    background: rgba(255, 255, 255, 0.05);
}
.dashboard-operacional__vazio-titulo {
    margin: 0 0 0.3rem;
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--itera-heading);
}
.dashboard-operacional__vazio-texto {
    margin: 0;
    font-size: 0.82rem;
    color: var(--itera-text-muted);
    line-height: 1.45;
    max-width: 26rem;
    margin-inline: auto;
}

.dashboard-operacional__resumo-turmas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
}
.dashboard-operacional__chip-turma {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    max-width: 100%;
    padding: 0.38rem 0.6rem;
    border-radius: 999px;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.03);
    color: inherit;
    font-size: 0.82rem;
    transition: border-color 0.16s ease, background 0.16s ease;
}
.dashboard-operacional__chip-turma:hover {
    border-color: rgba(122, 144, 255, 0.38);
    background: rgba(255, 255, 255, 0.05);
    color: inherit;
}

.dashboard-operacional__progresso {
    margin-top: 0.35rem;
    height: 0.35rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    overflow: hidden;
}
.dashboard-operacional__progresso-barra {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #1eaa5a, #4ade80);
    transition: width 0.3s ease;
}
.dashboard-operacional__progresso-legenda {
    margin-top: 0.2rem;
    font-size: 0.72rem;
    color: var(--itera-text-muted);
}

.dashboard-operacional__financeiro-resumo {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.85rem;
}
.dashboard-operacional__financeiro-metrica {
    padding: 0.75rem 0.85rem;
    border-radius: 0.7rem;
    border: 1px solid var(--itera-border-subtle);
    background: rgba(255, 255, 255, 0.03);
}
.dashboard-operacional__financeiro-rotulo {
    display: block;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--itera-text-muted);
}
.dashboard-operacional__financeiro-valor,
.dashboard-operacional__financeiro-qtd {
    display: block;
    margin-top: 0.2rem;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--itera-heading);
    font-variant-numeric: tabular-nums;
}

.dashboard-operacional__subbloco-divisor {
    border-top: 1px solid var(--itera-border-subtle);
}
.dashboard-operacional__avatar-paciente {
    flex-shrink: 0;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    background: rgba(255, 107, 129, 0.12);
    color: #ff8da2;
}

@media (max-width: 1199.98px) {
    .dashboard-resumo__grade {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 991.98px) {
    .dashboard-operacional__grid {
        grid-template-columns: 1fr;
    }
    .dashboard-operacional__bloco--full {
        grid-column: auto;
    }
    .dashboard-operacional__aulas-grid {
        grid-template-columns: 1fr;
    }
    .dashboard-operacional__hero {
        flex-direction: column;
    }
    .dashboard-operacional__hero-painel {
        flex: 1 1 auto;
        width: 100%;
    }
}
@media (max-width: 575.98px) {
    .dashboard-resumo {
        padding: 0.95rem;
    }
    .dashboard-resumo__grade {
        grid-template-columns: 1fr;
    }
    .dashboard-resumo__mes-linha {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
    .dashboard-resumo__mes-qtd {
        text-align: left;
    }
    .dashboard-operacional__card-head {
        flex-wrap: wrap;
    }
    .dashboard-operacional__card-ver {
        width: 100%;
        padding-top: 0;
    }
    .dashboard-operacional__item {
        flex-wrap: wrap;
    }
    .dashboard-operacional__item-seta {
        display: none;
    }
    .dashboard-operacional__financeiro-resumo {
        grid-template-columns: 1fr;
    }
}

/* ========== Responsividade mobile / telas pequenas ========== */

.itera-sidebar-backdrop {
    display: none;
}

body.itera-sidebar-open {
    overflow: hidden;
}

.itera-mobile-menu-btn {
    width: 2.5rem;
    min-width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--itera-border-subtle) !important;
    background: rgba(255, 255, 255, 0.04) !important;
    color: var(--itera-text-main) !important;
    flex-shrink: 0;
}

.itera-mobile-menu-btn .bi {
    font-size: 1.35rem;
    color: inherit !important;
}

@media (max-width: 991.98px) {
    .itera-sidebar-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1040;
        background: rgba(0, 0, 0, 0.58);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.22s ease;
    }

    .itera-layout.itera-sidebar-mobile-open .itera-sidebar-backdrop {
        opacity: 1;
        pointer-events: auto;
    }

    .itera-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: min(86vw, 290px);
        max-width: min(86vw, 290px);
        z-index: 1045;
        transform: translateX(-105%);
        transition: transform 0.24s ease;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        padding-top: max(1rem, env(safe-area-inset-top));
        padding-bottom: max(1rem, env(safe-area-inset-bottom));
        box-shadow: 8px 0 28px rgba(0, 0, 0, 0.35);
    }

    .itera-layout.itera-sidebar-mobile-open .itera-sidebar {
        transform: translateX(0);
    }

    .itera-layout.itera-sidebar-collapsed .itera-sidebar {
        width: min(86vw, 290px);
        max-width: min(86vw, 290px);
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .itera-layout.itera-sidebar-collapsed .itera-logo {
        justify-content: flex-start;
    }

    .itera-layout.itera-sidebar-collapsed .itera-logo-img {
        display: block;
    }

    .itera-layout.itera-sidebar-collapsed .itera-section-title,
    .itera-layout.itera-sidebar-collapsed .itera-sidebar-footer .small {
        display: block;
    }

    .itera-layout.itera-sidebar-collapsed .itera-nav-link {
        justify-content: flex-start;
        font-size: 0.92rem;
        padding: 0.65rem 0.75rem;
    }

    .itera-layout.itera-sidebar-collapsed .itera-nav-link i {
        margin-right: 0.5rem !important;
        font-size: 1rem;
    }

    .itera-sidebar-toggle {
        display: none;
    }

    .itera-nav-link {
        min-height: 44px;
        padding: 0.65rem 0.75rem;
    }

    .itera-main {
        width: 100%;
        min-width: 0;
    }

    .itera-topbar {
        padding-inline: max(0.75rem, env(safe-area-inset-left)) max(0.75rem, env(safe-area-inset-right)) !important;
        position: sticky;
        top: 0;
        z-index: 1030;
        background: rgba(12, 8, 10, 0.92);
        backdrop-filter: blur(8px);
        border-bottom: 1px solid var(--itera-border-subtle);
    }

    .itera-page-header.d-flex {
        flex-direction: column;
        align-items: stretch !important;
        gap: 0.75rem;
    }

    .itera-page-header.d-flex > .btn,
    .itera-page-header.d-flex > button.btn {
        width: 100%;
        margin-left: 0 !important;
    }

    .itera-page-header .itera-page-header__actions,
    .itera-page-header > .d-flex:where(:has(.btn), :has(.dropdown)) {
        width: 100%;
        margin-left: 0;
        justify-content: stretch;
    }

    .itera-page-header .itera-page-header__actions .btn,
    .itera-page-header > .d-flex .btn {
        flex: 1 1 calc(50% - 0.25rem);
        min-width: 0;
    }

    .itera-main .card-body {
        padding: 0.85rem;
    }

    .itera-main .table-responsive {
        margin-left: -0.15rem;
        margin-right: -0.15rem;
        border-radius: var(--itera-table-radius);
    }

    .itera-main .table > :not(caption) > * > * {
        padding: 0.55rem 0.6rem;
        font-size: 0.86rem;
    }

    .itera-form-panel.offcanvas,
    .itera-confirm-panel.offcanvas {
        width: 100% !important;
        max-width: 100%;
    }

    .itera-modal.itera-modal--half-viewport .modal-dialog {
        max-width: min(100%, 96vw);
        width: 96vw;
    }

    .itera-chat-ia-dialog {
        width: 96vw !important;
        max-width: 96vw !important;
        min-width: 0 !important;
        margin: 0.5rem auto;
    }

    .itera-chat-ia-modal .modal-body {
        min-height: min(62vh, 520px);
    }

    .itera-chat-ia-fab {
        right: max(0.85rem, env(safe-area-inset-right));
        bottom: max(0.85rem, env(safe-area-inset-bottom));
        width: 3.15rem;
        height: 3.15rem;
    }

    .itera-account-menu-btn__label {
        max-width: 8rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media (max-width: 767.98px) {
    main.container-fluid {
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }

    .itera-main main h1,
    .itera-main main h2 {
        font-size: clamp(1.25rem, 5vw, 1.65rem);
    }

    .modern-kpis {
        grid-template-columns: 1fr;
    }

    .home-hero {
        padding: 1rem;
    }

    .home-hero__logo {
        height: 48px;
    }

    .itera-main .row.g-2 > [class*="col-"],
    .itera-main .row.g-3 > [class*="col-"] {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .itera-main .d-flex.gap-2:not(.flex-wrap),
    .itera-main .d-flex.gap-3:not(.flex-wrap) {
        flex-wrap: wrap !important;
    }
}

@media (max-width: 575.98px) {
    main.container-fluid {
        padding-top: 0.85rem !important;
        padding-bottom: 0.85rem !important;
    }

    .itera-page-header .itera-page-header__actions .btn,
    .itera-page-header > .d-flex .btn {
        flex: 1 1 100%;
    }

    .itera-main .table thead th.text-end,
    .itera-main .table tbody td.text-end {
        white-space: nowrap;
    }

    .itera-main .btn-icon-action {
        min-width: 2.5rem;
        min-height: 2.5rem;
    }

    .itera-modal .modal-dialog,
    .itera-chat-ia-dialog,
    .itera-modal.itera-modal--half-viewport .modal-dialog {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0;
        height: 100%;
        max-height: none;
    }

    .itera-modal .modal-content,
    .itera-chat-ia-modal {
        min-height: 100dvh;
        border-radius: 0;
        border-left: none;
        border-right: none;
    }

    .itera-chat-ia-modal .modal-body {
        min-height: 0;
        flex: 1 1 auto;
    }

    .itera-chat-ia-contextos-lista {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.45rem;
    }

    .itera-chat-ia-contexto-btn {
        font-size: 0.78rem;
        padding: 0.5rem 0.45rem;
    }

    .login-form-side {
        padding: 1.5rem 1rem 2rem;
    }

    .login-image-side {
        flex: 0 0 160px;
        min-height: 160px;
    }

    .login-logo-img {
        height: 64px;
    }

    .login-title {
        font-size: 1.4rem;
    }

    .login-form-wrapper {
        max-width: 100%;
    }

    .itera-toast-stack {
        left: 0.75rem !important;
        right: 0.75rem !important;
        width: auto;
    }

    .itera-toast-stack .toast {
        width: 100%;
        max-width: 100%;
    }
}
