/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* ============================================================
   Layout principal: sidebar + main column (topbar + content).
   ============================================================ */

.tryerp-app[b-x8zraphzth] {
    display: flex;
    min-height: 100vh;
    background: var(--tryerp-bg);
}

.tryerp-sidebar[b-x8zraphzth] {
    width: var(--tryerp-sidebar-w);
    min-width: var(--tryerp-sidebar-w);
    background: linear-gradient(180deg, var(--tryerp-sidebar-bg-start) 0%, var(--tryerp-sidebar-bg-end) 100%);
    color: var(--tryerp-sidebar-text);
    height: 100vh;
    position: sticky;
    top: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.tryerp-main[b-x8zraphzth] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.tryerp-content[b-x8zraphzth] {
    flex: 1;
    padding: 1.5rem 2rem;
    max-width: 100%;
}

/* ---------- Menu retrátil ----------
   Desktop: a barra colapsa para largura 0 e o conteúdo ocupa o lugar. O botão (na TopBar) é o
   caminho de volta — por isso ele fica SEMPRE visível.
   O overflow hidden evita que o conteúdo do menu "vaze" durante a animação. */
.tryerp-sidebar[b-x8zraphzth] {
    transition: width .18s ease, min-width .18s ease, transform .18s ease;
}

.tryerp-app.menu-recolhido .tryerp-sidebar[b-x8zraphzth] {
    width: 0;
    min-width: 0;
}

/* Fundo do drawer: só existe no celular (a media query o liga). */
.tryerp-backdrop[b-x8zraphzth] {
    display: none;
}

/* Respeita quem pediu menos animação no sistema operacional. */
@media (prefers-reduced-motion: reduce) {
    .tryerp-sidebar[b-x8zraphzth] {
        transition: none;
    }
}

/* ---------- Mobile: menu vira drawer sobre o conteúdo ----------
   Antes o menu virava uma faixa de largura total empilhada ACIMA do conteúdo — o usuário rolava
   o menu inteiro para chegar na tela. Agora ele sai da frente por padrão e entra por cima quando
   chamado, que é o comportamento esperado num celular. */
@media (max-width: 767.98px) {
    .tryerp-app[b-x8zraphzth] {
        flex-direction: row;
    }

    .tryerp-sidebar[b-x8zraphzth] {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        height: 100dvh;
        width: min(82vw, var(--tryerp-sidebar-w));
        min-width: 0;
        z-index: 1040;
        transform: translateX(-100%);
        box-shadow: 2px 0 12px rgba(0, 0, 0, .18);
    }

    /* No celular quem manda é o drawer: "recolhido" não esconde nada, "aberto" traz para a tela. */
    .tryerp-app.menu-recolhido .tryerp-sidebar[b-x8zraphzth] {
        width: min(82vw, var(--tryerp-sidebar-w));
    }

    .tryerp-app.menu-aberto .tryerp-sidebar[b-x8zraphzth] {
        transform: translateX(0);
    }

    .tryerp-app.menu-aberto .tryerp-backdrop[b-x8zraphzth] {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1030;
        background: rgba(0, 0, 0, .45);
    }

    .tryerp-content[b-x8zraphzth] {
        padding: 1rem;
    }
}

/* Barra de erro do Blazor: em css/componentes.css (global) — vale também no LoginLayout. */
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* ============================================================
   Sidebar de navegação TryERP
   ============================================================ */

.tryerp-sidebar-nav[b-3smwnipbib] {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: var(--tryerp-sidebar-text);
}

/* ---------- Marca ---------- */

.tryerp-sidebar-brand[b-3smwnipbib] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    padding: 1.15rem 1.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.tryerp-sidebar-logo[b-3smwnipbib] {
    height: 30px;
    width: auto;
    display: block;
}

.tryerp-sidebar-brand-sub[b-3smwnipbib] {
    font-family: var(--tryerp-font-mono);
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--tryerp-sidebar-text);
    opacity: 0.55;
    padding-left: 2px;
}

/* ---------- Scroll container ---------- */

.tryerp-sidebar-scroll[b-3smwnipbib] {
    flex: 1;
    overflow-y: auto;
    padding: 0.5rem 0;
}

.tryerp-sidebar-scroll[b-3smwnipbib]::-webkit-scrollbar {
    width: 6px;
}

.tryerp-sidebar-scroll[b-3smwnipbib]::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 3px;
}

/* ---------- Lista ---------- */

.tryerp-nav-list[b-3smwnipbib] {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* ::deep: o item de Autorizações vem de outro componente (AutorizacoesNavItem) e sem isto
   ficava sem o recuo dos demais. */
[b-3smwnipbib] .tryerp-nav-item, .tryerp-nav-section[b-3smwnipbib] {
    padding: 0 0.5rem;
}

.tryerp-nav-section[b-3smwnipbib] {
    margin-top: 0.25rem;
}

/* ---------- Links ---------- */

[b-3smwnipbib] .tryerp-nav-link {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.55rem 0.75rem;
    margin: 0.1rem 0;
    color: var(--tryerp-sidebar-text);
    border-radius: 6px;
    font-size: 0.875rem;
    text-decoration: none;
    transition: background-color var(--tryerp-transition), color var(--tryerp-transition);
    line-height: 1.2;
}

[b-3smwnipbib] .tryerp-nav-link .bi {
    font-size: 1rem;
    width: 1.1rem;
    text-align: center;
    flex-shrink: 0;
}

[b-3smwnipbib] .tryerp-nav-link:hover {
    background: var(--tryerp-sidebar-hover);
    color: var(--tryerp-sidebar-text-active);
}

[b-3smwnipbib] .tryerp-nav-link.active {
    background: var(--tryerp-sidebar-active);
    color: var(--tryerp-sidebar-text-active);
    font-weight: 500;
}

[b-3smwnipbib] .tryerp-nav-sublink {
    padding-left: 2rem;
    font-size: 0.8125rem;
}

/* ---------- Group toggle (NavGroup) ---------- */

[b-3smwnipbib] .nav-group-toggle {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    padding: 0.55rem 0.75rem;
    background: transparent;
    border: none;
    color: var(--tryerp-sidebar-text);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    border-radius: 6px;
    transition: background-color var(--tryerp-transition), color var(--tryerp-transition);
}

[b-3smwnipbib] .nav-group-toggle:hover {
    background: var(--tryerp-sidebar-hover);
    color: var(--tryerp-sidebar-text-active);
}

[b-3smwnipbib] .nav-group-icon {
    font-size: 0.95rem;
    width: 1.1rem;
    text-align: center;
    flex-shrink: 0;
}

[b-3smwnipbib] .nav-group-label {
    flex: 1;
    text-align: left;
}

[b-3smwnipbib] .nav-group-chevron {
    font-size: 0.7rem;
    opacity: 0.7;
    transition: transform var(--tryerp-transition);
}

[b-3smwnipbib] .nav-group-items {
    display: flex;
    flex-direction: column;
    padding-top: 0.15rem;
}

[b-3smwnipbib] .nav-group-items[hidden] {
    display: none;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-o1ddnl48xx],
.components-reconnect-repeated-attempt-visible[b-o1ddnl48xx],
.components-reconnect-failed-visible[b-o1ddnl48xx],
.components-pause-visible[b-o1ddnl48xx],
.components-resume-failed-visible[b-o1ddnl48xx],
.components-rejoining-animation[b-o1ddnl48xx] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-o1ddnl48xx],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-o1ddnl48xx],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-o1ddnl48xx],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-o1ddnl48xx],
#components-reconnect-modal.components-reconnect-retrying[b-o1ddnl48xx],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-o1ddnl48xx],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-o1ddnl48xx],
#components-reconnect-modal.components-reconnect-failed[b-o1ddnl48xx],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-o1ddnl48xx] {
    display: block;
}


#components-reconnect-modal[b-o1ddnl48xx] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-o1ddnl48xx 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-o1ddnl48xx 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-o1ddnl48xx 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-o1ddnl48xx]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-o1ddnl48xx 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-o1ddnl48xx {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-o1ddnl48xx {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-o1ddnl48xx {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-o1ddnl48xx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-o1ddnl48xx] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-o1ddnl48xx] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-o1ddnl48xx] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-o1ddnl48xx] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-o1ddnl48xx] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-o1ddnl48xx] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-o1ddnl48xx 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-o1ddnl48xx] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-o1ddnl48xx {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Layout/TopBar.razor.rz.scp.css */
/* ============================================================
   TopBar
   ============================================================ */

.tryerp-topbar[b-ztlmgvcykh] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    height: var(--tryerp-topbar-h);
    padding: 0 1.5rem;
    background: var(--tryerp-surface);
    border-bottom: 1px solid var(--tryerp-border);
    position: sticky;
    top: 0;
    z-index: 50;
}

/* Botão do menu (hambúrguer). Alvo de toque de 40px — no celular é o controle mais usado da
   barra, e alvo pequeno em tela sensível vira clique errado. */
.tryerp-menu-toggle[b-ztlmgvcykh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex: 0 0 auto;
    border: 1px solid transparent;
    border-radius: .5rem;
    background: transparent;
    color: var(--tryerp-text-muted);
    font-size: 1.15rem;
    line-height: 1;
}

.tryerp-menu-toggle:hover[b-ztlmgvcykh] {
    background: var(--tryerp-bg);
    color: var(--tryerp-text);
}

.tryerp-menu-toggle:focus-visible[b-ztlmgvcykh] {
    outline: 2px solid var(--tryerp-primary, #0d6efd);
    outline-offset: 2px;
}

.tryerp-topbar-left[b-ztlmgvcykh] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
    min-width: 0;
}

.tryerp-topbar-right[b-ztlmgvcykh] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* Breadcrumbs */

.tryerp-topbar-breadcrumb[b-ztlmgvcykh] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    color: var(--tryerp-text-muted);
    min-width: 0;
}

.tryerp-topbar-breadcrumb .bi-house-door[b-ztlmgvcykh] {
    color: var(--tryerp-text-subtle);
}

.tryerp-breadcrumb-sep[b-ztlmgvcykh] {
    font-size: 0.7rem;
    color: var(--tryerp-text-subtle);
}

.tryerp-breadcrumb-item[b-ztlmgvcykh] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 20rem;
}

.tryerp-breadcrumb-current[b-ztlmgvcykh] {
    color: var(--tryerp-text);
    font-weight: 500;
}

/* Ambiente toggle */

.tryerp-env-toggle[b-ztlmgvcykh] {
    border: none;
    cursor: pointer;
    transition: filter var(--tryerp-transition), transform var(--tryerp-transition);
}

.tryerp-env-toggle:hover[b-ztlmgvcykh] {
    filter: brightness(0.95);
}

.tryerp-env-toggle:focus-visible[b-ztlmgvcykh] {
    outline: 2px solid var(--tryerp-secondary);
    outline-offset: 2px;
}

/* User menu */

.tryerp-user-menu[b-ztlmgvcykh] {
    position: relative;
}

.tryerp-user-trigger[b-ztlmgvcykh] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.3rem 0.6rem 0.3rem 0.3rem;
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--tryerp-radius);
    cursor: pointer;
    color: var(--tryerp-text);
    transition: background-color var(--tryerp-transition), border-color var(--tryerp-transition);
}

.tryerp-user-trigger:hover[b-ztlmgvcykh], .tryerp-user-menu.open .tryerp-user-trigger[b-ztlmgvcykh] {
    background: var(--tryerp-surface-alt);
    border-color: var(--tryerp-border);
}

.tryerp-user-avatar[b-ztlmgvcykh] {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--tryerp-primary);
    color: #FFF;
    font-weight: 600;
    font-size: 0.8rem;
    border-radius: 50%;
    flex-shrink: 0;
}

.tryerp-user-info[b-ztlmgvcykh] {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
    text-align: left;
}

.tryerp-user-name[b-ztlmgvcykh] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--tryerp-text);
}

.tryerp-user-tenant[b-ztlmgvcykh] {
    font-size: 0.7rem;
    color: var(--tryerp-text-muted);
    font-family: var(--tryerp-font-mono);
}

.tryerp-user-chevron[b-ztlmgvcykh] {
    font-size: 0.7rem;
    color: var(--tryerp-text-muted);
    transition: transform var(--tryerp-transition);
}

.tryerp-user-menu.open .tryerp-user-chevron[b-ztlmgvcykh] {
    transform: rotate(180deg);
}

/* Dropdown */

.tryerp-user-dropdown[b-ztlmgvcykh] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 260px;
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: var(--tryerp-radius);
    box-shadow: var(--tryerp-shadow-lg);
    padding: 0.35rem;
    z-index: 60;
}

.tryerp-user-dropdown-header[b-ztlmgvcykh] {
    padding: 0.65rem 0.75rem 0.75rem;
    border-bottom: 1px solid var(--tryerp-border);
    margin-bottom: 0.35rem;
}

.tryerp-user-dropdown-name[b-ztlmgvcykh] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: 0.9rem;
}

.tryerp-user-dropdown-email[b-ztlmgvcykh] {
    font-size: 0.75rem;
    color: var(--tryerp-text-muted);
    word-break: break-all;
}

.tryerp-user-dropdown-section[b-ztlmgvcykh] {
    padding: 0.25rem 0;
}

.tryerp-user-dropdown-label[b-ztlmgvcykh] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--tryerp-text-subtle);
    padding: 0.35rem 0.75rem;
}

.tryerp-user-dropdown-option[b-ztlmgvcykh] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: transparent;
    border: none;
    border-radius: var(--tryerp-radius-sm);
    cursor: pointer;
    font-size: 0.875rem;
    color: var(--tryerp-text);
    text-decoration: none;
    transition: background-color var(--tryerp-transition);
}

.tryerp-user-dropdown-option:hover[b-ztlmgvcykh] {
    background: var(--tryerp-surface-alt);
    color: var(--tryerp-text);
}

.tryerp-user-dropdown-option.ativo[b-ztlmgvcykh] {
    background: var(--tryerp-primary-soft);
    color: var(--tryerp-primary);
    font-weight: 500;
}

