/* /Controls/FormPagePanel.razor.rz.scp.css */
/* Espelha Controls/FormPagePanel.xaml (WPF): Grid com linhas Auto, Estrela, Auto —
   cabeçalho, conteúdo (rola sozinho) e rodapé de botões, preenchendo toda a altura
   disponível do conteúdo. */

.form-panel[b-rx73z3zqs1] {
  /* Preenche .app-content-body (position:relative) por posicionamento absoluto —
       mais confiável que flex-grow numa cadeia flex aninhada (o corpo não rolava
       de forma consistente com flex:1/height:0 em todos os casos). */
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  background: var(--background);
}

.form-panel-header[b-rx73z3zqs1] {
  flex: 0 0 auto;
  padding: 0.65rem 1.25rem;
  background: var(--content-header-bg);
  border-bottom: 1px solid var(--content-header-border);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--content-title);
}

.form-panel-body[b-rx73z3zqs1] {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: auto;
  padding: 0.3rem 1.05rem;
}

.form-panel-footer[b-rx73z3zqs1] {
  flex: 0 0 auto;
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.65rem 1.25rem;
  background: var(--content-header-bg);
  border-top: 1px solid var(--content-header-border);
}
/* /Controls/ListPagePanel.razor.rz.scp.css */
/* Espelha Controls/ListPagePanel.xaml (WPF): Grid com linhas Auto, Auto, Estrela, Auto —
   cabeçalho, toolbar, corpo (rola sozinho) e rodapé fixos, preenchendo toda a altura
   disponível do conteúdo. */

.list-panel[b-q7qpdhjomm] {
    /* Preenche .app-content-body (position:relative) por posicionamento absoluto —
       mais confiável que flex-grow numa cadeia flex aninhada (o corpo não rolava
       de forma consistente com flex:1/height:0 em todos os casos). */
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    background: var(--background);
}

.list-panel-header[b-q7qpdhjomm] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.65rem 1rem;
    background: var(--content-header-bg);
    border-bottom: 1px solid var(--content-header-border);
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--content-title);
}

