/* /Components/Layout/AuthLayout.razor.rz.scp.css */
/* ===== Auth Layout =====
   Portado do login do Segla ERP (`.sglogin-root`): claro, ocupando a tela toda.
   O padding some porque o Login desenha o próprio split de tela cheia. */
.auth-layout[b-k9ubs2pjv9] {
    min-height: 100vh;
    display: flex;
    align-items: stretch;
    justify-content: stretch;
    background: var(--bg-secondary);
    font-family: var(--font-family);
    color: var(--text-primary);
}

/* ===== Blazor Error UI ===== */
#blazor-error-ui[b-k9ubs2pjv9] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-k9ubs2pjv9] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}
/* /Components/Layout/CmsLayout.razor.rz.scp.css */
/* ===== Layout Container ===== */
.cms-layout[b-uefka660t0] {
    display: flex;
    min-height: 100vh;
    font-family: var(--font-family);
    background: var(--bg-primary);
    color: var(--text-heading);
}

/* ===== Sidebar ===== */
.cms-sidebar[b-uefka660t0] {
    width: 260px;
    background: var(--bg-secondary);
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 100;
    transition: width 0.25s ease;
}

.sidebar-collapsed .cms-sidebar[b-uefka660t0] {
    width: 72px;
}

.sidebar-header[b-uefka660t0] {
    padding: 20px;
    border-bottom: 1px solid var(--border);
}

.logo[b-uefka660t0] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.logo-text[b-uefka660t0] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--accent);
    letter-spacing: -0.025em;
    white-space: nowrap;
}

/* ===== Sidebar Navigation ===== */
.sidebar-nav[b-uefka660t0] {
    flex: 1;
    overflow-y: auto;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sidebar-nav[b-uefka660t0]::-webkit-scrollbar {
    width: 4px;
}

.sidebar-nav[b-uefka660t0]::-webkit-scrollbar-track {
    background: transparent;
}

.sidebar-nav[b-uefka660t0]::-webkit-scrollbar-thumb {
    background: var(--border);
    border-radius: 2px;
}

.nav-section-label[b-uefka660t0] {
    padding: 8px 14px 4px;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
}

[b-uefka660t0] .nav-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 8px;
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
    transition: all 0.15s ease;
    cursor: pointer;
    white-space: nowrap;
}

[b-uefka660t0] .nav-item:hover {
    background: color-mix(in srgb, var(--accent) 8%, transparent);
    color: var(--text-heading);
}

[b-uefka660t0] .nav-item.active {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    color: var(--accent);
}

[b-uefka660t0] .nav-item .nav-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

[b-uefka660t0] .nav-item .nav-icon svg {
    width: 20px;
    height: 20px;
}

[b-uefka660t0] .nav-back {
    color: var(--text-muted);
}

[b-uefka660t0] .nav-back:hover {
    color: var(--text-secondary);
    background: color-mix(in srgb, var(--text-muted) 8%, transparent);
}

.nav-divider[b-uefka660t0] {
    height: 1px;
    background: var(--border);
    margin: 8px 0;
}

/* Collapsed sidebar: center icons */
.sidebar-collapsed[b-uefka660t0]  .nav-item {
    justify-content: center;
    padding: 10px;
}

.sidebar-collapsed .sidebar-header[b-uefka660t0] {
    padding: 20px 12px;
    display: flex;
    justify-content: center;
}

.sidebar-collapsed .logo[b-uefka660t0] {
    justify-content: center;
}

.sidebar-collapsed .nav-section-label[b-uefka660t0] {
    display: none;
}

/* ===== Main Content Area ===== */
.cms-main[b-uefka660t0] {
    flex: 1;
    margin-left: 260px;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    transition: margin-left 0.25s ease;
}

.sidebar-collapsed .cms-main[b-uefka660t0] {
    margin-left: 72px;
}

/* ===== Header ===== */
.cms-header[b-uefka660t0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 24px;
    height: 64px;
    background: var(--bg-secondary);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 50;
}

.toggle-sidebar[b-uefka660t0] {
    background: none;
    border: 1px solid var(--border);
    color: var(--text-secondary);
    font-size: 1.25rem;
    cursor: pointer;
    padding: 6px 10px;
    border-radius: 6px;
    transition: all 0.15s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.toggle-sidebar:hover[b-uefka660t0] {
    background: var(--bg-hover);
    color: var(--text-heading);
    border-color: var(--text-muted);
}

.header-title[b-uefka660t0] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.875rem;
    color: var(--text-secondary);
}

.header-badge[b-uefka660t0] {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    color: var(--accent);
    font-size: 0.75rem;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 4px;
    letter-spacing: 0.025em;
}

.header-right[b-uefka660t0] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.theme-toggle[b-uefka660t0] {
    background: none;
    border: 1px solid var(--border);
    color: var(--text-secondary);
    font-size: 1.125rem;
    cursor: pointer;
    padding: 6px 10px;
    border-radius: 6px;
    transition: all 0.15s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.theme-toggle:hover[b-uefka660t0] {
    background: var(--bg-hover);
    border-color: var(--text-muted);
}

.preview-btn[b-uefka660t0] {
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 500;
    padding: 6px 12px;
    border-radius: 6px;
    border: 1px solid var(--border);
    transition: all 0.15s ease;
    display: flex;
    align-items: center;
    gap: 6px;
}

.preview-btn:hover[b-uefka660t0] {
    background: var(--bg-hover);
    color: var(--text-heading);
    border-color: var(--text-muted);
}

.logout-btn[b-uefka660t0] {
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
    padding: 6px 12px;
    border-radius: 6px;
    transition: all 0.15s ease;
}

.logout-btn:hover[b-uefka660t0] {
    color: var(--danger);
    background: color-mix(in srgb, var(--danger) 8%, transparent);
}

/* ===== Content ===== */
.cms-content[b-uefka660t0] {
    flex: 1;
    padding: 24px;
    background: var(--bg-primary);
}

/* ===== Blazor Error UI ===== */
#blazor-error-ui[b-uefka660t0] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-uefka660t0] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

/* ===== Responsive ===== */
@media (max-width: 768px) {
    .cms-sidebar[b-uefka660t0] {
        width: 72px;
    }

    .cms-main[b-uefka660t0] {
        margin-left: 72px;
    }

    .sidebar-collapsed .cms-sidebar[b-uefka660t0] {
        width: 0;
        overflow: hidden;
        border-right: none;
    }

    .sidebar-collapsed .cms-main[b-uefka660t0] {
        margin-left: 0;
    }

    .cms-content[b-uefka660t0] {
        padding: 16px;
    }

    .logo-text[b-uefka660t0] {
        display: none;
    }

    .nav-section-label[b-uefka660t0] {
        display: none;
    }

    [b-uefka660t0] .nav-item {
        justify-content: center;
        padding: 10px;
    }

    [b-uefka660t0] .nav-item span:not(.nav-icon) {
        display: none;
    }

    .sidebar-header[b-uefka660t0] {
        padding: 20px 12px;
        display: flex;
        justify-content: center;
    }

    .logo[b-uefka660t0] {
        justify-content: center;
    }

    .header-title span:not(.header-badge)[b-uefka660t0] {
        display: none;
    }
}

@media (max-width: 480px) {
    .cms-header[b-uefka660t0] {
        padding: 0 12px;
    }

    .cms-content[b-uefka660t0] {
        padding: 12px;
    }
}
/* /Components/Layout/HevyMainLayout.razor.rz.scp.css */
/* Overrides locais do shell Hevy usados apenas por HevyMainLayout.
   O hevy-shell.css (pacote canonico) fica intocado — todo ajuste especifico
   do produto vive aqui via CSS isolation do Blazor. */

/* Sem a barra de chrome, o grid da janela e uma unica linha "side | main"
   em vez de duas ("chrome chrome" / "side main"). */
[b-uzud2aco8f] .window.no-chrome {
    grid-template-rows: 1fr;
    grid-template-areas: "side main";
}

/* Search da sidebar herda o visual do .chrome-address (pill translucido,
   texto centralizado), guardadas as proporcoes: input maior que o rotulo
   do endereco, mas mesmo raio, padding proporcional e centralizacao. */
[b-uzud2aco8f] .side .search {
    justify-content: center;
    padding: 0 10px;
    border-radius: 7px;
    letter-spacing: 0.01em;
    gap: 6px;
    height: 34px;
    flex: 0 0 34px;
    box-sizing: border-box;
}
[b-uzud2aco8f] .side .search input { height: 100%; padding: 0; }
[b-uzud2aco8f] .side .search svg { color: var(--ink-3); flex: 0 0 auto; }
/* input com flex:1 (padrao do pacote) faz text-align:center centralizar
   dentro da area do input inteira — desloca visualmente do icone.
   Aqui o input tem largura natural (do placeholder / texto digitado),
   entao ficando grudado com o icone o par centraliza como um todo. */
[b-uzud2aco8f] .side .search input {
    flex: 0 1 auto;
    width: auto;
    min-width: 0;
    max-width: 100%;
    font-size: 12px;
}
[b-uzud2aco8f] .side .search input::placeholder {
    color: var(--ink-3);
    opacity: 1;
}

/* Sidebar: nao rola inteira. O wrapper .side-scroll (envolve o NavMenu) e
   quem rola sozinho — brand + user + search continuam fixos no topo. */
[b-uzud2aco8f] .window > .side {
    min-height: 0;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
}
[b-uzud2aco8f] .side > .brand,
[b-uzud2aco8f] .side > .user,
[b-uzud2aco8f] .side > .search {
    flex: 0 0 auto;
}
[b-uzud2aco8f] .side > .side-scroll {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    /* Esconde a scrollbar visualmente (mantem funcional via wheel/touch). */
    scrollbar-width: none;
    -ms-overflow-style: none;
}
[b-uzud2aco8f] .side > .side-scroll::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

/* Rodape da sidebar com a versao publicada; fixo abaixo do menu que rola. */
.sg-versao[b-uzud2aco8f] {
    flex: 0 0 auto;
    padding: 10px 14px 12px;
    font-size: 10.5px;
    color: var(--ink-3);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    user-select: text;
}
.window.side-collapsed .sg-versao[b-uzud2aco8f] {
    display: none;
}

/* Menu do usuario com fonte 11px (padrao do pacote e 12px) — aderente ao
   corpo tipografico Open Sans do Hevy. Foi portado para o body pelo
   hevy-shell.js, entao o seletor precisa alcancar la — usa :global via
   ::deep tradicional. Como o CSS isolation do Blazor limita ao componente,
   e o .umenu foi movido para <body>, definimos como uma segunda regra
   global via HeadContent. */

/* ============================================================
   Syncfusion Charts dentro de .panel — herda linguagem Hevy.
   Sem o override, o SfChart renderiza com fundo branco solido,
   fonte Segoe UI e paddings proprios que destoam do painel
   translucido e da tipografia Open Sans do shell.
   ============================================================ */
/* Escopo restrito aos graficos de proposito. Havia um `.e-control` nesta
   lista: ele alcanca QUALQUER componente Syncfusion dentro do painel e,
   com especificidade (0,3,0) + !important, deixava o popup do filtro
   Excel do grid transparente — o popup nasce dentro do .panel, nao no
   body. .e-chart/.e-accumulationchart ja cobrem o alvo real. */
[b-uzud2aco8f] .panel .e-chart,
[b-uzud2aco8f] .panel .e-accumulationchart {
    background: transparent !important;
    font-family: 'Open Sans', 'Segoe UI', Roboto, sans-serif !important;
}
[b-uzud2aco8f] .panel .e-chart > svg,
[b-uzud2aco8f] .panel .e-accumulationchart > svg {
    background: transparent !important;
    overflow: visible;
}
[b-uzud2aco8f] .panel .e-chart text,
[b-uzud2aco8f] .panel .e-accumulationchart text {
    font-family: 'Open Sans', 'Segoe UI', Roboto, sans-serif !important;
    font-weight: 300 !important;
    font-size: 11px !important;
    fill: var(--ink-3) !important;
}
/* Gridlines quase invisíveis para não competir com a linha do gráfico. */
[b-uzud2aco8f] .panel .e-chart .e-major-grid-lines,
[b-uzud2aco8f] .panel .e-chart line.e-major-grid-lines,
[b-uzud2aco8f] .panel .e-chart path.e-major-grid-lines {
    stroke: var(--rule-hair) !important;
    stroke-width: 1 !important;
}
/* Elimina o espaço vazio antes/depois do canvas do chart dentro do panel. */
[b-uzud2aco8f] .panel .e-chart,
[b-uzud2aco8f] .panel .e-accumulationchart {
    margin: 0 !important;
}

/* Fundo branco padrao do Syncfusion (aplicado como <rect fill="#FFFFFF"> no
   primeiro elemento do svg) — precisa ser transparente para o pane translucido
   do Hevy aparecer por baixo. */
[b-uzud2aco8f] .panel .e-chart svg > rect:first-child,
[b-uzud2aco8f] .panel .e-accumulationchart svg > rect:first-child {
    fill: transparent !important;
    fill-opacity: 0 !important;
}

/* Panel como flex column para o chart poder esticar (flex:1) e ambos panels
   dentro de .split/.pipeline ficarem com a mesma altura. */
[b-uzud2aco8f] .split .panel,
[b-uzud2aco8f] .pipeline .panel,
[b-uzud2aco8f] .wide-row .panel,
[b-uzud2aco8f] .half-row .panel,
[b-uzud2aco8f] .lk-grid-4 .panel {
    display: flex;
    flex-direction: column;
}
/* Charts esticam para preencher o panel — sem deixar espaco vazio.
   Sem max-height aqui: o panel se equaliza com o panel irmao (grid stretch)
   e o chart cresce junto para casar as alturas. */
[b-uzud2aco8f] .split .panel > .e-chart,
[b-uzud2aco8f] .pipeline .panel > .e-chart,
[b-uzud2aco8f] .wide-row .panel > .e-chart,
[b-uzud2aco8f] .half-row .panel > .e-chart,
[b-uzud2aco8f] .lk-grid-4 .panel > .e-chart {
    flex: 1 1 auto;
    min-height: 200px;
    display: block;
}
/* Container que Syncfusion cria envolvendo o svg — se ele nao tiver 100%
   de altura, o svg tambem nao herda. */
[b-uzud2aco8f] .split .panel > .e-chart .e-chart-container,
[b-uzud2aco8f] .pipeline .panel > .e-chart .e-chart-container,
[b-uzud2aco8f] .wide-row .panel > .e-chart .e-chart-container,
[b-uzud2aco8f] .half-row .panel > .e-chart .e-chart-container,
[b-uzud2aco8f] .lk-grid-4 .panel > .e-chart .e-chart-container {
    height: 100% !important;
}

/* Donut + legenda: reduz o gap em ~30% (24px -> 17px) e mantem o donut
   em 200px (nao apertado quando o panel esta em 4/12 col). */
[b-uzud2aco8f] .donut-wrap { gap: 17px !important; }
[b-uzud2aco8f] .donut-wrap .e-accumulationchart {
    width: 200px !important;
    height: 200px !important;
    flex: 0 0 200px;
}
/* O svg do chart tambem precisa ocupar 100% do container para o "liquido"
   funcionar — sem isso, Fluent2 renderiza no height fixo passado por props. */
[b-uzud2aco8f] .split .panel > .e-chart > svg,
[b-uzud2aco8f] .pipeline .panel > .e-chart > svg,
[b-uzud2aco8f] .wide-row .panel > .e-chart > svg,
[b-uzud2aco8f] .half-row .panel > .e-chart > svg {
    width: 100% !important;
    height: 100% !important;
}
/* Panels do dashboard mais compactos (mockup usa panels curtos). */
[b-uzud2aco8f] .split .panel,
[b-uzud2aco8f] .pipeline .panel,
[b-uzud2aco8f] .lk-grid-4 .panel {
    padding: 14px 18px 16px !important;
}

/* Espaco entre o subtitulo do page-head e as tabs — pacote usa 28px,
   deixamos 10px para nao gerar aquele "buraco" antes das tabs. */
[b-uzud2aco8f] .main-head .tabs { margin-top: 10px !important; }

/* Panels do split (NF-e por Período + donut) — cap na altura para nao ficar
   um bloco enorme com sobra de espaco quando o irmao e curto (o donut de
   200x200 + legenda fica em ~280px). */
[b-uzud2aco8f] .split .panel { max-height: 300px; }

/* ============================================================
   Syncfusion Grid dentro de .panel.panel-grid — pagina cheia de
   grid embarcada no shell Hevy (HevyCte é o piloto).

   Contrato de uso: envolva o SfGrid em <div class="panel panel-grid">
   dentro do .main-scroll (que precisa também virar flex column para
   o painel esticar em altura). Sem estes overrides, o SfGrid renderiza
   com fundo branco solido e Segoe UI, destoando do pane translucido
   e da tipografia Open Sans do shell.
   ============================================================ */

/* .main-scroll com um filho .panel.panel-grid vira flex column para o
   painel poder esticar (flex:1) e o grid preencher a altura restante. */
[b-uzud2aco8f] .main-scroll:has(> .panel-grid) {
    display: flex;
    flex-direction: column;
}
[b-uzud2aco8f] .main-scroll > .panel.panel-grid {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    /* Moldura removida — grid vira "plano" como no Segla:
       sem pane translucido, sem borda arredondada, sem sombra. */
    padding: 0 !important;
    overflow: hidden;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
[b-uzud2aco8f] .main-scroll > .panel.panel-grid > .e-grid {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    border: 0 !important;
    background: transparent !important;
}
/* Cabecalho/pager sem borda extra dentro do painel. */
[b-uzud2aco8f] .panel-grid .e-grid,
[b-uzud2aco8f] .panel-grid .e-grid .e-gridheader,
[b-uzud2aco8f] .panel-grid .e-grid .e-gridcontent,
[b-uzud2aco8f] .panel-grid .e-grid .e-gridfooter,
[b-uzud2aco8f] .panel-grid .e-grid .e-gridpager,
[b-uzud2aco8f] .panel-grid .e-grid .e-groupdroparea {
    background: transparent !important;
    font-family: 'Open Sans', 'Segoe UI', Roboto, sans-serif !important;
}
[b-uzud2aco8f] .panel-grid .e-grid,
[b-uzud2aco8f] .panel-grid .e-grid .e-rowcell,
[b-uzud2aco8f] .panel-grid .e-grid .e-headercell,
[b-uzud2aco8f] .panel-grid .e-grid .e-summarycell {
    font-size: 12px !important;
    color: var(--ink) !important;
}
[b-uzud2aco8f] .panel-grid .e-grid .e-headercelldiv,
[b-uzud2aco8f] .panel-grid .e-grid .e-headertext {
    font-weight: 500 !important;
    color: var(--ink-2) !important;
}
/* Gridlines: remove verticais (bordas laterais das celulas) e mantem
   apenas a horizontal inferior nas rows — visual mais limpo, sem
   "grade de planilha". Header sem borda individual: um unico
   separador tenue vem do .e-gridheader (regra logo abaixo). */
[b-uzud2aco8f] .panel-grid .e-grid .e-rowcell,
[b-uzud2aco8f] .panel-grid .e-grid .e-summarycell {
    border-left: 0 !important;
    border-right: 0 !important;
    border-top: 0 !important;
    border-bottom: 1px solid var(--rule-hair) !important;
}
[b-uzud2aco8f] .panel-grid .e-grid .e-headercell,
[b-uzud2aco8f] .panel-grid .e-grid .e-filterbarcell {
    border: 0 !important;
}
/* Header sem NENHUMA borda (nem a linha base) — visual totalmente
   limpo; a separacao com as rows fica so pela primeira row com
   border-bottom em --rule-hair. */
[b-uzud2aco8f] .panel-grid .e-grid .e-gridheader,
[b-uzud2aco8f] .panel-grid .e-grid .e-headercontent {
    border: 0 !important;
}
/* Sem hover colorido — linhas continuam totalmente planas.
   Celulas congeladas ficam de fora: sem o :not() esta regra (0,5,0)
   vencia a cor opaca do freeze (0,4,0) e a coluna congelada voltava a
   ser transparente justamente na linha sob o cursor. */
[b-uzud2aco8f] .panel-grid .e-grid .e-row:hover .e-rowcell:not(.e-leftfreeze):not(.e-rightfreeze):not(.e-fixedfreeze) {
    background: transparent !important;
}
/* Filter bar (Excel filter) e area de agrupamento com fundo transparente. */
[b-uzud2aco8f] .panel-grid .e-grid .e-filterbar,
[b-uzud2aco8f] .panel-grid .e-grid .e-filterbarcell:not(.e-leftfreeze):not(.e-rightfreeze):not(.e-fixedfreeze) {
    background: transparent !important;
}

/* Zebra removida: todas as rows (par e impar) transparentes.
   O global do app.css e o Fluent2 pintam .e-altrow — sobrescrever no
   escopo do panel-grid.
   Celulas de coluna congelada ficam de fora: sao position:sticky e
   precisam de fundo opaco (cor em hevy-shell.css), senao o conteudo
   rola por baixo delas. */
[b-uzud2aco8f] .panel-grid .e-grid .e-row .e-rowcell:not(.e-leftfreeze):not(.e-rightfreeze):not(.e-fixedfreeze),
[b-uzud2aco8f] .panel-grid .e-grid .e-altrow .e-rowcell:not(.e-leftfreeze):not(.e-rightfreeze):not(.e-fixedfreeze) {
    background: transparent !important;
}
/* O fundo opaco das celulas/headers congelados fica so em hevy-shell.css.
   Nao duplicar aqui: o scoped vira `[b-xxx] .panel-grid ...` (0,5,0) e
   venceria o `body[data-theme="dark"] ...` global, travando o tom claro
   tambem no tema escuro. */

/* Rodape/pager sem fundo — plano como no Segla. */
[b-uzud2aco8f] .panel-grid .e-grid .e-gridpager,
[b-uzud2aco8f] .panel-grid .e-grid .e-gridfooter,
[b-uzud2aco8f] .panel-grid .e-grid .e-summaryrow,
[b-uzud2aco8f] .panel-grid .e-grid .e-summaryrow .e-summarycell,
[b-uzud2aco8f] .panel-grid .e-grid .e-pager,
[b-uzud2aco8f] .panel-grid .e-grid .e-pager .e-pagercontainer {
    background: transparent !important;
    border-color: var(--rule-hair) !important;
}

/* Tipografia do header e das rows — tudo Open Sans light (300),
   como o resto do shell Hevy. */
[b-uzud2aco8f] .panel-grid .e-grid .e-headercell,
[b-uzud2aco8f] .panel-grid .e-grid .e-headercelldiv,
[b-uzud2aco8f] .panel-grid .e-grid .e-headertext {
    font-family: 'Open Sans', 'Segoe UI', Roboto, sans-serif !important;
    font-size: 11px !important;
    font-weight: 300 !important;
    letter-spacing: 0.03em !important;
    color: var(--ink-3) !important;
    text-transform: none !important;
}
[b-uzud2aco8f] .panel-grid .e-grid .e-rowcell {
    font-family: 'Open Sans', 'Segoe UI', Roboto, sans-serif !important;
    font-size: 12px !important;
    font-weight: 300 !important;
    color: var(--ink) !important;
}

/* Altura condensada — Fluent2 default e ~40px por row. Reduzimos para
   ~28px (padding vertical + line-height enxutos), como pediu o produto. */
[b-uzud2aco8f] .panel-grid .e-grid .e-rowcell,
[b-uzud2aco8f] .panel-grid .e-grid .e-summarycell {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    line-height: 1.25 !important;
    height: auto !important;
}
[b-uzud2aco8f] .panel-grid .e-grid .e-headercell,
[b-uzud2aco8f] .panel-grid .e-grid .e-headercelldiv {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    line-height: 1.2 !important;
    height: auto !important;
}
/* Filter bar (Excel filter icons) mais compacto tambem. */
[b-uzud2aco8f] .panel-grid .e-grid .e-filterbarcell {
    padding-top: 2px !important;
    padding-bottom: 2px !important;
    height: auto !important;
}

/* Grid custom 4 colunas iguais (3/12 cada). Usado na faixa de rankings
   Top 10 (UF Destino, UF Origem, Rotas, Cidades Destino) — barras horizontais
   compactas lado a lado. Herda o ritmo vertical do .pipeline (margin-top 22px).
   Colapsa em 6/12 em <=1080 e em 12/12 em <=640. */
[b-uzud2aco8f] .lk-grid-4 {
    margin-top: 22px;
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 14px;
}
[b-uzud2aco8f] .lk-grid-4 > * { grid-column: span 3; }
@media (max-width: 1080px) {
    [b-uzud2aco8f] .lk-grid-4 > * { grid-column: span 6; }
}
@media (max-width: 640px) {
    [b-uzud2aco8f] .lk-grid-4 > * { grid-column: span 12; }
}
/* /Components/Layout/HevyNavMenu.razor.rz.scp.css */
/* Pendencia que pede acao: o .count padrao do shell (hevy-shell.css) e
   neutro, este destaca em --neg. */
.count.sg-alerta[b-pyvx72gimj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--neg);
    color: #fff;
    font-size: 10.5px;
    font-weight: 600;
}

/* Recolhido, o shell zera max-width do .count; min-width e padding
   deixariam um espaco vazio ao lado do icone. */
.window.side-collapsed .count.sg-alerta[b-pyvx72gimj] {
    min-width: 0;
    padding: 0;
}
/* /Components/Layout/LandingLayout.razor.rz.scp.css */
/* ===== Landing Layout ===== */
.landing-layout[b-c0267tzr0x] {
    min-height: 100vh;
    width: 100%;
    background: var(--bg-primary);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--text-primary);
    overflow-x: hidden;
}

/* ===== Blazor Error UI ===== */
#blazor-error-ui[b-c0267tzr0x] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-c0267tzr0x] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}
/* /Components/Pages/AcessoNegado.razor.rz.scp.css */
/* Painel centralizado — reaproveita .panel do shell Hevy, so ajusta layout
   e espacamento para o conteudo de aviso (icone + titulo + texto + acao). */
.sg-painel[b-gx8lj6y1yp] {
    max-width: 520px;
    margin: 32px auto;
    text-align: center;
    padding: 32px;
}

.sg-icone[b-gx8lj6y1yp] {
    margin-bottom: 12px;
    stroke: var(--accent);
}

.sg-titulo[b-gx8lj6y1yp] {
    margin: 0 0 8px;
    font-weight: 400;
}

.sg-texto[b-gx8lj6y1yp] {
    margin: 0 0 24px;
    color: var(--ink-3);
    font-size: 13px;
}

.sg-botao[b-gx8lj6y1yp] {
    text-decoration: none;
}

/* Mesmo acento usado nas outras paginas para o botao primary contextual
   (pill act pill-primary-act) — a cor nao vem do global, cada pagina define. */
.pill-primary-act[b-gx8lj6y1yp] {
    background: color-mix(in srgb, var(--accent) 14%, transparent) !important;
    color: var(--accent) !important;
    border-color: color-mix(in srgb, var(--accent) 30%, transparent) !important;
}
.pill-primary-act:hover[b-gx8lj6y1yp] {
    background: color-mix(in srgb, var(--accent) 22%, transparent) !important;
}
/* /Components/Pages/Auth/EsqueceuSenha.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════
   ESQUECEU SENHA — adaptado de Login.razor.css: coluna única centralizada,
   sem painel esquerdo/carrossel. Segue o tema (claro/escuro) via tokens
   do app.css.
   ══════════════════════════════════════════════════════════════════════ */

.login-container[b-kw1mirbdao] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    width: 100%;
    background: var(--bg-secondary);
}

/* ══ Painel direito — formulário ══════════════════════════════════════ */
.login-right[b-kw1mirbdao] {
    background: var(--bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    overflow-y: auto;
}

/* Card branco — `.sglogin-form-card` */
.login-form-wrapper[b-kw1mirbdao] {
    width: 100%;
    max-width: 400px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 2.5rem;
    box-shadow:
        0 4px 6px rgba(0, 0, 0, 0.04),
        0 12px 40px color-mix(in srgb, var(--accent) 10%, transparent),
        0 1px 2px rgba(0, 0, 0, 0.06);
    animation: loginFadeUp-b-kw1mirbdao 0.6s 0.1s ease-out both;
}

@keyframes loginFadeUp-b-kw1mirbdao {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.login-form-wrapper h2[b-kw1mirbdao] {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--text-heading);
    letter-spacing: -0.01em;
    margin: 0 0 0.375rem 0;
}

.login-subtitle[b-kw1mirbdao] {
    color: var(--text-secondary);
    font-size: 0.875rem;
    margin: 0 0 1.75rem 0;
}

/* ══ Alertas ══════════════════════════════════════════════════════════ */
.alert-erro[b-kw1mirbdao],
.alert-sucesso[b-kw1mirbdao] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem 1rem;
    border-radius: var(--radius-lg);
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.4;
}

.alert-erro[b-kw1mirbdao] {
    background: color-mix(in srgb, var(--danger) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--danger) 25%, transparent);
    border-left: 3px solid var(--danger);
    color: var(--danger);
}

.alert-sucesso[b-kw1mirbdao] {
    background: color-mix(in srgb, var(--success) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--success) 25%, transparent);
    border-left: 3px solid var(--success);
    color: var(--success);
}

/* ══ Campos ═══════════════════════════════════════════════════════════ */
[b-kw1mirbdao] .form-group {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-bottom: 1.125rem;
}

[b-kw1mirbdao] .form-group label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-primary);
}

[b-kw1mirbdao] .form-input {
    width: 100%;
    height: 44px;
    padding: 0 0.875rem;
    background: var(--bg-secondary);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-lg);
    color: var(--text-primary);
    font-size: 0.9rem;
    font-family: var(--font-family);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
    outline: none;
    box-sizing: border-box;
}

[b-kw1mirbdao] .form-input::placeholder {
    color: var(--text-muted);
    font-weight: 400;
}

[b-kw1mirbdao] .form-input:hover:not(:focus) {
    border-color: var(--text-muted);
    background: var(--bg-card);
}

[b-kw1mirbdao] .form-input:focus {
    border-color: var(--accent);
    background: var(--bg-card);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}

/* ══ Botão primário — gradiente do Segla ══════════════════════════════ */
[b-kw1mirbdao] .btn-primary {
    width: 100%;
    height: 46px;
    padding: 0 1.5rem;
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);
    color: #ffffff;
    border: none;
    border-radius: var(--radius-lg);
    font-size: 0.9375rem;
    font-weight: 600;
    font-family: var(--font-family);
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: box-shadow 0.2s ease, transform 0.1s ease, opacity 0.2s ease;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--accent) 30%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
}

[b-kw1mirbdao] .btn-primary:hover:not(:disabled) {
    box-shadow: 0 6px 20px color-mix(in srgb, var(--accent) 38%, transparent);
    transform: translateY(-1px);
}

[b-kw1mirbdao] .btn-primary:active:not(:disabled) {
    transform: translateY(0);
}

[b-kw1mirbdao] .btn-primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ══ Spinner ══════════════════════════════════════════════════════════ */
[b-kw1mirbdao] .spinner {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: spin-b-kw1mirbdao 0.6s linear infinite;
}

@keyframes spin-b-kw1mirbdao {
    to { transform: rotate(360deg); }
}

/* ══ Link do rodapé ═══════════════════════════════════════════════════ */
.login-link[b-kw1mirbdao] {
    text-align: center;
    color: var(--text-secondary);
    font-size: 0.875rem;
    margin-top: 1.5rem;
}

.login-link a[b-kw1mirbdao] {
    color: var(--accent);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.login-link a:hover[b-kw1mirbdao] {
    color: var(--accent-hover);
    text-decoration: underline;
}

/* ══ Validação ════════════════════════════════════════════════════════ */
[b-kw1mirbdao] .validation-message {
    color: var(--danger);
    font-size: 0.75rem;
    font-weight: 500;
    margin-top: 0.125rem;
    display: block;
}

[b-kw1mirbdao] .invalid {
    border-color: var(--danger);
}

/* ══ Responsivo ═══════════════════════════════════════════════════════ */
@media (max-width: 480px) {
    .login-right[b-kw1mirbdao] {
        padding: 24px 16px;
    }

    .login-form-wrapper[b-kw1mirbdao] {
        padding: 1.75rem 1.25rem;
    }

    .login-form-wrapper h2[b-kw1mirbdao] {
        font-size: 1.25rem;
    }
}
/* /Components/Pages/Auth/Login.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════
   LOGIN — portado do login do Segla ERP (`.sglogin-*`)
   Split 60/40: painel de marca claro com grid geométrico + círculos
   flutuantes à esquerda, card branco do formulário à direita.
   Segue o tema (claro/escuro) via os tokens do app.css.
   ══════════════════════════════════════════════════════════════════════ */

.login-container[b-9p5t0sv142] {
    display: grid;
    grid-template-columns: 60% 40%;
    min-height: 100vh;
    width: 100%;
    background: var(--bg-secondary);
}

/* ══ Painel esquerdo — marca ══════════════════════════════════════════ */
.login-left[b-9p5t0sv142] {
    /* Gradiente azul-claríssimo do Segla: não fica branco chapado e deixa a
       logo respirar. No escuro, o mesmo gradiente rebaixado. */
    background: linear-gradient(135deg, #fefefe 0%, #eef4fb 60%, #e3edf8 100%);
    display: flex;
    flex-direction: column;
    padding: 0;
    position: relative;
    overflow: hidden;
}

body.e-dark-mode .login-left[b-9p5t0sv142] {
    background: linear-gradient(135deg, #1f1f1f 0%, #232a33 60%, #263140 100%);
}

/* Padrão geométrico sutil (grid 48px) — `.sglogin-geo-pattern` */
.login-left[b-9p5t0sv142]::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(8, 33, 66, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(8, 33, 66, 0.05) 1px, transparent 1px);
    background-size: 48px 48px;
    pointer-events: none;
    z-index: 1;
}

body.e-dark-mode .login-left[b-9p5t0sv142]::before {
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
}

/* Logo no topo */
.left-top-logo[b-9p5t0sv142] {
    padding: 32px 40px;
    z-index: 2;
}

.left-top-logo img[b-9p5t0sv142] {
    height: 72px;
    object-fit: contain;
}

/* Logo do Logistikk é clara — no tema claro precisa escurecer p/ ter contraste
   sobre o painel branco. No escuro volta ao original. */
body:not(.e-dark-mode) .left-top-logo img[b-9p5t0sv142] {
    filter: brightness(0.35) saturate(1.4);
}

/* Conteúdo: avatar + carrossel */
.left-content[b-9p5t0sv142] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 2;
    padding: 0 48px 48px;
    gap: 40px;
}

.avatar-area[b-9p5t0sv142] {
    display: flex;
    justify-content: center;
}

.avatar-character[b-9p5t0sv142] {
    height: 320px;
    object-fit: contain;
    filter: drop-shadow(0 16px 32px rgba(8, 33, 66, 0.18));
}

body.e-dark-mode .avatar-character[b-9p5t0sv142] {
    filter: drop-shadow(0 16px 32px rgba(0, 0, 0, 0.45));
}

/* ══ Carrossel ════════════════════════════════════════════════════════ */
.carousel-area[b-9p5t0sv142] {
    width: 100%;
    max-width: 460px;
    overflow: hidden;
}

.carousel-slides[b-9p5t0sv142] {
    display: flex;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.carousel-slide[b-9p5t0sv142] {
    min-width: 100%;
    padding: 0 8px;
    box-sizing: border-box;
    text-align: center;
}

/* Ícone do slide — o SVG usa currentColor, então herda o accent daqui */
.slide-icon[b-9p5t0sv142] {
    width: 60px;
    height: 60px;
    color: var(--accent);
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
}

.carousel-slide h3[b-9p5t0sv142] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-heading);
    letter-spacing: -0.02em;
    line-height: 1.25;
    margin: 0 0 10px 0;
}