.tryerp-user-dropdown-option.ativo .bi[b-ztlmgvcykh] {
    color: var(--tryerp-primary);
}

.tryerp-user-dropdown-option .ms-auto[b-ztlmgvcykh] {
    margin-left: auto;
}

.tryerp-user-dropdown-divider[b-ztlmgvcykh] {
    height: 1px;
    background: var(--tryerp-border);
    margin: 0.35rem 0;
}

.tryerp-user-dropdown-danger[b-ztlmgvcykh] {
    color: var(--tryerp-danger);
}

.tryerp-user-dropdown-danger:hover[b-ztlmgvcykh] {
    background: var(--tryerp-danger-soft);
    color: var(--tryerp-danger);
}

/* Compacto em telas pequenas */

@media (max-width: 640px) {
    .tryerp-topbar[b-ztlmgvcykh] {
        padding: 0 0.75rem;
    }

    .tryerp-user-info[b-ztlmgvcykh] {
        display: none;
    }
}

/* Operador do ERP ao lado do tenant. Discreto: é informação de conferência, não de
   navegação — quem precisa dela está checando "é esse mesmo?". */
.tryerp-user-operador[b-ztlmgvcykh] {
    opacity: .85;
}

.tryerp-user-operador-detalhe[b-ztlmgvcykh] {
    display: flex;
    gap: .5rem;
    align-items: flex-start;
    padding: .35rem .75rem .5rem;
    font-size: .8125rem;
    line-height: 1.35;
}

.tryerp-user-operador-detalhe .bi[b-ztlmgvcykh] {
    flex: 0 0 auto;
    line-height: 1.4;
}

/* Sem vínculo é um aviso, não um dado: a pessoa perde dashboards e autorizações sem
   nenhuma mensagem de erro em lugar nenhum. */
.tryerp-user-operador-sem[b-ztlmgvcykh] {
    color: var(--bs-warning-text-emphasis, #997404);
}
/* /Components/Pages/Autorizacoes/Autorizacoes.razor.rz.scp.css */
/* Tela pensada para o celular primeiro: é onde ela vai ser usada de verdade — o
   supervisor fora da empresa, recebendo o link. O desktop herda o mesmo layout
   com a largura limitada, em vez do contrário. */

.aut-card[b-qr44rwqir2] {
    margin-bottom: .75rem;
    cursor: pointer;
    transition: border-color .12s ease, transform .12s ease;
}

.aut-card:hover[b-qr44rwqir2],
.aut-card:focus-visible[b-qr44rwqir2] {
    border-color: var(--tryerp-primary, #0d6efd);
}

.aut-card:active[b-qr44rwqir2] {
    transform: scale(.995);
}

/* O valor é o primeiro dado que orienta a decisão — liberar R$ 300 e liberar
   R$ 30.000 são decisões diferentes. Por isso ele domina o cartão. */
.aut-valor[b-qr44rwqir2] {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.2;
}

.aut-quando[b-qr44rwqir2] {
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
    white-space: nowrap;
}

.aut-sub[b-qr44rwqir2] {
    font-size: .85rem;
    color: var(--bs-secondary-color, #6c757d);
}

.aut-parceiro[b-qr44rwqir2] {
    font-weight: 500;
    margin-top: .25rem;
}

.aut-meta[b-qr44rwqir2] {
    font-size: .8rem;
    color: var(--bs-secondary-color, #6c757d);
    margin-top: .15rem;
}

.aut-motivos[b-qr44rwqir2],
.aut-itens[b-qr44rwqir2] {
    list-style: none;
    padding: 0;
    margin: .6rem 0 0;
}

.aut-motivos li[b-qr44rwqir2] {
    display: flex;
    gap: .5rem;
    align-items: flex-start;
    font-size: .875rem;
    padding: .15rem 0;
}

.aut-motivos li .bi[b-qr44rwqir2] {
    color: var(--bs-warning-text-emphasis, #997404);
    flex: 0 0 auto;
    line-height: 1.5;
}

.aut-motivos-resumo li[b-qr44rwqir2] {
    font-size: .825rem;
}

.aut-itens li[b-qr44rwqir2] {
    font-size: .875rem;
    padding: .2rem 0;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}

.aut-itens li:first-child[b-qr44rwqir2] {
    border-top: 0;
}

/* Botões grandes e separados: é um toque com dedo, irreversível, muitas vezes na
   rua. Empilhados no celular para não errar o alvo; lado a lado quando há espaço. */
.aut-acoes[b-qr44rwqir2] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin-top: 1rem;
}

.aut-acoes .btn[b-qr44rwqir2] {
    width: 100%;
}

@media (min-width: 576px) {
    .aut-acoes[b-qr44rwqir2] {
        flex-direction: row;
    }

    .aut-acoes .btn[b-qr44rwqir2] {
        width: auto;
        min-width: 11rem;
    }
}

/* Leitura confortável no desktop sem transformar a tela noutra coisa. */
@media (min-width: 992px) {
    .aut-detalhe[b-qr44rwqir2],
    .aut-card[b-qr44rwqir2] {
        max-width: 46rem;
    }
}

/* Bloco das travadas — exceção, não rotina: discreto de propósito, para não competir
   com a fila que o supervisor abriu a tela para ver. */
.aut-travadas[b-qr44rwqir2] {
    opacity: .92;
}

.aut-travada[b-qr44rwqir2] {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    padding: .5rem 0;
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}

.aut-travada:first-of-type[b-qr44rwqir2] {
    border-top: 0;
}

.aut-travada > button[b-qr44rwqir2] {
    margin-left: auto;
}
/* /Components/Pages/Cobranca/Cobranca.razor.rz.scp.css */
/* Cartões de topo: os três números que respondem "a régua está calibrada?" antes de
   qualquer tabela. */
.cob-cartoes[b-40453l33v5] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
    gap: .75rem;
}

.cob-cartao[b-40453l33v5] {
    margin: 0;
}

.cob-rotulo[b-40453l33v5] {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--bs-secondary-color, #6c757d);
}

.cob-numero[b-40453l33v5] {
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1.2;
}

.cob-sub[b-40453l33v5] {
    font-size: .85rem;
}

/* Próximos avisos: estado da régua, período e a lista por dia. */
.cob-regua[b-40453l33v5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.cob-filtros[b-40453l33v5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1.25rem;
    margin: 1rem 0;
}

.cob-dia[b-40453l33v5] {
    font-size: 1rem;
    font-weight: 600;
    margin: 1.25rem 0 .5rem;
    text-transform: capitalize;
}

.cob-detalhe > td[b-40453l33v5] {
    background: var(--tryerp-surface-muted, #f8f9fa);
    padding: .5rem .75rem;
}

.cob-parcelas[b-40453l33v5] {
    font-size: .85rem;
}

/* Cabeçalho da mensagem, como um cliente de e-mail mostraria. */
.cob-cabecalho[b-40453l33v5] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: .25rem 1rem;
    margin: 1rem 0;
    font-size: .9rem;
}

.cob-cabecalho dt[b-40453l33v5] {
    color: var(--bs-secondary-color, #6c757d);
    font-weight: 500;
}

.cob-cabecalho dd[b-40453l33v5] {
    margin: 0;
    overflow-wrap: anywhere;
}

/* O e-mail renderizado. Fundo branco sempre: é assim que o cliente vai ver, inclusive no tema escuro. */
.cob-previa-frame[b-40453l33v5] {
    width: 100%;
    height: 70vh;
    min-height: 420px;
    border: 1px solid var(--tryerp-border, #dee2e6);
    border-radius: .5rem;
    background: #fff;
}

@media (max-width: 767.98px) {
    .cob-cabecalho[b-40453l33v5] {
        grid-template-columns: 1fr;
    }

    .cob-cabecalho dd[b-40453l33v5] {
        margin-bottom: .35rem;
    }
}
/* /Components/Pages/Cobranca/EditorModelosCobranca.razor.rz.scp.css */
.mod-topo[b-azpioomzm5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin-bottom: 1rem;
}

.mod-marcador[b-azpioomzm5],
.mod-cliente[b-azpioomzm5] {
    width: auto;
    max-width: 100%;
}

/* O HTML do modelo: monoespaçado e alto o bastante para o modelo do ERP (~60 linhas) sem rolar. */
.mod-html[b-azpioomzm5] {
    font-family: Consolas, "Cascadia Mono", monospace;
    font-size: .8rem;
    line-height: 1.45;
    min-height: 26rem;
    resize: vertical;
    white-space: pre;
    overflow-wrap: normal;
    overflow-x: auto;
}

.mod-acoes[b-azpioomzm5] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1rem;
}

.mod-cabecalho[b-azpioomzm5] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: .25rem 1rem;
    margin: 0 0 .75rem;
    font-size: .85rem;
}

.mod-cabecalho dt[b-azpioomzm5] {
    color: var(--bs-secondary-color, #6c757d);
    font-weight: 500;
}

.mod-cabecalho dd[b-azpioomzm5] {
    margin: 0;
    overflow-wrap: anywhere;
}

/* Fundo branco sempre: é como o cliente vê, inclusive no tema escuro. */
.mod-frame[b-azpioomzm5] {
    width: 100%;
    height: 32rem;
    border: 1px solid var(--tryerp-border, #dee2e6);
    border-radius: .5rem;
    background: #fff;
}

@media (max-width: 767.98px) {
    .mod-html[b-azpioomzm5] {
        min-height: 16rem;
    }

    .mod-frame[b-azpioomzm5] {
        height: 60vh;
    }

    .mod-cabecalho[b-azpioomzm5] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Dashboards/Dashboards.razor.rz.scp.css */
/* ============================================================
   Tela de dashboards. Prioridade do layout: a dashboard é o conteúdo — tudo mais é moldura e
   deve ceder espaço. Por isso o cabeçalho é compacto (sem PageHeader) e a lista é recolhível.
   ============================================================ */

.tryerp-dash-topo[b-5gpega5zfb] {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: .6rem;
    flex-wrap: wrap;
}

.tryerp-dash-titulo[b-5gpega5zfb] {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: 1.05rem;
    font-weight: 600;
    min-width: 0;
    /* Nome longo de dashboard não pode empurrar os botões para fora. */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tryerp-dash-acoes[b-5gpega5zfb] {
    display: flex;
    gap: .4rem;
    margin-left: auto;
}

/* O seletor só existe no mobile (ver media query). */
.tryerp-dash-seletor[b-5gpega5zfb] { display: none; }

.tryerp-dash-layout[b-5gpega5zfb] {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: .75rem;
    align-items: stretch;
    /* dvh (e não vh) por causa da barra do navegador no celular, que come altura e deixa a
       dashboard cortada quando se usa vh. */
    height: calc(100dvh - 150px);
    min-height: 420px;
    transition: grid-template-columns .18s ease;
}

/* Lista recolhida: a dashboard ganha os 250px + gap. */
.tryerp-dash-layout.lista-recolhida[b-5gpega5zfb] {
    grid-template-columns: 0 1fr;
    gap: 0;
}

.tryerp-dash-layout.lista-recolhida .tryerp-dash-lista[b-5gpega5zfb] {
    opacity: 0;
    pointer-events: none;
    overflow: hidden;
}

.tryerp-dash-lista[b-5gpega5zfb] {
    overflow-y: auto;
    margin: 0;
    transition: opacity .12s ease;
}

.tryerp-dash-grupo[b-5gpega5zfb] {
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--bs-secondary-color, #6c757d);
    margin: .7rem 0 .3rem;
}

.tryerp-dash-grupo:first-child[b-5gpega5zfb] { margin-top: 0; }

.tryerp-dash-item[b-5gpega5zfb] {
    display: flex;
    align-items: center;
    gap: .5rem;
    width: 100%;
    padding: .35rem .5rem;
    border: 0;
    border-radius: .375rem;
    background: transparent;
    text-align: left;
    font-size: .85rem;
    line-height: 1.25;
    color: inherit;
}

.tryerp-dash-item:hover[b-5gpega5zfb] { background: rgba(13, 110, 253, .08); }

.tryerp-dash-item.ativo[b-5gpega5zfb] {
    background: rgba(13, 110, 253, .14);
    font-weight: 600;
}

.tryerp-dash-viewer[b-5gpega5zfb] {
    padding: 0;
    overflow: hidden;
    margin: 0;
    min-width: 0; /* sem isto o iframe impede a coluna de encolher no grid */
}

.tryerp-dash-viewer iframe[b-5gpega5zfb] {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* Em tela cheia o card não deve ter borda/raio — ocupa a tela inteira. */
.tryerp-dash-viewer:fullscreen[b-5gpega5zfb] {
    border-radius: 0;
    border: 0;
}

/* ---------- Telas estreitas ----------
   No celular não há espaço para lista + dashboard lado a lado: a lista some e a escolha passa a
   ser pelo <select> do cabeçalho (com optgroup = os grupos do ERP). A dashboard fica com a
   largura inteira e altura cheia. */
@media (max-width: 900px) {
    .tryerp-dash-layout[b-5gpega5zfb],
    .tryerp-dash-layout.lista-recolhida[b-5gpega5zfb] {
        grid-template-columns: 1fr;
        gap: 0;
        height: calc(100dvh - 190px);
    }

    .tryerp-dash-lista[b-5gpega5zfb] { display: none; }

    .tryerp-dash-seletor[b-5gpega5zfb] {
        display: block;
        max-width: 100%;
        flex: 1 1 100%;
        order: 3;
    }

    /* Recolher a lista não faz sentido quando ela não existe. */
    .tryerp-dash-so-desktop[b-5gpega5zfb] { display: none; }

    /* Só o ícone nos botões — o texto rouba largura preciosa. */
    .tryerp-dash-rotulo[b-5gpega5zfb] { display: none; }

    .tryerp-dash-acoes[b-5gpega5zfb] { margin-left: auto; }
}
/* /Components/Pages/Financeiro/CentrosCusto.razor.rz.scp.css */
/* ==========================================================
   Página /centros-custo — padrão visual coerente com /nfe e
   /contas-receber. Card mobile simplificado (sem dropdown de
   ações — clique no card já abre modal de edição).
   ========================================================== */

[b-npodyc7mjn] .tryerp-grid {
    border: none;
    border-radius: 0;
}

[b-npodyc7mjn] .tryerp-grid .dxbl-grid-header-row th,
[b-npodyc7mjn] .tryerp-grid .dxbl-grid-header-row .dxbl-grid-header-cell {
    font-size: var(--tryerp-text-label);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tryerp-text-subtle);
    background: var(--tryerp-surface-alt);
}

[b-npodyc7mjn] .tryerp-grid .dxbl-grid-data-row td {
    font-size: var(--tryerp-text-body);
    color: var(--tryerp-text);
}

[b-npodyc7mjn] .tryerp-grid .tryerp-mono {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
    color: var(--tryerp-primary);
    font-weight: 500;
}

[b-npodyc7mjn] .tryerp-grid .dxbl-grid-data-row:hover {
    background: var(--tryerp-surface-alt) !important;
}

/* Empty state */
.tryerp-empty-state[b-npodyc7mjn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    background: var(--tryerp-surface);
}

    .tryerp-empty-state .bi[b-npodyc7mjn] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-npodyc7mjn] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: var(--tryerp-text-body);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-npodyc7mjn] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* Cards mobile (<768px) */
.tryerp-cc-cards[b-npodyc7mjn] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--tryerp-surface-alt);
}

.tryerp-cc-card[b-npodyc7mjn] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    overflow: hidden;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.15s ease;
}

    .tryerp-cc-card:active[b-npodyc7mjn],
    .tryerp-cc-card:hover[b-npodyc7mjn] {
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    }

.tryerp-cc-card-header[b-npodyc7mjn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.875rem;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
}

    .tryerp-cc-card-header strong[b-npodyc7mjn] {
        font-size: 1rem;
        color: var(--tryerp-primary);
    }

.tryerp-cc-card-body[b-npodyc7mjn] {
    padding: 0.625rem 0.875rem;
    font-size: var(--tryerp-text-body);
    color: var(--tryerp-text);
    word-break: break-word;
}
/* /Components/Pages/Financeiro/ContasReceber.razor.rz.scp.css */
/* ==========================================================
   Página /contas-receber — espelha o padrão visual de /nfe
   (Index.razor.css). Classes específicas tryerp-fatura-card*
   pra evitar colisão com o módulo NFe e permitir tweaks
   independentes (ex.: cor dominante por tipo).
   ========================================================== */

[b-e1s5r03ngv] .tryerp-grid {
    border: none;
    border-radius: 0;
}

[b-e1s5r03ngv] .tryerp-grid .dxbl-grid-header-row th,
[b-e1s5r03ngv] .tryerp-grid .dxbl-grid-header-row .dxbl-grid-header-cell {
    font-size: var(--tryerp-text-label);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tryerp-text-subtle);
    background: var(--tryerp-surface-alt);
}

[b-e1s5r03ngv] .tryerp-grid .dxbl-grid-data-row td {
    font-size: var(--tryerp-text-body);
    color: var(--tryerp-text);
}

[b-e1s5r03ngv] .tryerp-grid .tryerp-mono {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
    color: var(--tryerp-primary);
    font-weight: 500;
}

[b-e1s5r03ngv] .tryerp-grid .dxbl-grid-data-row:hover {
    background: var(--tryerp-surface-alt) !important;
}

/* Empty state */
.tryerp-empty-state[b-e1s5r03ngv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    background: var(--tryerp-surface);
}

    .tryerp-empty-state .bi[b-e1s5r03ngv] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-e1s5r03ngv] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: var(--tryerp-text-body);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-e1s5r03ngv] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* Coluna Ações — dropdown <details>/<summary> nativo */
