/* /Features/Ambiente/Diagnostico/AmbienteDiagnosticoPage.razor.rz.scp.css */
/* Cores por token do tema Telerik — o tema claro/escuro troca os --kendo-color-*.
   Token inventado faria o fallback vencer sempre e travar a tela num tema só. */
.diag-page__subtitle[b-drasxtkhq4],
.diag-desc[b-drasxtkhq4] {
    color: var(--kendo-color-subtle);
    margin: 0 0 12px;
}

.diag-contador[b-drasxtkhq4] {
    color: var(--kendo-color-subtle);
    font-variant-numeric: tabular-nums;
}

.diag-contador--achou[b-drasxtkhq4] {
    color: var(--kendo-color-warning);
    font-weight: 600;
}

.diag-erro[b-drasxtkhq4] {
    background: var(--kendo-color-base-subtle);
    border-left: 3px solid var(--kendo-color-error);
    color: var(--kendo-color-on-app-surface);
    padding: 8px 12px;
    margin-bottom: 12px;
}

.diag-resumo[b-drasxtkhq4] {
    background: var(--kendo-color-base-subtle);
    border: 1px solid var(--kendo-color-border);
    color: var(--kendo-color-on-app-surface);
    padding: 8px 12px;
    margin-bottom: 12px;
}

.diag-resumo ul[b-drasxtkhq4] {
    margin: 6px 0 0;
    padding-left: 20px;
}

.diag-confirma[b-drasxtkhq4] {
    background: var(--kendo-color-base-subtle);
    border-left: 3px solid var(--kendo-color-warning);
    color: var(--kendo-color-on-app-surface);
    padding: 8px 12px;
    margin-top: 12px;
}

.diag-filtro[b-drasxtkhq4] {
    margin-bottom: 12px;
}

.diag-emuso[b-drasxtkhq4] {
    color: var(--kendo-color-warning);
    font-weight: 600;
}
/* /Features/Ambiente/Implantacao/AmbienteImplantacaoPage.razor.rz.scp.css */
.impl-page__subtitle[b-zfftihx5vq] {
    margin: 0.25rem 0 0;
    color: var(--flowt-text-muted, #9aa0a6);
    max-width: 60ch;
}

.impl-tool__desc[b-zfftihx5vq] {
    margin: 0 0 1rem;
    max-width: 70ch;
}

.impl-tool__desc--sub[b-zfftihx5vq] {
    margin-top: 0.75rem;
    font-size: 0.85rem;
    color: var(--kendo-color-subtle, rgba(128, 128, 128, 0.85));
}

.impl-tool__actions[b-zfftihx5vq] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.impl-pend[b-zfftihx5vq] {
    margin: 0.5rem 0 0;
    padding-left: 1.2rem;
    max-height: 280px;
    overflow-y: auto;
}

.impl-pend li[b-zfftihx5vq] {
    margin-bottom: 0.25rem;
}

/* Opt-in da reconciliação de tipo: checkbox + explicação do que ele faz. */
.impl-reconciliar[b-zfftihx5vq] {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin-top: .9rem;
    padding: .7rem .85rem;
    border-radius: 4px;
    border-left: 3px solid var(--kendo-color-warning, #f0ad4e);
    background: var(--kendo-color-base-subtle);
}

.impl-reconciliar label[b-zfftihx5vq] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    cursor: pointer;
}

.impl-reconciliar__hint[b-zfftihx5vq] {
    font-size: .85rem;
    color: var(--kendo-color-subtle);
}

.impl-tag[b-zfftihx5vq] {
    display: inline-block;
    margin-left: 0.5rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    background: var(--flowt-warning-bg, #5a3d00);
    color: var(--flowt-warning-fg, #ffd479);
    vertical-align: middle;
}
/* /Features/Bs/BsAnex/AnexosCard.razor.rz.scp.css */
/* Cores vêm dos tokens do tema Telerik (--kendo-color-*), que trocam com o tema
   claro/escuro. Fallback existe só para o instante antes do CSS do tema carregar
   — nunca pode ser a cor efetiva. O card usava --flowt-surface/--flowt-border/
   --flowt-text-muted, que NÃO existem em lugar nenhum do CSS: o fallback escuro
   vencia sempre e o componente ficava preto no tema claro. */
.anexos-card[b-r3bdcrb522] {
    border: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
    border-radius: 4px;
    padding: .75rem 1rem;
    background: var(--kendo-color-surface, transparent);
    color: var(--kendo-color-on-app-surface, inherit);
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.anexos-card header[b-r3bdcrb522] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.anexos-card header h4[b-r3bdcrb522] {
    margin: 0;
    font-size: 1rem;
}

.anexos-card .count[b-r3bdcrb522] {
    color: var(--kendo-color-subtle, #888);
    font-weight: normal;
    font-size: .9em;
}

.anexos-card .empty[b-r3bdcrb522] {
    color: var(--kendo-color-subtle, #888);
    font-style: italic;
    margin: .25rem 0;
}

.anex-list[b-r3bdcrb522] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.anex-row[b-r3bdcrb522] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .35rem .5rem;
    border-radius: 3px;
    background: var(--kendo-color-base-subtle, transparent);
}

.anex-info[b-r3bdcrb522] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}

.anex-name[b-r3bdcrb522] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.anex-info small[b-r3bdcrb522] {
    color: var(--kendo-color-subtle, #888);
    font-size: .8em;
}

.anex-actions[b-r3bdcrb522] {
    display: flex;
    gap: .25rem;
    flex-shrink: 0;
}
/* /Features/Bs/BsNoti/NotificationsPanel.razor.rz.scp.css */
/* Spec 0067 — painel global de Notificações. Vive na camada Global (cobre top bar).
   Header/footer ficam por conta do ActionPanelHost (IPanelContent). */

.notifications-panel[b-s06jo26zgj] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    height: 100%;
    margin: -20px -24px; /* anula o padding do .panel-body — toolbar/lista colam nas bordas */
}

.notifications-toolbar[b-s06jo26zgj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 24px;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.05));
    flex: 0 0 auto;
}

.notifications-toolbar-actions[b-s06jo26zgj] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.notifications-link-button[b-s06jo26zgj] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: transparent;
    border: 0;
    padding: 6px 10px;
    border-radius: 6px;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.6));
    font-size: 0.8125rem;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.notifications-link-button:hover:not(:disabled)[b-s06jo26zgj] {
    background: var(--kendo-color-surface-alt, rgba(255, 255, 255, 0.06));
    color: var(--kendo-color-on-surface, #e8e8e8);
}

.notifications-link-button:disabled[b-s06jo26zgj] {
    opacity: 0.4;
    cursor: not-allowed;
}

.notifications-link-button .material-icons[b-s06jo26zgj] {
    font-size: 18px;
}

.notifications-state[b-s06jo26zgj] {
    padding: 32px 24px;
    text-align: center;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.5));
    font-size: 0.875rem;
}

.notifications-state--error[b-s06jo26zgj] {
    color: var(--kendo-color-error, #ef4444);
}

.notifications-empty[b-s06jo26zgj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding-top: 60px;
}

.notifications-empty .material-icons[b-s06jo26zgj] {
    font-size: 40px;
    opacity: 0.4;
}

.notifications-empty p[b-s06jo26zgj] {
    margin: 0;
}

.notifications-list[b-s06jo26zgj] {
    list-style: none;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    flex: 1 1 auto;
}

.notifications-item[b-s06jo26zgj] {
    display: flex;
    gap: 12px;
    padding: 14px 24px;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.04));
    cursor: pointer;
    transition: background 0.12s ease;
    outline: none;
    position: relative;
}

.notifications-item:hover[b-s06jo26zgj],
.notifications-item:focus-visible[b-s06jo26zgj] {
    background: var(--kendo-color-surface-alt, rgba(255, 255, 255, 0.04));
}

.notifications-item.is-unread[b-s06jo26zgj]::before {
    content: "";
    position: absolute;
    left: 10px;
    top: 22px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--kendo-color-primary, #6366f1);
}

.notifications-item.is-read[b-s06jo26zgj] {
    opacity: 0.6;
}

.notifications-item-icon[b-s06jo26zgj] {
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
    font-size: 20px !important;
    margin-top: 2px;
    flex: 0 0 auto;
}

.notifications-item.is-unread .notifications-item-icon[b-s06jo26zgj] {
    color: var(--kendo-color-on-surface, #e8e8e8);
}

.notifications-item-body[b-s06jo26zgj] {
    min-width: 0;
    flex: 1 1 auto;
}

.notifications-item-title[b-s06jo26zgj] {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--kendo-color-on-surface, #e8e8e8);
    line-height: 1.3;
}

.notifications-item-message[b-s06jo26zgj] {
    margin: 4px 0 0;
    font-size: 0.8125rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.65));
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.notifications-item-meta[b-s06jo26zgj] {
    margin-top: 6px;
    font-size: 0.75rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.45));
    display: flex;
    gap: 6px;
    align-items: center;
}

.notifications-meta-sep[b-s06jo26zgj] {
    opacity: 0.7;
}
/* /Features/Bs/BsRele/AboutDialog.razor.rz.scp.css */
.about-current[b-dhgkkbstja] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 16px;
}