.carousel-slide p[b-9p5t0sv142] {
    font-size: 0.9375rem;
    color: var(--text-secondary);
    line-height: 1.65;
    margin: 0 auto;
    max-width: 360px;
}

/* Dots */
.carousel-dots[b-9p5t0sv142] {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 28px;
}

.carousel-dot[b-9p5t0sv142] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: color-mix(in srgb, var(--accent) 25%, transparent);
    cursor: pointer;
    padding: 0;
    transition: all 0.3s ease;
}

.carousel-dot.active[b-9p5t0sv142] {
    width: 28px;
    border-radius: 4px;
    background: var(--accent);
}

/* Círculos decorativos flutuantes — `.sglogin-circle` */
.decorative-circle[b-9p5t0sv142] {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(8, 33, 66, 0.08);
    background: rgba(8, 81, 163, 0.03);
    pointer-events: none;
    z-index: 1;
}

body.e-dark-mode .decorative-circle[b-9p5t0sv142] {
    border-color: rgba(255, 255, 255, 0.07);
    background: rgba(98, 171, 245, 0.04);
}

.circle-1[b-9p5t0sv142] {
    width: 380px;
    height: 380px;
    top: -80px;
    right: -80px;
    animation: loginFloat-b-9p5t0sv142 9s ease-in-out infinite;
}

.circle-2[b-9p5t0sv142] {
    width: 260px;
    height: 260px;
    bottom: 60px;
    left: -60px;
    animation: loginFloat-b-9p5t0sv142 12s ease-in-out infinite reverse;
}

.circle-3[b-9p5t0sv142] {
    width: 140px;
    height: 140px;
    bottom: 200px;
    right: 60px;
    animation: loginFloat-b-9p5t0sv142 7s ease-in-out infinite;
}

@keyframes loginFloat-b-9p5t0sv142 {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(-18px) scale(1.03); }
}

@media (prefers-reduced-motion: reduce) {
    .decorative-circle[b-9p5t0sv142] { animation: none; }
}

/* ══ Painel direito — formulário ══════════════════════════════════════ */
.login-right[b-9p5t0sv142] {
    background: var(--bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    overflow-y: auto;
}

/* Card branco — `.sglogin-form-card` */
.login-form-wrapper[b-9p5t0sv142] {
    width: 100%;
    max-width: 400px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 2.5rem;
    box-shadow:
        0 4px 6px rgba(0, 0, 0, 0.04),
        0 12px 40px color-mix(in srgb, var(--accent) 10%, transparent),
        0 1px 2px rgba(0, 0, 0, 0.06);
    animation: loginFadeUp-b-9p5t0sv142 0.6s 0.1s ease-out both;
}

@keyframes loginFadeUp-b-9p5t0sv142 {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.login-form-wrapper h2[b-9p5t0sv142] {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--text-heading);
    letter-spacing: -0.01em;
    margin: 0 0 0.375rem 0;
}

.login-subtitle[b-9p5t0sv142] {
    color: var(--text-secondary);
    font-size: 0.875rem;
    margin: 0 0 1.75rem 0;
}

/* ══ Alertas ══════════════════════════════════════════════════════════ */
.alert-erro[b-9p5t0sv142],
.alert-sucesso[b-9p5t0sv142] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem 1rem;
    border-radius: var(--radius-lg);
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.4;
}

.alert-erro[b-9p5t0sv142] {
    background: color-mix(in srgb, var(--danger) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--danger) 25%, transparent);
    border-left: 3px solid var(--danger);
    color: var(--danger);
}

.alert-sucesso[b-9p5t0sv142] {
    background: color-mix(in srgb, var(--success) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--success) 25%, transparent);
    border-left: 3px solid var(--success);
    color: var(--success);
}

/* ══ Campos ═══════════════════════════════════════════════════════════ */
[b-9p5t0sv142] .form-group {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-bottom: 1.125rem;
}

[b-9p5t0sv142] .form-group label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-primary);
}

[b-9p5t0sv142] .form-input {
    width: 100%;
    height: 44px;
    padding: 0 0.875rem;
    background: var(--bg-secondary);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-lg);
    color: var(--text-primary);
    font-size: 0.9rem;
    font-family: var(--font-family);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
    outline: none;
    box-sizing: border-box;
}

[b-9p5t0sv142] .form-input::placeholder {
    color: var(--text-muted);
    font-weight: 400;
}

[b-9p5t0sv142] .form-input:hover:not(:focus) {
    border-color: var(--text-muted);
    background: var(--bg-card);
}

[b-9p5t0sv142] .form-input:focus {
    border-color: var(--accent);
    background: var(--bg-card);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}

/* ══ Senha ════════════════════════════════════════════════════════════ */
[b-9p5t0sv142] .password-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

[b-9p5t0sv142] .password-wrapper .form-input {
    padding-right: 48px;
}

[b-9p5t0sv142] .toggle-password {
    position: absolute;
    right: 12px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--text-muted);
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease;
}

[b-9p5t0sv142] .toggle-password:hover {
    color: var(--accent);
}

/* ══ Ações ════════════════════════════════════════════════════════════ */
[b-9p5t0sv142] .form-actions {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1.5rem;
}

[b-9p5t0sv142] .forgot-link {
    font-size: 0.75rem;
    color: var(--accent);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

[b-9p5t0sv142] .forgot-link:hover {
    color: var(--accent-hover);
    text-decoration: underline;
}

/* ══ Botão primário — gradiente do Segla ══════════════════════════════ */
[b-9p5t0sv142] .btn-primary {
    width: 100%;
    height: 46px;
    padding: 0 1.5rem;
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);
    color: #ffffff;
    border: none;
    border-radius: var(--radius-lg);
    font-size: 0.9375rem;
    font-weight: 600;
    font-family: var(--font-family);
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: box-shadow 0.2s ease, transform 0.1s ease, opacity 0.2s ease;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--accent) 30%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
}

[b-9p5t0sv142] .btn-primary:hover:not(:disabled) {
    box-shadow: 0 6px 20px color-mix(in srgb, var(--accent) 38%, transparent);
    transform: translateY(-1px);
}

[b-9p5t0sv142] .btn-primary:active:not(:disabled) {
    transform: translateY(0);
}

[b-9p5t0sv142] .btn-primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ══ Spinner ══════════════════════════════════════════════════════════ */
[b-9p5t0sv142] .spinner {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: spin-b-9p5t0sv142 0.6s linear infinite;
}

@keyframes spin-b-9p5t0sv142 {
    to { transform: rotate(360deg); }
}

/* ══ Link do rodapé ═══════════════════════════════════════════════════ */
.login-link[b-9p5t0sv142] {
    text-align: center;
    color: var(--text-secondary);
    font-size: 0.875rem;
    margin-top: 1.5rem;
}

.login-link a[b-9p5t0sv142] {
    color: var(--accent);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.login-link a:hover[b-9p5t0sv142] {
    color: var(--accent-hover);
    text-decoration: underline;
}

/* ══ Validação ════════════════════════════════════════════════════════ */
[b-9p5t0sv142] .validation-message {
    color: var(--danger);
    font-size: 0.75rem;
    font-weight: 500;
    margin-top: 0.125rem;
    display: block;
}

[b-9p5t0sv142] .invalid {
    border-color: var(--danger);
}

/* ══ Responsivo ═══════════════════════════════════════════════════════ */
@media (max-width: 900px) {
    .login-container[b-9p5t0sv142] {
        grid-template-columns: 1fr;
    }

    .login-left[b-9p5t0sv142] {
        display: none;
    }

    .login-right[b-9p5t0sv142] {
        padding: 32px 24px;
        min-height: 100vh;
    }
}

@media (max-width: 480px) {
    .login-right[b-9p5t0sv142] {
        padding: 24px 16px;
    }

    .login-form-wrapper[b-9p5t0sv142] {
        padding: 1.75rem 1.25rem;
    }

    .login-form-wrapper h2[b-9p5t0sv142] {
        font-size: 1.25rem;
    }
}

.sg-versao[b-9p5t0sv142] {
    margin: 20px 0 0;
    text-align: center;
    font-size: 11px;
    color: var(--text-secondary);
    font-variant-numeric: tabular-nums;
}
/* /Components/Pages/Auth/RedefinirSenha.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════
   REDEFINIR SENHA — adaptado de Login.razor.css: coluna única centralizada,
   sem painel esquerdo/carrossel. Segue o tema (claro/escuro) via tokens
   do app.css.
   ══════════════════════════════════════════════════════════════════════ */

.login-container[b-gisphs25bg] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    width: 100%;
    background: var(--bg-secondary);
}

/* ══ Painel direito — formulário ══════════════════════════════════════ */
.login-right[b-gisphs25bg] {
    background: var(--bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    overflow-y: auto;
}

/* Card branco — `.sglogin-form-card` */
.login-form-wrapper[b-gisphs25bg] {
    width: 100%;
    max-width: 400px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 2.5rem;
    box-shadow:
        0 4px 6px rgba(0, 0, 0, 0.04),
        0 12px 40px color-mix(in srgb, var(--accent) 10%, transparent),
        0 1px 2px rgba(0, 0, 0, 0.06);
    animation: loginFadeUp-b-gisphs25bg 0.6s 0.1s ease-out both;
}

@keyframes loginFadeUp-b-gisphs25bg {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.login-form-wrapper h2[b-gisphs25bg] {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--text-heading);
    letter-spacing: -0.01em;
    margin: 0 0 0.375rem 0;
}

.login-subtitle[b-gisphs25bg] {
    color: var(--text-secondary);
    font-size: 0.875rem;
    margin: 0 0 1.75rem 0;
}

/* ══ Alertas ══════════════════════════════════════════════════════════ */
.alert-erro[b-gisphs25bg] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem 1rem;
    border-radius: var(--radius-lg);
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.4;
    background: color-mix(in srgb, var(--danger) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--danger) 25%, transparent);
    border-left: 3px solid var(--danger);
    color: var(--danger);
}

/* ══ Campos ═══════════════════════════════════════════════════════════ */
[b-gisphs25bg] .form-group {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-bottom: 1.125rem;
}

[b-gisphs25bg] .form-group label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-primary);
}

[b-gisphs25bg] .form-input {
    width: 100%;
    height: 44px;
    padding: 0 0.875rem;
    background: var(--bg-secondary);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-lg);
    color: var(--text-primary);
    font-size: 0.9rem;
    font-family: var(--font-family);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
    outline: none;
    box-sizing: border-box;
}

[b-gisphs25bg] .form-input:hover:not(:focus) {
    border-color: var(--text-muted);
    background: var(--bg-card);
}

[b-gisphs25bg] .form-input:focus {
    border-color: var(--accent);
    background: var(--bg-card);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}

/* ══ Botão primário — gradiente do Segla ══════════════════════════════ */
[b-gisphs25bg] .btn-primary {
    width: 100%;
    height: 46px;
    padding: 0 1.5rem;
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);
    color: #ffffff;
    border: none;
    border-radius: var(--radius-lg);
    font-size: 0.9375rem;
    font-weight: 600;
    font-family: var(--font-family);
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: box-shadow 0.2s ease, transform 0.1s ease, opacity 0.2s ease;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--accent) 30%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
}

[b-gisphs25bg] .btn-primary:hover:not(:disabled) {
    box-shadow: 0 6px 20px color-mix(in srgb, var(--accent) 38%, transparent);
    transform: translateY(-1px);
}

[b-gisphs25bg] .btn-primary:active:not(:disabled) {
    transform: translateY(0);
}

[b-gisphs25bg] .btn-primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ══ Link do rodapé ═══════════════════════════════════════════════════ */
.login-link[b-gisphs25bg] {
    text-align: center;
    color: var(--text-secondary);
    font-size: 0.875rem;
    margin-top: 1.5rem;
}

.login-link a[b-gisphs25bg] {
    color: var(--accent);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.login-link a:hover[b-gisphs25bg] {
    color: var(--accent-hover);
    text-decoration: underline;
}

/* ══ Validação ════════════════════════════════════════════════════════ */
[b-gisphs25bg] .validation-message {
    color: var(--danger);
    font-size: 0.75rem;
    font-weight: 500;
    margin-top: 0.125rem;
    display: block;
}

[b-gisphs25bg] .invalid {
    border-color: var(--danger);
}

/* ══ Responsivo ═══════════════════════════════════════════════════════ */
@media (max-width: 480px) {
    .login-right[b-gisphs25bg] {
        padding: 24px 16px;
    }

    .login-form-wrapper[b-gisphs25bg] {
        padding: 1.75rem 1.25rem;
    }

    .login-form-wrapper h2[b-gisphs25bg] {
        font-size: 1.25rem;
    }
}
/* /Components/Pages/Auth/TrocarSenha.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════
   TROCAR SENHA — adaptado de RedefinirSenha.razor.css: coluna única
   centralizada, sem painel esquerdo/carrossel. Segue o tema (claro/escuro)
   via tokens do app.css.
   ══════════════════════════════════════════════════════════════════════ */

.login-container[b-pf1zv9c245] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    width: 100%;
    background: var(--bg-secondary);
}

/* ══ Painel direito — formulário ══════════════════════════════════════ */
.login-right[b-pf1zv9c245] {
    background: var(--bg-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    overflow-y: auto;
}

/* Card branco — `.sglogin-form-card` */
.login-form-wrapper[b-pf1zv9c245] {
    width: 100%;
    max-width: 400px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 2.5rem;
    box-shadow:
        0 4px 6px rgba(0, 0, 0, 0.04),
        0 12px 40px color-mix(in srgb, var(--accent) 10%, transparent),
        0 1px 2px rgba(0, 0, 0, 0.06);
    animation: loginFadeUp-b-pf1zv9c245 0.6s 0.1s ease-out both;
}

@keyframes loginFadeUp-b-pf1zv9c245 {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.login-form-wrapper h2[b-pf1zv9c245] {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--text-heading);
    letter-spacing: -0.01em;
    margin: 0 0 0.375rem 0;
}

.login-subtitle[b-pf1zv9c245] {
    color: var(--text-secondary);
    font-size: 0.875rem;
    margin: 0 0 1.75rem 0;
}

/* ══ Alertas ══════════════════════════════════════════════════════════ */
.alert-erro[b-pf1zv9c245] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem 1rem;
    border-radius: var(--radius-lg);
    margin-bottom: 1.25rem;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.4;
    background: color-mix(in srgb, var(--danger) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--danger) 25%, transparent);
    border-left: 3px solid var(--danger);
    color: var(--danger);
}

/* ══ Campos ═══════════════════════════════════════════════════════════ */
[b-pf1zv9c245] .form-group {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    margin-bottom: 1.125rem;
}

[b-pf1zv9c245] .form-group label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--text-primary);
}

[b-pf1zv9c245] .form-input {
    width: 100%;
    height: 44px;
    padding: 0 0.875rem;
    background: var(--bg-secondary);
    border: 1.5px solid var(--border);
    border-radius: var(--radius-lg);
    color: var(--text-primary);
    font-size: 0.9rem;
    font-family: var(--font-family);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
    outline: none;
    box-sizing: border-box;
}

[b-pf1zv9c245] .form-input:hover:not(:focus) {
    border-color: var(--text-muted);
    background: var(--bg-card);
}

[b-pf1zv9c245] .form-input:focus {
    border-color: var(--accent);
    background: var(--bg-card);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}

/* ══ Botão primário — gradiente do Segla ══════════════════════════════ */
[b-pf1zv9c245] .btn-primary {
    width: 100%;
    height: 46px;
    padding: 0 1.5rem;
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);
    color: #ffffff;
    border: none;
    border-radius: var(--radius-lg);
    font-size: 0.9375rem;
    font-weight: 600;
    font-family: var(--font-family);
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: box-shadow 0.2s ease, transform 0.1s ease, opacity 0.2s ease;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--accent) 30%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
}

[b-pf1zv9c245] .btn-primary:hover:not(:disabled) {
    box-shadow: 0 6px 20px color-mix(in srgb, var(--accent) 38%, transparent);
    transform: translateY(-1px);
}

[b-pf1zv9c245] .btn-primary:active:not(:disabled) {
    transform: translateY(0);
}

[b-pf1zv9c245] .btn-primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ══ Link do rodapé ═══════════════════════════════════════════════════ */
.login-link[b-pf1zv9c245] {
    text-align: center;
    color: var(--text-secondary);
    font-size: 0.875rem;
    margin-top: 1.5rem;
}

.login-link a[b-pf1zv9c245] {
    color: var(--accent);
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s ease;
}

.login-link a:hover[b-pf1zv9c245] {
    color: var(--accent-hover);
    text-decoration: underline;
}

/* ══ Validação ════════════════════════════════════════════════════════ */
[b-pf1zv9c245] .validation-message {
    color: var(--danger);
    font-size: 0.75rem;
    font-weight: 500;
    margin-top: 0.125rem;
    display: block;
}

[b-pf1zv9c245] .invalid {
    border-color: var(--danger);
}

/* ══ Responsivo ═══════════════════════════════════════════════════════ */
@media (max-width: 480px) {
    .login-right[b-pf1zv9c245] {
        padding: 24px 16px;
    }

    .login-form-wrapper[b-pf1zv9c245] {
        padding: 1.75rem 1.25rem;
    }

    .login-form-wrapper h2[b-pf1zv9c245] {
        font-size: 1.25rem;
    }
}
/* /Components/Pages/Cms/CmsDashboard.razor.rz.scp.css */
.cms-dashboard[b-pi60d6pz1g] {
    padding: 24px;
}

.cms-dashboard h1[b-pi60d6pz1g] {
    color: var(--text-primary);
    font-size: 28px;
    font-weight: 700;
    margin: 0;
}

.subtitle[b-pi60d6pz1g] {
    color: var(--text-secondary);
    font-size: 15px;
    margin-top: 6px;
}

.sections-grid[b-pi60d6pz1g] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 32px;
}

.section-card[b-pi60d6pz1g] {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 24px;
    text-decoration: none;
    display: block;
    transition: border-color 0.2s ease, transform 0.2s ease;
}

.section-card:hover[b-pi60d6pz1g] {
    border-color: var(--accent);
    transform: translateY(-2px);
}

.section-icon[b-pi60d6pz1g] {
    font-size: 32px;
    display: block;
    margin-bottom: 12px;
}

.section-card h3[b-pi60d6pz1g] {
    color: var(--text-primary);
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 6px 0;
}

.section-card p[b-pi60d6pz1g] {
    color: var(--text-secondary);
    font-size: 14px;
    margin: 0;
}

@media (max-width: 1024px) {
    .sections-grid[b-pi60d6pz1g] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .sections-grid[b-pi60d6pz1g] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Cms/EditarSecao.razor.rz.scp.css */
.editar-secao[b-uyrnparr1x] {
    padding: 24px;
    max-width: 800px;
}

.page-header[b-uyrnparr1x] {
    margin-bottom: 8px;
}

.back-link[b-uyrnparr1x] {
    color: var(--accent);
    text-decoration: none;
    font-size: 14px;
    transition: opacity 0.2s ease;
}

.back-link:hover[b-uyrnparr1x] {
    opacity: 0.8;
}

h1[b-uyrnparr1x] {
    color: var(--text-primary);
    font-size: 24px;
    font-weight: 700;
    margin-top: 8px;
}

.loading[b-uyrnparr1x] {
    color: var(--text-secondary);
    margin-top: 24px;
}

.config-list[b-uyrnparr1x] {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 24px;
}

.config-item[b-uyrnparr1x] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.config-label[b-uyrnparr1x] {
    color: var(--text-heading);
    font-weight: 500;
    font-size: 14px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.config-desc[b-uyrnparr1x] {
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 400;
}

.config-input[b-uyrnparr1x],
.config-textarea[b-uyrnparr1x] {
    background: var(--bg-primary);
    border: 1px solid var(--border);
    color: var(--text-primary);
    padding: 10px 14px;
    border-radius: 8px;
    font-family: var(--font-family);
    font-size: 14px;
    outline: none;
    transition: border-color 0.2s ease;
}

.config-input:focus[b-uyrnparr1x],
.config-textarea:focus[b-uyrnparr1x] {
    border-color: var(--accent);
}

.config-textarea[b-uyrnparr1x] {
    resize: vertical;
    min-height: 80px;
}

.actions[b-uyrnparr1x] {
    margin-top: 32px;
    display: flex;
    gap: 12px;
}

.btn-salvar[b-uyrnparr1x] {
    background: var(--accent);
    color: var(--bg-primary);
    font-weight: 600;
    padding: 12px 32px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    font-size: 14px;
    font-family: var(--font-family);
    transition: background-color 0.2s ease;
}

.btn-salvar:hover:not(:disabled)[b-uyrnparr1x] {
    background: var(--accent-hover);
}

.btn-salvar:disabled[b-uyrnparr1x] {
    opacity: 0.6;
    cursor: not-allowed;
}

.alert-sucesso[b-uyrnparr1x] {
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    color: var(--accent);
    padding: 12px;
    border-radius: 8px;
    margin-top: 16px;
    font-size: 14px;
}
/* /Components/Pages/Hevy/HevyAuditoriaIA.razor.rz.scp.css */
/* HevyAuditoriaIA — chat local scoped. */
.ai-chat-msg[b-la2lzdonox] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 12px;
    border-radius: 10px;
    max-width: 92%;
}
.ai-chat-user[b-la2lzdonox] {
    align-self: flex-end;
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 22%, transparent);
}
.ai-chat-ai[b-la2lzdonox] {
    align-self: flex-start;
    background: color-mix(in srgb, var(--ink) 4%, transparent);
    border: 1px solid var(--rule-hair);
}
.ai-chat-label[b-la2lzdonox] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-3);
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.ai-chat-text[b-la2lzdonox] {
    font-size: 13px;
    color: var(--ink);
    line-height: 1.5;
}
.ai-chat-input-container[b-la2lzdonox] {
    display: flex;
    gap: 8px;
    align-items: stretch;
    margin-top: 4px;
}
.ai-chat-input[b-la2lzdonox] {
    flex: 1;
}
/* /Components/Pages/Hevy/HevyClassificacoes.razor.rz.scp.css */
/* HevyClassificacoes — CSS scoped: badge de ícone no grid + dropdown de
   seleção de ícone no dialog de edição. Componentes visualmente locais
   à página; formas globais (.hv-modal, .hv-form, .hv-input, .hv-btn-*)
   vêm de hevy-sidebar-detail.css. */

[b-piwo44w6tr] .hv-class-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    color: var(--accent);
}

/* Dropdown de ícone — analogia ao select, mas rende os SVGs em cada linha. */
[b-piwo44w6tr] .hv-icone-dropdown {
    position: relative;
    width: 100%;
}
[b-piwo44w6tr] .hv-icone-dropdown-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: rgba(255, 255, 255, 0.55);
    border: 1px solid var(--rule-hair);
    border-radius: 8px;
    color: var(--ink);
    font-family: inherit;
    font-size: 13px;
    font-weight: 300;
    cursor: pointer;
    text-align: left;
    box-sizing: border-box;
    min-height: 36px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
[b-piwo44w6tr] .hv-icone-dropdown-toggle:hover {
    border-color: color-mix(in srgb, var(--ink) 18%, var(--rule-hair));
}
[b-piwo44w6tr] .hv-icone-dropdown-arrow {
    margin-left: auto;
    color: var(--ink-3);
    flex-shrink: 0;
}
[b-piwo44w6tr] .hv-icone-dropdown-placeholder {
    color: var(--ink-3);
    font-style: italic;
}
[b-piwo44w6tr] .hv-icone-dropdown-svg {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: var(--accent);
}

[b-piwo44w6tr] .hv-icone-dropdown-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    max-height: 260px;
    overflow-y: auto;
    background: var(--pane-3);
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    box-shadow: 0 12px 32px -8px rgba(40, 32, 22, 0.28);
    backdrop-filter: blur(12px) saturate(140%);
    -webkit-backdrop-filter: blur(12px) saturate(140%);
    z-index: 60;
    padding: 4px;
}
[b-piwo44w6tr] .hv-icone-dropdown-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    color: var(--ink);
    font-weight: 300;
    transition: background 0.12s ease;
}
[b-piwo44w6tr] .hv-icone-dropdown-item:hover {
    background: color-mix(in srgb, var(--ink) 6%, transparent);
}
[b-piwo44w6tr] .hv-icone-dropdown-item.selecionado {
    background: color-mix(in srgb, var(--accent) 14%, transparent);
    color: var(--accent);
}
[b-piwo44w6tr] .hv-icone-dropdown-item.selecionado .hv-icone-dropdown-svg {
    color: var(--accent);
}
/* /Components/Pages/Hevy/HevyConferenciaFrete.razor.rz.scp.css */
/* HevyConferenciaFrete — filtros inline no ExtraFilters e dialog de detalhe */

.cf-inline-filtros[b-axqjqkn9h5] {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
.cf-filtro[b-axqjqkn9h5] { display: flex; flex-direction: column; gap: 2px; }
.cf-filtro label[b-axqjqkn9h5] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-3);
    font-weight: 500;
}
[b-axqjqkn9h5] .hv-input-sm {
    padding: 5px 8px !important;
    font-size: 12px !important;
    height: 30px;
}