[b-e1s5r03ngv] .tryerp-row-actions {
    position: relative;
    display: inline-block;
}

    [b-e1s5r03ngv] .tryerp-row-actions > summary {
        list-style: none;
        cursor: pointer;
        user-select: none;
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.25rem 0.625rem;
        border: 1px solid var(--tryerp-border);
        border-radius: 0.375rem;
        background: var(--tryerp-surface);
        font-size: var(--tryerp-text-body-sm);
        color: var(--tryerp-text);
        line-height: 1;
        transition: background 0.15s ease, border-color 0.15s ease;
    }

        [b-e1s5r03ngv] .tryerp-row-actions > summary::-webkit-details-marker {
            display: none;
        }

        [b-e1s5r03ngv] .tryerp-row-actions > summary:hover,
        [b-e1s5r03ngv] .tryerp-row-actions[open] > summary {
            background: var(--tryerp-surface-alt);
            border-color: var(--tryerp-primary);
        }

[b-e1s5r03ngv] .tryerp-grid .dxbl-grid-data-row,
[b-e1s5r03ngv] .tryerp-grid .dxbl-grid-data-row td,
[b-e1s5r03ngv] .tryerp-grid .dxbl-grid-table-cell {
    overflow: visible !important;
}

[b-e1s5r03ngv] .tryerp-row-actions-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    z-index: 1050;
    min-width: 220px;
    display: flex;
    flex-direction: column;
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
    padding: 0.25rem 0;
}

    [b-e1s5r03ngv] .tryerp-row-actions-menu button {
        border: none;
        background: transparent;
        text-align: left;
        padding: 0.5rem 0.875rem;
        font-size: var(--tryerp-text-body-sm);
        color: var(--tryerp-text);
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 0.5rem;
        white-space: nowrap;
        transition: background 0.1s ease;
    }

        [b-e1s5r03ngv] .tryerp-row-actions-menu button:hover:not(:disabled) {
            background: var(--tryerp-surface-alt);
        }

        [b-e1s5r03ngv] .tryerp-row-actions-menu button .bi {
            font-size: 1rem;
            color: var(--tryerp-text-muted);
            width: 1.25rem;
            text-align: center;
        }

/* ==========================================================
   Cards mobile (<768px). Mesmo padrão visual de tryerp-nfe-card
   pra manter coerência entre /nfe e /contas-receber.
   ========================================================== */

.tryerp-fatura-cards[b-e1s5r03ngv] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--tryerp-surface-alt);
}

.tryerp-fatura-card[b-e1s5r03ngv] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.15s ease;
}

    .tryerp-fatura-card:active[b-e1s5r03ngv],
    .tryerp-fatura-card:hover[b-e1s5r03ngv] {
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    }

.tryerp-fatura-card-header[b-e1s5r03ngv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.625rem 0.875rem;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
    cursor: pointer;
}

.tryerp-fatura-card-id[b-e1s5r03ngv] {
    display: flex;
    align-items: baseline;
    gap: 0.375rem;
}

    .tryerp-fatura-card-id strong[b-e1s5r03ngv] {
        font-size: 1.125rem;
        color: var(--tryerp-primary);
    }

.tryerp-fatura-card-body[b-e1s5r03ngv] {
    padding: 0.625rem 0.875rem;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    cursor: pointer;
}

.tryerp-fatura-card-row[b-e1s5r03ngv] {
    display: flex;
    align-items: center;
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text);
}

    .tryerp-fatura-card-row.tryerp-fatura-card-meta[b-e1s5r03ngv] {
        justify-content: space-between;
        gap: 0.5rem;
        color: var(--tryerp-text-muted);
    }

.tryerp-fatura-card-dest[b-e1s5r03ngv] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
}

.tryerp-fatura-card-actions[b-e1s5r03ngv] {
    border-top: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface);
}

    .tryerp-fatura-card-actions > summary[b-e1s5r03ngv] {
        padding: 0.5rem 0.875rem;
        cursor: pointer;
        list-style: none;
        display: flex;
        align-items: center;
        gap: 0.5rem;
        font-weight: 500;
        font-size: var(--tryerp-text-body-sm);
        color: var(--tryerp-text-muted);
        user-select: none;
    }

        .tryerp-fatura-card-actions > summary[b-e1s5r03ngv]::-webkit-details-marker {
            display: none;
        }

        .tryerp-fatura-card-actions > summary[b-e1s5r03ngv]::after {
            content: "▾";
            margin-left: auto;
            transition: transform 0.15s ease;
        }

    .tryerp-fatura-card-actions[open] > summary[b-e1s5r03ngv]::after {
        transform: rotate(180deg);
    }

.tryerp-fatura-card-actions-list[b-e1s5r03ngv] {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--tryerp-border);
}

    .tryerp-fatura-card-actions-list .btn[b-e1s5r03ngv] {
        text-align: left;
        padding: 0.625rem 0.875rem;
        border-radius: 0;
        border-bottom: 1px solid var(--tryerp-border);
        text-decoration: none;
    }

        .tryerp-fatura-card-actions-list .btn:last-child[b-e1s5r03ngv] {
            border-bottom: none;
        }
/* /Components/Pages/Home.razor.rz.scp.css */
/* ============================================================
   Página inicial. Classes só desta tela (R106: CSS isolado é para o que é do próprio componente).
   Faixa de destaque no navy da marca (o mesmo gradiente da barra lateral), números do mês,
   pendências num painel compacto e os últimos documentos.
   ============================================================ */

/* ---------- Faixa de destaque ---------- */

.tryerp-inicio-hero[b-98z6oo3chs] {
    /* Tons de texto/estado sobre o navy — os do tema são para fundo claro. */
    --inicio-texto-suave: var(--tryerp-on-primary-container);
    --inicio-bom: #86efac;
    --inicio-ruim: #fca5a5;

    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    padding: 1.75rem 2rem;
    margin-bottom: 1.25rem;
    border-radius: 16px;
    color: #fff;
    background:
        radial-gradient(90% 120% at 100% 0%, rgba(74, 100, 145, 0.55) 0%, rgba(74, 100, 145, 0) 60%),
        linear-gradient(135deg, var(--tryerp-sidebar-bg-start) 0%, var(--tryerp-sidebar-bg-end) 100%);
    box-shadow: var(--tryerp-shadow-lg);
}

/* Trama de pontos, sumindo para a esquerda — textura, não informação. */
.tryerp-inicio-hero[b-98z6oo3chs]::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background-image: radial-gradient(rgba(255, 255, 255, 0.09) 1px, transparent 1px);
    background-size: 18px 18px;
    -webkit-mask-image: linear-gradient(to left, #000 0%, transparent 75%);
    mask-image: linear-gradient(to left, #000 0%, transparent 75%);
}

.tryerp-inicio-hero.com-numero[b-98z6oo3chs] {
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    align-items: center;
}

.tryerp-inicio-hero-texto[b-98z6oo3chs] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.tryerp-inicio-data[b-98z6oo3chs] {
    font-family: var(--tryerp-font-mono);
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--inicio-texto-suave);
}

.tryerp-inicio-saudacao[b-98z6oo3chs] {
    margin: 0;
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: #fff;
}

.tryerp-inicio-frase[b-98z6oo3chs] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0.15rem 0 0;
    font-size: 15px;
    color: var(--inicio-texto-suave);
}

.tryerp-inicio-frase-ok[b-98z6oo3chs] { color: var(--inicio-bom); }
.tryerp-inicio-frase-alerta[b-98z6oo3chs] { color: #fcd34d; }

.tryerp-inicio-acoes[b-98z6oo3chs] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 1.1rem;
}

.tryerp-inicio-acoes:empty[b-98z6oo3chs] { display: none; }

.tryerp-inicio-acao[b-98z6oo3chs] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 40px;
    padding: 0.5rem 1rem;
    border-radius: var(--tryerp-radius);
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font-weight: 600;
    font-size: var(--tryerp-text-body);
    text-decoration: none;
    transition: background var(--tryerp-transition), transform var(--tryerp-transition), box-shadow var(--tryerp-transition);
}

.tryerp-inicio-acao:hover[b-98z6oo3chs] {
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    transform: translateY(-1px);
}

.tryerp-inicio-acao:focus-visible[b-98z6oo3chs] {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

.tryerp-inicio-acao-primaria[b-98z6oo3chs] {
    background: #fff;
    border-color: #fff;
    color: var(--tryerp-primary);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}

.tryerp-inicio-acao-primaria:hover[b-98z6oo3chs] {
    background: var(--tryerp-primary-soft);
    color: var(--tryerp-primary);
}

/* ---------- Número do mês + barras ---------- */

.tryerp-inicio-hero-numero[b-98z6oo3chs] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 1.1rem 1.25rem 0.9rem;
    border-radius: var(--tryerp-radius-lg);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(2px);
}

.tryerp-inicio-hero-rotulo[b-98z6oo3chs] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: var(--tryerp-text-body-sm);
    font-weight: 600;
    color: var(--inicio-texto-suave);
}

.tryerp-inicio-hero-ambiente[b-98z6oo3chs] {
    padding: 0.1rem 0.5rem;
    border-radius: var(--tryerp-radius-pill);
    background: rgba(252, 211, 77, 0.16);
    color: #fcd34d;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* Número de destaque: sans do sistema, algarismos proporcionais (tabular fica frouxo em tamanho grande). */
.tryerp-inicio-hero-valor[b-98z6oo3chs] {
    margin-top: 0.3rem;
    font-size: clamp(1.9rem, 3.4vw, 2.6rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: #fff;
    overflow-wrap: anywhere;
}

.tryerp-inicio-hero-delta[b-98z6oo3chs] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.45rem;
    font-size: var(--tryerp-text-body-sm);
    color: var(--inicio-texto-suave);
}

.tryerp-inicio-delta-escuro[b-98z6oo3chs] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    padding: 0.1rem 0.5rem;
    border-radius: var(--tryerp-radius-pill);
    font-weight: 700;
    background: rgba(255, 255, 255, 0.1);
}

.tryerp-inicio-delta-escuro.bom[b-98z6oo3chs] { color: var(--inicio-bom); }
.tryerp-inicio-delta-escuro.ruim[b-98z6oo3chs] { color: var(--inicio-ruim); }

.tryerp-inicio-barras[b-98z6oo3chs] {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    height: 104px;
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
}