.about-version[b-dhgkkbstja] {
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.about-title[b-dhgkkbstja] {
    font-size: 15px;
    font-weight: 400;
    color: var(--app-text, #ddd);
    margin-bottom: 8px;
}

.about-description[b-dhgkkbstja] {
    margin: 8px 0 12px 0;
    line-height: 1.5;
}

.about-description[b-dhgkkbstja]  p {
    margin: 6px 0;
}

.about-meta[b-dhgkkbstja] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 4px 12px;
    font-size: 13px;
    margin-top: 8px;
}

.about-meta dt[b-dhgkkbstja] {
    color: var(--app-text-muted, #888);
}

.about-meta dd[b-dhgkkbstja] {
    margin: 0;
    color: var(--app-text, #ddd);
}

/* Scroll do conteúdo: regra mora em app.css global como
   `.about-dialog .k-window-content`. O `::deep` NÃO funciona aqui — o markup
   raiz deste componente é o próprio <TelerikDialog> (sem elemento HTML para
   ancorar o scope), então `[b-xxx] .k-window-content` não casava e a regra era
   ignorada (conteúdo cortado, sem scroll). A classe `.about-dialog` vem do
   parâmetro Class do TelerikDialog. */

.about-history[b-dhgkkbstja] {
    margin-top: 24px;
    border-top: 1px solid var(--app-border-subtle, rgba(255, 255, 255, 0.06));
    padding-top: 12px;
}

.about-history h3[b-dhgkkbstja] {
    margin: 0 0 8px 0;
    font-size: 14px;
    font-weight: 600;
    position: sticky;
    top: 0;
    background: var(--app-surface, #1e1e1e);
    padding: 4px 0;
    z-index: 1;
}

.about-history-table[b-dhgkkbstja] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
    line-height: 1.5;
}

.about-history-table th[b-dhgkkbstja],
.about-history-table td[b-dhgkkbstja] {
    text-align: left;
    padding: 6px 8px;
    border-bottom: 1px solid var(--app-border-subtle, rgba(255, 255, 255, 0.04));
}

.about-pager[b-dhgkkbstja] {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-top: 10px;
    justify-content: flex-end;
    font-size: 12px;
}

.about-empty[b-dhgkkbstja] {
    color: var(--app-text-muted, #888);
}
/* /Features/Bs/BsRele/MandatoryUpdateModal.razor.rz.scp.css */
.mandatory-update-overlay[b-7el65ybbx1] {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.6);
}

.mandatory-update-card[b-7el65ybbx1] {
    max-width: 420px;
    padding: 1.5rem 2rem;
    border-radius: 8px;
    background: var(--kendo-color-surface, #1e1e1e);
    color: var(--kendo-color-on-surface, #fafafa);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
    text-align: center;
}

.mandatory-update-title[b-7el65ybbx1] {
    margin: 0 0 0.75rem;
    font-size: 1.125rem;
    font-weight: 600;
}

.mandatory-update-actions[b-7el65ybbx1] {
    display: flex;
    justify-content: center;
    margin-top: 1rem;
}
/* /Features/Bs/BsRele/ReleaseFooter.razor.rz.scp.css */
.release-footer[b-zs11wifcpx] {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    font-size: 11px;
    color: var(--app-text-muted, #888);
    background: transparent;
}

.release-footer.compact[b-zs11wifcpx] {
    justify-content: center;
}

.release-footer.compact .release-footer-link[b-zs11wifcpx] {
    padding: 2px 0;
}

.release-footer-link[b-zs11wifcpx] {
    background: none;
    border: 0;
    padding: 2px 6px;
    color: inherit;
    font: inherit;
    cursor: pointer;
    display: inline-flex;
    gap: 6px;
    align-items: center;
}

.release-footer-link:hover[b-zs11wifcpx] {
    color: var(--app-text, #ddd);
    text-decoration: underline;
}

.release-footer-logo[b-zs11wifcpx] {
    height: 14px;
    width: auto;
    flex-shrink: 0;
    display: inline-block;
    vertical-align: middle;
}

.release-footer.compact .release-footer-logo[b-zs11wifcpx] {
    height: 16px;
}

/* Swap dark/light pela flag de tema injetada no <html> por index.html. */
:root[data-scheme="light"] .release-footer-logo--dark[b-zs11wifcpx],
:root:not([data-scheme="light"]) .release-footer-logo--light[b-zs11wifcpx] {
    display: none;
}

.release-footer-version[b-zs11wifcpx] {
    font-weight: 600;
}

.release-footer-applied[b-zs11wifcpx] {
    color: var(--app-text-muted, #888);
}

@media (max-width: 640px) {
    .release-footer-applied[b-zs11wifcpx] {
        display: none;
    }
}
/* /Features/In/Dv360/Carga/Dv360CargaPage.razor.rz.scp.css */
.dv360-section-title[b-06barvtqfi] {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 0.35rem;
}

.dv360-section-hint[b-06barvtqfi] {
    margin: 0 0 0.85rem;
    color: var(--kendo-color-subtle, #6b7280);
    font-size: 0.9rem;
}

.dv360-file[b-06barvtqfi] {
    display: inline-block;
    margin-top: 0.35rem;
    color: var(--kendo-color-subtle, #6b7280);
    font-size: 0.85rem;
}

.dv360-alert[b-06barvtqfi],
.dv360-ok[b-06barvtqfi] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border-radius: 4px;
    border: 1px solid;
}

.dv360-alert[b-06barvtqfi] {
    border-color: var(--kendo-color-error, #d9534f);
    color: var(--kendo-color-error, #d9534f);
    background: color-mix(in srgb, var(--kendo-color-error, #d9534f) 8%, transparent);
}

.dv360-ok[b-06barvtqfi] {
    border-color: var(--kendo-color-success, #2e7d32);
    color: var(--kendo-color-success, #2e7d32);
    background: color-mix(in srgb, var(--kendo-color-success, #2e7d32) 8%, transparent);
}
/* /Features/In/Dv360/Consulta/Dv360ConsultaPage.razor.rz.scp.css */
.dv360-alert[b-31kqisem1t] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border-radius: 4px;
    border: 1px solid var(--kendo-color-error, #d9534f);
    color: var(--kendo-color-error, #d9534f);
    background: color-mix(in srgb, var(--kendo-color-error, #d9534f) 8%, transparent);
}
/* /Features/In/Dv360/ValidacaoAcesso/Dv360ValidacaoAcessoPage.razor.rz.scp.css */
/* Alerta de erro da validação (credencial inválida, report FAILED, timeout).
   Seletor plain — o elemento é do próprio componente, o scope [b-xxx] casa. */
.dv360-alert[b-3ir6fnyyvw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--kendo-color-error, #d9534f);
    border-radius: 4px;
    color: var(--kendo-color-error, #d9534f);
    background: color-mix(in srgb, var(--kendo-color-error, #d9534f) 8%, transparent);
}
/* /Features/In/Vbs/Consulta/Shared/ReintegrarForcadoButton.razor.rz.scp.css */
/* Estado "executando" do dialog de re-integração forçada — loader centralizado
   enquanto o servidor processa o lote de forma síncrona (pode levar minutos). */
.vbs-reintegr-running[b-jilhu3tmcs] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem 0.5rem;
    text-align: center;
}

.vbs-reintegr-running-msg[b-jilhu3tmcs] {
    margin: 0;
    line-height: 1.5;
}
/* /Features/In/Vbs/InFalh/MotivoBadge.razor.rz.scp.css */
.motivo-badge[b-jokpvp482e] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
    border: 1px solid transparent;
}

.motivo-badge--danger[b-jokpvp482e] {
    background: rgba(220, 53, 69, 0.16);
    color: #ff6b7a;
    border-color: rgba(220, 53, 69, 0.4);
}

.motivo-badge--warn[b-jokpvp482e] {
    background: rgba(255, 138, 0, 0.16);
    color: #ffa94d;
    border-color: rgba(255, 138, 0, 0.4);
}

.motivo-badge--amber[b-jokpvp482e] {
    background: rgba(255, 193, 7, 0.16);
    color: #ffd24d;
    border-color: rgba(255, 193, 7, 0.4);
}

.motivo-badge--muted[b-jokpvp482e] {
    background: rgba(148, 163, 184, 0.16);
    color: #cbd5e1;
    border-color: rgba(148, 163, 184, 0.35);
}

.motivo-badge--neutral[b-jokpvp482e] {
    background: rgba(99, 102, 241, 0.14);
    color: #a5b4fc;
    border-color: rgba(99, 102, 241, 0.35);
}
/* /Features/In/Vbs/InFalh/VbsInFalhInspecaoPage.razor.rz.scp.css */
.infalh-header[b-aqenhm48ma] {
    display: flex;
    align-items: baseline;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.infalh-header h2[b-aqenhm48ma] {
    margin: 0;
}

.infalh-header__resumo[b-aqenhm48ma] {
    color: var(--flowt-text-muted, #94a3b8);
    font-size: 0.9rem;
}

.infalh-filtros[b-aqenhm48ma] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
}

.infalh-filtros__linha[b-aqenhm48ma] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.infalh-check[b-aqenhm48ma] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.9rem;
}

.infalh-lote-toolbar[b-aqenhm48ma] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
    min-height: 36px;
}

.infalh-lote-toolbar__count[b-aqenhm48ma] {
    color: var(--flowt-text-muted, #94a3b8);
    font-size: 0.9rem;
}

.infalh-ns[b-aqenhm48ma] {
    font-family: var(--flowt-font-mono, ui-monospace, monospace);
}

.infalh-hist[b-aqenhm48ma] {
    margin-left: 6px;
    color: var(--flowt-text-muted, #94a3b8);
    font-size: 0.8rem;
}

.infalh-muted[b-aqenhm48ma] {
    color: var(--flowt-text-muted, #94a3b8);
}

.infalh-footer[b-aqenhm48ma] {
    margin-top: 10px;
    color: var(--flowt-text-muted, #94a3b8);
    font-size: 0.82rem;
}
/* /Features/Mi/MediaCenter/Dashboard/MediaCenterDashboardPage.razor.rz.scp.css */
.mc-filter-label[b-36yw8qsf3p] {
    font-weight: 600;
    color: var(--kendo-color-subtle);
    margin: 0 4px 0 10px;
}

.mc-dash-grid[b-36yw8qsf3p] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 8px;
}

.mc-dash-wide[b-36yw8qsf3p] {
    grid-column: 1 / -1;
}

@media (max-width: 900px) {
    .mc-dash-grid[b-36yw8qsf3p] {
        grid-template-columns: 1fr;
    }
}

.mc-dash-title[b-36yw8qsf3p] {
    margin: 0 0 8px;
    font-size: 1rem;
    font-weight: 600;
}

.mc-dash-empty[b-36yw8qsf3p] {
    padding: 40px;
    text-align: center;
    color: var(--kendo-color-subtle);
}
/* /Features/Mi/MediaCenter/Edicao/MediaCenterEdicaoPage.razor.rz.scp.css */
.mc-edit-toolbar[b-nmcce94wph] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
}

.mc-exportar-importar[b-nmcce94wph] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.mc-year-label[b-nmcce94wph] {
    font-weight: 600;
    color: var(--kendo-color-subtle);
    margin-right: 2px;
}

.mc-lock-note[b-nmcce94wph] {
    padding: 6px 12px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--kendo-color-warning) 16%, transparent);
    color: var(--kendo-color-warning);
    font-weight: 600;
    font-size: .85rem;
}

/* Card de total (canto superior direito) */
.mc-total-card[b-nmcce94wph] {
    min-width: 180px;
    padding: 12px 18px;
    border: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
    border-radius: 10px;
    background: var(--kendo-color-base, rgba(128, 128, 128, .08));
    text-align: right;
}

.mc-total-card__label[b-nmcce94wph] {
    font-size: .8rem;
    color: var(--kendo-color-subtle);
}

.mc-total-card__value[b-nmcce94wph] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--kendo-color-primary);
}

.mc-total-card__label--bruto[b-nmcce94wph] {
    margin-top: 6px;
}

.mc-total-card__value--bruto[b-nmcce94wph] {
    font-size: 1.15rem;
    color: var(--kendo-color-on-base, inherit);
}

.mc-grade__grand--bruto td[b-nmcce94wph] {
    color: var(--kendo-color-subtle);
    border-top: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
}

/* Grade — container de scroll nos DOIS eixos (spec 0459): vertical limitado por
   max-height para o cabeçalho sticky grudar no topo do container, horizontal para
   os 12 meses. Sem o limite de altura o thead sticky não teria referência de scroll. */
.mc-grade-scroll[b-nmcce94wph] {
    overflow: auto;
    max-height: calc(100vh - 240px);
    margin-top: 8px;
}

.mc-grade[b-nmcce94wph] {
    border-collapse: collapse;
    width: 100%;
    font-size: .88rem;
    color: var(--kendo-color-on-base, inherit);
}

.mc-grade th[b-nmcce94wph],
.mc-grade td[b-nmcce94wph] {
    border: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
    padding: 2px 6px;
    text-align: right;
    white-space: nowrap;
}

/* Célula editável: sem padding extra e sem setas de sobe/desce (ocupam espaço). */
.mc-grade td.mc-grade__cell[b-nmcce94wph] {
    padding: 1px 2px;
}

.mc-grade[b-nmcce94wph]  .k-input-spinner {
    display: none;
}

.mc-grade[b-nmcce94wph]  .mc-cell-input {
    min-width: 0;
}

/* Reduz o padding interno do editor pra caber valor na casa dos 100M sem truncar. */
.mc-grade[b-nmcce94wph]  .mc-cell-input .k-input-inner {
    padding-inline: 3px;
    text-align: right;
}

/* Célula em edição fora do foco (V0.992 spec 0690): texto focável — o editor só monta sob
   foco. A altura acompanha a do editor para a linha não "pular" ao abrir. */
.mc-cell-text[b-nmcce94wph] {
    display: block;
    min-height: 1.9em;
    line-height: 1.9em;
    padding-inline: 3px;
    cursor: text;
    outline: none;
}

.mc-cell-text:focus[b-nmcce94wph] {
    box-shadow: inset 0 0 0 2px var(--kendo-color-primary);
}

.mc-grade__inativo[b-nmcce94wph] {
    margin-left: 6px;
    font-size: .78rem;
    font-weight: 400;
    color: var(--kendo-color-subtle);
}

.mc-grade__vazio-acao[b-nmcce94wph] {
    margin-top: 10px;
}

.mc-grade td.mc-grade__vazio[b-nmcce94wph] {
    text-align: center;
    padding: 24px 12px;
    white-space: normal;
    color: var(--kendo-color-subtle);
}

/* Cabeçalho de meses sticky no topo (spec 0459): fundo OPACO e acima do corpo,
   para as linhas rolarem por baixo. z-index 2 (acima das células de mês do corpo). */
.mc-grade thead th[b-nmcce94wph] {
    position: sticky;
    top: 0;
    background: var(--kendo-color-app-surface);
    font-weight: 600;
    z-index: 2;
}

/* Primeira coluna (Veículo) congelada à esquerda — z-index 3, acima das células
   de mês do corpo, para elas rolarem POR BAIXO sem sobreposição (spec 0459). */
.mc-grade th.mc-grade__veic[b-nmcce94wph],
.mc-grade td.mc-grade__veic[b-nmcce94wph] {
    text-align: left;
    position: sticky;
    left: 0;
    background: var(--kendo-color-app-surface);
    min-width: 150px;
    z-index: 3;
}

/* Célula de canto (cabeçalho × 1ª coluna) — sticky nos dois eixos, topo de tudo. */
.mc-grade thead th.mc-grade__veic[b-nmcce94wph] {
    z-index: 4;
}

.mc-grade__mo[b-nmcce94wph] {
    min-width: 96px;
}

.mc-grade__total-col[b-nmcce94wph] {
    font-weight: 700;
    background: var(--kendo-color-base, rgba(128, 128, 128, .1));
}

/* Linha de Meio (agrupador) + subtotais */
.mc-grade__meio[b-nmcce94wph] {
    cursor: pointer;
    font-weight: 600;
}

.mc-grade__meio td[b-nmcce94wph],
.mc-grade__meio td.mc-grade__veic[b-nmcce94wph] {
    background: var(--kendo-color-base, rgba(128, 128, 128, .12));
}

.mc-grade__meio:hover td[b-nmcce94wph] {
    background: var(--kendo-color-surface, rgba(128, 128, 128, .2));
}

.mc-grade__sub[b-nmcce94wph] {
    color: var(--kendo-color-subtle);
}

/* Célula editada (dirty) — realce translúcido da cor primária (compõe nos dois temas) */
.mc-grade__cell--dirty[b-nmcce94wph] {
    background: color-mix(in srgb, var(--kendo-color-primary) 18%, transparent);
}

/* Linha de total geral */
.mc-grade__grand td[b-nmcce94wph] {
    font-weight: 700;
    background: var(--kendo-color-base, rgba(128, 128, 128, .16));
    border-top: 2px solid var(--kendo-color-border, rgba(128, 128, 128, .5));
}
/* /Features/Mi/MediaCenter/MediaCenterClientesPage.razor.rz.scp.css */
/* V0.954 spec 0462: 4+ cards por linha conforme a resolução. auto-fill preenche
   quantas colunas couberem (≥4 em telas largas, colapsa em telas estreitas). */
.mc-card-grid[b-cq9c7xxnjz] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
    margin-top: 8px;
}

.mc-card[b-cq9c7xxnjz] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 18px 20px;
    text-align: left;
    color: var(--kendo-color-on-base, inherit);
    background: var(--kendo-color-base, rgba(128, 128, 128, .06));
    border: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
    border-radius: 10px;
    cursor: pointer;
    transition: box-shadow .15s ease, border-color .15s ease, transform .05s ease;
}

.mc-card:hover[b-cq9c7xxnjz] {
    border-color: var(--kendo-color-primary);
    box-shadow: 0 2px 10px rgba(0, 0, 0, .12);
}

.mc-card:active[b-cq9c7xxnjz] {
    transform: translateY(1px);
}

.mc-card__name[b-cq9c7xxnjz] {
    font-size: 1.05rem;
    font-weight: 600;
}

.mc-card__total[b-cq9c7xxnjz] {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--kendo-color-primary);
}

.mc-card__total-tag[b-cq9c7xxnjz] {
    font-size: .72rem;
    font-weight: 600;
    color: var(--kendo-color-subtle);
    vertical-align: middle;
    margin-left: 4px;
}

/* Valor bruto (spec 0462) — secundário ao líquido. */
.mc-card__bruto[b-cq9c7xxnjz] {
    font-size: 1.0rem;
    font-weight: 600;
    color: var(--kendo-color-subtle);
    margin-top: -4px;
}

/* Card de cliente inativo — esmaecido (spec 0462). */
.mc-card--inactive[b-cq9c7xxnjz] {
    opacity: .62;
}

.mc-badge--inactive[b-cq9c7xxnjz] {
    background: color-mix(in srgb, var(--kendo-color-subtle) 22%, transparent);
    color: var(--kendo-color-subtle);
    margin-right: 6px;
}

/* Toggle "Mostrar inativos" na toolbar (spec 0462). */
.mc-inactive-toggle[b-cq9c7xxnjz] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 14px;
    font-size: .88rem;
    color: var(--kendo-color-subtle);
    cursor: pointer;
    white-space: nowrap;
}

.mc-card__meta[b-cq9c7xxnjz] {
    margin-top: 2px;
}

.mc-badge[b-cq9c7xxnjz] {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 600;
}

.mc-badge--free[b-cq9c7xxnjz] {
    background: color-mix(in srgb, var(--kendo-color-success) 16%, transparent);
    color: var(--kendo-color-success);
}

.mc-badge--editing[b-cq9c7xxnjz] {
    background: color-mix(in srgb, var(--kendo-color-warning) 18%, transparent);
    color: var(--kendo-color-warning);
}

.mc-card__updated[b-cq9c7xxnjz] {
    font-size: .8rem;
    color: var(--kendo-color-subtle);
}

.mc-empty[b-cq9c7xxnjz] {
    padding: 32px;
    text-align: center;
    color: var(--kendo-color-subtle);
}
/* /Features/Mi/MediaCenter/OrdemMeio/MediaCenterOrdemMeioPage.razor.rz.scp.css */
.mc-ordem-pos[b-2uesmbe0dn] {
    display: inline-block;
    min-width: 24px;
    text-align: center;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    opacity: 0.7;
}
/* /Features/Mi/MediaCenter/Versao/MediaCenterSalvarVersaoPage.razor.rz.scp.css */
.mc-year-label[b-4uw4pc1shi] {
    font-weight: 600;
    color: var(--kendo-color-subtle);
    margin-right: 4px;
}

.mc-grade-scroll[b-4uw4pc1shi] {
    overflow-x: auto;
    margin-top: 8px;
}

.mc-grade[b-4uw4pc1shi] {
    border-collapse: collapse;
    width: 100%;
    font-size: .88rem;
    color: var(--kendo-color-on-base, inherit);
}

.mc-grade th[b-4uw4pc1shi],
.mc-grade td[b-4uw4pc1shi] {
    border: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
    padding: 2px 6px;
    text-align: right;
    white-space: nowrap;
}

.mc-grade thead th[b-4uw4pc1shi] {
    background: var(--kendo-color-base, rgba(128, 128, 128, .1));
    font-weight: 600;
}

.mc-grade th.mc-grade__veic[b-4uw4pc1shi],
.mc-grade td.mc-grade__veic[b-4uw4pc1shi] {
    text-align: left;
    position: sticky;
    left: 0;
    background: var(--kendo-color-app-surface);
    min-width: 180px;
    z-index: 1;
}

.mc-grade__mo[b-4uw4pc1shi] {
    min-width: 100px;
}

.mc-grade__total-cell[b-4uw4pc1shi] {
    font-weight: 700;
    background: var(--kendo-color-base, rgba(128, 128, 128, .12));
}

.mc-grade__empty[b-4uw4pc1shi] {
    text-align: center;
    color: var(--kendo-color-subtle);
    padding: 24px;
}

.mc-edit-toolbar[b-4uw4pc1shi] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
}

.mc-total-card[b-4uw4pc1shi] {
    min-width: 180px;
    padding: 12px 18px;
    border: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
    border-radius: 10px;
    background: var(--kendo-color-base, rgba(128, 128, 128, .08));
    text-align: right;
}

.mc-total-card__label[b-4uw4pc1shi] {
    font-size: .8rem;
    color: var(--kendo-color-subtle);
}

.mc-total-card__label--bruto[b-4uw4pc1shi] {
    margin-top: 6px;
}

.mc-total-card__value[b-4uw4pc1shi] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--kendo-color-primary);
}

.mc-total-card__value--bruto[b-4uw4pc1shi] {
    font-size: 1.15rem;
    color: var(--kendo-color-on-base, inherit);
}

.mc-grade__grand td[b-4uw4pc1shi] {
    font-weight: 700;
    background: var(--kendo-color-base, rgba(128, 128, 128, .16));
    border-top: 2px solid var(--kendo-color-border, rgba(128, 128, 128, .5));
}

.mc-grade__grand--bruto td[b-4uw4pc1shi] {
    color: var(--kendo-color-subtle);
    border-top: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
}
/* /Features/Mi/MediaCenter/Versoes/MediaCenterVersaoDetailPage.razor.rz.scp.css */
/* Container de scroll nos dois eixos (spec 0459) — vertical limitado para o
   cabeçalho sticky grudar; horizontal para os meses. */
.mc-grade-scroll[b-jazp51db9n] {
    overflow: auto;
    max-height: calc(100vh - 240px);
    margin-top: 8px;
}

.mc-grade[b-jazp51db9n] {
    border-collapse: collapse;
    width: 100%;
    font-size: .88rem;
    color: var(--kendo-color-on-base, inherit);
}

.mc-grade th[b-jazp51db9n],
.mc-grade td[b-jazp51db9n] {
    border: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
    padding: 2px 6px;
    text-align: right;
    white-space: nowrap;
}

/* Cabeçalho sticky no topo (spec 0459) — fundo opaco, acima do corpo. */
.mc-grade thead th[b-jazp51db9n] {
    position: sticky;
    top: 0;
    background: var(--kendo-color-app-surface);
    z-index: 2;
}

.mc-grade th.mc-grade__veic[b-jazp51db9n],
.mc-grade td.mc-grade__veic[b-jazp51db9n] {
    text-align: left;
    position: sticky;
    left: 0;
    background: var(--kendo-color-app-surface);
    min-width: 260px;
    z-index: 3;
}

/* Célula de canto — sticky nos dois eixos, topo de tudo (spec 0459). */
.mc-grade thead th.mc-grade__veic[b-jazp51db9n] {
    z-index: 4;
}

.mc-grade__mo[b-jazp51db9n] {
    min-width: 100px;
}

.mc-grade__total-cell[b-jazp51db9n] {
    font-weight: 700;
    background: var(--kendo-color-base, rgba(128, 128, 128, .12));
}

.mc-node[b-jazp51db9n] {
    cursor: pointer;
}

.mc-node--clie td.mc-grade__veic[b-jazp51db9n] {
    font-weight: 700;
    background: var(--kendo-color-base, rgba(128, 128, 128, .14));
}

.mc-node--meio td.mc-grade__veic[b-jazp51db9n] {
    font-weight: 600;
    background: var(--kendo-color-surface, rgba(128, 128, 128, .08));
}

.mc-node:hover td.mc-grade__veic[b-jazp51db9n] {
    background: var(--kendo-color-surface, rgba(128, 128, 128, .18));
}

.mc-indent-1[b-jazp51db9n] {
    padding-left: 28px !important;
}

.mc-indent-2[b-jazp51db9n] {
    padding-left: 52px !important;
}

.mc-grade__empty[b-jazp51db9n] {
    text-align: center;
    color: var(--kendo-color-subtle);
    padding: 24px;
}

.mc-total-card[b-jazp51db9n] {
    min-width: 180px;
    padding: 12px 18px;
    border: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
    border-radius: 10px;
    background: var(--kendo-color-base, rgba(128, 128, 128, .08));
    text-align: right;
}

.mc-total-card__label[b-jazp51db9n] {
    font-size: .8rem;
    color: var(--kendo-color-subtle);
}

.mc-total-card__label--bruto[b-jazp51db9n] {
    margin-top: 6px;
}

.mc-total-card__value[b-jazp51db9n] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--kendo-color-primary);
}

.mc-total-card__value--bruto[b-jazp51db9n] {
    font-size: 1.15rem;
    color: var(--kendo-color-on-base, inherit);
}

.mc-grade__sub[b-jazp51db9n] {
    color: var(--kendo-color-subtle);
}

.mc-grade__grand td[b-jazp51db9n] {
    font-weight: 700;
    background: var(--kendo-color-base, rgba(128, 128, 128, .16));
    border-top: 2px solid var(--kendo-color-border, rgba(128, 128, 128, .5));
}

.mc-grade__grand--bruto td[b-jazp51db9n] {
    color: var(--kendo-color-subtle);
    border-top: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
}
/* /Features/Mi/MiPlano/Consulta/MiPlanoConsultaPage.razor.rz.scp.css */
/* V0.989 spec 0672 — Consulta de Linhas. Só o que as classes globais não cobrem. */

/* Os cards ocupam a largura toda, quantos forem (a contagem + uma soma por coluna monetária visível). */
.mi-consulta__totais[b-vbdyr494wu] {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    margin-bottom: 8px;
}

/* Ações do resultado na barra do grid, à direita. */
.mi-consulta__acoes[b-vbdyr494wu] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.mi-consulta__aviso[b-vbdyr494wu] {
    align-self: center;
    font-size: .85rem;
    color: var(--kendo-color-warning);
}

/* Número à direita, texto e data à esquerda. */
.mi-consulta__num[b-vbdyr494wu] {
    display: block;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
/* /Features/Mi/MiPlano/ExecucaoIndexPage.razor.rz.scp.css */
/* V0.958 spec 0478 — índice da Execução: cards de linha inteira.
   Cores via variáveis do tema Kendo (claro/escuro). */

.exec-idx[b-xs1knmyi17] { display: flex; flex-direction: column; gap: 10px; }

.exec-idx__card[b-xs1knmyi17] {
    /* id + meios à esquerda; total/métricas/solicitante/ações à direita (margin-left:auto no total).
       O espaço vazio entre os dois grupos cresce com a largura da tela. */
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 22px;
    padding: 14px 18px;
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    border-radius: 10px;
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, 0.03));
    transition: border-color .15s, background .15s;
    cursor: pointer;
}

.exec-idx__id[b-xs1knmyi17] { flex: 0 1 auto; min-width: 190px; max-width: 320px; }
.exec-idx__meios[b-xs1knmyi17] { flex: 0 1 auto; }
.exec-idx__total[b-xs1knmyi17] { flex: 0 0 auto; margin-left: auto; }
.exec-idx__metrics[b-xs1knmyi17] { flex: 0 0 auto; }
.exec-idx__req[b-xs1knmyi17] { flex: 0 0 auto; max-width: 200px; }
.exec-idx__alerta[b-xs1knmyi17] { flex: 0 0 auto; }
.exec-idx__actions[b-xs1knmyi17] { flex: 0 0 auto; }

/* Destaque de solicitações de alteração pendentes — mesmo glifo da linha (V0.959). */
.exec-idx__alerta[b-xs1knmyi17] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    border-radius: 999px;
    color: var(--kendo-color-warning, #ffb400);
    background: color-mix(in srgb, var(--kendo-color-warning, #ffb400) 16%, transparent);
    font-weight: 700;
}
.exec-idx__alerta-val[b-xs1knmyi17] { font-size: .9rem; line-height: 1; }
.exec-idx__card:hover[b-xs1knmyi17] { border-color: var(--kendo-color-primary, #ff5252); }

.exec-idx__id[b-xs1knmyi17] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.exec-idx__id-top[b-xs1knmyi17] { display: flex; align-items: center; gap: 8px; }
.exec-idx__cd[b-xs1knmyi17] { font-size: .72rem; font-weight: 700; color: var(--kendo-color-primary, #ff5252); }
.exec-idx__ver[b-xs1knmyi17] {
    font-size: .68rem;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--kendo-color-base, rgba(255, 255, 255, 0.08));
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    color: var(--kendo-color-subtle, #9a9a9a);
}
.exec-idx__nm[b-xs1knmyi17] { font-weight: 600; font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.exec-idx__cli[b-xs1knmyi17] { font-size: .8rem; color: var(--kendo-color-subtle, #9a9a9a); }

.exec-idx__meios[b-xs1knmyi17] { display: flex; flex-wrap: wrap; gap: 4px; }
.exec-idx__meio[b-xs1knmyi17] {
    font-size: .72rem;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--kendo-color-base, rgba(255, 255, 255, 0.08));
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
}
.exec-idx__meio--none[b-xs1knmyi17] { color: var(--kendo-color-subtle, #9a9a9a); font-style: italic; }

.exec-idx__cell-label[b-xs1knmyi17] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--kendo-color-subtle, #9a9a9a);
}

.exec-idx__total[b-xs1knmyi17] { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.exec-idx__total-val[b-xs1knmyi17] { font-weight: 700; font-size: .95rem; }

.exec-idx__metrics[b-xs1knmyi17] { display: flex; gap: 14px; justify-content: flex-start; }
.exec-idx__metric[b-xs1knmyi17] { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.exec-idx__metric-val[b-xs1knmyi17] { font-size: 1.15rem; font-weight: 700; line-height: 1; }
.exec-idx__metric--pend .exec-idx__metric-val[b-xs1knmyi17] { color: var(--kendo-color-warning, #ffb400); }

.exec-idx__req[b-xs1knmyi17] { display: flex; flex-direction: column; gap: 2px; }
.exec-idx__req-val[b-xs1knmyi17] { font-size: .85rem; }

.exec-idx__actions[b-xs1knmyi17] { display: flex; gap: 6px; justify-self: end; }
.exec-idx__empty[b-xs1knmyi17] { color: var(--kendo-color-subtle, #9a9a9a); padding: 24px 4px; }

@media (max-width: 720px) {
    /* Em telas estreitas o total deixa de empurrar para a direita e tudo flui em linhas. */
    .exec-idx__total[b-xs1knmyi17] { margin-left: 0; }
}
/* /Features/Mi/MiPlano/ExecucaoPage.razor.rz.scp.css */
/* V0.958 spec 0478 — bancada de Execução em grid (pauta por linha).
   Cores via variáveis do tema Kendo (claro/escuro). */

.exec-empty[b-zt2awouy3q] { color: var(--kendo-color-subtle, #9a9a9a); padding: 24px 4px; }

/* Gargalo (subtítulo) empilhado abaixo do nome do plano. */
.page-header__title[b-zt2awouy3q] { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }

.exec-grid__cd[b-zt2awouy3q] { font-weight: 600; }

.exec-grid__resp[b-zt2awouy3q] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.exec-grid__resp-nm[b-zt2awouy3q] { font-size: .85rem; }

.exec-grid__mat[b-zt2awouy3q] {
    font-size: .72rem;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--kendo-color-base, rgba(255, 255, 255, 0.08));
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
}
.exec-grid__mat--none[b-zt2awouy3q] { color: var(--kendo-color-subtle, #9a9a9a); }

.exec-grid__detail[b-zt2awouy3q] { padding: 8px 4px; }

/* Linhas da compra, em leitura, dentro do detalhe. */
.exec-linhas[b-zt2awouy3q] { width: 100%; border-collapse: collapse; }
.exec-linhas th[b-zt2awouy3q],
.exec-linhas td[b-zt2awouy3q] { text-align: left; padding: 5px 10px; border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12)); }
.exec-linhas th[b-zt2awouy3q] { font-size: .78rem; color: var(--kendo-color-subtle, #9a9a9a); font-weight: 600; }
.exec-linhas__num[b-zt2awouy3q] { text-align: right; }
.exec-linhas__pendente td[b-zt2awouy3q] { background: var(--kendo-color-warning-subtle, rgba(224, 168, 0, 0.12)); }

/* Contador de solicitações em aberto na compra. */
.exec-grid__badge[b-zt2awouy3q] {
    display: inline-block;
    min-width: 20px;
    text-align: center;
    font-size: .72rem;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--kendo-color-warning, #e0a800);
    color: var(--kendo-color-on-warning, #1a1a1a);
}

.exec-chat[b-zt2awouy3q] { margin-top: 20px; }

/* V0.959 spec 0483 — destaque forte de linha com solicitação de alteração pendente. */
[b-zt2awouy3q] .exec-grid__pendente > td {
    background: var(--kendo-color-warning-subtle, rgba(224, 168, 0, 0.12)) !important;
    box-shadow: inset 3px 0 0 0 var(--kendo-color-warning, #e0a800);
}

/* Tabela atual → proposto do dialog de resolução. */
.exec-resolver__meta[b-zt2awouy3q] { color: var(--kendo-color-subtle, #9a9a9a); margin-bottom: 12px; }
.exec-resolver__table[b-zt2awouy3q] { width: 100%; border-collapse: collapse; margin-bottom: 12px; }
.exec-resolver__table th[b-zt2awouy3q],
.exec-resolver__table td[b-zt2awouy3q] { text-align: left; padding: 6px 10px; border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12)); }
.exec-resolver__diff td[b-zt2awouy3q] { background: var(--kendo-color-warning-subtle, rgba(224, 168, 0, 0.12)); font-weight: 600; }

/* V0.981 spec 0617 — a marca de exportação na bancada. Exportado e em dia é rotina;
   desatualizado é o que pede ação, e por isso carrega a cor de aviso. */
.exec-exportado[b-zt2awouy3q] {
    font-size: .8rem;
    color: var(--kendo-color-subtle, #9a9a9a);
    white-space: nowrap;
}

.exec-exportado--defasado[b-zt2awouy3q] {
    color: var(--kendo-color-warning, #ffc000);
    font-weight: 600;
}
/* /Features/Mi/MiPlano/ExecucaoPreviewPanel.razor.rz.scp.css */
/* V0.958 spec 0478 — prévia do plano no ActionPanel (read-only). */

.exec-prev[b-2n3rmcv95d] { display: flex; flex-direction: column; gap: 16px; }

.exec-prev__head[b-2n3rmcv95d] {
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
}
.exec-prev__stat[b-2n3rmcv95d] { display: flex; flex-direction: column; gap: 2px; }
.exec-prev__stat-val[b-2n3rmcv95d] { font-size: 1.3rem; font-weight: 700; line-height: 1; }
.exec-prev__stat-lbl[b-2n3rmcv95d] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--kendo-color-subtle, #9a9a9a);
}

.exec-prev__table[b-2n3rmcv95d] { width: 100%; border-collapse: collapse; font-size: .8rem; }
.exec-prev__table th[b-2n3rmcv95d],
.exec-prev__table td[b-2n3rmcv95d] {
    text-align: left;
    padding: 6px 8px;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.08));
}
.exec-prev__table th[b-2n3rmcv95d] { color: var(--kendo-color-subtle, #9a9a9a); font-weight: 600; }
.exec-prev__num[b-2n3rmcv95d] { text-align: right; }
.exec-prev__empty[b-2n3rmcv95d] { color: var(--kendo-color-subtle, #9a9a9a); }

/* V0.970 spec 0541 — a prévia mostra as compras com as suas linhas dentro. */
.exec-prev__mapa[b-2n3rmcv95d] { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.exec-prev__mapa-head[b-2n3rmcv95d] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    padding-bottom: 4px;
}
.exec-prev__mapa-nr[b-2n3rmcv95d] { font-weight: 700; }
.exec-prev__mapa-nm[b-2n3rmcv95d] { font-weight: 600; }
.exec-prev__mapa-meta[b-2n3rmcv95d] { font-size: .78rem; color: var(--kendo-color-subtle, #9a9a9a); }
.exec-prev__mapa-head .exec-prev__num[b-2n3rmcv95d] { margin-left: auto; font-weight: 600; }
/* /Features/Mi/MiPlano/MiInseChatPanel.razor.rz.scp.css */
/* V0.959 spec 0481 — Chat da linha de inserção (ActionPanel).
   Comentário humano = balão padrão; mensagem de sistema = faixa com ícone e cor discreta. */

.mi-chat[b-rcky1dmd6e] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    gap: 12px;
}

.mi-chat__list[b-rcky1dmd6e] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-right: 4px;
}

.mi-chat__empty[b-rcky1dmd6e] {
    color: var(--kendo-color-subtle, #9a9a9a);
    padding: 16px 4px;
}

.mi-chat__msg[b-rcky1dmd6e] {
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    border-radius: 8px;
    padding: 8px 12px;
    background: var(--kendo-color-base, rgba(255, 255, 255, 0.05));
}

.mi-chat__msg--sistema[b-rcky1dmd6e] {
    border-left-width: 3px;
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, 0.03));
}

.mi-chat__msg--solicitou[b-rcky1dmd6e] { border-left-color: var(--kendo-color-warning, #e0a800); }
.mi-chat__msg--confirmou[b-rcky1dmd6e] { border-left-color: var(--kendo-color-success, #37b400); }
.mi-chat__msg--rejeitou[b-rcky1dmd6e] { border-left-color: var(--kendo-color-error, #f31700); }
.mi-chat__msg--alterou[b-rcky1dmd6e] { border-left-color: var(--kendo-color-info, #0072c6); }

.mi-chat__msg-head[b-rcky1dmd6e] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--kendo-color-subtle, #9a9a9a);
    margin-bottom: 4px;
}

.mi-chat__icon[b-rcky1dmd6e] {
    font-size: 16px;
    line-height: 1;
}

.mi-chat__autor[b-rcky1dmd6e] {
    font-weight: 600;
    color: var(--kendo-color-on-app-surface, inherit);
}

.mi-chat__data[b-rcky1dmd6e] { margin-left: auto; white-space: nowrap; }

.mi-chat__badge[b-rcky1dmd6e] {
    margin-left: 0;
    padding: 1px 6px;
    border-radius: 999px;
    font-size: 11px;
    background: var(--kendo-color-base, rgba(255, 255, 255, 0.08));
}

.mi-chat__texto[b-rcky1dmd6e] {
    white-space: pre-wrap;
    word-break: break-word;
}

/* V0.980 spec 0614 — comentário descontinuado que permanece na trilha: fica visível e
   distinguível do que o sistema registrou, sem parecer erro. */
.mi-chat__msg--historico[b-rcky1dmd6e] {
    border-left-width: 3px;
    border-left-color: var(--kendo-color-subtle, #9a9a9a);
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, 0.03));
}
/* /Features/Mi/MiPlano/MiMapaCadastrosPanel.razor.rz.scp.css */
/* V0.980 spec 0616 — o pedido de cadastro é a saída de exceção, não a ação da tela:
   fica colado ao campo que o motiva, alinhado à esquerda e sem peso visual. `::deep`
   porque quem renderiza o botão é o componente Telerik, não este arquivo. */
[b-5i3mofbmk9] .mi-mapa-solicitar {
    align-self: flex-start;
    margin-top: 0.35rem;
    padding-left: 0;
    padding-right: 0;
    font-size: 0.8rem;
    color: var(--kendo-color-subtle, #9a9a9a);
    text-decoration: underline;
}

[b-5i3mofbmk9] .mi-mapa-solicitar:hover {
    color: var(--kendo-color-primary, #ff5252);
}

/* V0.980 spec 0616 — o texto livre que veio do planejamento, acima do combo que o resolve.
   Discreto de propósito: é a referência para escolher, não um campo. */
.mi-mapa-texto-livre[b-5i3mofbmk9] {
    display: block;
    margin-bottom: .25rem;
    font-size: .78rem;
    color: var(--kendo-color-subtle, #9a9a9a);
    overflow-wrap: anywhere;
}

/* Aprovar/revogar a compra a partir da tela em que se resolve o de-para. */
.mi-mapa-aprovacao[b-5i3mofbmk9] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .4rem;
    margin-top: 1rem;
    padding-top: .75rem;
    border-top: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
}
/* /Features/Mi/MiPlano/MiPlanoDetPage.razor.rz.scp.css */
/* V0.957 spec 0472/0473.2 — grade personalizada do Plano de Mídia (não-Telerik).
   Cores 100% via variáveis do tema Kendo (funcionam em claro e escuro). */

.mi-totais[b-73yh5ofbl7] { font-size: .85rem; }

/* Total do plano no cabeçalho — card destacado (V0.959). Representa a versão selecionada. */
.mi-plan-total[b-73yh5ofbl7] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    padding: .5rem 1rem;
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.14));
    border-radius: 10px;
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, 0.04));
    line-height: 1.15;
}
.mi-plan-total__label[b-73yh5ofbl7] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--kendo-color-subtle, #9a9a9a);
    display: flex;
    align-items: center;
    gap: .4rem;
}
.mi-plan-total__value[b-73yh5ofbl7] {
    font-size: 1.7rem;
    font-weight: 800;
    color: var(--kendo-color-primary, #ff5252);
}
.mi-plan-total__badge[b-73yh5ofbl7] {
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    padding: 1px 7px;
    border-radius: 999px;
    color: var(--kendo-color-warning, #ffb400);
    background: color-mix(in srgb, var(--kendo-color-warning, #ffb400) 18%, transparent);
}
/* Versão anterior à corrente: moldura âmbar tracejada para sinalizar visualmente. */
.mi-plan-total--historica[b-73yh5ofbl7] {
    border-color: var(--kendo-color-warning, #ffb400);
    border-style: dashed;
    background: color-mix(in srgb, var(--kendo-color-warning, #ffb400) 8%, transparent);
}
.mi-plan-total--historica .mi-plan-total__value[b-73yh5ofbl7] {
    color: var(--kendo-color-warning, #ffb400);
}
.mi-versao-bar[b-73yh5ofbl7] { display: flex; align-items: center; gap: .5rem; margin: .5rem 0; }
.mi-versao-bar label[b-73yh5ofbl7] { font-weight: 600; }

.mi-grid-toolbar[b-73yh5ofbl7] { margin-bottom: .5rem; }

/* Toolbar da aba do meio: + Linha à esquerda; total-card + fullscreen à direita. */
/* V0.980 spec 0616 — DUAS linhas fixas. A barra crescia quando alguém marcava uma linha e
   o grid inteiro descia um degrau debaixo do cursor, fazendo o clique seguinte cair noutra
   linha. Reservar a altura da faixa de seleção (min-height na 2ª linha) custa um espaço em
   branco e devolve a estabilidade de posição que o grid precisa ter. */
.mi-meio-toolbar[b-73yh5ofbl7] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin-bottom: .5rem;
}
.mi-meio-toolbar__row[b-73yh5ofbl7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}
/* A faixa de seleção mora aqui e aparece sem empurrar nada. */
.mi-meio-toolbar__row--acoes[b-73yh5ofbl7] { min-height: 38px; }
.mi-meio-toolbar__left[b-73yh5ofbl7] { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.mi-batch-sep[b-73yh5ofbl7] { width: 1px; align-self: stretch; background: var(--kendo-color-border, rgba(255, 255, 255, 0.15)); margin: 0 .25rem; }
.mi-batch-count[b-73yh5ofbl7] { font-size: .8rem; font-weight: 600; color: var(--kendo-color-primary, #ff5252); }
.mi-meio-toolbar__right[b-73yh5ofbl7] { display: flex; align-items: center; gap: .75rem; }

.mi-total-card[b-73yh5ofbl7] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1.1;
    padding: .35rem .75rem;
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    border-radius: 8px;
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, 0.03));
}
.mi-total-card__label[b-73yh5ofbl7] { font-size: .7rem; color: var(--kendo-color-subtle, #9a9a9a); }
.mi-total-card__value[b-73yh5ofbl7] { font-size: 1.05rem; font-weight: 700; }

/* Tela cheia da aba do meio. */
.mi-meio-fullscreen[b-73yh5ofbl7] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    margin: 0;
    border-radius: 0;
    overflow: auto;
    background: var(--kendo-color-app-surface, var(--kendo-color-surface, #141414));
}
.mi-meio-fullscreen .mi-grid-wrap[b-73yh5ofbl7] { max-height: calc(100vh - 150px); }

/* Barra de tabs + botão "+" ancorado ao topo-direito (parece uma tab de adição). */
.mi-tabs-wrap[b-73yh5ofbl7] { position: relative; }
.mi-add-meio[b-73yh5ofbl7] {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 4;
}

.mi-grid-wrap[b-73yh5ofbl7] {
    overflow: auto;
    max-height: 60vh;
    /* Altura mínima garante espaço para o corpo + barra de rolagem horizontal,
       evitando que o scroll cubra o cabeçalho congelado quando a grade é curta/vazia. */
    min-height: 180px;
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    border-radius: 6px;
}

.mi-grid[b-73yh5ofbl7] {
    border-collapse: collapse;
    font-size: .78rem;
    white-space: nowrap;
    color: var(--kendo-color-on-app-surface, inherit);
}

.mi-grid th[b-73yh5ofbl7], .mi-grid td[b-73yh5ofbl7] {
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    padding: 2px 4px;
    text-align: left;
}

/* Cabeçalho congelado */
.mi-grid thead th[b-73yh5ofbl7] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--kendo-color-base-subtle, var(--kendo-color-base, #2a2a2a));
    color: var(--kendo-color-on-app-surface, inherit);
    font-weight: 600;
}

/* Coluna de ação — congelada na 1ª posição sempre (left:0). Comporta até 7 controles:
   alça de arrasto (V0.970) + checkbox + clonar + aprovar/revogar + cadeado + chat +
   solicitar/pendência (V0.959). */
.mi-grid__action-col[b-73yh5ofbl7] {
    position: sticky;
    left: 0;
    z-index: 1;
    min-width: 204px;
    max-width: 204px;
    width: 204px;
    padding: 0 4px;
    background: var(--kendo-color-surface, #1e1e1e);
}
.mi-grid thead .mi-grid__action-col[b-73yh5ofbl7] { z-index: 3; background: var(--kendo-color-base-subtle, var(--kendo-color-base, #2a2a2a)); }
.mi-row-actions[b-73yh5ofbl7] { display: flex; align-items: center; gap: 4px; }
.mi-row-actions .k-button[b-73yh5ofbl7] { min-width: 26px; padding: 2px; }
.mi-row-check[b-73yh5ofbl7] { margin: 0 2px 0 0; cursor: pointer; }
.mi-lock--on[b-73yh5ofbl7] { color: var(--kendo-color-warning, #ffb400) !important; }

/* Slug congelada — left:204 (após a coluna de ação, que tem 204px); largura fixa p/ os offsets baterem. */
.mi-grid__sticky-col[b-73yh5ofbl7] {
    position: sticky;
    left: 204px;
    z-index: 1;
    min-width: 90px;
    max-width: 90px;
    width: 90px;
    background: var(--kendo-color-surface, #1e1e1e);
    font-weight: 600;
}
.mi-grid thead .mi-grid__sticky-col[b-73yh5ofbl7] { z-index: 3; background: var(--kendo-color-base-subtle, var(--kendo-color-base, #2a2a2a)); }

/* Linha bloqueada — leve tom + célula não-editável (cursor). */
.mi-grid__locked .mi-cell[b-73yh5ofbl7] { cursor: not-allowed; opacity: .85; }

/* Colunas de dados congeladas (2 primeiras, por posição) — largura fixa 160px; `left` inline
   por índice. Fundo opaco para cobrir as colunas que passam por baixo no scroll. */
.mi-grid__frozen[b-73yh5ofbl7] {
    position: sticky;
    z-index: 1;
    min-width: 160px;
    max-width: 160px;
    width: 160px;
    background: var(--kendo-color-surface, #1e1e1e);
}
.mi-grid thead .mi-grid__frozen[b-73yh5ofbl7] { z-index: 3; background: var(--kendo-color-base-subtle, var(--kendo-color-base, #2a2a2a)); }

.mi-cell[b-73yh5ofbl7] {
    width: 100%;
    min-width: 90px;
    border: none;
    background: transparent;
    color: inherit;
    font-size: .78rem;
    padding: 1px 2px;
}
.mi-cell:focus[b-73yh5ofbl7] {
    outline: 1px solid var(--kendo-color-primary, #ff5252);
    background: var(--kendo-color-base, rgba(255, 255, 255, 0.06));
}
.mi-cell[readonly][b-73yh5ofbl7] { color: var(--kendo-color-subtle, #9a9a9a); }
.mi-cell--num[b-73yh5ofbl7] { text-align: right; }

.mi-grid__ro[b-73yh5ofbl7] { opacity: .75; }

/* Hover destaca a linha inteira. O background precisa ser OPACO (color-mix) para as colunas
   congeladas continuarem cobrindo o conteúdo que passa por baixo no scroll — rgba translúcido
   deixaria vazar. A regra vence a das colunas congeladas por especificidade (tr:hover td). */
.mi-grid tbody tr:hover td[b-73yh5ofbl7] {
    background: rgba(255, 255, 255, 0.06);
    background: color-mix(in srgb, var(--kendo-color-on-app-surface, #ffffff) 9%, var(--kendo-color-surface, #1e1e1e));
}
.mi-grid tbody tr:hover .mi-cell:not(:focus)[b-73yh5ofbl7] { background: transparent; }

/* Editor de dias: o botão "Dias" agora fica no meio do grid (colado à coluna "Fim"), então o
   painel expandido precisa continuar sempre visível ao rolar horizontalmente — fica preso à
   esquerda da área de rolagem (position: sticky; left: 0) e alinhado à esquerda. */
.mi-dias-editor[b-73yh5ofbl7] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 8px;
    padding: 6px;
    position: sticky;
    left: 0;
    width: max-content;
    max-width: calc(100vw - 120px);
}
.mi-dia-box[b-73yh5ofbl7] { display: flex; flex-direction: column; align-items: center; width: 42px; }
.mi-dia-box span[b-73yh5ofbl7] { font-size: .7rem; color: var(--kendo-color-subtle, #9a9a9a); }
.mi-dia-box input[b-73yh5ofbl7] {
    width: 40px;
    font-size: .75rem;
    text-align: center;
    background: var(--kendo-color-base, transparent);
    color: inherit;
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    border-radius: 4px;
}

/* Salvar Capa: separa do textarea acima */
.capa-actions[b-73yh5ofbl7] { margin-top: 1.25rem; }

/* Resumo da Capa: dois quadros lado a lado (totais empilhados | gráfico líquido por meio). */
.mi-resumo__title[b-73yh5ofbl7] { margin: 0 0 1rem; font-size: 1.1rem; font-weight: 600; }
.mi-resumo__cols[b-73yh5ofbl7] {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 2fr;
    gap: 1rem;
    align-items: start;
}
.mi-resumo__box[b-73yh5ofbl7] {
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    border-radius: 8px;
    padding: 1rem;
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, 0.03));
}
.mi-resumo__box-title[b-73yh5ofbl7] { margin: 0 0 .75rem; font-size: .9rem; font-weight: 600; color: var(--kendo-color-subtle, #9a9a9a); }
.mi-resumo__row[b-73yh5ofbl7] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .35rem 0;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.06));
}
.mi-resumo__row:last-child[b-73yh5ofbl7] { border-bottom: none; }

@media (max-width: 720px) {
    .mi-resumo__cols[b-73yh5ofbl7] { grid-template-columns: 1fr; }
}

/* Aprovação de linha (V0.958 / 0478) */
.mi-aprov--on[b-73yh5ofbl7] { color: var(--kendo-color-success, #37b400) !important; }

/* Linha aprovada — marcador verde à esquerda + código em verde. Distinto do hover
   (que só troca o tom de fundo, neutro): aqui é uma barra sólida na coluna de ação
   e a cor do código, que sobrevivem ao hover. */
.mi-grid__aprovada .mi-grid__action-col[b-73yh5ofbl7] { box-shadow: inset 3px 0 0 var(--kendo-color-success, #37b400); }
.mi-grid__aprovada .mi-grid__sticky-col[b-73yh5ofbl7] { color: var(--kendo-color-success, #37b400); font-weight: 700; }

.mi-aprov-resumo[b-73yh5ofbl7] {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
}

.mi-aprov-resumo__gauge[b-73yh5ofbl7] { flex: 0 0 240px; min-width: 220px; }

.mi-aprov-resumo__stat[b-73yh5ofbl7] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.mi-aprov-resumo__pct[b-73yh5ofbl7] {
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1;
    color: var(--kendo-color-success, #37b400);
}

.mi-aprov-resumo__label[b-73yh5ofbl7] { font-size: .95rem; opacity: .85; }
.mi-aprov-resumo__count[b-73yh5ofbl7] { font-size: .85rem; opacity: .65; }

.mi-revogar-impactos[b-73yh5ofbl7] { margin: 4px 0 0 0; padding-left: 20px; }
.mi-revogar-impactos li[b-73yh5ofbl7] { margin-bottom: 4px; }

/* ── Mapa Reserva: cabeçalho de grupo (V0.970 spec 0539) ──────────────────
   A linha do grupo ocupa a largura toda, mas o CONTEÚDO gruda na borda esquerda
   (position: sticky no wrapper interno): assim o cabeçalho acompanha a rolagem
   horizontal sem cobrir as colunas congeladas nem quebrar o congelamento delas. */
.mi-grid__group > td[b-73yh5ofbl7] {
    background: var(--kendo-color-base-subtle, var(--kendo-color-base, #2a2a2a));
    border-top: 2px solid var(--kendo-color-border, #3a3a3a);
    padding: 4px 6px;
}

.mi-grid__group-inner[b-73yh5ofbl7] {
    position: sticky;
    left: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    width: max-content;
    max-width: 100%;
}

.mi-grid__group .k-button[b-73yh5ofbl7] { min-width: 26px; padding: 2px; }

.mi-grupo__nr[b-73yh5ofbl7] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--kendo-color-primary, #ff5252);
}

.mi-grupo__nome[b-73yh5ofbl7] { font-weight: 600; cursor: text; }

/* V0.989 spec 0669 — competência do mapa, lida de relance ao lado do nome. */
.mi-grupo__competencia[b-73yh5ofbl7] {
    font-size: .8rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    padding: 1px 6px;
    border-radius: 4px;
    background: var(--kendo-color-base-subtle);
    color: var(--kendo-color-on-app-surface);
    white-space: nowrap;
}
.mi-grupo__nome--sem[b-73yh5ofbl7] { color: var(--kendo-color-subtle, #9a9a9a); font-style: italic; }
.mi-grupo__nome-edit[b-73yh5ofbl7] { font-weight: 600; min-width: 220px; }

.mi-grupo__chip[b-73yh5ofbl7] {
    font-size: .75rem;
    padding: 1px 6px;
    border-radius: 10px;
    border: 1px solid var(--kendo-color-border, #3a3a3a);
    color: var(--kendo-color-subtle, #9a9a9a);
    white-space: nowrap;
}

.mi-grupo__chip--aprovado[b-73yh5ofbl7] {
    color: var(--kendo-color-success, #37b400);
    border-color: var(--kendo-color-success, #37b400);
}

/* V0.981 spec 0617 — a marca de exportação. Exportado e em dia é informação de rotina
   (discreta); desatualizado é o que pede ação, e por isso usa a cor de aviso. */
.mi-grupo__chip--exportado[b-73yh5ofbl7] {
    color: var(--kendo-color-info, #0058e9);
    border-color: var(--kendo-color-info, #0058e9);
}

.mi-grupo__chip--defasado[b-73yh5ofbl7] {
    color: var(--kendo-color-warning, #ffc000);
    border-color: var(--kendo-color-warning, #ffc000);
}

.mi-grupo__stats[b-73yh5ofbl7] {
    margin-left: auto;
    font-size: .8rem;
    color: var(--kendo-color-subtle, #9a9a9a);
    white-space: nowrap;
}

/* Alça de arrasto — área própria, separada dos campos: arrastar da célula
   dispararia edição/seleção de texto no meio do gesto. */
.mi-drag-handle[b-73yh5ofbl7] {
    cursor: grab;
    user-select: none;
    color: var(--kendo-color-subtle, #9a9a9a);
    padding: 0 2px;
    line-height: 1;
}

.mi-drag-handle:active[b-73yh5ofbl7] { cursor: grabbing; }

/* V0.980 spec 0615 — status derivado do plano no cabeçalho. */
.mi-plano-status-linha[b-73yh5ofbl7] { display: flex; align-items: center; gap: .5rem; margin: .25rem 0 .5rem; }
.mi-plano-status__contador[b-73yh5ofbl7] { font-size: .8rem; color: var(--kendo-color-subtle, #9a9a9a); }

/* V0.981 spec 0621 — o ícone que guarda os cadastros da compra. Discreto: ele informa quando
   perguntado, e não disputa espaço com o nome e o estado, que são o que se lê de relance. */
.mi-grupo__info[b-73yh5ofbl7] {
    display: inline-flex;
    align-items: center;
    color: var(--kendo-color-subtle, #9a9a9a);
}

/* V0.981 spec 0621 — o resumo do mapa dentro do tooltip: uma informação por linha, alinhada à
   esquerda. A largura máxima evita que um nome de veículo longo estique o balão pela tela.

   Seletor PLAIN, não ::deep: o popup do tooltip é portalizado para fora da árvore deste
   componente, mas as divs abaixo foram escritas AQUI e carregam o atributo de escopo. ::deep
   compilaria para "[b-xxx] .mi-tooltip" — um descendente que, no portal, não existe. */
.mi-tooltip[b-73yh5ofbl7] {
    text-align: left;
    max-width: 320px;
}

.mi-tooltip__linha[b-73yh5ofbl7] {
    white-space: normal;
    line-height: 1.45;
}

.mi-tooltip__linha + .mi-tooltip__linha[b-73yh5ofbl7] {
    margin-top: 2px;
}
/* /Features/Mi/MiPlano/MiPlanoListPage.razor.rz.scp.css */
.mi-aprov-pill[b-urj3pallec] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: .82rem;
    font-variant-numeric: tabular-nums;
    background: var(--kendo-color-base, rgba(127, 127, 127, .18));
}

.mi-aprov-pill--full[b-urj3pallec] {
    background: var(--kendo-color-success-subtle, rgba(55, 180, 0, .18));
    color: var(--kendo-color-success, #37b400);
    font-weight: 600;
}
/* /Features/Op/OpBoar/Components/OpBoarReadOnlyView.razor.rz.scp.css */
.proj-readonly[b-g9niijyu2z] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3, 12px);
    padding: var(--space-3, 12px) 0;
}

.proj-readonly-loading[b-g9niijyu2z],
.proj-readonly-error[b-g9niijyu2z] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-3, 12px);
    min-height: 240px;
    color: var(--text-muted, #888);
}

.proj-readonly-banner[b-g9niijyu2z] {
    padding: var(--space-2, 8px) var(--space-3, 12px);
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
}

.proj-readonly-banner--warn[b-g9niijyu2z] {
    background: rgba(255, 191, 0, 0.12);
    color: var(--warning-fg, #c08800);
    border: 1px solid rgba(255, 191, 0, 0.35);
}

.proj-readonly-status-row[b-g9niijyu2z] {
    display: flex;
    gap: var(--space-2, 8px);
}

.readonly-richtext[b-g9niijyu2z] {
    color: var(--text-fg, inherit);
    line-height: 1.5;
}

.readonly-richtext p:first-child[b-g9niijyu2z] {
    margin-top: 0;
}

.readonly-richtext p:last-child[b-g9niijyu2z] {
    margin-bottom: 0;
}
/* /Features/Op/OpBoar/OpBoarDetView.razor.rz.scp.css */
.section-head-with-toggle[b-8td6l5ir7i] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.section-head-with-toggle h3[b-8td6l5ir7i] {
    margin: 0;
}

.optare-kanban-banner[b-8td6l5ir7i] {
    padding: 8px 12px;
    margin: 0 0 12px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--kendo-color-warning, #f5a623) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--kendo-color-warning, #f5a623) 30%, transparent);
    color: var(--kendo-color-on-base, #fafafa);
    font-size: 0.85rem;
}

.optare-kanban-loading[b-8td6l5ir7i] {
    padding: 24px;
    text-align: center;
    opacity: 0.65;
    font-size: 0.9rem;
}
/* /Features/Op/OpPric/PricingDetVerPage.razor.rz.scp.css */
/* Estilos específicos desta tela. Primitivas visuais (page-header, kpi-row,
   section-card) vêm de wwwroot/css/app.css (spec 0179.2). */

/* V0.973 spec 0558 — os indicadores acompanham a rolagem: o operador edita a
   lista (FTE ou fee) e vê o efeito no Total Cliente sem perder os cards da
   viewport. Elemento do próprio componente → seletor plain (sem ::deep).
   O fundo opaco é obrigatório: sem ele o conteúdo rolando aparece por baixo.
   z-index acima do cabeçalho congelado do grid (que é sticky dentro do próprio
   container do Telerik) para não formar faixa dupla. */
.pricing-kpi-sticky[b-n9mt0truxo] {
    position: sticky;
    top: 0;
    z-index: 5;
    background: var(--kendo-color-app-surface, rgba(128, 128, 128, 0.06));
    padding-top: 0.5rem;
    padding-bottom: 0.25rem;
}

/* Tela estreita: os cards não podem comer a área útil do grid. */
@media (max-width: 900px) {
    .pricing-kpi-sticky[b-n9mt0truxo] {
        padding-top: 0.25rem;
        padding-bottom: 0;
    }
}

/* Card único dos 3 percentuais (Overhead/Margem/Imposto) na kpi-row — spec 0454.5. */
.kpi-card--percentuais[b-n9mt0truxo] {
    justify-content: flex-start;
}

/* V0.956 spec 0467.5: os 3 campos lado a lado (era empilhado na 0457). */
.pricing-pct-row[b-n9mt0truxo] {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    width: 100%;
    flex-wrap: wrap;
}

.pricing-pct-field[b-n9mt0truxo] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1 1 0;
    min-width: 0;
}

/* Rótulo casado com .kpi-card__label (uppercase, letter-spacing, cor subtle). */
.pricing-pct-field > span[b-n9mt0truxo] {
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, 0.6));
}

/* spec 0467.5/0467.6: valor com cara de número de card (não label) + caneta. Peso/cor
   do .kpi-card__number (branco vivo, --kendo-color-on-base); tamanho 1.3125rem (≈21px
   no root de 16px) — menor que o número cheio do card porque são 3 lado a lado. rem
   para escalar com o root. !important vence a herança de span. */
.pricing-pct-value[b-n9mt0truxo] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 1.3125rem !important;
    font-weight: 600 !important;
    line-height: 1;
    color: var(--kendo-color-on-base, #fafafa) !important;
    min-height: 1.6rem;
}

.pricing-pct-value .pricing-pct-lapis[b-n9mt0truxo] {
    opacity: 0;
    transition: opacity 0.12s ease;
}

.pricing-pct-field:hover .pricing-pct-lapis[b-n9mt0truxo],
.pricing-pct-value .pricing-pct-lapis:focus-visible[b-n9mt0truxo] {
    opacity: 1;
}

/* Badge read-only de status do Pricing (spec 0454.5 item 3). Cor por natureza. */
.pricing-status-badge[b-n9mt0truxo] {
    display: inline-block;
    padding: 0.2rem 0.6rem;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #fff;
    background: #6c757d;
}

.pricing-status-badge--e[b-n9mt0truxo] { background: #6c757d; } /* Elaboração — cinza */
.pricing-status-badge--a[b-n9mt0truxo] { background: #2e7d32; } /* Aprovado — verde */
.pricing-status-badge--t[b-n9mt0truxo] { background: #1565c0; } /* Encerrado — azul */
.pricing-status-badge--c[b-n9mt0truxo] { background: #b71c1c; } /* Cancelado — vermelho */

/* Card de Anexos no kpi-row: dois CTAs lado a lado (Pricing / Versão), cada um
   abrindo o painel à direita; o badge mostra a contagem. */
.kpi-card--anexos[b-n9mt0truxo] {
    justify-content: flex-start;
}

.anexos-cta[b-n9mt0truxo] {
    display: flex;
    flex-direction: row;
    gap: 0.35rem;
}

.anexos-cta[b-n9mt0truxo]  .k-button {
    justify-content: flex-start;
    flex: 1 1 0;
}

.anexos-badge[b-n9mt0truxo] {
    margin-left: auto;
    min-width: 1.4rem;
    padding: 0 0.4rem;
    border-radius: 10px;
    background: var(--kendo-color-primary, #ff6358);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
    text-align: center;
}

/* Grid de FTE: largura 100% da área disponível com scroll horizontal. A Width
   fixa de cada coluna funciona como largura mínima — o Telerik rola em vez de
   encolher abaixo dela (colunas nunca somem). Fonte/padding compactos no mínimo
   aceitável para caber mais coluna sem scroll. [0258] */
.grid-horizontal-scroll[b-n9mt0truxo]  .k-grid {
    font-size: 0.72rem;
}

/* Uma única barra de scroll horizontal: a do próprio grid Telerik (spec 0454.5).
   O wrapper NÃO rola (sem overflow-x) e o grid fica a 100% da largura disponível
   (Width="100%"); com colunas de largura fixa, o Telerik dispara seu próprio scroll
   interno no conteúdo quando a soma das colunas excede a viewport. Nada de min-width
   no grid (era isso + o overflow do wrapper que geravam a segunda barra). */
.grid-horizontal-scroll[b-n9mt0truxo] {
    overflow-x: visible;
}

/* Folga entre a última linha e a barra de scroll horizontal do grid — a barra não
   fica colada na linha (spec 0454.5). Aplica no container de conteúdo do Telerik. */
.grid-horizontal-scroll[b-n9mt0truxo]  .k-grid-content,
.grid-horizontal-scroll[b-n9mt0truxo]  .k-grid-container {
    padding-bottom: 24px;
}

/* Sem scroll de altura: o grid cresce com as linhas (sem Height fixo), então o
   scrollbar vertical do Telerik (overflow-y: scroll por default) é fantasma —
   auto só mostra quando de fato excede, o que aqui nunca ocorre (spec 0454.5). */
.grid-horizontal-scroll[b-n9mt0truxo]  .k-grid-content {
    overflow-y: auto;
}

.grid-horizontal-scroll[b-n9mt0truxo]  .k-table-th,
.grid-horizontal-scroll[b-n9mt0truxo]  .k-table-td {
    padding-block: 0.25rem;
    padding-inline: 0.4rem;
}

.grid-horizontal-scroll[b-n9mt0truxo]  .k-input,
.grid-horizontal-scroll[b-n9mt0truxo]  .k-input-inner,
.grid-horizontal-scroll[b-n9mt0truxo]  .k-picker {
    font-size: 0.72rem;
}

/* TelerikDateRangePicker não expõe o parâmetro Width — largura vai por CSS. */
.vigencia-field[b-n9mt0truxo]  .k-daterangepicker {
    width: 100%;
}

/* Remove os rótulos "Início/Fim" internos do range picker — a posição dos campos
   já indica início e fim, e o rótulo desalinhava a linha do campo ao lado. */
.vigencia-field[b-n9mt0truxo]  .k-daterangepicker .k-floating-label-container > .k-label,
.vigencia-field[b-n9mt0truxo]  .k-daterangepicker label {
    display: none;
}

.vigencia-field[b-n9mt0truxo]  .k-daterangepicker .k-floating-label-container {
    padding-top: 0;
}

/* ── Banner de Pricing aprovado (modo leitura, spec 0294) ─────────────────
   Cor de estado (não erro), ícone de cadeado — bloqueio elegante, não cinza-morto. */
.pricing-detver-page .pricing-locked-banner[b-n9mt0truxo] {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 0 0 1rem;
    padding: .75rem 1rem;
    border-radius: 8px;
    border: 1px solid var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .1);
    color: var(--kendo-color-warning, #f2c94c);
}

.pricing-detver-page .pricing-locked-banner__text[b-n9mt0truxo] {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
    color: var(--kendo-color-on-app-surface, #fafafa);
}

.pricing-detver-page .pricing-locked-banner__text strong[b-n9mt0truxo] {
    color: var(--kendo-color-warning, #f2c94c);
}

/* Ações da solicitação de origem (devolver/concluir) na ponta direita do próprio selo:
   a decisão é tomada aqui, e voltar à pauta só para registrá-la é caminho a mais. */
.pricing-detver-page .pricing-locked-banner__actions[b-n9mt0truxo] {
    display: flex;
    gap: .5rem;
    margin-left: auto;
}

/* spec 0467.6: sub-métrica (horas) no card de FTE. */
.kpi-card__sub[b-n9mt0truxo] {
    font-size: 0.8rem;
    opacity: 0.7;
    margin-top: 0.15rem;
}

/* V0.974 spec 0567 — card dos percentuais próprios do Fee Operacional, acima do grid da
   aba. Fora da kpi-row (que é sticky no topo da tela), então precisa da margem e do fundo
   por conta própria. */
.fee-pct-card[b-n9mt0truxo] {
    margin-bottom: 1rem;
    max-width: 640px;
    background: var(--kendo-color-surface);
    border: 1px solid var(--kendo-color-border);
    border-radius: 4px;
    padding: 0.75rem 1rem;
}
/* /Features/Op/OpProj/OpProjDetPage.razor.rz.scp.css */
/* Elementos próprios da página do Projeto — seletor plain, sem ::deep (o scope
   já está neles). */

.proj-descricao[b-y28gqpdk4m] {
    margin: 0 0 1rem;
    max-width: 70ch;
    color: var(--kendo-color-subtle);
    line-height: 1.5;
}

.empty-hint[b-y28gqpdk4m] {
    margin: 0.5rem 0;
    font-style: italic;
    color: var(--kendo-color-subtle);
}

/* Cadastro do projeto na primeira aba: rótulo curto acima, valor abaixo. Veio do
   painel de detalhes, que deixou de existir — a aba já abre por padrão. */
.proj-detalhes[b-y28gqpdk4m] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: .75rem 1rem;
    margin: 0;
}

.proj-detalhes dt[b-y28gqpdk4m] {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--kendo-color-subtle);
}

.proj-detalhes dd[b-y28gqpdk4m] {
    margin: .15rem 0 0;
}

/* Cabeçalho do board aberto: voltar à esquerda, ações à direita. */
.proj-board-head[b-y28gqpdk4m] {
    justify-content: space-between;
}

.proj-board-head__acoes[b-y28gqpdk4m] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

/* Ações do board dentro da subaba: alinhadas à direita, acima do board em si. */
.tipado-acoes[b-y28gqpdk4m] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.5rem;
}

/* Arquivados: presentes e acessíveis, mas fora do caminho — o projeto é perpétuo
   e no terceiro ano o histórico é maior que o ciclo corrente. */
.tipado-arquivados[b-y28gqpdk4m] {
    margin-top: 1rem;
    font-size: 0.85rem;
    color: var(--kendo-color-subtle);
}

.tipado-arquivados > summary[b-y28gqpdk4m] {
    cursor: pointer;
}

.tipado-arquivados ul[b-y28gqpdk4m] {
    margin: 0.5rem 0 0;
    padding-left: 1.25rem;
}
/* /Features/Op/OpProj/OpProjListPage.razor.rz.scp.css */
/* Filtros numa linha só. A busca cresce; os selects têm largura própria; o
   checkbox alinha pela base dos campos (não pelo topo do rótulo). */
.proj-filtros[b-whyuv583x5] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1rem;
}

.proj-filtros__busca[b-whyuv583x5] {
    flex: 1 1 260px;
    min-width: 220px;
}

.proj-filtros .form-field[b-whyuv583x5] {
    flex: 0 0 200px;
}

.proj-filtros__check[b-whyuv583x5] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: .5rem;
    padding-bottom: .35rem;
}

.proj-filtros__check label[b-whyuv583x5] {
    margin: 0;
    white-space: nowrap;
}
/* /Features/Op/OpProj/OpProjMembrosSection.razor.rz.scp.css */
/* Membros: grade de colunas fixas em vez de flex livre. Com flex, o papel e as
   ações começam em posições diferentes conforme o tamanho do nome — e a lista
   inteira fica com aparência de coisa desalinhada. */
.member-list[b-rhzbkhiv05] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin-bottom: 1rem;
}

.member-row[b-rhzbkhiv05] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 150px 110px;
    align-items: center;
    gap: .75rem;
    padding: .35rem .5rem;
    border-radius: var(--kendo-border-radius-md, .25rem);
}

.member-row:nth-child(odd)[b-rhzbkhiv05] {
    background: var(--kendo-color-surface-alt, rgba(128, 128, 128, .06));
}

.member-name[b-rhzbkhiv05] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-width: 0;
}

.member-badge[b-rhzbkhiv05] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--kendo-color-subtle);
    white-space: nowrap;
}

.member-role[b-rhzbkhiv05] {
    color: var(--kendo-color-subtle);
}

/* Linha de inclusão: mesma régua de colunas do restante, para o formulário não
   parecer um bloco solto colado embaixo da lista. */
.member-add-row[b-rhzbkhiv05] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    padding: .5rem;
    border-top: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .25));
}

.empty-hint[b-rhzbkhiv05] {
    margin: .5rem 0;
    font-style: italic;
    color: var(--kendo-color-subtle);
}

@media (max-width: 700px) {
    .member-row[b-rhzbkhiv05] {
        grid-template-columns: 1fr;
        gap: .35rem;
    }
}
/* /Features/Op/OpSopr/ComparativoVersoesPage.razor.rz.scp.css */
/* Tabela do comparativo: A e B lado a lado, com a mudança à direita.
   Elementos do próprio componente — seletor simples, sem ::deep.
   Cor só por token do tema; fallback nunca pode ser a cor efetiva. */

/* `fixed` + larguras declaradas: cada centro de custo desenha uma tabela PRÓPRIA, e com
   largura automática cada uma se ajusta ao próprio conteúdo — as colunas de um bloco não
   batem com as do bloco de baixo, e o olho perde a comparação que a tela existe para fazer. */
.comparativo-table[b-b3efk9qb5h] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.comparativo-table th:nth-child(1)[b-b3efk9qb5h],
.comparativo-table td:nth-child(1)[b-b3efk9qb5h] {
    width: 26%;
}

.comparativo-table th:nth-child(2)[b-b3efk9qb5h],
.comparativo-table td:nth-child(2)[b-b3efk9qb5h],
.comparativo-table th:nth-child(3)[b-b3efk9qb5h],
.comparativo-table td:nth-child(3)[b-b3efk9qb5h] {
    width: 30%;
}

.comparativo-table th:nth-child(4)[b-b3efk9qb5h],
.comparativo-table td:nth-child(4)[b-b3efk9qb5h] {
    width: 14%;
}

.comparativo-table th[b-b3efk9qb5h],
.comparativo-table td[b-b3efk9qb5h] {
    text-align: left;
    padding: 0.375rem 0.5rem;
    border-bottom: 1px solid var(--kendo-color-border);
    vertical-align: top;
}

.comparativo-table th[b-b3efk9qb5h] {
    font-size: 0.8rem;
    font-weight: 500;
    opacity: 0.6;
    letter-spacing: 0.02em;
}

.comparativo-table tbody tr:last-child td[b-b3efk9qb5h] {
    border-bottom: none;
}

.comparativo-detalhe[b-b3efk9qb5h] {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.75rem;
    color: var(--kendo-color-subtle);
}
/* /Features/Op/OpSopr/ConsultaEstruturaPanel.razor.rz.scp.css */
/* Lista da estrutura: o perfil à esquerda, a medida (%, horas) à direita.
   Elementos do próprio componente — seletor simples, sem ::deep.
   Cor só por token do tema; fallback nunca pode ser a cor efetiva. */

.estrutura-lista[b-nlvngzsuru] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.estrutura-lista li[b-nlvngzsuru] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.375rem 0;
    border-bottom: 1px solid var(--kendo-color-border);
}

.estrutura-lista li:last-child[b-nlvngzsuru] {
    border-bottom: none;
}

.estrutura-lista__perfil[b-nlvngzsuru] {
    min-width: 0;
}

.estrutura-lista__medida[b-nlvngzsuru] {
    flex: none;
    font-variant-numeric: tabular-nums;
    color: var(--kendo-color-subtle);
}
/* /Features/Op/OpSopr/PautaPlanFinPage.razor.rz.scp.css */
/* A pauta é um grid só (o FlowtGrid traz a forma da tabela); aqui fica a linha discreta
   que acompanha a célula — quem devolveu, quem está com a solicitação, que versões existem. */

.pauta-obs[b-9rpw4wzdjq] {
    display: block;
    color: var(--kendo-color-subtle);
    font-size: 0.8rem;
}
/* /Features/Op/OpSopr/SolicitacaoPage.razor.rz.scp.css */
/* Layout da Solicitação de Pricing: conteúdo + resumo lateral fixo. As classes de
   página, seção e formulário são as globais — aqui fica só o que nenhuma delas cobre. */

.sopr-layout[b-0rseimflwt] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 1rem;
    align-items: start;
}

@media (max-width: 1100px) {
    .sopr-layout[b-0rseimflwt] {
        grid-template-columns: minmax(0, 1fr);
    }
}

.sopr-resumo[b-0rseimflwt] {
    position: sticky;
    top: 0.5rem;
}

.sopr-meta[b-0rseimflwt] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--kendo-color-subtle);
}

.sopr-vigencia[b-0rseimflwt],
.sopr-alocacao[b-0rseimflwt] {
    display: flex;
    gap: 0.5rem;
}

.sopr-composer-acoes[b-0rseimflwt] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin: 0.5rem 0 1rem;
}

/* Referência de horas no cabeçalho da composição: discreta e à direita — é contexto da
   seção, não título nem campo. */
.sopr-referencia[b-0rseimflwt] {
    margin-left: auto;
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--kendo-color-subtle);
}

/* Composição: UMA tabela com linha de agrupamento (mesmo desenho do resumo impresso).
   `fixed` é o que faz as colunas baterem de um centro de custo para o outro. */
.sopr-table--composicao[b-0rseimflwt] {
    table-layout: fixed;
}

/* As duas colunas editáveis carregam um campo com duas casas ("100,00", "1.260,00") e as
   setas do spinner: estreitas, o número sai cortado. Elas ganham a largura que Cargo e
   Pessoa podem ceder — as duas quebram linha sem prejuízo. */
.sopr-table--composicao th:nth-child(1)[b-0rseimflwt] { width: 22%; }
.sopr-table--composicao th:nth-child(2)[b-0rseimflwt] { width: 11%; }
.sopr-table--composicao th:nth-child(3)[b-0rseimflwt] { width: 15%; }
.sopr-table--composicao th:nth-child(4)[b-0rseimflwt] { width: 17%; }
.sopr-table--composicao th:nth-child(5)[b-0rseimflwt] { width: 23%; }
.sopr-table--composicao th:nth-child(6)[b-0rseimflwt] { width: 12%; }

/* Linha de agrupamento: nome do CC e, discreto, o resumo do grupo. O respiro acima é o que
   separa um centro de custo do outro — sem ele os blocos se leem como uma lista só. */
.sopr-grupo-linha > td[b-0rseimflwt] {
    background: var(--kendo-color-base-subtle);
    border-bottom: none;
    padding-top: 1.25rem;
    padding-bottom: 0.4rem;
}

.sopr-grupo-linha:first-child > td[b-0rseimflwt] {
    padding-top: 0.5rem;
}

.sopr-grupo-linha__nome[b-0rseimflwt] {
    font-weight: 600;
}

.sopr-grupo-linha__meta[b-0rseimflwt] {
    margin-left: 0.5rem;
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--kendo-color-subtle);
}

.sopr-grupo[b-0rseimflwt] {
    margin-bottom: 1rem;
}

.sopr-grupo__titulo[b-0rseimflwt] {
    font-size: 0.95rem;
    margin: 0 0 0.35rem;
}

.sopr-grupo__meta[b-0rseimflwt] {
    font-weight: 400;
    color: var(--kendo-color-subtle);
}

.sopr-table[b-0rseimflwt] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

/* `middle`, não `top`: a célula de alocação tem um campo, que é mais alto que o texto —
   com alinhamento ao topo, Cargo e Nível ficavam visivelmente acima do % da mesma linha. */
.sopr-table th[b-0rseimflwt],
.sopr-table td[b-0rseimflwt] {
    padding: 0.35rem 0.5rem;
    border-bottom: 1px solid var(--kendo-color-border, rgba(128, 128, 128, 0.3));
    text-align: left;
    vertical-align: middle;
}

.sopr-table th[b-0rseimflwt] {
    font-weight: 600;
}

.sopr-num[b-0rseimflwt] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Alocação editável na própria lista, sem parecer formulário: a célula é TEXTO até o
   ponteiro chegar ou o campo receber foco. Caixa e setas desenhadas o tempo todo poluem
   uma lista que se lê muito mais do que se edita — e era isso que ficava feio.
   `::deep` porque o campo é renderizado pelo componente Telerik (filho); a âncora é a
   célula, que é markup desta tela. */
.sopr-num[b-0rseimflwt]  .k-numerictextbox {
    border-color: transparent;
    background: transparent;
    box-shadow: none;
}

.sopr-num[b-0rseimflwt]  .k-numerictextbox .k-input-inner {
    text-align: right;
}

.sopr-num[b-0rseimflwt]  .k-numerictextbox .k-input-spinner {
    visibility: hidden;
}

.sopr-num:hover[b-0rseimflwt]  .k-numerictextbox,
.sopr-num[b-0rseimflwt]  .k-numerictextbox.k-focus {
    border-color: var(--kendo-color-border);
    background: var(--kendo-color-base);
}

.sopr-num:hover[b-0rseimflwt]  .k-numerictextbox .k-input-spinner,
.sopr-num[b-0rseimflwt]  .k-numerictextbox.k-focus .k-input-spinner {
    visibility: visible;
}

.sopr-linha--editando td[b-0rseimflwt] {
    opacity: 0.55;
}

.sopr-obs[b-0rseimflwt] {
    display: block;
    color: var(--kendo-color-subtle);
    font-size: 0.8rem;
}

.sopr-fee-total[b-0rseimflwt] {
    text-align: right;
    color: var(--kendo-color-subtle);
    margin: 0.5rem 0 0;
}

.sopr-trilha[b-0rseimflwt] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.9rem;
}

.sopr-resumo__sub[b-0rseimflwt] {
    font-size: 0.85rem;
    margin: 0.75rem 0 0.25rem;
    color: var(--kendo-color-subtle);
}
/* /Features/Op/OpSopr/SolicitacaoResumoPage.razor.rz.scp.css */
/* Documento do resumo. O que faz ele virar página impressa está no bloco @media print
   global do app.css — aqui fica só a forma do documento na tela.
   Cor só por token do tema; fallback nunca pode ser a cor efetiva. */

.resumo-cabecalho[b-yd998ird98] {
    margin-bottom: 1rem;
}

.resumo-cabecalho h1[b-yd998ird98] {
    margin: 0;
    font-size: 1.25rem;
    letter-spacing: 0.08em;
}

.resumo-cabecalho__meta[b-yd998ird98] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.375rem;
    color: var(--kendo-color-subtle);
}

.resumo-numero[b-yd998ird98] {
    font-weight: 600;
    color: var(--kendo-color-on-app-surface);
}

/* Composição: UMA tabela com linha de agrupamento. `fixed` com as larguras declaradas é o
   que faz as colunas baterem de um centro de custo para o outro — com largura automática,
   cada bloco se ajustava ao próprio conteúdo. */
.resumo-table--composicao[b-yd998ird98] {
    table-layout: fixed;
}

.resumo-table--composicao th:nth-child(1)[b-yd998ird98] { width: 26%; }
.resumo-table--composicao th:nth-child(2)[b-yd998ird98] { width: 12%; }
.resumo-table--composicao th:nth-child(3)[b-yd998ird98] { width: 9%; }
.resumo-table--composicao th:nth-child(4)[b-yd998ird98] { width: 11%; }
.resumo-table--composicao th:nth-child(5)[b-yd998ird98] { width: 22%; }
.resumo-table--composicao th:nth-child(6)[b-yd998ird98] { width: 20%; }

.resumo-num[b-yd998ird98] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Linha de agrupamento: o nome do centro de custo e, discreto ao lado, o resumo do grupo. */
/* O respiro acima é o que separa um centro de custo do outro — sem ele os blocos se leem
   como uma lista só, que foi o que o dono viu. A primeira linha não precisa dele. */
.resumo-grupo-linha > td[b-yd998ird98] {
    background: var(--kendo-color-base-subtle);
    border-bottom: none;
    padding-top: 1.25rem;
    padding-bottom: 0.4rem;
}

.resumo-grupo-linha:first-child > td[b-yd998ird98] {
    padding-top: 0.5rem;
}

.resumo-grupo-linha__nome[b-yd998ird98] {
    font-weight: 600;
}

.resumo-grupo-linha__meta[b-yd998ird98] {
    margin-left: 0.5rem;
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--kendo-color-subtle);
}

.resumo-table[b-yd998ird98] {
    width: 100%;
    border-collapse: collapse;
}

.resumo-table th[b-yd998ird98],
.resumo-table td[b-yd998ird98] {
    text-align: left;
    padding: 0.25rem 0.5rem;
    border-bottom: 1px solid var(--kendo-color-border);
    vertical-align: top;
}

.resumo-table th[b-yd998ird98] {
    font-size: 0.8rem;
    font-weight: 500;
    opacity: 0.6;
}

.resumo-table tfoot td[b-yd998ird98] {
    font-weight: 600;
    border-bottom: none;
}

.resumo-total[b-yd998ird98] {
    margin: 0.5rem 0 0;
    font-size: 1rem;
}

.resumo-rodape[b-yd998ird98] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
    font-size: 0.75rem;
    color: var(--kendo-color-subtle);
}
/* /Features/Op/OpTare/Components/OpTarePriorityIcon.razor.rz.scp.css */
.optare-priority-icon[b-cwuwv8kgxx] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.optare-priority-icon[b-cwuwv8kgxx]  .k-icon,
.optare-priority-icon[b-cwuwv8kgxx]  svg {
    width: 14px;
    height: 14px;
}

.optare-priority-info[b-cwuwv8kgxx] {
    color: var(--kendo-color-info, #4287f5);
}

.optare-priority-warning[b-cwuwv8kgxx] {
    color: var(--kendo-color-warning, #f0ad4e);
}

.optare-priority-orange[b-cwuwv8kgxx] {
    color: var(--optare-priority-orange, #f97316);
}

.optare-priority-error[b-cwuwv8kgxx] {
    color: var(--kendo-color-error, #d13438);
}
/* /Features/Op/OpTare/Dashboard/OpTareIndicadoresPage.razor.rz.scp.css */
/* Spec 0439 — Dashboard de indicadores de fluxo (SLA). */
.optare-ind-filter-label[b-w1wpvsh9mp] {
    font-size: 0.8rem;
    color: var(--rm-color-text-muted);
    align-self: center;
}

.optare-ind-grid[b-w1wpvsh9mp] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 16px;
}

.optare-ind-wide[b-w1wpvsh9mp] {
    grid-column: 1 / -1;
}

@media (max-width: 900px) {
    .optare-ind-grid[b-w1wpvsh9mp] {
        grid-template-columns: 1fr;
    }
}

.optare-ind-title[b-w1wpvsh9mp] {
    margin: 0 0 8px;
    font-size: 0.95rem;
    font-weight: 600;
}

.optare-ind-empty[b-w1wpvsh9mp] {
    padding: 24px;
    text-align: center;
    color: var(--rm-color-text-muted);
}

.optare-ind-nota[b-w1wpvsh9mp] {
    margin-top: 16px;
    font-size: 0.8rem;
    color: var(--rm-color-text-muted);
    font-style: italic;
}
/* /Features/Op/OpTare/Detail/Components/OpFormSubmissaoOrigemSection.razor.rz.scp.css */
.opfosu-origem[b-rhb4u80cu0] {
    background: var(--surface-elevated, rgba(255, 255, 255, 0.04));
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 16px;
}

.opfosu-origem-loading[b-rhb4u80cu0],
.opfosu-origem-error[b-rhb4u80cu0] {
    padding: 12px 16px;
    margin-bottom: 16px;
}

.opfosu-origem-error[b-rhb4u80cu0] {
    color: var(--color-error, #f86c6b);
    background: rgba(248, 108, 107, 0.08);
    border-radius: 6px;
}

.opfosu-origem-header[b-rhb4u80cu0] {
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.06));
}

.opfosu-origem-title[b-rhb4u80cu0] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 1.05rem;
    flex-wrap: wrap;
}

.opfosu-origem-name[b-rhb4u80cu0] {
    color: var(--text-primary);
}

.opfosu-origem-sep[b-rhb4u80cu0] {
    opacity: 0.5;
}

.opfosu-origem-versao[b-rhb4u80cu0] {
    color: var(--text-secondary);
    font-weight: 500;
}

.opfosu-origem-badge-archived[b-rhb4u80cu0] {
    margin-left: 8px;
    padding: 2px 8px;
    font-size: 0.75rem;
    font-weight: 500;
    background: rgba(180, 180, 180, 0.18);
    color: var(--text-secondary);
    border-radius: 12px;
    cursor: help;
}

.opfosu-origem-meta[b-rhb4u80cu0] {
    margin-top: 4px;
    font-size: 0.85rem;
    color: var(--text-secondary);
}

.opfosu-origem-campos[b-rhb4u80cu0] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.opfosu-origem-campo[b-rhb4u80cu0] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.opfosu-origem-campo-label-row[b-rhb4u80cu0] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.opfosu-origem-campo-label[b-rhb4u80cu0] {
    font-weight: 500;
    color: var(--text-primary);
}

.opfosu-origem-campo-badge[b-rhb4u80cu0] {
    padding: 2px 8px;
    font-size: 0.7rem;
    font-weight: 500;
    background: rgba(120, 120, 130, 0.22);
    color: var(--text-secondary);
    border-radius: 10px;
    white-space: nowrap;
}

.opfosu-origem-campo-valor[b-rhb4u80cu0] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    padding-left: 4px;
    color: var(--text-primary);
    word-break: break-word;
    white-space: pre-wrap;
}

.opfosu-origem-campo-valor-prefix[b-rhb4u80cu0] {
    color: var(--text-faint, rgba(255, 255, 255, 0.35));
    user-select: none;
    flex-shrink: 0;
}

.opfosu-origem-campo-vazio[b-rhb4u80cu0] {
    color: var(--text-faint, rgba(255, 255, 255, 0.4));
    font-style: italic;
}
/* /Features/Op/OpTare/Detail/Components/OpTareActivityItem.razor.rz.scp.css */
.optare-act[b-czn89ggg5o] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.optare-act--event[b-czn89ggg5o] {
    align-items: baseline;
    gap: 12px;
}

.optare-act--event .optare-act-text[b-czn89ggg5o] {
    flex: 1;
    /* Herda font-size do container .optare-historico-list (12px). */
}

.optare-act--event .optare-act-time[b-czn89ggg5o] {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: inherit;
    opacity: 0.75;
}

.optare-act--comment .optare-act-text[b-czn89ggg5o] {
    flex: 1;
    color: var(--flowt-text-primary, #e6e7ea);
    font-size: 14px;
    line-height: 1.45;
}

.optare-act--comment[b-czn89ggg5o] {
    gap: 12px;
}

.optare-act-comment-body[b-czn89ggg5o] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.optare-act-comment-head[b-czn89ggg5o] {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.optare-act-comment-text[b-czn89ggg5o] {
    margin: 0;
    color: var(--flowt-text-primary, #e6e7ea);
    white-space: pre-wrap;
    line-height: 1.5;
}
/* /Features/Op/OpTare/Detail/Components/OpTareActivitySection.razor.rz.scp.css */
.optare-atividade-section[b-gv20abbr1z] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 32px;
}

.optare-atividade-compose[b-gv20abbr1z] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

.optare-atividade-compose > :first-child[b-gv20abbr1z] {
    flex: 1;
}

.optare-atividade-empty[b-gv20abbr1z],
.optare-atividade-skeleton[b-gv20abbr1z] {
    padding: 16px 0;
}

.optare-atividade-timeline[b-gv20abbr1z] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    border-left: 2px solid var(--flowt-border-subtle, #2a2d33);
    padding-left: 16px;
}

.optare-atividade-item[b-gv20abbr1z] {
    position: relative;
}

.optare-atividade-loadmore[b-gv20abbr1z] {
    display: flex;
    justify-content: center;
    padding: 12px 0;
}

/* Histórico — eventos do log abaixo dos comentários, deliberadamente discreto. */
.optare-historico[b-gv20abbr1z] {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid var(--flowt-border-subtle, #2a2d33);
}

.optare-historico-title[b-gv20abbr1z] {
    margin: 0 0 8px 0;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--flowt-text-muted, #8b8e94);
}

.optare-historico-list[b-gv20abbr1z] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.optare-historico-list li[b-gv20abbr1z] {
    font-size: 11px;
    line-height: 1.4;
    color: var(--flowt-text-muted, #8b8e94);
}
/* /Features/Op/OpTare/Detail/Components/OpTareChecklistEditor.razor.rz.scp.css */
/* Spec 0083 — Editor de Checklist no corpo do OpTareDetPanel.
   Visual coerente com tema dark; elementos próprios usam seletor plain. */

.optare-checklist[b-hq9p696ffa] {
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.optare-section-head[b-hq9p696ffa] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.optare-section-title[b-hq9p696ffa] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface, rgba(255, 255, 255, 0.92));
}

.optare-checklist-empty[b-hq9p696ffa] {
    margin: 0;
    font-size: 0.875rem;
}

.optare-link[b-hq9p696ffa] {
    background: transparent;
    border: 0;
    color: var(--kendo-color-primary, #5b8def);
    cursor: pointer;
    font-size: 0.875rem;
    padding: 4px 0;
    text-align: left;
    align-self: flex-start;
}

.optare-link:hover[b-hq9p696ffa] {
    text-decoration: underline;
}

.optare-checklist-list[b-hq9p696ffa] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.optare-checklist-item[b-hq9p696ffa] {
    display: grid;
    grid-template-columns: 24px 1fr auto auto;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    border-radius: 6px;
    transition: background 0.12s ease;
}

.optare-checklist-item:hover[b-hq9p696ffa] {
    background: var(--kendo-color-app-surface, rgba(255, 255, 255, 0.03));
}

.optare-checklist-item.done .optare-checklist-title[b-hq9p696ffa] {
    text-decoration: line-through;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.5));
}

.optare-checklist-check[b-hq9p696ffa] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.optare-checklist-check input[type="checkbox"][b-hq9p696ffa] {
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.optare-checklist-title[b-hq9p696ffa] {
    cursor: text;
    min-height: 22px;
    line-height: 22px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.optare-checklist-title-input[b-hq9p696ffa],
.optare-checklist-add-input[b-hq9p696ffa] {
    width: 100%;
    background: var(--kendo-color-app-surface, rgba(255, 255, 255, 0.04));
    color: var(--kendo-color-on-app-surface, rgba(255, 255, 255, 0.92));
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    border-radius: 4px;
    padding: 4px 8px;
    font-size: 0.9rem;
}

.optare-checklist-prazo[b-hq9p696ffa] {
    font-size: 0.75rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
    padding: 2px 6px;
    border-radius: 4px;
    background: var(--kendo-color-app-surface, rgba(255, 255, 255, 0.04));
}

.optare-checklist-prazo.overdue[b-hq9p696ffa] {
    color: var(--kendo-color-error, #f87171);
    background: rgba(248, 113, 113, 0.08);
}

.optare-checklist-completed[b-hq9p696ffa] {
    font-size: 0.75rem;
    white-space: nowrap;
}

.optare-checklist-actions[b-hq9p696ffa] {
    display: flex;
    gap: 4px;
    opacity: 0;
    transition: opacity 0.12s ease;
}

.optare-checklist-item:hover .optare-checklist-actions[b-hq9p696ffa] {
    opacity: 1;
}

.optare-checklist-actions button[b-hq9p696ffa] {
    background: transparent;
    border: 1px solid transparent;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
    cursor: pointer;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.85rem;
}

.optare-checklist-actions button:hover[b-hq9p696ffa] {
    border-color: var(--kendo-color-border, rgba(255, 255, 255, 0.16));
    color: var(--kendo-color-on-app-surface, rgba(255, 255, 255, 0.92));
}

.optare-checklist-add[b-hq9p696ffa] {
    margin-top: 4px;
}

.optare-checklist-skeleton[b-hq9p696ffa] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.optare-checklist-skeleton-row[b-hq9p696ffa] {
    height: 28px;
    border-radius: 4px;
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.04) 0%,
        rgba(255, 255, 255, 0.08) 50%,
        rgba(255, 255, 255, 0.04) 100%
    );
    background-size: 200% 100%;
    animation: optare-checklist-shimmer-b-hq9p696ffa 1.4s ease-in-out infinite;
}

@keyframes optare-checklist-shimmer-b-hq9p696ffa {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
/* /Features/Op/OpTare/Detail/Components/OpTareOriginBlock.razor.rz.scp.css */
/* Spec 0079 — Bloco Origem proeminente na sidebar (apenas em Tarefa tipada). */

.optare-origin-block[b-ad7rpr7jt7] {
    margin-top: 16px;
}

.optare-origin-card[b-ad7rpr7jt7] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    margin-top: 6px;
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.08));
    border-radius: 8px;
    background: var(--kendo-color-surface-alt, rgba(255, 255, 255, 0.03));
    transition: background 120ms ease, border-color 120ms ease;
}

.optare-origin-card--clickable[b-ad7rpr7jt7] {
    cursor: pointer;
}

.optare-origin-card--clickable:hover[b-ad7rpr7jt7] {
    background: var(--kendo-color-base-hover, rgba(255, 255, 255, 0.06));
    border-color: var(--kendo-color-primary, #d24a3d);
}

.optare-origin-card--clickable:focus-visible[b-ad7rpr7jt7] {
    outline: 2px solid var(--kendo-color-primary, #d24a3d);
    outline-offset: 2px;
}

.optare-origin-icon[b-ad7rpr7jt7] {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: var(--kendo-color-surface, rgba(255, 255, 255, 0.06));
    color: var(--kendo-color-on-surface, #e8e8e8);
}

.optare-origin-text[b-ad7rpr7jt7] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.optare-origin-label[b-ad7rpr7jt7] {
    font-weight: 500;
    font-size: 0.9375rem;
    color: var(--kendo-color-on-surface, #e8e8e8);
}

.optare-origin-sub[b-ad7rpr7jt7] {
    font-size: 0.8125rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.6));
    font-variant-numeric: tabular-nums;
}
/* /Features/Op/OpTare/Detail/Components/OpTareTitleInline.razor.rz.scp.css */
/* Spec 0078 — Título editável inline. H1 e input compartilham fonte/tamanho
   para evitar layout shift na transição. */

.optare-title-inline[b-103ufdi9q1] {
    width: 100%;
    min-width: 0;
}

.optare-title-inline.is-disabled .optare-title-h1[b-103ufdi9q1] {
    cursor: not-allowed;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
}

.optare-title-h1[b-103ufdi9q1] {
    margin: 0;
    padding: 2px 4px;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.015em;
    color: var(--kendo-color-on-surface, #f0f0f0);
    cursor: text;
    border-radius: 6px;
    outline: none;
    transition: background-color 0.12s ease;
    word-break: break-word;
}

.optare-title-h1:hover:not(.is-disabled .optare-title-h1)[b-103ufdi9q1] {
    background: var(--kendo-color-surface-alt, rgba(255, 255, 255, 0.04));
}

.optare-title-h1:focus-visible[b-103ufdi9q1] {
    box-shadow: 0 0 0 2px var(--kendo-color-primary, #5b8def);
}

.optare-title-input[b-103ufdi9q1] {
    width: 100%;
    margin: 0;
    padding: 2px 4px;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.015em;
    color: var(--kendo-color-on-surface, #f0f0f0);
    background: transparent;
    border: none;
    border-radius: 6px;
    outline: 2px solid var(--kendo-color-primary, #5b8def);
    box-sizing: border-box;
    font-family: inherit;
}

.optare-title-input[b-103ufdi9q1]::placeholder {
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.4));
}
/* /Features/Op/OpTare/Inbox/OpTareInboxPage.razor.rz.scp.css */
/* V0.73 — Inbox de Triagem (admin do app tarefas). Listagem agrupada por CC
   com ações inline. Layout editorial coerente com o resto do app. */
.optare-inbox-page[b-g3u8xiqtcl] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px 32px 48px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.optare-inbox-header[b-g3u8xiqtcl] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--rm-color-border, rgba(255, 255, 255, 0.08));
}

.optare-inbox-header h1[b-g3u8xiqtcl] {
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0 0 4px;
}

.optare-inbox-filter[b-g3u8xiqtcl] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.optare-inbox-state[b-g3u8xiqtcl] {
    padding: 32px;
    text-align: center;
    color: var(--rm-color-text-muted);
}

.optare-inbox-state.error[b-g3u8xiqtcl] {
    color: var(--rm-color-error, #c0392b);
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
}

.optare-inbox-group[b-g3u8xiqtcl] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.optare-inbox-group-header[b-g3u8xiqtcl] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid var(--rm-color-border, rgba(255, 255, 255, 0.08));
}

.optare-inbox-group-name[b-g3u8xiqtcl] {
    font-weight: 600;
    font-size: 0.95rem;
}

.optare-inbox-group-count[b-g3u8xiqtcl] {
    font-size: 0.8rem;
    color: var(--rm-color-text-muted);
}

.optare-inbox-list[b-g3u8xiqtcl] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.optare-inbox-item[b-g3u8xiqtcl] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 4px 16px;
    padding: 12px 16px;
    border-radius: 8px;
    background: var(--rm-color-surface-elevated, rgba(255, 255, 255, 0.04));
    border: 1px solid var(--rm-color-border, rgba(255, 255, 255, 0.08));
}

.optare-inbox-item-title[b-g3u8xiqtcl] {
    grid-column: 1;
    grid-row: 1;
    background: none;
    border: none;
    color: var(--rm-color-text);
    text-align: left;
    font: inherit;
    font-weight: 500;
    cursor: pointer;
    padding: 0;
}

.optare-inbox-item-title:hover[b-g3u8xiqtcl] {
    color: var(--rm-color-primary, #4aa3ff);
    text-decoration: underline;
}

.optare-inbox-item-meta[b-g3u8xiqtcl] {
    grid-column: 1;
    grid-row: 2;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 0.8rem;
    color: var(--rm-color-text-muted);
}

.optare-inbox-item-actions[b-g3u8xiqtcl] {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    display: flex;
    gap: 8px;
}

.form-helper[b-g3u8xiqtcl] {
    font-size: 0.75rem;
    margin-top: 4px;
}

.form-error[b-g3u8xiqtcl] {
    color: var(--rm-color-error, #c0392b);
    font-size: 0.85rem;
    margin-top: 8px;
}
/* /Features/Op/OpTare/OpTareDetPanel.razor.rz.scp.css */
/* Spec 0078 — Layout 2-colunas. Sidebar 360px fixa à direita; corpo flex
   à esquerda. Sidebar rola independentemente. Header próprio (HideHeader=true
   no host) com título inline + autosave + menu Mais + close.

   ⚠️ ::deep só onde a regra alcança elementos renderizados por componentes
   Telerik internos. Elementos renderizados pelo próprio panel (.optare-*)
   usam seletor plain — ::deep neles geraria seletor sem match. */

.optare-panel-header[b-sbtub1a25a] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 24px 14px;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.06));
}

.optare-header-title[b-sbtub1a25a] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.optare-header-meta[b-sbtub1a25a] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8125rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
    padding-left: 4px;
}

.optare-header-id[b-sbtub1a25a] {
    font-variant-numeric: tabular-nums;
    opacity: 0.7;
}

.optare-header-sep[b-sbtub1a25a] {
    opacity: 0.4;
}

.optare-header-actions[b-sbtub1a25a] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.optare-panel-layout[b-sbtub1a25a] {
    display: flex;
    gap: 24px;
    padding: 20px 24px;
    height: calc(100% - 90px);
    box-sizing: border-box;
    overflow: hidden;
}

.optare-panel-body[b-sbtub1a25a] {
    flex: 1 1 auto;
    min-width: 0;
    overflow-y: auto;
    padding-right: 8px;
}

.optare-panel-sidebar[b-sbtub1a25a] {
    flex: 0 0 360px;
    overflow-y: auto;
    border-left: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.06));
    padding-left: 24px;
}

.optare-section-title[b-sbtub1a25a] {
    margin: 24px 0 12px;
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: -0.005em;
    color: var(--kendo-color-on-surface, #e8e8e8);
}

.optare-comments-section[b-sbtub1a25a] {
    margin-top: 8px;
}

.optare-proj-combo[b-sbtub1a25a] {
    display: flex;
    align-items: center;
    gap: 6px;
}

[b-sbtub1a25a] .optare-proj-combo .k-combobox {
    flex: 1;
    min-width: 0;
}

.optare-status-row[b-sbtub1a25a] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.optare-assignee-list[b-sbtub1a25a] {
    list-style: none;
    padding: 0;
    margin: 4px 0 8px;
}

.optare-assignee-list li[b-sbtub1a25a] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid var(--flowt-border, rgba(255, 255, 255, 0.06));
}

.optare-assignee-add[b-sbtub1a25a] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: stretch;
}

.optare-assignee-actions[b-sbtub1a25a] {
    display: flex;
    gap: 8px;
}

.optare-comments[b-sbtub1a25a] {
    max-height: 380px;
    overflow-y: auto;
    margin-bottom: 12px;
    padding-right: 4px;
}

.optare-comment[b-sbtub1a25a] {
    padding: 10px 0;
    border-bottom: 1px solid var(--flowt-border, rgba(255, 255, 255, 0.06));
}

.optare-comment:last-child[b-sbtub1a25a] {
    border-bottom: none;
}

.optare-comment-head[b-sbtub1a25a] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 4px;
}

.optare-comment-head small[b-sbtub1a25a] {
    opacity: 0.6;
    font-size: 0.85em;
}

.optare-comment-add[b-sbtub1a25a] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.muted[b-sbtub1a25a] {
    opacity: 0.65;
}

/* Spec 0079 — bloco Datas com Início + Prazo lado a lado. */
.optare-datas-grid[b-sbtub1a25a] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.optare-datas-grid > div[b-sbtub1a25a] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.form-sublabel[b-sbtub1a25a] {
    font-size: 0.75rem;
    opacity: 0.65;
    letter-spacing: 0.02em;
}

.form-error[b-sbtub1a25a] {
    display: block;
    margin-top: 6px;
    color: var(--flowt-danger, #f87171);
    font-size: 0.8125rem;
}

.status-badge[b-sbtub1a25a] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 500;
    background: var(--kendo-color-surface-alt, rgba(255, 255, 255, 0.08));
    color: var(--kendo-color-on-surface, #e8e8e8);
}

.optare-conflict-banner[b-sbtub1a25a] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px;
    margin: 0 24px 12px;
    border-radius: 6px;
    background: rgba(250, 204, 21, 0.12);
    border: 1px solid rgba(250, 204, 21, 0.4);
    color: var(--flowt-warning, #facc15);
}

.panel-close[b-sbtub1a25a] {
    background: transparent;
    border: 0;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.6));
    font-size: 1.5rem;
    line-height: 1;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.panel-close:hover[b-sbtub1a25a] {
    background: var(--kendo-color-surface-alt, rgba(255, 255, 255, 0.06));
    color: var(--kendo-color-on-surface, #e8e8e8);
}

/* ─── Atribuídos (spec 0081) ─────────────────────────────────────── */
.optare-assignees li[b-sbtub1a25a] {
    align-items: center;
}

.optare-avatar[b-sbtub1a25a] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--kendo-color-surface-alt, rgba(255, 255, 255, 0.08));
    color: var(--kendo-color-on-surface, #e8e8e8);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    flex-shrink: 0;
}

.optare-avatar-lg[b-sbtub1a25a] {
    width: 40px;
    height: 40px;
    border: 2px solid var(--kendo-color-primary, #6366f1);
    font-size: 0.85rem;
}

.optare-assignee-principal > span:nth-child(2)[b-sbtub1a25a] {
    font-weight: 600;
}

/* V0.73 — Bloco "Demanda — aguardando triagem" exibido no topo da aba
   Detalhes quando a Tarefa é Demanda (CC sem projeto, não-terminal). */
.optare-demanda-block[b-sbtub1a25a] {
    border: 1px solid var(--rm-color-warning-border, #d49a3a);
    background: var(--rm-color-warning-subtle, rgba(212, 154, 58, 0.08));
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 16px;
}

.optare-demanda-title[b-sbtub1a25a] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 0.85rem;
    letter-spacing: 0.05em;
    color: var(--rm-color-warning-strong, #c98a2c);
    margin-bottom: 8px;
}

.optare-demanda-meta[b-sbtub1a25a] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 4px 16px;
    margin: 0;
}

.optare-demanda-meta > div[b-sbtub1a25a] {
    display: flex;
    flex-direction: column;
}

.optare-demanda-meta dt[b-sbtub1a25a] {
    font-size: 0.75rem;
    color: var(--rm-color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.optare-demanda-meta dd[b-sbtub1a25a] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--rm-color-text);
}

/* V0.73 — badge "Solicitante" no item de Watcher obrigatório. */
.optare-badge-solicitante[b-sbtub1a25a] {
    margin-left: 8px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 600;
    background: var(--rm-color-surface-elevated, rgba(255, 255, 255, 0.06));
    color: var(--rm-color-text-muted);
    border: 1px solid var(--rm-color-border, rgba(255, 255, 255, 0.1));
}

/* V0.74 spec 0006 — faixa de acesso por liderança no header. */
.optare-autoowner-banner[b-sbtub1a25a] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 8px 16px 0 16px;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 0.85rem;
    color: var(--rm-color-warning-strong, #c98a2c);
    background: var(--rm-color-warning-subtle, rgba(212, 154, 58, 0.08));
    border: 1px solid var(--rm-color-warning-border, #d49a3a);
}

.optare-autoowner-banner .k-svg-icon[b-sbtub1a25a] {
    flex: 0 0 auto;
}

/* V0.74 spec 0006 — seção "Liderança automática" e badge. */
.optare-autoowners li[b-sbtub1a25a] {
    align-items: center;
    gap: 8px;
}

.optare-autoowner-name[b-sbtub1a25a] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
}

.optare-autoowner-name small[b-sbtub1a25a] {
    font-size: 0.75rem;
}

.optare-badge-autoowner[b-sbtub1a25a] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--rm-color-warning-strong, #c98a2c);
    background: var(--rm-color-warning-subtle, rgba(212, 154, 58, 0.10));
    border: 1px solid var(--rm-color-warning-border, #d49a3a);
}

.optare-badge-autoowner .k-svg-icon[b-sbtub1a25a] {
    width: 12px;
    height: 12px;
}

.optare-badge-carteira[b-sbtub1a25a] {
    margin-left: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--rm-color-text-muted);
    background: var(--rm-color-surface-elevated, rgba(255, 255, 255, 0.06));
    border: 1px solid var(--rm-color-border, rgba(255, 255, 255, 0.1));
}

/* Spec 0435 — área dedicada de aprovação (status "Em aprovação", publisher-only). */
.optare-approval-block[b-sbtub1a25a] {
    margin-bottom: 12px;
    padding: 12px;
    border-radius: 8px;
    border: 1px solid var(--rm-color-info-border, rgba(88, 166, 255, 0.35));
    background: var(--rm-color-info-subtle, rgba(88, 166, 255, 0.08));
}

.optare-approval-badge[b-sbtub1a25a] {
    color: var(--rm-color-info-strong, #58a6ff);
    background: var(--rm-color-info-subtle, rgba(88, 166, 255, 0.12));
    border: 1px solid var(--rm-color-info-border, rgba(88, 166, 255, 0.35));
}

.optare-approval-hint[b-sbtub1a25a] {
    margin: 8px 0 0;
    font-size: 0.8rem;
    color: var(--rm-color-text-muted);
}

/* Spec 0438 — participante inativo em tarefa aberta. */
.optare-inactive-banner[b-sbtub1a25a] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    padding: 10px 12px;
    border-radius: 8px;
    color: var(--rm-color-warning-strong, #c98a2c);
    background: var(--rm-color-warning-subtle, rgba(212, 154, 58, 0.10));
    border: 1px solid var(--rm-color-warning-border, #d49a3a);
    font-size: 0.85rem;
}

.optare-inactive-name[b-sbtub1a25a] {
    color: var(--rm-color-warning-strong, #c98a2c);
    font-style: italic;
}

.optare-avatar.is-inactive[b-sbtub1a25a] {
    opacity: 0.5;
    border: 1px dashed var(--rm-color-warning-border, #d49a3a);
}
/* /Features/Op/OpTare/OpTareKanbanCard.razor.rz.scp.css */
.optare-kanban-card[b-s7tpgbrzyz] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px 12px;
    background: var(--kendo-color-base, #1e1e1e);
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.08));
    border-radius: 6px;
    cursor: pointer;
    transition: border-color 0.12s ease, background 0.12s ease;
    color: var(--kendo-color-on-base, #fafafa);
}

.optare-kanban-card:hover[b-s7tpgbrzyz],
.optare-kanban-card:focus-visible[b-s7tpgbrzyz] {
    border-color: var(--kendo-color-primary, #ff7a00);
    background: var(--kendo-color-subtle-bg, rgba(255, 255, 255, 0.03));
    outline: none;
}

.optare-kanban-card.is-overdue[b-s7tpgbrzyz] {
    border-left: 3px solid var(--kendo-color-error, #f87171);
}

.optare-kanban-card-head[b-s7tpgbrzyz] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.optare-kanban-card-title[b-s7tpgbrzyz] {
    flex: 1;
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.optare-kanban-card-typed[b-s7tpgbrzyz] {
    flex-shrink: 0;
    opacity: 0.55;
    color: var(--kendo-color-on-base, #fafafa);
}

/* V0.923 spec 0262 — ícone de tipada vira atalho clicável p/ a origem. */
.optare-kanban-card-typed--clickable[b-s7tpgbrzyz] {
    cursor: pointer;
    opacity: 0.85;
}

.optare-kanban-card-typed--clickable:hover[b-s7tpgbrzyz] {
    opacity: 1;
}

.optare-kanban-card-meta[b-s7tpgbrzyz] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
    font-size: 0.75rem;
}

.optare-kanban-prazo[b-s7tpgbrzyz] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

.optare-kanban-prazo.is-neutral[b-s7tpgbrzyz],
.optare-kanban-prazo.is-future[b-s7tpgbrzyz] {
    background: var(--kendo-color-subtle-bg, rgba(255, 255, 255, 0.05));
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.75;
}

.optare-kanban-prazo.is-near[b-s7tpgbrzyz] {
    background: color-mix(in srgb, var(--kendo-color-warning, #f5a623) 20%, transparent);
    color: var(--kendo-color-warning, #f5a623);
}

.optare-kanban-prazo.is-overdue[b-s7tpgbrzyz] {
    background: color-mix(in srgb, var(--kendo-color-error, #f87171) 18%, transparent);
    color: var(--kendo-color-error, #f87171);
}

.optare-kanban-typed-label[b-s7tpgbrzyz] {
    padding: 2px 6px;
    border-radius: 4px;
    background: var(--kendo-color-subtle-bg, rgba(255, 255, 255, 0.05));
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.7;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.optare-kanban-proj[b-s7tpgbrzyz] {
    max-width: 160px;
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--kendo-color-subtle-bg, rgba(255, 255, 255, 0.04));
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.85;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.optare-kanban-card-foot[b-s7tpgbrzyz] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.optare-kanban-avatar[b-s7tpgbrzyz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--kendo-color-primary, #ff7a00);
    color: var(--kendo-color-on-primary, #ffffff);
    font-size: 0.65rem;
    font-weight: 600;
    line-height: 1;
}

.optare-kanban-avatar-more[b-s7tpgbrzyz] {
    background: var(--kendo-color-subtle-bg, rgba(255, 255, 255, 0.08));
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.7;
}

.optare-kanban-avatar.is-principal[b-s7tpgbrzyz] {
    border: 1.5px solid var(--kendo-color-primary, #6366f1);
}


/* Spec 0083 — badge discreto de progresso do Checklist no card. */
.optare-kanban-checklist[b-s7tpgbrzyz] {
    font-size: 0.7rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
    padding: 1px 6px;
    border-radius: 4px;
    background: var(--kendo-color-app-surface, rgba(255, 255, 255, 0.04));
    font-variant-numeric: tabular-nums;
}

/* Spec 0438 — participante inativo em tarefa aberta. */
.optare-kanban-inactive[b-s7tpgbrzyz] {
    display: inline-flex;
    align-items: center;
    margin-left: 4px;
    color: var(--rm-color-warning-strong, #c98a2c);
}

.optare-kanban-avatar.is-inactive[b-s7tpgbrzyz] {
    opacity: 0.5;
    border: 1px dashed var(--rm-color-warning-border, #d49a3a);
}
/* /Features/Op/OpTare/OpTareKanbanView.razor.rz.scp.css */
.optare-kanban[b-vpjopc4bxr] {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(280px, 1fr);
    gap: 12px;
    overflow-x: auto;
    padding: 4px 2px 12px;
    min-height: 360px;
    align-items: stretch;
}

.optare-kanban-col[b-vpjopc4bxr] {
    display: flex;
    flex-direction: column;
    min-width: 280px;
    background: var(--kendo-color-surface, #141414);
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.08));
    border-radius: 8px;
    overflow: hidden;
}

.optare-kanban-col-head[b-vpjopc4bxr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.08));
    background: var(--kendo-color-subtle-bg, rgba(255, 255, 255, 0.02));
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--kendo-color-on-base, #fafafa);
}

.optare-kanban-col-count[b-vpjopc4bxr] {
    font-size: 0.75rem;
    font-weight: 500;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--kendo-color-base, rgba(0, 0, 0, 0.2));
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.08));
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.75;
}

.optare-kanban-col-body[b-vpjopc4bxr] {
    flex: 1;
    min-height: 0;
    max-height: calc(100vh - 280px);
    overflow-y: auto;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.optare-kanban-empty[b-vpjopc4bxr] {
    text-align: center;
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.35;
    padding: 16px 0;
    font-size: 0.85rem;
}
/* /Features/Op/OpTare/OpTareListPage.razor.rz.scp.css */
.optare-kanban-banner[b-dkz81au70k] {
    padding: 8px 12px;
    margin: 0 0 12px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--kendo-color-warning, #f5a623) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--kendo-color-warning, #f5a623) 30%, transparent);
    color: var(--kendo-color-on-base, #fafafa);
    font-size: 0.85rem;
}

.optare-kanban-loading[b-dkz81au70k] {
    padding: 24px;
    text-align: center;
    opacity: 0.65;
    font-size: 0.9rem;
}

/* Spec 0082: ícone de prioridade antes do título na linha de lista. */
.optare-list-title[b-dkz81au70k] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.optare-list-checklist[b-dkz81au70k] {
    font-size: 0.75rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
    padding: 1px 6px;
    border-radius: 4px;
    background: var(--kendo-color-app-surface, rgba(255, 255, 255, 0.04));
    margin-left: 6px;
    font-variant-numeric: tabular-nums;
}

/* Spec 0438 — sinal de participante inativo em tarefa aberta. */
.optare-inactive-badge[b-dkz81au70k] {
    display: inline-flex;
    align-items: center;
    color: var(--rm-color-warning-strong, #c98a2c);
}

.optare-inactive-badge .k-svg-icon[b-dkz81au70k] {
    width: 14px;
    height: 14px;
}

.optare-inactive-name[b-dkz81au70k] {
    color: var(--rm-color-warning-strong, #c98a2c);
    font-style: italic;
}
/* /Features/Op/OpTare/OpTareTipadaListPage.razor.rz.scp.css */
/* Cabeçalho da listagem de Tarefas Tipadas: breadcrumb secundário + título à
   esquerda, toggle de status terminal à direita. Cores via tokens do tema. */

.optare-tipada-header[b-jvynafpg0n] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.optare-tipada-heading[b-jvynafpg0n] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

/* ── Breadcrumb secundário ──────────────────────────────────────────────── */

.optare-tipada-breadcrumb[b-jvynafpg0n] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.78rem;
    line-height: 1;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
}

.optare-tipada-breadcrumb a[b-jvynafpg0n] {
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
    text-decoration: none;
    border-radius: 4px;
    padding: 0.1rem 0.2rem;
    transition: color 120ms ease, background 120ms ease;
}

.optare-tipada-breadcrumb a:hover[b-jvynafpg0n] {
    color: var(--kendo-color-on-base, #fafafa);
    background: var(--kendo-color-base-hover, rgba(255, 255, 255, 0.06));
}

.optare-tipada-breadcrumb__sep[b-jvynafpg0n] {
    opacity: 0.4;
    font-size: 0.85rem;
}

.optare-tipada-breadcrumb__current[b-jvynafpg0n] {
    color: var(--kendo-color-on-base, #fafafa);
    font-weight: 600;
}

/* ── Título ─────────────────────────────────────────────────────────────── */

.optare-tipada-title[b-jvynafpg0n] {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--kendo-color-on-base, #fafafa);
}

/* ── Toggle "Incluir encerradas" ────────────────────────────────────────── */

.optare-terminal-toggle[b-jvynafpg0n] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    padding: 0.35rem 0.6rem;
    border-radius: 8px;
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    background: var(--kendo-color-surface, rgba(255, 255, 255, 0.03));
    flex-shrink: 0;
}

.optare-terminal-toggle__text[b-jvynafpg0n] {
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--kendo-color-on-base, #fafafa);
    white-space: nowrap;
}
/* /Features/Rh/Gv/Alocacao/GvAlocacaoColaboradorDetalhePage.razor.rz.scp.css */
/* Detalhe da alocação por colaborador (spec 0270) — layout/posicionamento; visual do tema. */

.gv-aloc-id[b-jkhl9q1bqp] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.gv-aloc-avatar[b-jkhl9q1bqp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    font-size: 1rem;
    font-weight: 700;
    color: var(--kendo-color-on-primary, #fff);
    background: var(--kendo-color-primary, #ff5a5f);
    flex-shrink: 0;
}

.gv-aloc-badge[b-jkhl9q1bqp] {
    display: inline-block;
    margin-left: .6rem;
    padding: .12rem .55rem;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    vertical-align: middle;
}

.gv-aloc-badge--ok[b-jkhl9q1bqp] {
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
}

.gv-aloc-badge--off[b-jkhl9q1bqp] {
    color: var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .12);
}

/* Duas colunas: conteúdo + identificação (aside). Colapsa no mobile. */
.gv-aloc-layout[b-jkhl9q1bqp] {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 1rem;
    align-items: start;
}

@media (max-width: 900px) {
    .gv-aloc-layout[b-jkhl9q1bqp] {
        grid-template-columns: 1fr;
    }
}

.gv-aloc-main[b-jkhl9q1bqp] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.gv-aloc-vaga-head[b-jkhl9q1bqp] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.gv-aloc-vaga-actions[b-jkhl9q1bqp] {
    display: flex;
    flex-shrink: 0;
    gap: .5rem;
}

.gv-aloc-vaga-num[b-jkhl9q1bqp] {
    font-size: .95rem;
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-aloc-vaga-sub[b-jkhl9q1bqp] {
    margin-top: .15rem;
    font-size: .78rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

.gv-aloc-kpis[b-jkhl9q1bqp] {
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
}

.gv-aloc-saldo--pos .kpi-card__number[b-jkhl9q1bqp],
.gv-aloc-saldo--pos .kpi-card__suffix[b-jkhl9q1bqp] {
    color: var(--kendo-color-success, #4fbf67);
}

.gv-aloc-saldo--neg .kpi-card__number[b-jkhl9q1bqp],
.gv-aloc-saldo--neg .kpi-card__suffix[b-jkhl9q1bqp] {
    color: var(--kendo-color-warning, #f2c94c);
}

.gv-aloc-share[b-jkhl9q1bqp] {
    margin-top: 1rem;
    padding-top: .85rem;
    border-top: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .08));
}

.gv-aloc-share__title[b-jkhl9q1bqp] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
    margin-bottom: .5rem;
}

.gv-aloc-share__row[b-jkhl9q1bqp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .3rem 0;
    font-size: .85rem;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-aloc-share__empty[b-jkhl9q1bqp] {
    font-size: .82rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

.gv-aloc-hist[b-jkhl9q1bqp] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.gv-aloc-hist__item[b-jkhl9q1bqp] {
    display: flex;
    align-items: baseline;
    gap: .6rem;
    font-size: .85rem;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-aloc-hist__data[b-jkhl9q1bqp],
.gv-aloc-hist__resp[b-jkhl9q1bqp] {
    font-size: .76rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

.gv-aloc-ident[b-jkhl9q1bqp] {
    margin: 0;
    display: flex;
    flex-direction: column;
}

.gv-aloc-ident > div[b-jkhl9q1bqp] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .4rem 0;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .06));
}

.gv-aloc-ident > div:last-child[b-jkhl9q1bqp] {
    border-bottom: none;
}

.gv-aloc-ident dt[b-jkhl9q1bqp] {
    font-size: .8rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

.gv-aloc-ident dd[b-jkhl9q1bqp] {
    margin: 0;
    font-size: .85rem;
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
    text-align: right;
}

.gv-aloc-remover__q[b-jkhl9q1bqp] {
    margin: 0 0 .85rem;
    font-size: .9rem;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-aloc-remover__warn[b-jkhl9q1bqp] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin-top: .85rem;
    padding: .6rem .75rem;
    border-radius: 6px;
    font-size: .8rem;
    color: var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .1);
    border: 1px solid rgba(242, 201, 76, .25);
}
/* /Features/Rh/Gv/Alocacao/GvAlocacaoGrid.razor.rz.scp.css */
/* Grid de alocação da vaga (V0.974). Cores sempre de token do tema Telerik — o
   fallback nunca pode ser a cor efetiva (senão o card fica travado num tema só). */

.gv-aloc__actions[b-aa2v0lf8v4] {
    display: flex;
    gap: .5rem;
    align-items: center;
}

.gv-aloc__table[b-aa2v0lf8v4] {
    width: 100%;
    border-collapse: collapse;
    font-size: .875rem;
}

.gv-aloc__table th[b-aa2v0lf8v4],
.gv-aloc__table td[b-aa2v0lf8v4] {
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--kendo-color-border);
    text-align: left;
    vertical-align: middle;
}

.gv-aloc__table thead th[b-aa2v0lf8v4] {
    color: var(--kendo-color-subtle);
    font-weight: 600;
}

.gv-aloc__table tfoot td[b-aa2v0lf8v4] {
    background: var(--kendo-color-base-subtle);
    font-weight: 600;
    border-bottom: none;
}

.gv-aloc__num[b-aa2v0lf8v4] {
    text-align: right;
    white-space: nowrap;
}

.gv-aloc__negativo[b-aa2v0lf8v4] {
    color: var(--kendo-color-error);
    font-weight: 600;
}

/* A diferença é INFORMAÇÃO enquanto se digita (tom neutro) e vira ALERTA quando o campo
   perde o foco ou quando se tenta salvar. Pintar de vermelho a cada tecla treina o olho a
   ignorar o vermelho — que é o que precisa funcionar no momento em que importa. */
.gv-aloc__diferenca[b-aa2v0lf8v4] {
    color: var(--kendo-color-subtle);
}

.gv-aloc__diferenca--alerta[b-aa2v0lf8v4] {
    color: var(--kendo-color-error);
    font-weight: 600;
}

/* Rolagem própria da área de alocação: dez ou mais destinos é caso real. O cabeçalho e a
   linha de totais ficam grudados nas bordas, para que a linha da vaga e o total nunca
   saiam da vista justo quando há mais o que conferir. */
.gv-aloc__scroll[b-aa2v0lf8v4] {
    max-height: 26rem;
    overflow-y: auto;
}

.gv-aloc__scroll .gv-aloc__table thead th[b-aa2v0lf8v4] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--kendo-color-surface);
}

.gv-aloc__scroll .gv-aloc__table tfoot td[b-aa2v0lf8v4] {
    position: sticky;
    bottom: 0;
    z-index: 2;
}

.gv-aloc__cross[b-aa2v0lf8v4],
.gv-aloc__saldos[b-aa2v0lf8v4],
.gv-aloc__sem-fonte[b-aa2v0lf8v4] {
    display: inline-block;
    margin-left: .5rem;
    padding: .05rem .4rem;
    border-radius: 4px;
    background: var(--kendo-color-base-subtle);
    color: var(--kendo-color-subtle);
    font-size: .75rem;
}

.gv-aloc__pendencia[b-aa2v0lf8v4],
.gv-aloc__aviso[b-aa2v0lf8v4] {
    margin: 0 0 .75rem;
    padding: .5rem .75rem;
    border-radius: 6px;
    background: var(--kendo-color-base-subtle);
    color: var(--kendo-color-on-app-surface);
}

.gv-aloc__lista[b-aa2v0lf8v4] {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 320px;
    overflow-y: auto;
}

.gv-aloc__opcao[b-aa2v0lf8v4] {
    display: flex;
    gap: .75rem;
    align-items: center;
    width: 100%;
    padding: .5rem .75rem;
    border: none;
    border-bottom: 1px solid var(--kendo-color-border);
    background: transparent;
    color: var(--kendo-color-on-app-surface);
    text-align: left;
    cursor: pointer;
}

.gv-aloc__opcao:hover[b-aa2v0lf8v4] {
    background: var(--kendo-color-base-subtle);
}

.gv-aloc__confirmacao[b-aa2v0lf8v4] {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--kendo-color-border);
}

.gv-aloc__row-actions[b-aa2v0lf8v4] {
    white-space: nowrap;
    text-align: right;
}

/* Folha guardada (Saving Operacional) no seletor — ofertável, mas sinalizada. */
.gv-aloc__classif[b-aa2v0lf8v4] {
    font-size: .72rem;
    padding: .1rem .4rem;
    border-radius: 3px;
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, .08));
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .7));
}

/* Fonte um pouco menor no grid (V0.974 spec 0568): a tabela tem 8 colunas e a vaga
   dividida entre muitos clientes é caso real. */
.gv-aloc__table[b-aa2v0lf8v4] {
    font-size: .8125rem;
}

/* A coluna de % carrega um NumericTextBox com spinners — apertada, ela corta o valor. */
.gv-aloc__col-pc[b-aa2v0lf8v4] {
    min-width: 130px;
}

/* Código da origem: abre o detalhe no painel. Na cor do texto — sublinhado e cursor só
   no hover, para não pintar de cor de link uma coluna inteira de dados. */
.gv-aloc__origem-link[b-aa2v0lf8v4] {
    padding: 0;
    margin-right: .4rem;
    border: none;
    background: transparent;
    color: inherit;
    font: inherit;
    cursor: default;
}

.gv-aloc__origem-link:hover[b-aa2v0lf8v4] {
    text-decoration: underline;
    cursor: pointer;
}

/* Barra de filtros dos seletores (FTE RH / saldo). */
.gv-aloc__filtros[b-aa2v0lf8v4] {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: .75rem;
}

.gv-aloc__filtros label[b-aa2v0lf8v4] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.gv-aloc__filtros label > span[b-aa2v0lf8v4] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--kendo-color-subtle);
}

/* ── VL2: o valor e as ações que o produzem, na mesma célula ──────────────────
   A linha ganhou altura para caber as ações SEM deslocar o número: o valor segue
   no fluxo (alinhado com os demais da linha) e as ações são absolutas no rodapé
   da célula. Botão com borda competia com o dado — aqui elas são texto. */
.gv-aloc__table tbody td[b-aa2v0lf8v4] {
    position: relative;
    padding-bottom: 1.35rem;
}

/* VL2 em duas linhas: ação à esquerda, valor à direita. */
.gv-aloc__vl2-linha[b-aa2v0lf8v4] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
}

/* Ação é texto, na cor do texto: só o hover a distingue — realce permanente competia
   com o dado da linha. */
.gv-aloc__acao-link[b-aa2v0lf8v4] {
    padding: 0;
    border: none;
    background: transparent;
    color: var(--kendo-color-subtle);
    font: inherit;
    font-size: .72rem;
    cursor: pointer;
}

.gv-aloc__acao-link:hover:not(:disabled)[b-aa2v0lf8v4] {
    color: var(--kendo-color-on-app-surface);
    text-decoration: underline;
}

/* Alocação já paga por um FTE RH não recebe outro — a ação fica visível e apagada, com a
   razão no title: sumir com ela deixaria o RH procurando onde clicar. */
.gv-aloc__acao-link:disabled[b-aa2v0lf8v4] {
    opacity: .45;
    cursor: not-allowed;
}

.gv-aloc__vl2-valor[b-aa2v0lf8v4] {
    font-weight: 600;
}

/* ── Resumo do seletor: rótulo + valor, do mesmo tamanho a cada escolha ───── */
.gv-aloc__resumo[b-aa2v0lf8v4] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.25rem;
    margin-top: .75rem;
    padding: .6rem .75rem;
    border-radius: 6px;
    background: var(--kendo-color-base-subtle);
}

.gv-aloc__resumo-item[b-aa2v0lf8v4] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.gv-aloc__resumo-lbl[b-aa2v0lf8v4] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--kendo-color-subtle);
}

.gv-aloc__resumo-vl[b-aa2v0lf8v4] {
    font-size: 1rem;
    color: var(--kendo-color-on-app-surface);
}

.gv-aloc__chip[b-aa2v0lf8v4] {
    align-self: center;
    padding: .12rem .5rem;
    border: 1px solid var(--kendo-color-border);
    border-radius: 99px;
    font-size: .72rem;
    color: var(--kendo-color-subtle);
}

/* Prévia antes → depois do movimento de saldo (mesmo desenho do diálogo de alocação). */
.gv-aloc__previa[b-aa2v0lf8v4] {
    width: 100%;
    margin-top: .75rem;
    border-collapse: collapse;
    font-size: .8125rem;
}

.gv-aloc__previa th[b-aa2v0lf8v4],
.gv-aloc__previa td[b-aa2v0lf8v4] {
    padding: .3rem .6rem;
    border-bottom: 1px solid var(--kendo-color-border);
    text-align: left;
}

.gv-aloc__previa thead th[b-aa2v0lf8v4] {
    color: var(--kendo-color-subtle);
    font-weight: 600;
}

.gv-aloc__previa-depois[b-aa2v0lf8v4] {
    background: var(--kendo-color-base-subtle);
}

.gv-aloc__filtros-limpar[b-aa2v0lf8v4] {
    align-self: flex-end;
}

/* Larguras equilibradas: o Cliente (o dado que identifica a linha) fica com o espaço que
   sobra, e nenhuma coluna de valor toma mais do que precisa. Abaixo da largura mínima a
   tabela ROLA em vez de espremer — o remédio contra coluna que some. */
.gv-aloc__table[b-aa2v0lf8v4] {
    table-layout: fixed;
    min-width: 940px;
}

.gv-aloc__table th.gv-aloc__num[b-aa2v0lf8v4],
.gv-aloc__table td.gv-aloc__num[b-aa2v0lf8v4] {
    width: 120px;
}

.gv-aloc__table th.gv-aloc__col-pc[b-aa2v0lf8v4],
.gv-aloc__table td.gv-aloc__col-pc[b-aa2v0lf8v4] {
    width: 104px;
}

/* O VL2 é a única de valor com duas linhas (FTE RH e Saldo) — precisa de mais. */
.gv-aloc__vl2[b-aa2v0lf8v4] {
    width: 168px;
}

/* Origem: cabe um código (FTE-A0001.1 / SD-VG-0001). */
.gv-aloc__table th:nth-child(6)[b-aa2v0lf8v4],
.gv-aloc__table td:nth-child(6)[b-aa2v0lf8v4] {
    width: 128px;
}

/* Só a lixeira. */
.gv-aloc__table th:last-child[b-aa2v0lf8v4],
.gv-aloc__table td:last-child[b-aa2v0lf8v4] {
    width: 44px;
    padding-left: 0;
    padding-right: .35rem;
}

/* As linhas voltam a ter altura de uma linha só: as ações saíram do rodapé absoluto. */
.gv-aloc__table tbody td[b-aa2v0lf8v4] {
    position: static;
    padding-bottom: .5rem;
}
/* /Features/Rh/Gv/Alocacao/GvAlocacaoListPage.razor.rz.scp.css */
/* Lista de Alocação — apenas layout/posicionamento; visual vem do tema Telerik e
   das classes globais (kpi-card, page-toolbar). Espelha o Painel de Vagas. */

.gv-stats-row[b-i3pqkgk72v] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.gv-stat-clickable[b-i3pqkgk72v] {
    cursor: pointer;
}

/* Card-filtro selecionado — realce do recorte ativo do grid. */
.gv-stat-active[b-i3pqkgk72v] {
    box-shadow: inset 0 0 0 2px var(--kendo-color-primary, #3b82f6);
}

/* Célula de duas linhas (Colaborador · Cargo) — densidade. */
.gv-alocacao-list[b-i3pqkgk72v]  .gv-cargo-cell {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-cargo-cell__name {
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-cargo-cell__sub {
    font-size: .72rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

/* Badges de status — pill com dot, renderizadas dentro do TelerikGrid (::deep). */
.gv-alocacao-list[b-i3pqkgk72v]  .gv-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .12rem .5rem;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
    vertical-align: middle;
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    background: currentColor;
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-badge--success {
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-badge--warning {
    color: var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .12);
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-badge--danger {
    color: var(--kendo-color-error, #ff6b6b);
    background: rgba(255, 107, 107, .12);
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-badge--dark {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .45));
    background: rgba(0, 0, 0, .25);
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .08));
}

/* Linha do grid clicável (abre o detalhe do colaborador) — affordance de cursor.
   ::deep alcança o <tr> renderizado pelo TelerikGrid. */
.gv-alocacao-list[b-i3pqkgk72v]  .k-grid tr.k-table-row {
    cursor: pointer;
}

/* Coluna Vaga: link de conteúdo padrão (.app-link) + cursor de link (sobrepõe o clique da linha). */
.gv-alocacao-list[b-i3pqkgk72v]  .gv-vaga-link {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));    
    text-decoration: none;
    cursor: pointer;
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-vaga-link:hover {
    color: var(--kendo-color-info, #5b9cff);
}

/* Coluna Saldo: valor (R$ ou oculto) + status de uso na mesma célula. */
.gv-alocacao-list[b-i3pqkgk72v]  .gv-aloc-saldo {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    align-items: flex-start;
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-aloc-saldo__uso {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    align-items: flex-start;
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-saldo-vl {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-saldo-vl--neg {
    color: var(--kendo-color-error, #ff6b6b);
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-saldo-vl--hidden {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .4));
    letter-spacing: .15em;
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-saldo-uso-link {
    font-size: 11.5px;
    color: var(--kendo-color-info, #5b9cff);
    text-decoration: none;
}

.gv-alocacao-list[b-i3pqkgk72v]  .gv-saldo-uso-link:hover {
    text-decoration: underline;
}
/* /Features/Rh/Gv/Alocacao/GvAlocacaoPanel.razor.rz.scp.css */
/* ── Ocupante (avatar + nome/cargo) ───────────────────────────────────────── */
.gv-aloc-ocupante[b-oeirmb6i2t] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .25rem 0 .6rem;
}

.gv-aloc-avatar[b-oeirmb6i2t] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: var(--kendo-color-primary, #ff5a5f);
    color: #fff;
    font-weight: 700;
    font-size: .82rem;
}

.gv-aloc-pessoa[b-oeirmb6i2t] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.gv-aloc-nome[b-oeirmb6i2t] {
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-aloc-cargo[b-oeirmb6i2t] {
    font-size: .78rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

/* ── Faixa V3 + Saldo de vaga ──────────────────────────────────────────────── */
.gv-aloc-strip[b-oeirmb6i2t] {
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    margin-top: .25rem;
}

.gv-kpi-sub[b-oeirmb6i2t] {
    margin-top: auto;
    font-size: .7rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
}

/* Saldo positivo (folga) verde; negativo vermelho — elementos próprios, sem ::deep. */
.gv-aloc-card--folga .kpi-card__number[b-oeirmb6i2t],
.gv-aloc-card--folga .kpi-card__suffix--lead[b-oeirmb6i2t] {
    color: var(--kendo-color-success, #4fbf67);
}

.gv-aloc-card--negativo .kpi-card__number[b-oeirmb6i2t],
.gv-aloc-card--negativo .kpi-card__suffix--lead[b-oeirmb6i2t] {
    color: var(--kendo-color-error, #f5544f);
}
/* /Features/Rh/Gv/Alocacao/GvAlocarColaboradorPanel.razor.rz.scp.css */
/* Painel Alocar Colaborador (ActionPanel — renderiza inline, scoped plain basta). */

.gv-alocar__colab[b-r3pgut9l2p] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .65rem .8rem;
    margin-bottom: 1rem;
    border-radius: 6px;
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, .04));
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .08));
}

.gv-aloc-avatar[b-r3pgut9l2p] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: .9rem;
    font-weight: 700;
    color: var(--kendo-color-on-primary, #fff);
    background: var(--kendo-color-primary, #ff5a5f);
    flex-shrink: 0;
}

.gv-alocar__nome[b-r3pgut9l2p] {
    font-size: .92rem;
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-alocar__desc[b-r3pgut9l2p] {
    font-size: .76rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

.gv-alocar__campo[b-r3pgut9l2p] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    margin-bottom: .9rem;
}

.gv-alocar__label[b-r3pgut9l2p] {
    font-size: .8rem;
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-aloc-req[b-r3pgut9l2p] {
    color: var(--kendo-color-error, #f55);
}

.gv-alocar__hint[b-r3pgut9l2p] {
    font-size: .8rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

.gv-alocar__ro[b-r3pgut9l2p] {
    padding: .45rem .65rem;
    border-radius: 6px;
    font-size: .9rem;
    color: var(--kendo-color-on-base, #fafafa);
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, .04));
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .08));
}

.gv-alocar__nota[b-r3pgut9l2p] {
    font-size: .72rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
}

.gv-alocar__saldo[b-r3pgut9l2p] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem .8rem;
    margin-bottom: .5rem;
    border-radius: 6px;
}

.gv-alocar__saldo--pos[b-r3pgut9l2p] {
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
    border: 1px solid rgba(79, 191, 103, .25);
}

.gv-alocar__saldo--neg[b-r3pgut9l2p] {
    color: var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .12);
    border: 1px solid rgba(242, 201, 76, .25);
}

.gv-alocar__saldo-k[b-r3pgut9l2p] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    line-height: 1.3;
}

.gv-alocar__saldo-v[b-r3pgut9l2p] {
    font-size: 1.1rem;
    font-weight: 700;
}

.gv-alocar__erro[b-r3pgut9l2p] {
    margin-top: .5rem;
}
/* /Features/Rh/Gv/Alocacao/GvAlocarFolhaDialog.razor.rz.scp.css */
/* Diálogo "Alocar FTE RH na vaga" (V0.974 spec 0568): vaga em números, alocação de hoje,
   separador, e a prévia de como fica. */

.gv-alocar__kpis[b-r1kao60060] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin: .6rem 0 0;
    padding: .5rem .6rem;
    border-radius: 6px;
    background: var(--kendo-color-base-subtle);
}

.gv-alocar__kpi[b-r1kao60060] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.gv-alocar__kpi-lbl[b-r1kao60060] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--kendo-color-subtle);
}

.gv-alocar__titulo[b-r1kao60060] {
    margin: 0 0 .4rem;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--kendo-color-subtle);
}

.gv-alocar__sep[b-r1kao60060] {
    margin: 1.25rem 0;
    border: none;
    border-top: 1px solid var(--kendo-color-border);
}

.gv-alocar__grid[b-r1kao60060] {
    width: 100%;
    border-collapse: collapse;
    font-size: .8125rem;
}

.gv-alocar__grid th[b-r1kao60060],
.gv-alocar__grid td[b-r1kao60060] {
    padding: .3rem .6rem;
    border-bottom: 1px solid var(--kendo-color-border);
    text-align: left;
}

.gv-alocar__grid thead th[b-r1kao60060] {
    color: var(--kendo-color-subtle);
    font-weight: 600;
}

.gv-alocar__num[b-r1kao60060] {
    text-align: right;
    white-space: nowrap;
}

.gv-alocar__vazio[b-r1kao60060] {
    color: var(--kendo-color-subtle);
    text-align: center;
}

/* O que a confirmação cria e o que ela mexe — a diferença é o ponto da prévia. */
.gv-alocar__linha--nova[b-r1kao60060] {
    background: var(--kendo-color-base-subtle);
    box-shadow: inset 3px 0 0 0 var(--kendo-color-primary);
}

.gv-alocar__tag[b-r1kao60060] {
    margin-left: .4rem;
    padding: .05rem .35rem;
    border-radius: 3px;
    background: var(--kendo-color-primary);
    color: var(--kendo-color-on-primary, #fff);
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.gv-alocar__origem-link[b-r1kao60060] {
    padding: 0;
    border: none;
    background: transparent;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.gv-alocar__origem-link:hover[b-r1kao60060] {
    text-decoration: underline;
}

.gv-alocar__linha--alterada td:first-child[b-r1kao60060]::after {
    content: " (ajustada)";
    color: var(--kendo-color-subtle);
    font-size: .72rem;
}

.gv-alocar__efeitos[b-r1kao60060] {
    margin: 0 0 .75rem;
    padding-left: 1.1rem;
    font-size: .8125rem;
    color: var(--kendo-color-subtle);
}
/* /Features/Rh/Gv/Alocacao/GvOrigemDetalhePanel.razor.rz.scp.css */
/* Detalhe da origem de uma alocação (FTE RH ou saldo) — só leitura.
   O painel tem estilo PRÓPRIO: `gv-sum` é CSS scoped da tela da vaga e não alcança o
   conteúdo do Action Panel, então o rótulo e o valor apareciam colados. */
.gv-origem-det__linhas[b-ut7gxboh0d] {
    display: flex;
    flex-direction: column;
}

.gv-origem-det__linha[b-ut7gxboh0d] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .5rem 0;
    border-bottom: 1px solid var(--kendo-color-border);
}

.gv-origem-det__linha:last-child[b-ut7gxboh0d] {
    border-bottom: none;
}

.gv-origem-det__lbl[b-ut7gxboh0d] {
    flex: 0 0 auto;
    font-size: .78rem;
    color: var(--kendo-color-subtle);
}

.gv-origem-det__vl[b-ut7gxboh0d] {
    text-align: right;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface);
}

.gv-origem-det__aviso[b-ut7gxboh0d] {
    margin-top: 1rem;
    padding: .6rem .75rem;
    border-radius: 6px;
    background: var(--kendo-color-base-subtle);
    color: var(--kendo-color-on-app-surface);
    font-size: .8125rem;
}

.gv-origem-det__acoes[b-ut7gxboh0d] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--kendo-color-border);
}

.gv-origem-det__acoes-hint[b-ut7gxboh0d] {
    font-size: .78rem;
    color: var(--kendo-color-subtle);
}

/* Referência clicável dentro do painel: valor comum, sublinhado só no hover. */
.gv-origem-det__link[b-ut7gxboh0d] {
    padding: 0;
    border: none;
    background: transparent;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.gv-origem-det__link:hover[b-ut7gxboh0d] {
    text-decoration: underline;
}
/* /Features/Rh/Gv/Consultas/GvConsultaView.razor.rz.scp.css */
/* Contrato comum das consultas da Gestão de Vagas (spec 0576).
   Cores saem de token do tema Telerik — o tema claro/escuro troca os --kendo-color-*,
   e fallback com cor efetiva travaria o componente num dos dois. */

.gv-consulta[b-952nxp4trt] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.gv-consulta__erro[b-952nxp4trt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border-left: 4px solid var(--kendo-color-error);
    color: var(--kendo-color-on-app-surface);
}

.gv-consulta__filtros[b-952nxp4trt] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
}

.gv-consulta__filtros-campos[b-952nxp4trt] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
    flex: 1 1 auto;
}

.gv-consulta__filtros-acoes[b-952nxp4trt] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Estado pendente: enquanto houver filtro mexido e não aplicado, o botão se destaca —
   sem isso o usuário lê a grid antiga como resposta ao filtro novo. */
.gv-consulta__aplicar--pendente[b-952nxp4trt] {
    box-shadow: 0 0 0 2px var(--kendo-color-warning);
}

.gv-consulta__pendente[b-952nxp4trt] {
    font-size: 0.85rem;
    color: var(--kendo-color-subtle);
}

/* Saldo negativo: não é utilizável em composição — marcado, nunca escondido. */
.gv-consulta__saldo--neg[b-952nxp4trt] {
    color: var(--kendo-color-error);
}

.gv-consulta__nota[b-952nxp4trt] {
    margin-left: 6px;
    font-size: 0.8rem;
    color: var(--kendo-color-subtle);
}
/* /Features/Rh/Gv/Dashboard/GvDashboardPage.razor.rz.scp.css */
/* ── Subtítulo do cabeçalho ───────────────────────────────────────────── */
.gv-page-sub[b-c0q7wy46uv] {
    margin-top: .25rem;
    font-size: .85rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

/* ── Faixa de KPI estável ─────────────────────────────────────────────────
   Colunas derivadas da largura do container (auto-fill), não da contagem de
   cards: alternar o conjunto condicional por permissão não muda a largura
   das colunas nem deixa buraco — cards fluem em sequência. */
.gv-kpi-row[b-c0q7wy46uv] {
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
}

/* Subtítulo contextual do stat-card (linha discreta abaixo do número). */
.gv-kpi-card__sub[b-c0q7wy46uv] {
    margin-top: auto;
    font-size: .72rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
}

/* Label de atenção (déficit, desligados) — mesma tinta da cobertura em déficit. */
.gv-attn[b-c0q7wy46uv] {
    color: var(--kendo-color-warning, #f2c94c) !important;
}

/* Valor monetário "negativo por natureza" (saldo negativo) em cor de atenção. */
.gv-kpi-card__number--warn[b-c0q7wy46uv] {
    color: var(--kendo-color-warning, #f2c94c);
}

/* ── Card clicável — affordance única dos dois cards com destino ───────── */
.gv-kpi-card--link[b-c0q7wy46uv] {
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.gv-kpi-card--link:hover[b-c0q7wy46uv],
.gv-kpi-card--link:focus-visible[b-c0q7wy46uv] {
    border-color: var(--kendo-color-primary, #ff5a5f);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .35);
    outline: none;
}

.gv-kpi-card__cta[b-c0q7wy46uv] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    margin-top: auto;
    font-size: .75rem;
    font-weight: 600;
    color: var(--kendo-color-primary, #ff5a5f);
}

/* ── Hint explicativo no topo de cada bloco analítico (aba) ────────────── */
.gv-block-hint[b-c0q7wy46uv] {
    margin: 0 0 .75rem;
    font-size: .78rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
}

.gv-block-hint strong[b-c0q7wy46uv] {
    color: var(--kendo-color-on-base, #fafafa);
    font-weight: 600;
}

/* ── Células dos grids (renderizadas dentro do Telerik → via ::deep) ─────── */

/* Cobertura: déficit em atenção, buffer em positivo. Pill discreta, mesma
   convenção visual do badge de status. */
.gv-analytics[b-c0q7wy46uv]  .gv-cobertura {
    display: inline-block;
    padding: .15rem .5rem;
    border-radius: 4px;
    font-weight: 600;
}

.gv-analytics[b-c0q7wy46uv]  .gv-cobertura--deficit {
    color: var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .12);
    border: 1px solid rgba(242, 201, 76, .25);
}

.gv-analytics[b-c0q7wy46uv]  .gv-cobertura--buffer {
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
    border: 1px solid rgba(79, 191, 103, .22);
}

/* Saldo (V1 − V3) — saldo de vaga e saldo contratual: cor por sinal, sem pill. */
.gv-analytics[b-c0q7wy46uv]  .gv-saldo {
    font-weight: 600;
}

.gv-analytics[b-c0q7wy46uv]  .gv-saldo--neg {
    color: var(--kendo-color-warning, #f2c94c);
}

.gv-analytics[b-c0q7wy46uv]  .gv-saldo--pos {
    color: var(--kendo-color-success, #4fbf67);
}

/* Badge "% vendido" — pill com dot colorido por faixa (espelha o protótipo). */
.gv-analytics[b-c0q7wy46uv]  .gv-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .15rem .55rem;
    border-radius: 20px;
    font-size: .75rem;
    font-weight: 600;
    white-space: nowrap;
}

.gv-analytics[b-c0q7wy46uv]  .gv-badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    background: currentColor;
}

.gv-analytics[b-c0q7wy46uv]  .gv-badge--success {
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
}

.gv-analytics[b-c0q7wy46uv]  .gv-badge--info {
    color: var(--kendo-color-info, #5b9cff);
    background: rgba(91, 156, 255, .12);
}

.gv-analytics[b-c0q7wy46uv]  .gv-badge--warning {
    color: var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .12);
}

.gv-analytics[b-c0q7wy46uv]  .gv-badge--neutral {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
    background: rgba(255, 255, 255, .05);
}

/* Drill-down do percentual sem lastro: destino e pessoa lado a lado. */
.gv-semlastro[b-c0q7wy46uv] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
}

.gv-semlastro__titulo[b-c0q7wy46uv] {
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
    margin: 0 0 .5rem;
}
/* /Features/Rh/Gv/Fte/GvFteEditorLotePanel.razor.rz.scp.css */
.gv-lote[b-yx1bp4gmlr] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: .25rem;
}

/* ── Cabeçalho: identidade do grupo + soma ao vivo ───────────────────────── */
.gv-lote__head[b-yx1bp4gmlr] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .12));
}

.gv-lote__id[b-yx1bp4gmlr] {
    font-weight: 700;
    font-size: 1rem;
}

.gv-lote__pai[b-yx1bp4gmlr] {
    font-size: .82rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .65));
}

.gv-lote__soma[b-yx1bp4gmlr] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: .85rem;
    padding: .35rem .6rem;
    border-radius: 6px;
    width: fit-content;
}

.gv-lote__soma--ok[b-yx1bp4gmlr] {
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
}

.gv-lote__soma--erro[b-yx1bp4gmlr] {
    color: var(--kendo-color-error, #f25c5c);
    background: rgba(242, 92, 92, .12);
}

.gv-lote__dif[b-yx1bp4gmlr] {
    font-weight: 600;
}

/* ── Grid de linhas ──────────────────────────────────────────────────────── */
.gv-lote__grid[b-yx1bp4gmlr] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

/* Larguras fixas nas colunas Classificação/Ação (não `auto`): cada linha é um grid próprio,
   então `auto` produziria bordas diferentes entre cabeçalho e dados (desalinhamento). */
.gv-lote__row[b-yx1bp4gmlr] {
    display: grid;
    grid-template-columns: minmax(150px, 1.2fr) 160px minmax(120px, 1fr) minmax(150px, 1.1fr) 120px;
    align-items: center;
    gap: .75rem;
}

.gv-lote__grid--classif .gv-lote__row[b-yx1bp4gmlr] {
    grid-template-columns: minmax(150px, 1.2fr) 160px minmax(120px, 1fr) minmax(150px, 1.1fr) 200px 120px;
}

/* Totalizadores por classificação: como o grupo está partido entre Livre e reservas. */
.gv-lote__totais[b-yx1bp4gmlr] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .12));
    font-size: .85rem;
}

.gv-lote__total[b-yx1bp4gmlr] {
    display: inline-flex;
    align-items: baseline;
    gap: .4rem;
}

.gv-lote__total-nm[b-yx1bp4gmlr] {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
}

.gv-lote__row--header[b-yx1bp4gmlr] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
}

.gv-lote__row--inativa[b-yx1bp4gmlr] {
    opacity: .6;
}

.gv-lote__row--inativa .gv-lote__cod[b-yx1bp4gmlr] {
    text-decoration: line-through;
}

.gv-lote__cod[b-yx1bp4gmlr] {
    display: inline-flex;
    flex-direction: column;
    gap: .15rem;
    font-weight: 600;
}

.gv-lote__cod-main[b-yx1bp4gmlr] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

/* ── Células Vaga/Saldo (principal + pessoa em sub-texto, como o grid de FTE) ── */
.gv-lote__cell[b-yx1bp4gmlr] {
    display: inline-flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}

.gv-lote__cell-main[b-yx1bp4gmlr] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 600;
}

.gv-lote__cell-sub[b-yx1bp4gmlr] {
    font-size: .72rem;
    font-weight: 400;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gv-lote__cell-empty[b-yx1bp4gmlr] {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .45));
    font-weight: 400;
}

.gv-lote__acao[b-yx1bp4gmlr] {
    justify-self: end;
}

.gv-lote__add[b-yx1bp4gmlr] {
    margin-top: .25rem;
}

.gv-lote__erro[b-yx1bp4gmlr] {
    margin-top: .25rem;
}

/* ── Badges (componente próprio — sem ::deep) ────────────────────────────── */
.gv-fte-badge[b-yx1bp4gmlr] {
    display: inline-block;
    padding: .1rem .5rem;
    border-radius: 20px;
    font-size: .68rem;
    font-weight: 600;
    white-space: nowrap;
}

.gv-fte-badge--uso[b-yx1bp4gmlr] {
    color: var(--kendo-color-info, #5b9cff);
    background: rgba(91, 156, 255, .12);
}

.gv-fte-badge--reserva[b-yx1bp4gmlr] {
    color: var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .12);
}

.gv-fte-badge--saldo[b-yx1bp4gmlr] {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .8));
    background: rgba(255, 255, 255, .08);
}
/* /Features/Rh/Gv/Pricing/GvPricingDetalhePage.razor.rz.scp.css */
/* Detalhe do Pricing por cliente — apenas layout/posicionamento; visual vem do
   tema Telerik. Badges/nó da árvore espelham a tela de FTE local. */

/* ── Cor por nível: pai (grupo) sempre na mesma cor; filhas em outra ──────── */
.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-row--grupo > td {
    background-color: var(--kendo-color-base-subtle, rgba(0, 0, 0, .05)) !important;
    font-weight: 600;
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-row--filho > td {
    background-color: var(--kendo-color-surface, transparent) !important;
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-node {
    display: inline-flex;
    flex-direction: column;
    line-height: 1.25;
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-node__main {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-node__sub {
    font-size: .72rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

/* "% vendido" na sub-linha do FTE: mesma escala do resto do subtítulo, um pouco mais
   presente — é número, não rótulo. */
.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-node__vendido {
    font-weight: 600;
    color: var(--kendo-color-on-app-surface, #e6e8ec);
}

/* Virou <button> (abre o resumo em painel, não navega) — zera a aparência de botão. */
.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-vaga-link {
    padding: 0;
    border: none;
    background: transparent;
    font: inherit;
    color: var(--kendo-color-primary, #5b9cff);
    text-decoration: none;
    font-weight: 600;
    cursor: pointer;
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-vaga-link:hover {
    text-decoration: underline;
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-node__extra {
    margin-left: .3rem;
    font-size: .72rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-badge--saldo {
    display: inline-block;
    margin-left: .4rem;
    padding: .1rem .5rem;
    border-radius: 20px;
    font-size: .68rem;
    font-weight: 600;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .7));
    background: rgba(255, 255, 255, .08);
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-badge {
    display: inline-block;
    padding: .1rem .5rem;
    border-radius: 20px;
    font-size: .68rem;
    font-weight: 600;
    white-space: nowrap;
    margin-right: .3rem;
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-badge--livre {
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-badge--uso {
    color: var(--kendo-color-info, #5b9cff);
    background: rgba(91, 156, 255, .12);
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-badge--reserva {
    color: var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .12);
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-node__disp {
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-badge--inativo {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
    background: rgba(250, 250, 250, .08);
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-badge--split {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
    background: rgba(255, 255, 255, .06);
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-badge--saving {
    color: var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .12);
}

.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-badge--bonificado {
    color: var(--kendo-color-info, #5b9cff);
    background: rgba(91, 156, 255, .12);
}

.gv-pricing-detalhe__hint[b-89zrtrkb9n] {
    margin-top: .75rem;
    font-size: .78rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

/* Ações da linha em ícones lado a lado (V0.963 spec 0500): a coluna larga com dois
   botões rotulados espremia a coluna FTE, que é a expansível da árvore. */
.gv-pricing-detalhe[b-89zrtrkb9n]  .gv-fte-acoes__grupo {
    display: flex;
    gap: .125rem;
    justify-content: flex-end;
    align-items: center;
}

/* Valor TEXTUAL num kpi-card (nome do cliente). O .kpi-card__number global é dimensionado
   para número curto (1.875rem) e um nome longo estouraria a linha do card. Seletor plain,
   sem ::deep: o elemento é do próprio componente — ::deep compila para descendente SEM
   scope e não casaria. */
.gv-pricing-detalhe .kpi-card__number--texto[b-89zrtrkb9n] {
    font-size: 1.125rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

/* ── Cards e filtros da tela (V0.974 spec 0568) ───────────────────────────── */

/* Os cards vinham altos e com muito vazio: a altura era herdada do card do cliente
   (texto longo) e os números pareciam pequenos dentro dela. Altura automática + padding
   contido deixa os quatro proporcionais. */
.gv-pricing-kpis.kpi-row[b-89zrtrkb9n] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: start;
}

.gv-pricing-kpis .kpi-card[b-89zrtrkb9n] {
    min-height: 0;
    padding: .75rem 1rem;
}

.gv-pricing-kpis .kpi-card__number[b-89zrtrkb9n] {
    font-size: 1.5rem;
}

.gv-pricing-kpis .kpi-card__number--texto[b-89zrtrkb9n] {
    font-size: 1.25rem;
}

@media (max-width: 1100px) {
    .gv-pricing-kpis.kpi-row[b-89zrtrkb9n] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.gv-pricing-filtros[b-89zrtrkb9n] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .75rem;
    margin-bottom: 1rem;
}

.gv-pricing-filtros label[b-89zrtrkb9n] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.gv-pricing-filtros label > span[b-89zrtrkb9n] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--kendo-color-subtle);
}
/* /Features/Rh/Gv/Pricing/GvPricingPainelPage.razor.rz.scp.css */
/* Painel de Pricing — apenas layout/posicionamento; visual vem do tema Telerik
   e das classes globais (section-card, kpi-card, page-toolbar). */

.gv-pricing-page .kpi-row[b-wbbsonpq05] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 1rem;
}

/* Grade de cards por cliente — responsiva, mesma densidade do protótipo. */
.gv-pricing-cards[b-wbbsonpq05] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.gv-pricing-card[b-wbbsonpq05] {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    align-items: flex-start;
}

.gv-pricing-card__head[b-wbbsonpq05] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    width: 100%;
}

.gv-pricing-card__title[b-wbbsonpq05] {
    display: flex;
    flex-direction: column;
    flex: 1;
    line-height: 1.3;
}

.gv-pricing-card__name[b-wbbsonpq05] {
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-pricing-card__sub[b-wbbsonpq05] {
    font-size: .72rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

.gv-pricing-card__stats[b-wbbsonpq05] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
    width: 100%;
}

.gv-pricing-card__stats > div[b-wbbsonpq05] {
    display: flex;
    flex-direction: column;
}

.gv-pricing-card__stat-lbl[b-wbbsonpq05] {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

.gv-pricing-card__stat-val[b-wbbsonpq05] {
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-pricing-card__total[b-wbbsonpq05] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--kendo-color-on-base, #fafafa);
}

/* Badge bonif. — pill com dot (mesma linguagem do Painel de Vagas). */
.gv-pricing-card .gv-badge[b-wbbsonpq05] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .12rem .5rem;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
}

.gv-pricing-card .gv-badge-dot[b-wbbsonpq05] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    background: currentColor;
}

.gv-pricing-card .gv-badge--info[b-wbbsonpq05] {
    color: var(--kendo-color-info, #5b9cff);
    background: rgba(91, 156, 255, .12);
}
/* /Features/Rh/Gv/Saldo/GvSaldoListPage.razor.rz.scp.css */
/* ── Célula código + secundário (mesmo padrão do Pricing do RH, spec 0293) ──
   Reusa a linguagem visual gv-fte-node do GvPricingDetalhePage para consistência. */
.gv-saldo-list[b-jdaje2fbhy]  .gv-fte-node {
    display: inline-flex;
    flex-direction: column;
    line-height: 1.25;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-fte-node__main {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-fte-node__sub {
    font-size: .72rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-fte-vaga-link {
    color: var(--kendo-color-primary, #5b9cff);
    text-decoration: none;
    font-weight: 600;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-fte-vaga-link:hover {
    text-decoration: underline;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-fte-badge {
    display: inline-block;
    padding: .1rem .5rem;
    border-radius: 20px;
    font-size: .68rem;
    font-weight: 600;
    white-space: nowrap;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-fte-badge--saldo {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .7));
    background: rgba(255, 255, 255, .08);
}

/* ── Badges (origem / estado / pendente) ──────────────────────────────────
   Mesma linguagem visual da Lista de Vagas/Dashboard, em tokens Kendo dark-first.
   Renderizadas dentro do TelerikGrid → alcançadas via ::deep. */
.gv-saldo-list[b-jdaje2fbhy]  .gv-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .12rem .5rem;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
    vertical-align: middle;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    background: currentColor;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-badge--success {
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-badge--warning {
    color: var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .12);
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-badge--danger {
    color: var(--kendo-color-error, #ff6b6b);
    background: rgba(255, 107, 107, .12);
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-badge--neutral {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .65));
    background: rgba(255, 255, 255, .06);
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-badge--dark {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .45));
    background: rgba(0, 0, 0, .25);
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .08));
}

/* ── Valor (R$): negativo em destaque; oculto quando sem permissão ────────── */
.gv-saldo-list[b-jdaje2fbhy]  .gv-saldo-vl {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-saldo-vl--neg {
    color: var(--kendo-color-error, #ff6b6b);
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-saldo-vl--hidden {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .4));
    letter-spacing: .15em;
}

/* ── Célula Origem: "Saldo #N · Origem X" + "nasceu em VG-NNN" (vaga de origem) ── */
.gv-saldo-list[b-jdaje2fbhy]  .gv-saldo-origem {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-saldo-origem__main {
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-saldo-origem__sub {
    font-size: 11.5px;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
    text-decoration: none;
    width: fit-content;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-saldo-origem__sub:hover {
    color: var(--kendo-color-info, #5b9cff);
    text-decoration: underline;
}

/* ── Célula de classificação: pendente ganha respiro entre badge e editor ──── */
.gv-saldo-list[b-jdaje2fbhy]  .gv-saldo-classif {
    display: flex;
    align-items: center;
    gap: .4rem;
}

/* ── KPI cards: clicáveis (alternam aba / sinal), com total R$ por bucket ───── */
/* Os 5 cards numa única linha (o .kpi-row global é grid de 3 colunas). */
.gv-saldo-kpis[b-jdaje2fbhy] {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.gv-saldo-kpi[b-jdaje2fbhy] {
    cursor: pointer;
    transition: border-color .12s ease, background .12s ease;
}

.gv-saldo-kpi:hover[b-jdaje2fbhy] {
    border-color: var(--kendo-color-primary, #5b9cff);
}

.gv-saldo-kpi--active[b-jdaje2fbhy] {
    border-color: var(--kendo-color-primary, #5b9cff);
    background: rgba(91, 156, 255, .08);
}

.gv-saldo-kpi--neg.gv-saldo-kpi--active[b-jdaje2fbhy] {
    border-color: var(--kendo-color-error, #ff6b6b);
    background: rgba(255, 107, 107, .08);
}

/* Valor R$ em destaque no centro do card; o número negativo vai em vermelho. */
.gv-saldo-kpi .kpi-card__number[b-jdaje2fbhy] {
    font-variant-numeric: tabular-nums;
}

.gv-saldo-kpi__number--neg[b-jdaje2fbhy] {
    color: var(--kendo-color-error, #ff6b6b);
}

/* Linha de apoio (contagem de saldos / aviso do negativo). */
.gv-saldo-kpi__sub[b-jdaje2fbhy] {
    font-size: .8rem;
    font-weight: 500;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

/* ── TabStrip usada como seletor: o painel de conteúdo fica vazio (grid mora
   abaixo); escondê-lo deixa só a barra de abas. ::deep ancorado em elemento
   próprio (.gv-saldo-tabs). */
.gv-saldo-tabs[b-jdaje2fbhy] {
    margin-bottom: .75rem;
}

.gv-saldo-tabs[b-jdaje2fbhy]  .k-tabstrip-content,
.gv-saldo-tabs[b-jdaje2fbhy]  .k-content {
    display: none;
}

/* ── Estado consumido: badge + link da vaga de uso (rastreio A→B) ──────────── */
.gv-saldo-list[b-jdaje2fbhy]  .gv-saldo-estado {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    align-items: flex-start;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-saldo-uso-link {
    font-size: 11.5px;
    color: var(--kendo-color-info, #5b9cff);
    text-decoration: none;
}

.gv-saldo-list[b-jdaje2fbhy]  .gv-saldo-uso-link:hover {
    text-decoration: underline;
}

/* Referência de vaga: abre o resumo em painel, não navega. Cor do texto; sublinhado e
   cursor só no hover, como no grid da alocação. */
.gv-saldo-link[b-jdaje2fbhy] {
    padding: 0;
    border: none;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: default;
}

.gv-saldo-link:hover[b-jdaje2fbhy] {
    text-decoration: underline;
    cursor: pointer;
}
/* /Features/Rh/Gv/Share/GvShareColaboradorPage.razor.rz.scp.css */
.gv-colab-share-lead[b-7h3d8bo5rf] {
    margin: 0 0 1rem;
    font-size: .82rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

.gv-colab-share-page .section-card__header[b-7h3d8bo5rf] {
    display: flex;
    align-items: baseline;
    gap: .75rem;
}

.gv-colab-vaga-link[b-7h3d8bo5rf] {
    margin-left: auto;
    font-size: .76rem;
    color: var(--kendo-color-primary, #ff5a5f);
    text-decoration: none;
}

.gv-colab-vaga-link:hover[b-7h3d8bo5rf] {
    text-decoration: underline;
}

.gv-colab-list[b-7h3d8bo5rf] {
    display: flex;
    flex-direction: column;
}

.gv-colab-row[b-7h3d8bo5rf] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .45rem 0;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .06));
}

.gv-colab-row:last-child[b-7h3d8bo5rf] {
    border-bottom: none;
}

.gv-colab-cli[b-7h3d8bo5rf] {
    color: var(--kendo-color-on-base, #fafafa);
    font-size: .88rem;
}

.gv-colab-pc[b-7h3d8bo5rf] {
    color: var(--kendo-color-primary, #ff5a5f);
    font-weight: 700;
}
/* /Features/Rh/Gv/Vagas/GvEditarInfoVagaPanel.razor.rz.scp.css */
/* Etapa de confirmação da troca de tipo com alocação gravada (V0.977 spec 0591).
   Cores por token do tema — token inventado faria o fallback vencer sempre. */
.gv-tipo-troca[b-8cof04j0ei] {
    border: 1px solid var(--kendo-color-border);
    border-left: 3px solid var(--kendo-color-warning);
    background: var(--kendo-color-base-subtle);
    padding: .75rem 1rem;
}

.gv-tipo-troca__titulo[b-8cof04j0ei] {
    margin: 0 0 .25rem;
    font-size: .95rem;
}

.gv-tipo-troca__texto[b-8cof04j0ei],
.gv-tipo-troca__lista-titulo[b-8cof04j0ei] {
    margin: 0 0 .5rem;
    font-size: .8125rem;
    color: var(--kendo-color-subtle);
}

.gv-tipo-troca__lista-titulo[b-8cof04j0ei] {
    margin-top: .5rem;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface);
}

.gv-tipo-troca__lista[b-8cof04j0ei] {
    margin: 0 0 .75rem;
    padding-left: 1.25rem;
    font-size: .8125rem;
    max-height: 10rem;
    overflow-y: auto;
}

/* Cada opção mostra a CONSEQUÊNCIA junto do rótulo: escolher entre "manter" e "limpar"
   sem ler o que cada uma faz é escolher no escuro. */
.gv-tipo-troca__opcao[b-8cof04j0ei] {
    display: flex;
    gap: .5rem;
    align-items: flex-start;
    padding: .375rem 0;
    cursor: pointer;
}

.gv-tipo-troca__opcao small[b-8cof04j0ei] {
    display: block;
    color: var(--kendo-color-subtle);
    font-size: .75rem;
}
/* /Features/Rh/Gv/Vagas/GvVagaCriarPage.razor.rz.scp.css */
/* Layout (posicionamento) apenas — sem estilo visual; tema é o Telerik. */

/* Duas colunas: formulário principal + lateral (Resumo / Próximo passo). */
.vaga-criar-grid[b-3mz8q9hig0] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 1.25rem;
    align-items: start;
}

@media (max-width: 1024px) {
    .vaga-criar-grid[b-3mz8q9hig0] {
        grid-template-columns: 1fr;
    }
}

.vaga-criar-aside[b-3mz8q9hig0] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* Resumo: rótulo à esquerda, valor à direita. */
.gv-sum[b-3mz8q9hig0] {
    display: flex;
    flex-direction: column;
}

.gv-sum-row[b-3mz8q9hig0] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .4rem 0;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .06));
    font-size: .82rem;
}

.gv-sum-row:last-child[b-3mz8q9hig0] {
    border-bottom: none;
}

.gv-sum-row strong[b-3mz8q9hig0] {
    text-align: right;
}

/* Linha do switch "Forçar Cliente": switch + texto lado a lado. */
.gv-forcar-row[b-3mz8q9hig0] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: .5rem;
}

/* O switch não encolhe nem transborda sobre o texto ao lado. */
.gv-forcar-switch[b-3mz8q9hig0] {
    flex-shrink: 0;
}

/* Toggle sem rótulo: oculta os labels on/off do Telerik (que sem tradução
   renderizam as chaves "Switch_OnLabel"/"Switch_OffLabel"). O ::deep ancora no
   .gv-forcar-row (elemento do próprio componente) para alcançar os spans do switch. */
.gv-forcar-row[b-3mz8q9hig0]  .k-switch-label-on,
.gv-forcar-row[b-3mz8q9hig0]  .k-switch-label-off {
    display: none;
}
/* /Features/Rh/Gv/Vagas/GvVagaDetalhePage.razor.rz.scp.css */
/* Layout/posicionamento do detalhe. Badges/resumo reusam o mesmo componente
   visual já existente no app (gv-badge / gv-sum); o tema é o Telerik. */

.vaga-det-grid[b-zouvm01wi4] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 1.25rem;
    align-items: start;
}

@media (max-width: 1024px) {
    .vaga-det-grid[b-zouvm01wi4] {
        grid-template-columns: 1fr;
    }
}

.vaga-det-aside[b-zouvm01wi4] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.vaga-title-row[b-zouvm01wi4] {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
}

.vaga-title-row h1[b-zouvm01wi4] {
    margin: 0;
}

.gv-det-kpis[b-zouvm01wi4] {
    margin-bottom: 1.25rem;
}

.gv-kpi-label-row[b-zouvm01wi4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.gv-kpi-sub[b-zouvm01wi4] {
    margin-top: auto;
    font-size: .7rem;
}

/* Card combinado VL1 + Base a cobrir: VL1 é o valor principal; a base entra
   como linha secundária discreta no rodapé do card. */
.gv-vl1base__base[b-zouvm01wi4] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .5rem;
    padding-top: .5rem;
    border-top: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .08));
    font-size: .8rem;
    color: var(--flowt-text-muted, #9aa0a6);
}

.gv-vl1base__base strong[b-zouvm01wi4] {
    color: var(--kendo-color-on-app-surface, inherit);
}

.gv-vl1base__inv[b-zouvm01wi4] {
    margin-left: auto;
    font-size: .72rem;
}

/* Linhas de composição (read-only). */
.gv-comp-line[b-zouvm01wi4] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem 0;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .08));
}

.gv-comp-line__info[b-zouvm01wi4] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.gv-comp-line__head[b-zouvm01wi4] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .5rem;
}

.gv-comp-line__code[b-zouvm01wi4] {
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    letter-spacing: .02em;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, .72));
}

.gv-comp-line__name[b-zouvm01wi4] {
    font-weight: 600;
}

.gv-comp-line__tag[b-zouvm01wi4] {
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: .1rem .42rem;
    border-radius: 4px;
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, .08));
    color: var(--kendo-color-subtle, rgba(255, 255, 255, .72));
}

.gv-comp-line__meta[b-zouvm01wi4] {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .8rem;
    font-size: .8rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, .58));
}

.gv-comp-line__meta > span[b-zouvm01wi4] {
    position: relative;
}

.gv-comp-line__meta > span + span[b-zouvm01wi4]::before {
    content: "·";
    position: absolute;
    left: -.48rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, .35));
}

.gv-comp-line__cross[b-zouvm01wi4] {
    color: var(--kendo-color-warning, #e0a800);
    font-weight: 600;
}

.gv-comp-line__type[b-zouvm01wi4] {
    flex: 0 0 auto;
}

.gv-comp-line__vl[b-zouvm01wi4] {
    font-weight: 600;
}

.gv-comp-total[b-zouvm01wi4] {
    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    gap: .5rem;
    padding-top: .6rem;
}

.gv-comp-total__saldo[b-zouvm01wi4] {
    margin-left: 1rem;
    color: var(--flowt-text-muted, #9aa0a6);
    font-size: .85rem;
}

/* Aviso de composição residual em vaga que não compõe (Overhead/Pool). */
.gv-comp-pendencia[b-zouvm01wi4] {
    margin: 0 0 .8rem;
    padding: .6rem .8rem;
    border-radius: 4px;
    border-left: 3px solid var(--kendo-color-warning, #f0ad4e);
    background: var(--kendo-color-base-subtle);
    color: var(--kendo-color-on-app-surface);
    font-size: .9rem;
}

/* Colaborador alocado. */
.gv-colab[b-zouvm01wi4] {
    display: flex;
    align-items: center;
    gap: .9rem;
}

.gv-colab__avatar[b-zouvm01wi4] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: .85rem;
    font-weight: 600;
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, .08));
}

.gv-colab__info[b-zouvm01wi4] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

/* Histórico (colapsável). */
.gv-hist-header[b-zouvm01wi4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
}

.gv-hist-toggle[b-zouvm01wi4] {
    font-size: .75rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, .6));
}

/* Timeline do histórico. */
.gv-hist-timeline[b-zouvm01wi4] {
    list-style: none;
    margin: .9rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.gv-hist-item[b-zouvm01wi4] {
    display: flex;
    gap: .7rem;
    padding: .55rem 0;
    position: relative;
}

.gv-hist-item:not(:last-child)[b-zouvm01wi4]::before {
    /* linha vertical conectando os ícones */
    content: "";
    position: absolute;
    left: 13px;
    top: 30px;
    bottom: -8px;
    width: 2px;
    background: var(--kendo-color-border, rgba(255, 255, 255, .1));
}

.gv-hist-item__icon[b-zouvm01wi4] {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 16px;
    background: var(--kendo-color-base-subtle, rgba(255, 255, 255, .08));
    color: var(--kendo-color-primary, #4ea1ff);
    z-index: 1;
}

.gv-hist-item__body[b-zouvm01wi4] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
    padding-top: .15rem;
}

.gv-hist-item__head[b-zouvm01wi4] {
    display: flex;
    align-items: baseline;
    gap: .6rem;
    flex-wrap: wrap;
}

.gv-hist-item__acao[b-zouvm01wi4] {
    font-weight: 600;
}

.gv-hist-item__at[b-zouvm01wi4] {
    font-size: .72rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, .5));
}

.gv-hist-item__frase[b-zouvm01wi4] {
    font-size: .85rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, .78));
}

.gv-hist-item__ator[b-zouvm01wi4] {
    font-size: .72rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, .5));
}

.gv-obs[b-zouvm01wi4] {
    margin: .75rem 0 0;
    padding-top: .6rem;
    border-top: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .08));
    font-style: italic;
}

.gv-share-hint[b-zouvm01wi4] {
    margin: -.25rem 0 .6rem;
    font-size: .72rem;
}

.gv-origem-banner[b-zouvm01wi4] {
    margin-bottom: 1rem;
}

.gv-origem-link[b-zouvm01wi4] {
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.gv-origem-link:hover[b-zouvm01wi4] {
    text-decoration: underline;
}

.gv-encerrada-card[b-zouvm01wi4] {
    margin-bottom: 1rem;
}

/* Resumo / Informações — rótulo à esquerda, valor à direita. */
.gv-sum[b-zouvm01wi4] {
    display: flex;
    flex-direction: column;
}

.gv-sum-row[b-zouvm01wi4] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .4rem 0;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .06));
    font-size: .82rem;
}

.gv-sum-row:last-child[b-zouvm01wi4] {
    border-bottom: none;
}

/* Linha secundária — informação derivada (ex.: Área derivada do Centro de Custo). */
.gv-sum-row--sub[b-zouvm01wi4] {
    padding-top: .15rem;
    border-bottom: none;
    font-size: .76rem;
    opacity: .7;
}

.gv-sum-row strong[b-zouvm01wi4] {
    text-align: right;
}

/* Badge — mesmo componente visual já usado nas demais telas da GV. */
.gv-badge[b-zouvm01wi4] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .15rem .55rem;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
    vertical-align: middle;
}

.gv-badge-dot[b-zouvm01wi4] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    background: currentColor;
}

.gv-badge--success[b-zouvm01wi4] {
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
}

.gv-badge--info[b-zouvm01wi4] {
    color: var(--kendo-color-info, #5b9cff);
    background: rgba(91, 156, 255, .12);
}

.gv-badge--warning[b-zouvm01wi4] {
    color: var(--kendo-color-warning, #f5b945);
    background: rgba(245, 185, 69, .12);
}

.gv-badge--neutral[b-zouvm01wi4] {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .65));
    background: rgba(255, 255, 255, .06);
}

.gv-badge--dark[b-zouvm01wi4] {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .45));
    background: rgba(0, 0, 0, .25);
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .08));
}

/* São 4 cards (VL1, VL2, VL3 e o gap) — a grade tinha 5 colunas e sobrava uma vazia à
   direita, o que fazia a faixa não ocupar a largura toda. Frações iguais mantêm os
   cards proporcionais entre si em qualquer resolução. */
.gv-det-kpis.kpi-row[b-zouvm01wi4] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 1rem;
}

@media (max-width: 1280px) {
    .gv-det-kpis.kpi-row[b-zouvm01wi4] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .gv-det-kpis.kpi-row[b-zouvm01wi4] {
        grid-template-columns: 1fr;
    }
}
/* ── Edição do VL1 dentro do card (spec 0568) ─────────────────────────────── */
.gv-vl1-edit[b-zouvm01wi4] {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-top: .25rem;
}

/* ── Quadro lateral: lápis ao lado do toggle, e o bloco do colaborador ────── */
.gv-info-header__acoes[b-zouvm01wi4] {
    display: flex;
    align-items: center;
    gap: .25rem;
}

.gv-info-sep[b-zouvm01wi4] {
    height: 1px;
    margin: 1rem 0 .75rem;
    background: var(--kendo-color-border);
}

.gv-info-sub[b-zouvm01wi4] {
    margin: 0 0 .5rem;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--kendo-color-subtle);
}

/* No quadro lateral o colaborador é uma linha compacta, não um card próprio. */
.gv-colab--aside[b-zouvm01wi4] {
    padding: 0;
    border: none;
    background: transparent;
}

/* Chips embaixo do título (spec 0568) — o cabeçalho perdeu a linha de metadados. */
.page-header__title > h1[b-zouvm01wi4] {
    margin: 0 0 .35rem;
}

/* Colaborador no quadro lateral: avatar + nome numa linha; números na de baixo.
   Centro a centro — alinhar pela base deixava o nome caindo no rodapé do avatar. */
.gv-colab--aside[b-zouvm01wi4] {
    align-items: center;
    gap: .6rem;
}

.gv-colab--aside .gv-colab__avatar[b-zouvm01wi4] {
    width: 32px;
    height: 32px;
    font-size: .72rem;
}

.gv-colab--aside .gv-colab__name[b-zouvm01wi4] {
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.2;
}

.gv-colab__dados[b-zouvm01wi4] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    margin-top: .4rem;
    font-size: .8125rem;
    color: var(--kendo-color-subtle);
}

.gv-colab__dados strong[b-zouvm01wi4] {
    color: var(--kendo-color-on-app-surface);
}

/* O lápis do VL1 não pode empurrar o número: o card ficava com o valor mais baixo que os
   vizinhos. Fora do fluxo, o rótulo mantém a altura de uma linha e os quatro alinham. */
.kpi-card--vl1base .gv-kpi-label-row[b-zouvm01wi4] {
    position: relative;
    display: block;
    line-height: 1.2;
}

.kpi-card--vl1base .gv-kpi-label-row .k-button[b-zouvm01wi4] {
    position: absolute;
    top: -.35rem;
    right: 0;
}

/* Nome do colaborador + ação de remover, no card do VL3. */
.gv-kpi-sub--acao[b-zouvm01wi4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}
/* /Features/Rh/Gv/Vagas/GvVagaListPage.razor.rz.scp.css */
/* ── Célula Cargo de duas linhas (densidade: agrupa Cargo · Nível) ─────────── */
.gv-vaga-list[b-udr5m401uu]  .gv-cargo-cell {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.gv-vaga-list[b-udr5m401uu]  .gv-cargo-cell__name {
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-vaga-list[b-udr5m401uu]  .gv-cargo-cell__sub {
    font-size: .72rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

/* ── Badges (status / forçado / sem colab.) ────────────────────────────────
   Pill com dot, mesma linguagem visual do Dashboard, em tokens Kendo dark-first.
   Renderizadas dentro do TelerikGrid → alcançadas via ::deep. Resolve também o
   gap dos badges `forçado`/`sem colab.` que antes não tinham CSS. */
.gv-vaga-list[b-udr5m401uu]  .gv-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .12rem .5rem;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
    vertical-align: middle;
}

/* Segundo badge na mesma célula (ex.: status + sem colab.) ganha respiro. */
.gv-vaga-list[b-udr5m401uu]  .gv-badge + .gv-badge {
    margin-left: .35rem;
}

.gv-vaga-list[b-udr5m401uu]  .gv-badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    background: currentColor;
}

.gv-vaga-list[b-udr5m401uu]  .gv-badge--success {
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
}

.gv-vaga-list[b-udr5m401uu]  .gv-badge--info {
    color: var(--kendo-color-info, #5b9cff);
    background: rgba(91, 156, 255, .12);
}

.gv-vaga-list[b-udr5m401uu]  .gv-badge--warning {
    color: var(--kendo-color-warning, #f2c94c);
    background: rgba(242, 201, 76, .12);
}

.gv-vaga-list[b-udr5m401uu]  .gv-badge--neutral {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .65));
    background: rgba(255, 255, 255, .06);
}

.gv-vaga-list[b-udr5m401uu]  .gv-badge--dark {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .45));
    background: rgba(0, 0, 0, .25);
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, .08));
}

.gv-stats-row.kpi-row[b-udr5m401uu] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.gv-stat-clickable[b-udr5m401uu] {
    cursor: pointer;
}

/* Cobertura em déficit — destaque discreto na coluna (o badge de Status já sinaliza). */
.gv-cobertura--deficit[b-udr5m401uu] {
    color: var(--kendo-color-warning, #f0ad4e);
    font-weight: 600;
}
/* /Features/Rh/Gv/Vagas/GvVagaResumoPanel.razor.rz.scp.css */
/* Resumo da vaga em Action Panel — só leitura. Estilo próprio: o `gv-sum` da tela da
   vaga é CSS scoped e não alcança o conteúdo portalizado do painel. */
.gv-vaga-resumo__kpis[b-2nto84njcu] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-bottom: 1rem;
}

.gv-vaga-resumo__kpi[b-2nto84njcu] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.gv-vaga-resumo__lbl[b-2nto84njcu] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--kendo-color-subtle);
}

.gv-vaga-resumo__linhas[b-2nto84njcu] {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.25rem;
}

.gv-vaga-resumo__linha[b-2nto84njcu] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .4rem 0;
    border-bottom: 1px solid var(--kendo-color-border);
}

.gv-vaga-resumo__linha:last-child[b-2nto84njcu] {
    border-bottom: none;
}

.gv-vaga-resumo__linha .gv-vaga-resumo__lbl[b-2nto84njcu] {
    text-transform: none;
    letter-spacing: normal;
    font-size: .8125rem;
}

.gv-vaga-resumo__vl[b-2nto84njcu] {
    font-weight: 600;
    text-align: right;
}

.gv-vaga-resumo__titulo[b-2nto84njcu] {
    margin: 0 0 .4rem;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--kendo-color-subtle);
}

.gv-vaga-resumo__grid[b-2nto84njcu] {
    width: 100%;
    border-collapse: collapse;
    font-size: .8125rem;
}

.gv-vaga-resumo__grid th[b-2nto84njcu],
.gv-vaga-resumo__grid td[b-2nto84njcu] {
    padding: .3rem .5rem;
    border-bottom: 1px solid var(--kendo-color-border);
    text-align: left;
}

.gv-vaga-resumo__grid thead th[b-2nto84njcu] {
    color: var(--kendo-color-subtle);
    font-weight: 600;
}

.gv-vaga-resumo__num[b-2nto84njcu] {
    text-align: right;
    white-space: nowrap;
}

.gv-vaga-resumo__vazio[b-2nto84njcu] {
    text-align: center;
    color: var(--kendo-color-subtle);
}

.gv-vaga-resumo__acoes[b-2nto84njcu] {
    margin-top: 1.25rem;
}
/* /Features/Rh/Rentabilidade/Alocacao/RtbAlocDetPage.razor.rz.scp.css */
/* Detalhe do colaborador — tokens do tema (claro/escuro), nunca cor literal. */

.rtb-hint[b-tpz70uu1a6] {
    color: var(--kendo-color-subtle);
    font-size: 0.8rem;
}

.rtb-vaga[b-tpz70uu1a6] {
    font-variant-numeric: tabular-nums;
}

.rtb-nota[b-tpz70uu1a6] {
    color: var(--kendo-color-subtle);
    font-style: italic;
}

.rtb-estado[b-tpz70uu1a6] {
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--kendo-color-border);
    font-size: 0.8rem;
}

.rtb-estado--ok[b-tpz70uu1a6] {
    background: var(--kendo-color-base-subtle);
}

/* Vendido e não aprovado: é o que explica ausência no bloco Atribuído. */
.rtb-estado--pendente[b-tpz70uu1a6] {
    color: var(--kendo-color-subtle);
}

/* O 100% forçado contradiz visivelmente a composição — o aviso é obrigatório. */
.rtb-aviso[b-tpz70uu1a6] {
    margin-bottom: 0.75rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--kendo-color-border);
    border-radius: 4px;
    background: var(--kendo-color-base-subtle);
    color: var(--kendo-color-on-app-surface);
}

.rtb-pagadores[b-tpz70uu1a6] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
}

.rtb-pagador[b-tpz70uu1a6] {
    display: inline-flex;
    gap: 0.35rem;
    align-items: baseline;
    padding: 0.15rem 0.6rem;
    border: 1px solid var(--kendo-color-border);
    border-radius: 999px;
    background: var(--kendo-color-base-subtle);
}

.rtb-pagador__pc[b-tpz70uu1a6] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}
/* /Features/Rh/Rentabilidade/Alocacao/RtbAlocListPage.razor.rz.scp.css */
/* Consulta de Alocação — cores de token do tema (claro/escuro trocam os --kendo-color-*);
   nada de cor literal, que travaria a tela num dos dois temas. */

.rtb-vaga[b-c2g03phdhc] {
    font-variant-numeric: tabular-nums;
    color: var(--kendo-color-on-app-surface);
}

.rtb-sem-alocacao[b-c2g03phdhc],
.rtb-sem-pagador[b-c2g03phdhc] {
    color: var(--kendo-color-subtle);
    font-style: italic;
}

.rtb-pagadores[b-c2g03phdhc] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.5rem;
    align-items: center;
}

.rtb-pagador[b-c2g03phdhc] {
    display: inline-flex;
    gap: 0.35rem;
    align-items: baseline;
    padding: 0.1rem 0.45rem;
    border: 1px solid var(--kendo-color-border);
    border-radius: 999px;
    background: var(--kendo-color-base-subtle);
}

.rtb-pagador__pc[b-c2g03phdhc] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

/* Marca o denominador: os percentuais não cobrem o custo inteiro da pessoa. */
.rtb-nota[b-c2g03phdhc] {
    color: var(--kendo-color-subtle);
    font-size: 0.75rem;
    text-transform: lowercase;
}

/* Linha inteira abre o detalhe do colaborador. */
.rtb-linha-clicavel[b-c2g03phdhc] {
    cursor: pointer;
}

/* Cards da consulta: totais do conjunto, não da página.
   O espaçamento maior entre eles é funcional, não estético: quatro cartões colados formam
   uma faixa que se lê como decomposição de um total — e estes NÃO somam (Overhead conta
   gente, os outros contam capacidade declarada). A nota logo abaixo diz isso por escrito. */
.rtb-aloc-kpis.kpi-row[b-c2g03phdhc] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: start;
    gap: 1.25rem;
}

.rtb-aloc-kpis .kpi-card__unit[b-c2g03phdhc] {
    display: block;
    margin-top: .125rem;
    font-size: .75rem;
    color: var(--kendo-color-subtle);
}

.rtb-aloc-kpis__nota[b-c2g03phdhc] {
    margin: -.25rem 0 1rem;
    font-size: .8125rem;
    color: var(--kendo-color-subtle);
}

.rtb-aloc-kpis .kpi-card[b-c2g03phdhc] {
    min-height: 0;
    padding: .75rem 1rem;
}

.rtb-aloc-kpis .kpi-card__number[b-c2g03phdhc] {
    font-size: 1.5rem;
}

/* Card que filtra: <button> com a cara do card (o <div> não é alcançável por teclado). */
.rtb-kpi-acao[b-c2g03phdhc] {
    width: 100%;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.rtb-kpi-acao:hover[b-c2g03phdhc] {
    border-color: var(--kendo-color-primary);
}

/* Filtro aceso: é a única pista de que a lista está recortada. */
.rtb-kpi-acao--ativo[b-c2g03phdhc] {
    border-color: var(--kendo-color-primary);
    box-shadow: inset 0 0 0 1px var(--kendo-color-primary);
}

/* Código da vaga clicável (abre o resumo em painel) — cor do texto, sublinhado no hover. */
.rtb-vaga-link[b-c2g03phdhc] {
    padding: 0;
    border: none;
    background: transparent;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.rtb-vaga-link:hover[b-c2g03phdhc] {
    text-decoration: underline;
}
/* /Features/Rh/Rentabilidade/Fechamento/RtbFechamentoHistoricoPage.razor.rz.scp.css */
/* ── Header empilhado + ação à direita (mesmo padrão da tela de fechamento) ── */
.gv-fech-header[b-f0wd6bgwza] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.gv-fech-header .page-header-titles[b-f0wd6bgwza] {
    display: flex;
    flex-direction: column;
}

/* ── Bloco Evolução ───────────────────────────────────────────────────────── */
.gv-fech-evolucao[b-f0wd6bgwza] {
    margin-bottom: 1rem;
}

.gv-fech-evolucao__head[b-f0wd6bgwza] {
    margin-bottom: .75rem;
}

.gv-fech-evolucao__sub[b-f0wd6bgwza] {
    font-size: .8rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
    margin-top: .15rem;
}

/* ── Célula colaborador (drill-down): nome + filial abaixo (grid → ::deep) ─── */
.gv-fech-grid[b-f0wd6bgwza]  .gv-fech-colab {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.gv-fech-grid[b-f0wd6bgwza]  .gv-fech-colab__name {
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-fech-grid[b-f0wd6bgwza]  .gv-fech-colab__sub {
    font-size: 11.5px;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
}

.gv-fech-grid[b-f0wd6bgwza]  .gv-fech-meta {
    font-size: .82rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .7));
}

/* ── Célula Share / Fontes (drill-down) ───────────────────────────────────── */
.gv-fech-grid[b-f0wd6bgwza]  .gv-fech-sharefontes {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    font-size: .82rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .75));
}

.gv-fech-grid[b-f0wd6bgwza]  .gv-fech-sharefontes__sub {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
}

.gv-fech-grid[b-f0wd6bgwza]  .gv-fech-detail-actions {
    display: flex;
    justify-content: flex-end;
    padding: .5rem .5rem 0;
}

.gv-fech-grid[b-f0wd6bgwza]  .gv-fech-detail-empty {
    padding: .75rem;
    font-size: .85rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
}
/* /Features/Rh/Rentabilidade/Fechamento/RtbFechamentoMensalPage.razor.rz.scp.css */
/* ── Header com título e descrição empilhados + ação à direita ──────────────
   O .page-header global é flex em linha; aqui o título empilha com o subtítulo
   e a ação fica à direita. */
.gv-fech-header[b-6vk7xr08rp] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.gv-fech-header .page-header-titles[b-6vk7xr08rp] {
    display: flex;
    flex-direction: column;
}

/* ── Seletor de competência (linha de ação) ───────────────────────────────── */
.gv-fech-selector[b-6vk7xr08rp] {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.gv-fech-selector__label[b-6vk7xr08rp] {
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

/* ── KPI rows: 7 cards na prévia, 3 no comprovante (o .kpi-row global é 3 col) ── */
.gv-fech-kpis[b-6vk7xr08rp] {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.gv-fech-kpis-3[b-6vk7xr08rp] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 1rem 0;
}

.gv-fech-kpis .kpi-card__number[b-6vk7xr08rp],
.gv-fech-kpis-3 .kpi-card__number[b-6vk7xr08rp] {
    font-variant-numeric: tabular-nums;
}

@media (max-width: 1100px) {
    .gv-fech-kpis[b-6vk7xr08rp] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* ── Aviso informativo (snapshot não congela) ─────────────────────────────── */
.gv-fech-note[b-6vk7xr08rp] {
    padding: .6rem .85rem;
    margin-bottom: 1rem;
    border-radius: 6px;
    font-size: .85rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .7));
    background: rgba(91, 156, 255, .08);
    border: 1px solid rgba(91, 156, 255, .2);
}

.gv-fech-footnote[b-6vk7xr08rp] {
    margin-top: .75rem;
    font-size: .82rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .6));
}

/* ── Célula colaborador: nome + filial abaixo (renderizada no grid → ::deep) ── */
.gv-fech-grid[b-6vk7xr08rp]  .gv-fech-colab {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.gv-fech-grid[b-6vk7xr08rp]  .gv-fech-colab__name {
    font-weight: 600;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-fech-grid[b-6vk7xr08rp]  .gv-fech-colab__sub {
    font-size: 11.5px;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
}

.gv-fech-grid[b-6vk7xr08rp]  .gv-fech-share {
    font-size: .82rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .75));
}

/* ── Badges (reuso da linguagem visual do app) ────────────────────────────── */
.gv-badge[b-6vk7xr08rp] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .12rem .5rem;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
}

.gv-badge-dot[b-6vk7xr08rp] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
    background: currentColor;
}

.gv-badge--success[b-6vk7xr08rp] {
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
}

.gv-badge--neutral[b-6vk7xr08rp] {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .65));
    background: rgba(255, 255, 255, .06);
}

.gv-badge--warning[b-6vk7xr08rp] {
    color: var(--kendo-color-warning, #e0a234);
    background: rgba(224, 162, 52, .14);
}

.gv-fech-avisos[b-6vk7xr08rp] {
    border-left: 3px solid var(--kendo-color-warning, #e0a234);
}

.gv-fech-avisos ul[b-6vk7xr08rp] {
    margin: .35rem 0 0;
    padding-left: 1.1rem;
    font-size: .88rem;
}

.gv-fech-recorte[b-6vk7xr08rp] {
    margin-bottom: 1rem;
    padding: .6rem .8rem;
    border-radius: 6px;
    font-size: .85rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .8));
    background: rgba(255, 255, 255, .04);
    border-left: 3px solid var(--kendo-color-info, #4a9fd8);
}

.gv-fech-desligados[b-6vk7xr08rp] {
    border-left: 3px solid var(--kendo-color-info, #4a9fd8);
}

.gv-fech-desligados p[b-6vk7xr08rp] {
    margin: .25rem 0 .5rem;
    font-size: .85rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .65));
}

.gv-fech-desligados ul[b-6vk7xr08rp] {
    margin: 0;
    padding-left: 0;
    list-style: none;
    font-size: .88rem;
}

.gv-fech-desligados li[b-6vk7xr08rp] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .15rem 0;
}

/* ── Pendências bloqueantes (recusa tudo-ou-nada) ─────────────────────────── */
.gv-fech-pendencias[b-6vk7xr08rp] {
    border-left: 3px solid var(--kendo-color-error, #d9534f);
}

.gv-fech-pendencias p[b-6vk7xr08rp] {
    margin: .25rem 0 .5rem;
    font-size: .85rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .65));
}

.gv-fech-pendencias ul[b-6vk7xr08rp] {
    margin: 0;
    padding-left: 1.1rem;
    font-size: .88rem;
}

/* ── Comprovante (pós-fechamento) ─────────────────────────────────────────── */
.gv-fech-comprovante__head[b-6vk7xr08rp] {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.gv-fech-comprovante__meta[b-6vk7xr08rp] {
    margin-top: .5rem;
    font-size: .85rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .7));
}

.gv-fech-share-consolidado[b-6vk7xr08rp] {
    margin-top: .5rem;
}

.gv-fech-share-consolidado__title[b-6vk7xr08rp] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .55));
    margin-bottom: .4rem;
}

.gv-fech-share-consolidado__items[b-6vk7xr08rp] {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1.25rem;
}

.gv-fech-share-consolidado__item[b-6vk7xr08rp] {
    font-size: .85rem;
    color: var(--kendo-color-on-base, #fafafa);
}

.gv-fech-comprovante__actions[b-6vk7xr08rp] {
    display: flex;
    gap: .6rem;
    margin-top: 1.25rem;
}

/* Drill-down curto do sem-lastro no bloco de avisos: quem, e quanto. */
.gv-fech-semlastro[b-6vk7xr08rp] {
    display: block;
    margin-top: .25rem;
    font-size: .85rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .7));
}
/* /Features/Rh/Rentabilidade/Share/RtbSharePage.razor.rz.scp.css */
/* Cadastro de share — filtros, total e sinal de competência fechada. Cores por token do
   tema Telerik (o fallback nunca pode ser a cor efetiva: no tema claro ele venceria). */
.rtb-share-filtros[b-6x3ry2g384] {
    display: flex;
    gap: 1.25rem;
    align-items: flex-end;
    flex-wrap: wrap;
}

.rtb-share-filtros__cc[b-6x3ry2g384] {
    flex: 1 1 320px;
}

.rtb-share-bloco__head[b-6x3ry2g384] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .75rem;
}

.rtb-share-total[b-6x3ry2g384] {
    font-weight: 600;
    font-size: .9rem;
}

.rtb-share-total--ok[b-6x3ry2g384] {
    color: var(--kendo-color-success, #4fbf67);
}

.rtb-share-total--erro[b-6x3ry2g384] {
    color: var(--kendo-color-error, #d9534f);
}

.rtb-share-fechada[b-6x3ry2g384] {
    border-left: 3px solid var(--kendo-color-warning, #e0a234);
}

.rtb-share-fechada p[b-6x3ry2g384],
.rtb-share-hint[b-6x3ry2g384] {
    margin: .25rem 0 .5rem;
    font-size: .85rem;
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .65));
}

.rtb-share-acoes[b-6x3ry2g384] {
    display: flex;
    gap: .6rem;
    margin-top: 1rem;
}

.rtb-share-badge[b-6x3ry2g384] {
    display: inline-flex;
    padding: .12rem .5rem;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    color: var(--kendo-color-success, #4fbf67);
    background: rgba(79, 191, 103, .12);
}

.rtb-share-badge--vazio[b-6x3ry2g384] {
    color: var(--kendo-color-subtle, rgba(250, 250, 250, .65));
    background: rgba(255, 255, 255, .06);
}
/* /Features/Rh/Rentabilidade/Share/ShareDistribuicaoEditor.razor.rz.scp.css */
.rtb-share-editor__acoes[b-ix5m8k0kll] {
    margin-top: .75rem;
}
/* /Features/Ut/Comunica/ComunicaDisparoPage.razor.rz.scp.css */
/* Linha de busca do grid de Selecionados (textbox + botão). Detalhe não coberto
   pelas classes globais de layout (screen-layout.md). */
.comunica-search[b-asa0pxn5vs] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}
/* /Features/Ut/PingView/PingViewSessionIndicator.razor.rz.scp.css */
.pv-indicator[b-37oq653s5k] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0 0.35rem;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    cursor: default;
    user-select: none;
}

.pv-dot[b-37oq653s5k] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--pv-dot-color, #9aa0a6);
    box-shadow: 0 0 0 0 var(--pv-dot-color, #9aa0a6);
    flex: 0 0 auto;
}

/* Verde = online/ativo; âmbar = idle; cinza = offline/lapso. Tokens dark-first. */
.pv-dot--online[b-37oq653s5k] {
    --pv-dot-color: #2e7d32;
    box-shadow: 0 0 0 3px rgba(46, 125, 50, 0.2);
}

.pv-dot--idle[b-37oq653s5k] {
    --pv-dot-color: #b8860b;
    box-shadow: 0 0 0 3px rgba(184, 134, 11, 0.2);
}

.pv-dot--offline[b-37oq653s5k] {
    --pv-dot-color: #9aa0a6;
}

.pv-timer[b-37oq653s5k] {
    font-size: 0.82rem;
    opacity: 0.85;
}
/* /Features/Ut/Wiki/WikiCadernoView.razor.rz.scp.css */
/* Capa do caderno: as seções empilhadas com as páginas visíveis de cada uma. */
.wiki-caderno__secao + .wiki-caderno__secao[b-kdzv0i71wl] {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
}

.wiki-caderno__secao h3[b-kdzv0i71wl] {
    margin: 0 0 0.5rem;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--kendo-color-subtle);
}

.wiki-caderno__paginas[b-kdzv0i71wl] {
    margin: 0;
    padding-left: 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
/* /Features/Ut/Wiki/WikiEditorPage.razor.rz.scp.css */
/* Editor do Wiki — toolbar, preview e listas auxiliares.
   Cores sempre por variável do tema (dark-first). */

.wiki-toolbar[b-7l8kcvihba] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
    padding: 0.35rem 0;
    margin-bottom: 0.5rem;
    border-bottom: 1px solid var(--kendo-color-border, rgba(128, 128, 128, 0.3));
}

.wiki-hint[b-7l8kcvihba] {
    color: var(--kendo-color-subtle);
    font-size: 0.78rem;
}

/* O preview usa o MESMO pipeline da leitura — o HTML vem de MarkupString e não
   recebe o scope do componente, então os seletores descem por ::deep. */
.wiki-preview[b-7l8kcvihba] {
    min-height: 320px;
    padding: 0.5rem 0;
    line-height: 1.65;
}

/* Mesma regra da leitura: link pela cor do tema, nunca o azul do browser. */
.wiki-preview[b-7l8kcvihba]  a {
    color: var(--kendo-color-primary);
    text-decoration: none;
}

.wiki-preview[b-7l8kcvihba]  a:hover {
    text-decoration: underline;
}

.wiki-preview[b-7l8kcvihba]  img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

.wiki-preview[b-7l8kcvihba]  table {
    width: 100%;
    border-collapse: collapse;
    display: block;
    overflow-x: auto;
}

.wiki-preview[b-7l8kcvihba]  th,
.wiki-preview[b-7l8kcvihba]  td {
    border: 1px solid var(--kendo-color-border, rgba(128, 128, 128, 0.3));
    padding: 0.4rem 0.6rem;
    text-align: left;
}

.wiki-preview[b-7l8kcvihba]  pre {
    padding: 0.75rem 1rem;
    overflow-x: auto;
    border-radius: 4px;
    background: var(--kendo-color-base, rgba(128, 128, 128, 0.1));
}

.wiki-convidados[b-7l8kcvihba] {
    margin: 0.75rem 0 0;
    padding: 0;
    list-style: none;
}

.wiki-convidados li[b-7l8kcvihba] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--kendo-color-border, rgba(128, 128, 128, 0.2));
}

.wiki-convidados__tipo[b-7l8kcvihba] {
    min-width: 120px;
    color: var(--kendo-color-subtle);
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.wiki-picker[b-7l8kcvihba] {
    margin: 0.75rem 0 0;
    padding: 0;
    list-style: none;
    max-height: 320px;
    overflow-y: auto;
}

/* O caminho Caderno ▸ Seção ▸ Página vai numa segunda linha, esmaecido: é o que
   distingue dois destinos de mesmo título sem competir com ele. */
.wiki-picker[b-7l8kcvihba]  .k-button-text {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    text-align: left;
}

.wiki-picker__caminho[b-7l8kcvihba] {
    color: var(--kendo-color-subtle);
    font-size: 0.76rem;
}

/* Cabeçalho de seção recolhível: botão de largura total sem aparência de botão —
   a affordance é o chevron, e o <h2> continua sendo o título da seção. */
.wiki-secao-toggle[b-7l8kcvihba] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 0.5rem;
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
    color: inherit;
    text-align: left;
}

.wiki-secao-toggle h2[b-7l8kcvihba] {
    margin: 0;
}

.wiki-secao-toggle__chevron[b-7l8kcvihba] {
    color: var(--kendo-color-subtle);
}
/* /Features/Ut/Wiki/WikiHomePage.razor.rz.scp.css */
/* Home do Wiki — filtros e listagem. Cores por variável do tema (dark-first). */

.wiki-filtros[b-u0ini4klf5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
}

.wiki-filtros__switch[b-u0ini4klf5] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--kendo-color-subtle);
    font-size: 0.85rem;
}

.wiki-lista[b-u0ini4klf5] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.wiki-lista__item[b-u0ini4klf5] {
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--kendo-color-border, rgba(128, 128, 128, 0.25));
}

/* Link sempre pela cor do tema — o azul default do browser é ilegível no dark. */
.wiki-lista__titulo[b-u0ini4klf5] {
    font-size: 1.05rem;
    font-weight: 600;
    margin-right: 0.5rem;
    color: var(--kendo-color-primary);
    text-decoration: none;
}

.wiki-lista__titulo:hover[b-u0ini4klf5],
.wiki-lista__titulo:focus-visible[b-u0ini4klf5] {
    text-decoration: underline;
}

.wiki-lista__meta[b-u0ini4klf5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    margin-top: 0.25rem;
    color: var(--kendo-color-subtle);
    font-size: 0.8rem;
}

.wiki-lista__tags[b-u0ini4klf5] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.4rem;
}

.wiki-lista__mais[b-u0ini4klf5] {
    display: flex;
    justify-content: center;
    padding: 1rem 0;
}

/* Migalha no título: o caderno em peso normal e esmaecido, o título em destaque —
   a hierarquia é lida sem que o nome do caderno dispute com o da página. */
.wiki-lista__caderno[b-u0ini4klf5] {
    font-weight: 400;
    opacity: 0.7;
}

.wiki-lista__sep[b-u0ini4klf5] {
    margin: 0 0.3rem;
    opacity: 0.5;
}
/* /Features/Ut/Wiki/WikiOrganizacaoPage.razor.rz.scp.css */
/* Organização do Wiki — árvore de categorias e lista de tags. */

.wiki-arvore[b-hj3vy9ws5h],
.wiki-tags[b-hj3vy9ws5h] {
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.wiki-arvore__item[b-hj3vy9ws5h],
.wiki-tags li[b-hj3vy9ws5h] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--kendo-color-border, rgba(128, 128, 128, 0.2));
}

.wiki-arvore__nome[b-hj3vy9ws5h],
.wiki-tags__nome[b-hj3vy9ws5h] {
    font-weight: 500;
}

.wiki-arvore__inativa[b-hj3vy9ws5h] {
    color: var(--kendo-color-subtle);
    font-style: italic;
    font-size: 0.8rem;
}

.wiki-arvore__contagem[b-hj3vy9ws5h] {
    margin-left: auto;
    color: var(--kendo-color-subtle);
    font-size: 0.8rem;
}
/* /Features/Ut/Wiki/WikiPaginaPage.razor.rz.scp.css */
/* Leitura do Wiki — tipografia do corpo Markdown e metadados discretos.
   Cores sempre por variável do tema (dark-first). */

/* O cartão de metadados (.wiki-meta*) é GLOBAL, em app.css: página e subpágina
   têm de ficar visualmente idênticos, e regra escopada por tela não alcança a
   outra — foi assim que a subpágina ficou sem cartão nenhum. */

.wiki-backlinks[b-tbagu177rx] {
    margin: 0;
    padding-left: 1.1rem;
}

.wiki-backlinks li[b-tbagu177rx] {
    margin-bottom: 0.25rem;
}

/* Links sempre pela cor do tema — o azul default do browser é ilegível no dark.
   Vale para os backlinks (markup próprio); os links do corpo Markdown seguem a
   mesma regra em app.css, onde a tipografia do corpo é global. */
.wiki-backlinks a[b-tbagu177rx] {
    color: var(--kendo-color-primary);
    text-decoration: none;
}

.wiki-backlinks a:hover[b-tbagu177rx],
.wiki-backlinks a:focus-visible[b-tbagu177rx] {
    text-decoration: underline;
}
/* /Features/Ut/Wiki/WikiShell.razor.rz.scp.css */
/* Duas colunas: navegação fixa à esquerda, conteúdo à direita. Cores sempre por
   variável de tema — nada de literal, senão o dark-first quebra. */
.wiki-shell[b-xy7klcik54] {
    display: grid;
    grid-template-columns: minmax(200px, 260px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

/* Recolhido: a coluna vira uma faixa fina e o conteúdo toma a largura toda. */
.wiki-shell--recolhido[b-xy7klcik54] {
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: 0.5rem;
}

.wiki-shell__nav[b-xy7klcik54] {
    position: sticky;
    top: 0.5rem;
    max-height: calc(100vh - 8rem);
    overflow-y: auto;
    border: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
    border-radius: 6px;
    background: var(--kendo-color-surface, rgba(128, 128, 128, .06));
    padding: 0.4rem;
}

.wiki-shell__rail[b-xy7klcik54] {
    position: sticky;
    top: 0.5rem;
    display: flex;
    justify-content: center;
    padding-top: 0.25rem;
}

.wiki-shell__content[b-xy7klcik54] {
    min-width: 0;
}

/* Numa tela estreita a árvore vira uma faixa acima do conteúdo — sem scroll
   horizontal na página. */
@media (max-width: 900px) {
    .wiki-shell[b-xy7klcik54],
    .wiki-shell--recolhido[b-xy7klcik54] {
        grid-template-columns: 1fr;
    }

    .wiki-shell__nav[b-xy7klcik54] {
        position: static;
        max-height: 40vh;
    }

    .wiki-shell__rail[b-xy7klcik54] {
        position: static;
        justify-content: flex-start;
    }
}
/* /Features/Ut/Wiki/WikiSubpaginaPage.razor.rz.scp.css */
/* A linha que diz de quem a subpágina é. Não é decoração: é o que explica por que
   esta tela não tem cabeçalho de governança próprio. */
.wiki-sub__origem[b-82j0c2r9ab] {
    margin: 0 0 1rem;
    color: var(--kendo-color-subtle);
    font-size: 0.88rem;
}

/* Autoria numa segunda linha, esmaecida: é rastreio, não governança — e a
   subpágina não tem responsável para exibir. */
.wiki-sub__autoria[b-82j0c2r9ab] {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.8rem;
    opacity: 0.85;
}
/* /Features/Ut/Wiki/WikiTreePanel.razor.rz.scp.css */
/* Navegação densa de propósito: é índice, não conteúdo. O que ocupa espaço aqui
   some da leitura, que é a razão de ser do app. */
.wiki-tree__header[b-l96rmsprtd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.25rem;
    padding: 0 0 0.35rem;
    border-bottom: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
    margin-bottom: 0.35rem;
}

/* Voltar + nome do caderno ocupam o lugar do rótulo fixo; o nome trunca para não
   empurrar as ações do cabeçalho para fora. */
.wiki-tree__titulo-grupo[b-l96rmsprtd] {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    min-width: 0;
    flex: 1 1 auto;
}

.wiki-tree__titulo-grupo .wiki-tree__titulo[b-l96rmsprtd] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wiki-tree__titulo[b-l96rmsprtd] {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--kendo-color-subtle);
}

.wiki-tree__header-acoes[b-l96rmsprtd] {
    display: inline-flex;
    align-items: center;
    gap: 0.1rem;
}

.wiki-tree__estado[b-l96rmsprtd] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    align-items: flex-start;
    padding: 0.4rem 0.15rem;
    font-size: 0.82rem;
}

.wiki-tree__estado--erro[b-l96rmsprtd] {
    color: var(--kendo-color-error);
}

.wiki-tree__item[b-l96rmsprtd] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
    width: 100%;
}

/* Título longo trunca em vez de estourar a largura do painel — sem isso a árvore
   ganha scroll horizontal e o texto some pela direita. O title do elemento pai
   mostra o nome inteiro no hover. */
.wiki-tree__label[b-l96rmsprtd] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1 1 auto;
    min-width: 0;
}

/* Linha de criação: ocupa a largura da linha e nada mais — é uma linha da árvore
   que virou campo, não um formulário embutido. */
.wiki-tree__novo[b-l96rmsprtd] {
    display: block;
    width: 100%;
    padding: 0.05rem 0;
}

.wiki-tree__novo[b-l96rmsprtd]  .k-input {
    font-size: 0.84rem;
}

/* O + só aparece no hover/foco da linha: presente quando se precisa dele, invisível
   no resto do tempo — senão a coluna vira uma parede de botões. */
.wiki-tree__mais[b-l96rmsprtd] {
    flex: 0 0 auto;
    opacity: 0;
    transition: opacity 120ms ease;
}

.wiki-tree[b-l96rmsprtd]  .k-treeview-item:hover .wiki-tree__mais,
.wiki-tree[b-l96rmsprtd]  .k-treeview-leaf:focus-within .wiki-tree__mais,
.wiki-tree__mais:focus-within[b-l96rmsprtd] {
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
    .wiki-tree__mais[b-l96rmsprtd] {
        transition: none;
    }
}

/* A hierarquia é legível pelo peso e pelo tamanho, não só pelo recuo — o que
   permite recuo pequeno e quatro níveis cabendo na largura do painel. */
.wiki-tree__item--caderno .wiki-tree__label[b-l96rmsprtd] {
    font-weight: 600;
    font-size: 0.86rem;
}

.wiki-tree__item--secao .wiki-tree__label[b-l96rmsprtd] {
    color: var(--kendo-color-subtle);
    text-transform: uppercase;
    font-size: 0.66rem;
    letter-spacing: .03em;
}

.wiki-tree__item--pagina .wiki-tree__label[b-l96rmsprtd] {
    font-size: 0.84rem;
}

.wiki-tree__item--subpagina .wiki-tree__label[b-l96rmsprtd] {
    font-size: 0.78rem;
}

/* ::deep alcança o markup do TelerikTreeView (componente-filho). Densidade: o
   default do tema é folgado para uma navegação de quatro níveis. */
.wiki-tree[b-l96rmsprtd]  .k-treeview-leaf {
    padding: 0.12rem 0.3rem;
    line-height: 1.3;
}

/* O recuo do tema NÃO vem de .k-treeview-group nem de .k-treeview-item (ambos têm
   padding: 0): vem de .k-treeview-item-content, que calcula
   `padding-inline-start: var(--kendo-treeview-level) * 24px` — a variável é escrita
   inline pelo componente em cada nó. Mexer em outro seletor não altera nada.

   24px é calibrado para árvores rasas; com quatro níveis empurra a subpágina para
   fora do painel. Aqui vale 10px. O toggle precisa acompanhar: o tema o puxa com
   `margin-inline-start: -24px` para encaixá-lo no recuo do nível anterior, então o
   negativo tem de casar com o recuo novo — e a seta encolhe junto, senão ela
   invadiria o rótulo da própria linha (largura do toggle > recuo = sobreposição). */
.wiki-tree[b-l96rmsprtd] {
    --wiki-tree-recuo: 10px;
}

.wiki-tree[b-l96rmsprtd]  .k-treeview-item-content {
    padding-inline-start: calc(var(--kendo-treeview-level, 0) * var(--wiki-tree-recuo));
}

.wiki-tree[b-l96rmsprtd]  .k-treeview-toggle {
    margin-inline-start: calc(-1 * var(--wiki-tree-recuo));
    margin-inline-end: 0.1rem;
}

/* Seta do tamanho do recuo. O alvo de clique continua confortável na vertical —
   só a largura encolhe. */
.wiki-tree[b-l96rmsprtd]  .k-treeview-toggle .k-icon,
.wiki-tree[b-l96rmsprtd]  .k-treeview-toggle .k-svg-icon {
    padding: 0;
    width: var(--wiki-tree-recuo);
    height: var(--wiki-tree-recuo);
    min-width: var(--wiki-tree-recuo);
    font-size: var(--wiki-tree-recuo);
}

.wiki-tree[b-l96rmsprtd]  .k-treeview-toggle .k-svg-icon > svg {
    width: 100%;
    height: 100%;
}

.wiki-tree[b-l96rmsprtd]  .k-treeview-leaf.k-selected {
    font-weight: 600;
}

/* Botão de linha e de cabeçalho encolhem: o alvo continua clicável, sem a altura
   de um botão de formulário. */
.wiki-tree[b-l96rmsprtd]  .k-button-sm {
    padding: 0 0.3rem;
    min-height: 1.1rem;
    line-height: 1.1;
}
/* /Layout/ActionPanelHost.razor.rz.scp.css */
/* Spec 0066 — single-instance action panel with two layers.
   panel-app: starts below the top bar (top: 56px); panel-global cobre a top bar (top: 0).

   ── Mapa de empilhamento do produto (Dev1.0018) ───────────────────────────────
     topbar 300 · dropdowns 400 · error-ui 1000 · fullscreen do plano 1100/2000
       < PAINEL default (8999/9000 app · 9009/9010 global)
       < k-overlay / wrapper do diálogo Telerik (~10000-10002) · update obrigatório (10000)
       < PAINEL opt-in .panel-above-modal (10049/10050)
       < banner de conexão (11000) < popup de combo/dropdown (12000)

   POR QUE O DIÁLOGO FICA POR CIMA (não mude sem ler): o conteúdo de TelerikDialog é
   PORTALIZADO — renderiza como filho do TelerikRootComponent, fora da árvore de quem o
   declarou —, então diálogo aberto DE DENTRO do painel não herda a camada do painel. Com
   o painel por cima, esse diálogo cai embaixo do próprio backdrop: aparece escurecido e o
   backdrop engole o clique. São 18 componentes IPanelContent que hospedam diálogo próprio
   (descarte, conflito 412) contra 2 call sites que querem o inverso — o default serve os 18.

   O caso dos 2 (painel aberto de dentro de um modal que PERMANECE aberto — detalhe do FTE
   RH no seletor de alocação) é OPT-IN via `OpenAsync(..., aboveModal: true)`. A V0.974 spec
   0568 tinha resolvido esse caso subindo o default de todo o produto, o que quebrou os 18.

   Nos dois sentidos a top bar segue clicável por GEOMETRIA, não por empilhamento: painel e
   backdrop da camada panel-app começam em top: 56px, então nunca a cobrem — é isso que
   torna seguro tanto o default embaixo quanto o opt-in em cima.

   Spec 0067 — header/footer scaffolding rendered by the host when the content
   implements IPanelContent. Legacy bare rendering preserved (transitional). */

.action-panel-host[b-3epwrxfov2] {
    position: fixed;
    right: 0;
    bottom: 0;
    width: 360px;
    transform: translateX(100%);
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--kendo-color-surface, #141414);
    border-left: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.08));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    outline: none;
}

.action-panel-host.panel-app[b-3epwrxfov2] {
    top: var(--flowt-topbar-height, 56px);
    z-index: 9000;
}

.action-panel-host.panel-global[b-3epwrxfov2] {
    top: 0;
    z-index: 9010;
    width: 480px;
}

.action-panel-host.open[b-3epwrxfov2] {
    transform: translateX(0);
}

.action-panel-host.panel-medium[b-3epwrxfov2] {
    width: 720px;
}

.action-panel-host.panel-large[b-3epwrxfov2] {
    width: 1080px;
}

.action-panel-host.panel-xlarge[b-3epwrxfov2] {
    width: 1280px;
}

.action-panel-backdrop[b-3epwrxfov2] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    animation: backdrop-in-b-3epwrxfov2 0.2s ease;
}

.action-panel-backdrop.panel-app[b-3epwrxfov2] {
    top: var(--flowt-topbar-height, 56px);
    z-index: 8999;
}

.action-panel-backdrop.panel-global[b-3epwrxfov2] {
    top: 0;
    z-index: 9009;
}

/* Opt-in `aboveModal: true` — painel aberto de dentro de um modal que continua aberto.
   Acima do wrapper do diálogo Telerik. Usar SÓ nesse caso: painel aqui em cima deixa
   qualquer diálogo aberto de dentro dele escurecido e sem clique. */
.action-panel-host.panel-above-modal[b-3epwrxfov2] {
    z-index: 10050;
}

.action-panel-backdrop.panel-above-modal[b-3epwrxfov2] {
    z-index: 10049;
}

@keyframes backdrop-in-b-3epwrxfov2 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ── Scaffolding (spec 0067) ──────────────────────────────────────────────── */

.panel-header[b-3epwrxfov2] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.06));
    flex: 0 0 auto;
}