.cf-erro[b-axqjqkn9h5] {
    background: color-mix(in srgb, #b0577a 12%, transparent);
    border: 1px solid color-mix(in srgb, #b0577a 30%, transparent);
    color: #8a3f5c;
    padding: 12px 14px;
    border-radius: 10px;
    margin: 0 0 12px;
    font-size: 12.5px;
    white-space: pre-wrap;
    max-height: 240px;
    overflow-y: auto;
    font-family: inherit;
}

[b-axqjqkn9h5] .cf-status {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink-2);
}
[b-axqjqkn9h5] .cf-status-ok { color: #2f8f3f; background: color-mix(in srgb, #2f8f3f 15%, transparent); }
[b-axqjqkn9h5] .cf-status-acima { color: #b0577a; background: color-mix(in srgb, #b0577a 15%, transparent); }
[b-axqjqkn9h5] .cf-status-abaixo { color: #b8860b; background: color-mix(in srgb, #b8860b 15%, transparent); }
[b-axqjqkn9h5] .cf-status-semmatch { color: var(--ink-3); background: color-mix(in srgb, var(--ink) 8%, transparent); }

/* Diálogo de detalhe */
.cf-det[b-axqjqkn9h5] { display: flex; flex-direction: column; gap: 16px; }

.cf-det-linhas[b-axqjqkn9h5] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    padding: 12px 14px;
}
.cf-det-linha[b-axqjqkn9h5] {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 13px;
    color: var(--ink-2);
}
.cf-det-linha strong[b-axqjqkn9h5] { color: var(--ink); font-weight: 500; }

.cf-det-comp[b-axqjqkn9h5] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}
.cf-det-comp thead th[b-axqjqkn9h5] {
    text-align: left;
    color: var(--ink-3);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 10px;
    padding: 6px 10px;
    border-bottom: 1px solid var(--rule-hair);
}
.cf-det-comp tbody td[b-axqjqkn9h5] {
    padding: 6px 10px;
    color: var(--ink-2);
    border-bottom: 1px solid var(--rule-hair);
}
.cf-det-comp .cf-r[b-axqjqkn9h5] { text-align: right; font-variant-numeric: tabular-nums; }
.cf-det-comp .cf-tot td[b-axqjqkn9h5] { color: var(--ink); font-weight: 500; }
.cf-det-comp .cf-dif td[b-axqjqkn9h5] { border-bottom: none; padding-top: 10px; }
.cf-det-comp .cf-acima[b-axqjqkn9h5] { color: #b0577a; }
.cf-det-comp .cf-abaixo[b-axqjqkn9h5] { color: #b8860b; }

.cf-aprovado[b-axqjqkn9h5] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px;
    padding: 10px 12px;
    background: color-mix(in srgb, #2f8f3f 10%, transparent);
    border: 1px solid color-mix(in srgb, #2f8f3f 25%, transparent);
    border-radius: 10px;
    font-size: 12.5px;
    color: var(--ink-2);
}
.cf-aprovado p[b-axqjqkn9h5] { margin: 4px 0 0; width: 100%; color: var(--ink-3); font-size: 11.5px; }

.cf-badge-aprovado[b-axqjqkn9h5] {
    background: #2f8f3f;
    color: white;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.cf-aprovar-form[b-axqjqkn9h5] { gap: 6px; }
.cf-erro-msg[b-axqjqkn9h5] { color: #b0577a; font-size: 11.5px; }
.cf-aprovar-botoes[b-axqjqkn9h5] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 4px;
}
/* /Components/Pages/Hevy/HevyEmpresa.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════
   HevyEmpresa — estilos locais do porte de /admin/empresa.
   Tab-bar horizontal, cert badges com validade colorida,
   filial cards, switch SEFAZ e ajustes de form-row.
   ═══════════════════════════════════════════════════════════════════ */

/* Contador dentro das tabs globais (.tabs/.tab do shell). */
.emp-tab-badge[b-jfadyufqgy] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    padding: 1px 6px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink-3);
    font-size: 10.5px;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    line-height: 1.4;
    transition: background 0.12s, color 0.12s;
}
.tab.active .emp-tab-badge[b-jfadyufqgy] {
    background: color-mix(in srgb, var(--accent) 18%, transparent);
    color: var(--accent);
}

/* Panel wrapper: fundo levemente mais claro que o quadro do app, para
   os blocos agrupados lerem como superficie e nao como caixa branca. */
.emp-panel[b-jfadyufqgy] {
    margin-bottom: 14px;
    background: color-mix(in srgb, white 30%, var(--pane-3)) !important;
}
:global(body[data-theme="dark"]) .emp-panel[b-jfadyufqgy] {
    background: color-mix(in srgb, white 5%, var(--pane-3)) !important;
}

/* Título de seção dentro de panel */
.emp-section-title[b-jfadyufqgy] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    font-size: 13px;
    font-weight: 500;
    color: var(--ink);
    padding-bottom: 10px;
    border-bottom: 1px solid var(--rule-hair);
}
.emp-section-title svg[b-jfadyufqgy] { color: var(--ink-3); }

.emp-subtitle[b-jfadyufqgy] {
    color: var(--ink);
    font-size: 13px;
    font-weight: 500;
    margin: 0 0 12px 0;
}

/* Rodapé de form: botões alinhados à direita */
.emp-form-footer[b-jfadyufqgy] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 14px;
    margin-top: 4px;
    border-top: 1px solid var(--rule-hair);
}

/* Input com botão embutido (CNPJ + Consultar) */
.emp-input-com-botao[b-jfadyufqgy] {
    display: flex;
    gap: 6px;
}
[b-jfadyufqgy] .emp-input-com-botao .hv-input,
.emp-input-com-botao .hv-input[b-jfadyufqgy] { flex: 1; }

/* Form row 4 colunas */
.hv-form-row.emp-form-row-4[b-jfadyufqgy] {
    grid-template-columns: 1.2fr 1fr 1.2fr 0.5fr;
}

/* Botão "Selecionar arquivo" para InputFile */
.emp-file-btn[b-jfadyufqgy] {
    display: inline-block;
    background: color-mix(in srgb, var(--ink) 5%, transparent);
    border: 1px dashed var(--rule);
    color: var(--ink-2);
    border-radius: 8px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 400;
    cursor: pointer;
    text-align: center;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.emp-file-btn:hover[b-jfadyufqgy] {
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    border-color: var(--accent);
    color: var(--ink);
}

/* Cert status badges */
.emp-cert-status[b-jfadyufqgy] { margin-bottom: 16px; }
.emp-cert-badge[b-jfadyufqgy] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-radius: 10px;
    font-size: 13px;
}
.emp-cert-badge strong[b-jfadyufqgy] {
    display: block;
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 2px;
}
.emp-cert-badge > svg[b-jfadyufqgy] { flex-shrink: 0; }
.emp-cert-badge.ativo[b-jfadyufqgy] {
    background: color-mix(in srgb, #3d7a5a 10%, transparent);
    border: 1px solid color-mix(in srgb, #3d7a5a 25%, transparent);
    color: #2f5f47;
}
.emp-cert-badge.inativo[b-jfadyufqgy] {
    background: color-mix(in srgb, #b8860b 10%, transparent);
    border: 1px solid color-mix(in srgb, #b8860b 25%, transparent);
    color: #96700a;
}
:global(body[data-theme="dark"]) .emp-cert-badge.ativo[b-jfadyufqgy] { color: #7cb896; }
:global(body[data-theme="dark"]) .emp-cert-badge.inativo[b-jfadyufqgy] { color: #e6b854; }

.emp-cert-info[b-jfadyufqgy] { flex: 1; }
.emp-cert-meta[b-jfadyufqgy] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 12px;
    margin-top: 4px;
    color: var(--ink-3);
}
.emp-cert-meta b[b-jfadyufqgy] { color: var(--ink-2); font-weight: 500; }

.emp-cert-status-badge[b-jfadyufqgy] {
    display: inline-block;
    margin-top: 4px;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 500;
    font-size: 10.5px;
    letter-spacing: 0.03em;
}
.cert-ok[b-jfadyufqgy]       { background: #d1fadf; color: #0a6b36; }
.cert-atencao[b-jfadyufqgy]  { background: #fff7cd; color: #8a5a00; }
.cert-alerta[b-jfadyufqgy]   { background: #ffe0b2; color: #a65c00; }
.cert-critico[b-jfadyufqgy]  { background: #ffd4d4; color: #a00000; }
.cert-vencido[b-jfadyufqgy]  { background: #a00000; color: #fff; }

.emp-cert-upload[b-jfadyufqgy] {
    border-top: 1px solid var(--rule-hair);
    padding-top: 16px;
    margin-top: 4px;
}

/* Filiais */
.emp-filial-toolbar[b-jfadyufqgy] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
}
.emp-filial-count[b-jfadyufqgy] {
    color: var(--ink-3);
    font-size: 12.5px;
    font-weight: 400;
}
.emp-empty[b-jfadyufqgy] {
    text-align: center;
    padding: 50px 20px;
    color: var(--ink-3);
}
.emp-empty svg[b-jfadyufqgy] { opacity: 0.35; margin-bottom: 14px; }
.emp-empty p[b-jfadyufqgy] {
    font-size: 14px;
    font-weight: 500;
    color: var(--ink-2);
    margin: 0 0 4px 0;
}
.emp-empty span[b-jfadyufqgy] { font-size: 12px; }

.emp-filial-form[b-jfadyufqgy] {
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 12px;
    padding: 18px 20px;
    margin-bottom: 14px;
}

.emp-filial-card[b-jfadyufqgy] {
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 12px;
    padding: 16px 18px;
    margin-bottom: 10px;
    transition: border-color 0.15s ease;
}
.emp-filial-card:hover[b-jfadyufqgy] {
    border-color: color-mix(in srgb, var(--accent) 25%, transparent);
}
.emp-filial-header[b-jfadyufqgy] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
    gap: 12px;
}
.emp-filial-info[b-jfadyufqgy] { flex: 1; min-width: 0; }
.emp-filial-nome[b-jfadyufqgy] {
    font-size: 14px;
    font-weight: 500;
    color: var(--ink);
    margin-bottom: 3px;
}
.emp-filial-cnpj[b-jfadyufqgy] {
    font-size: 12px;
    color: var(--ink-3);
    font-family: 'JetBrains Mono', monospace;
}
.emp-filial-badges[b-jfadyufqgy] { display: flex; gap: 6px; flex-shrink: 0; }

.emp-badge[b-jfadyufqgy] {
    padding: 2px 9px;
    border-radius: 6px;
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: 0.02em;
}
.emp-badge-cert[b-jfadyufqgy] { background: color-mix(in srgb, #3d7a5a 15%, transparent); color: #2f5f47; }
.emp-badge-sem-cert[b-jfadyufqgy] { background: color-mix(in srgb, #b8860b 15%, transparent); color: #96700a; }
.emp-badge-ativo[b-jfadyufqgy] { background: color-mix(in srgb, #4a6fa8 15%, transparent); color: #4a6fa8; }
.emp-badge-inativo[b-jfadyufqgy] { background: color-mix(in srgb, #b0577a 15%, transparent); color: #b0577a; }
:global(body[data-theme="dark"]) .emp-badge-cert[b-jfadyufqgy] { color: #7cb896; }
:global(body[data-theme="dark"]) .emp-badge-sem-cert[b-jfadyufqgy] { color: #e6b854; }
:global(body[data-theme="dark"]) .emp-badge-ativo[b-jfadyufqgy] { color: #9db8e3; }
:global(body[data-theme="dark"]) .emp-badge-inativo[b-jfadyufqgy] { color: #e6a9c3; }

.emp-filial-details[b-jfadyufqgy] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    padding: 10px 0;
    border-top: 1px solid var(--rule-hair);
    border-bottom: 1px solid var(--rule-hair);
    margin-bottom: 12px;
}
.emp-filial-detail[b-jfadyufqgy] { display: flex; flex-direction: column; gap: 2px; }
.emp-detail-label[b-jfadyufqgy] {
    font-size: 10.5px;
    color: var(--ink-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 500;
}
.emp-detail-value[b-jfadyufqgy] {
    font-size: 12.5px;
    color: var(--ink);
    font-weight: 400;
}
.emp-filial-actions[b-jfadyufqgy] { display: flex; gap: 8px; justify-content: flex-end; }

/* Switch SEFAZ */
.emp-switch[b-jfadyufqgy] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
    margin-top: 4px;
}
.emp-switch input[b-jfadyufqgy] {
    position: absolute;
    width: 42px;
    height: 22px;
    opacity: 0;
    margin: 0;
    cursor: pointer;
    z-index: 1;
}
.emp-switch-slider[b-jfadyufqgy] {
    position: relative;
    width: 42px;
    height: 22px;
    background: color-mix(in srgb, var(--ink) 25%, transparent);
    border-radius: 999px;
    transition: background 0.2s ease;
    flex-shrink: 0;
}
.emp-switch-slider[b-jfadyufqgy]::before {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 18px;
    height: 18px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.2s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.emp-switch input:checked + .emp-switch-slider[b-jfadyufqgy] {
    background: #3d7a5a;
}
.emp-switch input:checked + .emp-switch-slider[b-jfadyufqgy]::before {
    transform: translateX(20px);
}
.emp-switch-text[b-jfadyufqgy] {
    font-size: 12.5px;
    font-weight: 400;
    color: var(--ink);
}
.emp-checkbox-inline[b-jfadyufqgy] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-weight: 400;
    color: var(--ink);
}

/* Loading + alert */
.hv-loading[b-jfadyufqgy] {
    display: flex;
    align-items: center;
    gap: 12px;
    justify-content: center;
    padding: 50px 0;
    color: var(--ink-2);
    font-size: 13px;
    font-weight: 400;
}
.hv-spinner[b-jfadyufqgy] {
    width: 18px;
    height: 18px;
    border: 2.5px solid color-mix(in srgb, var(--accent) 30%, transparent);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: emp-spin-b-jfadyufqgy 0.8s linear infinite;
    flex-shrink: 0;
}
.hv-spinner-sm[b-jfadyufqgy] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 2px solid color-mix(in srgb, var(--accent) 30%, transparent);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: emp-spin-b-jfadyufqgy 0.8s linear infinite;
    flex-shrink: 0;
}
@keyframes emp-spin-b-jfadyufqgy { to { transform: rotate(360deg); } }

.hv-alert[b-jfadyufqgy] {
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 22%, transparent);
    border-radius: 8px;
    padding: 12px 16px;
    margin: 12px 0;
    color: var(--accent);
    font-size: 13px;
}
.hv-alert.erro[b-jfadyufqgy] {
    background: color-mix(in srgb, #b0577a 12%, transparent);
    border-color: color-mix(in srgb, #b0577a 25%, transparent);
    color: #b0577a;
}

/* Saneamento do municipio da planta: marca o campo legado e sinaliza a
   filial que ainda nao tem codigo IBGE. */
.emp-campo-legado[b-jfadyufqgy] {
    font-size: 10px;
    font-weight: 300;
    color: var(--ink-3);
    text-transform: none;
    letter-spacing: 0;
    margin-left: 6px;
}
.emp-aviso-ibge[b-jfadyufqgy] {
    align-self: end;
    margin: 0 0 6px;
    font-size: 11.5px;
    line-height: 1.4;
    color: var(--ink-3);
    background: color-mix(in srgb, #d68a1a 10%, transparent);
    border-left: 3px solid #d68a1a;
    border-radius: 8px;
    padding: 8px 10px;
}
.emp-ibge-ok[b-jfadyufqgy] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-variant-numeric: tabular-nums;
    color: var(--ink);
    font-size: 13px;
    padding: 9px 0;
}
.hv-btn-link[b-jfadyufqgy] {
    background: none;
    border: none;
    padding: 0;
    font: inherit;
    font-size: 11.5px;
    color: var(--ink-3);
    text-decoration: underline;
    cursor: pointer;
}
.hv-btn-link:hover[b-jfadyufqgy] { color: var(--accent); }

/* Responsive */
@media (max-width: 900px) {
    .hv-form-row.emp-form-row-4[b-jfadyufqgy] { grid-template-columns: 1fr; }
    .emp-input-com-botao[b-jfadyufqgy] { flex-direction: column; }
    .emp-cert-badge[b-jfadyufqgy] { flex-direction: column; text-align: center; }
    .emp-filial-details[b-jfadyufqgy] { grid-template-columns: 1fr; }
}
/* /Components/Pages/Hevy/HevyFechamentoCusto.razor.rz.scp.css */
/* HevyFechamentoCusto — relatorio (nao grid). Tokens Hevy (--ink, --ink-2,
   --ink-3, --rule-hair, --pane-3, --accent). */

[b-o6o1jl8wnt] .spinner-inline {
    width: 13px; height: 13px; border-radius: 50%;
    border: 2px solid color-mix(in srgb, var(--ink) 25%, transparent);
    border-top-color: var(--ink);
    animation: fc-girar-b-o6o1jl8wnt .7s linear infinite;
    display: inline-block;
    vertical-align: middle;
}
@keyframes fc-girar-b-o6o1jl8wnt { to { transform: rotate(360deg); } }

/* Acoes na area livre a direita do titulo. A pagina nao usa FilterBar
   (nao tem filtros de grid), entao os controles moram no .page-head e a
   .kpi-strip vem logo abaixo, solta no .main-head. */
[b-o6o1jl8wnt] .fc-acoes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex: 0 0 auto;
}

/* Pill da competencia: o select vive dentro dela, sem chrome proprio. */
[b-o6o1jl8wnt] .fc-competencia {
    cursor: default;
    padding: 0 6px 0 10px;
    gap: 6px;
}
[b-o6o1jl8wnt] .fc-competencia .lb {
    font-size: 11px;
    color: var(--ink-3);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
[b-o6o1jl8wnt] .fc-competencia-select {
    min-width: 190px;
    background: transparent;
    border: 0;
    outline: none;
    color: var(--ink);
    font-family: inherit;
    font-size: 12px;
    font-weight: 400;
    padding: 5px 2px;
    cursor: pointer;
}
[b-o6o1jl8wnt] .fc-competencia-select:disabled { cursor: default; opacity: 0.6; }
/* .page-head alinha por baseline (titulo + subtitulo); os controles
   precisam de alinhamento vertical proprio. */
[b-o6o1jl8wnt] .page-head:has(.fc-acoes) { align-items: flex-start; }
[b-o6o1jl8wnt] .fc-acoes { margin-top: 4px; }

/* Os KPIs da apuracao vivem na .kpi-strip logo abaixo do .page-head —
   o bloco de cards que ficava no corpo foi absorvido la. */
[b-o6o1jl8wnt] .main-head > .kpi-strip { margin-top: 12px; }

[b-o6o1jl8wnt] .fc-verde { color: #2f8f3f; }
[b-o6o1jl8wnt] .fc-vermelho { color: #c1361b; }
body[data-theme="dark"][b-o6o1jl8wnt]  .fc-verde { color: #58c66d; }
body[data-theme="dark"][b-o6o1jl8wnt]  .fc-vermelho { color: #e57058; }

/* Barra de composicao */
[b-o6o1jl8wnt] .fc-barra {
    display: flex; height: 30px; border-radius: 8px;
    overflow: hidden; margin-bottom: 26px; border: 1px solid var(--rule-hair);
}
[b-o6o1jl8wnt] .fc-barra-seg {
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 11.5px; font-weight: 500; min-width: 2px;
}
[b-o6o1jl8wnt] .fc-b-verde    { background: #2f8f3f; }
[b-o6o1jl8wnt] .fc-b-laranja  { background: #d68a1a; }
[b-o6o1jl8wnt] .fc-b-vermelho { background: #c1361b; }
[b-o6o1jl8wnt] .fc-b-azul     { background: var(--accent); }
[b-o6o1jl8wnt] .fc-b-cinza    { background: #8a8886; }

/* Relatorio IA */
[b-o6o1jl8wnt] .fc-relatorio {
    border: 1px solid var(--rule-hair); border-radius: 12px;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    padding: 20px 24px; margin-bottom: 28px;
}
[b-o6o1jl8wnt] .fc-relatorio-head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
[b-o6o1jl8wnt] .fc-badge {
    font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 10px;
    background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent);
    text-transform: uppercase; letter-spacing: 0.05em;
}
[b-o6o1jl8wnt] .fc-relatorio-meta { font-size: 12px; color: var(--ink-3); }

[b-o6o1jl8wnt] .fc-markdown { font-size: 14px; line-height: 1.7; color: var(--ink); font-weight: 400; }
[b-o6o1jl8wnt] .fc-markdown h2 {
    font-size: 14px; font-weight: 500; color: var(--ink);
    margin: 22px 0 8px; padding-top: 16px; border-top: 1px solid var(--rule-hair);
    letter-spacing: -0.005em;
}
[b-o6o1jl8wnt] .fc-markdown h2:first-child { border-top: none; padding-top: 0; margin-top: 0; }
[b-o6o1jl8wnt] .fc-markdown ol, [b-o6o1jl8wnt] .fc-markdown ul { padding-left: 20px; margin: 10px 0; }
[b-o6o1jl8wnt] .fc-markdown li { margin-bottom: 9px; }
[b-o6o1jl8wnt] .fc-markdown p { margin: 10px 0; }
[b-o6o1jl8wnt] .fc-markdown strong { font-weight: 500; color: var(--ink); }
[b-o6o1jl8wnt] .fc-markdown code {
    font-size: 12.5px; padding: 1px 5px; border-radius: 4px;
    background: color-mix(in srgb, var(--ink) 6%, transparent);
    font-family: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;
}
[b-o6o1jl8wnt] .fc-markdown table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 12px 0; }
[b-o6o1jl8wnt] .fc-markdown th, [b-o6o1jl8wnt] .fc-markdown td { padding: 8px 10px; border-bottom: 1px solid var(--rule-hair); text-align: left; }
[b-o6o1jl8wnt] .fc-markdown th { font-weight: 500; color: var(--ink-3); text-transform: uppercase; font-size: 11px; letter-spacing: 0.05em; }

/* Secoes e blocos */
[b-o6o1jl8wnt] .fc-secao {
    font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
    color: var(--ink-3); font-weight: 500; margin: 28px 0 12px;
}
[b-o6o1jl8wnt] .fc-bloco {
    border: 1px solid var(--rule-hair); border-left-width: 3px;
    border-radius: 12px; background: color-mix(in srgb, var(--ink) 3%, transparent);
    padding: 16px 18px; margin-bottom: 10px;
}
[b-o6o1jl8wnt] .fc-bloco.fc-b-verde    { border-left-color: #2f8f3f; background: color-mix(in srgb, var(--ink) 3%, transparent); }
[b-o6o1jl8wnt] .fc-bloco.fc-b-laranja  { border-left-color: #d68a1a; background: color-mix(in srgb, var(--ink) 3%, transparent); }
[b-o6o1jl8wnt] .fc-bloco.fc-b-vermelho { border-left-color: #c1361b; background: color-mix(in srgb, var(--ink) 3%, transparent); }
[b-o6o1jl8wnt] .fc-bloco.fc-b-azul     { border-left-color: var(--accent); background: color-mix(in srgb, var(--ink) 3%, transparent); }
[b-o6o1jl8wnt] .fc-bloco.fc-b-cinza    { border-left-color: #8a8886; background: color-mix(in srgb, var(--ink) 3%, transparent); }

[b-o6o1jl8wnt] .fc-bloco-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
[b-o6o1jl8wnt] .fc-bloco-titulo { font-size: 14px; font-weight: 500; color: var(--ink); }
[b-o6o1jl8wnt] .fc-bloco-acao { font-size: 13px; color: var(--ink-2); margin-top: 3px; font-weight: 400; }
[b-o6o1jl8wnt] .fc-bloco-num {
    font-size: 22px; font-weight: 400; line-height: 1.1; color: var(--ink);
    white-space: nowrap; font-variant-numeric: tabular-nums;
}
[b-o6o1jl8wnt] .fc-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
[b-o6o1jl8wnt] .fc-tag {
    font-size: 11.5px; padding: 3px 9px; border-radius: 10px;
    background: color-mix(in srgb, var(--ink) 6%, transparent); color: var(--ink-2); font-weight: 400;
}
[b-o6o1jl8wnt] .fc-tag-verde {
    background: color-mix(in srgb, #2f8f3f 14%, transparent);
    color: #2f8f3f; font-weight: 500;
}
body[data-theme="dark"][b-o6o1jl8wnt]  .fc-tag-verde { color: #58c66d; background: color-mix(in srgb, #58c66d 14%, transparent); }
[b-o6o1jl8wnt] .fc-bloco-botoes { display: flex; flex-wrap: wrap; gap: 8px; }

/* Tabelas (Top CT-e e painel de notas) */
[b-o6o1jl8wnt] .fc-tabela-wrap {
    overflow-x: auto; border: 1px solid var(--rule-hair);
    border-radius: 12px; background: color-mix(in srgb, var(--ink) 3%, transparent);
}
[b-o6o1jl8wnt] .fc-tabela { width: 100%; border-collapse: collapse; font-size: 13px; }
[b-o6o1jl8wnt] .fc-tabela th {
    text-align: left; font-weight: 500; font-size: 11px; letter-spacing: .04em;
    text-transform: uppercase; color: var(--ink-3);
    padding: 11px 14px; border-bottom: 1px solid var(--rule-hair);
    white-space: nowrap; background: color-mix(in srgb, var(--ink) 4%, transparent);
}
[b-o6o1jl8wnt] .fc-tabela td { padding: 10px 14px; border-bottom: 1px solid var(--rule-hair); color: var(--ink); font-weight: 400; }
[b-o6o1jl8wnt] .fc-tabela tr:last-child td { border-bottom: none; }
[b-o6o1jl8wnt] .fc-tabela .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

[b-o6o1jl8wnt] .fc-ressalva {
    margin-top: 26px; padding: 14px 18px; border-radius: 12px;
    background: color-mix(in srgb, #d68a1a 10%, transparent);
    border-left: 3px solid #d68a1a;
    font-size: 13px; line-height: 1.65; color: var(--ink);
}
[b-o6o1jl8wnt] .fc-ressalva code { background: color-mix(in srgb, var(--ink) 6%, transparent); padding: 1px 5px; border-radius: 4px; font-family: 'JetBrains Mono', 'SF Mono', Menlo, monospace; }
[b-o6o1jl8wnt] .fc-ressalva strong { font-weight: 500; }

/* Cabecalho do painel: titulo encolhe (ellipsis) para o botao de acao
   nunca ser espremido; o botao respira e nao quebra linha. */
[b-o6o1jl8wnt] .sidebar-detail .fc-painel-header {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-width: 0;
}
[b-o6o1jl8wnt] .sidebar-detail .fc-painel-titulo {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
[b-o6o1jl8wnt] .sidebar-detail .fc-painel-acoes {
    margin-left: auto;
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}
[b-o6o1jl8wnt] .sidebar-detail .fc-painel-acoes .pill {
    font-size: 12px;
    padding: 7px 16px;
}

/* Painel (sidebar-detail) — aviso e tabela virtualizada */
[b-o6o1jl8wnt] .fc-painel-aviso {
    padding: 12px 14px; font-size: 12.5px; line-height: 1.6;
    background: color-mix(in srgb, #d68a1a 10%, transparent);
    border-left: 3px solid #d68a1a; border-radius: 8px;
    color: var(--ink);
}
/* So rolagem horizontal: a vertical fica por conta do .sidebar-content
   (duas barras verticais aninhadas atrapalhavam a leitura). */
[b-o6o1jl8wnt] .fc-painel-corpo { overflow-x: auto; overflow-y: visible; }
/* Notas do bloco viraram SfGrid: rolagem horizontal, resize de coluna e filtro
   Excel sao do proprio componente. O container so precisa dar altura — sem ela
   o Height="100%" do grid colapsa e nada aparece. */
/* So a altura: o resto do visual do grid vem da classe panel-grid, aplicada
   no mesmo container (ver HevyMainLayout.razor.css). */
[b-o6o1jl8wnt] .fc-painel-grid { overflow: visible; height: 60vh; min-height: 320px; }
/* Celula do transportador: e a coluna-evidencia, entao mantem o realce sutil
   que a tabela antiga tinha em .fc-evidencia. */
[b-o6o1jl8wnt] .fc-evidencia-cel { display: block; overflow: hidden; text-overflow: ellipsis; }
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela th {
    position: sticky; top: 0; z-index: 1;
    box-shadow: inset 0 -1px 0 var(--rule-hair);
}
/* A alca de redimensionamento (js/table-resize.js) e posicionada em absolute
   dentro do th. Sticky ja cria contexto de posicionamento, mas o overflow:hidden
   logo abaixo cortaria a alca — por isso ela fica dentro do padding do proprio th. */
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela th .hv-col-resizer { right: 0; }
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela td {
    padding: 9px 14px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela tbody tr:hover { background: color-mix(in srgb, var(--ink) 4%, transparent); }
/* Larguras por classe, nao por nth-child: as colunas de check e de emitente
   sao condicionais e deslocavam a contagem posicional. Com table-layout:fixed
   basta declarar no th — o tbody herda a largura da coluna. */
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela th.fc-check { width: 38px; padding-left: 8px; padding-right: 8px; }
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela th.fc-c-nf { width: 86px; }
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela th.fc-c-oper { width: 110px; }
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela th.fc-c-emit { width: 155px; }
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela th.fc-c-dest { width: 145px; }
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela th.fc-c-merc { width: 120px; }
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela th.fc-c-custo { width: 140px; }
/* A coluna de transportador nao tem largura fixa: fica com a sobra. Com o
   check e o emitente ocupando espaco a sobra encolheu e o rotulo + o selo
   "evidencia" vazavam por cima de Mercadoria — o th nao herda o overflow
   que so estava no td. */
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela th { overflow: hidden; }
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela td.fc-check { overflow: visible; text-align: center; padding-left: 8px; padding-right: 8px; }
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela td.num { overflow: visible; text-overflow: clip; }

/* Linha de filtros das colunas. Fica grudada abaixo do header, que ja e
   sticky — por isso o top precisa do offset da propria altura do header. */
[b-o6o1jl8wnt] .fc-painel-corpo .fc-tabela tr.fc-filtros th {
    position: sticky;
    top: 33px;
    z-index: 1;
    padding: 5px 8px 7px;
    background: inherit;
    box-shadow: inset 0 -1px 0 var(--rule-hair);
}
[b-o6o1jl8wnt] .fc-filtro-input {
    width: 100%;
    min-width: 0;
    padding: 4px 7px;
    border: 1px solid var(--rule-hair);
    border-radius: 6px;
    background: var(--pane-3);
    color: var(--ink);
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 300;
    outline: none;
    transition: border-color .15s ease;
}
[b-o6o1jl8wnt] .fc-filtro-input::placeholder { color: var(--ink-3); font-weight: 300; }
[b-o6o1jl8wnt] .fc-filtro-input:focus { border-color: var(--accent); }
[b-o6o1jl8wnt] .fc-filtro-input.num { text-align: right; font-variant-numeric: tabular-nums; }
[b-o6o1jl8wnt] .fc-limpar-filtro {
    width: 20px; height: 20px;
    display: grid; place-items: center;
    border: 1px solid var(--rule-hair);
    border-radius: 6px;
    background: var(--pane-3);
    color: var(--ink-2);
    font-size: 13px; line-height: 1;
    cursor: pointer;
    padding: 0;
}
[b-o6o1jl8wnt] .fc-limpar-filtro:hover { border-color: var(--accent); color: var(--accent); }

[b-o6o1jl8wnt] .fc-num-nf { font-variant-numeric: tabular-nums; color: var(--ink-3); font-weight: 400; }
[b-o6o1jl8wnt] .fc-evidencia { background: color-mix(in srgb, #d68a1a 7%, transparent); font-weight: 500; }
[b-o6o1jl8wnt] .fc-th-tag {
    font-size: 9px; letter-spacing: .06em; padding: 1px 5px; border-radius: 8px;
    background: color-mix(in srgb, #d68a1a 20%, transparent); color: #a0640a;
    margin-left: 6px; vertical-align: middle; font-weight: 600;
}
body[data-theme="dark"][b-o6o1jl8wnt]  .fc-th-tag { color: #e6b854; }
[b-o6o1jl8wnt] .fc-est { font-size: 10.5px; color: var(--ink-3); margin-left: 4px; }
[b-o6o1jl8wnt] .fc-vazio { color: var(--ink-3); }

/* ===== Chave de acesso das NF-e que faltam =====
   Mesma linguagem visual do item de chave da tela de Inconsistencias: a chave em
   monoespacado (44 digitos so sao conferiveis assim) e o copiar discreto, que so
   ganha cor no hover. Aqui a chave vive dentro de celula de SfGrid, entao precisa
   de ::deep e nao pode quebrar linha. */
[b-o6o1jl8wnt] .fc-chave-cel {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: 100%;
}
[b-o6o1jl8wnt] .fc-chave-valor {
    font-family: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;
    font-size: 10.5px;
    color: var(--ink-2);
    letter-spacing: .01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
[b-o6o1jl8wnt] .fc-chave-copiar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: var(--ink-3);
    cursor: pointer;
    opacity: 0.55;
    transition: opacity 0.15s, background 0.15s, color 0.15s;
}
[b-o6o1jl8wnt] .fc-chave-cel:hover .fc-chave-copiar { opacity: 1; }
[b-o6o1jl8wnt] .fc-chave-copiar:hover {
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink);
}
/* /Components/Pages/Hevy/HevyFrota.razor.rz.scp.css */
.hv-badge-inativo[b-7gpck01jsr] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: color-mix(in srgb, #b0577a 15%, transparent);
    color: #b0577a;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.5;
    white-space: nowrap;
}
.hv-badge-info[b-7gpck01jsr] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: color-mix(in srgb, #4a6fa8 15%, transparent);
    color: #4a6fa8;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.5;
    white-space: nowrap;
}

.sidebar-dialog-footer[b-7gpck01jsr] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--rule-hair);
}

[b-7gpck01jsr] .hv-section-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

[b-7gpck01jsr] .hv-chip-row {
    display: flex;
    gap: 6px;
    margin-bottom: 12px;
}

[b-7gpck01jsr] .hv-inline-form {
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    padding: 14px;
    margin-bottom: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

[b-7gpck01jsr] .hv-inline-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

[b-7gpck01jsr] .hv-card-row {
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    transition: border-color 0.15s ease, background 0.15s ease;
}
[b-7gpck01jsr] .hv-card-row:hover {
    background: color-mix(in srgb, var(--ink) 5%, transparent);
    border-color: color-mix(in srgb, var(--ink) 15%, var(--rule-hair));
}
[b-7gpck01jsr] .hv-card-row-body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
[b-7gpck01jsr] .hv-card-row-title {
    color: var(--ink);
    font-size: 13.5px;
    font-weight: 500;
}
[b-7gpck01jsr] .hv-card-row-sub {
    color: var(--ink-3);
    font-size: 12px;
}
[b-7gpck01jsr] .hv-card-row-accent {
    color: var(--accent);
    font-size: 13px;
    font-weight: 500;
    margin-top: 2px;
    font-variant-numeric: tabular-nums;
}
[b-7gpck01jsr] .hv-card-row-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

[b-7gpck01jsr] .hv-btn-icon {
    background: transparent;
    border: 0;
    padding: 4px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
[b-7gpck01jsr] .hv-btn-icon-info { color: #4a6fa8; }
[b-7gpck01jsr] .hv-btn-icon-info:hover { background: color-mix(in srgb, #4a6fa8 15%, transparent); }
[b-7gpck01jsr] .hv-btn-icon-danger { color: #b0577a; }
[b-7gpck01jsr] .hv-btn-icon-danger:hover { background: color-mix(in srgb, #b0577a 15%, transparent); }

[b-7gpck01jsr] .hv-empty-text {
    color: var(--ink-3);
    font-size: 12.5px;
    font-style: italic;
    margin: 8px 0;
}

[b-7gpck01jsr] .hv-alert-danger {
    color: #b0577a;
    background: color-mix(in srgb, #b0577a 10%, transparent);
    border: 1px solid color-mix(in srgb, #b0577a 25%, transparent);
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 12px;
    margin: 4px 0;
}

/* Nota explicativa do modelo R$/km pleno: informativa, nao e erro — usa o
   mesmo ambar dos avisos de evidencia do fechamento. */
[b-7gpck01jsr] .hv-aviso-custeio {
    color: var(--ink-2);
    background: color-mix(in srgb, #d68a1a 10%, transparent);
    border-left: 3px solid #d68a1a;
    padding: 9px 12px;
    border-radius: 8px;
    font-size: 12px;
    line-height: 1.45;
    margin: 2px 0 4px;
}

[b-7gpck01jsr] .hv-btn-small {
    font-size: 12px !important;
    padding: 4px 12px !important;
}[b-7gpck01jsr] .hv-mini-table {
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    overflow: hidden;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
}
[b-7gpck01jsr] .hv-mini-table-head {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr 1fr;
    padding: 10px 14px;
    background: color-mix(in srgb, var(--ink) 4%, transparent);
    border-bottom: 1px solid var(--rule-hair);
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-3);
}
[b-7gpck01jsr] .hv-mini-table-row {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr 1fr;
    padding: 10px 14px;
    border-bottom: 1px solid var(--rule-hair);
    font-size: 12.5px;
    color: var(--ink-2);
    align-items: center;
}
[b-7gpck01jsr] .hv-mini-table-row:last-child { border-bottom: 0; }

/* O SfNumericTextBox e estilizado globalmente em hevy-sidebar-detail.css
   (.e-input-group.hv-numeric). A copia scoped que vivia aqui disputava
   especificidade com a global e deixava o campo mais alto que os vizinhos. */

/* ===== Catalogo de veiculos: busca e ficha tecnica ===== */
.ct-busca[b-7gpck01jsr] {
    margin-bottom: 12px;
}
.ct-opcional[b-7gpck01jsr] {
    margin-left: 6px;
    font-size: 11px;
    font-weight: 300;
    color: var(--ink-3);
}
/* Item destacado pelas setas. A lista de sugestoes e global (hevy-shell.css); aqui so o destaque. */
.ct-sugestao-ativa[b-7gpck01jsr] {
    background: color-mix(in srgb, var(--ink) 8%, transparent);
}
.ct-busca-acoes[b-7gpck01jsr] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 6px;
}
.ct-link[b-7gpck01jsr] {
    padding: 0;
    background: none;
    border: none;
    font: inherit;
    font-size: 12px;
    color: var(--accent);
    cursor: pointer;
}
.ct-link:disabled[b-7gpck01jsr] {
    color: var(--ink-3);
    cursor: not-allowed;
}
.ct-ficha[b-7gpck01jsr] {
    margin: 4px 0 14px;
    padding: 12px 14px;
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
}
.ct-ficha-titulo[b-7gpck01jsr] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 500;
    color: var(--ink);
}
.ct-ficha-categoria[b-7gpck01jsr] {
    font-size: 11px;
    font-weight: 400;
    color: var(--ink-3);
    white-space: nowrap;
}
.ct-ficha-grade[b-7gpck01jsr] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 8px 16px;
}
.ct-ficha-item[b-7gpck01jsr] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.ct-ficha-lb[b-7gpck01jsr] {
    font-size: 10.5px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink-3);
}
.ct-ficha-vl[b-7gpck01jsr] {
    font-size: 12.5px;
    color: var(--ink);
}
.ct-estimado[b-7gpck01jsr] {
    margin-left: 4px;
    color: var(--accent);
    cursor: help;
}
.ct-ficha-fonte[b-7gpck01jsr] {
    margin-top: 10px;
    font-size: 11px;
    color: var(--ink-3);
}
.ct-dica[b-7gpck01jsr] {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    color: var(--ink-3);
}
/* /Components/Pages/Hevy/HevyImportacao.razor.rz.scp.css */
/* ═════════════════════════════════════════════════════════════════════
   HevyImportacao — estilos locais da pagina de importacao.
   Tudo que e generico do shell (.panel, .kpi-strip, .hv-form, .hv-input,
   .hv-btn-*, .hv-alert, .hv-progress-bar/.hv-progress-fill, .tabs/.tab)
   vem do hevy-shell.css / hevy-sidebar-detail.css — aqui so o que e
   especifico de importacao (upload, resultado, templates, mapeamento e
   o drill-in de itens do lote).
   ═════════════════════════════════════════════════════════════════════ */

/* Contador ao lado do rotulo da aba (padrao .usu-tab-count do HevyUsuarios). */
.imp-tab-count[b-moq933kuv4] {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 7px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink-3);
    font-size: 10.5px;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    vertical-align: 1px;
}

/* Botao primary contextual no ExtraActions (Novo template). */
.pill-primary-act[b-moq933kuv4] {
    background: color-mix(in srgb, var(--accent) 14%, transparent) !important;
    color: var(--accent) !important;
    border-color: color-mix(in srgb, var(--accent) 30%, transparent) !important;
}
.pill-primary-act:hover[b-moq933kuv4] {
    background: color-mix(in srgb, var(--accent) 22%, transparent) !important;
}

/* KPI de erros fica vermelho quando ha erros no historico. */
.kpi-cell.erro .kpi-vl[b-moq933kuv4] { color: #c1361b; }
:global(body[data-theme="dark"]) .kpi-cell.erro .kpi-vl[b-moq933kuv4] { color: #ef7d63; }

.imp-panel-gap[b-moq933kuv4] { margin-top: 14px; }

/* ═════════ Sub-abas (Importar / Templates) ═════════ */
.imp-subtabs[b-moq933kuv4] {
    display: flex;
    gap: 4px;
    background: color-mix(in srgb, var(--ink) 4%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 12px;
    padding: 4px;
    margin-bottom: 14px;
    width: fit-content;
}
.imp-subtab[b-moq933kuv4] {
    background: transparent;
    border: 0;
    color: var(--ink-2);
    padding: 8px 20px;
    border-radius: 8px;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 400;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.imp-subtab:hover[b-moq933kuv4] {
    color: var(--ink);
    background: color-mix(in srgb, var(--ink) 5%, transparent);
}
.imp-subtab.active[b-moq933kuv4] {
    background: var(--pane-3);
    color: var(--ink);
    font-weight: 500;
    box-shadow: 0 1px 3px rgba(40, 32, 22, 0.08);
}

/* ═════════ Card de upload ═════════ */
.imp-upload-card[b-moq933kuv4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    padding: 34px 24px;
    border: 1px dashed color-mix(in srgb, var(--ink) 18%, transparent);
    border-radius: 14px;
    background: color-mix(in srgb, var(--ink) 2.5%, transparent);
}
.imp-upload-inline[b-moq933kuv4] {
    margin-top: 14px;
    padding: 26px 20px;
}
.imp-upload-icon[b-moq933kuv4] {
    color: var(--accent);
    opacity: 0.85;
    line-height: 0;
}
.imp-upload-icon.warn[b-moq933kuv4] { color: #b8860b; }
:global(body[data-theme="dark"]) .imp-upload-icon.warn[b-moq933kuv4] { color: #e6b854; }

.imp-upload-title[b-moq933kuv4] {
    margin: 4px 0 0;
    font-size: 15px;
    font-weight: 500;
    color: var(--ink);
    letter-spacing: -0.005em;
}
.imp-upload-sub[b-moq933kuv4] {
    margin: 0 0 8px;
    font-size: 12.5px;
    color: var(--ink-3);
    font-weight: 300;
}

/* Label que embrulha o <InputFile> — visual de hv-btn-primary. */
.imp-file-btn[b-moq933kuv4] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--accent);
    color: #ffffff;
    border: 1px solid var(--accent);
    border-radius: 8px;
    padding: 9px 20px;
    font-size: 12.5px;
    font-family: inherit;
    font-weight: 500;
    cursor: pointer;
    transition: filter 0.15s ease, opacity 0.15s ease;
    white-space: nowrap;
}
.imp-file-btn:hover[b-moq933kuv4] { filter: brightness(0.94); }
.imp-file-btn.sm[b-moq933kuv4] {
    padding: 7px 14px;
    font-size: 12px;
    align-self: flex-start;
}
.imp-file-btn.desativado[b-moq933kuv4] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* ═════════ Progresso ═════════ */
.imp-progress[b-moq933kuv4] { padding: 2px 0; }
.imp-progress-head[b-moq933kuv4] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.imp-progress-tit[b-moq933kuv4] {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13px;
    color: var(--ink);
    font-weight: 400;
    min-width: 0;
}
.imp-progress-pct[b-moq933kuv4] {
    font-size: 13px;
    font-weight: 500;
    color: var(--accent);
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}
.imp-progress-det[b-moq933kuv4] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-top: 8px;
    font-size: 11.5px;
    color: var(--ink-3);
    font-variant-numeric: tabular-nums;
}
.imp-progress-file[b-moq933kuv4] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.imp-spinner[b-moq933kuv4] {
    width: 14px;
    height: 14px;
    border: 2px solid color-mix(in srgb, var(--accent) 25%, transparent);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: imp-spin-b-moq933kuv4 0.7s linear infinite;
    flex-shrink: 0;
}
@keyframes imp-spin-b-moq933kuv4 { to { transform: rotate(360deg); } }

.imp-loading[b-moq933kuv4] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 40px 0;
    color: var(--ink-2);
    font-size: 13px;
}

/* ═════════ Cards de resultado ═════════ */
.imp-result-wrap[b-moq933kuv4] { display: block; }
.imp-result-grid[b-moq933kuv4] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
}
.imp-result-item[b-moq933kuv4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 14px 12px;
    border-radius: 12px;
    border: 1px solid var(--rule-hair);
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    text-align: center;
    min-width: 0;
}
.imp-result-num[b-moq933kuv4] {
    font-size: 24px;
    font-weight: 300;
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.imp-result-lb[b-moq933kuv4] {
    font-size: 10.5px;
    color: var(--ink-3);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 500;
}
.imp-result-item.ok .imp-result-num[b-moq933kuv4] { color: #2f8f3f; }
.imp-result-item.info .imp-result-num[b-moq933kuv4] { color: #3b6ca8; }
.imp-result-item.err .imp-result-num[b-moq933kuv4] { color: #c1361b; }
.imp-result-item.err[b-moq933kuv4] {
    background: color-mix(in srgb, #c1361b 8%, transparent);
    border-color: color-mix(in srgb, #c1361b 25%, transparent);
}
:global(body[data-theme="dark"]) .imp-result-item.ok .imp-result-num[b-moq933kuv4] { color: #58c66d; }
:global(body[data-theme="dark"]) .imp-result-item.info .imp-result-num[b-moq933kuv4] { color: #7ba9e0; }
:global(body[data-theme="dark"]) .imp-result-item.err .imp-result-num[b-moq933kuv4] { color: #ef7d63; }

.imp-result-item.clicavel[b-moq933kuv4] {
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.imp-result-item.clicavel:hover[b-moq933kuv4] {
    border-color: color-mix(in srgb, var(--accent) 40%, transparent);
    background: color-mix(in srgb, var(--accent) 7%, transparent);
}

/* ═════════ Lista de erros inline ═════════ */
.imp-erros[b-moq933kuv4] {
    margin-top: 14px;
    padding: 12px 16px;
    border-radius: 10px;
    background: color-mix(in srgb, #c1361b 7%, transparent);
    border: 1px solid color-mix(in srgb, #c1361b 22%, transparent);
}
.imp-erros h5[b-moq933kuv4] {
    margin: 0 0 6px;
    font-size: 10.5px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #c1361b;
}
:global(body[data-theme="dark"]) .imp-erros h5[b-moq933kuv4] { color: #ef7d63; }
.imp-erros ul[b-moq933kuv4] {
    margin: 0;
    padding-left: 18px;
    max-height: 220px;
    overflow-y: auto;
}
.imp-erros li[b-moq933kuv4] {
    font-size: 12px;
    color: var(--ink-2);
    line-height: 1.55;
    font-weight: 300;
}

.imp-info[b-moq933kuv4] {
    margin-top: 14px;
    padding: 12px 16px;
    border-radius: 10px;
    background: color-mix(in srgb, #2f7d4f 7%, transparent);
    border: 1px solid color-mix(in srgb, #2f7d4f 22%, transparent);
}
.imp-info h5[b-moq933kuv4] {
    margin: 0 0 6px;
    font-size: 10.5px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #2f7d4f;
}
:global(body[data-theme="dark"]) .imp-info h5[b-moq933kuv4] { color: #6fc596; }
.imp-info ul[b-moq933kuv4] {
    margin: 0;
    padding-left: 18px;
    max-height: 220px;
    overflow-y: auto;
}
.imp-info li[b-moq933kuv4] {
    font-size: 12px;
    color: var(--ink-2);
    line-height: 1.55;
    font-weight: 300;
}

.imp-empty[b-moq933kuv4] {
    padding: 26px 20px;
    text-align: center;
    color: var(--ink-3);
    font-size: 12.5px;
    font-weight: 300;
}

.imp-dica[b-moq933kuv4] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    padding: 11px 15px;
    border-radius: 10px;
    background: color-mix(in srgb, #3b6ca8 8%, transparent);
    border: 1px solid color-mix(in srgb, #3b6ca8 22%, transparent);
    color: var(--ink-2);
    font-size: 12px;
    font-weight: 300;
}
.imp-dica svg[b-moq933kuv4] { color: #3b6ca8; flex-shrink: 0; }
:global(body[data-theme="dark"]) .imp-dica svg[b-moq933kuv4] { color: #7ba9e0; }

/* ═════════ Cards de template ═════════ */
.imp-tpl-grid[b-moq933kuv4] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 10px;
}
.imp-tpl-card[b-moq933kuv4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 15px;
    border-radius: 12px;
    border: 1px solid var(--rule-hair);
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    transition: border-color 0.15s ease, background 0.15s ease;
}
.imp-tpl-card:hover[b-moq933kuv4] {
    background: color-mix(in srgb, var(--ink) 5%, transparent);
    border-color: color-mix(in srgb, var(--ink) 15%, var(--rule-hair));
}
.imp-tpl-info[b-moq933kuv4] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.imp-tpl-info strong[b-moq933kuv4] {
    font-size: 13px;
    font-weight: 500;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.imp-tpl-meta[b-moq933kuv4] {
    font-size: 11px;
    color: var(--ink-3);
    font-weight: 300;
    font-variant-numeric: tabular-nums;
}
.imp-tpl-acoes[b-moq933kuv4] {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}
.imp-btn-icon[b-moq933kuv4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: transparent;
    border: 1px solid var(--rule-hair);
    color: var(--ink-3);
    cursor: pointer;
    transition: all 0.15s ease;
}
.imp-btn-icon:hover[b-moq933kuv4] {
    background: color-mix(in srgb, var(--ink) 7%, transparent);
    color: var(--ink);
}
.imp-btn-icon.danger:hover[b-moq933kuv4] {
    background: color-mix(in srgb, #c1361b 12%, transparent);
    border-color: color-mix(in srgb, #c1361b 30%, transparent);
    color: #c1361b;
}
:global(body[data-theme="dark"]) .imp-btn-icon.danger:hover[b-moq933kuv4] { color: #ef7d63; }

/* ═════════ Mapeamento visual (dialogs de template) ═════════ */
.imp-map-sec[b-moq933kuv4] { margin-top: 6px; }
.imp-map-sec h4[b-moq933kuv4] {
    margin: 0 0 3px;
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-3);
}
.imp-map-sec p[b-moq933kuv4] {
    margin: 0 0 8px;
    font-size: 11.5px;
    color: var(--ink-3);
    font-weight: 300;
}

/* ═════════ Campos do dialogo de template XLSX (FormatoData, TotalPrefix, Versao) ═════════ */
.imp-form-group-full[b-moq933kuv4] { grid-column: 1 / -1; }

.hv-form-help[b-moq933kuv4] {
    margin: 0;
    font-size: 11.5px;
    color: var(--ink-3);
    font-weight: 300;
}

.hv-input-readonly[b-moq933kuv4] {
    display: inline-flex;
    align-items: center;
    min-height: 35px;
    opacity: 0.75;
}

/* SfTextBox como .hv-input — mesmo padrao do .hv-numeric (hevy-sidebar-detail.css),
   escopado aqui porque so este dialogo usa SfTextBox nesta tela. ::deep e obrigatorio:
   o markup do SfTextBox e do componente Syncfusion, nao ganha o atributo de escopo. */
[b-moq933kuv4] .e-input-group.hv-textbox {
    min-height: 35px;
    background: rgba(255, 255, 255, 0.55) !important;
    border: 1px solid var(--rule-hair) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: center !important;
}
[b-moq933kuv4] .e-input-group.hv-textbox input.e-input {
    background: transparent !important;
    border: 0 !important;
    color: var(--ink) !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 300 !important;
    padding: 0 12px !important;
    height: 33px !important;
    min-height: 0 !important;
    box-shadow: none !important;
}
[b-moq933kuv4] .e-input-group.hv-textbox.e-input-focus {
    border-color: var(--accent) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent) !important;
}
:global(body[data-theme="dark"])[b-moq933kuv4]  .e-input-group.hv-textbox {
    background: rgba(255, 250, 240, 0.06) !important;
}

.imp-map-grid[b-moq933kuv4] {
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    overflow: hidden;
    max-height: 320px;
    overflow-y: auto;
    background: color-mix(in srgb, var(--ink) 2.5%, transparent);
}
.imp-map-head[b-moq933kuv4],
.imp-map-row[b-moq933kuv4] {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 10px;
    align-items: center;
    padding: 8px 12px;
}
.imp-map-grid.c3 .imp-map-head[b-moq933kuv4],
.imp-map-grid.c3 .imp-map-row[b-moq933kuv4] {
    grid-template-columns: 1fr 1fr 1fr;
}
.imp-map-head[b-moq933kuv4] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: color-mix(in srgb, var(--ink) 6%, var(--pane-3));
    border-bottom: 1px solid var(--rule-hair);
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-3);
}
.imp-map-row[b-moq933kuv4] { border-bottom: 1px solid var(--rule-hair); }
.imp-map-row:last-child[b-moq933kuv4] { border-bottom: none; }
.imp-map-col[b-moq933kuv4] {
    font-size: 12px;
    color: var(--ink);
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}
.imp-map-val[b-moq933kuv4] {
    font-size: 11.5px;
    color: var(--ink-2);
    font-weight: 300;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    font-variant-numeric: tabular-nums;
}
.imp-map-sel[b-moq933kuv4] {
    padding: 5px 9px !important;
    font-size: 11.5px !important;
}

.imp-map-resumo[b-moq933kuv4] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.imp-map-tag[b-moq933kuv4] {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    padding: 4px 10px;
    border-radius: 7px;
    background: color-mix(in srgb, var(--ink) 5%, transparent);
    border: 1px solid var(--rule-hair);
    font-size: 11.5px;
    color: var(--ink-2);
    font-weight: 300;
}
.imp-map-tag strong[b-moq933kuv4] {
    color: var(--ink-3);
    font-weight: 500;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ═════════ Selecao de sheets (template XLSX) ═════════ */
.imp-sheets[b-moq933kuv4] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    padding: 6px;
    max-height: 180px;
    overflow-y: auto;
    background: color-mix(in srgb, var(--ink) 2.5%, transparent);
}
.imp-sheet[b-moq933kuv4] {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 6px 9px;
    border-radius: 7px;
    cursor: pointer;
    transition: background 0.12s ease;
}
.imp-sheet:hover[b-moq933kuv4] { background: color-mix(in srgb, var(--ink) 5%, transparent); }
.imp-sheet input[type="checkbox"][b-moq933kuv4] {
    accent-color: var(--accent);
    cursor: pointer;
    flex-shrink: 0;
}
.imp-sheet-nome[b-moq933kuv4] {
    flex: 1;
    font-size: 12.5px;
    color: var(--ink);
    font-weight: 400;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.imp-sheet-nome.ignorado[b-moq933kuv4] {
    color: var(--ink-3);
    text-decoration: line-through;
    font-weight: 300;
}
.imp-sheet-cols[b-moq933kuv4] {
    font-size: 11px;
    color: var(--ink-3);
    font-weight: 300;
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}

/* ═════════ Amostra (upload dentro do dialog de template) ═════════ */
.imp-amostra-box[b-moq933kuv4] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 15px;
    border-radius: 10px;
    border: 1px dashed color-mix(in srgb, var(--ink) 18%, transparent);
    background: color-mix(in srgb, var(--ink) 2.5%, transparent);
}
.imp-amostra-box > svg[b-moq933kuv4] { color: var(--accent); flex-shrink: 0; }
.imp-amostra-txt[b-moq933kuv4] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}
.imp-amostra-txt strong[b-moq933kuv4] {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--ink);
}
.imp-amostra-txt span[b-moq933kuv4] {
    font-size: 11.5px;
    color: var(--ink-3);
    font-weight: 300;
}

/* ═════════ Substituir fatura duplicada (dialog XLSX) ═════════ */
.imp-dup[b-moq933kuv4] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.imp-dup-ajuda[b-moq933kuv4] {
    margin: 0;
    font-size: 12px;
    color: var(--ink-3);
    font-weight: 300;
    line-height: 1.5;
}
.imp-dup-lista[b-moq933kuv4] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    max-height: 320px;
    overflow-y: auto;
    background: color-mix(in srgb, var(--ink) 2.5%, transparent);
}
.imp-dup-item[b-moq933kuv4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--rule-hair);
}
.imp-dup-item:last-child[b-moq933kuv4] { border-bottom: none; }
.imp-dup-item-info[b-moq933kuv4] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.imp-dup-arquivo[b-moq933kuv4] {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.imp-dup-detalhe[b-moq933kuv4] {
    font-size: 11.5px;
    color: var(--ink-3);
    font-weight: 300;
}
.imp-dup-escolha[b-moq933kuv4] {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
}
.imp-dup-radio[b-moq933kuv4] {
    display: flex;
    align-items: center;
    font-size: 12px;
    white-space: nowrap;
}
.imp-dup-radio[b-moq933kuv4]  .e-label {
    color: var(--ink-2);
    font-weight: 400;
}

/* ═════════ Drill-in de itens do lote ═════════ */
.imp-det[b-moq933kuv4] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 0;
}

.imp-det-batch[b-moq933kuv4] {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--rule-hair);
}
.imp-det-batch-l1[b-moq933kuv4] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
}
.imp-det-batch-id[b-moq933kuv4] {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.06em;
    color: var(--accent);
}
.imp-det-batch-data[b-moq933kuv4],
.imp-det-batch-user[b-moq933kuv4] {
    font-size: 11.5px;
    color: var(--ink-3);
    font-weight: 300;
    font-variant-numeric: tabular-nums;
}

.imp-det-pills[b-moq933kuv4] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.imp-det-pill[b-moq933kuv4] {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 5px 11px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--ink) 4%, transparent);
    border: 1px solid var(--rule-hair);
    font-size: 11.5px;
    color: var(--ink-2);
    font-weight: 300;
    font-variant-numeric: tabular-nums;
}
.imp-det-pill strong[b-moq933kuv4] {
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-3);
}
.imp-det-pill .sep[b-moq933kuv4] { color: var(--ink-4, var(--ink-3)); }
.imp-det-pill .warn[b-moq933kuv4] { color: #b8860b; font-weight: 400; }
.imp-det-pill .err[b-moq933kuv4] { color: #c1361b; font-weight: 500; }
.imp-det-pill.vazia[b-moq933kuv4] { opacity: 0.5; }
.imp-det-pill.ativa[b-moq933kuv4] {
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border-color: color-mix(in srgb, var(--accent) 30%, transparent);
}
.imp-det-pill.ativa strong[b-moq933kuv4] { color: var(--accent); }
.imp-det-pill.ativa-err[b-moq933kuv4] {
    background: color-mix(in srgb, #c1361b 10%, transparent);
    border-color: color-mix(in srgb, #c1361b 30%, transparent);
}
:global(body[data-theme="dark"]) .imp-det-pill .warn[b-moq933kuv4] { color: #e6b854; }
:global(body[data-theme="dark"]) .imp-det-pill .err[b-moq933kuv4] { color: #ef7d63; }

.imp-det-erros-gerais[b-moq933kuv4] {
    padding: 10px 14px;
    border-radius: 9px;
    background: color-mix(in srgb, #c1361b 7%, transparent);
    border: 1px solid color-mix(in srgb, #c1361b 22%, transparent);
}
.imp-det-erros-titulo[b-moq933kuv4] {
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #c1361b;
    margin-bottom: 5px;
}
:global(body[data-theme="dark"]) .imp-det-erros-titulo[b-moq933kuv4] { color: #ef7d63; }
.imp-det-erros-gerais pre[b-moq933kuv4] {
    margin: 0;
    font-family: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;
    font-size: 11px;
    color: var(--ink-2);
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 130px;
    overflow-y: auto;
}

.imp-det-legado[b-moq933kuv4] {
    padding: 34px 24px;
    text-align: center;
}
.imp-det-legado h4[b-moq933kuv4] {
    margin: 0 0 6px;
    font-size: 14px;
    font-weight: 500;
    color: var(--ink);
}
.imp-det-legado p[b-moq933kuv4] {
    margin: 0 auto;
    max-width: 560px;
    font-size: 12.5px;
    color: var(--ink-3);
    font-weight: 300;
    line-height: 1.6;
}

/* Master-detail: lista a esquerda, detalhe a direita. */
.imp-det-body[b-moq933kuv4] {
    display: grid;
    grid-template-columns: 290px 1fr;
    gap: 14px;
    min-height: 0;
    height: 46vh;
}
.imp-det-lista[b-moq933kuv4] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    background: color-mix(in srgb, var(--ink) 2.5%, transparent);
    overflow: hidden;
}
.imp-det-lista-head[b-moq933kuv4] {
    padding: 8px 12px;
    border-bottom: 1px solid var(--rule-hair);
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-3);
    flex-shrink: 0;
}
.imp-det-lista-scroll[b-moq933kuv4] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}
.imp-det-item[b-moq933kuv4] {
    padding: 9px 12px;
    border-bottom: 1px solid var(--rule-hair);
    border-left: 2px solid transparent;
    cursor: pointer;
    transition: background 0.12s ease;
}
.imp-det-item:last-child[b-moq933kuv4] { border-bottom: none; }
.imp-det-item:hover[b-moq933kuv4] { background: color-mix(in srgb, var(--ink) 5%, transparent); }
.imp-det-item.sel[b-moq933kuv4] {
    background: color-mix(in srgb, var(--accent) 9%, transparent);
    border-left-color: var(--accent);
}
.imp-det-item.err[b-moq933kuv4] { border-left-color: color-mix(in srgb, #c1361b 55%, transparent); }
.imp-det-item.ign[b-moq933kuv4] { border-left-color: color-mix(in srgb, #b8860b 45%, transparent); }
.imp-det-item.sel.err[b-moq933kuv4],
.imp-det-item.sel.ign[b-moq933kuv4] { border-left-color: var(--accent); }
.imp-det-item-tit[b-moq933kuv4] {
    font-size: 12.5px;
    font-weight: 400;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.imp-det-item-sub[b-moq933kuv4] {
    font-size: 11px;
    color: var(--ink-3);
    font-weight: 300;
    margin-top: 1px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.imp-det-corpo[b-moq933kuv4] {
    min-height: 0;
    overflow-y: auto;
    padding-right: 4px;
}
.imp-det-placeholder[b-moq933kuv4] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: var(--ink-3);
    font-size: 12.5px;
    font-weight: 300;
}
.imp-det-badge[b-moq933kuv4] {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.imp-det-badge.err[b-moq933kuv4] {
    background: color-mix(in srgb, #c1361b 13%, transparent);
    color: #c1361b;
}
.imp-det-badge.ign[b-moq933kuv4] {
    background: color-mix(in srgb, #b8860b 15%, transparent);
    color: #96700a;
}
:global(body[data-theme="dark"]) .imp-det-badge.err[b-moq933kuv4] { color: #ef7d63; }
:global(body[data-theme="dark"]) .imp-det-badge.ign[b-moq933kuv4] { color: #e6b854; }

.imp-det-h3[b-moq933kuv4] {
    margin: 8px 0 12px;
    font-size: 16px;
    font-weight: 500;
    color: var(--ink);
    letter-spacing: -0.01em;
}
.imp-det-info[b-moq933kuv4] {
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    overflow: hidden;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
}
.imp-det-row[b-moq933kuv4] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
    padding: 9px 14px;
    border-bottom: 1px solid var(--rule-hair);
}
.imp-det-row:last-child[b-moq933kuv4] { border-bottom: none; }
.imp-det-lb[b-moq933kuv4] {
    font-size: 12px;
    color: var(--ink-2);
    font-weight: 400;
    flex-shrink: 0;
}
.imp-det-vl[b-moq933kuv4] {
    font-size: 12px;
    color: var(--ink);
    font-weight: 400;
    text-align: right;
    max-width: 70%;
    word-break: break-word;
    font-variant-numeric: tabular-nums;
}
.imp-det-vl.chave[b-moq933kuv4] {
    font-family: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;
    font-size: 10.5px;
    letter-spacing: 0.02em;
}
.imp-det-vl.destaque[b-moq933kuv4] { color: var(--accent); font-weight: 500; }

.imp-det-tecnico[b-moq933kuv4] {
    margin-top: 12px;
    padding: 11px 14px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--ink) 5%, transparent);
    border: 1px solid var(--rule-hair);
}
.imp-det-tecnico h5[b-moq933kuv4] {
    margin: 0 0 6px;
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-3);
}
.imp-det-tecnico pre[b-moq933kuv4] {
    margin: 0;
    font-family: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;
    font-size: 11px;
    color: var(--ink-2);
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 220px;
    overflow-y: auto;
}

@media (max-width: 900px) {
    .imp-det-body[b-moq933kuv4] {
        grid-template-columns: 1fr;
        height: auto;
    }
    .imp-det-lista[b-moq933kuv4] { max-height: 220px; }
}
/* /Components/Pages/Hevy/HevyInconsistencias.razor.rz.scp.css */
/* ─────────────────────────────────────────────────────────────────────
   HevyInconsistencias — CSS scoped.
   Padrões globais (sidebar-detail, hv-modal, kpi-strip, panel-grid,
   hv-btn-*) já vivem em hevy-shell.css / hevy-sidebar-detail.css.
   Aqui: contador das tabs, legenda de status, badges custom,
   wizard stepper e classificação cards do wizard.
   ───────────────────────────────────────────────────────────────────── */

/* Contador dentro das tabs globais (.tabs/.tab do shell). */
.inc-tab-badge[b-a78l16tsrq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    padding: 1px 6px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink-3);
    font-size: 10.5px;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    line-height: 1.4;
    transition: background 0.12s, color 0.12s;
}
.tab.active .inc-tab-badge[b-a78l16tsrq] {
    background: color-mix(in srgb, var(--accent) 18%, transparent);
    color: var(--accent);
}

/* Legenda acima do grid — sutil, informativa. */
.inc-legenda[b-a78l16tsrq] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    padding: 8px 14px;
    margin: 0 0 10px;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    font-size: 11.5px;
    color: var(--ink-3);
}
.inc-legenda-titulo[b-a78l16tsrq] {
    font-weight: 500;
    color: var(--ink-2);
    margin-right: 4px;
}
.inc-legenda-item[b-a78l16tsrq] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    line-height: 1.3;
}
.inc-status-dot[b-a78l16tsrq] {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex-shrink: 0;
}
.inc-status-dot.inc-ok[b-a78l16tsrq] { background: #2f8f3f; }
.inc-status-dot.inc-falta[b-a78l16tsrq] { background: #b0577a; }
.inc-status-dot.inc-incompleto[b-a78l16tsrq] { background: #b8860b; }
.inc-status-dot.inc-na[b-a78l16tsrq] { background: color-mix(in srgb, var(--ink) 20%, transparent); }

/* Badges Sim/Não e Status CT-e (tons discretos, não invasivos). */
.inc-badge[b-a78l16tsrq], .inc-cte-badge[b-a78l16tsrq] {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
}
.inc-badge-sim[b-a78l16tsrq] {
    background: color-mix(in srgb, #b0577a 15%, transparent);
    color: #8f3d5e;
}
.inc-badge-nao[b-a78l16tsrq] {
    background: color-mix(in srgb, #2f8f3f 15%, transparent);
    color: #256b30;
}
body[data-theme="dark"] .inc-badge-sim[b-a78l16tsrq] { color: #e6a9c3; }
body[data-theme="dark"] .inc-badge-nao[b-a78l16tsrq] { color: #7cb896; }

.inc-cte-badge-ok[b-a78l16tsrq] {
    background: color-mix(in srgb, #2f8f3f 15%, transparent);
    color: #256b30;
}
.inc-cte-badge-falta[b-a78l16tsrq] {
    background: color-mix(in srgb, #b0577a 15%, transparent);
    color: #8f3d5e;
}
.inc-cte-badge-incompleto[b-a78l16tsrq] {
    background: color-mix(in srgb, #b8860b 18%, transparent);
    color: #8a640a;
}
.inc-cte-badge-na[b-a78l16tsrq] {
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink-3);
}
body[data-theme="dark"] .inc-cte-badge-ok[b-a78l16tsrq] { color: #7cb896; }
body[data-theme="dark"] .inc-cte-badge-falta[b-a78l16tsrq] { color: #e6a9c3; }
body[data-theme="dark"] .inc-cte-badge-incompleto[b-a78l16tsrq] { color: #e6b854; }

/* Chaves das NF-e faltantes (grid CT-e sem NF-e). */
.inc-chaves-lista[b-a78l16tsrq] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 4px 0;
}
.inc-chave-item[b-a78l16tsrq] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    line-height: 1.4;
}
.inc-chave-num[b-a78l16tsrq] {
    color: #8f3d5e;
    font-weight: 500;
    min-width: 80px;
    flex-shrink: 0;
}
.inc-chave-mes[b-a78l16tsrq] {
    color: var(--ink-3);
    min-width: 60px;
    flex-shrink: 0;
}
.inc-chave-valor[b-a78l16tsrq] {
    color: var(--ink-3);
    font-family: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;
    font-size: 10px;
    word-break: break-all;
}
/* Copiar chave — discreto, so ganha cor no hover/confirmacao. */
.inc-chave-copiar[b-a78l16tsrq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: var(--ink-3);
    cursor: pointer;
    opacity: 0.55;
    transition: opacity 0.15s, background 0.15s, color 0.15s;
}
.inc-chave-item:hover .inc-chave-copiar[b-a78l16tsrq] { opacity: 1; }

/* Origem da NF-e pendente (coluna "Origem" do grid CT-e sem NF-e).
   Pill de largura fixa para as linhas alinharem; a rota "emitente → destinatário"
   corta com reticências e o texto completo vai no title. */
.inc-origem-item[b-a78l16tsrq] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    font-size: 11px;
    line-height: 1.4;
    cursor: default;
}
.inc-origem-pill[b-a78l16tsrq] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 112px;
    box-sizing: border-box;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.inc-origem-pill[b-a78l16tsrq]::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.85;
    flex-shrink: 0;
}
.inc-origem-devolucao[b-a78l16tsrq] {
    background: color-mix(in srgb, #d97a2b 18%, transparent);
    color: #9a4a12;
}
.inc-origem-transferencia[b-a78l16tsrq] {
    background: color-mix(in srgb, #4a7fc1 16%, transparent);
    color: #2a4f7f;
}
.inc-origem-saida[b-a78l16tsrq] {
    background: color-mix(in srgb, #2f8f3f 15%, transparent);
    color: #256b30;
}
.inc-origem-terceiro[b-a78l16tsrq] {
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink-3);
}
body[data-theme="dark"] .inc-origem-devolucao[b-a78l16tsrq] { color: #f0b07a; }
body[data-theme="dark"] .inc-origem-transferencia[b-a78l16tsrq] { color: #9dbce4; }
body[data-theme="dark"] .inc-origem-saida[b-a78l16tsrq] { color: #7cb896; }
.inc-origem-rota[b-a78l16tsrq] {
    color: var(--ink-3);
    max-width: 290px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.inc-origem-item:hover .inc-origem-rota[b-a78l16tsrq] { color: var(--ink-2); }
.inc-chave-copiar:hover[b-a78l16tsrq] {
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink);
}
.classif-card-danger:hover[b-a78l16tsrq] {
    border-color: color-mix(in srgb, #b0577a 40%, transparent);
    background: color-mix(in srgb, #b0577a 5%, transparent);
}
.classif-card-danger.selected[b-a78l16tsrq] {
    border-color: #b0577a;
    background: color-mix(in srgb, #b0577a 10%, transparent);
    box-shadow: 0 0 0 1px color-mix(in srgb, #b0577a 30%, transparent);
}

.hv-btn-danger[b-a78l16tsrq] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: color-mix(in srgb, #b0577a 12%, transparent);
    color: #8f3d5e;
    border: 1px solid color-mix(in srgb, #b0577a 30%, transparent);
    border-radius: 8px;
    padding: 7px 14px;
    font-size: 12.5px;
    font-family: inherit;
    font-weight: 400;
    cursor: pointer;
    transition: all 0.15s ease;
}
.hv-btn-danger:hover[b-a78l16tsrq] {
    background: color-mix(in srgb, #b0577a 20%, transparent);
    border-color: color-mix(in srgb, #b0577a 45%, transparent);
}
.hv-btn-danger:disabled[b-a78l16tsrq] { opacity: 0.5; cursor: not-allowed; }
body[data-theme="dark"] .hv-btn-danger[b-a78l16tsrq] { color: #e6a9c3; }

/* .hv-checkbox virou utilitario global em hevy-shell.css — o fechamento de
   custos passou a usar o mesmo checkbox e manter a regra scoped aqui deixaria
   duas copias para manter em sincronia. */

/* Spinner inline (dentro dos botões do wizard/modal). */
.spinner-inline[b-a78l16tsrq] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: inc-spin-b-a78l16tsrq 0.6s linear infinite;
}
@keyframes inc-spin-b-a78l16tsrq { to { transform: rotate(360deg); } }

/* Pill Classificar no ExtraActions — cor "info" (azul) discreta. */
.pill-classificar[b-a78l16tsrq] {
    background: color-mix(in srgb, #4a6fa8 15%, transparent) !important;
    color: #4a6fa8 !important;
    border-color: color-mix(in srgb, #4a6fa8 30%, transparent) !important;
}
.pill-classificar:hover[b-a78l16tsrq] {
    background: color-mix(in srgb, #4a6fa8 22%, transparent) !important;
}
body[data-theme="dark"] .pill-classificar[b-a78l16tsrq] { color: #9db8e3 !important; }

/* Ítem de menu kebab em vermelho (excluir). */
.kebab-menu-item-danger[b-a78l16tsrq] { color: #8f3d5e !important; }
.kebab-menu-item-danger:hover[b-a78l16tsrq] { background: color-mix(in srgb, #b0577a 10%, transparent) !important; }
body[data-theme="dark"] .kebab-menu-item-danger[b-a78l16tsrq] { color: #e6a9c3 !important; }

/* Informação inline (usada na aba CT-e sem NF-e). */
.inc-info-aba[b-a78l16tsrq] {
    color: var(--ink-3);
    font-size: 12px;
    font-style: italic;
}

/* ===== Coluna Transportadora (grade NF-e) ===== */
.inc-transp-vazia[b-a78l16tsrq] {
    color: var(--ink-3);
    font-style: italic;
}
/* Corrigida gerencialmente — o check separa do que veio do XML. */
.inc-transp-corrigida[b-a78l16tsrq] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #2f8f3f;
}
body[data-theme="dark"] .inc-transp-corrigida[b-a78l16tsrq] { color: #58c66d; }

/* ===== Modal de correção gerencial de transportadora ===== */
.inc-transp-nota[b-a78l16tsrq] {
    margin: 0 0 12px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--ink-2);
}
.inc-transp-nota strong[b-a78l16tsrq] { font-weight: 500; color: var(--ink); }

.inc-transp-lista[b-a78l16tsrq] {
    margin-top: 10px;
    max-height: 300px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    padding: 6px;
}
.inc-transp-vazio[b-a78l16tsrq] {
    padding: 16px;
    text-align: center;
    color: var(--ink-3);
    font-size: 12.5px;
}
.inc-transp-item[b-a78l16tsrq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    padding: 9px 12px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.inc-transp-item:hover[b-a78l16tsrq] { background: color-mix(in srgb, var(--ink) 4%, transparent); }
.inc-transp-item.selected[b-a78l16tsrq] {
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border-color: color-mix(in srgb, var(--accent) 32%, transparent);
}
.inc-transp-item-body[b-a78l16tsrq] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.inc-transp-item-nome[b-a78l16tsrq] {
    font-size: 13px;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.inc-transp-item-doc[b-a78l16tsrq] {
    font-size: 11px;
    color: var(--ink-3);
    font-variant-numeric: tabular-nums;
}
.inc-transp-check[b-a78l16tsrq] { color: var(--accent); flex-shrink: 0; }

/* Conflito de frota própria: nota embarcada na viagem que também aparece em
   CT-e ou fatura. É o erro mais caro da lista — frete contado duas vezes —,
   por isso destaca em vermelho e não num tom neutro. */
.inc-badge-conflito[b-a78l16tsrq] {
    display: inline-flex;
    align-items: center;
    padding: 2px 9px;
    border-radius: 999px;
    background: color-mix(in srgb, #c1361b 14%, transparent);
    color: #c1361b;
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
}
.inc-vazio[b-a78l16tsrq] { color: var(--ink-3); }
/* /Components/Pages/Hevy/HevyLaudo.razor.rz.scp.css */
/* HevyLaudo — estilos scoped. */

/* Alertas de mensagem/aviso */
.laudo-alert[b-6blfznucu4] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    margin-bottom: 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
}
.laudo-alert svg[b-6blfznucu4] { flex-shrink: 0; }
.laudo-alert strong[b-6blfznucu4] { font-weight: 600; }

.laudo-alert.info[b-6blfznucu4] {
    background: color-mix(in srgb, #3b6ca8 12%, transparent);
    border: 1px solid color-mix(in srgb, #3b6ca8 30%, transparent);
    color: #3b6ca8;
}
.laudo-alert.erro[b-6blfznucu4] {
    background: color-mix(in srgb, #c1361b 12%, transparent);
    border: 1px solid color-mix(in srgb, #c1361b 30%, transparent);
    color: #c1361b;
}
.laudo-alert.warn[b-6blfznucu4] {
    background: color-mix(in srgb, #b8860b 12%, transparent);
    border: 1px solid color-mix(in srgb, #b8860b 30%, transparent);
    border-left: 3px solid #b8860b;
    color: #96700a;
}

/* Empty state */
.laudo-empty[b-6blfznucu4] {
    text-align: center;
    padding: 48px 24px;
    color: var(--ink-3);
    font-size: 14px;
    font-weight: 300;
}

/* KPI cell status split (Acima / Abaixo / OK / Sem tabela) */
[b-6blfznucu4] .kpi-cell .kpi-status-split { font-size: 16px; gap: 4px; }
[b-6blfznucu4] .kpi-cell .kpi-status-split .s-acima { color: #c1361b; font-weight: 500; }
[b-6blfznucu4] .kpi-cell .kpi-status-split .s-abaixo { color: #b8860b; font-weight: 500; }
[b-6blfznucu4] .kpi-cell .kpi-status-split .s-ok { color: #2f8f3f; font-weight: 500; }
[b-6blfznucu4] .kpi-cell .kpi-status-split .s-semt { color: var(--ink-3); font-weight: 500; }
[b-6blfznucu4] .kpi-cell .kpi-status-split .s-sep { color: var(--ink-3); opacity: 0.5; margin: 0 2px; }

/* KPI diferença colorida por sinal */
[b-6blfznucu4] .kpi-cell.danger .kpi-vl { color: #c1361b; }
[b-6blfznucu4] .kpi-cell.warn .kpi-vl { color: #b8860b; }
[b-6blfznucu4] .kpi-cell.ok .kpi-vl { color: #2f8f3f; }

/* Botão "Gerar laudo" — destaque primário na barra */
[b-6blfznucu4] .laudo-btn-gerar {
    background: color-mix(in srgb, #2f8f3f 12%, transparent) !important;
    color: #2f8f3f !important;
    border: 1px solid color-mix(in srgb, #2f8f3f 35%, transparent) !important;
}
[b-6blfznucu4] .laudo-btn-gerar:hover:not(:disabled) {
    background: color-mix(in srgb, #2f8f3f 22%, transparent) !important;
    border-color: color-mix(in srgb, #2f8f3f 55%, transparent) !important;
}
[b-6blfznucu4] .laudo-btn-gerar:disabled { opacity: 0.6; cursor: not-allowed; }

/* Spinner inline dentro do pill */
[b-6blfznucu4] .laudo-btn-gerar .spinner-inline {
    width: 12px;
    height: 12px;
    border: 2px solid color-mix(in srgb, #2f8f3f 30%, transparent);
    border-top-color: #2f8f3f;
    border-radius: 50%;
    animation: hv-spin-b-6blfznucu4 0.8s linear infinite;
}
@keyframes hv-spin-b-6blfznucu4 { to { transform: rotate(360deg); } }

/* Badges de status na coluna Status do grid */
[b-6blfznucu4] .laudo-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
}
[b-6blfznucu4] .laudo-badge-acima {
    background: color-mix(in srgb, #c1361b 15%, transparent);
    color: #c1361b;
    border: 1px solid color-mix(in srgb, #c1361b 30%, transparent);
}
[b-6blfznucu4] .laudo-badge-abaixo {
    background: color-mix(in srgb, #b8860b 15%, transparent);
    color: #96700a;
    border: 1px solid color-mix(in srgb, #b8860b 30%, transparent);
}
[b-6blfznucu4] .laudo-badge-ok {
    background: color-mix(in srgb, #2f8f3f 15%, transparent);
    color: #2f8f3f;
    border: 1px solid color-mix(in srgb, #2f8f3f 30%, transparent);
}
[b-6blfznucu4] .laudo-badge-sem {
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink-3);
    border: 1px solid var(--rule-hair);
}

/* Dark mode: cores mais claras nos badges */
body[data-theme="dark"][b-6blfznucu4]  .laudo-badge-acima { color: #f08e73; border-color: color-mix(in srgb, #f08e73 30%, transparent); }
body[data-theme="dark"][b-6blfznucu4]  .laudo-badge-abaixo { color: #e6b854; border-color: color-mix(in srgb, #e6b854 30%, transparent); }
body[data-theme="dark"][b-6blfznucu4]  .laudo-badge-ok { color: #58c66d; border-color: color-mix(in srgb, #58c66d 30%, transparent); }
/* /Components/Pages/Hevy/HevyMotoristas.razor.rz.scp.css */
/* HevyMotoristas — estilos scoped */

[b-t8l5d0fd2x] .mot-tabs {
    display: inline-flex;
    gap: 4px;
    padding: 2px;
    background: color-mix(in srgb, var(--ink) 5%, transparent);
    border-radius: 8px;
    border: 1px solid var(--rule-hair);
}

[b-t8l5d0fd2x] .mot-tab {
    background: transparent;
    border: 0;
    color: var(--ink-3);
    padding: 5px 12px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

[b-t8l5d0fd2x] .mot-tab:hover {
    color: var(--ink);
}

[b-t8l5d0fd2x] .mot-tab.active {
    background: var(--pane-3);
    color: var(--ink);
    box-shadow: 0 1px 3px rgba(40,32,22,0.08);
}

[b-t8l5d0fd2x] .mot-btn-novo {
    color: var(--accent);
    border-color: color-mix(in srgb, var(--accent) 40%, transparent);
}

/* Status badges do grid */
[b-t8l5d0fd2x] .mot-badge-ativo {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
    background: color-mix(in srgb, #3d7a5a 15%, transparent);
    color: #2f5f47;
}

[b-t8l5d0fd2x] body[data-theme="dark"] .mot-badge-ativo { color: #9fd8b8; }

[b-t8l5d0fd2x] .mot-badge-inativo {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink-3);
}

[b-t8l5d0fd2x] .mot-cnh-vencida {
    color: #b0577a;
    font-weight: 500;
}

[b-t8l5d0fd2x] body[data-theme="dark"] .mot-cnh-vencida { color: #e6a9c3; }

/* Busca de pessoa no modal */
[b-t8l5d0fd2x] .mot-busca-lista {
    border: 1px solid var(--rule-hair);
    border-radius: 6px;
    margin-top: 4px;
    max-height: 200px;
    overflow-y: auto;
    background: rgba(255, 255, 255, 0.55);
}

[b-t8l5d0fd2x] body[data-theme="dark"] .mot-busca-lista {
    background: rgba(255, 250, 240, 0.06);
}

[b-t8l5d0fd2x] .mot-busca-item {
    padding: 8px 12px;
    cursor: pointer;
    border-bottom: 1px solid var(--rule-hair);
    transition: background 0.12s;
}

[b-t8l5d0fd2x] .mot-busca-item:last-child { border-bottom: none; }

[b-t8l5d0fd2x] .mot-busca-item:hover {
    background: color-mix(in srgb, var(--accent) 8%, transparent);
}

[b-t8l5d0fd2x] .mot-busca-nome {
    color: var(--ink);
    font-size: 13px;
    font-weight: 400;
}

[b-t8l5d0fd2x] .mot-busca-cpf {
    color: var(--ink-3);
    font-size: 11px;
    margin-top: 2px;
}

[b-t8l5d0fd2x] .mot-pessoa-sel {
    margin-top: 6px;
    padding: 8px 12px;
    border: 1px solid color-mix(in srgb, var(--accent) 40%, transparent);
    border-radius: 6px;
    background: color-mix(in srgb, var(--accent) 8%, transparent);
    font-size: 13px;
    color: var(--ink);
}

/* Busca sem resultado + cadastro de pessoa inline */
[b-t8l5d0fd2x] .mot-busca-vazia {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 6px;
    padding: 8px 12px;
    border: 1px dashed var(--rule-hair);
    border-radius: 6px;
    font-size: 12px;
    color: var(--ink-3);
}
/* /Components/Pages/Hevy/HevyPessoas.razor.rz.scp.css */
/* Estilos locais da HevyPessoas — checkbox do grid, badge da classificacao,
   modal de edicao/massa/classificacao. As regras do dialog Segla
   (sidebar-detail) sao globais (hevy-sidebar-detail.css). */

/* Checkbox custom usado na coluna de selecao do grid. */
[b-rjihvkmnh1] .hv-check {
    appearance: none;
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    border: 1.5px solid var(--rule-strong, var(--rule));
    border-radius: 4px;
    background: transparent;
    cursor: pointer;
    transition: all 0.15s ease;
    position: relative;
    margin: 0;
    vertical-align: middle;
}
[b-rjihvkmnh1] .hv-check:hover {
    border-color: var(--accent);
}
[b-rjihvkmnh1] .hv-check:checked {
    background: var(--accent);
    border-color: var(--accent);
}
[b-rjihvkmnh1] .hv-check:checked::after {
    content: '';
    position: absolute;
    top: 1px;
    left: 4px;
    width: 4px;
    height: 8px;
    border: solid #ffffff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* Badge de classificacao dentro do grid. */
[b-rjihvkmnh1] .hv-badge-class {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, #3b6ca8 15%, transparent);
    color: #3b6ca8;
    padding: 2px 8px;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.03em;
    margin-right: 6px;
}
body[data-theme="dark"][b-rjihvkmnh1]  .hv-badge-class {
    color: #7ba9e0;
    background: color-mix(in srgb, #7ba9e0 18%, transparent);
}

/* Fonte monospaced para CPF/CNPJ e CEP. */
[b-rjihvkmnh1] .mono {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

/* Pill contextual "Classificar (N)" na toolbar. */
.pill-classificar[b-rjihvkmnh1] {
    background: color-mix(in srgb, #3b6ca8 15%, transparent) !important;
    color: #3b6ca8 !important;
    border-color: color-mix(in srgb, #3b6ca8 30%, transparent) !important;
    animation: hv-fadeIn-b-rjihvkmnh1 0.18s ease;
}
.pill-classificar:hover[b-rjihvkmnh1] {
    background: color-mix(in srgb, #3b6ca8 25%, transparent) !important;
    border-color: color-mix(in srgb, #3b6ca8 50%, transparent) !important;
}
body[data-theme="dark"] .pill-classificar[b-rjihvkmnh1] {
    color: #7ba9e0 !important;
    background: color-mix(in srgb, #7ba9e0 18%, transparent) !important;
    border-color: color-mix(in srgb, #7ba9e0 35%, transparent) !important;
}

@keyframes hv-fadeIn-b-rjihvkmnh1 {
    from { opacity: 0; transform: translateY(-3px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Spinner inline pequeno (usado em botoes e loading). */
.spinner-inline[b-rjihvkmnh1] {
    width: 14px;
    height: 14px;
    border: 2px solid color-mix(in srgb, currentColor 30%, transparent);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: hv-spin-b-rjihvkmnh1 0.6s linear infinite;
    display: inline-block;
}
[b-rjihvkmnh1] .spinner-inline {
    width: 14px;
    height: 14px;
    border: 2px solid color-mix(in srgb, currentColor 30%, transparent);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: hv-spin-b-rjihvkmnh1 0.6s linear infinite;
    display: inline-block;
}
@keyframes hv-spin-b-rjihvkmnh1 {
    to { transform: rotate(360deg); }
}
/* /Components/Pages/Hevy/HevyRelatorios.razor.rz.scp.css */
/* Toolbar do Relatórios — carregar/salvar/excluir + nome + InfoCalculo. */
.rel-toolbar[b-vllrc79mqw] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.rel-select[b-vllrc79mqw] {
    width: auto;
    min-width: 200px;
    padding: 6px 10px !important;
    font-size: 12px !important;
}
.rel-input[b-vllrc79mqw] {
    width: 180px;
    padding: 6px 10px !important;
    font-size: 12px !important;
}
[b-vllrc79mqw] .rel-btn-delete {
    color: #b0577a;
}
[b-vllrc79mqw] .rel-btn-delete:hover {
    background: color-mix(in srgb, #b0577a 12%, transparent);
    border-color: color-mix(in srgb, #b0577a 30%, transparent);
}
[b-vllrc79mqw] .rel-btn-save {
    color: #3d7a5a;
}
[b-vllrc79mqw] .rel-btn-save:hover {
    background: color-mix(in srgb, #3d7a5a 12%, transparent);
    border-color: color-mix(in srgb, #3d7a5a 30%, transparent);
}

/* Mensagem inline (sucesso/erro/aviso). */
.rel-message[b-vllrc79mqw] {
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 400;
    margin: 0 0 10px;
    border: 1px solid transparent;
}
.rel-msg-success[b-vllrc79mqw] {
    background: color-mix(in srgb, #2f8f3f 12%, transparent);
    border-color: color-mix(in srgb, #2f8f3f 28%, transparent);
    color: #2f8f3f;
}
.rel-msg-warning[b-vllrc79mqw] {
    background: color-mix(in srgb, #b8860b 14%, transparent);
    border-color: color-mix(in srgb, #b8860b 30%, transparent);
    color: #8a640a;
}
/* /Components/Pages/Hevy/HevyRotas.razor.rz.scp.css */
/* Rotas — cadastro de distancias.
   Estilos locais do modal (nova rota / correcao de km). O grid e a barra usam
   o padrao global do shell Hevy. */

[b-9975d7nizv] .rt-ponto {
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    padding: 12px 14px 4px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
[b-9975d7nizv] .rt-ponto-titulo {
    font-size: 10.5px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-2);
}

/* Resumo das pontas na correcao de km — quem esta sendo editado. */
[b-9975d7nizv] .rt-resumo {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 12px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--ink) 4%, transparent);
    color: var(--ink-3);
}
[b-9975d7nizv] .rt-resumo-ponta { color: var(--ink); font-size: 13px; }

/* Corrigir km de rota em uso nao reescreve viagem passada — o aviso existe
   para o usuario nao achar que esta refazendo o custo do que ja fechou. */
[b-9975d7nizv] .rt-aviso {
    color: var(--ink-2);
    background: color-mix(in srgb, #d68a1a 10%, transparent);
    border-left: 3px solid #d68a1a;
    padding: 9px 12px;
    border-radius: 8px;
    font-size: 12px;
    line-height: 1.45;
}

/* ── Serie historica de R$/km ─────────────────────────────────────────
   O custo do km rodado flutua; a rota guarda a serie por vigencia e cada
   viagem congela o valor do dia em que rodou. */

[b-9975d7nizv] .rt-tarifa {
    font-variant-numeric: tabular-nums;
    color: var(--ink);
}
[b-9975d7nizv] .rt-tarifa-serie {
    margin-left: 6px;
    font-size: 10px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: 5px;
    color: var(--ink-3);
    background: color-mix(in srgb, var(--ink) 8%, transparent);
}
[b-9975d7nizv] .rt-tarifa-vazia { color: var(--ink-4); }

[b-9975d7nizv] .rt-resumo-km {
    margin-left: auto;
    font-size: 12px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--ink-2);
}

/* Lancamento: datas e valor lado a lado, observacao ocupando a linha. */
[b-9975d7nizv] .rt-tar-form {
    display: grid;
    grid-template-columns: 150px 150px 1fr;
    gap: 10px 12px;
    align-items: end;
}
[b-9975d7nizv] .rt-tar-obs { grid-column: 1 / -1; }
[b-9975d7nizv] .rt-tar-add { grid-column: 1 / 2; }
[b-9975d7nizv] .rt-tar-cancel { grid-column: 2 / 3; }
[b-9975d7nizv] .rt-opcional {
    font-weight: 400;
    color: var(--ink-3);
    text-transform: none;
    letter-spacing: 0;
}

[b-9975d7nizv] .rt-tar-lista {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 260px;
    overflow-y: auto;
    padding-right: 14px;
    margin-right: -14px;
}
[b-9975d7nizv] .rt-tar-linha {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    border: 1px solid var(--rule-hair);
    border-radius: 9px;
    font-size: 12.5px;
}
[b-9975d7nizv] .rt-tar-linha.vigente {
    border-color: color-mix(in srgb, #3d7a5a 45%, transparent);
    background: color-mix(in srgb, #3d7a5a 7%, transparent);
}
[b-9975d7nizv] .rt-tar-periodo {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
[b-9975d7nizv] .rt-tar-datas {
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
[b-9975d7nizv] .rt-tar-badge {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 1px 6px;
    border-radius: 5px;
    color: #3d7a5a;
    background: color-mix(in srgb, #3d7a5a 14%, transparent);
}
[b-9975d7nizv] .rt-tar-obs-txt {
    color: var(--ink-3);
    font-size: 11.5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
[b-9975d7nizv] .rt-tar-valor {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--ink);
    flex-shrink: 0;
}
[b-9975d7nizv] .rt-tar-custo {
    color: var(--ink-3);
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
    min-width: 96px;
    text-align: right;
}
[b-9975d7nizv] .rt-tar-acao {
    background: none;
    border: 0;
    padding: 3px;
    cursor: pointer;
    color: var(--ink-3);
    display: inline-flex;
    border-radius: 6px;
}
[b-9975d7nizv] .rt-tar-acao:hover { color: var(--ink); background: color-mix(in srgb, var(--ink) 8%, transparent); }
[b-9975d7nizv] .rt-tar-acao.perigo:hover { color: #c1361b; background: color-mix(in srgb, #c1361b 12%, transparent); }

[b-9975d7nizv] .rt-tar-vazio {
    color: var(--ink-3);
    font-size: 12.5px;
    line-height: 1.5;
    padding: 14px 12px;
    border: 1px dashed var(--rule-hair);
    border-radius: 9px;
}
[b-9975d7nizv] .rt-tar-nota {
    color: var(--ink-3);
    font-size: 11.5px;
    line-height: 1.45;
}

body[data-theme="dark"][b-9975d7nizv]  .rt-tar-linha.vigente {
    border-color: color-mix(in srgb, #7cb896 45%, transparent);
    background: color-mix(in srgb, #7cb896 8%, transparent);
}
body[data-theme="dark"][b-9975d7nizv]  .rt-tar-badge {
    color: #7cb896;
    background: color-mix(in srgb, #7cb896 16%, transparent);
}
/* /Components/Pages/Hevy/HevySimulador.razor.rz.scp.css */
/* ═════════════════════════════════════════════════════════════════════
   HevySimulador — form de simulação + lista de rotas.
   Escopo scoped via Blazor CSS isolation.
   ═════════════════════════════════════════════════════════════════════ */

.sim-panel .panel-h[b-qx95cgehdw] { padding: 18px 22px 8px; }

/* Autocomplete ------------------------------------------------------- */
.sim-autocomplete[b-qx95cgehdw] { position: relative; }
.sim-ac-list[b-qx95cgehdw] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 20;
    max-height: 240px;
    overflow-y: auto;
    background: var(--pane-3);
    border: 1px solid var(--rule-hair);
    border-radius: 8px;
    box-shadow: 0 12px 32px -12px rgba(40, 32, 22, 0.25);
    padding: 4px;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.sim-ac-item[b-qx95cgehdw] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 8px 10px;
    background: transparent;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
    color: var(--ink);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 300;
    text-align: left;
    transition: background 0.12s ease;
}
.sim-ac-item:hover[b-qx95cgehdw] { background: color-mix(in srgb, var(--accent) 12%, transparent); }
.sim-ac-item .nm[b-qx95cgehdw] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sim-ac-item .ibge[b-qx95cgehdw] {
    font-family: 'JetBrains Mono', 'SF Mono', Menlo, monospace;
    font-size: 10.5px;
    color: var(--ink-3);
    letter-spacing: 0.02em;
}

.sim-ibge[b-qx95cgehdw] {
    display: inline-block;
    margin-top: 6px;
    padding: 2px 8px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    color: var(--accent);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: 0.02em;
    font-feature-settings: "tnum" 1, "lnum" 1;
}

/* Mensagem de validacao / erro -------------------------------------- */
.sim-msg[b-qx95cgehdw] {
    padding: 8px 12px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    color: var(--accent);
    font-size: 12.5px;
    font-weight: 400;
}
.sim-msg.err[b-qx95cgehdw] {
    background: color-mix(in srgb, #c1361b 12%, transparent);
    color: #c1361b;
}

.sim-actions[b-qx95cgehdw] {
    display: flex;
    justify-content: flex-end;
    padding-top: 6px;
}

/* KPI da simulacao — customizacoes leves --------------------------- */
.sim-kpis[b-qx95cgehdw] { margin-top: 12px; margin-bottom: 8px; }
.sim-kpis .sim-rota[b-qx95cgehdw] { font-size: 15px; letter-spacing: -0.01em; }

/* Resultados -------------------------------------------------------- */
.sim-results-panel .panel-h[b-qx95cgehdw] { padding: 18px 22px 8px; }
.sim-results[b-qx95cgehdw] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0 22px 22px;
}
.sim-row[b-qx95cgehdw] {
    display: grid;
    grid-template-columns: 34px 1fr auto auto;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border-radius: 12px;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    border: 1px solid var(--rule-hair);
    transition: background 0.15s, border-color 0.15s;
}
.sim-row:hover[b-qx95cgehdw] {
    background: color-mix(in srgb, var(--ink) 5%, transparent);
}
.sim-row-best[b-qx95cgehdw] {
    background: color-mix(in srgb, #2f8f3f 8%, transparent);
    border-color: color-mix(in srgb, #2f8f3f 30%, transparent);
}
.sim-rank[b-qx95cgehdw] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink-2);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 500;
    font-feature-settings: "tnum" 1, "lnum" 1;
}
.sim-rank-best[b-qx95cgehdw] {
    background: #2f8f3f;
    color: white;
}
.sim-info[b-qx95cgehdw] { min-width: 0; }
.sim-name-row[b-qx95cgehdw] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}
.sim-name[b-qx95cgehdw] {
    font-size: 13.5px;
    font-weight: 500;
    color: var(--ink);
}
.sim-badge[b-qx95cgehdw] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    background: #2f8f3f;
    color: white;
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.sim-route[b-qx95cgehdw] {
    font-size: 11px;
    color: var(--ink-3);
    margin-top: 2px;
}
.sim-breakdown[b-qx95cgehdw] {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}
.sim-bk[b-qx95cgehdw] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 60px;
}
.sim-bk .lb[b-qx95cgehdw] {
    font-size: 9.5px;
    color: var(--ink-3);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 500;
    line-height: 1.2;
}
.sim-bk .vl[b-qx95cgehdw] {
    font-size: 12px;
    color: var(--ink-2);
    font-weight: 400;
    font-feature-settings: "tnum" 1, "lnum" 1;
    margin-top: 2px;
}
.sim-total[b-qx95cgehdw] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 100px;
    padding-left: 8px;
    border-left: 1px solid var(--rule-hair);
}
.sim-total-val[b-qx95cgehdw] {
    font-size: 16px;
    font-weight: 500;
    color: var(--ink);
    font-feature-settings: "tnum" 1, "lnum" 1;
    letter-spacing: -0.01em;
}
.sim-total-val.best[b-qx95cgehdw] {
    color: #2f8f3f;
    font-weight: 600;
}
.sim-total-diff[b-qx95cgehdw] {
    font-size: 10.5px;
    color: var(--ink-3);
    margin-top: 2px;
    font-feature-settings: "tnum" 1, "lnum" 1;
}

body[data-theme="dark"] .sim-total-val.best[b-qx95cgehdw] { color: #58c66d; }
body[data-theme="dark"] .sim-rank-best[b-qx95cgehdw] { background: #3ea54f; }
body[data-theme="dark"] .sim-badge[b-qx95cgehdw] { background: #3ea54f; }
body[data-theme="dark"] .sim-row-best[b-qx95cgehdw] {
    background: color-mix(in srgb, #58c66d 8%, transparent);
    border-color: color-mix(in srgb, #58c66d 30%, transparent);
}/* Spinner do botao (reusa padrao Hevy — 12px) */
.spinner-inline[b-qx95cgehdw] {
    width: 12px;
    height: 12px;
    border: 2px solid color-mix(in srgb, currentColor 30%, transparent);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: spin-b-qx95cgehdw 0.7s linear infinite;
}
@keyframes spin-b-qx95cgehdw { to { transform: rotate(360deg); } }

/* O SfNumericTextBox e estilizado globalmente em hevy-sidebar-detail.css
   (.e-input-group.hv-numeric). A copia scoped que vivia aqui disputava
   especificidade com a global e deixava o campo mais alto que os vizinhos. */
/* /Components/Pages/Hevy/HevyTabelaPreco.razor.rz.scp.css */
.tp-section-head .section-title-sidebar[b-qk7b3btxpw] { margin: 0; }
.tp-section-actions[b-qk7b3btxpw] { display: flex; gap: 6px; flex-shrink: 0; }

.tp-btn-mini[b-qk7b3btxpw] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: color-mix(in srgb, var(--ink) 5%, transparent);
    border: 1px solid var(--rule-hair);
    color: var(--ink-2);
    border-radius: 7px;
    padding: 5px 10px;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 400;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.tp-btn-mini:hover:not(:disabled)[b-qk7b3btxpw] {
    background: color-mix(in srgb, var(--ink) 9%, transparent);
    color: var(--ink);
}
.tp-btn-mini:disabled[b-qk7b3btxpw] { opacity: 0.55; cursor: default; }
.tp-btn-mini-accent[b-qk7b3btxpw] {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    border-color: color-mix(in srgb, var(--accent) 28%, transparent);
    color: var(--accent);
}
.tp-btn-mini-accent:hover:not(:disabled)[b-qk7b3btxpw] {
    background: color-mix(in srgb, var(--accent) 18%, transparent);
    color: var(--accent);
}

/* ═════════ Busca de itens ═════════ */
.tp-search[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: color-mix(in srgb, var(--ink) 4%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 8px;
    padding: 7px 10px;
    margin-bottom: 10px;
    color: var(--ink-3);
}
.tp-search input[b-qk7b3btxpw] {
    flex: 1;
    min-width: 0;
    background: transparent;
    border: none;
    outline: none;
    color: var(--ink);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 300;
}
.tp-search input[b-qk7b3btxpw]::placeholder { color: var(--ink-3); }
.tp-search-clear[b-qk7b3btxpw] {
    background: transparent;
    border: none;
    color: var(--ink-3);
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    padding: 0 2px;
}
.tp-search-clear:hover[b-qk7b3btxpw] { color: var(--ink); }

/* ═════════ Grupos por origem ═════════ */
.tp-grupo[b-qk7b3btxpw] {
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    background: color-mix(in srgb, var(--ink) 2%, transparent);
    margin-bottom: 8px;
    overflow: hidden;
}
.tp-grupo-header[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    cursor: pointer;
    user-select: none;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    transition: background 0.15s ease;
}
.tp-grupo-header:hover[b-qk7b3btxpw] { background: color-mix(in srgb, var(--ink) 6%, transparent); }
.tp-grupo-titulo[b-qk7b3btxpw] {
    flex: 1;
    min-width: 0;
    color: var(--ink);
    font-size: 12.5px;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tp-grupo-ibge[b-qk7b3btxpw] {
    flex-shrink: 0;
    font-size: 10px;
    color: var(--ink-3);
    letter-spacing: 0.03em;
    font-variant-numeric: tabular-nums;
}
.tp-grupo-contador[b-qk7b3btxpw] {
    flex-shrink: 0;
    font-size: 10.5px;
    color: var(--ink-3);
    background: color-mix(in srgb, var(--ink) 6%, transparent);
    border-radius: 999px;
    padding: 2px 8px;
    white-space: nowrap;
}

.tp-chevron[b-qk7b3btxpw] {
    flex-shrink: 0;
    color: var(--ink-3);
    transition: transform 0.18s ease;
}
.tp-grupo.colapsado .tp-grupo-header .tp-chevron[b-qk7b3btxpw] { transform: rotate(-90deg); }

/* ═════════ Cards de item (rota) ═════════ */
.tp-item[b-qk7b3btxpw] {
    border-top: 1px solid var(--rule-hair);
    background: transparent;
}
.tp-item.sem-destino[b-qk7b3btxpw] { background: color-mix(in srgb, #b8860b 5%, transparent); }
.tp-item-header[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 12px;
    cursor: pointer;
    user-select: none;
    transition: background 0.15s ease;
}
.tp-item-header:hover[b-qk7b3btxpw] { background: color-mix(in srgb, var(--ink) 4%, transparent); }
.tp-item-titulo[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    flex: 1;
}
.tp-item-nome[b-qk7b3btxpw] {
    color: var(--ink);
    font-size: 12.5px;
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tp-item-meta[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;
}
.tp-item.expandido .tp-item-header .tp-chevron[b-qk7b3btxpw] { transform: rotate(0deg); }
.tp-item:not(.expandido) .tp-item-header .tp-chevron[b-qk7b3btxpw] { transform: rotate(-90deg); }

.tp-item-body[b-qk7b3btxpw] {
    padding: 4px 12px 12px 12px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    border-top: 1px dashed var(--rule-hair);
}

.tp-pill[b-qk7b3btxpw] {
    display: inline-flex;
    align-items: center;
    background: color-mix(in srgb, #4a6fa8 14%, transparent);
    color: #4a6fa8;
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 500;
    white-space: nowrap;
}
.tp-pill-alt[b-qk7b3btxpw] {
    background: color-mix(in srgb, #6b5b95 14%, transparent);
    color: #6b5b95;
}
.tp-pill-warn[b-qk7b3btxpw] {
    background: color-mix(in srgb, #b8860b 16%, transparent);
    color: #96700a;
}
body[data-theme="dark"] .tp-pill[b-qk7b3btxpw] { color: #9db8e3; }
body[data-theme="dark"] .tp-pill-alt[b-qk7b3btxpw] { color: #c3b3e6; }
body[data-theme="dark"] .tp-pill-warn[b-qk7b3btxpw] { color: #e6b854; }

.tp-item-acoes[b-qk7b3btxpw] { display: inline-flex; gap: 3px; flex-shrink: 0; }
.tp-btn-icon[b-qk7b3btxpw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 6px;
    background: transparent;
    border: 1px solid transparent;
    color: var(--ink-3);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.tp-btn-icon:hover[b-qk7b3btxpw] {
    background: color-mix(in srgb, #4a6fa8 12%, transparent);
    color: #4a6fa8;
}
.tp-btn-icon-danger:hover[b-qk7b3btxpw] {
    background: color-mix(in srgb, #c1361b 12%, transparent);
    color: #c1361b;
}

/* ═════════ Sub-seções (destinos / faixas) ═════════ */
.tp-sub[b-qk7b3btxpw] { display: flex; flex-direction: column; gap: 7px; }
.tp-sub-head[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.tp-sub-title[b-qk7b3btxpw] {
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ink-3);
}
.tp-link[b-qk7b3btxpw] {
    background: transparent;
    border: none;
    color: var(--accent);
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 400;
    cursor: pointer;
    padding: 0;
}
.tp-link:hover[b-qk7b3btxpw] { text-decoration: underline; }

.tp-empty[b-qk7b3btxpw] {
    margin: 4px 0;
    font-size: 11.5px;
    color: var(--ink-3);
    font-weight: 300;
}

/* ═════════ Tags de destino ═════════ */
.tp-tags[b-qk7b3btxpw] { display: flex; flex-wrap: wrap; gap: 5px; }
.tp-tag[b-qk7b3btxpw] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: color-mix(in srgb, var(--ink) 5%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 7px;
    padding: 3px 5px 3px 9px;
    font-size: 11px;
    color: var(--ink-2);
    font-variant-numeric: tabular-nums;
}
.tp-tag-remove[b-qk7b3btxpw] {
    background: transparent;
    border: none;
    color: var(--ink-3);
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    padding: 0 3px;
    border-radius: 4px;
}
.tp-tag-remove:hover[b-qk7b3btxpw] { color: #c1361b; background: color-mix(in srgb, #c1361b 12%, transparent); }

/* ═════════ Card de faixa de valores ═════════ */
.tp-valor[b-qk7b3btxpw] {
    border: 1px solid var(--rule-hair);
    border-radius: 9px;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    overflow: hidden;
    margin-bottom: 7px;
}
.tp-valor:last-child[b-qk7b3btxpw] { margin-bottom: 0; }
.tp-valor-header[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 10px;
    border-bottom: 1px solid var(--rule-hair);
}
.tp-valor-titulo[b-qk7b3btxpw] {
    font-size: 11.5px;
    font-weight: 500;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.tp-valor-body[b-qk7b3btxpw] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    padding: 9px 10px;
}
.tp-valor-cell[b-qk7b3btxpw] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tp-valor-lb[b-qk7b3btxpw] {
    font-size: 9.5px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ink-3);
    font-weight: 500;
}
.tp-valor-vl[b-qk7b3btxpw] {
    font-size: 12px;
    color: var(--ink);
    font-weight: 400;
    font-variant-numeric: tabular-nums;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tp-valor-vl.accent[b-qk7b3btxpw] { color: var(--accent); font-weight: 500; }

/* ═════════ Multi-select de transportadoras ═════════ */
.tp-multi[b-qk7b3btxpw] { position: relative; }
.tp-multi-backdrop[b-qk7b3btxpw] {
    position: fixed;
    inset: 0;
    z-index: 9998;
}
.tp-multi-trigger[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    text-align: left;
    cursor: pointer;
}
.tp-placeholder[b-qk7b3btxpw] { color: var(--ink-3); }
.tp-multi-pop[b-qk7b3btxpw] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 9999;
    background: var(--pane-3);
    backdrop-filter: blur(20px) saturate(140%);
    -webkit-backdrop-filter: blur(20px) saturate(140%);
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    box-shadow: 0 18px 44px -14px rgba(40, 32, 22, 0.35);
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.tp-multi-busca[b-qk7b3btxpw] { font-size: 12px !important; }
.tp-multi-lista[b-qk7b3btxpw] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 220px;
    overflow-y: auto;
    padding-right: 2px;
}
.tp-multi-item[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: none;
    color: var(--ink);
    padding: 6px 8px;
    border-radius: 6px;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 300;
    cursor: pointer;
    text-align: left;
    white-space: normal;
    word-break: break-word;
}
.tp-multi-item:hover[b-qk7b3btxpw] { background: color-mix(in srgb, var(--ink) 6%, transparent); }
.tp-multi-item.selecionado[b-qk7b3btxpw] { background: color-mix(in srgb, var(--accent) 10%, transparent); color: var(--accent); }
.tp-multi-check[b-qk7b3btxpw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    min-width: 16px;
    border-radius: 4px;
    border: 1px solid var(--rule-hair);
    font-size: 10px;
    color: var(--accent);
}
.tp-multi-item.selecionado .tp-multi-check[b-qk7b3btxpw] {
    border-color: var(--accent);
    background: color-mix(in srgb, var(--accent) 15%, transparent);
}
.tp-multi-limpar[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: none;
    border-top: 1px solid var(--rule-hair);
    color: var(--ink-3);
    padding: 7px 8px 2px;
    font-family: inherit;
    font-size: 11.5px;
    cursor: pointer;
    width: 100%;
}
.tp-multi-limpar:hover[b-qk7b3btxpw] { color: var(--ink); }

/* ═════════ Autocomplete de município ═════════ */
.tp-ac[b-qk7b3btxpw] { position: relative; }
.tp-ac-pop[b-qk7b3btxpw] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 9999;
    background: var(--pane-3);
    backdrop-filter: blur(20px) saturate(140%);
    -webkit-backdrop-filter: blur(20px) saturate(140%);
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    box-shadow: 0 18px 44px -14px rgba(40, 32, 22, 0.35);
    max-height: 240px;
    overflow-y: auto;
    padding: 5px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.tp-ac-item[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: transparent;
    border: none;
    color: var(--ink);
    padding: 6px 8px;
    border-radius: 6px;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 300;
    cursor: pointer;
    text-align: left;
    width: 100%;
}
.tp-ac-item:hover[b-qk7b3btxpw] { background: color-mix(in srgb, var(--accent) 10%, transparent); }
.tp-ac-cod[b-qk7b3btxpw] {
    flex-shrink: 0;
    font-size: 10.5px;
    color: var(--ink-3);
    font-variant-numeric: tabular-nums;
}

.tp-badge-ibge[b-qk7b3btxpw] {
    display: inline-flex;
    align-items: center;
    margin-top: 5px;
    background: color-mix(in srgb, #4a6fa8 12%, transparent);
    color: #4a6fa8;
    border-radius: 6px;
    padding: 2px 9px;
    font-size: 11px;
    font-weight: 400;
    font-variant-numeric: tabular-nums;
}
body[data-theme="dark"] .tp-badge-ibge[b-qk7b3btxpw] { color: #9db8e3; }

.tp-rota-resumo[b-qk7b3btxpw] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding-bottom: 4px;
}
.tp-rota-lb[b-qk7b3btxpw] { font-size: 11.5px; color: var(--ink-3); }
.tp-rota-resumo .tp-badge-ibge[b-qk7b3btxpw] { margin-top: 0; }

/* ═════════ Abas da importação ═════════ */
.tp-tabs[b-qk7b3btxpw] {
    display: flex;
    gap: 20px;
    border-bottom: 1px solid var(--rule-hair);
    margin-bottom: 4px;
}
.tp-tab[b-qk7b3btxpw] {
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--ink-3);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 400;
    cursor: pointer;
    padding: 6px 0 8px;
    transition: color 0.15s ease, border-color 0.15s ease;
}
.tp-tab:hover[b-qk7b3btxpw] { color: var(--ink); }
.tp-tab.active[b-qk7b3btxpw] { color: var(--ink); border-bottom-color: var(--accent); }

/* ═════════ Blocos de upload ═════════ */
.tp-upload[b-qk7b3btxpw] {
    display: flex;
    align-items: center;
    gap: 12px;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    padding: 12px 14px;
    color: var(--ink-3);
}
.tp-upload > svg[b-qk7b3btxpw] { flex-shrink: 0; color: var(--ink-3); }
.tp-upload-txt[b-qk7b3btxpw] { flex: 1; min-width: 0; }
.tp-upload-txt strong[b-qk7b3btxpw] {
    display: block;
    color: var(--ink);
    font-size: 12.5px;
    font-weight: 500;
}
.tp-upload-txt p[b-qk7b3btxpw] {
    margin: 2px 0 0;
    font-size: 11.5px;
    color: var(--ink-3);
    font-weight: 300;
}
.tp-file-label[b-qk7b3btxpw] { cursor: pointer; flex-shrink: 0; }
.tp-file-label.disabled[b-qk7b3btxpw] { opacity: 0.5; cursor: default; }

.tp-template-head[b-qk7b3btxpw] {
    display: flex;
    align-items: flex-end;
    gap: 10px;
}
.tp-template-select[b-qk7b3btxpw] { flex: 1; min-width: 0; }
.tp-template-acoes[b-qk7b3btxpw] { display: flex; gap: 6px; flex-shrink: 0; padding-bottom: 1px; }

.tp-form-narrow[b-qk7b3btxpw] { max-width: 180px; }
.tp-hint[b-qk7b3btxpw] {
    margin: 2px 0 8px;
    font-size: 11.5px;
    color: var(--ink-3);
    font-weight: 300;
}

/* ═════════ Preview da importação ═════════ */
.tp-preview[b-qk7b3btxpw] { display: flex; flex-direction: column; gap: 6px; }
.tp-preview-title[b-qk7b3btxpw] {
    margin: 0;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--ink);
}
.tp-preview-scroll[b-qk7b3btxpw] {
    max-height: 340px;
    overflow: auto;
    border: 1px solid var(--rule-hair);
    border-radius: 9px;
}
.tp-preview-table[b-qk7b3btxpw] {
    width: 100%;
    border-collapse: collapse;
    font-size: 11.5px;
    font-variant-numeric: tabular-nums;
}
.tp-preview-table thead tr[b-qk7b3btxpw] { position: sticky; top: 0; }
.tp-preview-table th[b-qk7b3btxpw] {
    background: color-mix(in srgb, var(--ink) 6%, var(--pane-3));
    color: var(--ink-3);
    font-weight: 500;
    text-align: left;
    padding: 6px 9px;
    border-bottom: 1px solid var(--rule-hair);
    white-space: nowrap;
}
.tp-preview-table th.accent[b-qk7b3btxpw] { color: var(--accent); }
.tp-preview-table td[b-qk7b3btxpw] {
    padding: 4px 9px;
    border-bottom: 1px solid var(--rule-hair);
    color: var(--ink-2);
    font-weight: 300;
    white-space: nowrap;
}
.tp-preview-table td.accent[b-qk7b3btxpw] { color: var(--accent); font-weight: 400; }
.tp-preview-table th.ctr[b-qk7b3btxpw], .tp-preview-table td.ctr[b-qk7b3btxpw] { text-align: center; }
.tp-preview-table th.rgt[b-qk7b3btxpw], .tp-preview-table td.rgt[b-qk7b3btxpw] { text-align: right; }
.tp-preview-table tbody tr:last-child td[b-qk7b3btxpw] { border-bottom: none; }

/* ═════════ Mapeamento de colunas ═════════ */
.tp-map[b-qk7b3btxpw] {
    border: 1px solid var(--rule-hair);
    border-radius: 9px;
    overflow: hidden;
}
.tp-map-head[b-qk7b3btxpw],
.tp-map-row[b-qk7b3btxpw] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    align-items: center;
    padding: 7px 10px;
}
.tp-map.tp-map-3 .tp-map-head[b-qk7b3btxpw],
.tp-map.tp-map-3 .tp-map-row[b-qk7b3btxpw] {
    grid-template-columns: 1fr 1fr 1fr;
}
.tp-map-head[b-qk7b3btxpw] {
    background: color-mix(in srgb, var(--ink) 6%, transparent);
    border-bottom: 1px solid var(--rule-hair);
    font-size: 10px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--ink-3);
    font-weight: 500;
}
.tp-map-row[b-qk7b3btxpw] { border-bottom: 1px solid var(--rule-hair); }
.tp-map-row:last-child[b-qk7b3btxpw] { border-bottom: none; }
.tp-map-col[b-qk7b3btxpw] {
    font-size: 12px;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tp-map-amostra[b-qk7b3btxpw] {
    font-size: 11.5px;
    color: var(--ink-3);
    font-weight: 300;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tp-map-row select[b-qk7b3btxpw] { font-size: 12px !important; padding: 6px 8px !important; }

.tp-map-resumo[b-qk7b3btxpw] { display: flex; flex-wrap: wrap; gap: 6px; }
.tp-map-tag[b-qk7b3btxpw] {
    background: color-mix(in srgb, var(--ink) 5%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 7px;
    padding: 4px 9px;
    font-size: 11.5px;
    color: var(--ink-2);
    font-weight: 300;
}
.tp-map-tag strong[b-qk7b3btxpw] { color: var(--ink-3); font-weight: 500; }

/* ═════════ Confirmação / botão destrutivo ═════════ */
.tp-confirm-txt[b-qk7b3btxpw] {
    margin: 0;
    font-size: 13px;
    color: var(--ink);
    font-weight: 300;
    line-height: 1.5;
}
.tp-confirm-txt strong[b-qk7b3btxpw] { font-weight: 500; }

.tp-btn-danger[b-qk7b3btxpw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: #c1361b;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 8px 18px;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s ease;
}
.tp-btn-danger:hover:not(:disabled)[b-qk7b3btxpw] { background: #a52d16; }
.tp-btn-danger:disabled[b-qk7b3btxpw] { opacity: 0.55; cursor: default; }

/* O SfNumericTextBox e estilizado globalmente em hevy-sidebar-detail.css
   (.e-input-group.hv-numeric). A copia scoped que vivia aqui disputava
   especificidade com a global e deixava o campo mais alto que os vizinhos. */
/* /Components/Pages/Hevy/HevyTenants.razor.rz.scp.css */
[b-fh6mpgzjgl] .badge-status {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
[b-fh6mpgzjgl] .badge-status.badge-ativo {
    background: color-mix(in srgb, #2f8f3f 15%, transparent);
    color: #2f8f3f;
}
[b-fh6mpgzjgl] .badge-status.badge-suspenso {
    background: color-mix(in srgb, #b0577a 15%, transparent);
    color: #b0577a;
}
[b-fh6mpgzjgl] body[data-theme="dark"] .badge-status.badge-ativo { color: #58c66d; }
[b-fh6mpgzjgl] body[data-theme="dark"] .badge-status.badge-suspenso { color: #e6a9c3; }
/* /Components/Pages/Hevy/HevyUsuarios.razor.rz.scp.css */
/* ─────────────────────────────────────────────────────────────────────
   HevyUsuarios — CSS scoped (grid + tabs local + badges + modais).
   Regras globais reusadas: .kpi-strip, .hv-modal/.hv-form/.hv-input/
   .hv-btn-primary/.hv-btn-secondary/.hv-alert, .tabs/.tab, .kebab-*.
   ───────────────────────────────────────────────────────────────────── */

/* Contador ao lado do label da aba e nos badges do grid. */
.usu-tab-count[b-53p78ybv8d] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    padding: 1px 7px;
    margin-left: 6px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
    background: color-mix(in srgb, var(--accent) 14%, transparent);
    color: var(--accent);
    line-height: 1.4;
}

/* Badges de status/tipo dentro dos grids. Tonalidade suave, mesmo
   contrato visual dos badges do sidebar-detail. */
.usu-badge[b-53p78ybv8d] {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 6px;
    font-weight: 500;
    font-size: 12px;
    letter-spacing: 0;
    line-height: 1.5;
    white-space: nowrap;
}
.usu-badge-perfil[b-53p78ybv8d] {
    background: color-mix(in srgb, var(--accent) 14%, transparent);
    color: var(--accent);
}
.usu-badge-ativo[b-53p78ybv8d] {
    background: color-mix(in srgb, #3d7a5a 18%, transparent);
    color: #2f5f47;
}
.usu-badge-inativo[b-53p78ybv8d] {
    background: color-mix(in srgb, var(--ink) 10%, transparent);
    color: var(--ink-3);
}
.usu-badge-bloqueado[b-53p78ybv8d] {
    background: color-mix(in srgb, #b0577a 18%, transparent);
    color: #8a3d5c;
}
.usu-badge-admin[b-53p78ybv8d] {
    background: color-mix(in srgb, #b8860b 18%, transparent);
    color: #96700a;
}
.usu-badge-sistema[b-53p78ybv8d] {
    background: color-mix(in srgb, #4a6fa8 18%, transparent);
    color: #3c5e93;
}
.usu-badge-custom[b-53p78ybv8d] {
    background: color-mix(in srgb, var(--accent) 14%, transparent);
    color: var(--accent);
}
:global(body[data-theme="dark"]) .usu-badge-ativo[b-53p78ybv8d] { color: #7cb896; }
:global(body[data-theme="dark"]) .usu-badge-inativo[b-53p78ybv8d] { color: var(--ink-2); }
:global(body[data-theme="dark"]) .usu-badge-bloqueado[b-53p78ybv8d] { color: #e6a9c3; }
:global(body[data-theme="dark"]) .usu-badge-admin[b-53p78ybv8d] { color: #e6b854; }
:global(body[data-theme="dark"]) .usu-badge-sistema[b-53p78ybv8d] { color: #9db8e3; }

/* Pill-like select do filtro de tenant (fica dentro da FilterBar como
   ExtraFilter — para ficar coerente com as pills das outras paginas). */
.hv-input-pill[b-53p78ybv8d] {
    padding: 6px 14px !important;
    border-radius: 999px !important;
    background: color-mix(in srgb, var(--ink) 4%, transparent) !important;
    border: 1px solid var(--rule-hair) !important;
    font-size: 12px !important;
    max-width: 220px;
    min-width: 180px;
    cursor: pointer;
}

/* Botao primary contextual no ExtraActions (Novo usuario / Novo perfil).
   Mantem o visual da pill act com fundo laranja discreto. */
.pill-primary-act[b-53p78ybv8d] {
    background: color-mix(in srgb, var(--accent) 14%, transparent) !important;
    color: var(--accent) !important;
    border-color: color-mix(in srgb, var(--accent) 30%, transparent) !important;
}
.pill-primary-act:hover[b-53p78ybv8d] {
    background: color-mix(in srgb, var(--accent) 22%, transparent) !important;
}

/* Botao "Enviar link de redefinição" no dialog do usuario — mesmo estilo do
   secondary mas com tom info discreto. */
.usu-btn-senha[b-53p78ybv8d] {
    color: #3c5e93 !important;
    border-color: color-mix(in srgb, #4a6fa8 30%, transparent) !important;
}
:global(body[data-theme="dark"]) .usu-btn-senha[b-53p78ybv8d] { color: #9db8e3 !important; }

/* Botao Excluir no modal de confirmacao — hv-btn-primary em vermelho. */
.usu-btn-danger[b-53p78ybv8d] {
    background: #b0577a !important;
}
.usu-btn-danger:hover:not(:disabled)[b-53p78ybv8d] {
    background: #8a3d5c !important;
}
:global(body[data-theme="dark"]) .usu-btn-danger[b-53p78ybv8d] { background: #c2758f !important; }

/* Texto da mensagem no confirm de exclusao. */
.usu-confirm-txt[b-53p78ybv8d] {
    color: var(--ink);
    font-size: 13.5px;
    line-height: 1.55;
    margin: 0 0 4px 0;
}

/* Grade de checkboxes de permissoes. */
.usu-perm-grid[b-53p78ybv8d] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 12px;
    padding-top: 4px;
}
.usu-perm-item[b-53p78ybv8d] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--ink);
    cursor: pointer;
    padding: 6px 8px;
    border-radius: 6px;
    transition: background 0.15s ease;
    user-select: none;
}
.usu-perm-item:hover[b-53p78ybv8d] {
    background: color-mix(in srgb, var(--ink) 5%, transparent);
}

/* Checkbox nativo estilizado (usa var(--accent) para ficar coerente com Hevy). */
.usu-check[b-53p78ybv8d] {
    appearance: none;
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    border: 1.5px solid var(--rule-strong);
    border-radius: 4px;
    background: var(--pane-3);
    cursor: pointer;
    transition: all 0.15s ease;
    position: relative;
    flex-shrink: 0;
    display: inline-block;
}
.usu-check:hover[b-53p78ybv8d] { border-color: var(--accent); }
.usu-check:checked[b-53p78ybv8d] {
    background: var(--accent);
    border-color: var(--accent);
}
.usu-check:checked[b-53p78ybv8d]::after {
    content: '';
    position: absolute;
    top: 1px;
    left: 4px;
    width: 4px;
    height: 8px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* Texto de apoio abaixo do campo de e-mail na criacao (convite por e-mail). */
.usu-help-txt[b-53p78ybv8d] {
    display: block;
    margin-top: 2px;
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--ink-3);
}
/* /Components/Pages/Hevy/HevyViagens.razor.rz.scp.css */
/* HevyViagens — locais do grid e do dialog Segla:
   - .hv-badge-*     : pills de status da viagem (grid + info-row)
   - .hv-ac-*        : autocomplete de municipios / busca de NF-e
   - .hv-total-row   : linha de total da aba Custos
   - .hv-rateio-*    : grid de 7 colunas da aba Rateio
   - .hv-modal-text  : paragrafo introdutorio dos modais utilitarios
   - .hv-btn-danger  : variante vermelha do .hv-btn-primary (cancelar viagem)
   - .spinner-inline : spinner dos botoes de acao
   - ::deep .hv-numeric : SfNumericTextBox estilizado como .hv-input */

/* ===== Badges de status ===== */
.hv-badge-ativo[b-yc3qv98s1s],
.hv-badge-inativo[b-yc3qv98s1s],
.hv-badge-info[b-yc3qv98s1s],
.hv-badge-warning[b-yc3qv98s1s] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.5;
    white-space: nowrap;
}
.hv-badge-ativo[b-yc3qv98s1s] {
    background: color-mix(in srgb, #2f8f3f 15%, transparent);
    color: #2f8f3f;
}
.hv-badge-inativo[b-yc3qv98s1s] {
    background: color-mix(in srgb, #b0577a 15%, transparent);
    color: #b0577a;
}
.hv-badge-info[b-yc3qv98s1s] {
    background: color-mix(in srgb, #4a6fa8 15%, transparent);
    color: #4a6fa8;
}
.hv-badge-warning[b-yc3qv98s1s] {
    background: color-mix(in srgb, #b8860b 15%, transparent);
    color: #96700a;
}
body[data-theme="dark"] .hv-badge-warning[b-yc3qv98s1s] { color: #e6b854; }
body[data-theme="dark"] .hv-badge-ativo[b-yc3qv98s1s] { color: #58c66d; }

/* ===== Autocomplete (municipios / NF-e) ===== */
.hv-ac-wrapper[b-yc3qv98s1s] {
    position: relative;
}
.hv-ac-list[b-yc3qv98s1s] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 4px;
    background: var(--pane-3);
    border: 1px solid var(--accent);
    border-radius: 10px;
    max-height: 250px;
    overflow-y: auto;
    z-index: 100000;
    box-shadow: 0 18px 44px -14px rgba(40, 32, 22, 0.35);
    backdrop-filter: blur(20px) saturate(140%);
    -webkit-backdrop-filter: blur(20px) saturate(140%);
}
.hv-ac-static[b-yc3qv98s1s] {
    margin-top: 8px;
    max-height: 220px;
    overflow-y: auto;
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
}
.hv-ac-item[b-yc3qv98s1s] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 12px;
    cursor: pointer;
    color: var(--ink);
    font-size: 12.5px;
    font-family: inherit;
    font-weight: 300;
    text-align: left;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rule-hair);
    transition: background 0.15s ease;
}
.hv-ac-item:last-child[b-yc3qv98s1s] { border-bottom: none; }
.hv-ac-item:hover:not(:disabled)[b-yc3qv98s1s] {
    background: color-mix(in srgb, var(--ink) 5%, transparent);
}
.hv-ac-item:disabled[b-yc3qv98s1s] {
    opacity: 0.5;
    cursor: not-allowed;
}
.hv-ac-uf[b-yc3qv98s1s] {
    display: block;
    font-size: 11px;
    color: var(--ink-3);
    white-space: nowrap;
}

/* ===== Linha de total (aba Custos) ===== */
.hv-total-row[b-yc3qv98s1s] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-top: 10px;
    padding-top: 12px;
    border-top: 1px solid var(--rule-hair);
    font-size: 12.5px;
    color: var(--ink-2);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.hv-total-valor[b-yc3qv98s1s] {
    color: var(--accent);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: -0.01em;
    text-transform: none;
    font-variant-numeric: tabular-nums;
}

/* ===== Tabela do rateio (7 colunas) ===== */
.hv-mini-table[b-yc3qv98s1s] {
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    overflow: hidden;
    background: color-mix(in srgb, var(--ink) 3%, transparent);
}
.hv-mini-table-head[b-yc3qv98s1s],
.hv-mini-table-row[b-yc3qv98s1s] {
    display: grid;
    grid-template-columns: 1.2fr 0.9fr 1.1fr 0.9fr 1fr 1fr 1.1fr;
    gap: 6px;
    padding: 9px 12px;
    align-items: center;
}
.hv-mini-table-head[b-yc3qv98s1s] {
    background: color-mix(in srgb, var(--ink) 4%, transparent);
    border-bottom: 1px solid var(--rule-hair);
    font-size: 9.5px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-3);
}
.hv-mini-table-row[b-yc3qv98s1s] {
    border-bottom: 1px solid var(--rule-hair);
    font-size: 11.5px;
    color: var(--ink-2);
    font-variant-numeric: tabular-nums;
}
.hv-mini-table-row:last-child[b-yc3qv98s1s] { border-bottom: 0; }
.hv-mini-table-head span:not(:first-child)[b-yc3qv98s1s],
.hv-mini-table-row span:not(:first-child)[b-yc3qv98s1s] { text-align: right; }
.hv-mini-strong[b-yc3qv98s1s] {
    color: var(--ink);
    font-weight: 500;
}
.hv-mini-table-total[b-yc3qv98s1s] {
    background: color-mix(in srgb, var(--accent) 8%, transparent);
    border-top: 1px solid color-mix(in srgb, var(--accent) 25%, transparent);
    color: var(--accent);
    font-weight: 500;
}
.hv-mini-table-total .hv-mini-strong[b-yc3qv98s1s] { color: var(--accent); }

/* ===== Cards de item (NF-e / custo) ===== */
.hv-card-row[b-yc3qv98s1s] {
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.hv-card-row:hover[b-yc3qv98s1s] {
    background: color-mix(in srgb, var(--ink) 5%, transparent);
    border-color: color-mix(in srgb, var(--ink) 15%, var(--rule-hair));
}
.hv-card-row-body[b-yc3qv98s1s] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.hv-card-row-title[b-yc3qv98s1s] {
    color: var(--ink);
    font-size: 13.5px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.hv-card-row-badge[b-yc3qv98s1s] {
    display: inline-flex;
    align-items: center;
    padding: 1px 7px;
    font-size: 11px;
    font-weight: 500;
    color: var(--ink-3);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 999px;
}
.hv-card-row-sub[b-yc3qv98s1s] {
    color: var(--ink-3);
    font-size: 12px;
}
.hv-card-row-sub.mono[b-yc3qv98s1s] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 11px;
    letter-spacing: 0.02em;
}
.hv-card-row-accent[b-yc3qv98s1s] {
    color: var(--accent);
    font-size: 13px;
    font-weight: 500;
    margin-top: 2px;
    font-variant-numeric: tabular-nums;
}
.hv-card-row-actions[b-yc3qv98s1s] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.hv-btn-icon[b-yc3qv98s1s] {
    background: transparent;
    border: 0;
    padding: 4px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.hv-btn-icon-info[b-yc3qv98s1s] { color: #4a6fa8; }
.hv-btn-icon-info:hover[b-yc3qv98s1s] { background: color-mix(in srgb, #4a6fa8 15%, transparent); }
.hv-btn-icon-danger[b-yc3qv98s1s] { color: #b0577a; }
.hv-btn-icon-danger:hover[b-yc3qv98s1s] { background: color-mix(in srgb, #b0577a 15%, transparent); }

/* ===== Mini-form dentro da secao ===== */
.hv-inline-form[b-yc3qv98s1s] {
    background: color-mix(in srgb, var(--ink) 3%, transparent);
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    padding: 14px;
    margin-bottom: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.hv-inline-actions[b-yc3qv98s1s] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.hv-empty-text[b-yc3qv98s1s] {
    color: var(--ink-3);
    font-size: 12.5px;
    font-style: italic;
    margin: 8px 0;
}

.hv-btn-small[b-yc3qv98s1s] {
    font-size: 12px !important;
    padding: 4px 12px !important;
}

/* Variante vermelha do primario (cancelar viagem) */
.hv-btn-danger[b-yc3qv98s1s] {
    background: #c1361b !important;
    border-color: #c1361b !important;
}

.hv-modal-text[b-yc3qv98s1s] {
    margin: 0 0 4px;
    color: var(--ink-2);
    font-size: 13px;
    font-weight: 300;
    line-height: 1.5;
}
.hv-modal-text strong[b-yc3qv98s1s] { color: var(--ink); font-weight: 500; }

/* ===== Spinner dos botoes ===== */
.spinner-inline[b-yc3qv98s1s] {
    width: 12px;
    height: 12px;
    border: 2px solid color-mix(in srgb, currentColor 30%, transparent);
    border-top-color: currentColor;
    border-radius: 50%;
    display: inline-block;
    animation: hv-spin-b-yc3qv98s1s 0.6s linear infinite;
}
@keyframes hv-spin-b-yc3qv98s1s {
    to { transform: rotate(360deg); }
}

/* O SfNumericTextBox agora e estilizado globalmente em hevy-sidebar-detail.css
   (.e-input-group.hv-numeric). A copia que vivia aqui tinha padding proprio e,
   por ser scoped, ficava em (0,3,0) e vencia a global — o campo ficava 8px mais
   alto que os vizinhos e desalinhava a linha do formulario. */

/* Kebab danger no grid */
[b-yc3qv98s1s] .kebab-menu-item-danger { color: #b0577a !important; }
[b-yc3qv98s1s] .kebab-menu-item-danger:hover {
    background: color-mix(in srgb, #b0577a 10%, transparent) !important;
}

/* Textarea dentro do hv-form respeita o resize vertical apenas */
textarea.hv-input[b-yc3qv98s1s] {
    resize: vertical;
    min-height: 64px;
    font-family: inherit;
}

/* ===== Nova viagem: rota, distância e custo ===== */

[b-yc3qv98s1s] .vg-opcional {
    font-size: 10px;
    font-weight: 300;
    color: var(--ink-3);
    text-transform: none;
    letter-spacing: 0;
    margin-left: 6px;
}

/* Nota de estado do campo de distância: de onde veio o km. */
[b-yc3qv98s1s] .vg-rota-nota {
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--ink-2);
    background: color-mix(in srgb, var(--ink) 4%, transparent);
    border-left: 3px solid var(--rule);
    border-radius: 8px;
    padding: 8px 11px;
    margin-top: -4px;
}
[b-yc3qv98s1s] .vg-rota-nota.nova {
    background: color-mix(in srgb, #d68a1a 10%, transparent);
    border-left-color: #d68a1a;
}
[b-yc3qv98s1s] .vg-rota-nota a { color: var(--accent); }

/* Custo fechado na criação — o número que o usuário confirma antes de salvar. */
[b-yc3qv98s1s] .vg-custo {
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    padding: 4px 14px;
}
[b-yc3qv98s1s] .vg-custo-linha {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 0;
    font-size: 12.5px;
    color: var(--ink-2);
    border-bottom: 1px solid var(--rule-hair);
}
[b-yc3qv98s1s] .vg-custo-linha:last-child { border-bottom: none; }
[b-yc3qv98s1s] .vg-custo-linha.total {
    font-size: 15px;
    font-weight: 500;
    color: var(--ink);
}
[b-yc3qv98s1s] .vg-custo-fonte {
    font-size: 10px;
    color: var(--ink-3);
    margin-left: 6px;
}
[b-yc3qv98s1s] .vg-custo-tarifa { max-width: 130px; }

/* ===== Importação do pacote de XMLs na viagem ===== */

/* O <InputFile> nativo é feio e não aceita estilo; fica transparente por cima
   da face desenhada, cobrindo a área toda para o clique continuar valendo. */
[b-yc3qv98s1s] .vg-upload { position: relative; }
[b-yc3qv98s1s] .vg-upload-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 1;
}
[b-yc3qv98s1s] .vg-upload-face {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 14px;
    border: 1px dashed var(--rule);
    border-radius: 10px;
    color: var(--ink-3);
    font-size: 12.5px;
    text-align: center;
    transition: border-color .15s ease, color .15s ease;
}
[b-yc3qv98s1s] .vg-upload:hover .vg-upload-face { border-color: var(--accent); color: var(--ink-2); }

[b-yc3qv98s1s] .vg-pacote-resumo {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}
[b-yc3qv98s1s] .vg-pacote-chip {
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
}
[b-yc3qv98s1s] .vg-pacote-chip.ok { background: color-mix(in srgb, #2f8f3f 15%, transparent); color: #256b30; }
[b-yc3qv98s1s] .vg-pacote-chip.bloq { background: color-mix(in srgb, #c1361b 14%, transparent); color: #c1361b; }

/* Altura fixa: pacote de mês cheio tem centenas de notas e a lista não pode
   empurrar o botão de confirmar para fora do diálogo. */
[b-yc3qv98s1s] .vg-pacote-lista {
    max-height: 300px;
    overflow-y: auto;
    border: 1px solid var(--rule-hair);
    border-radius: 10px;
    margin-bottom: 10px;
}
[b-yc3qv98s1s] .vg-pacote-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 9px 12px;
    border-bottom: 1px solid var(--rule-hair);
}
[b-yc3qv98s1s] .vg-pacote-item:last-child { border-bottom: none; }
/* Bloqueada continua legível: some do embarque, não da conferência. */
[b-yc3qv98s1s] .vg-pacote-item.bloqueada { background: color-mix(in srgb, #c1361b 5%, transparent); }
[b-yc3qv98s1s] .vg-pacote-x {
    width: 16px;
    text-align: center;
    color: #c1361b;
    font-size: 15px;
    line-height: 1.1;
    flex-shrink: 0;
}
[b-yc3qv98s1s] .vg-pacote-corpo { min-width: 0; flex: 1; }
[b-yc3qv98s1s] .vg-pacote-titulo {
    font-size: 13px;
    color: var(--ink);
    display: flex;
    align-items: center;
    gap: 8px;
}
[b-yc3qv98s1s] .vg-pacote-tag {
    padding: 1px 7px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ink) 8%, transparent);
    color: var(--ink-3);
    font-size: 10px;
    font-weight: 500;
}
[b-yc3qv98s1s] .vg-pacote-sub {
    font-size: 11.5px;
    color: var(--ink-3);
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
[b-yc3qv98s1s] .vg-pacote-motivo {
    font-size: 11.5px;
    color: #c1361b;
    margin-top: 3px;
    line-height: 1.4;
}
/* Aviso nao e impedimento: ambar em vez do vermelho do motivo, para o operador
   ler como contexto do frete e nao como erro que trava o embarque. */
[b-yc3qv98s1s] .vg-pacote-aviso {
    font-size: 11.5px;
    color: #8a640a;
    margin-top: 3px;
    line-height: 1.4;
}

/* ===== Baskets da aba Notas Fiscais ===== */
[b-yc3qv98s1s] .vg-basket-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
[b-yc3qv98s1s] .vg-basket-toolbar .section-title-sidebar { margin: 0; }
[b-yc3qv98s1s] .vg-basket-toolbar-acoes {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
[b-yc3qv98s1s] .vg-basket {
    border: 1px solid var(--rule-hair);
    border-radius: 12px;
    padding: 6px 12px 10px;
    margin-bottom: 12px;
}
[b-yc3qv98s1s] .vg-basket-cabecalho {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
[b-yc3qv98s1s] .vg-basket-alternar {
    display: flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: none;
    padding: 6px 0;
    color: var(--ink);
    font: inherit;
    cursor: pointer;
}
[b-yc3qv98s1s] .vg-basket-nome { font-weight: 600; }
[b-yc3qv98s1s] .vg-basket-seta {
    display: inline-block;
    transition: transform .12s;
}
[b-yc3qv98s1s] .vg-basket-seta.recolhido { transform: rotate(-90deg); }
[b-yc3qv98s1s] .vg-basket-transbordo {
    color: var(--ink-3);
    font-size: 12px;
    margin-right: auto;
}
[b-yc3qv98s1s] .vg-basket-select {
    width: auto;
    min-width: 160px;
}
/* O .hv-card-row distribui com space-between: a caixa fica colada ao corpo da nota. */
[b-yc3qv98s1s] .vg-basket-check {
    flex: none;
    margin-right: 10px;
}
[b-yc3qv98s1s] .vg-basket-municipio {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--ink-3);
    font-size: 12px;
    margin-top: 4px;
}
[b-yc3qv98s1s] .vg-aviso-lista {
    margin: 0 0 12px;
    padding-left: 18px;
    font-size: 13px;
    line-height: 1.6;
}

/* Marcador de entrega na linha da nota */
[b-yc3qv98s1s] .vg-entrega-marcador {
    font-size: 12px;
    margin-top: 4px;
}
[b-yc3qv98s1s] .vg-entrega-marcador.ok { color: #2f8f3f; }
[b-yc3qv98s1s] .vg-entrega-marcador.pendente { color: var(--ink-3); }
[b-yc3qv98s1s] .vg-entrega-marcador a {
    color: var(--accent);
    margin-left: 8px;
}

/* Notas recusadas no registro de entrega (dentro do alerta da aba) */
[b-yc3qv98s1s] .vg-entrega-recusadas {
    margin: 6px 0 0;
    padding-left: 18px;
    font-size: 12.5px;
    line-height: 1.5;
}

/* Detalhe da nota (histórico de basket) */
[b-yc3qv98s1s] .vg-nota-detalhe {
    margin-top: 8px;
    padding: 8px 10px;
    border-left: 2px solid var(--rule-hair);
}
[b-yc3qv98s1s] .vg-nota-detalhe-titulo {
    font-size: 12px;
    font-weight: 600;
    color: var(--ink-3);
    margin-bottom: 4px;
}
[b-yc3qv98s1s] .vg-historico-lista {
    margin: 0;
    padding-left: 16px;
    font-size: 12px;
    line-height: 1.6;
}
[b-yc3qv98s1s] .vg-historico-usuario { color: var(--ink-3); }
/* /Components/Pages/Landing/Contato.razor.rz.scp.css */
/* =================================================================
   Logistikk - Contato Page - Scoped CSS
   Design tokens:
     Background: var(--bg-primary)  |  Cards: var(--bg-card) / var(--bg-secondary)
     Border: var(--border)      |  Accent: var(--accent)
     Text Primary: white  |  Text Secondary: var(--text-secondary)
     Font: Inter
   ================================================================= */

/* ── Global helpers ─────────────────────────────────────────────── */

[b-v55byhlz47] .text-accent {
    color: var(--accent);
}

/* ── Section container ──────────────────────────────────────────── */

.section-container[b-v55byhlz47] {
    max-width: 80rem;
    margin: 0 auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

@media (min-width: 640px) {
    .section-container[b-v55byhlz47] {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .section-container[b-v55byhlz47] {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

/* =================================================================
   NAVBAR
   ================================================================= */

.contato-navbar[b-v55byhlz47] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 50;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    background-color: color-mix(in srgb, var(--bg-primary) 85%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}

.nav-container[b-v55byhlz47] {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 1rem;
}

@media (min-width: 640px) {
    .nav-container[b-v55byhlz47] {
        padding: 0 1.5rem;
    }
}

@media (min-width: 1024px) {
    .nav-container[b-v55byhlz47] {
        padding: 0 2rem;
    }
}

.nav-inner[b-v55byhlz47] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 4.5rem;
    padding: 1rem 0;
}

.logo-link[b-v55byhlz47] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    text-decoration: none;
}

.logo-link:hover .logo-icon[b-v55byhlz47] {
    background: color-mix(in srgb, var(--accent) 20%, transparent);
}

.logo-icon[b-v55byhlz47] {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
    transition: background 0.3s ease;
}

.logo-text[b-v55byhlz47] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-heading);
}

.nav-links-desktop[b-v55byhlz47] {
    display: none;
    align-items: center;
    gap: 2rem;
}

@media (min-width: 768px) {
    .nav-links-desktop[b-v55byhlz47] {
        display: flex;
    }
}

.nav-link[b-v55byhlz47] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text-secondary);
    text-decoration: none;
    transition: color 0.3s ease;
}

.nav-link:hover[b-v55byhlz47] {
    color: var(--accent);
}

.nav-right[b-v55byhlz47] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.btn-entrar[b-v55byhlz47] {
    display: none;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text-secondary);
    text-decoration: none;
    padding: 0.5rem 1.25rem;
    border-radius: 9999px;
    border: 1px solid var(--border);
    transition: all 0.3s ease;
}

.btn-entrar:hover[b-v55byhlz47] {
    color: var(--accent);
    border-color: color-mix(in srgb, var(--accent) 50%, transparent);
}

@media (min-width: 768px) {
    .btn-entrar[b-v55byhlz47] {
        display: inline-flex;
    }
}

.btn-criar-conta[b-v55byhlz47] {
    display: none;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    background: var(--accent);
    color: #ffffff;
    font-weight: 600;
    font-size: 0.875rem;
    border-radius: 9999px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-criar-conta:hover[b-v55byhlz47] {
    background: var(--accent-hover);
}

@media (min-width: 768px) {
    .btn-criar-conta[b-v55byhlz47] {
        display: inline-flex;
    }
}

/* =================================================================
   HERO HEADER
   ================================================================= */

.contato-hero[b-v55byhlz47] {
    position: relative;
    background: var(--bg-primary);
    padding-top: 8rem;
    padding-bottom: 3rem;
    text-align: center;
    overflow: hidden;
}

.contato-glow[b-v55byhlz47] {
    position: absolute;
    top: -100px;
    left: 50%;
    transform: translateX(-50%);
    width: 600px;
    height: 350px;
    background: rgba(34, 211, 238, 0.06);
    filter: blur(140px);
    border-radius: 50%;
    pointer-events: none;
}

.contato-hero-content[b-v55byhlz47] {
    position: relative;
    z-index: 10;
}

.contato-title[b-v55byhlz47] {
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--text-heading);
    margin-bottom: 1.5rem;
}

@media (min-width: 640px) {
    .contato-title[b-v55byhlz47] {
        font-size: 3rem;
    }
}

@media (min-width: 1024px) {
    .contato-title[b-v55byhlz47] {
        font-size: 3.5rem;
    }
}

.contato-subtitle[b-v55byhlz47] {
    font-size: 1.125rem;
    color: var(--text-secondary);
    max-width: 36rem;
    margin: 0 auto;
    line-height: 1.7;
}

/* =================================================================
   CONTACT CONTENT
   ================================================================= */

.contato-section[b-v55byhlz47] {
    background: var(--bg-primary);
    padding: 2rem 0 6rem;
}

.contato-grid[b-v55byhlz47] {
    display: grid;
    gap: 3rem;
    max-width: 64rem;
    margin: 0 auto;
}

@media (min-width: 1024px) {
    .contato-grid[b-v55byhlz47] {
        grid-template-columns: 1.2fr 0.8fr;
        gap: 4rem;
    }
}

/* ── Form ────────────────────────────────────────────────────────── */

.contato-form-wrapper[b-v55byhlz47] {
    border-radius: 1.25rem;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    padding: 2rem;
}

@media (min-width: 640px) {
    .contato-form-wrapper[b-v55byhlz47] {
        padding: 2.5rem;
    }
}

.form-group[b-v55byhlz47] {
    margin-bottom: 1.5rem;
}

.form-label[b-v55byhlz47] {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 0.5rem;
}

.form-input[b-v55byhlz47] {
    width: 100%;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    background: var(--bg-primary);
    border: 1px solid var(--border);
    color: var(--text-primary);
    font-size: 0.9375rem;
    font-family: inherit;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    outline: none;
    box-sizing: border-box;
}

.form-input[b-v55byhlz47]::placeholder {
    color: #4a5568;
}

.form-input:focus[b-v55byhlz47] {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 10%, transparent);
}

.form-input option[b-v55byhlz47] {
    background: var(--bg-secondary);
    color: var(--text-primary);
}

.form-textarea[b-v55byhlz47] {
    resize: vertical;
    min-height: 8rem;
}

.btn-enviar[b-v55byhlz47] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0.875rem 1.5rem;
    border-radius: 0.75rem;
    background: var(--accent);
    color: #ffffff;
    font-weight: 700;
    font-size: 0.9375rem;
    font-family: inherit;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-enviar:hover:not(:disabled)[b-v55byhlz47] {
    background: var(--accent-hover);
    box-shadow: 0 8px 24px color-mix(in srgb, var(--accent) 25%, transparent);
}

.btn-enviar:disabled[b-v55byhlz47] {
    opacity: 0.7;
    cursor: not-allowed;
}

.btn-spinner[b-v55byhlz47] {
    width: 1.125rem;
    height: 1.125rem;
    border: 2px solid color-mix(in srgb, var(--bg-primary) 30%, transparent);
    border-top: 2px solid #ffffff;
    border-radius: 50%;
    animation: spin-b-v55byhlz47 0.8s linear infinite;
}

@keyframes spin-b-v55byhlz47 {
    to { transform: rotate(360deg); }
}

/* ── Success State ───────────────────────────────────────────────── */

.contato-sucesso[b-v55byhlz47] {
    text-align: center;
    padding: 2rem 0;
}

.sucesso-icon[b-v55byhlz47] {
    color: var(--accent);
    margin-bottom: 1.5rem;
}

.sucesso-icon svg[b-v55byhlz47] {
    margin: 0 auto;
}

.sucesso-titulo[b-v55byhlz47] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-heading);
    margin-bottom: 0.75rem;
}

.sucesso-texto[b-v55byhlz47] {
    font-size: 1rem;
    color: var(--text-secondary);
    margin-bottom: 2rem;
    line-height: 1.6;
}

.btn-nova-mensagem[b-v55byhlz47] {
    display: inline-flex;
    align-items: center;
    padding: 0.75rem 1.5rem;
    border-radius: 0.75rem;
    border: 2px solid var(--border);
    background: transparent;
    color: var(--text-heading);
    font-weight: 600;
    font-size: 0.875rem;
    font-family: inherit;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-nova-mensagem:hover[b-v55byhlz47] {
    border-color: var(--accent);
    color: var(--accent);
}

/* ── Info Cards ──────────────────────────────────────────────────── */

.contato-info[b-v55byhlz47] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.info-card[b-v55byhlz47] {
    border-radius: 1rem;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    padding: 1.5rem;
    transition: border-color 0.3s ease, transform 0.3s ease;
}

.info-card:hover[b-v55byhlz47] {
    border-color: color-mix(in srgb, var(--accent) 30%, transparent);
    transform: translateY(-2px);
}

.info-icon[b-v55byhlz47] {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
}

.icon-green[b-v55byhlz47] {
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    color: var(--accent);
}

.icon-cyan[b-v55byhlz47] {
    background: rgba(34, 211, 238, 0.1);
    color: #22d3ee;
}

.info-titulo[b-v55byhlz47] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-heading);
    margin-bottom: 0.375rem;
}

.info-texto[b-v55byhlz47] {
    font-size: 0.9375rem;
    color: var(--text-primary);
    margin-bottom: 0.25rem;
}

.info-detalhe[b-v55byhlz47] {
    font-size: 0.8125rem;
    color: var(--text-muted);
}

/* =================================================================
   FOOTER
   ================================================================= */

.landing-footer[b-v55byhlz47] {
    background: var(--bg-primary);
    border-top: 1px solid var(--border);
    padding: 2rem 0;
}

.footer-bottom[b-v55byhlz47] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    text-align: center;
}

@media (min-width: 640px) {
    .footer-bottom[b-v55byhlz47] {
        flex-direction: row;
        justify-content: space-between;
    }
}

.footer-bottom p[b-v55byhlz47] {
    font-size: 0.875rem;
    color: var(--text-muted);
}

.footer-logo-small .logo-icon[b-v55byhlz47] {
    width: 1.75rem;
    height: 1.75rem;
}

.logo-text-small[b-v55byhlz47] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-heading);
}
/* /Components/Pages/Landing/Index.razor.rz.scp.css */
/* =================================================================
   Logistikk Landing Page - Scoped CSS
   Design tokens:
     Background: var(--bg-primary)  |  Cards: var(--bg-card) / var(--bg-secondary)
     Border: var(--border)      |  Accent: var(--accent)
     Text Primary: white  |  Text Secondary: var(--text-secondary)
     Font: Inter
   ================================================================= */

/* ── Global helpers ─────────────────────────────────────────────── */

[b-oubxisew80] .text-accent {
    color: var(--accent);
}

/* ── Section container ──────────────────────────────────────────── */

.section-container[b-oubxisew80] {
    max-width: 80rem;
    margin: 0 auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

@media (min-width: 640px) {
    .section-container[b-oubxisew80] {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .section-container[b-oubxisew80] {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

/* ── Section header ─────────────────────────────────────────────── */

.section-header[b-oubxisew80] {
    text-align: center;
    margin-bottom: 4rem;
}

.section-title[b-oubxisew80] {
    font-size: 1.875rem;
    font-weight: 800;
    color: var(--text-heading);
    margin-bottom: 1rem;
    line-height: 1.2;
}

@media (min-width: 640px) {
    .section-title[b-oubxisew80] {
        font-size: 2.25rem;
    }
}

.section-subtitle[b-oubxisew80] {
    font-size: 1.125rem;
    color: var(--text-secondary);
    max-width: 42rem;
    margin: 0 auto;
}

/* =================================================================
   ANIMATIONS
   ================================================================= */

@keyframes float-b-oubxisew80 {
    0%, 100% { transform: perspective(1000px) rotateY(-8deg) rotateX(4deg) translateY(0px); }
    50% { transform: perspective(1000px) rotateY(-8deg) rotateX(4deg) translateY(-16px); }
}

.float-animation[b-oubxisew80] {
    animation: float-b-oubxisew80 6s ease-in-out infinite;
}

@keyframes orbPulse-b-oubxisew80 {
    0%, 100% { opacity: 0.4; transform: scale(1); }
    50% { opacity: 0.7; transform: scale(1.1); }
}

.orb-pulse[b-oubxisew80] {
    animation: orbPulse-b-oubxisew80 8s ease-in-out infinite;
}

.orb-pulse-delayed[b-oubxisew80] {
    animation: orbPulse-b-oubxisew80 8s ease-in-out infinite;
    animation-delay: -4s;
}

@keyframes fadeInUp-b-oubxisew80 {
    from { opacity: 0; transform: translateY(32px); }
    to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in-up[b-oubxisew80] {
    opacity: 0;
    animation: fadeInUp-b-oubxisew80 0.7s ease-out forwards;
}

.delay-1[b-oubxisew80] { animation-delay: 0.1s; }
.delay-2[b-oubxisew80] { animation-delay: 0.2s; }
.delay-3[b-oubxisew80] { animation-delay: 0.3s; }
.delay-4[b-oubxisew80] { animation-delay: 0.4s; }

@keyframes chartGrow-b-oubxisew80 {
    from { transform: scaleY(0); }
    to { transform: scaleY(1); }
}

.chart-bar[b-oubxisew80] {
    transform-origin: bottom;
    animation: chartGrow-b-oubxisew80 1s ease-out forwards;
}

/* Card hover effect */
.card-hover[b-oubxisew80] {
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.card-hover:hover[b-oubxisew80] {
    transform: translateY(-4px);
    box-shadow: 0 16px 48px color-mix(in srgb, var(--accent) 8%, transparent), 0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent);
}

/* =================================================================
   NAVBAR
   ================================================================= */

.landing-navbar[b-oubxisew80] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 50;
    transition: all 0.3s ease;
}

.landing-navbar.nav-scrolled[b-oubxisew80] {
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    background-color: color-mix(in srgb, var(--bg-primary) 85%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}

.nav-container[b-oubxisew80] {
    max-width: 80rem;
    margin: 0 auto;
    padding: 0 1rem;
}

@media (min-width: 640px) {
    .nav-container[b-oubxisew80] {
        padding: 0 1.5rem;
    }
}

@media (min-width: 1024px) {
    .nav-container[b-oubxisew80] {
        padding: 0 2rem;
    }
}

.nav-inner[b-oubxisew80] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 4.5rem;
    padding: 1rem 0;
}

.logo-link[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    text-decoration: none;
}

.logo-link:hover .logo-icon[b-oubxisew80] {
    background: color-mix(in srgb, var(--accent) 20%, transparent);
}

.logo-icon[b-oubxisew80] {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
    transition: background 0.3s ease;
}

.logo-text[b-oubxisew80] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-heading);
}

.nav-links-desktop[b-oubxisew80] {
    display: none;
    align-items: center;
    gap: 2rem;
}

@media (min-width: 768px) {
    .nav-links-desktop[b-oubxisew80] {
        display: flex;
    }
}

.nav-link[b-oubxisew80] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text-secondary);
    text-decoration: none;
    transition: color 0.3s ease;
}

.nav-link:hover[b-oubxisew80] {
    color: var(--accent);
}

.nav-right[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.btn-entrar[b-oubxisew80] {
    display: none;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text-secondary);
    text-decoration: none;
    padding: 0.5rem 1.25rem;
    border-radius: 9999px;
    border: 1px solid var(--border);
    transition: all 0.3s ease;
}

.btn-entrar:hover[b-oubxisew80] {
    color: var(--accent);
    border-color: color-mix(in srgb, var(--accent) 50%, transparent);
}

@media (min-width: 768px) {
    .btn-entrar[b-oubxisew80] {
        display: inline-flex;
    }
}

.btn-criar-conta[b-oubxisew80] {
    display: none;
    align-items: center;
    gap: 0.5rem;
    padding: 0.625rem 1.25rem;
    background: var(--accent);
    color: #ffffff;
    font-weight: 600;
    font-size: 0.875rem;
    border-radius: 9999px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-criar-conta:hover[b-oubxisew80] {
    background: var(--accent-hover);
}

@media (min-width: 768px) {
    .btn-criar-conta[b-oubxisew80] {
        display: inline-flex;
    }
}

.btn-hamburger[b-oubxisew80] {
    display: flex;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    align-items: center;
    justify-content: center;
    color: var(--text-primary);
    cursor: pointer;
}

@media (min-width: 768px) {
    .btn-hamburger[b-oubxisew80] {
        display: none;
    }
}

/* =================================================================
   MOBILE MENU
   ================================================================= */

.mobile-overlay[b-oubxisew80] {
    position: fixed;
    inset: 0;
    z-index: 60;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    animation: fadeIn-b-oubxisew80 0.3s ease forwards;
}

.mobile-overlay.open[b-oubxisew80] {
    opacity: 1;
}

@keyframes fadeIn-b-oubxisew80 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.mobile-drawer[b-oubxisew80] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 20rem;
    max-width: 85vw;
    background: var(--bg-primary);
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.5);
    transform: translateX(100%);
    animation: slideIn-b-oubxisew80 0.3s ease forwards;
}

.mobile-drawer.open[b-oubxisew80] {
    transform: translateX(0);
}

@keyframes slideIn-b-oubxisew80 {
    from { transform: translateX(100%); }
    to { transform: translateX(0); }
}

.mobile-drawer-header[b-oubxisew80] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem;
    border-bottom: 1px solid var(--border);
}

.mobile-drawer-title[b-oubxisew80] {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--text-heading);
}

.btn-fechar-menu[b-oubxisew80] {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    background: var(--bg-secondary);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-primary);
    cursor: pointer;
}

.mobile-drawer-links[b-oubxisew80] {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.mobile-link[b-oubxisew80] {
    display: block;
    padding: 0.75rem 1rem;
    border-radius: 0.75rem;
    font-size: 1rem;
    font-weight: 500;
    color: var(--text-primary);
    text-decoration: none;
    transition: background 0.3s ease;
}

.mobile-link:hover[b-oubxisew80] {
    background: var(--bg-secondary);
}

.mobile-drawer-separator[b-oubxisew80] {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.btn-criar-conta-mobile[b-oubxisew80] {
    display: block;
    width: 100%;
    text-align: center;
    padding: 0.75rem 1.25rem;
    background: var(--accent);
    color: #ffffff;
    font-weight: 600;
    font-size: 1rem;
    border-radius: 9999px;
    text-decoration: none;
    transition: background 0.3s ease;
}

.btn-criar-conta-mobile:hover[b-oubxisew80] {
    background: var(--accent-hover);
}

/* =================================================================
   HERO SECTION
   ================================================================= */

.hero-section[b-oubxisew80] {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    background: var(--bg-primary);
    overflow: hidden;
    padding-top: 5rem;
    padding-bottom: 4rem;
}

.orb[b-oubxisew80] {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.orb-green[b-oubxisew80] {
    top: 25%;
    left: 25%;
    width: 500px;
    height: 500px;
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    filter: blur(120px);
}

.orb-cyan[b-oubxisew80] {
    bottom: 25%;
    right: 25%;
    width: 400px;
    height: 400px;
    background: rgba(34, 211, 238, 0.08);
    filter: blur(100px);
}

.hero-content[b-oubxisew80] {
    position: relative;
    z-index: 10;
}

.hero-grid[b-oubxisew80] {
    display: grid;
    gap: 3rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .hero-grid[b-oubxisew80] {
        grid-template-columns: 1fr 1fr;
        gap: 4rem;
    }
}

.hero-badge[b-oubxisew80] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 1rem;
    border-radius: 9999px;
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
    margin-bottom: 1.5rem;
}

.hero-badge-dot[b-oubxisew80] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--accent);
    animation: pulse-b-oubxisew80 2s ease-in-out infinite;
}

@keyframes pulse-b-oubxisew80 {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.hero-badge-text[b-oubxisew80] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--accent);
}

.hero-title[b-oubxisew80] {
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1.15;
    color: var(--text-heading);
    margin-bottom: 1.5rem;
}

@media (min-width: 640px) {
    .hero-title[b-oubxisew80] {
        font-size: 3rem;
    }
}

@media (min-width: 1024px) {
    .hero-title[b-oubxisew80] {
        font-size: 3.75rem;
    }
}

.hero-subtitle[b-oubxisew80] {
    font-size: 1.125rem;
    color: var(--text-secondary);
    margin-bottom: 2rem;
    max-width: 36rem;
    line-height: 1.7;
}

@media (min-width: 640px) {
    .hero-subtitle[b-oubxisew80] {
        font-size: 1.25rem;
    }
}

.hero-ctas[b-oubxisew80] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.btn-primary-lg[b-oubxisew80] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1.75rem;
    background: var(--accent);
    color: #ffffff;
    font-weight: 700;
    font-size: 1rem;
    border-radius: 9999px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-primary-lg:hover[b-oubxisew80] {
    background: var(--accent-hover);
    box-shadow: 0 8px 24px color-mix(in srgb, var(--accent) 20%, transparent);
}

.btn-outline-lg[b-oubxisew80] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.875rem 1.75rem;
    border-radius: 9999px;
    border: 2px solid var(--border);
    color: var(--text-heading);
    font-weight: 600;
    font-size: 1rem;
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-outline-lg:hover[b-oubxisew80] {
    border-color: color-mix(in srgb, var(--accent) 50%, transparent);
    color: var(--accent);
}

/* Hero Mockup */
.hero-mockup-wrapper[b-oubxisew80] {
    display: none;
}

@media (min-width: 1024px) {
    .hero-mockup-wrapper[b-oubxisew80] {
        display: block;
    }
}

.hero-mockup[b-oubxisew80] {
    border-radius: 1rem;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    padding: 1.5rem;
    box-shadow: 0 0 80px color-mix(in srgb, var(--accent) 15%, transparent), 0 0 160px rgba(34, 211, 238, 0.08);
}

.mockup-header[b-oubxisew80] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.mockup-dots[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.dot[b-oubxisew80] {
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 50%;
}

.dot-red[b-oubxisew80] { background: color-mix(in srgb, var(--danger) 70%, transparent); }
.dot-yellow[b-oubxisew80] { background: rgba(234, 179, 8, 0.7); }
.dot-green[b-oubxisew80] { background: color-mix(in srgb, var(--success) 70%, transparent); }

.mockup-url[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.25rem 0.75rem;
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--bg-primary) 50%, transparent);
    font-size: 0.75rem;
    color: var(--text-muted);
}

.mockup-kpis[b-oubxisew80] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.mockup-kpi[b-oubxisew80] {
    border-radius: 0.75rem;
    background: color-mix(in srgb, var(--bg-primary) 60%, transparent);
    border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
    padding: 0.75rem;
}

.mockup-kpi-label[b-oubxisew80] {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-bottom: 0.25rem;
}

.mockup-kpi-value[b-oubxisew80] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-heading);
}

.mockup-kpi-change[b-oubxisew80] {
    font-size: 0.75rem;
    font-weight: 500;
    margin-top: 0.125rem;
}

.mockup-kpi-change.positive[b-oubxisew80] { color: var(--accent); }
.mockup-kpi-change.cyan[b-oubxisew80] { color: #22d3ee; }
.mockup-kpi-change.negative[b-oubxisew80] { color: var(--danger); }

.mockup-chart[b-oubxisew80] {
    border-radius: 0.75rem;
    background: color-mix(in srgb, var(--bg-primary) 60%, transparent);
    border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
    padding: 1rem;
}

.mockup-chart-header[b-oubxisew80] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
}

.mockup-chart-title[b-oubxisew80] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--text-secondary);
}

.mockup-chart-period[b-oubxisew80] {
    font-size: 0.75rem;
    color: var(--accent);
    font-weight: 500;
}

.mockup-chart-bars[b-oubxisew80] {
    display: flex;
    align-items: flex-end;
    gap: 0.375rem;
    height: 5rem;
}

.mockup-chart-bars .chart-bar[b-oubxisew80] {
    flex: 1;
    background: var(--accent);
    border-radius: 0.25rem 0.25rem 0 0;
}

/* =================================================================
   STATS SECTION
   ================================================================= */

.stats-section[b-oubxisew80] {
    position: relative;
    background: var(--bg-secondary);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    padding: 3.5rem 0;
}

.stats-grid[b-oubxisew80] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
}

@media (min-width: 1024px) {
    .stats-grid[b-oubxisew80] {
        grid-template-columns: repeat(4, 1fr);
        gap: 0;
    }

    .stat-item[b-oubxisew80] {
        border-right: 1px solid var(--border);
    }

    .stat-item:last-child[b-oubxisew80] {
        border-right: none;
    }
}

.stat-item[b-oubxisew80] {
    text-align: center;
    padding: 0 2rem;
}

.stat-number[b-oubxisew80] {
    font-size: 1.875rem;
    font-weight: 800;
    color: var(--text-heading);
    margin-bottom: 0.25rem;
}

@media (min-width: 640px) {
    .stat-number[b-oubxisew80] {
        font-size: 2.25rem;
    }
}

.stat-number.accent[b-oubxisew80] {
    color: var(--accent);
}

.stat-label[b-oubxisew80] {
    font-size: 0.875rem;
    color: var(--text-secondary);
    font-weight: 500;
}

/* =================================================================
   FEATURES SECTION
   ================================================================= */

.features-section[b-oubxisew80] {
    position: relative;
    background: var(--bg-primary);
    padding: 6rem 0;
    overflow: hidden;
}

.features-grid[b-oubxisew80] {
    display: grid;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .features-grid[b-oubxisew80] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .features-grid[b-oubxisew80] {
        grid-template-columns: repeat(3, 1fr);
    }
}

.feature-card[b-oubxisew80] {
    border-radius: 1rem;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    padding: 1.75rem;
}

.feature-icon[b-oubxisew80] {
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
}

.icon-green[b-oubxisew80] {
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    color: var(--accent);
}

.icon-cyan[b-oubxisew80] {
    background: rgba(34, 211, 238, 0.1);
    color: #22d3ee;
}

.feature-title[b-oubxisew80] {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--text-heading);
    margin-bottom: 0.5rem;
}

.feature-desc[b-oubxisew80] {
    font-size: 0.875rem;
    color: var(--text-secondary);
    line-height: 1.7;
}

/* =================================================================
   HOW IT WORKS SECTION
   ================================================================= */

.howit-section[b-oubxisew80] {
    position: relative;
    background: var(--bg-secondary);
    padding: 6rem 0;
    overflow: hidden;
}

.steps-wrapper[b-oubxisew80] {
    position: relative;
}

.step-line[b-oubxisew80] {
    display: none;
}

@media (min-width: 1024px) {
    .step-line[b-oubxisew80] {
        display: block;
        position: absolute;
        top: 1.75rem;
        left: 50%;
        transform: translateX(-50%);
        width: 66%;
        height: 2px;
        background: linear-gradient(90deg, var(--accent) 0%, #22d3ee 100%);
        opacity: 0.3;
        mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
        -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
    }
}

.steps-grid[b-oubxisew80] {
    display: grid;
    gap: 3rem;
}

@media (min-width: 1024px) {
    .steps-grid[b-oubxisew80] {
        grid-template-columns: repeat(3, 1fr);
        gap: 2rem;
    }
}

.step-item[b-oubxisew80] {
    text-align: center;
    position: relative;
}

.step-number[b-oubxisew80] {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background: var(--accent);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    font-weight: 800;
    margin: 0 auto 1.5rem;
    position: relative;
    z-index: 10;
    box-shadow: 0 4px 16px color-mix(in srgb, var(--accent) 20%, transparent);
}

.step-title[b-oubxisew80] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-heading);
    margin-bottom: 0.75rem;
}

.step-desc[b-oubxisew80] {
    color: var(--text-secondary);
    max-width: 20rem;
    margin: 0 auto;
    line-height: 1.6;
}

/* =================================================================
   PRICING SECTION
   ================================================================= */

.pricing-section[b-oubxisew80] {
    position: relative;
    background: var(--bg-primary);
    padding: 6rem 0;
    overflow: hidden;
}

.pricing-glow[b-oubxisew80] {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 600px;
    height: 300px;
    background: color-mix(in srgb, var(--accent) 5%, transparent);
    filter: blur(120px);
    border-radius: 50%;
    pointer-events: none;
}

.pricing-container[b-oubxisew80] {
    position: relative;
    z-index: 10;
}

.pricing-grid[b-oubxisew80] {
    display: grid;
    gap: 2rem;
    max-width: 64rem;
    margin: 0 auto;
    align-items: start;
}

@media (min-width: 1024px) {
    .pricing-grid[b-oubxisew80] {
        grid-template-columns: repeat(3, 1fr);
    }
}

.pricing-card[b-oubxisew80] {
    border-radius: 1rem;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    padding: 2rem;
}

.pricing-popular[b-oubxisew80] {
    border: 2px solid var(--accent);
    position: relative;
}

.pricing-popular[b-oubxisew80]::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: 1.125rem;
    background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 15%, transparent), rgba(34, 211, 238, 0.08));
    z-index: -1;
}

@media (min-width: 1024px) {
    .pricing-popular[b-oubxisew80] {
        transform: scale(1.05);
        margin-top: -0.5rem;
        margin-bottom: -0.5rem;
    }
}

.pricing-card-header-popular[b-oubxisew80] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

.pricing-name[b-oubxisew80] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-heading);
}

.pricing-badge[b-oubxisew80] {
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    color: var(--accent);
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.pricing-price[b-oubxisew80] {
    display: flex;
    align-items: baseline;
    gap: 0.25rem;
    margin-bottom: 0.5rem;
}

.pricing-currency[b-oubxisew80] {
    font-size: 0.875rem;
    color: var(--text-secondary);
    font-weight: 500;
}

.pricing-amount[b-oubxisew80] {
    font-size: 2.25rem;
    font-weight: 800;
    color: var(--text-heading);
}

.pricing-period[b-oubxisew80] {
    font-size: 0.875rem;
    color: var(--text-secondary);
    font-weight: 500;
}

.pricing-desc[b-oubxisew80] {
    font-size: 0.875rem;
    color: var(--text-secondary);
    margin-top: 0.5rem;
    margin-bottom: 2rem;
}

.pricing-features[b-oubxisew80] {
    list-style: none;
    padding: 0;
    margin: 0 0 2rem;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.pricing-feature-item[b-oubxisew80] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.875rem;
    color: var(--text-primary);
}

[b-oubxisew80] .check-icon {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--accent);
    flex-shrink: 0;
    margin-top: 0.125rem;
}

.btn-pricing-primary[b-oubxisew80] {
    display: block;
    width: 100%;
    text-align: center;
    padding: 0.875rem;
    /* Também é usado num <button> (form da demo). Sem o reset, a borda default
       do botão aparecia como um anel escuro — invisível no tema escuro antigo. */
    border: none;
    cursor: pointer;
    font-family: inherit;
    border-radius: 0.75rem;
    background: var(--accent);
    color: #ffffff;
    font-weight: 700;
    font-size: 0.875rem;
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-pricing-primary:hover[b-oubxisew80] {
    background: var(--accent-hover);
    box-shadow: 0 8px 24px color-mix(in srgb, var(--accent) 20%, transparent);
}

.btn-pricing-outline[b-oubxisew80] {
    display: block;
    width: 100%;
    text-align: center;
    padding: 0.875rem;
    border-radius: 0.75rem;
    border: 2px solid var(--border);
    color: var(--text-heading);
    font-weight: 600;
    font-size: 0.875rem;
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-pricing-outline:hover[b-oubxisew80] {
    border-color: var(--accent);
    color: var(--accent);
}

/* =================================================================
   TESTIMONIALS SECTION
   ================================================================= */

.testimonials-section[b-oubxisew80] {
    position: relative;
    background: var(--bg-secondary);
    padding: 6rem 0;
    overflow: hidden;
}

.testimonials-grid[b-oubxisew80] {
    display: grid;
    gap: 2rem;
}

@media (min-width: 768px) {
    .testimonials-grid[b-oubxisew80] {
        grid-template-columns: repeat(3, 1fr);
    }
}

.testimonial-card[b-oubxisew80] {
    border-radius: 1rem;
    background: var(--bg-primary);
    border: 1px solid var(--border);
    padding: 1.75rem;
}

.stars-row[b-oubxisew80] {
    display: flex;
    gap: 0.25rem;
    margin-bottom: 1rem;
}

.star-icon[b-oubxisew80] {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--accent);
}

.testimonial-text[b-oubxisew80] {
    color: var(--text-primary);
    font-size: 0.875rem;
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.testimonial-author[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.author-avatar[b-oubxisew80] {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.875rem;
    /* As três variantes (.green-cyan/.cyan-blue/.purple-green) são gradientes
       saturados — as iniciais ficam brancas em qualquer tema. */
    color: #ffffff;
}

.author-avatar.green-cyan[b-oubxisew80] {
    background: linear-gradient(135deg, var(--accent), #22d3ee);
    color: #ffffff;
}

.author-avatar.cyan-blue[b-oubxisew80] {
    background: linear-gradient(135deg, #22d3ee, #3b82f6);
}

.author-avatar.purple-green[b-oubxisew80] {
    background: linear-gradient(135deg, #a855f7, var(--accent));
}

.author-name[b-oubxisew80] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-heading);
}

.author-role[b-oubxisew80] {
    font-size: 0.75rem;
    color: var(--text-muted);
}

/* =================================================================
   CTA SECTION
   ================================================================= */

.cta-section[b-oubxisew80] {
    position: relative;
    background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-primary) 40%, var(--bg-card) 60%, var(--bg-secondary) 100%);
    padding: 6rem 0;
    overflow: hidden;
}

.cta-bg-effect[b-oubxisew80] {
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(ellipse at 30% 50%, color-mix(in srgb, var(--accent) 6%, transparent) 0%, transparent 50%),
                radial-gradient(ellipse at 70% 50%, rgba(34, 211, 238, 0.04) 0%, transparent 50%);
    pointer-events: none;
}

.cta-container[b-oubxisew80] {
    text-align: center;
    position: relative;
    z-index: 10;
    max-width: 56rem;
}

.cta-title[b-oubxisew80] {
    font-size: 1.875rem;
    font-weight: 800;
    color: var(--text-heading);
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

@media (min-width: 640px) {
    .cta-title[b-oubxisew80] {
        font-size: 2.25rem;
    }
}

@media (min-width: 1024px) {
    .cta-title[b-oubxisew80] {
        font-size: 3rem;
    }
}

.cta-subtitle[b-oubxisew80] {
    font-size: 1.125rem;
    color: var(--text-secondary);
    margin-bottom: 2.5rem;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
}

.btn-cta[b-oubxisew80] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem 2rem;
    background: var(--accent);
    color: #ffffff;
    font-weight: 700;
    font-size: 1.125rem;
    border-radius: 9999px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-cta:hover[b-oubxisew80] {
    background: var(--accent-hover);
    box-shadow: 0 12px 32px color-mix(in srgb, var(--accent) 25%, transparent);
}

.cta-note[b-oubxisew80] {
    font-size: 0.875rem;
    color: var(--text-muted);
    margin-top: 1rem;
}

/* =================================================================
   FOOTER
   ================================================================= */

.landing-footer[b-oubxisew80] {
    background: var(--bg-primary);
    border-top: 1px solid var(--border);
    padding: 4rem 0 0;
}

.footer-grid[b-oubxisew80] {
    display: grid;
    gap: 2.5rem;
}

@media (min-width: 640px) {
    .footer-grid[b-oubxisew80] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .footer-grid[b-oubxisew80] {
        grid-template-columns: 1.5fr 1fr 1fr 1fr;
        gap: 2rem;
    }
}

.footer-brand[b-oubxisew80] {
    grid-column: span 1;
}

@media (min-width: 640px) {
    .footer-brand[b-oubxisew80] {
        grid-column: span 2;
    }
}

@media (min-width: 1024px) {
    .footer-brand[b-oubxisew80] {
        grid-column: span 1;
    }
}

.footer-brand .logo-link[b-oubxisew80] {
    margin-bottom: 1rem;
}

.footer-desc[b-oubxisew80] {
    font-size: 0.875rem;
    color: var(--text-secondary);
    line-height: 1.7;
    margin-bottom: 1.5rem;
    max-width: 20rem;
}

.footer-social[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.social-icon[b-oubxisew80] {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    text-decoration: none;
    transition: all 0.3s ease;
}

.social-icon:hover[b-oubxisew80] {
    color: var(--accent);
    border-color: color-mix(in srgb, var(--accent) 30%, transparent);
}

.footer-col-title[b-oubxisew80] {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--text-heading);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 1rem;
}

.footer-links[b-oubxisew80] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.footer-links a[b-oubxisew80] {
    font-size: 0.875rem;
    color: var(--text-secondary);
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-links a:hover[b-oubxisew80] {
    color: var(--accent);
}

.footer-bottom[b-oubxisew80] {
    margin-top: 3rem;
    padding: 2rem 0;
    border-top: 1px solid var(--border);
    text-align: center;
}

.footer-bottom p[b-oubxisew80] {
    font-size: 0.875rem;
    color: var(--text-muted);
}

/* =================================================================
   DEMO FORM
   ================================================================= */

.demo-form-wrapper[b-oubxisew80] {
    max-width: 800px;
    margin: 0 auto;
}

.demo-card[b-oubxisew80] {
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 2rem;
}

.demo-form-grid[b-oubxisew80] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

.demo-info[b-oubxisew80] {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.demo-fields .form-input[b-oubxisew80] {
    width: 100%;
    padding: 10px 14px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 8px;
    color: var(--text-primary);
    font-size: 0.9rem;
    /* O <textarea> da mensagem não herda a fonte do body — sem isto ele cai no
       monospace default do navegador e destoa dos outros campos. */
    font-family: inherit;
    transition: border-color 0.2s;
}

.demo-fields .form-input:focus[b-oubxisew80] {
    outline: none;
    border-color: var(--accent);
}

.demo-fields textarea.form-input[b-oubxisew80] {
    resize: vertical;
    min-height: 60px;
}

.demo-sucesso[b-oubxisew80] {
    text-align: center;
    padding: 2rem;
}

.demo-sucesso svg[b-oubxisew80] {
    color: var(--accent);
}

@media (max-width: 768px) {
    .demo-form-grid[b-oubxisew80] {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .demo-info[b-oubxisew80] {
        order: 2;
    }

    .demo-fields[b-oubxisew80] {
        order: 1;
    }
}

/* =================================================================
   WORKFLOW SECTIONS
   ================================================================= */

/* Scroll reveal animations */
.scroll-reveal[b-oubxisew80] {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.scroll-reveal.scroll-reveal-delay[b-oubxisew80] {
    transition-delay: 0.25s;
}

.scroll-reveal.scroll-visible[b-oubxisew80] {
    opacity: 1;
    transform: translateY(0);
}

/* File/item stagger animation (plays when parent becomes visible) */
@keyframes fileSlideIn-b-oubxisew80 {
    from { opacity: 0; transform: translateX(-20px); }
    to { opacity: 1; transform: translateX(0); }
}

.mock-file-animate[b-oubxisew80] {
    opacity: 0;
}

.scroll-visible .mock-file-animate[b-oubxisew80] {
    animation: fileSlideIn-b-oubxisew80 0.5s ease-out forwards;
}

/* Spinner animation */
@keyframes spin-b-oubxisew80 {
    to { transform: rotate(360deg); }
}

.mock-spinner[b-oubxisew80] {
    width: 14px;
    height: 14px;
    border: 2px solid color-mix(in srgb, var(--accent) 20%, transparent);
    border-top-color: var(--accent);
    border-radius: 50%;
    animation: spin-b-oubxisew80 0.8s linear infinite;
}

/* Section layouts */
.workflow-section[b-oubxisew80] {
    position: relative;
    background: var(--bg-primary);
    padding: 6rem 0;
    overflow: hidden;
}

.workflow-section-alt[b-oubxisew80] {
    background: var(--bg-secondary);
}

.workflow-grid[b-oubxisew80] {
    display: grid;
    gap: 3rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .workflow-grid[b-oubxisew80] {
        grid-template-columns: 1fr 1.1fr;
        gap: 4rem;
    }
}

@media (min-width: 1024px) {
    .workflow-grid-reverse[b-oubxisew80] {
        grid-template-columns: 1.1fr 1fr;
    }

    .workflow-grid-reverse .workflow-text[b-oubxisew80] {
        order: 2;
    }

    .workflow-grid-reverse .workflow-mockup-wrapper[b-oubxisew80] {
        order: 1;
    }
}

/* Text block */
.workflow-step-badge[b-oubxisew80] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0.9rem;
    border-radius: 9999px;
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
    color: var(--accent);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 1.25rem;
}

.badge-cyan[b-oubxisew80] {
    background: rgba(34, 211, 238, 0.1);
    border-color: rgba(34, 211, 238, 0.2);
    color: #22d3ee;
}

.workflow-step-num[b-oubxisew80] {
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: var(--accent);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 800;
}

.step-num-cyan[b-oubxisew80] {
    background: #22d3ee;
}

.workflow-title[b-oubxisew80] {
    font-size: 1.875rem;
    font-weight: 800;
    color: var(--text-heading);
    line-height: 1.2;
    margin-bottom: 1rem;
}

@media (min-width: 640px) {
    .workflow-title[b-oubxisew80] {
        font-size: 2.25rem;
    }
}

[b-oubxisew80] .text-cyan {
    color: #22d3ee;
}

.workflow-desc[b-oubxisew80] {
    font-size: 1.05rem;
    color: var(--text-secondary);
    line-height: 1.7;
    margin-bottom: 1.5rem;
    max-width: 30rem;
}

.workflow-features[b-oubxisew80] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.workflow-features li[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    font-size: 0.9rem;
    color: var(--text-primary);
}

.workflow-features li svg[b-oubxisew80] {
    color: var(--accent);
    flex-shrink: 0;
}

/* Workflow Mockup */
.workflow-mockup-wrapper[b-oubxisew80] {
    perspective: 1200px;
}

.workflow-mockup[b-oubxisew80] {
    border-radius: 1rem;
    background: var(--bg-secondary);
    border: 1px solid var(--border);
    padding: 1.25rem;
    box-shadow: 0 0 60px color-mix(in srgb, var(--accent) 8%, transparent), 0 0 120px color-mix(in srgb, var(--accent) 4%, transparent);
    transition: transform 0.4s ease;
}

.workflow-section-alt .workflow-mockup:not(.mockup-cyan-glow)[b-oubxisew80] {
    background: var(--bg-primary);
}

.mockup-cyan-glow[b-oubxisew80] {
    box-shadow: 0 0 60px rgba(34, 211, 238, 0.08), 0 0 120px rgba(34, 211, 238, 0.04);
}

/* ── Violet / AI Theme ── */
.badge-violet[b-oubxisew80] {
    background: rgba(167, 139, 250, 0.1);
    border-color: rgba(167, 139, 250, 0.2);
    color: #a78bfa;
}

.step-num-violet[b-oubxisew80] {
    background: #a78bfa;
}

[b-oubxisew80] .text-violet {
    color: #a78bfa;
}

.mockup-violet-glow[b-oubxisew80] {
    box-shadow: 0 0 60px rgba(167, 139, 250, 0.08), 0 0 120px rgba(167, 139, 250, 0.04);
}

.workflow-features-violet li svg[b-oubxisew80] {
    color: #a78bfa;
}

/* ── Mock AI Report ── */
.mock-ai-header[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.75rem;
    border-radius: 0.5rem;
    background: rgba(167, 139, 250, 0.06);
    border: 1px solid rgba(167, 139, 250, 0.15);
    margin-bottom: 0.875rem;
}

.mock-ai-icon[b-oubxisew80] {
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    background: rgba(167, 139, 250, 0.15);
    color: #a78bfa;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.mock-ai-title[b-oubxisew80] {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--text-heading);
    flex: 1;
}

.mock-ai-badge[b-oubxisew80] {
    font-size: 0.65rem;
    padding: 0.2rem 0.5rem;
    border-radius: 9999px;
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    color: var(--accent);
    font-weight: 600;
}

.mock-ai-content[b-oubxisew80] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.mock-ai-section[b-oubxisew80] {
    padding: 0.625rem 0.75rem;
    border-radius: 0.5rem;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.mock-ai-section-title[b-oubxisew80] {
    font-size: 0.7rem;
    font-weight: 700;
    color: #a78bfa;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 0.375rem;
}

.mock-ai-text[b-oubxisew80] {
    font-size: 0.75rem;
    color: var(--text-secondary);
    line-height: 1.6;
}

.mock-ai-savings[b-oubxisew80] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.mock-ai-savings-item[b-oubxisew80] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.75rem;
    padding: 0.375rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.mock-ai-savings-item:last-child[b-oubxisew80] {
    border-bottom: none;
}

.mock-export-btn-violet[b-oubxisew80] {
    border-color: rgba(167, 139, 250, 0.2);
    color: #a78bfa;
}

.mock-export-btn-violet:hover[b-oubxisew80] {
    background: rgba(167, 139, 250, 0.1);
    border-color: rgba(167, 139, 250, 0.3);
}

/* ── Mock Upload Area ── */
.mock-upload-area[b-oubxisew80] {
    border: 2px dashed color-mix(in srgb, var(--accent) 25%, transparent);
    border-radius: 0.75rem;
    padding: 1.5rem;
    text-align: center;
    margin-bottom: 1rem;
    background: color-mix(in srgb, var(--accent) 3%, transparent);
    transition: border-color 0.3s, background 0.3s;
}

.mock-upload-text[b-oubxisew80] {
    color: var(--text-secondary);
    font-size: 0.85rem;
    font-weight: 500;
    margin-top: 0.5rem;
}

.mock-upload-hint[b-oubxisew80] {
    color: var(--text-muted);
    font-size: 0.75rem;
    margin-top: 0.25rem;
}

/* ── Mock File List ── */
.mock-file-list[b-oubxisew80] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.mock-file-item[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.75rem;
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--bg-primary) 60%, transparent);
    border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}

.mock-file-icon[b-oubxisew80] {
    width: 2rem;
    height: 2rem;
    border-radius: 0.375rem;
    background: color-mix(in srgb, var(--accent) 8%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
    flex-shrink: 0;
}

.mock-file-info[b-oubxisew80] {
    flex: 1;
    min-width: 0;
}

.mock-file-name[b-oubxisew80] {
    font-size: 0.8rem;
    color: var(--text-heading);
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mock-file-meta[b-oubxisew80] {
    font-size: 0.7rem;
    color: var(--text-muted);
}

.mock-file-status[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.7rem;
    font-weight: 600;
    flex-shrink: 0;
}

.status-success[b-oubxisew80] {
    color: var(--accent);
}

.status-processing[b-oubxisew80] {
    color: var(--accent);
}

/* ── Mock Audit ── */
.mock-audit-summary[b-oubxisew80] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.mock-audit-stat[b-oubxisew80] {
    text-align: center;
    padding: 0.65rem;
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--bg-primary) 60%, transparent);
    border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}

.mock-audit-stat-value[b-oubxisew80] {
    font-size: 1.5rem;
    font-weight: 800;
}

.mock-audit-stat-label[b-oubxisew80] {
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-top: 0.125rem;
}

.mock-audit-list[b-oubxisew80] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.mock-audit-item[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.6rem 0.75rem;
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--bg-primary) 60%, transparent);
    border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}

.mock-audit-severity[b-oubxisew80] {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.severity-warning[b-oubxisew80] {
    background: color-mix(in srgb, var(--warning) 15%, transparent);
    color: var(--warning);
}

.severity-error[b-oubxisew80] {
    background: color-mix(in srgb, var(--danger) 15%, transparent);
    color: var(--danger);
}

.severity-success[b-oubxisew80] {
    background: color-mix(in srgb, var(--accent) 15%, transparent);
    color: var(--accent);
}

.mock-audit-info[b-oubxisew80] {
    flex: 1;
    min-width: 0;
}

.mock-audit-rule[b-oubxisew80] {
    font-size: 0.8rem;
    color: var(--text-heading);
    font-weight: 500;
}

.mock-audit-detail[b-oubxisew80] {
    font-size: 0.7rem;
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mock-audit-tag[b-oubxisew80] {
    font-size: 0.65rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    border-radius: 9999px;
    flex-shrink: 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.tag-warning[b-oubxisew80] {
    background: color-mix(in srgb, var(--warning) 12%, transparent);
    color: var(--warning);
}

.tag-error[b-oubxisew80] {
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
}

.tag-success[b-oubxisew80] {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    color: var(--accent);
}

/* ── Mock Table (Fretes) ── */
.mock-table[b-oubxisew80] {
    border-radius: 0.5rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}

.mock-table-header[b-oubxisew80] {
    display: flex;
    padding: 0.6rem 0.75rem;
    background: color-mix(in srgb, var(--bg-primary) 80%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}

.mock-th[b-oubxisew80] {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.mock-table-row[b-oubxisew80] {
    display: flex;
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid color-mix(in srgb, var(--border) 30%, transparent);
    transition: background 0.2s;
}

.mock-table-row:last-child[b-oubxisew80] {
    border-bottom: none;
}

.mock-td[b-oubxisew80] {
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.mock-status-pill[b-oubxisew80] {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem;
    border-radius: 9999px;
}

.pill-green[b-oubxisew80] {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    color: var(--accent);
}

.pill-blue[b-oubxisew80] {
    background: color-mix(in srgb, var(--info) 12%, transparent);
    color: var(--info);
}

.pill-yellow[b-oubxisew80] {
    background: color-mix(in srgb, var(--warning) 12%, transparent);
    color: var(--warning);
}

/* ── Mock Reports/Dashboard ── */
.mock-report-kpis[b-oubxisew80] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.mock-report-kpi[b-oubxisew80] {
    padding: 0.75rem;
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--bg-primary) 60%, transparent);
    border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
}

.mock-report-kpi-label[b-oubxisew80] {
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-bottom: 0.25rem;
}

.mock-report-kpi-value[b-oubxisew80] {
    font-size: 1.25rem;
    font-weight: 800;
    color: var(--text-heading);
    margin-bottom: 0.5rem;
}

.mock-report-kpi-bar[b-oubxisew80] {
    height: 4px;
    border-radius: 4px;
    background: color-mix(in srgb, var(--border) 50%, transparent);
    overflow: hidden;
}

.mock-report-kpi-fill[b-oubxisew80] {
    height: 100%;
    border-radius: 4px;
    background: #22d3ee;
    transition: width 1.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.mock-report-kpi-fill.fill-green[b-oubxisew80] {
    background: var(--accent);
}

.mock-report-chart[b-oubxisew80] {
    padding: 0.75rem;
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--bg-primary) 60%, transparent);
    border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
    margin-bottom: 0.75rem;
}

.mock-chart-label[b-oubxisew80] {
    font-size: 0.75rem;
    color: var(--text-secondary);
    font-weight: 500;
    margin-bottom: 0.75rem;
}

.mock-bar-chart[b-oubxisew80] {
    display: flex;
    align-items: flex-end;
    gap: 0.5rem;
    height: 6rem;
}

.mock-bar-group[b-oubxisew80] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    height: 100%;
}

.mock-bar-col[b-oubxisew80] {
    flex: 1;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 2px;
}

.mock-bar[b-oubxisew80] {
    width: 100%;
    border-radius: 3px 3px 0 0;
    transform-origin: bottom;
}

.scroll-visible .mock-bar[b-oubxisew80] {
    animation: chartGrow-b-oubxisew80 0.8s ease-out forwards;
}

.bar-green[b-oubxisew80] {
    background: var(--accent);
}

.bar-cyan[b-oubxisew80] {
    background: #22d3ee;
    opacity: 0.7;
}

.mock-bar-label[b-oubxisew80] {
    font-size: 0.65rem;
    color: var(--text-muted);
}

.mock-export-row[b-oubxisew80] {
    display: flex;
    gap: 0.5rem;
}

.mock-export-btn[b-oubxisew80] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.5rem;
    border-radius: 0.375rem;
    background: color-mix(in srgb, var(--bg-primary) 60%, transparent);
    border: 1px solid color-mix(in srgb, var(--border) 50%, transparent);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: default;
    transition: border-color 0.3s, color 0.3s;
}

.mock-export-btn:hover[b-oubxisew80] {
    border-color: color-mix(in srgb, var(--accent) 30%, transparent);
    color: var(--accent);
}

/* ── Mock Validation (Tabela de Preço) ── */
.mock-validation-header[b-oubxisew80] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.75rem;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.mock-validation-title[b-oubxisew80] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-heading);
}

.mock-validation-badge[b-oubxisew80] {
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.2rem 0.6rem;
    border-radius: 9999px;
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
}

.mock-row-highlight[b-oubxisew80] {
    background: color-mix(in srgb, var(--danger) 4%, transparent);
    border-left: 2px solid var(--danger);
}

.mock-td-alert[b-oubxisew80] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--danger) !important;
    font-weight: 600 !important;
}

.pill-red[b-oubxisew80] {
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
}

.mock-validation-footer[b-oubxisew80] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 0.75rem;
    padding: 0.65rem 0.75rem;
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--danger) 6%, transparent);
    border: 1px solid color-mix(in srgb, var(--danger) 15%, transparent);
}

.mock-validation-total-label[b-oubxisew80] {
    font-size: 0.8rem;
    color: var(--text-secondary);
    font-weight: 500;
}

.mock-validation-total-value[b-oubxisew80] {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--danger);
}

/* ── Mobile responsive for workflow sections ── */
@media (max-width: 1023px) {
    .workflow-section[b-oubxisew80] {
        padding: 4rem 0;
    }

    .workflow-grid-reverse .workflow-text[b-oubxisew80],
    .workflow-grid-reverse .workflow-mockup-wrapper[b-oubxisew80] {
        order: unset;
    }

    .workflow-title[b-oubxisew80] {
        font-size: 1.5rem;
    }

    .mock-audit-detail[b-oubxisew80],
    .mock-file-name[b-oubxisew80] {
        max-width: 140px;
    }
}

/* =================================================================
   SCROLL BEHAVIOR
   ================================================================= */

html[b-oubxisew80] {
    scroll-behavior: smooth;
}

/* =================================================================
   SCROLLBAR (global via ::deep)
   ================================================================= */

[b-oubxisew80] ::-webkit-scrollbar {
    width: 8px;
}

[b-oubxisew80] ::-webkit-scrollbar-track {
    background: var(--bg-primary);
}

[b-oubxisew80] ::-webkit-scrollbar-thumb {
    background: var(--border);
    border-radius: 4px;
}

[b-oubxisew80] ::-webkit-scrollbar-thumb:hover {
    background: var(--accent);
}
/* /Components/Shared/InfoCalculo.razor.rz.scp.css */
.info-calculo-container[b-dyyzsxqmdb] {
    display: inline-flex;
}

.info-calculo-btn[b-dyyzsxqmdb] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    color: var(--accent);
    border: 1px solid color-mix(in srgb, var(--accent) 20%, transparent);
    border-radius: 8px;
    font-size: 12px;
    font-family: var(--font-family);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
}

.info-calculo-btn:hover[b-dyyzsxqmdb] {
    background: color-mix(in srgb, var(--accent) 20%, transparent);
    border-color: color-mix(in srgb, var(--accent) 40%, transparent);
}

/* Modal Overlay */
.info-calculo-overlay[b-dyyzsxqmdb] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    animation: fadeIn-b-dyyzsxqmdb 0.15s ease;
}

@keyframes fadeIn-b-dyyzsxqmdb { from { opacity: 0; } to { opacity: 1; } }

.info-calculo-modal[b-dyyzsxqmdb] {
    background: var(--bg-card, var(--bg-card));
    border: 1px solid var(--border, var(--border));
    border-radius: 16px;
    width: 90%;
    max-width: 600px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
    animation: slideUp-b-dyyzsxqmdb 0.2s ease;
}

@keyframes slideUp-b-dyyzsxqmdb { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

.info-calculo-header[b-dyyzsxqmdb] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border, var(--border));
    color: var(--accent);
}

.info-calculo-header h3[b-dyyzsxqmdb] {
    flex: 1;
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-heading, var(--bg-hover));
}

.info-calculo-close[b-dyyzsxqmdb] {
    background: none;
    border: none;
    color: var(--text-muted, #666);
    cursor: pointer;
    padding: 4px;
    border-radius: 6px;
    transition: all 0.2s ease;
}

.info-calculo-close:hover[b-dyyzsxqmdb] {
    background: color-mix(in srgb, var(--danger) 15%, transparent);
    color: var(--danger);
}

.info-calculo-body[b-dyyzsxqmdb] {
    padding: 16px 20px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.info-calculo-campo[b-dyyzsxqmdb] {
    background: var(--bg-secondary, #12121e);
    border: 1px solid var(--border, var(--border));
    border-radius: 10px;
    padding: 14px;
}

.info-calculo-campo-nome[b-dyyzsxqmdb] {
    font-size: 13px;
    font-weight: 600;
    color: var(--accent);
    margin-bottom: 6px;
}

.info-calculo-campo-formula[b-dyyzsxqmdb] {
    font-family: 'Courier New', monospace;
    font-size: 13px;
    color: var(--text-heading, var(--bg-hover));
    background: rgba(0, 0, 0, 0.3);
    padding: 8px 12px;
    border-radius: 6px;
    margin-bottom: 8px;
    line-height: 1.5;
}

.info-calculo-campo-origem[b-dyyzsxqmdb],
.info-calculo-campo-condicao[b-dyyzsxqmdb] {
    font-size: 12px;
    color: var(--text-secondary, #999);
    margin-top: 4px;
    line-height: 1.4;
}

.info-calculo-tag[b-dyyzsxqmdb] {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background: color-mix(in srgb, var(--info) 15%, transparent);
    color: var(--info);
    margin-right: 4px;
}

.tag-condicao[b-dyyzsxqmdb] {
    background: color-mix(in srgb, var(--warning) 15%, transparent);
    color: var(--warning);
}

.info-calculo-footer[b-dyyzsxqmdb] {
    padding: 12px 20px;
    border-top: 1px solid var(--border, var(--border));
    display: flex;
    justify-content: flex-end;
}

.info-calculo-btn-fechar[b-dyyzsxqmdb] {
    padding: 8px 20px;
    background: var(--accent);
    color: #ffffff;
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    font-family: var(--font-family);
    cursor: pointer;
    transition: all 0.2s ease;
}

.info-calculo-btn-fechar:hover[b-dyyzsxqmdb] {
    background: var(--accent-hover);
}
/* /Components/Shared/KpiCard.razor.rz.scp.css */
.kpi-card[b-pockq38qyl] {
    display: flex;
    align-items: center;
    gap: 16px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 20px 24px;
    position: relative;
}

.kpi-icon[b-pockq38qyl] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 10px;
}

.kpi-icon :deep(svg)[b-pockq38qyl] {
    width: 18px;
    height: 18px;
}

.kpi-info[b-pockq38qyl] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.kpi-label[b-pockq38qyl] {
    font-size: 13px;
    color: var(--text-secondary);
    font-weight: 500;
}

.kpi-value[b-pockq38qyl] {
    font-size: 24px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
}

.kpi-subtitle[b-pockq38qyl] {
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 400;
}

.kpi-change[b-pockq38qyl] {
    font-size: 12px;
    font-weight: 600;
}

.kpi-change.positiva[b-pockq38qyl] {
    color: var(--accent);
}

.kpi-change.negativa[b-pockq38qyl] {
    color: var(--danger);
}

/* Info Button */
.kpi-info-btn[b-pockq38qyl] {
    position: absolute;
    top: 8px;
    right: 8px;
    background: rgba(255, 255, 255, 0.1);
    border: none;
    color: var(--text-secondary);
    cursor: pointer;
    padding: 4px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    z-index: 1;
}

.kpi-info-btn:hover[b-pockq38qyl] {
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.2);
}

/* Engrenagem Button (Admin Geral only) */
.kpi-engrenagem-btn[b-pockq38qyl] {
    position: absolute;
    top: 8px;
    right: 32px;
    background: color-mix(in srgb, var(--accent) 15%, transparent);
    border: none;
    color: var(--accent);
    cursor: pointer;
    padding: 4px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
    z-index: 1;
}

.kpi-engrenagem-btn:hover[b-pockq38qyl] {
    color: var(--accent-hover);
    background: color-mix(in srgb, var(--accent) 30%, transparent);
}

/* Modal Overlay */
.kpi-modal-overlay[b-pockq38qyl] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10000;
    animation: fadeIn-b-pockq38qyl 0.2s ease;
}

@keyframes fadeIn-b-pockq38qyl {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slideUp-b-pockq38qyl {
    from { opacity: 0; transform: translateY(20px) scale(0.95); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Modal */
.kpi-modal[b-pockq38qyl] {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    width: 420px;
    max-width: 90vw;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
    animation: slideUp-b-pockq38qyl 0.25s ease;
    overflow: hidden;
}

.kpi-modal-header[b-pockq38qyl] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--border);
}

.kpi-modal-header-icon[b-pockq38qyl] {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.kpi-modal-header h3[b-pockq38qyl] {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--text-heading);
    flex: 1;
}

.kpi-modal-close[b-pockq38qyl] {
    background: transparent;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    padding: 6px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.kpi-modal-close:hover[b-pockq38qyl] {
    background: var(--bg-secondary);
    color: var(--text-primary);
}

.kpi-modal-body[b-pockq38qyl] {
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.kpi-modal-section-label[b-pockq38qyl] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-muted);
    margin-bottom: 8px;
}

.kpi-modal-formula-box[b-pockq38qyl] {
    background: rgba(129, 140, 248, 0.08);
    border: 1px solid rgba(129, 140, 248, 0.2);
    border-radius: 10px;
    padding: 12px 16px;
    font-size: 14px;
    color: var(--text-heading);
    font-weight: 500;
}

.kpi-modal-exemplo-box[b-pockq38qyl] {
    background: color-mix(in srgb, var(--warning) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--warning) 20%, transparent);
    border-radius: 10px;
    padding: 12px 16px;
    font-size: 14px;
    color: var(--text-heading);
    font-weight: 500;
}

.kpi-modal-descricao[b-pockq38qyl] {
    margin: 0;
    font-size: 14px;
    color: var(--text-secondary);
    line-height: 1.6;
}

.kpi-modal-footer[b-pockq38qyl] {
    padding: 16px 24px 20px;
    display: flex;
    justify-content: flex-end;
}

.kpi-modal-btn-entendi[b-pockq38qyl] {
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: 10px 28px;
    font-size: 14px;
    font-weight: 600;
    font-family: var(--font-family);
    cursor: pointer;
    transition: all 0.2s ease;
}

.kpi-modal-btn-entendi:hover[b-pockq38qyl] {
    filter: brightness(1.15);
    transform: translateY(-1px);
}