.tryerp-inicio-barra-col[b-98z6oo3chs] {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    border-radius: var(--tryerp-radius-sm);
    outline: none;
    cursor: default;
}

.tryerp-inicio-barra-trilho[b-98z6oo3chs] {
    flex: 1 1 auto;
    width: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    /* linha de base: fio discreto de onde todas as barras nascem */
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

/* Barra: no máximo 24px, ponta arredondada 4px, base reta. */
.tryerp-inicio-barra[b-98z6oo3chs] {
    position: relative;
    width: 100%;
    max-width: 24px;
    min-height: 2px;
    border-radius: 4px 4px 0 0;
    background: rgba(255, 255, 255, 0.34);
    transition: background var(--tryerp-transition);
}

.tryerp-inicio-barra-col.atual .tryerp-inicio-barra[b-98z6oo3chs] { background: #fff; }

.tryerp-inicio-barra-col:hover .tryerp-inicio-barra[b-98z6oo3chs],
.tryerp-inicio-barra-col:focus-visible .tryerp-inicio-barra[b-98z6oo3chs] { background: rgba(255, 255, 255, 0.72); }

.tryerp-inicio-barra-col.atual:hover .tryerp-inicio-barra[b-98z6oo3chs],
.tryerp-inicio-barra-col.atual:focus-visible .tryerp-inicio-barra[b-98z6oo3chs] { background: #fff; }

.tryerp-inicio-barra-dica[b-98z6oo3chs] {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    padding: 0.25rem 0.5rem;
    border-radius: var(--tryerp-radius-sm);
    background: #fff;
    color: var(--tryerp-primary);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    box-shadow: var(--tryerp-shadow-md);
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--tryerp-transition);
    z-index: 2;
}

.tryerp-inicio-barra-col:hover .tryerp-inicio-barra-dica[b-98z6oo3chs],
.tryerp-inicio-barra-col:focus-visible .tryerp-inicio-barra-dica[b-98z6oo3chs] { opacity: 1; }

/* A dica das pontas não sai pela lateral da faixa. */
.tryerp-inicio-barra-col:first-child .tryerp-inicio-barra-dica[b-98z6oo3chs] { left: 0; transform: none; }
.tryerp-inicio-barra-col:last-child .tryerp-inicio-barra-dica[b-98z6oo3chs] { left: auto; right: 0; transform: none; }

.tryerp-inicio-barra-mes[b-98z6oo3chs] {
    font-family: var(--tryerp-font-mono);
    font-size: 11px;
    color: var(--inicio-texto-suave);
    text-transform: lowercase;
}

.tryerp-inicio-barra-col.atual .tryerp-inicio-barra-mes[b-98z6oo3chs] {
    color: #fff;
    font-weight: 700;
}

/* ---------- Esqueleto de carga ---------- */

.tryerp-inicio-esqueleto[b-98z6oo3chs] {
    display: block;
    border-radius: var(--tryerp-radius-sm);
    background: linear-gradient(90deg, var(--tryerp-surface-container) 25%, var(--tryerp-surface-container-high) 50%, var(--tryerp-surface-container) 75%);
    background-size: 200% 100%;
    animation: tryerp-inicio-brilho-b-98z6oo3chs 1.3s ease-in-out infinite;
}

.tryerp-inicio-esqueleto.claro[b-98z6oo3chs] {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.07) 25%, rgba(255, 255, 255, 0.16) 50%, rgba(255, 255, 255, 0.07) 75%);
    background-size: 200% 100%;
}

@keyframes tryerp-inicio-brilho-b-98z6oo3chs {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .tryerp-inicio-esqueleto[b-98z6oo3chs] { animation: none; }
    .tryerp-inicio-acao[b-98z6oo3chs],
    .tryerp-inicio-kpi[b-98z6oo3chs] { transition: none; }
}

/* ---------- Erro de carga ---------- */

.tryerp-inicio-erro[b-98z6oo3chs] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1.25rem;
    border-radius: var(--tryerp-radius-lg);
    border: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface);
    color: var(--tryerp-text-muted);
}

/* ---------- Indicadores do mês ---------- */

.tryerp-inicio-kpis[b-98z6oo3chs] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.tryerp-inicio-kpi[b-98z6oo3chs] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
    padding: 1.1rem 1.2rem;
    border-radius: var(--tryerp-radius-lg);
    border: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface);
    box-shadow: var(--tryerp-shadow-sm);
    color: var(--tryerp-text);
    text-decoration: none;
    transition: transform var(--tryerp-transition), box-shadow var(--tryerp-transition), border-color var(--tryerp-transition);
}

a.tryerp-inicio-kpi:hover[b-98z6oo3chs] {
    border-color: var(--tryerp-secondary);
    box-shadow: var(--tryerp-shadow-md);
    color: var(--tryerp-text);
    transform: translateY(-2px);
}

a.tryerp-inicio-kpi:focus-visible[b-98z6oo3chs] {
    outline: 2px solid var(--tryerp-primary);
    outline-offset: 2px;
}

.tryerp-inicio-kpi-topo[b-98z6oo3chs] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.tryerp-inicio-kpi-icone[b-98z6oo3chs],
.tryerp-inicio-doc-icone[b-98z6oo3chs] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    font-size: 1.05rem;
}

.tryerp-inicio-kpi-icone.primario[b-98z6oo3chs],
.tryerp-inicio-doc-icone.primario[b-98z6oo3chs] { background: var(--tryerp-primary-soft); color: var(--tryerp-primary); }
.tryerp-inicio-kpi-icone.secundario[b-98z6oo3chs],
.tryerp-inicio-doc-icone.secundario[b-98z6oo3chs] { background: var(--tryerp-tertiary-container); color: var(--tryerp-on-tertiary-container); }
.tryerp-inicio-kpi-icone.perigo[b-98z6oo3chs] { background: var(--tryerp-danger-soft); color: var(--tryerp-danger-on-soft); }
.tryerp-inicio-kpi-icone.sucesso[b-98z6oo3chs] { background: var(--tryerp-success-soft); color: var(--tryerp-success-on-soft); }

.tryerp-inicio-kpi-rotulo[b-98z6oo3chs] {
    flex: 1;
    min-width: 0;
    font-size: var(--tryerp-text-body-sm);
    font-weight: 600;
    color: var(--tryerp-text-muted);
}

.tryerp-inicio-kpi-seta[b-98z6oo3chs] {
    color: var(--tryerp-text-subtle);
    transition: transform var(--tryerp-transition), color var(--tryerp-transition);
}

a.tryerp-inicio-kpi:hover .tryerp-inicio-kpi-seta[b-98z6oo3chs] {
    color: var(--tryerp-primary);
    transform: translateX(3px);
}

.tryerp-inicio-kpi-valor[b-98z6oo3chs] {
    margin-top: 0.35rem;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.15;
    color: var(--tryerp-text);
    overflow-wrap: anywhere;
}

.tryerp-inicio-kpi-linha[b-98z6oo3chs] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem 0.6rem;
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

.tryerp-inicio-delta[b-98z6oo3chs] {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.5rem;
    border-radius: var(--tryerp-radius-pill);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.tryerp-inicio-delta.bom[b-98z6oo3chs] { background: var(--tryerp-success-soft); color: var(--tryerp-success-on-soft); }
.tryerp-inicio-delta.ruim[b-98z6oo3chs] { background: var(--tryerp-danger-soft); color: var(--tryerp-danger-on-soft); }
.tryerp-inicio-delta.neutro[b-98z6oo3chs] { background: var(--tryerp-surface-muted); color: var(--tryerp-text-muted); }

/* ---------- Painéis (atenção, atalhos, últimos documentos) ---------- */

.tryerp-inicio-painel[b-98z6oo3chs] { margin-bottom: 1rem; }

.tryerp-inicio-painel-titulo[b-98z6oo3chs] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.9rem 1.1rem;
    border-bottom: 1px solid var(--tryerp-border);
    font-weight: 700;
    font-size: 15px;
    color: var(--tryerp-text);
}

.tryerp-inicio-painel-titulo > .bi[b-98z6oo3chs] { color: var(--tryerp-secondary); }

.tryerp-inicio-painel-links[b-98z6oo3chs] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.9rem;
    margin-left: auto;
    font-size: var(--tryerp-text-body-sm);
    font-weight: 600;
}

.tryerp-inicio-painel-links a[b-98z6oo3chs] { text-decoration: none; color: var(--tryerp-secondary); }
.tryerp-inicio-painel-links a:hover[b-98z6oo3chs] { text-decoration: underline; }

/* Precisa de atenção */

.tryerp-inicio-atencao[b-98z6oo3chs] {
    margin: 0;
    padding: 0.35rem 0;
    list-style: none;
}

.tryerp-inicio-atencao-item[b-98z6oo3chs] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 1.1rem;
    color: var(--tryerp-text);
    text-decoration: none;
    transition: background var(--tryerp-transition);
}

.tryerp-inicio-atencao-item:hover[b-98z6oo3chs] { background: var(--tryerp-surface-alt); color: var(--tryerp-text); }

.tryerp-inicio-atencao-item:focus-visible[b-98z6oo3chs] {
    outline: 2px solid var(--tryerp-primary);
    outline-offset: -2px;
}

.tryerp-inicio-atencao-icone[b-98z6oo3chs] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    font-size: 0.95rem;
}

.tryerp-inicio-atencao-item.perigo .tryerp-inicio-atencao-icone[b-98z6oo3chs] { background: var(--tryerp-danger-soft); color: var(--tryerp-danger-on-soft); }
.tryerp-inicio-atencao-item.alerta .tryerp-inicio-atencao-icone[b-98z6oo3chs] { background: var(--tryerp-warning-soft); color: var(--tryerp-warning-on-soft); }
.tryerp-inicio-atencao-item.info .tryerp-inicio-atencao-icone[b-98z6oo3chs] { background: var(--tryerp-info-soft); color: var(--tryerp-info-on-soft); }
.tryerp-inicio-atencao-item.neutro .tryerp-inicio-atencao-icone[b-98z6oo3chs] { background: var(--tryerp-surface-muted); color: var(--tryerp-text-subtle); }

.tryerp-inicio-atencao-texto[b-98z6oo3chs] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.tryerp-inicio-atencao-titulo[b-98z6oo3chs] {
    font-weight: 600;
    font-size: var(--tryerp-text-body);
    line-height: 1.3;
}

.tryerp-inicio-atencao-item.neutro .tryerp-inicio-atencao-titulo[b-98z6oo3chs] {
    font-weight: 500;
    color: var(--tryerp-text-muted);
}

.tryerp-inicio-atencao-detalhe[b-98z6oo3chs] {
    font-size: 12.5px;
    color: var(--tryerp-text-subtle);
    line-height: 1.35;
}

.tryerp-inicio-atencao-seta[b-98z6oo3chs] {
    color: var(--tryerp-text-subtle);
    font-size: 0.8rem;
}

.tryerp-inicio-tudo-ok[b-98z6oo3chs] {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 1rem 1.1rem;
}

.tryerp-inicio-tudo-ok-icone[b-98z6oo3chs] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--tryerp-success-soft);
    color: var(--tryerp-success-on-soft);
    font-size: 1.2rem;
}

.tryerp-inicio-tudo-ok-titulo[b-98z6oo3chs] { font-weight: 700; }

.tryerp-inicio-tudo-ok-texto[b-98z6oo3chs] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* Sem nenhuma tela liberada: diz o que fazer, em vez de uma página vazia. */
.tryerp-inicio-sem-acesso[b-98z6oo3chs] {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    padding: 1rem 1.1rem;
}

.tryerp-inicio-sem-acesso > .bi[b-98z6oo3chs] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--tryerp-surface-muted);
    color: var(--tryerp-text-subtle);
    font-size: 1.15rem;
}

/* Atalhos */

.tryerp-inicio-atalhos[b-98z6oo3chs] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    padding: 0.85rem;
}

.tryerp-inicio-atalho[b-98z6oo3chs] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 44px;
    padding: 0.55rem 0.75rem;
    border-radius: var(--tryerp-radius);
    background: var(--tryerp-surface-alt);
    border: 1px solid transparent;
    color: var(--tryerp-text);
    font-weight: 600;
    font-size: var(--tryerp-text-body-sm);
    text-decoration: none;
    transition: background var(--tryerp-transition), border-color var(--tryerp-transition);
}

.tryerp-inicio-atalho .bi[b-98z6oo3chs] {
    color: var(--tryerp-secondary);
    font-size: 1rem;
}

.tryerp-inicio-atalho:hover[b-98z6oo3chs] {
    background: var(--tryerp-primary-soft);
    border-color: var(--tryerp-border-strong);
    color: var(--tryerp-primary);
}

.tryerp-inicio-atalho:focus-visible[b-98z6oo3chs] {
    outline: 2px solid var(--tryerp-primary);
    outline-offset: 1px;
}

/* Últimos documentos */

.tryerp-inicio-docs[b-98z6oo3chs] {
    margin: 0;
    padding: 0.25rem 0;
    list-style: none;
}

.tryerp-inicio-docs li + li[b-98z6oo3chs] { border-top: 1px solid var(--tryerp-border); }

.tryerp-inicio-doc[b-98z6oo3chs] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto 124px;
    align-items: center;
    gap: 0.9rem;
    padding: 0.7rem 1.1rem;
    color: var(--tryerp-text);
    text-decoration: none;
    transition: background var(--tryerp-transition);
}

.tryerp-inicio-doc:hover[b-98z6oo3chs] { background: var(--tryerp-surface-alt); color: var(--tryerp-text); }

.tryerp-inicio-doc:focus-visible[b-98z6oo3chs] {
    outline: 2px solid var(--tryerp-primary);
    outline-offset: -2px;
}

.tryerp-inicio-doc-principal[b-98z6oo3chs],
.tryerp-inicio-doc-meta[b-98z6oo3chs] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.tryerp-inicio-doc-meta[b-98z6oo3chs] { align-items: flex-end; }