.panel-header-text[b-3epwrxfov2] {
    min-width: 0;
}

.panel-title[b-3epwrxfov2] {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--kendo-color-on-surface, #e8e8e8);
}

.panel-subtitle[b-3epwrxfov2] {
    margin: 4px 0 0;
    font-size: 0.8125rem;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
}

.panel-close[b-3epwrxfov2] {
    background: transparent;
    border: 0;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.6));
    font-size: 1.5rem;
    line-height: 1;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
    flex: 0 0 auto;
}

.panel-close:hover[b-3epwrxfov2] {
    background: var(--kendo-color-surface-alt, rgba(255, 255, 255, 0.06));
    color: var(--kendo-color-on-surface, #e8e8e8);
}

.panel-body[b-3epwrxfov2] {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 20px 24px;
}

.panel-footer[b-3epwrxfov2] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 14px 24px 18px;
    border-top: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.06));
    flex: 0 0 auto;
}
/* /Layout/ErrorLayout.razor.rz.scp.css */
/* ── Shell ───────────────────────────────────────────────────────────────── */

.error-shell[b-hckt44amk6] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--kendo-color-base, #1a1a1a);
    color: var(--kendo-color-on-base, #fafafa);
}

/* ── Header ──────────────────────────────────────────────────────────────── */