.list-panel-header i[b-q7qpdhjomm] {
    color: var(--nav-icon, #1565C0);
    font-size: 1.1rem;
}

.list-panel-toolbar[b-q7qpdhjomm] {
    flex: 0 0 auto;
    padding: 0.5rem 0.75rem;
    background: var(--content-header-bg);
    border-bottom: 1px solid var(--content-header-border);
}

.list-panel-body[b-q7qpdhjomm] {
    flex: 1 1 auto;
    min-height: 0;
    /* Sem moldura: a tabela encosta nas bordas do painel. O respiro vem do padding
       das células das pontas + do cabeçalho (regras ::deep abaixo). O scroll fica
       no .table-responsive interno (não aqui), pra o cabeçalho fixo (position:sticky)
       ter um contêiner de rolagem com altura definida onde "colar". */
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* A grade é quem rola — flex item de altura limitada. */
.list-panel-body[b-q7qpdhjomm]  > .table-responsive {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* Conteúdo que não é tabela (cards de totais, alertas) mantém o respiro antigo. */
.list-panel-body[b-q7qpdhjomm]  > *:not(.table-responsive):not(table) {
    flex: 0 0 auto;
    padding: 0.75rem 1rem 0;
}

/* Respiro nas bordas da tabela: células das pontas afastam do painel; cabeçalho um pouco mais alto. */
.list-panel-body[b-q7qpdhjomm]  table > * > tr > th:first-child,
.list-panel-body[b-q7qpdhjomm]  table > * > tr > td:first-child {
    padding-left: 1rem;
}

.list-panel-body[b-q7qpdhjomm]  table > * > tr > th:last-child,
.list-panel-body[b-q7qpdhjomm]  table > * > tr > td:last-child {
    padding-right: 1rem;
}

.list-panel-body[b-q7qpdhjomm]  table > thead > tr > th {
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
}

.list-panel-footer[b-q7qpdhjomm] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.4rem 0.75rem;
    background: var(--content-header-bg);
    border-top: 1px solid var(--content-header-border);
    font-size: 0.75rem;
    color: var(--text-med);
    flex-wrap: wrap;
}

.list-panel-pager[b-q7qpdhjomm] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    color: var(--text-dark);
    font-size: 0.8125rem;
}
/* /Controls/TabControl.razor.rz.scp.css */
.tabctl[b-wrttmbx88g] {
  flex: 1 1 auto;
  height: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
  /* Fura o padding lateral do .form-panel-body (0 1.05rem) pra faixa de abas e
     painéis irem de ponta a ponta, sem a faixa vazia nas laterais. */
  margin-left: -1.05rem;
  margin-right: -1.05rem;
}

.tabctl-strip[b-wrttmbx88g] {
  flex: 0 0 auto;
  display: flex;
  overflow-x: auto;
  background: var(--content-header-bg);
  border-bottom: 1px solid var(--content-header-border);
}

.tabctl-tab[b-wrttmbx88g] {
  flex: 0 0 auto;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 0.55rem 0.9rem;
  font-size: 0.75rem;
  color: var(--text-med);
  white-space: nowrap;
}

.tabctl-tab:hover[b-wrttmbx88g] {
  background: var(--content-header-border);
}

.tabctl-tab.active[b-wrttmbx88g] {
  border-bottom-color: var(--primary, #90caf9);
  color: var(--text-dark);
  font-weight: 600;
}

.tabctl-content[b-wrttmbx88g] {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
/* /Controls/TabPage.razor.rz.scp.css */
.tabctl-pane[b-5mr2les3ex] {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 1rem 1.05rem;
  background: var(--content-header-bg);
}
/* /Layout/MainLayout.razor.rz.scp.css */
/* Espelha Views/Home/MainWindow.xaml (grid de 4 linhas: header/aviso/body/footer).
   Responsivo: sidebar vira gaveta < 861px (o WPF, janela fixa, não precisava disso).

   Tema Claro/Escuro/Noturno: mesmo esquema de Resources/Themes/{Light,Dark,Night}Theme.xaml
   (WPF) — só que via variáveis CSS em vez de ResourceDictionary trocado em runtime.
   .theme-dark/.theme-night são aplicadas em .app-shell por WebThemeService (equivalente do
   ThemeManager do WPF); a classe base sem modificador é sempre o tema Claro (default). */

.cert-aviso[b-m2ihkwx72n] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px 16px;
    color: #fff;
    font-size: 12px;
    flex-shrink: 0;
}
.cert-aviso-vencendo[b-m2ihkwx72n] { background: #FB8C00; }
.cert-aviso-vencido[b-m2ihkwx72n] { background: #E53935; }
.cert-aviso .btn[b-m2ihkwx72n] {
    text-decoration: underline;
    font-weight: 600;
    color: #fff;
    background: transparent;
    border: none;
    padding: 0;
}
.cert-aviso .btn:hover[b-m2ihkwx72n] { color: #fff; opacity: .85; }

.app-shell[b-m2ihkwx72n] {
    display: flex;
    flex-direction: column;
    height: 100vh;
    overflow: hidden;
    font-family: "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;

    --primary: #90CAF9;
    --primary-dark: #1E88E5;
    --background: #F5F5F5;
    --sidebar-bg: #E3F2FD;
    --sidebar-header-1: #1E88E5;
    --sidebar-header-2: #1565C0;
    --header-text: #1A237E;
    --header-subtext: #5C6BC0;
    --user-card-bg: #FFFFFF;
    --user-card-text: #1A237E;
    --nav-text: #1A237E;
    --nav-icon: #1565C0;
    --nav-chevron: #7986CB;
    --content-title: #1A237E;
    --content-header-bg: #FFFFFF;
    --content-header-border: #E0E0E0;
    --empty-icon: #BBDEFB;
    --empty-text: #90A4AE;
    --footer-text: #1A237E;
    --footer-version: #5C6BC0;
    --text-dark: #212121;
    --text-med: #616161;
    --table-head-bg: #E9EEF4;
    --table-stripe: #F2F4F7;
    --table-row-hover: #DCE7F5;

    background: var(--background);
    color: var(--text-dark);
}

.app-shell.theme-dark[b-m2ihkwx72n] {
    --primary: #1565C0;
    --primary-dark: #0D47A1;
    --background: #1E1E1E;
    --sidebar-bg: #2D2D30;
    --sidebar-header-1: #0D47A1;
    --sidebar-header-2: #082060;
    --header-text: #E0E0E0;
    --header-subtext: #90A4AE;
    --user-card-bg: #3C3C3C;
    --user-card-text: #90CAF9;
    --nav-text: #BBDEFB;
    --nav-icon: #64B5F6;
    --nav-chevron: #546E7A;
    --content-title: #E0E0E0;
    --content-header-bg: #2D2D30;
    --content-header-border: #3D3D3D;
    --empty-icon: #37474F;
    --empty-text: #546E7A;
    --footer-text: #90CAF9;
    --footer-version: #546E7A;
    --text-dark: #E0E0E0;
    --text-med: #B0B0B0;
    --table-head-bg: #37373D;
    --table-stripe: #262629;
    --table-row-hover: #3A4656;
}

.app-shell.theme-night[b-m2ihkwx72n] {
    --primary: #0A1628;
    --primary-dark: #051020;
    --background: #080C10;
    --sidebar-bg: #0D1117;
    --sidebar-header-1: #0D1B2A;
    --sidebar-header-2: #061020;
    --header-text: #8CAABA;
    --header-subtext: #3D5A6E;
    --user-card-bg: #111B27;
    --user-card-text: #4FC3F7;
    --nav-text: #5C7B8A;
    --nav-icon: #2E7396;
    --nav-chevron: #1E3A4A;
    --content-title: #8CAABA;
    --content-header-bg: #0D1117;
    --content-header-border: #1A2B38;
    --empty-icon: #1A2B38;
    --empty-text: #2B3E4D;
    --footer-text: #3D5A6E;
    --footer-version: #2B3E4D;
    --text-dark: #8CAABA;
    --text-med: #546E7A;
    --table-head-bg: #14212D;
    --table-stripe: #0B1219;
    --table-row-hover: #16283A;
}

/* ── Header ───────────────────────────────────────────────────────── */
.app-header[b-m2ihkwx72n] {
    height: 50px;
    flex: 0 0 auto;
    background: var(--primary);
    display: flex;
    align-items: center;
    padding: 0 0.75rem;
    gap: 0.5rem;
}

.mobile-toggle[b-m2ihkwx72n] {
    display: none;
    background: transparent;
    border: none;
    color: var(--header-text);
    font-size: 1.2rem;
    width: 34px;
    height: 34px;
    border-radius: 6px;
    flex: 0 0 auto;
}

.app-header-brand[b-m2ihkwx72n] {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.brand-deco[b-m2ihkwx72n] {
    color: var(--header-subtext);
    font-size: 0.8125rem;
}

.brand-nome[b-m2ihkwx72n] {
    color: var(--header-text);
    font-size: 0.9375rem;
    font-weight: 600;
}

.app-header-right[b-m2ihkwx72n] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.header-icon-btn[b-m2ihkwx72n] {
    background: transparent;
    border: none;
    width: 34px;
    height: 34px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: var(--header-text);
}

.header-icon-btn:hover[b-m2ihkwx72n] {
    background: rgba(255, 255, 255, 0.25);
}

.user-card[b-m2ihkwx72n] {
    margin-left: 0.25rem;
}

.user-card-btn[b-m2ihkwx72n] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--user-card-bg);
    border: none;
    border-radius: 8px;
    padding: 0.25rem 0.5rem 0.25rem 0.25rem;
    box-shadow: 0 1px 6px rgba(144, 202, 249, 0.4);
    color: var(--user-card-text);
}

.user-avatar[b-m2ihkwx72n] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    object-fit: cover;
}

.user-avatar-fallback[b-m2ihkwx72n] {
    background: var(--primary-dark);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
}

.user-nome[b-m2ihkwx72n] {
    font-size: 0.75rem;
    max-width: 9rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Body: sidebar + conteúdo ─────────────────────────────────────── */
.app-body[b-m2ihkwx72n] {
    flex: 1 1 auto;
    display: flex;
    min-height: 0;
    overflow: hidden;
    position: relative;
}

.app-sidebar[b-m2ihkwx72n] {
    flex: 0 0 auto;
    width: 220px;
    display: flex;
    flex-direction: column;
    background: var(--sidebar-bg);
    border-right: 1px solid rgba(0, 0, 0, 0.12);
    transition: width 0.15s ease;
    overflow: hidden;
}

.app-sidebar.collapsed[b-m2ihkwx72n] {
    width: 56px;
}

.app-content[b-m2ihkwx72n] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: var(--background);
}

.app-breadcrumb[b-m2ihkwx72n] {
    height: 42px;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0 1.25rem;
    background: var(--content-header-bg);
    border-bottom: 1px solid var(--content-header-border);
}

.breadcrumb-link[b-m2ihkwx72n] {
    background: none;
    border: none;
    padding: 0;
    color: var(--header-subtext);
    font-size: 0.8125rem;
    cursor: pointer;
}

.breadcrumb-link:hover[b-m2ihkwx72n] {
    text-decoration: underline;
}

.breadcrumb-sep[b-m2ihkwx72n] {
    color: var(--text-med);
    font-size: 0.8125rem;
}

.breadcrumb-current[b-m2ihkwx72n] {
    color: var(--content-title);
    font-size: 0.875rem;
    font-weight: 600;
}

.app-content-body[b-m2ihkwx72n] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    color: var(--text-dark);
    /* âncora para .list-panel/.form-panel (position:absolute; inset:0) — ver
       Controls/ListPagePanel.razor.css / FormPagePanel.razor.css. */
    position: relative;
}

/* ── Footer ───────────────────────────────────────────────────────── */
.app-footer[b-m2ihkwx72n] {
    height: 22px;
    flex: 0 0 auto;
    background: var(--primary);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 0.75rem;
    font-size: 0.625rem;
    color: var(--footer-text);
}

.app-footer-version[b-m2ihkwx72n] {
    color: var(--footer-version);
}

/* ── Responsivo: sidebar vira gaveta sobreposta ──────────────────── */
.sidebar-backdrop[b-m2ihkwx72n] {
    display: none;
}

@media (max-width: 860px) {
    .mobile-toggle[b-m2ihkwx72n] {
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .app-sidebar[b-m2ihkwx72n] {
        position: fixed;
        top: 50px;
        bottom: 22px;
        left: 0;
        width: 250px !important;
        z-index: 1050;
        transform: translateX(-100%);
        transition: transform 0.2s ease;
        box-shadow: 2px 0 10px rgba(0, 0, 0, 0.2);
    }

    .app-sidebar.mobile-open[b-m2ihkwx72n] {
        transform: translateX(0);
    }

    .sidebar-backdrop[b-m2ihkwx72n] {
        display: block;
        position: fixed;
        top: 50px;
        bottom: 22px;
        left: 0;
        right: 0;
        background: rgba(0, 0, 0, 0.35);
        z-index: 1040;
    }

    .user-nome[b-m2ihkwx72n] {
        max-width: 5rem;
    }
}
/* /Layout/NavMenu.razor.rz.scp.css */
/* Espelha o cabeçalho da sidebar (SidebarHeaderBrush, logo, TextoCaixa) de MainWindow.xaml. */

.sidebar-header[b-b0cbhkd5u3] {
    background: linear-gradient(90deg, var(--sidebar-header-1, #1E88E5) 0%, var(--sidebar-header-2, #1565C0) 100%);
    padding: 0.4rem 0.4rem 0.6rem;
}

.sidebar-toggle[b-b0cbhkd5u3] {
    display: block;
    margin-left: auto;
    background: transparent;
    border: none;
    color: #fff;
    width: 32px;
    height: 32px;
    border-radius: 6px;
}

.sidebar-toggle:hover[b-b0cbhkd5u3] {
    background: rgba(255, 255, 255, 0.15);
}

.sidebar-logo[b-b0cbhkd5u3] {
    height: 90px;
    margin: 0.25rem 0.5rem 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sidebar-logo img[b-b0cbhkd5u3] {
    max-height: 100%;
    max-width: 100%;
    object-fit: contain;
}

.sidebar-logo-fallback[b-b0cbhkd5u3] {
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
    text-align: center;
}

.sidebar-caixa[b-b0cbhkd5u3] {
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 600;
    text-align: center;
    padding-bottom: 0.4rem;
}

.sidebar-menu[b-b0cbhkd5u3] {
    padding: 0.4rem;
    overflow-y: auto;
    overflow-x: hidden;
    flex: 1;
    min-height: 0;
}

.sidebar-empty[b-b0cbhkd5u3] {
    color: #7986CB;
    font-size: 0.75rem;
    padding: 0.5rem;
    margin: 0;
}
/* /Pages/Estoque/Produtos.razor.rz.scp.css */
/* Lista de sugestões dos campos type-ahead (Fornecedor / NCM / CEST / Tributação).
   Equivalente ao dropdown do ComboBox editável do WPF (FormSearchComboBoxStyle). */
.typeahead-list[b-oj7euy0uys] {
    border: 1px solid var(--bs-border-color, #ccc);
    border-radius: 4px;
    max-height: 200px;
    overflow: auto;
    margin-top: 2px;
    background: var(--bs-body-bg, #fff);
    position: relative;
    z-index: 5;
}
/* /Pages/Home.razor.rz.scp.css */
.home-empty[b-e71b75lsr1] {
    height: 100%;
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--empty-text, #90A4AE);
    text-align: center;
}

.home-empty i[b-e71b75lsr1] {
    font-size: 4rem;
    color: var(--empty-icon, #BBDEFB);
}

.home-empty p[b-e71b75lsr1] {
    margin-top: 1rem;
    font-size: 1rem;
}

.home-page[b-e71b75lsr1] {
    padding: 1rem;
}

.home-title[b-e71b75lsr1] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-dark, #212121);
    margin: 0;
}

.home-loading[b-e71b75lsr1] {
    text-align: center;
    margin: 2.5rem 0;
    color: var(--text-med, #616161);
}

/* ── Cards coloridos (Totais do dia / cards de contrato da Funerária) ── */
.home-stat-card[b-e71b75lsr1] {
    border-radius: 8px;
    height: 90px;
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #fff;
}
.home-stat-blue[b-e71b75lsr1] { background: #64B5F6; }
.home-stat-green[b-e71b75lsr1] { background: #81C784; }
.home-stat-red[b-e71b75lsr1] { background: #E57373; }
.home-stat-orange[b-e71b75lsr1] { background: #FFB74D; }

.home-stat-value[b-e71b75lsr1] {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.1;
}
.home-stat-value-sm[b-e71b75lsr1] {
    font-size: 20px;
}
.home-stat-label[b-e71b75lsr1] {
    font-size: 11px;
    margin-top: 4px;
}
.home-stat-icon[b-e71b75lsr1] {
    font-size: 44px;
    color: rgba(255, 255, 255, 0.3);
}

/* ── Grade de widgets (equivalente ao WrapPanel + WidgetWidthConverter do WPF):
   1 coluna abaixo de 900px, 2 colunas de 900 a 1500px, 3 colunas acima disso.
   "Totais do dia" sempre ocupa a linha inteira, os demais widgets é que dividem
   colunas entre si — mesmo comportamento do WidgetWidthConverter (chave "totais"
   sempre recebe a largura total do container). ── */
.home-widgets-wrap[b-e71b75lsr1] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
.home-widget-item[b-e71b75lsr1] {
    flex: 1 1 100%;
    min-width: 0;
}
.home-widget-item-full[b-e71b75lsr1] {
    flex-basis: 100%;
}
@media (min-width: 900px) {
    .home-widget-item:not(.home-widget-item-full)[b-e71b75lsr1] {
        flex: 1 1 calc(50% - 0.5rem);
    }
}
@media (min-width: 1500px) {
    .home-widget-item:not(.home-widget-item-full)[b-e71b75lsr1] {
        flex: 1 1 calc(33.333% - 0.5rem);
    }
}

/* ── Cards de widget (gráfico / listas) ── */
.home-widget-card[b-e71b75lsr1] {
    background: var(--content-header-bg, #fff);
    border-radius: 8px;
    padding: 14px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}
.home-widget-title[b-e71b75lsr1] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-dark, #212121);
    margin-bottom: 8px;
}
.home-widget-empty[b-e71b75lsr1] {
    font-style: italic;
    color: var(--text-med, #616161);
    margin: 0;
}
.home-list-row[b-e71b75lsr1] {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 4px 0;
    color: var(--text-dark, #212121);
}
.home-list-value[b-e71b75lsr1] {
    font-weight: 600;
    white-space: nowrap;
}
.home-text-red[b-e71b75lsr1] { color: #E57373; }
.home-text-orange[b-e71b75lsr1] { color: #FFB74D; }

/* ── Painel "Personalizar" (slide-out à direita) ── */
.home-personalizar-backdrop[b-e71b75lsr1] {
    position: fixed;
    inset: 0;
    z-index: 1040;
}
.home-personalizar-panel[b-e71b75lsr1] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(300px, 100vw);
    background: var(--content-header-bg, #fff);
    box-shadow: -4px 0 14px rgba(0, 0, 0, 0.2);
    padding: 16px;
    z-index: 1041;
    overflow-y: auto;
}
.home-personalizar-row[b-e71b75lsr1] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    color: var(--text-dark, #212121);
}

/* ── Card de anel de percentual (Funerária) ── */
.home-ring-card[b-e71b75lsr1] {
    background: var(--content-header-bg, #fff);
    border-radius: 8px;
    padding: 14px 10px;
    text-align: center;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}
.home-ring-value[b-e71b75lsr1] {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-dark, #212121);
}
.home-ring-label[b-e71b75lsr1] {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-med, #616161);
    margin-top: 2px;
}
/* /Pages/LinkPlaceholder.razor.rz.scp.css */
.placeholder-box[b-vs7i6l4wmw] {
    height: 100%;
    min-height: 60vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--empty-text, #90A4AE);
    text-align: center;
}

.placeholder-box i[b-vs7i6l4wmw] {
    font-size: 3.5rem;
    color: var(--empty-icon, #BBDEFB);
}

.placeholder-box p[b-vs7i6l4wmw] {
    margin-top: 1rem;
    font-size: 1rem;
}
/* /Pages/Login.razor.rz.scp.css */
/* Espelha Views/Auth/LoginWindow.xaml (WPF) + Resources/Colors.xaml + Resources/Styles.xaml
   (LoginBgBrush, LoginCardBrush, LoginTextBoxStyle, LoginPasswordBoxStyle, LoginButtonStyle). */

.login-bg[b-rozfupqmk4] {
    position: relative;
    min-height: 100vh;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 2rem 1rem;
    font-family: "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
    /* LoginBgBrush: diagonal #0D1B2A -> #0A3D62 -> #1B5E20 */
    background: linear-gradient(135deg, #0D1B2A 0%, #0A3D62 50%, #1B5E20 100%);
}

.login-blob[b-rozfupqmk4] {
    position: absolute;
    border-radius: 50%;
    opacity: 0.05;
    pointer-events: none;
}

.login-blob-blue[b-rozfupqmk4] {
    width: 350px;
    height: 350px;
    left: -80px;
    bottom: -80px;
    background: #2196F3;
}

.login-blob-green[b-rozfupqmk4] {
    width: 250px;
    height: 250px;
    right: -60px;
    top: -60px;
    background: #4CAF50;
}

.login-card[b-rozfupqmk4] {
    position: relative;
    width: min(820px, 100%);
    border-radius: 20px;
    /* LoginCardBrush: gradiente verde->azul, ~30% opacidade, sobre o fundo escuro */
    background: linear-gradient(180deg, rgba(76, 175, 80, 0.3) 0%, rgba(33, 150, 243, 0.3) 100%);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.35);
    display: flex;
    flex-wrap: wrap;
    overflow: hidden;
}

.login-brand[b-rozfupqmk4], .login-form[b-rozfupqmk4] {
    flex: 1 1 320px;
    padding: 2.25rem 2.5rem;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.login-brand[b-rozfupqmk4] {
    align-items: center;
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.login-brand h1[b-rozfupqmk4] {
    margin: 0;
    font-size: 2.375rem;
    font-weight: 700;
    color: #fff;
}

.login-brand-sub[b-rozfupqmk4] {
    margin: 0.6rem 0 0;
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.87);
}

.login-brand-dev[b-rozfupqmk4] {
    margin: 0.4rem 0 0;
    font-size: 0.6875rem;
    color: rgba(255, 255, 255, 0.6);
}

.login-form h2[b-rozfupqmk4] {
    margin: 0 0 1.5rem;
    font-size: 1.375rem;
    font-weight: 700;
    color: #fff;
}

.login-field[b-rozfupqmk4] {
    width: 100%;
    margin-bottom: 1rem;
}

.login-field label[b-rozfupqmk4] {
    display: block;
    margin-bottom: 0.25rem;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: rgba(255, 255, 255, 0.6);
}

.login-input[b-rozfupqmk4] {
    display: block;
    width: 100%;
    box-sizing: border-box;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
    color: #fff;
    font-size: 0.875rem;
    padding: 0.4rem 0.25rem;
    outline: none;
}

.login-input:focus[b-rozfupqmk4] {
    border-bottom-color: #90CAF9;
}

.login-input[b-rozfupqmk4]::placeholder {
    color: rgba(255, 255, 255, 0.4);
}

.login-error[b-rozfupqmk4] {
    margin: 0.6rem 0 0;
    color: #EF5350;
    font-size: 0.6875rem;
}

.login-btn[b-rozfupqmk4] {
    margin-top: 1.25rem;
    width: 100%;
    background: #fff;
    color: #0D47A1;
    font-size: 0.875rem;
    font-weight: 600;
    border: none;
    border-radius: 24px;
    padding: 0.6rem 0;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(13, 71, 161, 0.25);
    transition: background-color .15s ease;
}

.login-btn:hover:not(:disabled)[b-rozfupqmk4] { background: #E3F2FD; }
.login-btn:active:not(:disabled)[b-rozfupqmk4] { background: #BBDEFB; }
.login-btn:disabled[b-rozfupqmk4] { opacity: 0.55; cursor: default; }

.login-loading[b-rozfupqmk4] {
    margin: 0.6rem 0 0;
    text-align: center;
    color: rgba(255, 255, 255, 0.67);
    font-size: 0.6875rem;
}

.login-version[b-rozfupqmk4] {
    position: absolute;
    right: 0.75rem;
    bottom: 0.5rem;
    color: rgba(255, 255, 255, 0.27);
    font-size: 0.625rem;
}

@media (max-width: 700px) {
    .login-brand[b-rozfupqmk4] {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    }
}
/* /Shared/MenuCheckNode.razor.rz.scp.css */
.menu-check-node[b-oxvtdzpm56] {
    display: block;
}

.menu-check-item[b-oxvtdzpm56] {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .15rem .25rem;
    margin: .05rem 0;
    font-size: .8rem;
    line-height: 1.2;
    cursor: pointer;
}

.menu-check-item input[b-oxvtdzpm56] {
    flex: 0 0 auto;
}

.menu-check-children[b-oxvtdzpm56] {
    padding-left: 1.35rem;
}
/* /Shared/SidebarMenuNode.razor.rz.scp.css */
/* Espelha o Border colorido do ícone + Button (NavItemStyle) do MenuNodeTemplate (WPF). */

.nav-node-btn[b-r4mttjuhjz] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: transparent;
    border: none;
    color: var(--nav-text, #1A237E);
    padding: 0.45rem 0.6rem;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.8125rem;
    text-align: left;
}

.nav-node-btn:hover[b-r4mttjuhjz] {
    /* Mesmo azul translúcido do NavItemStyle (WPF, IsMouseOver: #221E88E5) — funciona em
       qualquer tema, ao contrário de um branco/cinza fixo que só combina com tema claro. */
    background: rgba(30, 136, 229, 0.13);
}

.nav-node-btn.active[b-r4mttjuhjz] {
    /* Mesmo destaque do NavItemStyle (WPF, IsSelected: fundo #331E88E5 + borda esquerda azul),
       independente de tema — usa a cor de destaque, não branco sólido. */
    background: rgba(30, 136, 229, 0.2);
    box-shadow: inset 3px 0 0 #1E88E5;
    font-weight: 600;
}

.nav-node-icon[b-r4mttjuhjz] {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 4px;
    background: rgba(30, 136, 229, 0.13);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--nav-icon, #1565C0);
    font-size: 0.8rem;
}

.nav-node-chevron[b-r4mttjuhjz] {
    flex: 0 0 auto;
    font-size: 0.6rem;
    color: var(--nav-chevron, #7986CB);
    width: 0.7rem;
}

.nav-node-label[b-r4mttjuhjz] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nav-node-children[b-r4mttjuhjz] {
    margin-left: 0.9rem;
    /* Cinza neutro translúcido em vez de preto fixo — preto a 8% some no tema escuro/noturno. */
    border-left: 1px solid rgba(128, 128, 128, 0.25);
    padding-left: 0.15rem;
}