.tryerp-inicio-doc-titulo[b-98z6oo3chs] {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tryerp-inicio-doc-parte[b-98z6oo3chs] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Coluna de valores alinhados: aqui sim algarismos tabulares. */
.tryerp-inicio-doc-valor[b-98z6oo3chs] {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.tryerp-inicio-doc-data[b-98z6oo3chs] {
    font-size: 12px;
    color: var(--tryerp-text-subtle);
    white-space: nowrap;
}

.tryerp-inicio-doc-situacao[b-98z6oo3chs] { justify-self: end; }

/* ---------- Celular (R106: breakpoint único) ---------- */

@media (max-width: 991.98px) {
    .tryerp-inicio-hero.com-numero[b-98z6oo3chs] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767.98px) {
    .tryerp-inicio-hero[b-98z6oo3chs] {
        padding: 1.25rem 1rem;
        border-radius: var(--tryerp-radius-lg);
        gap: 1.1rem;
    }

    .tryerp-inicio-acoes[b-98z6oo3chs] { margin-top: 0.8rem; }

    .tryerp-inicio-acao[b-98z6oo3chs] {
        flex: 1 1 auto;
        justify-content: center;
    }

    .tryerp-inicio-hero-numero[b-98z6oo3chs] { padding: 0.9rem 1rem 0.75rem; }

    .tryerp-inicio-kpis[b-98z6oo3chs] {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.75rem;
    }

    .tryerp-inicio-kpi[b-98z6oo3chs] { padding: 0.9rem 1rem; }

    .tryerp-inicio-kpi-valor[b-98z6oo3chs] { font-size: 24px; }

    /* Documento em duas linhas: identificação em cima, valor/data e situação embaixo. */
    .tryerp-inicio-doc[b-98z6oo3chs] {
        grid-template-columns: auto minmax(0, 1fr) auto;
        grid-template-areas:
            "icone principal situacao"
            "icone meta meta";
        gap: 0.2rem 0.75rem;
        padding: 0.7rem 1rem;
    }

    .tryerp-inicio-doc-icone[b-98z6oo3chs] { grid-area: icone; align-self: start; }
    .tryerp-inicio-doc-principal[b-98z6oo3chs] { grid-area: principal; }
    .tryerp-inicio-doc-situacao[b-98z6oo3chs] { grid-area: situacao; align-self: start; }

    .tryerp-inicio-doc-meta[b-98z6oo3chs] {
        grid-area: meta;
        flex-direction: row;
        align-items: baseline;
        justify-content: space-between;
        gap: 0.5rem;
    }
}
/* /Components/Pages/NFe/ChecklistPronta.razor.rz.scp.css */
.tryerp-checklist[b-ap9b578mss] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: var(--tryerp-radius-lg);
    overflow: hidden;
}

/* O header é um <button> agora — neutralizar estilo padrão e deixar parecer
   um cabeçalho normal. Em mobile ele alterna o body via _checklistCompacto. */
.tryerp-checklist-header[b-ap9b578mss] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    border: none;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
    width: 100%;
    cursor: pointer;
    text-align: left;
}

.tryerp-checklist-header:hover[b-ap9b578mss] {
    background: var(--tryerp-surface);
}

/* Toggle só aparece em mobile — desktop deixa sempre aberto, símbolo escondido. */
.tryerp-checklist-toggle[b-ap9b578mss] {
    color: var(--tryerp-text-muted);
    font-size: 0.875rem;
    display: none;
}

.tryerp-checklist-body[b-ap9b578mss] {
    padding: 1rem 1.25rem 1.25rem;
}

.tryerp-checklist-list[b-ap9b578mss] {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
}

.tryerp-checklist-item[b-ap9b578mss] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.45rem 0;
}

.tryerp-checklist-icon[b-ap9b578mss] {
    flex-shrink: 0;
    font-size: 1rem;
    margin-top: 2px;
}

.tryerp-checklist-ok .tryerp-checklist-icon[b-ap9b578mss] {
    color: var(--tryerp-success);
}

.tryerp-checklist-pendente .tryerp-checklist-icon[b-ap9b578mss] {
    color: var(--tryerp-warning);
}

.tryerp-checklist-opcional .tryerp-checklist-icon[b-ap9b578mss] {
    color: var(--tryerp-text-subtle);
}

.tryerp-checklist-text[b-ap9b578mss] {
    flex: 1;
    min-width: 0;
}

.tryerp-checklist-titulo[b-ap9b578mss] {
    font-size: var(--tryerp-text-body-sm);
    font-weight: 500;
    color: var(--tryerp-text);
}

.tryerp-checklist-detalhe[b-ap9b578mss] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
    line-height: 1.35;
}

.tryerp-checklist-pendente .tryerp-checklist-detalhe[b-ap9b578mss] {
    color: var(--tryerp-warning-on-soft);
}

.tryerp-checklist-footer[b-ap9b578mss] {
    padding-top: 0.75rem;
    border-top: 1px solid var(--tryerp-border);
}

/* ============================================================
   Mobile (<992px = abaixo do breakpoint lg do Bootstrap):
   - Toggle aparece e funciona como acordeão.
   - Quando compacto, body fica oculto — só header com badge é visível.
   - Em desktop (≥992px), .tryerp-checklist-compacto-mobile é ignorado.
   ============================================================ */
@media (max-width: 991.98px) {
    .tryerp-checklist-toggle[b-ap9b578mss] {
        display: inline-block;
    }

    .tryerp-checklist-compacto-mobile .tryerp-checklist-body[b-ap9b578mss] {
        display: none;
    }
}

/* Sticky sidebar em desktop — checklist fica sempre visível enquanto rola
   o conteúdo das abas. Top alinhado com a navbar (~80px). */
@media (min-width: 992px) {
    :global(.tryerp-nfe-aside) .tryerp-checklist[b-ap9b578mss] {
        position: sticky;
        top: 1rem;
        max-height: calc(100vh - 2rem);
        overflow-y: auto;
    }
}
/* /Components/Pages/NFe/CobrancaAba.razor.rz.scp.css */
/* ============================================================
   CobrancaAba — aba de duplicatas / cobrança da NFe.
   ============================================================ */

.tryerp-duplicatas-table[b-9vufjffc4l] {
    border: 1px solid var(--tryerp-border, #e5e7eb);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.tryerp-duplicatas-table[b-9vufjffc4l]  table {
    margin-bottom: 0;
}

.tryerp-duplicatas-table[b-9vufjffc4l]  thead th {
    background-color: #f8fafc;
    color: #6b7280;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--tryerp-border, #e5e7eb);
    padding: 0.625rem 0.75rem;
}

.tryerp-duplicatas-table[b-9vufjffc4l]  tbody td {
    padding: 0.625rem 0.75rem;
    border-top: 1px solid var(--tryerp-border, #f1f5f9);
}

.tryerp-duplicatas-table[b-9vufjffc4l]  .tryerp-dup-row {
    cursor: pointer;
    transition: background-color 120ms ease;
}

.tryerp-duplicatas-table[b-9vufjffc4l]  .tryerp-dup-row:hover {
    background-color: rgba(15, 23, 42, 0.02);
}

.tryerp-duplicatas-table[b-9vufjffc4l]  tfoot .tryerp-dup-total {
    background-color: #f8fafc;
    font-size: 0.875rem;
}

.tryerp-duplicatas-table[b-9vufjffc4l]  tfoot .tryerp-dup-total td {
    padding: 0.625rem 0.75rem;
    border-top: 2px solid var(--tryerp-border, #e5e7eb);
}

.tryerp-dup-resumo[b-9vufjffc4l] {
    margin-top: 1rem;
}

.tryerp-dup-valor[b-9vufjffc4l] {
    font-size: 1.25rem;
    font-weight: 600;
    margin-top: 0.25rem;
}

.tryerp-cond-banner[b-9vufjffc4l] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    background: linear-gradient(to right, rgba(15, 118, 110, 0.06), transparent);
    border: 1px solid rgba(15, 118, 110, 0.18);
    border-left: 3px solid rgba(15, 118, 110, 0.6);
    border-radius: 10px;
}

.tryerp-cond-banner > .bi[b-9vufjffc4l] {
    font-size: 1.25rem;
    color: rgba(15, 118, 110, 0.85);
}

.tryerp-cond-banner .tryerp-label-caps[b-9vufjffc4l] {
    font-size: 0.68rem;
}

.tryerp-btn-primary-soft[b-9vufjffc4l] {
    --dxbl-btn-bg: rgba(15, 118, 110, 0.08);
    --dxbl-btn-color: rgba(15, 118, 110, 1);
    --dxbl-btn-border-color: rgba(15, 118, 110, 0.25);
    --dxbl-btn-hover-bg: rgba(15, 118, 110, 0.15);
    --dxbl-btn-hover-color: rgba(15, 118, 110, 1);
}
/* /Components/Pages/NFe/EditarItemModal.razor.rz.scp.css */
.tryerp-edit-item[b-zwdrhn5nfv] {
    padding: 0.25rem;
    max-height: 68vh;
    overflow-y: auto;
    padding-right: 0.5rem;
}

/* Seções dentro do modal */
.tryerp-edit-section[b-zwdrhn5nfv] {
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--tryerp-border);
}

.tryerp-edit-section:last-child[b-zwdrhn5nfv] {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.tryerp-edit-section-title[b-zwdrhn5nfv] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: var(--tryerp-text-label);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tryerp-primary);
    margin-bottom: 0.75rem;
}

.tryerp-edit-section-title .bi[b-zwdrhn5nfv] {
    font-size: 0.95rem;
}

/* Scroll custom */
.tryerp-edit-item[b-zwdrhn5nfv]::-webkit-scrollbar {
    width: 8px;
}

.tryerp-edit-item[b-zwdrhn5nfv]::-webkit-scrollbar-thumb {
    background: var(--tryerp-border);
    border-radius: var(--tryerp-radius-pill);
}

.tryerp-edit-item[b-zwdrhn5nfv]::-webkit-scrollbar-thumb:hover {
    background: var(--tryerp-border-strong);
}

/* Celular: o modal é tela cheia e o corpo dele já rola (tryerp-popup-tela-cheia). Uma segunda
   rolagem aqui dentro deixava duas barras aninhadas e o dedo "preso" na de dentro. */
@media (max-width: 767.98px) {
    .tryerp-edit-item[b-zwdrhn5nfv] {
        max-height: none;
        overflow: visible;
    }
}
/* /Components/Pages/NFe/Index.razor.rz.scp.css */
/* ==========================================================
   Refinamento do grid de NFe — padrão Executive (label-caps
   headers, zebra hover, data-tabular numbers).
   ========================================================== */

[b-naoosjl3nw] .tryerp-grid {
    border: none;
    border-radius: 0;
}

/* Cabeçalhos das colunas em uppercase label-caps */
[b-naoosjl3nw] .tryerp-grid .dxbl-grid-header-row th,
[b-naoosjl3nw] .tryerp-grid .dxbl-grid-header-row .dxbl-grid-header-cell {
    font-size: var(--tryerp-text-label);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tryerp-text-subtle);
    background: var(--tryerp-surface-alt);
}

/* Linhas de dados — densidade + numéricos tabulares */
[b-naoosjl3nw] .tryerp-grid .dxbl-grid-data-row td {
    font-size: var(--tryerp-text-body);
    color: var(--tryerp-text);
}

[b-naoosjl3nw] .tryerp-grid .tryerp-mono {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
    color: var(--tryerp-primary);
    font-weight: 500;
}

[b-naoosjl3nw] .tryerp-grid .tryerp-chave {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* Hover state Executive */
[b-naoosjl3nw] .tryerp-grid .dxbl-grid-data-row:hover {
    background: var(--tryerp-surface-alt) !important;
}

/* Empty state */

.tryerp-empty-state[b-naoosjl3nw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    background: var(--tryerp-surface);
}

.tryerp-empty-state .bi[b-naoosjl3nw] {
    font-size: 2.5rem;
    color: var(--tryerp-text-subtle);
    margin-bottom: 0.75rem;
}

.tryerp-empty-title[b-naoosjl3nw] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: var(--tryerp-text-body);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-naoosjl3nw] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* ==========================================================
   Coluna Acoes — dropdown via <details>/<summary> nativo HTML5.
   SSR-safe (sem JS), funciona em Blazor InteractiveServer e em
   modo estatico. Padrao consistente com os cards mobile.
   ========================================================== */

[b-naoosjl3nw] .tryerp-row-actions {
    position: relative;
    display: inline-block;
}

    [b-naoosjl3nw] .tryerp-row-actions > summary {
        list-style: none;
        cursor: pointer;
        user-select: none;
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.25rem 0.625rem;
        border: 1px solid var(--tryerp-border);
        border-radius: 0.375rem;
        background: var(--tryerp-surface);
        font-size: var(--tryerp-text-body-sm);
        color: var(--tryerp-text);
        line-height: 1;
        transition: background 0.15s ease, border-color 0.15s ease;
    }

        [b-naoosjl3nw] .tryerp-row-actions > summary::-webkit-details-marker {
            display: none;
        }

        [b-naoosjl3nw] .tryerp-row-actions > summary:hover,
        [b-naoosjl3nw] .tryerp-row-actions[open] > summary {
            background: var(--tryerp-surface-alt);
            border-color: var(--tryerp-primary);
        }

        [b-naoosjl3nw] .tryerp-row-actions > summary .bi {
            font-size: 1rem;
            line-height: 1;
        }

/* DxGrid encapsula linha/cell em divs com overflow hidden — sem desabilitar
   isso, o menu absolute fica cortado. Forçamos overflow visible nas
   ancestrais do dropdown. */
[b-naoosjl3nw] .tryerp-grid .dxbl-grid-data-row,
[b-naoosjl3nw] .tryerp-grid .dxbl-grid-data-row td,
[b-naoosjl3nw] .tryerp-grid .dxbl-grid-table-cell {
    overflow: visible !important;
}