.error-header[b-hckt44amk6] {
    padding: 1.5rem 2rem;
    flex-shrink: 0;
}

.error-brand[b-hckt44amk6] {
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.35;
    text-transform: uppercase;
}

/* ── Body (centered content area) ───────────────────────────────────────── */

.error-body[b-hckt44amk6] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}
/* /Layout/LoginLayout.razor.rz.scp.css */
/* ── Shell escuro full-bleed (compartilhado por Login e SelectCompany) ─────── */

/* Página — fundo preto com drapeado de seda */
.login-page[b-btlsefeoqz] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background-color: #0A0A0A;
    padding: 40px 24px 56px;
    overflow: hidden;
}

/* Textura de seda por cima da cor sólida, levemente transparente */
.login-page[b-btlsefeoqz]::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url('/images/login-bg.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.6;
    pointer-events: none;
}

/* Conteúdo acima da textura */
.login-center[b-btlsefeoqz],
.login-footer[b-btlsefeoqz] {
    position: relative;
    z-index: 1;
}

.login-center[b-btlsefeoqz] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

/* Rodapé — versão via ReleaseFooter restilizado */
.login-footer[b-btlsefeoqz] {
    flex-shrink: 0;
    margin-top: 24px;
    text-align: center;
}

/* ── Regras de tela compartilhadas entre Login e SelectCompany ───────────── */
/* Vivem no scope do layout (via ::deep) porque ambos os children renderizam
   o mesmo visual de formulário com as mesmas classes. Duplicar em cada child
   foi o problema raiz reportado pelo usuário em V0.901/0150: a tela de seleção
   de empresa vinha sem nenhum gap porque herdava de Login.razor.css (scope
   alheio) e o navegador caía no default. */

/* ── Card glassmorphism (compartilhado Login + SelectCompany) ────────────── */

[b-btlsefeoqz] .login-card {
    width: 100%;
    max-width: 500px;
    background: rgba(28, 28, 30, 0.72);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;
    padding: 48px 56px 52px;
    backdrop-filter: blur(8px);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
}

[b-btlsefeoqz] .login-logo {
    display: flex;
    justify-content: center;
    margin-bottom: 36px;
}

[b-btlsefeoqz] .login-logo img {
    display: block;
    width: auto;
}

/* Dentro do card o form ocupa a largura toda; logo/título/subtítulo
   centralizados (sobrescreve só o alinhamento — cor/tamanho herdam). */
[b-btlsefeoqz] .login-card .login-form-container {
    max-width: none;
}

[b-btlsefeoqz] .login-card .login-form-header {
    text-align: center;
    align-items: center;
}

/* Campos no tema escuro translúcido, foco na cor primária. */
[b-btlsefeoqz] .login-input .k-input-inner,
[b-btlsefeoqz] .login-input.k-input {
    background: rgba(255, 255, 255, 0.05);
    color: #fff;
}

[b-btlsefeoqz] .login-input.k-input {
    border-color: rgba(255, 255, 255, 0.12);
}

[b-btlsefeoqz] .login-input.k-focus,
[b-btlsefeoqz] .login-input:focus-within {
    border-color: var(--kendo-color-primary, #c41e3a);
    box-shadow: 0 0 0 3px rgba(196, 30, 58, 0.25);
}

[b-btlsefeoqz] .login-input .k-input-inner::placeholder {
    color: rgba(255, 255, 255, 0.35);
}

@media (max-width: 560px) {
    [b-btlsefeoqz] .login-card {
        padding: 36px 24px 40px;
        border-radius: 16px;
    }
}

/* ── Form container e campos ─────────────────────────────────────────────── */

[b-btlsefeoqz] .login-form-container {
    width: 100%;
    max-width: 380px;
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
}

[b-btlsefeoqz] .login-form-header {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

[b-btlsefeoqz] .login-title {
    font-size: 1.75rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--kendo-color-on-base, #fafafa);
    margin: 0;
    line-height: 1.2;
}

[b-btlsefeoqz] .login-subtitle {
    font-size: 0.9rem;
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.5;
    margin: 0;
}

[b-btlsefeoqz] .login-fields {
    display: flex;
    flex-direction: column;
    gap: 1.125rem;
}

[b-btlsefeoqz] .login-field {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

[b-btlsefeoqz] .login-label {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.7;
    letter-spacing: 0.01em;
}

[b-btlsefeoqz] .login-input {
    width: 100%;
}

[b-btlsefeoqz] .login-btn {
    width: 100%;
}

/* ── Responsive: telas estreitas reduzem o padding do shell ──────────────── */

@media (max-width: 860px) {
    .login-page[b-btlsefeoqz] {
        padding: 24px 16px 40px;
    }
}
/* /Layout/MainLayout.razor.rz.scp.css */
/* Estilos estruturais da casca ficam em wwwroot/css/app.css para poderem usar
   as CSS variables do tema Telerik (--kendo-color-*). Este arquivo fica
   reservado para futuros estilos escopados do MainLayout. */
/* /Layout/Sidebar.razor.rz.scp.css */
/* Spec 0066 — Sidebar enxuta.
   Estrutura: header (só hamburger) + faixa do app + nav.
   Tudo que era footer (família tema, toggle dark, idioma, bloco usuário)
   migrou para a TopBar. App selector e logo também saíram da sidebar. */

/* ── Header: só hamburguer ────────────────────────────────────────────── */

.sidebar-header[b-xhi0l7rtg2] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    height: 44px;
    padding: 0 0.5rem;
    flex-shrink: 0;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.05));
}