[b-naoosjl3nw] .tryerp-row-actions-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    z-index: 1050;
    min-width: 220px;
    display: flex;
    flex-direction: column;
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
    padding: 0.25rem 0;
}

    [b-naoosjl3nw] .tryerp-row-actions-menu button {
        border: none;
        background: transparent;
        text-align: left;
        padding: 0.5rem 0.875rem;
        font-size: var(--tryerp-text-body-sm);
        color: var(--tryerp-text);
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 0.5rem;
        white-space: nowrap;
        transition: background 0.1s ease;
    }

        [b-naoosjl3nw] .tryerp-row-actions-menu button:hover:not(:disabled) {
            background: var(--tryerp-surface-alt);
        }

        [b-naoosjl3nw] .tryerp-row-actions-menu button:disabled {
            opacity: 0.55;
            cursor: not-allowed;
        }

        [b-naoosjl3nw] .tryerp-row-actions-menu button .bi {
            font-size: 1rem;
            color: var(--tryerp-text-muted);
            width: 1.25rem;
            text-align: center;
        }

/* ==========================================================
   Cards mobile (<768px). Padrão card "elevated" com header
   destaque, body legível e ações em <details> nativo.
   ========================================================== */

.tryerp-nfe-cards[b-naoosjl3nw] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--tryerp-surface-alt);
}

.tryerp-nfe-card[b-naoosjl3nw] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.15s ease;
}

    .tryerp-nfe-card:active[b-naoosjl3nw],
    .tryerp-nfe-card:hover[b-naoosjl3nw] {
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    }

.tryerp-nfe-card-header[b-naoosjl3nw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.625rem 0.875rem;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
    cursor: pointer;
}

.tryerp-nfe-card-id strong[b-naoosjl3nw] {
    font-size: 1.125rem;
    color: var(--tryerp-primary);
}

.tryerp-nfe-card-id[b-naoosjl3nw] {
    display: flex;
    align-items: baseline;
    gap: 0.375rem;
}

.tryerp-nfe-card-body[b-naoosjl3nw] {
    padding: 0.625rem 0.875rem;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    cursor: pointer;
}

.tryerp-nfe-card-row[b-naoosjl3nw] {
    display: flex;
    align-items: center;
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text);
}

    .tryerp-nfe-card-row.tryerp-nfe-card-meta[b-naoosjl3nw] {
        justify-content: space-between;
        gap: 0.5rem;
        color: var(--tryerp-text-muted);
    }

.tryerp-nfe-card-dest[b-naoosjl3nw] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
}

.tryerp-nfe-card-actions[b-naoosjl3nw] {
    border-top: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface);
}

    .tryerp-nfe-card-actions > summary[b-naoosjl3nw] {
        padding: 0.5rem 0.875rem;
        cursor: pointer;
        list-style: none;
        display: flex;
        align-items: center;
        gap: 0.5rem;
        font-weight: 500;
        font-size: var(--tryerp-text-body-sm);
        color: var(--tryerp-text-muted);
        user-select: none;
    }

        .tryerp-nfe-card-actions > summary[b-naoosjl3nw]::-webkit-details-marker {
            display: none;
        }

        .tryerp-nfe-card-actions > summary[b-naoosjl3nw]::after {
            content: "▾";
            margin-left: auto;
            transition: transform 0.15s ease;
        }

    .tryerp-nfe-card-actions[open] > summary[b-naoosjl3nw]::after {
        transform: rotate(180deg);
    }

.tryerp-nfe-card-actions-list[b-naoosjl3nw] {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--tryerp-border);
}

    .tryerp-nfe-card-actions-list .btn[b-naoosjl3nw] {
        text-align: left;
        padding: 0.625rem 0.875rem;
        border-radius: 0;
        border-bottom: 1px solid var(--tryerp-border);
        text-decoration: none;
    }

        .tryerp-nfe-card-actions-list .btn:last-child[b-naoosjl3nw] {
            border-bottom: none;
        }
/* /Components/Pages/NFe/Inutilizacoes.razor.rz.scp.css */
/* ==========================================================
   /nfe/inutilizacoes — padrão visual coerente com /nfe e
   /contas-receber. Cards mobile simplificados (sem dropdown
   ações — XML é botão inline).
   ========================================================== */

[b-38lra64vrb] .tryerp-grid {
    border: none;
    border-radius: 0;
}

[b-38lra64vrb] .tryerp-grid .dxbl-grid-header-row th,
[b-38lra64vrb] .tryerp-grid .dxbl-grid-header-row .dxbl-grid-header-cell {
    font-size: var(--tryerp-text-label);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tryerp-text-subtle);
    background: var(--tryerp-surface-alt);
}

[b-38lra64vrb] .tryerp-grid .dxbl-grid-data-row td {
    font-size: var(--tryerp-text-body);
    color: var(--tryerp-text);
}

[b-38lra64vrb] .tryerp-grid .tryerp-mono {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
    color: var(--tryerp-primary);
    font-weight: 500;
}

[b-38lra64vrb] .tryerp-grid .dxbl-grid-data-row:hover {
    background: var(--tryerp-surface-alt) !important;
}

.tryerp-empty-state[b-38lra64vrb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    background: var(--tryerp-surface);
}

    .tryerp-empty-state .bi[b-38lra64vrb] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-38lra64vrb] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: var(--tryerp-text-body);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-38lra64vrb] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* Cards mobile */
.tryerp-inut-cards[b-38lra64vrb] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--tryerp-surface-alt);
}

.tryerp-inut-card[b-38lra64vrb] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.tryerp-inut-card-header[b-38lra64vrb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.875rem;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
}

    .tryerp-inut-card-header strong[b-38lra64vrb] {
        font-size: 1rem;
        color: var(--tryerp-primary);
    }

.tryerp-inut-card-body[b-38lra64vrb] {
    padding: 0.625rem 0.875rem;
    font-size: var(--tryerp-text-body-sm);
}
/* /Components/Pages/NFe/ItensAba.razor.rz.scp.css */
.tryerp-itens-aba[b-4lxd2w5hmr] {
    padding: 0.5rem 0;
}

.tryerp-itens-table[b-4lxd2w5hmr] {
    border: 1px solid var(--tryerp-border);
    border-radius: var(--tryerp-radius-lg);
    /* overflow visible para o dropdown da coluna Acoes nao ser cortado
       (substitui hidden anterior). O border-radius continua aplicando
       nas cells de canto via thead/tbody com radius proprio. */
    overflow: visible;
    background: var(--tryerp-surface);
}

/* Coluna Acoes — dropdown via <details>/<summary> nativo, identico ao
   da listagem /nfe (Index.razor.css). Reutilizamos o estilo aqui em
   escopo proprio porque scoped CSS nao vaza entre componentes. */
.tryerp-row-actions[b-4lxd2w5hmr] {
    position: relative;
    display: inline-block;
}

    .tryerp-row-actions > summary[b-4lxd2w5hmr] {
        list-style: none;
        cursor: pointer;
        user-select: none;
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.25rem 0.625rem;
        border: 1px solid var(--tryerp-border);
        border-radius: 0.375rem;
        background: var(--tryerp-surface);
        font-size: var(--tryerp-text-body-sm);
        color: var(--tryerp-text);
        line-height: 1;
        transition: background 0.15s ease, border-color 0.15s ease;
    }

        .tryerp-row-actions > summary[b-4lxd2w5hmr]::-webkit-details-marker {
            display: none;
        }

        .tryerp-row-actions > summary:hover[b-4lxd2w5hmr],
        .tryerp-row-actions[open] > summary[b-4lxd2w5hmr] {
            background: var(--tryerp-surface-alt);
            border-color: var(--tryerp-primary);
        }

        .tryerp-row-actions > summary .bi[b-4lxd2w5hmr] {
            font-size: 1rem;
            line-height: 1;
        }

.tryerp-row-actions-menu[b-4lxd2w5hmr] {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    z-index: 1050;
    min-width: 180px;
    display: flex;
    flex-direction: column;
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
    padding: 0.25rem 0;
}

    .tryerp-row-actions-menu button[b-4lxd2w5hmr] {
        border: none;
        background: transparent;
        text-align: left;
        padding: 0.5rem 0.875rem;
        font-size: var(--tryerp-text-body-sm);
        color: var(--tryerp-text);
        cursor: pointer;
        display: flex;
        align-items: center;
        gap: 0.5rem;
        white-space: nowrap;
        transition: background 0.1s ease;
    }

        .tryerp-row-actions-menu button:hover:not(:disabled)[b-4lxd2w5hmr] {
            background: var(--tryerp-surface-alt);
        }

        .tryerp-row-actions-menu button:disabled[b-4lxd2w5hmr] {
            opacity: 0.55;
            cursor: not-allowed;
        }

        .tryerp-row-actions-menu button .bi[b-4lxd2w5hmr] {
            font-size: 1rem;
            color: var(--tryerp-text-muted);
            width: 1.25rem;
            text-align: center;
        }

        .tryerp-row-actions-menu button.text-danger .bi[b-4lxd2w5hmr] {
            color: var(--bs-danger, #dc3545);
        }

.tryerp-itens-table table[b-4lxd2w5hmr] {
    font-size: var(--tryerp-text-body);
    margin: 0;
}

.tryerp-itens-table thead[b-4lxd2w5hmr] {
    background: var(--tryerp-surface-alt);
}

.tryerp-itens-table thead th[b-4lxd2w5hmr] {
    color: var(--tryerp-text-subtle);
    border-bottom: 1px solid var(--tryerp-border);
    padding: 0.65rem 0.75rem;
    white-space: nowrap;
}

.tryerp-itens-table tbody td[b-4lxd2w5hmr] {
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--tryerp-border);
    color: var(--tryerp-text);
}

.tryerp-itens-table tbody tr:last-child td[b-4lxd2w5hmr] {
    border-bottom: none;
}

.tryerp-itens-table tbody tr.tryerp-item-row[b-4lxd2w5hmr] {
    cursor: pointer;
}

.tryerp-itens-table tbody tr:hover[b-4lxd2w5hmr] {
    background: var(--tryerp-surface-alt);
}

.tryerp-empty-state[b-4lxd2w5hmr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    background: var(--tryerp-surface);
    border: 1px dashed var(--tryerp-border);
    border-radius: var(--tryerp-radius-lg);
}

.tryerp-empty-state .bi[b-4lxd2w5hmr] {
    font-size: 2.5rem;
    color: var(--tryerp-text-subtle);
    margin-bottom: 0.75rem;
}

.tryerp-empty-title[b-4lxd2w5hmr] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: var(--tryerp-text-body);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-4lxd2w5hmr] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
    max-width: 40rem;
}

/* Celular (#79): cartões no lugar da tabela de 12 colunas. Ações como botões de verdade — o menu
   "Ações" de <details> é pequeno demais para o dedo. */
.tryerp-item-cards[b-4lxd2w5hmr] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .75rem;
}

.tryerp-item-card[b-4lxd2w5hmr] {
    border: 1px solid var(--tryerp-border);
    border-radius: var(--tryerp-radius-lg);
    background: var(--tryerp-surface);
    padding: .75rem .875rem;
    display: grid;
    gap: .25rem;
}

.tryerp-item-card-topo[b-4lxd2w5hmr],
.tryerp-item-card-valores[b-4lxd2w5hmr] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .5rem;
}

.tryerp-item-card-valores[b-4lxd2w5hmr] {
    margin-top: .25rem;
}

.tryerp-item-card-acoes[b-4lxd2w5hmr] {
    display: flex;
    gap: .5rem;
    margin-top: .5rem;
}

.tryerp-item-card-acoes .btn[b-4lxd2w5hmr] {
    flex: 1 1 0;
    min-height: 2.5rem;
}
/* /Components/Pages/NFe/Nova.razor.rz.scp.css */
/* Abas, métricas do topo, status do auto-save e botão "Descartar" suave: em css/componentes.css
   (R106 — eram estilos isolados aqui que não chegavam no PageHeader nem nas outras telas). */

/* ============================================================
   NFe — layout em duas colunas com sidebar do checklist:
   - Desktop (≥lg): conteúdo (col-lg-9) + checklist sticky (col-lg-3 direita).
   - Mobile (<lg): checklist no topo (compacto/colapsável) + conteúdo abaixo.
   ============================================================ */
.tryerp-nfe-layout[b-7log87q4gj] {
    align-items: flex-start;
}

/* Quem gruda é a COLUNA do checklist: com align-items:flex-start ela tem só a altura do próprio
   conteúdo, então um sticky no checklist lá dentro nunca tinha espaço para grudar. */
@media (min-width: 992px) {
    .tryerp-nfe-aside[b-7log87q4gj] {
        position: sticky;
        top: calc(var(--tryerp-topbar-h) + 0.5rem);
        max-height: calc(100vh - var(--tryerp-topbar-h) - 1rem);
        overflow-y: auto;
    }
}

/* Em telas menores o checklist fica compacto no alto da página (Compacto=true, toque expande) e
   NÃO gruda: quem gruda são as abas — dois elementos fixos no mesmo ponto se sobrepunham. */
@media (max-width: 991.98px) {
    .tryerp-nfe-aside[b-7log87q4gj] {
        padding-bottom: 0.25rem;
    }
}
/* /Components/Pages/NFe/NovoItemModal.razor.rz.scp.css */
.tryerp-item-form[b-c9j35gkjde] {
    padding: 0.25rem;
}

.tryerp-produto-meta[b-c9j35gkjde] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.5rem;
    flex-wrap: wrap;
}
/* /Components/Pages/NFe/TotaisPanel.razor.rz.scp.css */
.tryerp-totais[b-qyl2cg9m4x] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: var(--tryerp-radius-lg);
    margin-top: 1rem;
    overflow: hidden;
}

.tryerp-totais-header[b-qyl2cg9m4x] {
    padding: 0.75rem 1.25rem;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
}

.tryerp-totais-vazio[b-qyl2cg9m4x] {
    padding: 1.25rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    font-size: var(--tryerp-text-body-sm);
}

/* ---------- Grid de blocos ---------- */

.tryerp-totais-grid[b-qyl2cg9m4x] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    padding: 1.25rem;
}