.sidebar-hamburger[b-xhi0l7rtg2] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    color: var(--kendo-color-on-base, #fafafa);
    cursor: pointer;
    border-radius: 6px;
    opacity: 0.7;
    transition: opacity 120ms ease, background 120ms ease;
    padding: 0;
}

.sidebar-hamburger:hover[b-xhi0l7rtg2] {
    opacity: 1;
    background: var(--kendo-color-base-hover, rgba(255, 255, 255, 0.06));
}

.app-sidebar.collapsed .sidebar-header[b-xhi0l7rtg2] {
    justify-content: center;
    padding: 0.25rem 0;
}

/* ── App strip ────────────────────────────────────────────────────────── */

.sidebar-app-bar[b-xhi0l7rtg2] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding: 0.75rem 0.875rem 0.625rem;
    margin: 0 0.5rem;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.08));
    flex-shrink: 0;
}

.sidebar-app-icon[b-xhi0l7rtg2] {
    font-size: 20px !important;
    width: 20px;
    flex-shrink: 0;
    text-align: center;
    color: var(--kendo-color-primary, #e52020);
}

.sidebar-app-name[b-xhi0l7rtg2] {
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0.85;
}

.app-sidebar.collapsed .sidebar-app-bar[b-xhi0l7rtg2] {
    justify-content: center;
    padding: 0.5rem 0;
    margin: 0 0.25rem;
}

/* ── Navigation ───────────────────────────────────────────────────────── */

.sidebar-nav[b-xhi0l7rtg2] {
    display: flex;
    flex-direction: column;
    padding: 0.625rem 0.5rem;
    gap: 0.125rem;
    overflow-y: auto;
    flex: 1;
    min-height: 0;
}

[b-xhi0l7rtg2] .sidebar-nav-icon {
    font-size: 18px !important;
    width: 20px;
    flex-shrink: 0;
    text-align: center;
    opacity: 0.8;
}

.sidebar-section-label[b-xhi0l7rtg2] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 0.75rem 0.25rem;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.45;
    white-space: nowrap;
    overflow: hidden;
}

.app-sidebar.collapsed .sidebar-section-label[b-xhi0l7rtg2] {
    justify-content: center;
    padding: 0.375rem 0;
    gap: 0;
}

.sidebar-section-empty[b-xhi0l7rtg2] {
    padding: 0.25rem 1.5rem 0.5rem;
    font-size: 0.75rem;
    font-style: italic;
    opacity: 0.45;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-xhi0l7rtg2] .sidebar-link {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    color: var(--kendo-color-on-base, #fafafa);
    text-decoration: none;
    font-size: 0.875rem;
    white-space: nowrap;
    overflow: hidden;
    transition: background 120ms ease, color 120ms ease;
    min-width: 0;
}

[b-xhi0l7rtg2] .sidebar-link:hover {
    background: var(--kendo-color-base-hover, rgba(255, 255, 255, 0.06));
}

[b-xhi0l7rtg2] .sidebar-link.active {
    background: var(--kendo-color-primary, #e52020);
    color: var(--kendo-color-on-primary, #fff);
}

.nav-label[b-xhi0l7rtg2] {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Itens-folha sob uma seção carregam ícone próprio (spec 0234) e alinham com os
   itens top-level — o cabeçalho de seção acima já agrupa visualmente. Fallback:
   filho sem ícone recebe o indent antigo para alinhar com o texto da seção. */
[b-xhi0l7rtg2] .sidebar-link--child:not(:has(.sidebar-nav-icon)) {
    padding-left: calc(0.75rem + 20px + 0.625rem);
}

.sidebar-nav-skeleton[b-xhi0l7rtg2] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.25rem;
}

[b-xhi0l7rtg2] .sidebar-skeleton-item { border-radius: 6px; }

.sidebar-menu-error[b-xhi0l7rtg2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
}

.sidebar-menu-error-text[b-xhi0l7rtg2] {
    font-size: 0.78rem;
    opacity: 0.7;
    color: var(--kendo-color-error, #d13438);
}

.sidebar-menu-retry[b-xhi0l7rtg2] {
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.55;
    border-radius: 6px;
    padding: 0.25rem;
}

.sidebar-menu-retry:hover[b-xhi0l7rtg2] {
    opacity: 1;
    background: var(--kendo-color-base-hover, rgba(255, 255, 255, 0.06));
}

/* ── Collapsed state ──────────────────────────────────────────────────── */

.app-sidebar.collapsed .sidebar-nav[b-xhi0l7rtg2] {
    padding: 0.625rem 0.375rem;
}

.app-sidebar.collapsed[b-xhi0l7rtg2]  .sidebar-link {
    justify-content: center;
    padding: 0.5rem 0;
    gap: 0;
}

.app-sidebar.collapsed .nav-label[b-xhi0l7rtg2] {
    display: none;
}

/* ── Footer (release info) ────────────────────────────────────────────── */

.sidebar-footer[b-xhi0l7rtg2] {
    margin-top: auto;
    border-top: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.05));
    padding: 6px 8px;
    flex-shrink: 0;
}

.app-sidebar.collapsed .sidebar-footer[b-xhi0l7rtg2] {
    padding: 6px 4px;
    text-align: center;
}
/* /Pages/Apps.razor.rz.scp.css */
.apps-launcher[b-pbpdc7k353] {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    min-height: 100%;
    padding: 48px 32px;
}

.apps-launcher-inner[b-pbpdc7k353] {
    width: 100%;
    max-width: 1280px;
}

.apps-launcher-title[b-pbpdc7k353] {
    font-size: 1.5rem;
    font-weight: 600;
    margin: 0 0 28px 0;
    color: var(--kendo-color-on-app-surface, #e2e8f0);
    letter-spacing: -0.01em;
}


/* ── Busca ────────────────────────────────── */

.apps-search[b-pbpdc7k353] {
    position: relative;
    display: flex;
    align-items: center;
    margin: 0 0 28px 0;
    max-width: 420px;
}

.apps-search-icon[b-pbpdc7k353] {
    position: absolute;
    left: 12px;
    font-size: 20px !important;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.5));
    pointer-events: none;
}

.apps-search-input[b-pbpdc7k353] {
    width: 100%;
    padding: 10px 40px 10px 40px;
    border-radius: 8px;
    border: 1px solid var(--kendo-color-border, rgba(255, 255, 255, 0.12));
    background: var(--kendo-color-surface, #1e2028);
    color: var(--kendo-color-on-app-surface, #e2e8f0);
    font: inherit;
    font-size: 0.9rem;
}

.apps-search-input:focus[b-pbpdc7k353] {
    outline: none;
    border-color: var(--kendo-color-primary, #e63946);
}

/* O "x" nativo do type=search é inconsistente entre navegadores e não dá para rotular —
   o botão próprio é o que carrega o rótulo acessível e o mesmo comportamento do Esc. */
.apps-search-input[b-pbpdc7k353]::-webkit-search-cancel-button { display: none; }

.apps-search-clear[b-pbpdc7k353] {
    position: absolute;
    right: 8px;
    display: flex;
    align-items: center;
    padding: 4px;
    border: none;
    background: transparent;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
    cursor: pointer;
    border-radius: 4px;
}

.apps-search-clear:hover[b-pbpdc7k353] {
    color: var(--kendo-color-on-app-surface, #e2e8f0);
}

.apps-search-clear .material-icons[b-pbpdc7k353] { font-size: 18px !important; }

/* Anúncio para leitor de tela: some da tela sem sair da árvore de acessibilidade —
   `display: none` seria ignorado pelo leitor, que é o oposto do que se quer aqui. */
.apps-search-status[b-pbpdc7k353] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ── Seção por categoria ──────────────────── */

.apps-section[b-pbpdc7k353] {
    margin: 0 0 32px 0;
}

.apps-section-title[b-pbpdc7k353] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--kendo-color-subtle, rgba(255, 255, 255, 0.55));
    margin: 0 0 12px 0;
}

.apps-section-icon[b-pbpdc7k353] { font-size: 18px !important; opacity: 0.8; }

/* ── Grid ─────────────────────────────────── */

.apps-grid[b-pbpdc7k353] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}

/* ── Card ─────────────────────────────────── */

.app-card[b-pbpdc7k353] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 20px 20px 20px;
    min-height: 88px;
    border-radius: 10px;
    border: 1px solid var(--kendo-color-border, rgba(255,255,255,.08));
    background: var(--kendo-color-surface, #1e2028);
    cursor: pointer;
    transition: background 120ms ease, border-color 120ms ease, transform 120ms ease;
    user-select: none;
}

.app-card:hover[b-pbpdc7k353] {
    background: var(--kendo-color-surface-hovered, #262a35);
    border-color: var(--kendo-color-primary, #e63946);
    transform: translateY(-1px);
}

.app-card:active[b-pbpdc7k353] {
    transform: translateY(0);
}

.app-card--disabled[b-pbpdc7k353] {
    opacity: 0.45;
    cursor: not-allowed;
}

.app-card--disabled:hover[b-pbpdc7k353] {
    transform: none;
    border-color: var(--kendo-color-border, rgba(255,255,255,.08));
}

/* skeleton state */
.app-card--skeleton[b-pbpdc7k353] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 20px;
    cursor: default;
    pointer-events: none;
}

.app-card--skeleton:hover[b-pbpdc7k353] {
    transform: none;
    border-color: var(--kendo-color-border, rgba(255,255,255,.08));
}

/* ── Icon ─────────────────────────────────── */

.app-card-icon[b-pbpdc7k353] {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--kendo-color-primary, #e63946) 14%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
}

.app-card-icon .material-icons[b-pbpdc7k353] {
    font-size: 22px;
    color: var(--kendo-color-primary, #e63946);
}

/* ── Text ─────────────────────────────────── */

.app-card-body[b-pbpdc7k353] {
    flex: 1;
    min-width: 0;
}

.app-card-name[b-pbpdc7k353] {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--kendo-color-on-app-surface, #e2e8f0);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.app-card-desc[b-pbpdc7k353] {
    font-size: 0.8125rem;
    color: var(--kendo-color-subtle-text, #8892a4);
    margin-top: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Arrow ────────────────────────────────── */

.app-card-arrow[b-pbpdc7k353] {
    flex-shrink: 0;
    font-size: 20px;
    color: var(--kendo-color-subtle-text, #8892a4);
    opacity: 0;
    transition: opacity 120ms ease;
}

.app-card:hover .app-card-arrow[b-pbpdc7k353] {
    opacity: 1;
}

/* ── Empty state ──────────────────────────── */

.apps-empty[b-pbpdc7k353] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 80px 0;
    color: var(--kendo-color-subtle-text, #8892a4);
}

.apps-empty-icon[b-pbpdc7k353] {
    font-size: 48px;
    opacity: 0.4;
}

.apps-empty-text[b-pbpdc7k353] {
    font-size: 0.9375rem;
    margin: 0;
}

/* /Pages/Login.razor.rz.scp.css */
/* Regras compartilhadas entre Login e SelectCompany (card, logo, form
   container, header, campos, botão) vivem em Layout/LoginLayout.razor.css.
   Aqui ficam apenas regras exclusivas da tela de Login (SSO). */

/* ── SSO divider + button ────────────────────────────────────────────────── */

.login-divider[b-8xq7isjoel] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.75rem;
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.4;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.login-divider[b-8xq7isjoel]::before,
.login-divider[b-8xq7isjoel]::after {
    content: "";
    flex: 1;
    height: 1px;
    background: currentColor;
    opacity: 0.25;
}

[b-8xq7isjoel] .login-sso-btn {
    width: 100%;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #fff;
}

[b-8xq7isjoel] .login-sso-btn:hover {
    background: rgba(255, 255, 255, 0.10);
}
/* /Pages/SsoSemAcesso.razor.rz.scp.css */
.login-form-container--auto[b-wgoppi714x] {
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    padding: 3rem 0;
}

.login-subtitle--auto[b-wgoppi714x] {
    margin: 0;
    font-size: 0.9rem;
    opacity: 0.6;
    color: var(--kendo-color-on-base, #fafafa);
}
/* /Pages/UserProfile.razor.rz.scp.css */
.profile-page[b-981e44aimy] {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    max-width: 560px;
}

/* ── Header ──────────────────────────────────────────────────────────────── */

.profile-header[b-981e44aimy] {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255,255,255,0.08));
}

.profile-avatar-lg[b-981e44aimy] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--kendo-color-primary, #e52020);
    color: var(--kendo-color-on-primary, #fff);
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    flex-shrink: 0;
}

.profile-name[b-981e44aimy] {
    margin: 0 0 0.375rem;
    font-size: 1.25rem;
    font-weight: 600;
}

.profile-role-badge[b-981e44aimy] {
    display: inline-block;
    padding: 0.2rem 0.625rem;
    border-radius: 4px;
    background: var(--kendo-color-primary-subtle, rgba(229,32,32,0.15));
    color: var(--kendo-color-primary, #e52020);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* ── Sections ────────────────────────────────────────────────────────────── */

.profile-section[b-981e44aimy] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.profile-section-title[b-981e44aimy] {
    margin: 0;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.4;
}

.profile-fields[b-981e44aimy] {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--kendo-color-border, rgba(255,255,255,0.08));
    border-radius: 8px;
    overflow: hidden;
}

.profile-field[b-981e44aimy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--kendo-color-border, rgba(255,255,255,0.08));
}

.profile-field:last-child[b-981e44aimy] {
    border-bottom: none;
}

.profile-field-label[b-981e44aimy] {
    font-size: 0.82rem;
    opacity: 0.5;
    flex-shrink: 0;
}

.profile-field-value[b-981e44aimy] {
    font-size: 0.9rem;
    text-align: right;
}

.profile-tag[b-981e44aimy] {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
}

.profile-tag--off[b-981e44aimy] {
    background: var(--kendo-color-base-hover, rgba(255,255,255,0.06));
    color: var(--kendo-color-on-base, #fafafa);
    opacity: 0.6;
}

.profile-placeholder[b-981e44aimy] {
    margin: 0;
    font-size: 0.875rem;
    opacity: 0.35;
    font-style: italic;
}
/* /Shared/Actions/FlowtActionButton.razor.rz.scp.css */
/* O indicador de progresso entra ao lado do rótulo, que permanece. */
.flowt-action-button__progress[b-6p5vf1jeog] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 0.35rem;
}
/* /Shared/Caderno/CadernoWorkspace.razor.rz.scp.css */
/* A tela do caderno. Mora aqui, e não na folha de quem hospeda: CSS scoped não
   atravessa fronteira de componente — regra escrita no hospedeiro não alcançaria
   este markup. (.wiki-body é global e vale para os dois hospedeiros.) */

/* Índice à esquerda, conteúdo à direita. Em tela estreita empilha. */
.caderno-workspace__grid[b-vbjqnxlcxr] {
    display: grid;
    grid-template-columns: minmax(220px, 300px) 1fr;
    gap: 1.5rem;
    align-items: start;
}

@media (max-width: 900px) {
    .caderno-workspace__grid[b-vbjqnxlcxr] {
        grid-template-columns: 1fr;
    }
}

.caderno-workspace__cabecalho[b-vbjqnxlcxr] {
    margin-bottom: 1rem;
}

.caderno-workspace__indice-head[b-vbjqnxlcxr] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .5rem;
    min-width: 0;
}

.caderno-workspace__indice-head > strong[b-vbjqnxlcxr] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.caderno-workspace__titulo[b-vbjqnxlcxr] {
    margin: 0;
    font-size: 1.35rem;
}

.caderno-workspace__meta[b-vbjqnxlcxr] {
    margin: .25rem 0 1rem;
    font-size: .85rem;
    color: var(--kendo-color-subtle);
}

.caderno-workspace__acoes[b-vbjqnxlcxr] {
    display: flex;
    gap: .5rem;
    margin-top: .75rem;
}

.empty-hint[b-vbjqnxlcxr] {
    margin: .5rem 0;
    font-style: italic;
    color: var(--kendo-color-subtle);
}
/* /Shared/Cards/CardEstante.razor.rz.scp.css */
/* Estante de cards. Grade fluida: o número de colunas vem da largura disponível,
   não de breakpoints — a mesma folha serve do celular ao monitor largo. */
.card-estante[b-ea9hes7n31] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
}

.card-estante__card[b-ea9hes7n31] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem;
    min-height: 9rem;
    border: 1px solid var(--kendo-color-border, rgba(128, 128, 128, .3));
    border-radius: var(--kendo-border-radius-md, 0.25rem);
    background: var(--kendo-color-surface-alt, transparent);
    cursor: pointer;
    transition: border-color 120ms ease, transform 120ms ease;
}

.card-estante__card:hover[b-ea9hes7n31],
.card-estante__card:focus-visible[b-ea9hes7n31] {
    border-color: var(--kendo-color-primary);
    transform: translateY(-2px);
}

.card-estante__card:focus-visible[b-ea9hes7n31] {
    outline: 2px solid var(--kendo-color-primary);
    outline-offset: 2px;
}

.card-estante__titulo[b-ea9hes7n31] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.3;
}

/* O recorte da descrição é VISUAL (três linhas), não textual: cortar a string com
   reticências esconderia o texto inteiro do leitor de tela e da busca do navegador. */
.card-estante__descricao[b-ea9hes7n31] {
    margin: 0;
    flex: 1 1 auto;
    font-size: 0.85rem;
    line-height: 1.4;
    color: var(--kendo-color-subtle);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.card-estante__descricao--vazia[b-ea9hes7n31] {
    font-style: italic;
    opacity: .7;
}

.card-estante__meta[b-ea9hes7n31] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.72rem;
    color: var(--kendo-color-subtle);
}

.card-estante__detalhe[b-ea9hes7n31] {
    text-transform: uppercase;
    letter-spacing: .04em;
}

@media (prefers-reduced-motion: reduce) {
    .card-estante__card[b-ea9hes7n31] {
        transition: none;
    }

    .card-estante__card:hover[b-ea9hes7n31],
    .card-estante__card:focus-visible[b-ea9hes7n31] {
        transform: none;
    }
}
/* /Shared/Combo/FlowtCombo.razor.rz.scp.css */
/* Cor SEMPRE por token do tema — fallback que vence sempre trava o componente num tema só. */
.flowt-combo[b-kiut4dq7pw] {
    display: block;
}

.flowt-combo__item[b-kiut4dq7pw] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.flowt-combo__text[b-kiut4dq7pw] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.flowt-combo__item--inactive .flowt-combo__text[b-kiut4dq7pw] {
    color: var(--kendo-color-subtle);
}

/* A linha de apoio trunca em vez de quebrar (V0.984 spec 0640): o popup tem a largura do
   campo, e razão social é longa — quebrando, cada item passa a ocupar duas ou três linhas e
   a lista deixa de se percorrer com o olho, que é a razão de o teto ser cinquenta. O texto
   inteiro fica no title, ao alcance do ponteiro. */
.flowt-combo__desc[b-kiut4dq7pw] {
    font-size: 0.78rem;
    color: var(--kendo-color-subtle);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.flowt-combo__error[b-kiut4dq7pw] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
}

.flowt-combo__error-text[b-kiut4dq7pw] {
    font-size: 0.8rem;
    color: var(--kendo-color-error);
}

.flowt-combo__more[b-kiut4dq7pw] {
    padding: 6px 10px;
    font-size: 0.78rem;
    color: var(--kendo-color-subtle);
    border-top: 1px solid var(--kendo-color-border);
}
/* /Shared/Grid/FlowtColumnSelector.razor.rz.scp.css */
/* Seletor de colunas (V0.991 spec 0682): abre SOBRE a área do grid, ancorado no contêiner do
   FlowtGrid (position: relative). V0.991 spec 0688: cobre a área INTEIRA do grid, com as ações no
   canto superior direito; só a lista de colunas rola. Cores por token do tema. */
.flowt-column-selector[b-i7mocu75tk] {
    position: absolute;
    inset: 0;
    z-index: 4;
    min-height: 240px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 12px 16px;
    overflow: hidden;
    background: var(--kendo-color-surface);
    color: var(--kendo-color-on-app-surface);
    border: 1px solid var(--kendo-color-border);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.flowt-column-selector__title[b-i7mocu75tk] {
    margin: 0;
    font-size: 1rem;
}

.flowt-column-selector__secoes[b-i7mocu75tk] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    align-content: start;
    gap: 12px 20px;
}

.flowt-column-selector__secao-titulo[b-i7mocu75tk] {
    display: block;
    margin-bottom: 4px;
}

.flowt-column-selector__coluna[b-i7mocu75tk] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 2px 0;
}

.flowt-column-selector__acoes[b-i7mocu75tk] {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.flowt-column-selector__espaco[b-i7mocu75tk] {
    flex: 1 1 auto;
}
/* /Shared/Grid/FlowtGrid.razor.rz.scp.css */
/* FlowtGrid skeleton — substitui visualmente as linhas do grid enquanto
   OnRead esta em curso. Header e pager do TelerikGrid permanecem visiveis;
   o skeleton sobrepoe apenas a area de conteudo.

   Paleta: alinhada ao padrao ja em uso pelo dashboard-card__skeleton
   (rgba branco baixa opacidade), dark-first, sem amarracao Telerik. */

.flowt-grid[b-akrnc64vpx] {
    position: relative;
    width: 100%;
    /* Contenção: se o grid exceder o container por qualquer motivo de runtime
       (medição JS do Telerik, janela estreita, soma de colunas fixas), ele rola
       DENTRO do wrapper em vez de sangrar além do padding da página e ser
       clipado na borda da janela. Quando o conteúdo cabe, é no-op. */
    overflow-x: auto;
}

/* Padrão de grid (V0.991 spec 0681): toda coluna declara largura pelo catálogo
   FlowtColumnWidth, então cabeçalho e corpo recebem o mesmo colgroup e o layout é o default
   do Telerik (table-layout: fixed). O piso é a soma das larguras (FlowtGridLayout): abaixo
   dele o grid rola na horizontal. */
.flowt-grid[b-akrnc64vpx]  .k-grid-header-table,
.flowt-grid[b-akrnc64vpx]  .k-grid-table,
.flowt-grid[b-akrnc64vpx]  .k-grid-footer-table {
    min-width: var(--flowt-grid-min-w, 0px);
}

/* Largura proporcional (V0.991 spec 0688): acima do piso, as tabelas ocupam a área e o
   table-layout: fixed reparte a sobra entre TODAS as colunas na proporção da largura de cada
   uma — antes, só a elástica crescia. O !important vence o width inline que o Telerik escreve
   ao redimensionar. Cabeçalho, corpo e rodapé recebem a mesma regra, então seguem alinhados.
   Grid com coluna congelada não recebe a classe (deslocamento da célula fixa é em px). */
.flowt-grid--proporcional:not(.flowt-grid--redimensionando)[b-akrnc64vpx]  .k-grid-header-table,
.flowt-grid--proporcional:not(.flowt-grid--redimensionando)[b-akrnc64vpx]  .k-grid-table,
.flowt-grid--proporcional:not(.flowt-grid--redimensionando)[b-akrnc64vpx]  .k-grid-footer-table {
    width: 100% !important;
}

/* Durante o arraste de uma coluna o 100% fica suspenso (wwwroot/js/flowt-grid.js congela as larguras
   desenhadas): com a tabela presa na área, encolher uma coluna só devolvia o espaço às outras. */

/* Default da casa: grid expande ate a altura natural do conteudo; scroll
   fica com o container pai. Neutraliza o overflow:auto que o Telerik
   aplica em .k-grid-content (causava scroll duplicado em paginas longas).
   Opt-in: ScrollMode="Scrollable" no FlowtGrid omite essa classe e
   preserva o comportamento legacy do Telerik. */
.flowt-grid--no-internal-scroll[b-akrnc64vpx]  .k-grid-content,
.flowt-grid--no-internal-scroll[b-akrnc64vpx]  .k-grid-content-virtual {
    overflow-y: visible;
    height: auto;
    max-height: none;
}

/* Sem scroll interno vertical, o header do Telerik não pode reservar a calha
   da scrollbar (padding/scrollbar-gutter): sobra ~17px que deixa o conteúdo
   mais largo que o header e CORTA a última coluna (Ações) à direita. Zera a
   calha no header e no wrapper para o conteúdo alinhar e a coluna de ação
   aparecer inteira. Afeta toda grid no default (todas as telas admin). Spec 0279. */
.flowt-grid--no-internal-scroll[b-akrnc64vpx] {
    /* O Telerik dimensiona a calha do header por esta variável — zerá-la remove a
       reserva de ~17px na raiz, cobrindo os casos em que o override só de
       padding/margin no header não pega (inline style/ordem de cascata). */
    --kendo-scrollbar-width: 0px;
}

.flowt-grid--no-internal-scroll[b-akrnc64vpx]  .k-grid-header {
    padding-inline-end: 0 !important;
    scrollbar-gutter: auto !important;
}

.flowt-grid--no-internal-scroll[b-akrnc64vpx]  .k-grid-header-wrap {
    margin-inline-end: 0 !important;
    border-inline-end-width: 0 !important;
}

/* Durante o loading, o skeleton reserva min-height; a regra acima nao pode
   anular esse min-height. Mantemos o piso do skeleton enquanto loading. */
.flowt-grid--no-internal-scroll.flowt-grid--loading[b-akrnc64vpx]  .k-grid-content,
.flowt-grid--no-internal-scroll.flowt-grid--loading[b-akrnc64vpx]  .k-grid-content-virtual {
    min-height: var(--flowt-grid-skel-h, 360px);
}

/* Reserva altura minima para o skeleton em primeiro load, quando a grid
   ainda nao tem linhas e o .k-grid-content tem altura ~0. Sem isso, nao
   havia onde o skeleton sobrepor. Removida ao sair do loading. */
.flowt-grid--loading[b-akrnc64vpx] {
    min-height: calc(var(--flowt-grid-skel-h, 360px) + 88px);
}

/* Durante o loading, oculta o conteudo real (mantendo a altura quando
   ja existe) e deixa o skeleton fazer o trabalho visual. Header e pager
   do TelerikGrid permanecem visiveis — sao informacao estrutural. */
.flowt-grid--loading[b-akrnc64vpx]  .k-grid-content,
.flowt-grid--loading[b-akrnc64vpx]  .k-grid-content-virtual {
    visibility: hidden;
    min-height: var(--flowt-grid-skel-h, 360px);
}

.flowt-grid__skeleton[b-akrnc64vpx] {
    position: absolute;
    /* O header do TelerikGrid tem altura variavel (~36-44px conforme tema). */
    top: 44px;
    left: 0;
    right: 0;
    /* Deixa o pager visivel; em grids sem pager o usuario nao percebe a folga. */
    bottom: 44px;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
    pointer-events: none;
    overflow: hidden;
}

.flowt-grid__skeleton-sr[b-akrnc64vpx] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.flowt-grid__skeleton-row[b-akrnc64vpx] {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    height: 36px;
    padding: 0 16px;
    flex-shrink: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.flowt-grid__skeleton-cell[b-akrnc64vpx] {
    flex: 1 1 0;
    height: 12px;
    border-radius: 4px;
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.06) 0%,
        rgba(255, 255, 255, 0.12) 50%,
        rgba(255, 255, 255, 0.06) 100%
    );
    background-size: 200% 100%;
    animation: flowt-grid-shimmer-b-akrnc64vpx 1.4s ease-in-out infinite;
}

/* Varia a largura das celulas pra simular conteudo real de tabela
   (codigos curtos, nomes longos, datas, badges, acoes). Padrao
   ciclico em ate 6 celulas. */
.flowt-grid__skeleton-cell:nth-child(6n + 1)[b-akrnc64vpx] { max-width: 72px; }
.flowt-grid__skeleton-cell:nth-child(6n + 3)[b-akrnc64vpx] { max-width: 140px; }
.flowt-grid__skeleton-cell:nth-child(6n + 4)[b-akrnc64vpx] { max-width: 96px; }
.flowt-grid__skeleton-cell:nth-child(6n + 5)[b-akrnc64vpx] { max-width: 110px; }
.flowt-grid__skeleton-cell:nth-child(6n)[b-akrnc64vpx]     { max-width: 80px; }

.flowt-grid__skeleton-row:nth-child(odd) .flowt-grid__skeleton-cell[b-akrnc64vpx] {
    animation-delay: 0.15s;
}

@keyframes flowt-grid-shimmer-b-akrnc64vpx {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Acessibilidade: motion-reduce desliga o shimmer. */
@media (prefers-reduced-motion: reduce) {
    .flowt-grid__skeleton-cell[b-akrnc64vpx] {
        animation: none;
        background: rgba(255, 255, 255, 0.08);
    }
}

/* Falha de leitura: cobre o conteúdo da grid. Cores por token do tema — fallback que não
   existe venceria sempre e travaria o bloco numa cor só. */
.flowt-grid__error[b-akrnc64vpx] {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    text-align: center;
    background: var(--kendo-color-surface);
    color: var(--kendo-color-on-app-surface);
    border: 1px solid var(--kendo-color-border);
    border-radius: var(--kendo-border-radius-md, 4px);
}

.flowt-grid__error-text[b-akrnc64vpx] {
    max-width: 42rem;
}

/* Linha de filtro (FilterMode=FilterRow) em coluna NUMERICA.

   O Telerik desenha na celula tres coisas: o NumericTextBox com as setas de
   incremento, o botao de operador e o de limpar. Em coluna estreita esse
   conjunto nao cabe e sobra quase nada para digitar -- o campo fica "amassado".
   As colunas de codigo do VBS (100-120px) sao o caso visivel disso.

   As setas sao o que sai: ninguem filtra um codigo incrementando de 1 em 1, e
   elas custam ~20px em toda celula de filtro numerica do produto. O min-width
   zero deixa o input encolher dentro do flex em vez de empurrar os botoes. */
.flowt-grid[b-akrnc64vpx]  .k-filtercell .k-input-spinner {
    display: none;
}

.flowt-grid[b-akrnc64vpx]  .k-filtercell .k-numerictextbox {
    min-width: 0;
}
/* /Shared/Tree/ArvoreEditavel.razor.rz.scp.css */
/* Árvore compacta: o índice é navegação, não conteúdo — quanto mais itens couberem
   sem rolagem, menos o leitor perde o mapa do acervo. */

.arvore-editavel[b-mobsg7ppzv]  .k-treeview {
    font-size: .9rem;
}

.arvore-editavel[b-mobsg7ppzv]  .k-treeview-leaf {
    padding-block: 2px;
}

.arvore-editavel__item[b-mobsg7ppzv] {
    display: flex;
    align-items: center;
    gap: .25rem;
    min-width: 0;
    width: 100%;
}

/* O rótulo trunca; o tooltip mostra o nome inteiro. Um índice que quebra linha
   perde o alinhamento da hierarquia, que é o que faz a árvore ser legível. */
.arvore-editavel__label[b-mobsg7ppzv] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* O "+" só aparece no hover da linha: em repouso o índice é uma lista de nomes,
   e um botão por linha viraria ruído em cima do que importa. Foco dentro da linha
   também revela — sem isso o caminho por teclado não enxerga a ação. */
.arvore-editavel__mais[b-mobsg7ppzv] {
    opacity: 0;
    transition: opacity .12s ease-in-out;
    margin-left: auto;
}

.arvore-editavel__item:hover .arvore-editavel__mais[b-mobsg7ppzv],
.arvore-editavel__item:focus-within .arvore-editavel__mais[b-mobsg7ppzv] {
    opacity: 1;
}

.arvore-editavel__mais[b-mobsg7ppzv]  .k-button {
    padding: 0 .3rem;
    min-width: 0;
    line-height: 1.1;
}

/* Linha de criação: ocupa a largura toda da posição onde o item vai nascer. */
.arvore-editavel__novo[b-mobsg7ppzv] {
    width: 100%;
}