.tryerp-totais-bloco[b-qyl2cg9m4x] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.tryerp-totais-bloco-titulo[b-qyl2cg9m4x] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: var(--tryerp-text-body-sm);
    font-weight: 600;
    color: var(--tryerp-text-muted);
    border-bottom: 1px solid var(--tryerp-border);
    padding-bottom: 0.4rem;
}

.tryerp-totais-bloco-titulo .bi[b-qyl2cg9m4x] {
    color: var(--tryerp-primary);
    font-size: 0.95rem;
}

/* Bloco reforma com destaque sutil */
.tryerp-totais-bloco-reforma .tryerp-totais-bloco-titulo[b-qyl2cg9m4x] {
    color: var(--tryerp-secondary);
}

.tryerp-totais-bloco-reforma .tryerp-totais-bloco-titulo .bi[b-qyl2cg9m4x] {
    color: var(--tryerp-secondary);
}

/* ---------- Definition list ---------- */

.tryerp-totais-dl[b-qyl2cg9m4x] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.3rem 1rem;
    margin: 0;
    font-size: var(--tryerp-text-body-sm);
}

.tryerp-totais-dl dt[b-qyl2cg9m4x] {
    color: var(--tryerp-text-muted);
    font-weight: 400;
    margin: 0;
}

.tryerp-totais-dl dd[b-qyl2cg9m4x] {
    color: var(--tryerp-text);
    font-weight: 500;
    text-align: right;
    margin: 0;
    font-variant-numeric: tabular-nums;
}

.tryerp-totais-negativo[b-qyl2cg9m4x] {
    color: var(--tryerp-danger) !important;
}

/* ---------- Footer com total da nota ---------- */

.tryerp-totais-footer[b-qyl2cg9m4x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: var(--tryerp-primary-soft);
    border-top: 1px solid var(--tryerp-border);
}

.tryerp-totais-footer-lado[b-qyl2cg9m4x] {
    flex: 1;
    min-width: 0;
}

.tryerp-totais-ibpt[b-qyl2cg9m4x] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    color: var(--tryerp-text-muted);
    font-size: var(--tryerp-text-body-sm);
}

.tryerp-totais-ibpt .tryerp-mono[b-qyl2cg9m4x] {
    color: var(--tryerp-text);
    font-weight: 500;
    font-size: var(--tryerp-text-body);
}

.tryerp-totais-footer-vnf[b-qyl2cg9m4x] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.15rem;
}

.tryerp-totais-footer-vnf .tryerp-label-caps[b-qyl2cg9m4x] {
    color: var(--tryerp-primary);
}

.tryerp-totais-vnf-valor[b-qyl2cg9m4x] {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--tryerp-primary);
    line-height: 1;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}
/* /Components/Pages/NFe/TransporteAba.razor.rz.scp.css */
/* ============================================================
   TransporteAba — aba Transporte da NFe.
   Cards seguem o padrão .tryerp-card (definido globalmente). Aqui ficam
   só as variações específicas (header clicável para seção colapsável).
   ============================================================ */

.tryerp-transporte-aba .tryerp-card[b-l83854mr64] {
    margin-bottom: 1rem;
}

.tryerp-transporte-aba[b-l83854mr64]  .tryerp-card-header-clickable {
    cursor: pointer;
    user-select: none;
}

.tryerp-transporte-aba[b-l83854mr64]  .tryerp-card-header-clickable:hover {
    background-color: rgba(0, 0, 0, 0.02);
}

.tryerp-transporte-aba[b-l83854mr64]  .tryerp-card-header-clickable .bi-chevron-up,
.tryerp-transporte-aba[b-l83854mr64]  .tryerp-card-header-clickable .bi-chevron-down {
    font-size: 0.85rem;
    color: var(--tryerp-muted, #6b7280);
}

.tryerp-transporte-aba[b-l83854mr64]  input[disabled],
.tryerp-transporte-aba[b-l83854mr64]  input[readonly] {
    background-color: #f8fafc;
    color: #374151;
}
/* /Components/Pages/Operacoes/Index.razor.rz.scp.css */
/* ==========================================================
   /produtos — pattern coerente com /parceiros e /nfe.
   Cards mobile com clique direto para edicao.
   ========================================================== */

[b-m7jt2qwklw] .tryerp-grid {
    border: none;
    border-radius: 0;
}

[b-m7jt2qwklw] .tryerp-grid .dxbl-grid-header-row th,
[b-m7jt2qwklw] .tryerp-grid .dxbl-grid-header-row .dxbl-grid-header-cell {
    font-size: var(--tryerp-text-label);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tryerp-text-subtle);
    background: var(--tryerp-surface-alt);
}

[b-m7jt2qwklw] .tryerp-grid .dxbl-grid-data-row td {
    font-size: var(--tryerp-text-body);
    color: var(--tryerp-text);
}

[b-m7jt2qwklw] .tryerp-grid .tryerp-mono {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
}

[b-m7jt2qwklw] .tryerp-grid .dxbl-grid-data-row:hover {
    background: var(--tryerp-surface-alt) !important;
}

.tryerp-empty-state[b-m7jt2qwklw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    background: var(--tryerp-surface);
}

    .tryerp-empty-state .bi[b-m7jt2qwklw] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-m7jt2qwklw] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: var(--tryerp-text-body);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-m7jt2qwklw] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* Cards mobile */
.tryerp-parc-cards[b-m7jt2qwklw] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--tryerp-surface-alt);
}

.tryerp-parc-card[b-m7jt2qwklw] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    overflow: hidden;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.15s ease;
}

    .tryerp-parc-card:active[b-m7jt2qwklw],
    .tryerp-parc-card:hover[b-m7jt2qwklw] {
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    }

.tryerp-parc-card-header[b-m7jt2qwklw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.875rem;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
}

    .tryerp-parc-card-header strong[b-m7jt2qwklw] {
        font-weight: 600;
        color: var(--tryerp-text);
    }

.tryerp-parc-card-body[b-m7jt2qwklw] {
    padding: 0.625rem 0.875rem;
    font-size: var(--tryerp-text-body-sm);
}
/* /Components/Pages/Parceiros/Index.razor.rz.scp.css */
/* ==========================================================
   /parceiros — pattern coerente com /nfe e /contas-receber.
   Cards mobile com clique direto para edicao.
   ========================================================== */

[b-9739pxod3x] .tryerp-grid {
    border: none;
    border-radius: 0;
}

[b-9739pxod3x] .tryerp-grid .dxbl-grid-header-row th,
[b-9739pxod3x] .tryerp-grid .dxbl-grid-header-row .dxbl-grid-header-cell {
    font-size: var(--tryerp-text-label);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tryerp-text-subtle);
    background: var(--tryerp-surface-alt);
}

[b-9739pxod3x] .tryerp-grid .dxbl-grid-data-row td {
    font-size: var(--tryerp-text-body);
    color: var(--tryerp-text);
}

[b-9739pxod3x] .tryerp-grid .tryerp-mono {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
}

[b-9739pxod3x] .tryerp-grid .dxbl-grid-data-row:hover {
    background: var(--tryerp-surface-alt) !important;
}

.tryerp-empty-state[b-9739pxod3x] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    background: var(--tryerp-surface);
}

    .tryerp-empty-state .bi[b-9739pxod3x] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-9739pxod3x] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: var(--tryerp-text-body);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-9739pxod3x] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* Cards mobile */
.tryerp-parc-cards[b-9739pxod3x] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--tryerp-surface-alt);
}

.tryerp-parc-card[b-9739pxod3x] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    overflow: hidden;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.15s ease;
}

    .tryerp-parc-card:active[b-9739pxod3x],
    .tryerp-parc-card:hover[b-9739pxod3x] {
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    }

.tryerp-parc-card-header[b-9739pxod3x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.875rem;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
}

    .tryerp-parc-card-header strong[b-9739pxod3x] {
        font-weight: 600;
        color: var(--tryerp-text);
    }

.tryerp-parc-card-body[b-9739pxod3x] {
    padding: 0.625rem 0.875rem;
    font-size: var(--tryerp-text-body-sm);
}
/* /Components/Pages/Produtos/Index.razor.rz.scp.css */
/* ==========================================================
   /produtos — pattern coerente com /parceiros e /nfe.
   Cards mobile com clique direto para edicao.
   ========================================================== */

[b-6nem9be62y] .tryerp-grid {
    border: none;
    border-radius: 0;
}

[b-6nem9be62y] .tryerp-grid .dxbl-grid-header-row th,
[b-6nem9be62y] .tryerp-grid .dxbl-grid-header-row .dxbl-grid-header-cell {
    font-size: var(--tryerp-text-label);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tryerp-text-subtle);
    background: var(--tryerp-surface-alt);
}

[b-6nem9be62y] .tryerp-grid .dxbl-grid-data-row td {
    font-size: var(--tryerp-text-body);
    color: var(--tryerp-text);
}

[b-6nem9be62y] .tryerp-grid .tryerp-mono {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
}

[b-6nem9be62y] .tryerp-grid .dxbl-grid-data-row:hover {
    background: var(--tryerp-surface-alt) !important;
}

.tryerp-empty-state[b-6nem9be62y] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    background: var(--tryerp-surface);
}

    .tryerp-empty-state .bi[b-6nem9be62y] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-6nem9be62y] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: var(--tryerp-text-body);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-6nem9be62y] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* Cards mobile */
.tryerp-parc-cards[b-6nem9be62y] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--tryerp-surface-alt);
}

.tryerp-parc-card[b-6nem9be62y] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    overflow: hidden;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.15s ease;
}

    .tryerp-parc-card:active[b-6nem9be62y],
    .tryerp-parc-card:hover[b-6nem9be62y] {
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    }

.tryerp-parc-card-header[b-6nem9be62y] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.875rem;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
}

    .tryerp-parc-card-header strong[b-6nem9be62y] {
        font-weight: 600;
        color: var(--tryerp-text);
    }

.tryerp-parc-card-body[b-6nem9be62y] {
    padding: 0.625rem 0.875rem;
    font-size: var(--tryerp-text-body-sm);
}
/* /Components/Pages/Tributacao/AliquotasReferencia.razor.rz.scp.css */
.tryerp-empty-state[b-l14t5vhail] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
}

    .tryerp-empty-state .bi[b-l14t5vhail] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-l14t5vhail] {
    font-weight: 600;
    color: var(--tryerp-text);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-l14t5vhail] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}
/* /Components/Pages/Tributacao/ClassificacoesIndex.razor.rz.scp.css */
/* ==========================================================
   /produtos — pattern coerente com /parceiros e /nfe.
   Cards mobile com clique direto para edicao.
   ========================================================== */

[b-pj9n0dqade] .tryerp-grid {
    border: none;
    border-radius: 0;
}

[b-pj9n0dqade] .tryerp-grid .dxbl-grid-header-row th,
[b-pj9n0dqade] .tryerp-grid .dxbl-grid-header-row .dxbl-grid-header-cell {
    font-size: var(--tryerp-text-label);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tryerp-text-subtle);
    background: var(--tryerp-surface-alt);
}

[b-pj9n0dqade] .tryerp-grid .dxbl-grid-data-row td {
    font-size: var(--tryerp-text-body);
    color: var(--tryerp-text);
}

[b-pj9n0dqade] .tryerp-grid .tryerp-mono {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
}

[b-pj9n0dqade] .tryerp-grid .dxbl-grid-data-row:hover {
    background: var(--tryerp-surface-alt) !important;
}

.tryerp-empty-state[b-pj9n0dqade] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    background: var(--tryerp-surface);
}

    .tryerp-empty-state .bi[b-pj9n0dqade] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-pj9n0dqade] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: var(--tryerp-text-body);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-pj9n0dqade] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* Cards mobile */
.tryerp-parc-cards[b-pj9n0dqade] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--tryerp-surface-alt);
}

.tryerp-parc-card[b-pj9n0dqade] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    overflow: hidden;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.15s ease;
}

    .tryerp-parc-card:active[b-pj9n0dqade],
    .tryerp-parc-card:hover[b-pj9n0dqade] {
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    }

.tryerp-parc-card-header[b-pj9n0dqade] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.875rem;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
}

    .tryerp-parc-card-header strong[b-pj9n0dqade] {
        font-weight: 600;
        color: var(--tryerp-text);
    }

.tryerp-parc-card-body[b-pj9n0dqade] {
    padding: 0.625rem 0.875rem;
    font-size: var(--tryerp-text-body-sm);
}

/* Reorder por drag-and-drop */
.tryerp-reorder-row[b-pj9n0dqade] {
    cursor: grab;
}

.tryerp-reorder-row:hover[b-pj9n0dqade] {
    background: var(--tryerp-surface-alt);
}

.tryerp-reorder-row.tryerp-dragging[b-pj9n0dqade] {
    opacity: 0.45;
    background: var(--tryerp-surface-alt);
}

.tryerp-reorder-table .bi-grip-vertical[b-pj9n0dqade] {
    cursor: grab;
}
/* /Components/Pages/Tributacao/GruposFiscais.razor.rz.scp.css */
.tryerp-empty-state[b-jnhob99ee1] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
}

    .tryerp-empty-state .bi[b-jnhob99ee1] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-jnhob99ee1] {
    font-weight: 600;
    color: var(--tryerp-text);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-jnhob99ee1] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}
/* /Components/Pages/Tributacao/GruposTributarios.razor.rz.scp.css */
.tryerp-empty-state[b-n9llc5xk3o] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
}

    .tryerp-empty-state .bi[b-n9llc5xk3o] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-n9llc5xk3o] {
    font-weight: 600;
    color: var(--tryerp-text);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-n9llc5xk3o] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}
/* /Components/Pages/Tributacao/Index.razor.rz.scp.css */
/* ==========================================================
   /produtos — pattern coerente com /parceiros e /nfe.
   Cards mobile com clique direto para edicao.
   ========================================================== */

[b-yjofxlyhtu] .tryerp-grid {
    border: none;
    border-radius: 0;
}

[b-yjofxlyhtu] .tryerp-grid .dxbl-grid-header-row th,
[b-yjofxlyhtu] .tryerp-grid .dxbl-grid-header-row .dxbl-grid-header-cell {
    font-size: var(--tryerp-text-label);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tryerp-text-subtle);
    background: var(--tryerp-surface-alt);
}

[b-yjofxlyhtu] .tryerp-grid .dxbl-grid-data-row td {
    font-size: var(--tryerp-text-body);
    color: var(--tryerp-text);
}

[b-yjofxlyhtu] .tryerp-grid .tryerp-mono {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
}

[b-yjofxlyhtu] .tryerp-grid .dxbl-grid-data-row:hover {
    background: var(--tryerp-surface-alt) !important;
}

.tryerp-empty-state[b-yjofxlyhtu] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    background: var(--tryerp-surface);
}

    .tryerp-empty-state .bi[b-yjofxlyhtu] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-yjofxlyhtu] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: var(--tryerp-text-body);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-yjofxlyhtu] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* Cards mobile */
.tryerp-parc-cards[b-yjofxlyhtu] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--tryerp-surface-alt);
}

.tryerp-parc-card[b-yjofxlyhtu] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    overflow: hidden;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.15s ease;
}

    .tryerp-parc-card:active[b-yjofxlyhtu],
    .tryerp-parc-card:hover[b-yjofxlyhtu] {
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    }

.tryerp-parc-card-header[b-yjofxlyhtu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.875rem;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
}

    .tryerp-parc-card-header strong[b-yjofxlyhtu] {
        font-weight: 600;
        color: var(--tryerp-text);
    }

.tryerp-parc-card-body[b-yjofxlyhtu] {
    padding: 0.625rem 0.875rem;
    font-size: var(--tryerp-text-body-sm);
}
/* /Components/Pages/Tributacao/RegrasIndex.razor.rz.scp.css */
/* ==========================================================
   /produtos — pattern coerente com /parceiros e /nfe.
   Cards mobile com clique direto para edicao.
   ========================================================== */

[b-nx7f828rtw] .tryerp-grid {
    border: none;
    border-radius: 0;
}

[b-nx7f828rtw] .tryerp-grid .dxbl-grid-header-row th,
[b-nx7f828rtw] .tryerp-grid .dxbl-grid-header-row .dxbl-grid-header-cell {
    font-size: var(--tryerp-text-label);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--tryerp-text-subtle);
    background: var(--tryerp-surface-alt);
}

[b-nx7f828rtw] .tryerp-grid .dxbl-grid-data-row td {
    font-size: var(--tryerp-text-body);
    color: var(--tryerp-text);
}

[b-nx7f828rtw] .tryerp-grid .tryerp-mono {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
}

[b-nx7f828rtw] .tryerp-grid .dxbl-grid-data-row:hover {
    background: var(--tryerp-surface-alt) !important;
}

.tryerp-empty-state[b-nx7f828rtw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    color: var(--tryerp-text-muted);
    text-align: center;
    background: var(--tryerp-surface);
}

    .tryerp-empty-state .bi[b-nx7f828rtw] {
        font-size: 2.5rem;
        color: var(--tryerp-text-subtle);
        margin-bottom: 0.75rem;
    }

.tryerp-empty-title[b-nx7f828rtw] {
    font-weight: 600;
    color: var(--tryerp-text);
    font-size: var(--tryerp-text-body);
    margin-bottom: 0.25rem;
}

.tryerp-empty-subtitle[b-nx7f828rtw] {
    font-size: var(--tryerp-text-body-sm);
    color: var(--tryerp-text-muted);
}

/* Cards mobile */
.tryerp-parc-cards[b-nx7f828rtw] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem;
    background: var(--tryerp-surface-alt);
}

.tryerp-parc-card[b-nx7f828rtw] {
    background: var(--tryerp-surface);
    border: 1px solid var(--tryerp-border);
    border-radius: 0.5rem;
    overflow: hidden;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.15s ease;
}

    .tryerp-parc-card:active[b-nx7f828rtw],
    .tryerp-parc-card:hover[b-nx7f828rtw] {
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    }

.tryerp-parc-card-header[b-nx7f828rtw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.875rem;
    border-bottom: 1px solid var(--tryerp-border);
    background: var(--tryerp-surface-alt);
}

    .tryerp-parc-card-header strong[b-nx7f828rtw] {
        font-weight: 600;
        color: var(--tryerp-text);
    }

.tryerp-parc-card-body[b-nx7f828rtw] {
    padding: 0.625rem 0.875rem;
    font-size: var(--tryerp-text-body-sm);
}
/* /Components/Selecao/Selecao.razor.rz.scp.css */
/* ============================================================
   Selecao — componente universal de lookup. Estilo minimalista,
   compatível com o design system "Executive Precision".
   ============================================================ */

.tryerp-selecao[b-vop0vobazb] {
    position: relative;
}

/* Botões com SVG inline — não dependem de font externa para os ícones. */
.tryerp-selecao[b-vop0vobazb]  .tryerp-selecao-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    color: #475569;
    border-color: #cbd5e1;
}

.tryerp-selecao[b-vop0vobazb]  .tryerp-selecao-btn:hover:not(:disabled) {
    background-color: #f1f5f9;
    color: #0f172a;
    border-color: #94a3b8;
}

.tryerp-selecao[b-vop0vobazb]  .tryerp-selecao-btn svg {
    flex-shrink: 0;
}

.tryerp-selecao-dropdown[b-vop0vobazb] {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--tryerp-border, #e5e7eb);
    border-radius: 8px;
    max-height: 320px;
    overflow-y: auto;
    z-index: 1050;
}

.tryerp-selecao-item[b-vop0vobazb] {
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    border-bottom: 1px solid #f1f5f9;
    transition: background-color 100ms ease;
}

.tryerp-selecao-item:last-child[b-vop0vobazb] {
    border-bottom: none;
}

.tryerp-selecao-item:hover[b-vop0vobazb],
.tryerp-selecao-item.destacado[b-vop0vobazb] {
    background-color: rgba(15, 23, 42, 0.04);
}

/* #86: com o mouse sobre a lista, só o item sob o cursor fica aceso (o destaque do teclado não
   compete com o hover — antes o mouseenter movia o destaque, agora ele é só do teclado). */
.tryerp-selecao-dropdown:hover .tryerp-selecao-item.destacado:not(:hover)[b-vop0vobazb] {
    background-color: transparent;
}

.tryerp-selecao-item-display[b-vop0vobazb] {
    font-size: 0.875rem;
    font-weight: 500;
    color: #0f172a;
}

.tryerp-selecao-item-detalhe[b-vop0vobazb] {
    font-size: 0.75rem;
    color: #64748b;
    margin-top: 0.125rem;
}

.tryerp-selecao-mais[b-vop0vobazb] {
    padding: 0.5rem 0.75rem;
    font-size: 0.72rem;
    color: #6b7280;
    background-color: #f8fafc;
    border-top: 1px solid var(--tryerp-border, #e5e7eb);
    text-align: center;
}

/* ============================================================
   Mobile (≤768px):
   - Botões maiores (44px touch target — Apple HIG / Material 48px).
   - Dropdown ocupa largura cheia do viewport para evitar overflow.
   - Itens com mais padding vertical para toque preciso.
   ============================================================ */
@media (max-width: 767.98px) {
    .tryerp-selecao[b-vop0vobazb]  .tryerp-selecao-btn {
        min-width: 44px;
        min-height: 44px;
    }

    .tryerp-selecao-dropdown[b-vop0vobazb] {
        max-height: 60vh;  /* mais espaço útil em mobile */
    }

    .tryerp-selecao-item[b-vop0vobazb] {
        padding: 0.75rem 1rem;  /* alvo de toque maior */
    }

    .tryerp-selecao-item-display[b-vop0vobazb] {
        font-size: 0.95rem;
    }
}
/* /Components/Shared/PageHeader.razor.rz.scp.css */
.tryerp-page-header[b-r0h32qryxn] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0 0 1.25rem 0;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid var(--tryerp-border);
}

.tryerp-page-header-main[b-r0h32qryxn] {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    min-width: 0;
}

.tryerp-page-header-icon[b-r0h32qryxn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--tryerp-radius);
    background: var(--tryerp-primary-soft);
    color: var(--tryerp-primary);
    font-size: 1.25rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.tryerp-page-header-text[b-r0h32qryxn] {
    min-width: 0;
    flex: 1;
}

.tryerp-page-title-line[b-r0h32qryxn] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.tryerp-page-title-extras[b-r0h32qryxn] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.tryerp-page-title[b-r0h32qryxn] {
    font-size: 1.375rem;
    font-weight: 600;
    margin: 0;
    color: var(--tryerp-text);
    letter-spacing: -0.01em;
}

.tryerp-page-subtitle[b-r0h32qryxn] {
    font-size: 0.875rem;
    color: var(--tryerp-text-muted);
    margin: 0.15rem 0 0;
    line-height: 1.4;
}

.tryerp-page-header-actions[b-r0h32qryxn] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;          /* 3+ botões quebram linha em vez de estourar a tela */
    gap: 0.5rem;
    flex-shrink: 0;
    max-width: 100%;
}

@media (max-width: 767.98px) {
    .tryerp-page-header[b-r0h32qryxn] {
        flex-direction: column;
        align-items: stretch;
        padding-bottom: 1rem;
        margin-bottom: 1rem;
    }

    .tryerp-page-header-actions[b-r0h32qryxn] {
        justify-content: stretch;
    }

    .tryerp-page-header-actions > *[b-r0h32qryxn] {
        flex: 1 1 auto;
    }

    /* Celular: o título rola junto; as ações ficam numa barra fixa no rodapé. */
    .tryerp-page-header.fixo .tryerp-page-header-actions[b-r0h32qryxn] {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1020;
        padding: 0.6rem 1rem calc(0.6rem + env(safe-area-inset-bottom));
        background: var(--tryerp-surface);
        border-top: 1px solid var(--tryerp-border);
        box-shadow: 0 -4px 12px rgba(26, 46, 90, 0.08);
        flex-wrap: nowrap;
    }
}
/* /Components/Shared/ToastContainer.razor.rz.scp.css */
/* ============================================================
   Toast container — fixed-position, responsivo.
   - Desktop (≥768px): top-right, stack vertical.
   - Mobile (<768px): bottom-center full-width.
   ============================================================ */

.tryerp-toasts[b-qw7b24o1v6] {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 2000;  /* acima de DxPopup (1050) e dropdowns */
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    pointer-events: none;  /* container não bloqueia clicks atrás */
    max-width: 420px;
    width: calc(100vw - 2rem);
}

.tryerp-toast[b-qw7b24o1v6] {
    pointer-events: auto;  /* mas cada toast individual sim é clicável */
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
    padding: 0.75rem 0.875rem;
    border-radius: 8px;
    background: #fff;
    border: 1px solid var(--tryerp-border, #e5e7eb);
    box-shadow: 0 6px 20px rgba(15, 23, 42, 0.12), 0 2px 6px rgba(15, 23, 42, 0.06);
    font-size: 0.875rem;
    color: #0f172a;
    animation: tryerp-toast-entrar-b-qw7b24o1v6 200ms ease-out;
    transition: opacity 200ms ease-in, transform 200ms ease-in;
}

.tryerp-toast.fechando[b-qw7b24o1v6] {
    opacity: 0;
    transform: translateX(20px);
}

@keyframes tryerp-toast-entrar-b-qw7b24o1v6 {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.tryerp-toast-icon[b-qw7b24o1v6] {
    flex-shrink: 0;
    font-size: 1.125rem;
    line-height: 1;
    margin-top: 0.0625rem;
}

.tryerp-toast-mensagem[b-qw7b24o1v6] {
    flex: 1;
    line-height: 1.4;
    word-break: break-word;
}

.tryerp-toast-fechar[b-qw7b24o1v6] {
    flex-shrink: 0;
    background: transparent;
    border: none;
    color: #94a3b8;
    cursor: pointer;
    padding: 0.125rem;
    border-radius: 4px;
    line-height: 1;
}

.tryerp-toast-fechar:hover[b-qw7b24o1v6] {
    color: #0f172a;
    background: rgba(15, 23, 42, 0.06);
}

/* Variantes por tipo */
.tryerp-toast-sucesso[b-qw7b24o1v6] {
    border-left: 4px solid #10b981;
}
.tryerp-toast-sucesso .tryerp-toast-icon[b-qw7b24o1v6] {
    color: #10b981;
}

.tryerp-toast-erro[b-qw7b24o1v6] {
    border-left: 4px solid #ef4444;
}
.tryerp-toast-erro .tryerp-toast-icon[b-qw7b24o1v6] {
    color: #ef4444;
}

.tryerp-toast-aviso[b-qw7b24o1v6] {
    border-left: 4px solid #f59e0b;
}
.tryerp-toast-aviso .tryerp-toast-icon[b-qw7b24o1v6] {
    color: #f59e0b;
}

.tryerp-toast-info[b-qw7b24o1v6] {
    border-left: 4px solid #3b82f6;
}
.tryerp-toast-info .tryerp-toast-icon[b-qw7b24o1v6] {
    color: #3b82f6;
}

/* ============================================================
   Mobile: bottom-center, full-width (padrão Material/iOS).
   Animação vem de baixo em vez da direita.
   ============================================================ */
@media (max-width: 767.98px) {
    .tryerp-toasts[b-qw7b24o1v6] {
        top: auto;
        bottom: 1rem;
        right: 0.5rem;
        left: 0.5rem;
        width: auto;
        max-width: none;
    }

    .tryerp-toast[b-qw7b24o1v6] {
        animation-name: tryerp-toast-entrar-mobile-b-qw7b24o1v6;
    }

    .tryerp-toast.fechando[b-qw7b24o1v6] {
        transform: translateY(20px);
    }

    @keyframes tryerp-toast-entrar-mobile-b-qw7b24o1v6 {
        from {
            opacity: 0;
            transform: translateY(20px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}
