/* /Components/Atualizacao/FaixaDeAtualizacao.razor.rz.scp.css */
/* Faixa de atualização em Bens (D2/D9): estado persistente enquanto houver versão em
   espera e a sessão não tiver dispensado com "Depois". Cor por significado — azul
   informativo quando apto, âmbar quando há capturas pendentes bloqueando a atualização. */
.faixa-atualizacao[b-vwvlpfy382] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 8px 16px 0;
    padding: 10px 12px;
    border: 1px solid var(--color-border, #E5E7EB);
    border-left-width: 4px;
    border-radius: 10px;
    background: var(--color-surface, #FFFFFF);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.faixa-atualizacao--info[b-vwvlpfy382] {
    border-left-color: var(--color-info, #3B82F6);
}

.faixa-atualizacao--bloqueio[b-vwvlpfy382] {
    border-left-color: var(--color-warning, #F59E0B);
}

.faixa-atualizacao-icon[b-vwvlpfy382] {
    font-family: var(--font-icons, "Material Symbols Outlined");
    font-size: 22px;
    line-height: 1;
    flex-shrink: 0;
    color: var(--color-text-secondary, #6B7280);
}

.faixa-atualizacao-texto[b-vwvlpfy382] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.faixa-atualizacao-texto strong[b-vwvlpfy382] {
    font-size: 14px;
    line-height: 1.3;
    color: var(--color-text, #111827);
}

.faixa-atualizacao-texto span[b-vwvlpfy382] {
    font-size: 12px;
    line-height: 1.4;
    color: var(--color-text-secondary, #6B7280);
}

.faixa-atualizacao-botao[b-vwvlpfy382] {
    flex-shrink: 0;
    padding: 6px 10px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.faixa-atualizacao-botao--ver[b-vwvlpfy382] {
    border: 1px solid var(--color-primary, #4F46E5);
    background: var(--color-primary-light, #EEF2FF);
    color: var(--color-primary, #4F46E5);
}

.faixa-atualizacao-botao--ver:active[b-vwvlpfy382] {
    background: var(--color-primary, #4F46E5);
    color: var(--color-on-primary, #FFFFFF);
}

.faixa-atualizacao-botao--depois[b-vwvlpfy382] {
    border: 1px solid transparent;
    background: transparent;
    color: var(--color-text-secondary, #6B7280);
}

.faixa-atualizacao-botao--depois:active[b-vwvlpfy382] {
    background: var(--color-primary-light, #EEF2FF);
}

[data-theme="dark"] .faixa-atualizacao[b-vwvlpfy382] {
    background: #111827;
    border-color: #374151;
}

[data-theme="dark"] .faixa-atualizacao--info[b-vwvlpfy382] {
    border-left-color: #60A5FA;
}

[data-theme="dark"] .faixa-atualizacao--bloqueio[b-vwvlpfy382] {
    border-left-color: #FBBF24;
}

[data-theme="dark"] .faixa-atualizacao-texto strong[b-vwvlpfy382] {
    color: #F9FAFB;
}

[data-theme="dark"] .faixa-atualizacao-texto span[b-vwvlpfy382],
[data-theme="dark"] .faixa-atualizacao-icon[b-vwvlpfy382] {
    color: #9CA3AF;
}

[data-theme="dark"] .faixa-atualizacao-botao--ver[b-vwvlpfy382] {
    background: rgba(96, 165, 250, 0.12);
    color: #60A5FA;
}
/* /Components/Atualizacao/ModalDeAtualizacao.razor.rz.scp.css */
/* Modal Atualização — base do modal (MainHeader.razor.css), duplicada porque o CSS
   isolation do Blazor não aplica estilos escopos de outro componente (mesma razão de
   ModalDeDiagnostico.razor.css). */

/* ── Base do modal ── */
.modal-backdrop[b-xriyv4ta7v] {
    position: fixed;
    inset: 0;
    z-index: 50;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    animation: atualizacaoFadeIn-b-xriyv4ta7v 200ms ease-out;
}

@keyframes atualizacaoFadeIn-b-xriyv4ta7v {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-content[b-xriyv4ta7v] {
    background: var(--color-surface, #FFFFFF);
    border-radius: var(--radius-lg, 16px);
    width: 100%;
    max-width: 320px;
    overflow: hidden;
    animation: atualizacaoSlideUp-b-xriyv4ta7v 300ms cubic-bezier(0, 0, 0.2, 1);
}

@keyframes atualizacaoSlideUp-b-xriyv4ta7v {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.modal-header[b-xriyv4ta7v] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--color-border, #E5E7EB);
}

.modal-title[b-xriyv4ta7v] {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text-primary, #1F2937);
    margin: 0;
}

.modal-close[b-xriyv4ta7v] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    border-radius: 50%;
    cursor: pointer;
    color: var(--color-text-secondary, #6B7280);
}

.modal-close:active[b-xriyv4ta7v] {
    background: var(--color-primary-light, #EEF2FF);
}

.modal-body[b-xriyv4ta7v] {
    padding: 24px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* ── Conteúdo do estado (A/B/C…) ── */
.atualizacao-corpo[b-xriyv4ta7v] {
    width: 100%;
}

.atualizacao-corpo h3[b-xriyv4ta7v] {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-text-primary, #1F2937);
    margin: 0 0 8px;
}

.atualizacao-corpo p[b-xriyv4ta7v] {
    font-size: 13px;
    color: var(--color-text-secondary, #6B7280);
    margin: 0 0 12px;
}

/* ── Avisos do fluxo de envio (grupo 5) ── */
.atualizacao-aviso[b-xriyv4ta7v] {
    font-size: 12px;
    color: var(--color-warning, #92400E);
    margin: 8px 0 0;
}

/* ── Painel de diagnóstico em campo (7.1) ── */
.atualizacao-painel[b-xriyv4ta7v] {
    width: 100%;
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid var(--color-border, #E5E7EB);
    text-align: left;
}

.atualizacao-painel h4[b-xriyv4ta7v] {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--color-text-secondary, #6B7280);
    margin: 0 0 8px;
}

.atualizacao-painel dl[b-xriyv4ta7v] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4px 12px;
    margin: 0;
    font-size: 12px;
}

.atualizacao-painel dt[b-xriyv4ta7v] {
    font-weight: 600;
    color: var(--color-text-primary, #1F2937);
}

.atualizacao-painel dd[b-xriyv4ta7v] {
    margin: 0;
    color: var(--color-text-secondary, #6B7280);
    overflow-wrap: anywhere;
}

/* ── Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
    .modal-backdrop[b-xriyv4ta7v],
    .modal-content[b-xriyv4ta7v] {
        animation: none;
    }
}
/* /Components/Base/BreadcrumbDeLocalizacao.razor.rz.scp.css */
.breadcrumb-localizacao[b-u3v5v7xdfw] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2, 8px);
    padding: var(--space-2, 8px) var(--space-4, 16px);
    background: var(--color-surface, #FFFFFF);
    border-bottom: 1px solid var(--color-border, #E2E8F0);

    /* Altura da linha do texto, usada também pelo ícone. Sendo uma só, as duas
       caixas de linha não podem divergir — era essa divergência que deixava o
       ícone desalinhado (ver comentário no ícone). */
    --breadcrumb-altura-da-linha: calc(var(--font-size-sm, 13px) * 1.5);
}

/* O ícone é maior que o texto (18px contra 13-14px) e, com line-height proporcional,
   a caixa dele ficava mais alta que a do texto — medido no app: 27px contra 21px —,
   deixando o glifo sem alinhar nem com a primeira linha nem com o bloco.

   Duas correções, e a segunda é a que define o resultado:
   1. a altura de linha passa a ser a mesma do texto (variável do container), para as
      caixas serem comparáveis;
   2. `align-self: center` centraliza o ícone no bloco inteiro do caminho, qualquer que
      seja o número de linhas. É o que um `margin-top` fixo aparentava resolver (10px
      para duas linhas, medido), mas que erraria com uma ou três linhas — e caminho de
      três linhas é comum em tela de celular. */
.breadcrumb-localizacao-icon[b-u3v5v7xdfw] {
    flex-shrink: 0;
    align-self: center;
    font-size: 18px;
    line-height: var(--breadcrumb-altura-da-linha);
    color: var(--color-text-secondary, #6B7280);
}

/* Texto corrido: quebra como paragrafo, no ponto em que a palavra nao couber —
   sem rolagem horizontal nem corte. */
.breadcrumb-localizacao-text[b-u3v5v7xdfw] {
    margin: 0;
    font-size: var(--font-size-sm, 13px);
    color: var(--color-text-secondary, #6B7280);
    font-weight: var(--font-weight-medium, 500);
    line-height: var(--breadcrumb-altura-da-linha);
}

/* O ultimo nivel e onde o operador esta — destacado. */
.breadcrumb-localizacao-text strong[b-u3v5v7xdfw] {
    color: var(--color-text-primary, #1E293B);
    font-weight: var(--font-weight-bold, 700);
}

/* Secondary, nao tertiary: o tertiary (#94A3B8 sobre branco) da 2,8:1 de
   contraste e reprova no WCAG AA. */
.breadcrumb-localizacao-separator[b-u3v5v7xdfw] {
    color: var(--color-text-secondary, #6B7280);
    padding: 0 4px;
}

.breadcrumb-localizacao-text--vazio[b-u3v5v7xdfw] {
    font-style: italic;
}

/* Variante para telas de fundo escuro em tela cheia (ex.: leitor de plaqueta),
   que não usam os tokens --color-surface/--color-border do tema claro. */
.breadcrumb-localizacao--escuro[b-u3v5v7xdfw] {
    background: #1E293B;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.breadcrumb-localizacao--escuro .breadcrumb-localizacao-icon[b-u3v5v7xdfw],
.breadcrumb-localizacao--escuro .breadcrumb-localizacao-text[b-u3v5v7xdfw],
.breadcrumb-localizacao--escuro .breadcrumb-localizacao-separator[b-u3v5v7xdfw] {
    color: rgba(255, 255, 255, 0.7);
}

.breadcrumb-localizacao--escuro .breadcrumb-localizacao-text strong[b-u3v5v7xdfw] {
    color: #FFFFFF;
}
/* /Components/Base/Button.razor.rz.scp.css */
/**
 * Button Component Styles
 * Using CSS isolation and design tokens
 * Requirements: 2.1, 2.6, 2.7, 3.3, 4.5, 8.1, 8.4
 */

/* ── Base Button Styles ── */
.btn[b-n6q2g2zf0q] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2, 8px);
    font-family: var(--font-family-base);
    font-weight: var(--font-weight-semibold, 600);
    border: none;
    cursor: pointer;
    transition: all var(--transition-fast, 150ms) var(--easing-ease-in-out);
    -webkit-tap-highlight-color: transparent;
    position: relative;
    overflow: hidden;
    min-height: var(--touch-target-min, 44px);
    min-width: var(--touch-target-min, 44px);
}

.btn:focus-visible[b-n6q2g2zf0q] {
    outline: var(--focus-ring-width, 2px) solid var(--focus-ring-color, var(--color-primary));
    outline-offset: var(--focus-ring-offset, 2px);
}

/* ── Button Variants ── */

/* Primary */
.btn--primary[b-n6q2g2zf0q] {
    background: var(--color-primary, #2F6FED);
    color: var(--color-text-inverse, #FFFFFF);
    border-radius: var(--radius-lg, 12px);
    box-shadow: 0 4px 12px rgba(47, 111, 237, 0.25);
}

.btn--primary:hover:not(.btn--disabled)[b-n6q2g2zf0q] {
    background: var(--color-primary-hover, #2563EB);
    box-shadow: 0 6px 16px rgba(47, 111, 237, 0.3);
}

.btn--primary:active:not(.btn--disabled)[b-n6q2g2zf0q] {
    background: var(--color-primary-active, #1D4ED8);
    transform: scale(0.98);
    box-shadow: 0 2px 8px rgba(47, 111, 237, 0.2);
}

/* Secondary */
.btn--secondary[b-n6q2g2zf0q] {
    background: var(--color-neutral-100, #F3F4F6);
    color: var(--color-text-primary, #111827);
    border-radius: var(--radius-lg, 12px);
}

.btn--secondary:hover:not(.btn--disabled)[b-n6q2g2zf0q] {
    background: var(--color-neutral-200, #E5E7EB);
}

.btn--secondary:active:not(.btn--disabled)[b-n6q2g2zf0q] {
    background: var(--color-neutral-300, #D1D5DB);
    transform: scale(0.98);
}

/* Outline */
.btn--outline[b-n6q2g2zf0q] {
    background: transparent;
    color: var(--color-primary, #2F6FED);
    border: var(--border-width-medium, 2px) solid var(--color-primary, #2F6FED);
    border-radius: var(--radius-lg, 12px);
}

.btn--outline:hover:not(.btn--disabled)[b-n6q2g2zf0q] {
    background: var(--color-primary-light, #EEF2FF);
}

.btn--outline:active:not(.btn--disabled)[b-n6q2g2zf0q] {
    background: var(--color-primary-light, #EEF2FF);
    transform: scale(0.98);
}

/* Ghost */
.btn--ghost[b-n6q2g2zf0q] {
    background: transparent;
    color: var(--color-text-primary, #111827);
    border-radius: var(--radius-lg, 12px);
}

.btn--ghost:hover:not(.btn--disabled)[b-n6q2g2zf0q] {
    background: var(--color-neutral-100, #F3F4F6);
}

.btn--ghost:active:not(.btn--disabled)[b-n6q2g2zf0q] {
    background: var(--color-neutral-200, #E5E7EB);
    transform: scale(0.98);
}

/* ── Button Sizes ── */

/* Small */
.btn--small[b-n6q2g2zf0q] {
    padding: var(--space-2, 8px) var(--space-3, 12px);
    font-size: var(--font-size-sm, 13px);
    gap: var(--space-1, 4px);
}

.btn--small .btn__icon[b-n6q2g2zf0q] {
    font-size: 16px;
}

/* Medium */
.btn--medium[b-n6q2g2zf0q] {
    padding: var(--space-3, 12px) var(--space-4, 16px);
    font-size: var(--font-size-base, 14px);
}

.btn--medium .btn__icon[b-n6q2g2zf0q] {
    font-size: 20px;
}

/* Large */
.btn--large[b-n6q2g2zf0q] {
    padding: var(--space-4, 16px) var(--space-6, 24px);
    font-size: var(--font-size-lg, 16px);
}

.btn--large .btn__icon[b-n6q2g2zf0q] {
    font-size: 24px;
}

/* ── Button States ── */

/* Full Width */
.btn--full-width[b-n6q2g2zf0q] {
    width: 100%;
}

/* Disabled */
.btn--disabled[b-n6q2g2zf0q] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* ── Icon Styles ── */
.btn__icon[b-n6q2g2zf0q] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn__text[b-n6q2g2zf0q] {
    display: flex;
    align-items: center;
}

/* ── Ripple Effect ── */
.btn[b-n6q2g2zf0q]::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: var(--radius-full, 9999px);
    background: rgba(255, 255, 255, 0.3);
    transform: translate(-50%, -50%);
    transition: width var(--transition-fast, 150ms) var(--easing-ease-out),
                height var(--transition-fast, 150ms) var(--easing-ease-out);
}

.btn:active:not(.btn--disabled)[b-n6q2g2zf0q]::after {
    width: 300px;
    height: 300px;
}

/* ── Accessibility - Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
    .btn[b-n6q2g2zf0q] {
        transition: none;
    }

    .btn:active:not(.btn--disabled)[b-n6q2g2zf0q] {
        transform: none;
    }

    .btn[b-n6q2g2zf0q]::after {
        display: none;
    }
}

/* ── Dark Mode Support ── */
[data-theme="dark"] .btn--secondary[b-n6q2g2zf0q] {
    background: var(--color-neutral-800, #1F2937);
    color: var(--color-text-primary, #F9FAFB);
}

[data-theme="dark"] .btn--secondary:hover:not(.btn--disabled)[b-n6q2g2zf0q] {
    background: var(--color-neutral-700, #374151);
}

[data-theme="dark"] .btn--ghost[b-n6q2g2zf0q] {
    color: var(--color-text-primary, #F9FAFB);
}

[data-theme="dark"] .btn--ghost:hover:not(.btn--disabled)[b-n6q2g2zf0q] {
    background: var(--color-neutral-800, #1F2937);
}
/* /Components/Base/Card.razor.rz.scp.css */
/**
 * Card Component Styles
 * Using CSS isolation and design tokens
 * Requirements: 2.1, 16.1, 16.2, 16.3, 16.4, 16.6, 16.7, 16.8
 */

/* ── Base Card Styles ── */
.card[b-r61tla6bvx] {
    background: var(--color-surface, #FFFFFF);
    border-radius: var(--radius-lg, 12px);
    overflow: hidden;
    transition: all var(--transition-base, 200ms) var(--easing-ease-in-out);
}

/* ── Card Elevation Levels ── */
.card--flat[b-r61tla6bvx] {
    box-shadow: var(--shadow-none);
    border: var(--border-width-thin, 1px) solid var(--color-border, #E5E7EB);
}

.card--raised[b-r61tla6bvx] {
    box-shadow: var(--shadow-sm);
}

.card--elevated[b-r61tla6bvx] {
    box-shadow: var(--shadow-md);
}

/* ── Card Layout ── */
.card--vertical[b-r61tla6bvx] {
    display: flex;
    flex-direction: column;
}

.card--horizontal[b-r61tla6bvx] {
    display: flex;
    flex-direction: row;
}

.card--horizontal .card__body[b-r61tla6bvx] {
    flex: 1;
}

/* ── Card Sections ── */
.card__header[b-r61tla6bvx] {
    padding: var(--space-4, 16px);
    border-bottom: var(--border-width-thin, 1px) solid var(--color-border, #E5E7EB);
}

.card__body[b-r61tla6bvx] {
    padding: var(--space-4, 16px);
}

.card__footer[b-r61tla6bvx] {
    padding: var(--space-4, 16px);
    border-top: var(--border-width-thin, 1px) solid var(--color-border, #E5E7EB);
    display: flex;
    gap: var(--space-2, 8px);
    justify-content: flex-end;
}

/* ── Interactive Card ── */
.card--interactive[b-r61tla6bvx] {
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    position: relative;
}

.card--interactive:hover[b-r61tla6bvx] {
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
}

.card--interactive:active[b-r61tla6bvx] {
    transform: translateY(0);
    box-shadow: var(--shadow-md);
}

/* Ripple effect for interactive cards */
.card--interactive[b-r61tla6bvx]::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: var(--radius-full, 9999px);
    background: rgba(0, 0, 0, 0.05);
    transform: translate(-50%, -50%);
    transition: width var(--transition-fast, 150ms) var(--easing-ease-out),
                height var(--transition-fast, 150ms) var(--easing-ease-out);
    pointer-events: none;
}

.card--interactive:active[b-r61tla6bvx]::after {
    width: 300px;
    height: 300px;
}

/* ── Accessibility - Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
    .card[b-r61tla6bvx] {
        transition: none;
    }

    .card--interactive:hover[b-r61tla6bvx] {
        transform: none;
    }

    .card--interactive:active[b-r61tla6bvx] {
        transform: none;
    }

    .card--interactive[b-r61tla6bvx]::after {
        display: none;
    }
}

/* ── Responsive Adjustments ── */
@media (max-width: 768px) {
    .card--horizontal[b-r61tla6bvx] {
        flex-direction: column;
    }
}

/* ── Dark Mode Support ── */
[data-theme="dark"] .card[b-r61tla6bvx] {
    background: var(--color-surface, #1F2937);
}

[data-theme="dark"] .card--flat[b-r61tla6bvx] {
    border-color: var(--color-border, #374151);
}

[data-theme="dark"] .card__header[b-r61tla6bvx],
[data-theme="dark"] .card__footer[b-r61tla6bvx] {
    border-color: var(--color-border, #374151);
}

[data-theme="dark"] .card--interactive[b-r61tla6bvx]::after {
    background: rgba(255, 255, 255, 0.05);
}
/* /Components/Base/MainHeader.razor.rz.scp.css */
.app-header[b-klkm83mt0k] {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding: 12px 16px;
    background: var(--color-surface, #FFFFFF);
    border-bottom: 1px solid var(--color-border, #E5E7EB);
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.header-brand[b-klkm83mt0k] {
    display: flex;
    align-items: center;
    gap: var(--space-2, 8px);
}

.brand-logo[b-klkm83mt0k] {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.brand-name[b-klkm83mt0k] {
    /* Mesma fonte do título "Aspec Captura" da tela de Login (.login-title),
       criando identidade visual consistente da marca no app. */
    font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
    font-size: var(--font-size-lg, 14px);
    font-weight: var(--font-weight-bold, 700);
    color: var(--color-primary, #2F6FED);
    letter-spacing: 0.3px;
}

.icon-button[b-klkm83mt0k] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    background: transparent;
    border-radius: 50%;
    cursor: pointer;
    color: var(--color-text-secondary, #6B7280);
    -webkit-tap-highlight-color: transparent;
}

.icon-button:active[b-klkm83mt0k] {
    background: var(--color-primary-light, #EEF2FF);
}

.icon-button.back .material-symbols-outlined[b-klkm83mt0k] {
    font-size: 20px;
}

.header-actions[b-klkm83mt0k] {
    position: relative;
    display: flex;
    gap: var(--space-2, 8px);
}

.header-action[b-klkm83mt0k] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    background: transparent;
    border-radius: 50%;
    cursor: pointer;
    color: var(--color-text-secondary, #6B7280);
    -webkit-tap-highlight-color: transparent;
}

/* ── Badge de versão pendente (D3: é estado, não notificação; D9: cor por significado) ── */
.update-badge[b-klkm83mt0k] {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid var(--color-surface, #FFFFFF);
    box-sizing: border-box;
    pointer-events: none;
}

.update-badge--info[b-klkm83mt0k] {
    background: var(--color-info, #3B82F6);
}

.update-badge--warning[b-klkm83mt0k] {
    background: var(--color-warning, #F59E0B);
}

.update-badge--error[b-klkm83mt0k] {
    background: var(--color-error, #EF4444);
}

.update-badge--item[b-klkm83mt0k] {
    position: static;
    margin-left: auto;
    border: none;
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}

.header-action:active[b-klkm83mt0k] {
    background: var(--color-primary-light, #EEF2FF);
}

/* ── Dropdown Menu ── */
.menu-backdrop[b-klkm83mt0k] {
    position: fixed;
    inset: 0;
    z-index: 30;
}

.dropdown-menu[b-klkm83mt0k] {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 31;
    min-width: 200px;
    margin-top: var(--space-1, 4px);
    padding: var(--space-2, 8px) 0;
    background: var(--color-surface, #FFFFFF);
    border-radius: var(--radius-lg, 12px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12), 0 1px 4px rgba(0, 0, 0, 0.08);
    animation: menuFadeIn-b-klkm83mt0k 200ms cubic-bezier(0, 0, 0.2, 1);
}

@keyframes menuFadeIn-b-klkm83mt0k {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.menu-item[b-klkm83mt0k] {
    display: flex;
    align-items: center;
    gap: var(--space-3, 12px);
    width: 100%;
    padding: var(--space-3, 12px) var(--space-4, 16px);
    border: none;
    background: transparent;
    color: var(--color-text-primary, #1F2937);
    font-size: var(--font-size-base, 14px);
    font-weight: var(--font-weight-medium, 500);
    text-align: left;
    cursor: pointer;
    transition: background 150ms ease-in-out;
    -webkit-tap-highlight-color: transparent;
    min-height: var(--touch-target-min, 44px);
}

.menu-item:active[b-klkm83mt0k] {
    background: var(--color-primary-light, #EEF2FF);
}

.menu-item .material-symbols-outlined[b-klkm83mt0k] {
    font-size: 20px;
    color: var(--color-text-secondary, #6B7280);
}

.menu-item-danger[b-klkm83mt0k] {
    color: #EF4444;
}

.menu-item-danger .material-symbols-outlined[b-klkm83mt0k] {
    color: #EF4444;
}

.menu-divider[b-klkm83mt0k] {
    height: 1px;
    background: var(--color-border, #E5E7EB);
    margin: var(--space-2, 8px) 0;
}

/* ── Modal Sobre ── */
.modal-backdrop[b-klkm83mt0k] {
    position: fixed;
    inset: 0;
    z-index: 50;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    animation: fadeIn-b-klkm83mt0k 200ms ease-out;
}

@keyframes fadeIn-b-klkm83mt0k {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-content[b-klkm83mt0k] {
    background: var(--color-surface, #FFFFFF);
    border-radius: var(--radius-lg, 16px);
    width: 100%;
    max-width: 320px;
    overflow: hidden;
    animation: slideUp-b-klkm83mt0k 300ms cubic-bezier(0, 0, 0.2, 1);
}

@keyframes slideUp-b-klkm83mt0k {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.modal-header[b-klkm83mt0k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--color-border, #E5E7EB);
}

.modal-title[b-klkm83mt0k] {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text-primary, #1F2937);
    margin: 0;
}

.modal-close[b-klkm83mt0k] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    border-radius: 50%;
    cursor: pointer;
    color: var(--color-text-secondary, #6B7280);
}

.modal-close:active[b-klkm83mt0k] {
    background: var(--color-primary-light, #EEF2FF);
}

.modal-body[b-klkm83mt0k] {
    padding: 24px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.sobre-logo[b-klkm83mt0k] {
    width: 48px;
    height: 48px;
    object-fit: contain;
    margin-bottom: 12px;
    display: block;
}

.sobre-app-name[b-klkm83mt0k] {
    /* Mesma fonte da marca no cabeçalho (.brand-name) e no login (.login-title). */
    font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text-primary, #1F2937);
    margin: 0 0 8px;
}

.sobre-version[b-klkm83mt0k] {
    font-size: 12px;
    color: var(--color-text-secondary, #6B7280);
    margin: 0 0 12px;
    white-space: pre-line;
}

.sobre-description[b-klkm83mt0k] {
    font-size: 14px;
    color: var(--color-text-secondary, #6B7280);
    margin: 0;
}

.sobre-diagnostico[b-klkm83mt0k] {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid var(--color-border, #E5E7EB);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sobre-diagnostico-resumo[b-klkm83mt0k] {
    font-size: 13px;
    color: var(--color-text-secondary, #6B7280);
    margin: 0;
}

.sobre-diagnostico-link[b-klkm83mt0k] {
    align-self: flex-start;
    border: none;
    background: none;
    padding: 0;
    color: var(--color-primary, #2F6FED);
    font-size: 13px;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
}

/* ── Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
    .dropdown-menu[b-klkm83mt0k],
    .modal-backdrop[b-klkm83mt0k],
    .modal-content[b-klkm83mt0k] {
        animation: none;
    }
}
/* /Components/Cards/LocalizacaoDivergenteModal.razor.rz.scp.css */
.div-backdrop[b-qxhoz8ibef] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    /* Acima do leitor de plaqueta (tela cheia, z-index 1000) onde este modal é exibido. */
    z-index: 1100;
    animation: div-fade-in-b-qxhoz8ibef 200ms ease-out;
}

.div-modal[b-qxhoz8ibef] {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: min(480px, calc(100vw - 32px));
    background: #FFFFFF;
    border-top: 6px solid #F97316;
    border-radius: 24px 24px 0 0;
    z-index: 1110;
    padding: 24px;
    max-height: 80vh;
    max-height: 80dvh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
    box-sizing: border-box;
    animation: div-slide-up-b-qxhoz8ibef 300ms ease-out;
}

.div-modal:focus[b-qxhoz8ibef] {
    outline: none;
}

@keyframes div-fade-in-b-qxhoz8ibef {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes div-slide-up-b-qxhoz8ibef {
    from { transform: translateX(-50%) translateY(100%); }
    to   { transform: translateX(-50%) translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .div-backdrop[b-qxhoz8ibef], .div-modal[b-qxhoz8ibef] {
        animation: none;
    }
}

.div-modal-header[b-qxhoz8ibef] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.div-modal-header > div[b-qxhoz8ibef] {
    flex: 1;
    min-width: 0;
}

.div-modal-icon[b-qxhoz8ibef] {
    color: #EA580C;
    font-size: 28px;
    margin-top: 2px;
}

.div-modal-title[b-qxhoz8ibef] {
    font-size: 18px;
    font-weight: 700;
    color: #9A3412;
    margin: 0;
}

.div-modal-subtitle[b-qxhoz8ibef] {
    font-size: 12px;
    color: #94A3B8;
    margin: 4px 0 0;
    font-weight: 600;
    letter-spacing: 0.05em;
}

.div-close-btn[b-qxhoz8ibef] {
    background: none;
    border: none;
    color: #94A3B8;
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    border-radius: 8px;
    -webkit-tap-highlight-color: transparent;
}

.div-close-btn:active[b-qxhoz8ibef] {
    background: #F1F5F9;
}

.div-modal-body[b-qxhoz8ibef] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.div-modal-text[b-qxhoz8ibef] {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    color: #7C2D12;
    line-height: 1.5;
}

.div-location[b-qxhoz8ibef] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 16px;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    background: #F8FAFC;
}

.div-location-atual[b-qxhoz8ibef] {
    border-color: #FDBA74;
    background: #FFF7ED;
}

.div-location-label[b-qxhoz8ibef] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #94A3B8;
}

.div-location-atual .div-location-label[b-qxhoz8ibef] {
    color: #C2410C;
}

.div-location-value[b-qxhoz8ibef] {
    font-size: 15px;
    font-weight: 700;
    color: #1E293B;
    overflow-wrap: anywhere;
}

.div-modal-footer[b-qxhoz8ibef] {
    display: flex;
    gap: 12px;
}

.div-btn-cancel[b-qxhoz8ibef] {
    flex: 1;
    padding: 14px;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    background: #FFFFFF;
    color: #475569;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
    -webkit-tap-highlight-color: transparent;
}

.div-btn-cancel:active[b-qxhoz8ibef] {
    background: #F8FAFC;
}

.div-btn-continue[b-qxhoz8ibef] {
    flex: 2;
    padding: 14px;
    border: none;
    border-radius: 12px;
    background: #EA580C;
    color: #FFFFFF;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    min-height: 44px;
    -webkit-tap-highlight-color: transparent;
}

.div-btn-continue:active[b-qxhoz8ibef] {
    background: #C2410C;
}
/* /Components/Cards/ObservacaoModal.razor.rz.scp.css */
.obs-backdrop[b-uf59q8vkf3] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 60;
    animation: obs-fade-in-b-uf59q8vkf3 200ms ease-out;
}

.obs-modal[b-uf59q8vkf3] {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: min(480px, calc(100vw - 32px));
    background: #FFFFFF;
    border-radius: 24px 24px 0 0;
    z-index: 70;
    padding: 24px;
    max-height: 80vh;
    max-height: 80dvh;
    display: flex;
    flex-direction: column;
    gap: 16px;
    animation: obs-slide-up-b-uf59q8vkf3 300ms ease-out;
}

@keyframes obs-fade-in-b-uf59q8vkf3 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes obs-slide-up-b-uf59q8vkf3 {
    from { transform: translateX(-50%) translateY(100%); }
    to   { transform: translateX(-50%) translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .obs-backdrop[b-uf59q8vkf3], .obs-modal[b-uf59q8vkf3] {
        animation: none;
    }
}

.obs-modal-header[b-uf59q8vkf3] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.obs-modal-title[b-uf59q8vkf3] {
    font-size: 18px;
    font-weight: 700;
    color: #1E293B;
    margin: 0;
}

.obs-modal-subtitle[b-uf59q8vkf3] {
    font-size: 12px;
    color: #94A3B8;
    margin: 4px 0 0;
    font-weight: 600;
    letter-spacing: 0.05em;
}

.obs-close-btn[b-uf59q8vkf3] {
    background: none;
    border: none;
    color: #94A3B8;
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    border-radius: 8px;
    -webkit-tap-highlight-color: transparent;
}

.obs-close-btn:active[b-uf59q8vkf3] {
    background: #F1F5F9;
}

.obs-modal-body[b-uf59q8vkf3] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.obs-textarea[b-uf59q8vkf3] {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    font-size: 16px;
    color: #1E293B;
    resize: none;
    font-family: inherit;
    line-height: 1.5;
    box-sizing: border-box;
}

.obs-textarea:focus[b-uf59q8vkf3] {
    outline: none;
    border-color: #1E3A5F;
    box-shadow: 0 0 0 3px rgba(30, 58, 95, 0.1);
}

.obs-char-count[b-uf59q8vkf3] {
    font-size: 11px;
    color: #94A3B8;
    text-align: right;
}

.obs-modal-footer[b-uf59q8vkf3] {
    display: flex;
    gap: 12px;
}

.obs-btn-cancel[b-uf59q8vkf3] {
    flex: 1;
    padding: 14px;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    background: #FFFFFF;
    color: #475569;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
    -webkit-tap-highlight-color: transparent;
}

.obs-btn-cancel:active[b-uf59q8vkf3] {
    background: #F8FAFC;
}

.obs-btn-clear[b-uf59q8vkf3] {
    flex: 1;
    padding: 14px;
    border: 1px solid #DC2626;
    border-radius: 12px;
    background: #FFFFFF;
    color: #DC2626;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
    -webkit-tap-highlight-color: transparent;
}

.obs-btn-clear:disabled[b-uf59q8vkf3] {
    opacity: 0.4;
    cursor: not-allowed;
    border-color: #E2E8F0;
    color: #94A3B8;
}

.obs-btn-clear:active:not(:disabled)[b-uf59q8vkf3] {
    background: #FEF2F2;
}

.obs-btn-save[b-uf59q8vkf3] {
    flex: 2;
    padding: 14px;
    border: none;
    border-radius: 12px;
    background: #1E3A5F;
    color: #FFFFFF;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-tap-highlight-color: transparent;
}

.obs-btn-save:disabled[b-uf59q8vkf3] {
    opacity: 0.6;
    cursor: not-allowed;
}

.obs-btn-save:active:not(:disabled)[b-uf59q8vkf3] {
    background: #16324F;
}

.obs-spinner[b-uf59q8vkf3] {
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255,255,255,0.3);
    border-top-color: #FFFFFF;
    border-radius: 50%;
    animation: obs-spin-b-uf59q8vkf3 0.7s linear infinite;
}

@keyframes obs-spin-b-uf59q8vkf3 {
    to { transform: rotate(360deg); }
}
/* /Components/Cards/PatrimonioCard.razor.rz.scp.css */
.card-wrapper[b-lrcqp2ziop] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.item-card[b-lrcqp2ziop] {
    display: flex;
    align-items: stretch;
    background: var(--color-surface, #FFFFFF);
    border-radius: 12px;
    border: 1px solid var(--color-border, #E2E8F0);
    overflow: hidden;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: box-shadow 0.15s, transform 0.15s;
    user-select: none;
    flex: 1;
    min-width: 0;
}

.item-card:active[b-lrcqp2ziop] {
    transform: scale(0.985);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.card-accent[b-lrcqp2ziop] {
    width: 4px;
    flex-shrink: 0;
    border-radius: 12px 0 0 12px;
}

.card-accent.accent-green[b-lrcqp2ziop]  { background: var(--color-success, #10B981); }
.card-accent.accent-yellow[b-lrcqp2ziop] { background: var(--color-warning, #F59E0B); }
.card-accent.accent-red[b-lrcqp2ziop]    { background: var(--color-error, #EF4444); }
.card-accent.accent-gray[b-lrcqp2ziop]   { background: var(--color-text-tertiary, #94A3B8); }

.card-body[b-lrcqp2ziop] {
    flex: 1;
    padding: 12px 10px 12px 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.card-row[b-lrcqp2ziop] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.card-meta-row[b-lrcqp2ziop] {
    justify-content: flex-start;
}

.code-tag[b-lrcqp2ziop] {
    font-size: 10px;
    font-weight: 700;
    color: var(--color-primary, #2F6FED);
    background: var(--color-primary-light, #EFF6FF);
    border: 1px solid var(--color-primary-light, #BFDBFE);
    border-radius: 4px;
    padding: 2px 6px;
    letter-spacing: 0.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 80%;
}

.avulso-tag[b-lrcqp2ziop] {
    font-size: 10px;
    font-weight: 700;
    color: var(--color-warning, #B45309);
    background: #FFFBEB;
    border: 1px solid var(--color-warning, #F59E0B);
    border-radius: 4px;
    padding: 2px 6px;
    letter-spacing: 0.5px;
    white-space: nowrap;
    flex-shrink: 0;
}

.divergente-tag[b-lrcqp2ziop] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 10px;
    font-weight: 700;
    color: #9A3412;
    background: #FFF7ED;
    border: 1px solid #F97316;
    border-radius: 4px;
    padding: 2px 6px;
    letter-spacing: 0.5px;
    white-space: nowrap;
    flex-shrink: 0;
}

.divergente-tag .material-symbols-outlined[b-lrcqp2ziop] {
    font-size: 12px;
    color: #EA580C;
}

.card-name[b-lrcqp2ziop] {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-text-primary, #1E293B);
    margin: 0;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-height: 1.35;
}

.card-location[b-lrcqp2ziop] {
    display: flex;
    align-items: center;
    gap: 3px;
}

.loc-icon[b-lrcqp2ziop] {
    font-size: 13px;
    color: var(--color-text-tertiary, #94A3B8);
}

.loc-text[b-lrcqp2ziop] {
    font-size: 11px;
    font-weight: 500;
    color: var(--color-text-secondary, #64748B);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.card-area[b-lrcqp2ziop] {
    display: flex;
    align-items: center;
    gap: 3px;
}

.area-icon[b-lrcqp2ziop] {
    font-size: 13px;
    color: var(--color-text-tertiary, #94A3B8);
}

.area-text[b-lrcqp2ziop] {
    font-size: 11px;
    font-weight: 500;
    color: var(--color-text-secondary, #64748B);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.area-text--cadastro[b-lrcqp2ziop] {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}

.card-chevron[b-lrcqp2ziop] {
    display: flex;
    align-items: center;
    padding: 0 10px 0 4px;
    color: var(--color-border, #CBD5E1);
    flex-shrink: 0;
}

.card-chevron .material-symbols-outlined[b-lrcqp2ziop] {
    font-size: 20px;
}

.obs-bubble[b-lrcqp2ziop] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-width: 36px;
    height: 36px;
    padding: 4px 10px;
    border-radius: 18px;
    border: none;
    background: var(--color-surface-elevated, #E2E8F0);
    cursor: pointer;
    flex-shrink: 0;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.2s ease-in-out, transform 0.1s ease-out;
    box-sizing: border-box;
}

.obs-bubble:active[b-lrcqp2ziop] {
    transform: scale(0.92);
}

.obs-bubble--active[b-lrcqp2ziop] {
    background: #25D366;
}

.obs-bubble--active:active[b-lrcqp2ziop] {
    background: #1DA851;
}

.obs-bubble-tail[b-lrcqp2ziop] {
    position: absolute;
    left: -5px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-top: 5px solid transparent;
    border-bottom: 5px solid transparent;
    border-right: 6px solid var(--color-surface-elevated, #E2E8F0);
    transition: border-right-color 0.2s ease-in-out;
}

.obs-bubble--active .obs-bubble-tail[b-lrcqp2ziop] {
    border-right-color: #25D366;
}

.obs-bubble-icon[b-lrcqp2ziop] {
    font-size: 18px;
    color: var(--color-text-tertiary, #94A3B8);
    transition: color 0.2s ease-in-out;
}

.obs-bubble--active .obs-bubble-icon[b-lrcqp2ziop] {
    color: #FFFFFF;
}

.obs-bubble-text[b-lrcqp2ziop] {
    font-size: 10px;
    font-weight: 700;
    color: var(--color-text-tertiary, #94A3B8);
    letter-spacing: 0.02em;
    transition: color 0.2s ease-in-out;
}

.obs-bubble--active .obs-bubble-text[b-lrcqp2ziop] {
    color: #FFFFFF;
}

.obs-bubble:focus-visible[b-lrcqp2ziop] {
    outline: 2px solid #25D366;
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .item-card[b-lrcqp2ziop],
    .obs-bubble[b-lrcqp2ziop] {
        transition: none;
    }

    .obs-bubble:active[b-lrcqp2ziop],
    .item-card:active[b-lrcqp2ziop] {
        transform: none;
    }
}

/* ============================================
   DARK MODE
   ============================================ */

:global([data-theme="dark"]) .item-card[b-lrcqp2ziop] {
    background: var(--color-surface);
    border-color: var(--color-border);
}

:global([data-theme="dark"]) .card-name[b-lrcqp2ziop] {
    color: var(--color-text-primary);
}

:global([data-theme="dark"]) .code-tag[b-lrcqp2ziop] {
    color: var(--color-primary);
    background: var(--color-primary-light);
    border-color: var(--color-primary-light);
}

:global([data-theme="dark"]) .avulso-tag[b-lrcqp2ziop] {
    color: var(--color-warning);
    background: rgba(245, 158, 11, 0.12);
    border-color: var(--color-warning);
}

:global([data-theme="dark"]) .loc-text[b-lrcqp2ziop] {
    color: var(--color-text-secondary);
}

:global([data-theme="dark"]) .loc-icon[b-lrcqp2ziop] {
    color: var(--color-text-tertiary);
}

:global([data-theme="dark"]) .area-text[b-lrcqp2ziop] {
    color: var(--color-text-secondary);
}

:global([data-theme="dark"]) .area-icon[b-lrcqp2ziop] {
    color: var(--color-text-tertiary);
}

:global([data-theme="dark"]) .card-chevron[b-lrcqp2ziop] {
    color: var(--color-text-tertiary);
}

:global([data-theme="dark"]) .obs-bubble[b-lrcqp2ziop] {
    background: var(--color-surface-elevated);
}

:global([data-theme="dark"]) .obs-bubble[b-lrcqp2ziop]::before {
    border-right-color: var(--color-surface-elevated);
}

:global([data-theme="dark"]) .obs-bubble-icon[b-lrcqp2ziop],
:global([data-theme="dark"]) .obs-bubble-text[b-lrcqp2ziop] {
    color: var(--color-text-tertiary);
}
/* /Components/Diagnostico/ModalDeDiagnostico.razor.rz.scp.css */
/* Modal de diagnóstico do aparelho — base do modal Sobre (MainHeader.razor.css),
   duplicada porque o CSS isolation do Blazor não aplica estilos escopos de outro
   componente. As variantes --diagnostico vêm DEPOIS da base para sobrescrevê-las
   (mesma especificidade → vence a ordem no arquivo). */

/* ── Base do modal ── */
.modal-backdrop[b-uyqkhjdc20] {
    position: fixed;
    inset: 0;
    z-index: 50;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    animation: diagnosticoFadeIn-b-uyqkhjdc20 200ms ease-out;
}

@keyframes diagnosticoFadeIn-b-uyqkhjdc20 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-content[b-uyqkhjdc20] {
    background: var(--color-surface, #FFFFFF);
    border-radius: var(--radius-lg, 16px);
    width: 100%;
    max-width: 320px;
    overflow: hidden;
    animation: diagnosticoSlideUp-b-uyqkhjdc20 300ms cubic-bezier(0, 0, 0.2, 1);
}

@keyframes diagnosticoSlideUp-b-uyqkhjdc20 {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.modal-header[b-uyqkhjdc20] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--color-border, #E5E7EB);
}

.modal-title[b-uyqkhjdc20] {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text-primary, #1F2937);
    margin: 0;
}

.modal-close[b-uyqkhjdc20] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    border-radius: 50%;
    cursor: pointer;
    color: var(--color-text-secondary, #6B7280);
}

.modal-close:active[b-uyqkhjdc20] {
    background: var(--color-primary-light, #EEF2FF);
}

.modal-body[b-uyqkhjdc20] {
    padding: 24px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* ── Variantes maiores para acomodar a lista de requisitos ── */
.modal-backdrop--diagnostico[b-uyqkhjdc20] {
    z-index: 60; /* modal Sobre usa 50 — o diagnóstico abre por cima */
    align-items: flex-start;
    padding-top: 24px;
}

.modal-content--diagnostico[b-uyqkhjdc20] {
    max-width: 480px;
    max-height: calc(100dvh - 48px);
    display: flex;
    flex-direction: column;
}

.modal-body--diagnostico[b-uyqkhjdc20] {
    align-items: stretch;
    text-align: left;
    padding: 16px 20px 20px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* ── Conteúdo da página de diagnóstico (migrado de Pages/Diagnostico.razor.css) ── */
.diagnostico-subtitle[b-uyqkhjdc20] {
    font-size: 13px;
    color: #64748b;
    margin: 0 0 16px;
}

.diagnostico-actions[b-uyqkhjdc20] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 20px;
}

.diagnostico-btn[b-uyqkhjdc20] {
    padding: 12px 16px;
    border-radius: 12px;
    border: none;
    background: #003366;
    color: white;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
}

.diagnostico-btn:disabled[b-uyqkhjdc20] {
    opacity: 0.6;
    cursor: default;
}

.diagnostico-btn--secundario[b-uyqkhjdc20] {
    background: white;
    color: #003366;
    border: 1px solid #cbd5e1;
}

/* ── Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
    .modal-backdrop[b-uyqkhjdc20],
    .modal-content[b-uyqkhjdc20] {
        animation: none;
    }
}
/* /Components/Diagnostico/PainelDeRequisitos.razor.rz.scp.css */
.painel-requisitos__carregando[b-ie527ck39k] {
    color: #64748b;
    font-size: 14px;
}

.painel-requisitos__resumo[b-ie527ck39k] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-radius: 12px;
    font-weight: 600;
    margin-bottom: 16px;
}

.painel-requisitos__resumo--ok[b-ie527ck39k] {
    background: #ecfdf5;
    color: #047857;
}

.painel-requisitos__resumo--aviso[b-ie527ck39k] {
    background: #fffbeb;
    color: #b45309;
}

.painel-requisitos__resumo--bloqueado[b-ie527ck39k] {
    background: #fef2f2;
    color: #b91c1c;
}

.painel-requisitos__lista[b-ie527ck39k] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.painel-requisitos__item[b-ie527ck39k] {
    display: flex;
    gap: 12px;
    padding: 12px;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: white;
}

.painel-requisitos__item--ok .material-symbols-outlined[b-ie527ck39k] {
    color: #059669;
}

.painel-requisitos__item--aviso .material-symbols-outlined[b-ie527ck39k] {
    color: #d97706;
}

.painel-requisitos__item--bloqueado[b-ie527ck39k] {
    border-color: #fecaca;
}

.painel-requisitos__item--bloqueado .material-symbols-outlined[b-ie527ck39k] {
    color: #dc2626;
}

.painel-requisitos__texto[b-ie527ck39k] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.painel-requisitos__titulo[b-ie527ck39k] {
    font-weight: 600;
    color: #1e293b;
    margin: 0;
    font-size: 14px;
}

.painel-requisitos__detalhe[b-ie527ck39k] {
    color: #64748b;
    margin: 0;
    font-size: 13px;
}

.painel-requisitos__orientacao[b-ie527ck39k] {
    color: #334155;
    margin: 4px 0 0;
    font-size: 13px;
    font-style: italic;
}
/* /Components/Feedback/ConfirmDialog.razor.rz.scp.css */
.confirm-backdrop[b-24qa46n79i] {
    position: fixed;
    inset: 0;
    z-index: 100;
    background: rgba(0, 0, 0, 0.5);
    animation: confirmFadeIn-b-24qa46n79i 200ms ease-out;
}

.confirm-dialog[b-24qa46n79i] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 101;
    background: var(--color-surface, #FFFFFF);
    border-radius: 16px;
    padding: 24px;
    width: calc(100% - 48px);
    max-width: 320px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.16);
    animation: confirmSlideUp-b-24qa46n79i 300ms cubic-bezier(0, 0, 0.2, 1);
}

.confirm-title[b-24qa46n79i] {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text-primary, #1F2937);
    margin: 0 0 8px;
}

.confirm-message[b-24qa46n79i] {
    font-size: 14px;
    color: var(--color-text-secondary, #6B7280);
    margin: 0 0 24px;
    line-height: 1.5;
}

.confirm-actions[b-24qa46n79i] {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
}

.confirm-btn-cancel[b-24qa46n79i] {
    padding: 10px 20px;
    border-radius: 10px;
    border: 1px solid var(--color-border, #E2E8F0);
    background: transparent;
    color: var(--color-text-secondary, #6B7280);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
    transition: background 150ms ease;
}

.confirm-btn-cancel:active[b-24qa46n79i] {
    background: var(--color-primary-light, #F1F5F9);
}

.confirm-btn-confirm[b-24qa46n79i] {
    padding: 10px 20px;
    border-radius: 10px;
    border: none;
    background: #EF4444;
    color: #FFFFFF;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
    transition: background 150ms ease;
}

.confirm-btn-confirm:active[b-24qa46n79i] {
    background: #DC2626;
}

@keyframes confirmFadeIn-b-24qa46n79i {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes confirmSlideUp-b-24qa46n79i {
    from {
        opacity: 0;
        transform: translate(-50%, -45%);
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .confirm-backdrop[b-24qa46n79i],
    .confirm-dialog[b-24qa46n79i] {
        animation: none;
    }
}
/* /Components/Feedback/EmptyState.razor.rz.scp.css */
/* EmptyState Component Styles
 * 
 * Displays empty state with centered icon, title, and subtitle.
 * NO action button per Requirement 26.3, 26.7
 * 
 * Requirements: 2.5, 13.7, 18.8, 26.7, 26.19
 */

.empty-state[b-rr5hf5rj4e] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--space-8, 32px) var(--space-4, 16px);
    min-height: 300px;
}

.empty-state__icon[b-rr5hf5rj4e] {
    font-size: 64px;
    line-height: 1;
    margin-bottom: var(--space-4, 16px);
    opacity: 0.8;
}

.empty-state__title[b-rr5hf5rj4e] {
    font-size: var(--font-size-xl, 18px);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--color-text-primary, #111827);
    margin: 0 0 var(--space-2, 8px) 0;
    line-height: var(--line-height-tight, 1.2);
}

.empty-state__subtitle[b-rr5hf5rj4e] {
    font-size: var(--font-size-base, 14px);
    color: var(--color-text-secondary, #6B7280);
    margin: 0;
    line-height: var(--line-height-normal, 1.5);
    max-width: 400px;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .empty-state[b-rr5hf5rj4e] {
        padding: var(--space-6, 24px) var(--space-4, 16px);
        min-height: 250px;
    }
}
/* /Components/Forms/FilterChip.razor.rz.scp.css */
/* FilterChip Component Styles */

.filter-chip[b-41529pp60r] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
    padding: var(--space-2) var(--space-3);
    border: none;
    border-radius: var(--radius-full); /* 9999px - pill shape */
    font-family: var(--font-family-base);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    cursor: pointer;
    transition: background-color var(--transition-fast) var(--easing-ease-in-out),
                color var(--transition-fast) var(--easing-ease-in-out),
                transform var(--transition-fast) var(--easing-ease-in-out),
                box-shadow var(--transition-fast) var(--easing-ease-in-out);
    user-select: none;
    white-space: nowrap;
    
    /* Ensure minimum touch target size */
    min-height: var(--touch-target-min);
}

/* Inactive State */
.filter-chip--inactive[b-41529pp60r] {
    background-color: #EEF2FF; /* Light blue background for inactive */
    color: var(--color-text-primary);
}

.filter-chip--inactive:hover[b-41529pp60r] {
    background-color: #E0E7FF; /* Slightly darker on hover */
    box-shadow: var(--shadow-sm);
}

.filter-chip--inactive:active[b-41529pp60r] {
    transform: scale(0.97);
}

/* Active State */
.filter-chip--active[b-41529pp60r] {
    background-color: #2F6FED; /* Primary blue for active */
    color: #FFFFFF;
    box-shadow: var(--shadow-sm);
}

.filter-chip--active:hover[b-41529pp60r] {
    background-color: var(--color-primary-hover);
    box-shadow: var(--shadow-md);
}

.filter-chip--active:active[b-41529pp60r] {
    transform: scale(0.97);
}

/* Label */
.filter-chip__label[b-41529pp60r] {
    line-height: 1;
}

/* Remove Button */
.filter-chip__remove[b-41529pp60r] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    margin-left: var(--space-1);
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
    border-radius: var(--radius-full);
    transition: background-color var(--transition-fast) var(--easing-ease-in-out),
                transform var(--transition-fast) var(--easing-ease-in-out);
    width: 20px;
    height: 20px;
}

.filter-chip__remove:hover[b-41529pp60r] {
    background-color: rgba(255, 255, 255, 0.2);
}

.filter-chip__remove:active[b-41529pp60r] {
    transform: scale(0.9);
}

.filter-chip__remove .material-symbols-outlined[b-41529pp60r] {
    font-size: 16px;
    line-height: 1;
}

/* Focus States for Accessibility */
.filter-chip:focus-visible[b-41529pp60r] {
    outline: var(--focus-ring-width) solid var(--focus-ring-color);
    outline-offset: var(--focus-ring-offset);
}

.filter-chip__remove:focus-visible[b-41529pp60r] {
    outline: var(--focus-ring-width) solid rgba(255, 255, 255, 0.8);
    outline-offset: 1px;
}

/* Disabled State (optional, for future use) */
.filter-chip:disabled[b-41529pp60r] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

/* Accessibility - Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    .filter-chip[b-41529pp60r],
    .filter-chip__remove[b-41529pp60r] {
        transition: none;
    }
    
    .filter-chip--inactive:active[b-41529pp60r],
    .filter-chip--active:active[b-41529pp60r],
    .filter-chip__remove:active[b-41529pp60r] {
        transform: none;
    }
}

/* Dark Mode Adjustments */
[data-theme="dark"] .filter-chip--inactive[b-41529pp60r] {
    background-color: #1E3A8A; /* Darker blue for dark mode inactive */
    color: var(--color-text-primary);
}

[data-theme="dark"] .filter-chip--inactive:hover[b-41529pp60r] {
    background-color: #1E40AF;
}

[data-theme="dark"] .filter-chip--active[b-41529pp60r] {
    background-color: #3B82F6; /* Brighter blue for dark mode active */
    color: #FFFFFF;
}

[data-theme="dark"] .filter-chip--active:hover[b-41529pp60r] {
    background-color: #60A5FA;
}

/* Responsive Adjustments */
@media (max-width: 768px) {
    .filter-chip[b-41529pp60r] {
        /* Ensure comfortable touch targets on mobile */
        padding: var(--space-2) var(--space-3);
    }
}
/* /Components/Forms/SearchBar.razor.rz.scp.css */
/* SearchBar Component Styles */

.search-bar[b-n2nxwnervv] {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 48px;
    background-color: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 9999px;
    transition: border-color var(--transition-base) var(--easing-ease-in-out),
                box-shadow var(--transition-base) var(--easing-ease-in-out);
}

.search-bar:focus-within[b-n2nxwnervv] {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 2px var(--color-primary-light);
}

/* --color-primary-light no tema escuro é uma tinta bem translúcida
   (rgba(79, 141, 253, 0.12)), pensada para fundos como .code-tag. Usada
   direto no anel de foco, fica quase invisível sobre o fundo escuro do
   campo — um indicador de foco tem que ser claramente visível. */
[data-theme="dark"] .search-bar:focus-within[b-n2nxwnervv] {
    box-shadow: 0 0 0 2px rgba(79, 141, 253, 0.4);
}

/* Search Icon */
.search-bar__icon[b-n2nxwnervv] {
    position: absolute;
    left: var(--space-4);
    color: var(--color-text-secondary);
    font-size: 20px;
    pointer-events: none;
    user-select: none;
}

/* Input Field */
.search-bar__input[b-n2nxwnervv] {
    flex: 1;
    width: 100%;
    padding: var(--space-4);
    padding-left: calc(var(--space-4) + 20px + var(--space-2)); /* icon width + spacing */
    padding-right: calc(var(--space-4) + 20px + var(--space-2)); /* clear button space */
    border: none;
    border-radius: 9999px;
    background-color: transparent;
    color: var(--color-text-primary);
    font-family: var(--font-family-base);
    font-size: var(--font-size-base);
    line-height: var(--line-height-normal);
    outline: none;
}

.search-bar__input[b-n2nxwnervv]::placeholder {
    color: var(--color-text-tertiary);
}

/* Remove default search input styling */
.search-bar__input[b-n2nxwnervv]::-webkit-search-decoration,
.search-bar__input[b-n2nxwnervv]::-webkit-search-cancel-button,
.search-bar__input[b-n2nxwnervv]::-webkit-search-results-button,
.search-bar__input[b-n2nxwnervv]::-webkit-search-results-decoration {
    display: none;
}

/* Clear Button */
.search-bar__clear[b-n2nxwnervv] {
    position: absolute;
    right: var(--space-3);
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: var(--touch-target-min);
    min-height: var(--touch-target-min);
    padding: var(--space-2);
    border: none;
    background: transparent;
    color: var(--color-text-secondary);
    cursor: pointer;
    border-radius: var(--radius-full);
    transition: background-color var(--transition-fast) var(--easing-ease-in-out),
                color var(--transition-fast) var(--easing-ease-in-out);
}

.search-bar__clear:hover[b-n2nxwnervv] {
    background-color: var(--color-neutral-100);
    color: var(--color-text-primary);
}

.search-bar__clear:active[b-n2nxwnervv] {
    transform: scale(0.95);
}

.search-bar__clear .material-symbols-outlined[b-n2nxwnervv] {
    font-size: 20px;
}

/* Disabled State */
.search-bar--disabled[b-n2nxwnervv] {
    opacity: 0.6;
    cursor: not-allowed;
}

.search-bar--disabled .search-bar__input[b-n2nxwnervv] {
    cursor: not-allowed;
}

/* Accessibility - Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    .search-bar[b-n2nxwnervv],
    .search-bar__clear[b-n2nxwnervv] {
        transition: none;
    }
    
    .search-bar__clear:active[b-n2nxwnervv] {
        transform: none;
    }
}

/* Dark Mode Adjustments */
:global([data-theme="dark"]) .search-bar[b-n2nxwnervv] {
    background-color: var(--color-surface);
    border-color: var(--color-border);
}

:global([data-theme="dark"]) .search-bar__input[b-n2nxwnervv] {
    color: var(--color-text-primary);
}

:global([data-theme="dark"]) .search-bar__icon[b-n2nxwnervv] {
    color: var(--color-text-tertiary);
}

:global([data-theme="dark"]) .search-bar__clear:hover[b-n2nxwnervv] {
    background-color: var(--color-neutral-700);
}
/* /Components/Layout/AppLayout.razor.rz.scp.css */
.app-layout[b-qvzpparxns] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

.app-layout__content[b-qvzpparxns] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(var(--safe-area-inset-bottom) + 16px);
}

.toast-container[b-qvzpparxns] {
    position: fixed;
    bottom: 32px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2000;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    pointer-events: none;
    width: 100%;
    max-width: 480px;
    padding: 0 16px;
    box-sizing: border-box;
}

.toast[b-qvzpparxns] {
    margin-left: 20px;
    padding: 12px 20px;
    border-radius: 10px;
    color: white;
    font-weight: var(--font-weight-semibold);
    font-size: 14px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.12);
    pointer-events: auto;
    min-width: 200px;
    max-width: min(90vw, 360px);
    text-align: center;
    animation: toastSlideUp-b-qvzpparxns 300ms ease-out;
}

@keyframes toastSlideUp-b-qvzpparxns {
    from {
        transform: translateY(20px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.toast.success[b-qvzpparxns] { background-color: var(--success-color); }
.toast.error[b-qvzpparxns] { background-color: var(--error-color); }
.toast.warning[b-qvzpparxns] { background-color: var(--warning-color); }
.toast.info[b-qvzpparxns] { background-color: var(--info-color); }

.nav-progress[b-qvzpparxns] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 2500;
    background: transparent;
    pointer-events: none;
}

.nav-progress__bar[b-qvzpparxns] {
    height: 100%;
    width: 40%;
    background: linear-gradient(90deg, transparent, var(--primary-color), transparent);
    animation: navProgress-b-qvzpparxns 700ms ease-in-out infinite;
}

@keyframes navProgress-b-qvzpparxns {
    0% { transform: translateX(-40%); opacity: 0.4; }
    50% { opacity: 1; }
    100% { transform: translateX(140%); opacity: 0.4; }
}
/* /Components/Layout/AuthMinimalLayout.razor.rz.scp.css */
.auth-layout[b-et60rgcfv5] {
    min-height: 100vh;
    min-height: 100dvh;
    background-color: #FFFFFF;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 24px 40px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* Fundo full-bleed exclusivo da tela de login (navy + arcos dourados).
   Esta regra precisa morar aqui, no escopo do layout: o CSS isolation do
   Blazor anexa o atributo de escopo ao seletor, então
   `.auth-layout:has(.login-page)` escrito em Login.razor.css viraria
   `.auth-layout[escopo-do-login]` e nunca casaria (o elemento pertence ao
   AuthMinimalLayout). O `:has()` mantém o escopo visual restrito ao /login:
   ConfiguracaoSessao e demais telas do layout continuam com o branco acima.
   Navegadores sem suporte a :has() usam o background-color escuro de
   Login.razor.css (fallback com faixa escura e margens claras). */
.auth-layout:has(.login-page)[b-et60rgcfv5] {
    background-color: #071524;
    background-image:
        /* Arco superior: círculo no canto superior DIREITO (offsets em px,
           ancorados à direita, para ser determinístico em qualquer largura de
           frame) — ponto mais baixo em y≈64px, à direita do logo e bem longe
           de título/subtítulo (que são alinhados à esquerda, y≥145px). */
        radial-gradient(circle at right 38px top -180px, transparent 0 244px, rgba(240, 196, 107, 0.5) 245px 247px, transparent 248px),
        radial-gradient(circle at -6% 78%, transparent 0 372px, rgba(220, 170, 80, 0.32) 373px 375px, transparent 376px),
        radial-gradient(ellipse 70% 55% at 88% 26%, rgba(122, 166, 210, 0.32), rgba(122, 166, 210, 0) 70%),
        linear-gradient(155deg, #050F1D 0%, #0A1E33 45%, #14324C 75%, #061221 100%);
    background-repeat: no-repeat;
}
/* /Components/Layout/ShellLayout.razor.rz.scp.css */
.shell-layout[b-bbmb7rn7lv] {
    position: fixed;
    inset: 0;
    background-color: #F5F7FA;
    display: flex;
    justify-content: center;
    width: 100%;
    /* position:fixed + inset:0 garante que o layout sempre ocupa 100% da viewport real,
       independente da URL bar do Chrome Android. Não depende de dvh (recalculo assíncrono). */
}

.mobile-frame[b-bbmb7rn7lv] {
    width: 100%;
    max-width: 480px;
    background: #FFFFFF;
    flex: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    box-shadow: 0 0 40px rgba(0,0,0,0.05);
    /* flex:1 cresce com o shell-layout que é fixed full-viewport */
}
/* /Components/Operations/ContainerDeOperacoes.razor.rz.scp.css */
.operations-backdrop[b-spz9izhoiu] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 40;
    opacity: 0;
    pointer-events: none;
    transition: opacity 200ms ease-in-out;
}

.operations-backdrop.active[b-spz9izhoiu] {
    opacity: 1;
    pointer-events: auto;
}

.operations-container[b-spz9izhoiu] {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 480px;
    height: 50vh;
    background: #FFFFFF;
    border-top: 1px solid #E2E8F0;
    border-radius: 24px 24px 0 0;
    z-index: 50;
    display: flex;
    flex-direction: column;
    animation: ops-slide-up-b-spz9izhoiu 300ms ease-out;
}

@keyframes ops-slide-up-b-spz9izhoiu {
    from { transform: translateX(-50%) translateY(100%); }
    to   { transform: translateX(-50%) translateY(0); }
}

.operations-container.active[b-spz9izhoiu] {
    transform: translateX(-50%) translateY(0);
}

.operations-top-bar[b-spz9izhoiu] {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 12px 16px 16px;
    flex-shrink: 0;
}

.operations-handle[b-spz9izhoiu] {
    width: 40px;
    height: 4px;
    background: #CBD5E1;
    border-radius: 2px;
}

.operations-close-btn[b-spz9izhoiu] {
    position: absolute;
    right: 12px;
    top: 8px;
    background: none;
    border: none;
    color: #94A3B8;
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    border-radius: 8px;
    -webkit-tap-highlight-color: transparent;
}

.operations-close-btn:active[b-spz9izhoiu] {
    background: #F1F5F9;
}

.operations-content[b-spz9izhoiu] {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
}

.empty-state[b-spz9izhoiu] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 32px 24px;
    gap: 12px;
    min-height: 200px;
}

.empty-icon[b-spz9izhoiu] {
    font-size: 64px;
    color: #CBD5E1;
}

.empty-message[b-spz9izhoiu] {
    font-size: 16px;
    font-weight: 600;
    color: #1E293B;
    margin: 0;
}

.empty-submessage[b-spz9izhoiu] {
    font-size: 14px;
    color: #64748B;
    margin: 0;
}

.btn-empty-cta[b-spz9izhoiu] {
    margin-top: 8px;
    padding: 12px 24px;
    background: #1E3A5F;
    color: #FFFFFF;
    border: none;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
    transition: background 200ms ease-in-out;
    -webkit-tap-highlight-color: transparent;
}

.btn-empty-cta:active[b-spz9izhoiu] {
    background: #16324F;
}

@media (prefers-reduced-motion: reduce) {
    .operations-backdrop[b-spz9izhoiu],
    .operations-container[b-spz9izhoiu] {
        transition: none;
        animation: none;
    }
}

.loading-state[b-spz9izhoiu] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px 24px;
    gap: 12px;
    min-height: 200px;
}

.spinner-ring[b-spz9izhoiu] {
    width: 36px;
    height: 36px;
    border: 3px solid #E2E8F0;
    border-top-color: #1E3A5F;
    border-radius: 50%;
    animation: spin-b-spz9izhoiu 0.8s linear infinite;
}

@keyframes spin-b-spz9izhoiu {
    to { transform: rotate(360deg); }
}

.loading-text[b-spz9izhoiu] {
    font-size: 13px;
    font-weight: 600;
    color: #64748B;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.operations-list[b-spz9izhoiu] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.operations-header[b-spz9izhoiu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
    padding: 0 4px;
    margin-top: 8px;
}

.operations-title[b-spz9izhoiu] {
    font-size: 16px;
    font-weight: 700;
    color: #1E293B;
    margin: 0;
}

.btn-nova-operacao[b-spz9izhoiu] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 12px;
    background: #1E3A5F;
    color: #FFFFFF;
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    min-height: 36px;
    transition: background 200ms ease-in-out;
    -webkit-tap-highlight-color: transparent;
}

.btn-nova-operacao:active[b-spz9izhoiu] {
    background: #16324F;
}

.btn-nova-operacao .material-symbols-outlined[b-spz9izhoiu] {
    font-size: 18px;
}

.operation-card[b-spz9izhoiu] {
    background: #FFFFFF;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    padding: 16px;
    cursor: pointer;
    transition: all 200ms ease-in-out;
    -webkit-tap-highlight-color: transparent;
}

.operation-card:active[b-spz9izhoiu] {
    background: #F8FAFC;
    transform: scale(0.98);
}

@media (hover: hover) {
    .operation-card:hover[b-spz9izhoiu] {
        border-color: #CBD5E1;
    }
}

.operation-header[b-spz9izhoiu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.operation-date[b-spz9izhoiu] {
    font-size: 12px;
    font-weight: 500;
    color: #64748B;
}

.btn-delete-operacao[b-spz9izhoiu] {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: #94A3B8;
    cursor: pointer;
    padding: 4px;
    min-width: 32px;
    min-height: 32px;
    border-radius: 8px;
    transition: background 150ms ease-in-out, color 150ms ease-in-out;
    -webkit-tap-highlight-color: transparent;
}

.btn-delete-operacao .material-symbols-outlined[b-spz9izhoiu] {
    font-size: 18px;
}

.btn-delete-operacao:hover[b-spz9izhoiu],
.btn-delete-operacao:active[b-spz9izhoiu] {
    background: rgba(239, 68, 68, 0.1);
    color: #EF4444;
}

.operation-justificativa[b-spz9izhoiu] {
    font-size: 14px;
    color: #475569;
    margin: 0 0 8px;
    line-height: 1.4;
}

.operation-photos[b-spz9izhoiu] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 500;
    color: #64748B;
}

.operation-photos .material-symbols-outlined[b-spz9izhoiu] {
    font-size: 16px;
}

.operation-hint[b-spz9izhoiu] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed #E2E8F0;
    font-size: 14px;
    font-weight: 500;
    color: #94A3B8;
}

.operation-hint .material-symbols-outlined[b-spz9izhoiu] {
    font-size: 17px;
}

.operation-justificativa + .operation-hint[b-spz9izhoiu] {
    margin-top: 0;
}
/* /Components/Photos/CapturaDeFoto.razor.rz.scp.css */
.camera-capture-container[b-xrc3o1ixyc] {
    display: flex;
    flex-direction: column;
    height: 100dvh;
    background: #0F172A;
    color: white;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
}

.camera-capture-header[b-xrc3o1ixyc] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #1E293B;
}

.camera-capture-header h2[b-xrc3o1ixyc] {
    flex: 1;
    margin: 0;
    font-size: 1.1rem;
    font-weight: 600;
    text-align: center;
}

.header-spacer[b-xrc3o1ixyc] {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
}

.btn-back[b-xrc3o1ixyc] {
    background: none;
    border: none;
    color: white;
    cursor: pointer;
    padding: 8px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    flex-shrink: 0;
}

.btn-back:active[b-xrc3o1ixyc] {
    background: rgba(255, 255, 255, 0.1);
}

/* Camera viewport */
.camera-viewport[b-xrc3o1ixyc] {
    flex: 1;
    position: relative;
    overflow: hidden;
}

.camera-video[b-xrc3o1ixyc] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Controls */
.capture-controls[b-xrc3o1ixyc] {
    padding: 20px 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #1E293B;
}

.btn-shutter[b-xrc3o1ixyc] {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    background: #FFFFFF;
    border: 4px solid #4F8DFD;
    cursor: pointer;
    padding: 0;
    transition: transform 0.1s, background 0.1s;
}

.btn-shutter:active[b-xrc3o1ixyc] {
    transform: scale(0.92);
    background: #E2E8F0;
}

.btn-capture[b-xrc3o1ixyc] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 32px;
    border: none;
    border-radius: 12px;
    background: #4F8DFD;
    color: white;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    min-height: 52px;
    transition: background 0.2s;
    text-decoration: none;
}

.btn-capture:active[b-xrc3o1ixyc] {
    background: #3B7AE8;
}

.btn-busy[b-xrc3o1ixyc] {
    background: #64748B;
    cursor: wait;
}

.spinning[b-xrc3o1ixyc] {
    animation: spin-b-xrc3o1ixyc 1s linear infinite;
}

@keyframes spin-b-xrc3o1ixyc {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .spinning[b-xrc3o1ixyc] {
        animation: none;
    }
}

/* Fallback mode */
.fallback-viewport[b-xrc3o1ixyc] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 24px;
    background: #162033;
}

.fallback-info[b-xrc3o1ixyc] {
    text-align: center;
    max-width: 320px;
}

.fallback-icon[b-xrc3o1ixyc] {
    font-size: 48px;
    color: #F59E0B;
    margin-bottom: 16px;
}

.fallback-title[b-xrc3o1ixyc] {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 8px;
}

.fallback-detail[b-xrc3o1ixyc] {
    font-size: 0.8rem;
    color: #94A3B8;
    margin-bottom: 16px;
    line-height: 1.4;
}

.fallback-instruction[b-xrc3o1ixyc] {
    font-size: 0.85rem;
    color: #CBD5E1;
    line-height: 1.5;
}

/* Hidden file input (visually-hidden pattern for WebKit mobile) */
.file-input-hidden[b-xrc3o1ixyc] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Error result */
.result-panel[b-xrc3o1ixyc] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    margin: 0;
}

.result-error[b-xrc3o1ixyc] {
    background: #450A0A;
    border-top: 2px solid #EF4444;
}
/* /Components/Photos/GaleriaDeFotos.razor.rz.scp.css */
.photo-gallery[b-4rmo3fzhon] {
    margin-top: 16px;
}

.photo-gallery-header[b-4rmo3fzhon] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.photo-counter[b-4rmo3fzhon] {
    font-size: 12px;
    font-weight: 600;
    color: #64748B;
}

/* Cor hardcoded acima não acompanha tema; sem isto ficava cinza médio sobre
   o fundo quase preto de .details-page, abaixo do contraste mínimo. */
[data-theme="dark"] .photo-counter[b-4rmo3fzhon] {
    color: #8E9AB0;
}

/* Carrossel horizontal: desliza entre as fotos com encaixe (scroll-snap).
   Mostra 2 fotos em mobile e 3 em telas maiores; a próxima aparece parcialmente
   para indicar que há mais fotos ao lado. */
.photo-grid[b-4rmo3fzhon] {
    --fotos-visiveis: 2.2;
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
    padding-bottom: 6px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.photo-grid > .photo-item-wrapper[b-4rmo3fzhon] {
    flex: 0 0 calc((100% - (var(--fotos-visiveis) - 1) * 8px) / var(--fotos-visiveis));
    min-width: 0;
    scroll-snap-align: start;
}

@media (min-width: 481px) {
    .photo-grid[b-4rmo3fzhon] {
        --fotos-visiveis: 3.2;
    }
}

.photo-item[b-4rmo3fzhon] {
    position: relative;
    aspect-ratio: 1;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid #E2E8F0;
}

.photo-thumbnail[b-4rmo3fzhon] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.photo-delete-overlay[b-4rmo3fzhon] {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 50%;
    background: rgba(239, 68, 68, 0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s;
    padding: 0;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.photo-item:hover .photo-delete-overlay[b-4rmo3fzhon],
.photo-item:active .photo-delete-overlay[b-4rmo3fzhon] {
    opacity: 1;
}

/* Em mobile, sempre mostrar o overlay (não há hover) */
@media (hover: none) {
    .photo-delete-overlay[b-4rmo3fzhon] {
        opacity: 1;
    }
}

.photo-delete-overlay .material-symbols-outlined[b-4rmo3fzhon] {
    font-size: 16px;
    color: #FFFFFF;
}

/* Placeholder quando não há fotos */
.photo-placeholder[b-4rmo3fzhon] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 32px;
    background: #F8FAFC;
    border: 1px dashed #CBD5E1;
    border-radius: 12px;
    color: #94A3B8;
    margin-bottom: 12px;
}

[data-theme="dark"] .photo-placeholder[b-4rmo3fzhon] {
    background: #162033;
    border-color: #24314D;
    color: #8E9AB0;
}

.photo-placeholder .material-symbols-outlined[b-4rmo3fzhon] {
    font-size: 48px;
    margin-bottom: 8px;
}

.photo-placeholder p[b-4rmo3fzhon] {
    font-size: 14px;
    margin: 0;
}

/* Botão de captura */
.photo-actions[b-4rmo3fzhon] {
    display: flex;
    justify-content: center;
}

.camera-button[b-4rmo3fzhon] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    background: #1E3A5F;
    color: #FFFFFF;
    border: none;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
    transition: opacity 0.2s;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.camera-button:active[b-4rmo3fzhon] {
    opacity: 0.8;
}

.camera-button-disabled[b-4rmo3fzhon] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}

.camera-button .material-symbols-outlined[b-4rmo3fzhon] {
    font-size: 20px;
}

.camera-button-text[b-4rmo3fzhon] {
    font-size: 14px;
}

/* Wrapper para thumbnail + descrição */
.photo-item-wrapper[b-4rmo3fzhon] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Campo de descrição */
.photo-description[b-4rmo3fzhon] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.description-input[b-4rmo3fzhon] {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    font-size: 12px;
    padding: 4px 8px;
    border: 1px solid #E2E8F0;
    border-radius: 6px;
    color: #334155;
    background: #F8FAFC;
    min-height: 28px;
    outline: none;
    transition: border-color 0.2s;
}

.description-input:focus[b-4rmo3fzhon] {
    border-color: #1E3A5F;
}

.description-input[b-4rmo3fzhon]::placeholder {
    color: #94A3B8;
}

[data-theme="dark"] .description-input[b-4rmo3fzhon] {
    color: #F8FAFC;
    background: #162033;
    border-color: #24314D;
}

[data-theme="dark"] .description-input:focus[b-4rmo3fzhon] {
    border-color: #4F8DFD;
}

[data-theme="dark"] .description-input[b-4rmo3fzhon]::placeholder {
    color: #8E9AB0;
}

.char-counter[b-4rmo3fzhon] {
    font-size: 10px;
    color: #94A3B8;
    white-space: nowrap;
    text-align: right;
}

[data-theme="dark"] .char-counter[b-4rmo3fzhon] {
    color: #8E9AB0;
}
/* /Components/Photos/VisualizadorDeFoto.razor.rz.scp.css */
.foto-viewer-backdrop[b-5msehl9o12] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.9);
    z-index: 900;
    animation: foto-viewer-fade-in-b-5msehl9o12 150ms ease-out;
}

.foto-viewer[b-5msehl9o12] {
    position: fixed;
    inset: 0;
    z-index: 901;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 24px;
    box-sizing: border-box;
    pointer-events: none;
}

@keyframes foto-viewer-fade-in-b-5msehl9o12 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .foto-viewer-backdrop[b-5msehl9o12] {
        animation: none;
    }
}

.foto-viewer-img[b-5msehl9o12] {
    max-width: 100%;
    max-height: calc(100dvh - 96px);
    object-fit: contain;
    border-radius: 8px;
    pointer-events: auto;
}

.foto-viewer-descricao[b-5msehl9o12] {
    max-width: 100%;
    margin: 0;
    padding: 8px 16px;
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.6);
    color: #FFFFFF;
    font-size: 14px;
    text-align: center;
    pointer-events: auto;
}

.foto-viewer-close[b-5msehl9o12] {
    position: fixed;
    top: max(16px, env(safe-area-inset-top));
    right: 16px;
    z-index: 902;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    pointer-events: auto;
    -webkit-tap-highlight-color: transparent;
}

.foto-viewer-close:active[b-5msehl9o12] {
    background: rgba(255, 255, 255, 0.3);
}

.foto-viewer-close .material-symbols-outlined[b-5msehl9o12] {
    font-size: 24px;
}

.foto-viewer-nav[b-5msehl9o12] {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    z-index: 902;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    pointer-events: auto;
    -webkit-tap-highlight-color: transparent;
}

.foto-viewer-nav:active[b-5msehl9o12] {
    background: rgba(255, 255, 255, 0.3);
}

.foto-viewer-nav-prev[b-5msehl9o12] {
    left: 16px;
}

.foto-viewer-nav-next[b-5msehl9o12] {
    right: 16px;
}

.foto-viewer-nav .material-symbols-outlined[b-5msehl9o12] {
    font-size: 28px;
}
/* /Components/Recognition/LeitorDePlaqueta.razor.rz.scp.css */
.plate-reader-container[b-coac5zp5wu] {
    display: flex;
    flex-direction: column;
    height: 100dvh;
    background: #0F172A;
    color: white;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
}

.plate-reader-header[b-coac5zp5wu] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #1E293B;
}

.plate-reader-header h2[b-coac5zp5wu] {
    flex: 1;
    margin: 0;
    font-size: 1.1rem;
    font-weight: 600;
}

.btn-back[b-coac5zp5wu] {
    background: none;
    border: none;
    color: white;
    cursor: pointer;
    padding: 8px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
}

.btn-back:active[b-coac5zp5wu] {
    background: rgba(255, 255, 255, 0.1);
}

.reader-status[b-coac5zp5wu] {
    display: flex;
    gap: 6px;
}

.status-badge[b-coac5zp5wu] {
    font-size: 0.7rem;
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 600;
    text-transform: uppercase;
}

.status-ok[b-coac5zp5wu] {
    background: #22C55E;
    color: #052E16;
}

.status-loading[b-coac5zp5wu] {
    background: #F59E0B;
    color: #451A03;
}

.status-error[b-coac5zp5wu] {
    background: #EF4444;
    color: #450A0A;
}

/* Camera viewport */
.camera-viewport[b-coac5zp5wu] {
    flex: 1;
    position: relative;
    overflow: hidden;
}

.camera-video[b-coac5zp5wu] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.scan-overlay[b-coac5zp5wu] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.scan-frame[b-coac5zp5wu] {
    width: 70%;
    height: 25%;
    border: 2px solid rgba(79, 141, 253, 0.8);
    border-radius: 8px;
    box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.4);
}

.scan-hint[b-coac5zp5wu] {
    margin-top: 16px;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
    text-align: center;
}

/* Controls */
.reader-controls[b-coac5zp5wu] {
    padding: 16px;
    display: flex;
    justify-content: center;
    background: #1E293B;
}

.btn-read[b-coac5zp5wu] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 32px;
    border: none;
    border-radius: 12px;
    background: #4F8DFD;
    color: white;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    min-height: 52px;
    transition: background 0.2s;
    text-decoration: none;
}

.btn-read:active[b-coac5zp5wu] {
    background: #3B7AE8;
}

.btn-reading[b-coac5zp5wu] {
    background: #64748B;
    cursor: wait;
}

.spinning[b-coac5zp5wu] {
    animation: spin-b-coac5zp5wu 1s linear infinite;
}

@keyframes spin-b-coac5zp5wu {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Results */
.result-panel[b-coac5zp5wu] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    margin: 0;
}

.result-success[b-coac5zp5wu] {
    background: #052E16;
    border-top: 2px solid #22C55E;
}

.result-warning[b-coac5zp5wu] {
    background: #451A03;
    border-top: 2px solid #F59E0B;
}

.result-error[b-coac5zp5wu] {
    background: #450A0A;
    border-top: 2px solid #EF4444;
}

.result-panel.dismissible[b-coac5zp5wu] {
    width: 100%;
    box-sizing: border-box;
    cursor: pointer;
}

.result-error.dismissible:active[b-coac5zp5wu] {
    background: #5C1010;
}

.result-warning.dismissible:active[b-coac5zp5wu] {
    background: #5C3A05;
}

.result-panel.dismissible:focus-visible[b-coac5zp5wu] {
    outline: 2px solid #94A3B8;
    outline-offset: -2px;
}

.dismiss-icon[b-coac5zp5wu] {
    margin-left: auto;
    opacity: 0.7;
}

.result-content[b-coac5zp5wu] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
}

.result-content strong[b-coac5zp5wu] {
    display: block;
    font-size: 0.95rem;
}

.result-detail[b-coac5zp5wu] {
    margin: 2px 0 0;
    font-size: 0.75rem;
    opacity: 0.8;
}

.btn-navigate[b-coac5zp5wu] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 8px 16px;
    border: none;
    border-radius: 8px;
    background: #22C55E;
    color: #052E16;
    font-weight: 600;
    font-size: 0.85rem;
    cursor: pointer;
    min-width: 44px;
    min-height: 44px;
}

.btn-navigate:active[b-coac5zp5wu] {
    background: #16A34A;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .spinning[b-coac5zp5wu] {
        animation: none;
    }
}


/* Fallback mode */
.fallback-viewport[b-coac5zp5wu] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 24px;
    background: #162033;
}

.fallback-info[b-coac5zp5wu] {
    text-align: center;
    max-width: 320px;
}

.fallback-icon[b-coac5zp5wu] {
    font-size: 48px;
    color: #F59E0B;
    margin-bottom: 16px;
}

.fallback-title[b-coac5zp5wu] {
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 8px;
}

.fallback-detail[b-coac5zp5wu] {
    font-size: 0.8rem;
    color: #94A3B8;
    margin-bottom: 16px;
    line-height: 1.4;
}

.fallback-instruction[b-coac5zp5wu] {
    font-size: 0.85rem;
    color: #CBD5E1;
    line-height: 1.5;
}

/* Hidden file input (visually-hidden pattern for WebKit mobile) */
.file-input-hidden[b-coac5zp5wu] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Loading camera state */
.loading-camera[b-coac5zp5wu] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #0F172A;
    color: #94A3B8;
    gap: 12px;
}

.loading-camera .material-symbols-outlined[b-coac5zp5wu] {
    font-size: 32px;
}


/* Auto-scanning state */
.btn-scanning[b-coac5zp5wu] {
    background: #1E293B;
    border: 2px solid #4F8DFD;
    cursor: default;
}

/* Feedback ao vivo da leitura automática */
.scan-controls[b-coac5zp5wu] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    max-width: 420px;
}

.scan-live[b-coac5zp5wu] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: #162033;
    border: 1px solid #334155;
    border-radius: 10px;
}

.scan-live .material-symbols-outlined[b-coac5zp5wu] {
    color: #4F8DFD;
    flex-shrink: 0;
}

.scan-live-text[b-coac5zp5wu] {
    flex: 1;
    min-width: 0;
}

.scan-live-text strong[b-coac5zp5wu] {
    display: block;
    font-size: 0.9rem;
}

.scan-live-detail[b-coac5zp5wu] {
    margin: 2px 0 0;
    font-size: 0.75rem;
    color: #94A3B8;
    line-height: 1.35;
}

.btn-manual[b-coac5zp5wu] {
    justify-content: center;
    width: 100%;
}

/* Busca manual (plaqueta ilegível pelo scanner) */
.btn-manual-toggle[b-coac5zp5wu] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-sizing: border-box;
    width: calc(100% - 32px);
    max-width: 420px;
    padding: 14px 32px;
    margin: 16px auto;
    border: none;
    border-radius: 12px;
    background: #4F8DFD;
    color: white;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    min-height: 52px;
    transition: background 0.2s;
}

.btn-manual-toggle:active[b-coac5zp5wu] {
    background: #3B7AE8;
}

.manual-search-panel[b-coac5zp5wu] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 16px;
    background: #1E293B;
}

.manual-search-input[b-coac5zp5wu] {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #334155;
    border-radius: 10px;
    background: #0F172A;
    color: white;
    font-size: 1rem;
    box-sizing: border-box;
}

.manual-search-input:focus[b-coac5zp5wu] {
    outline: none;
    border-color: #4F8DFD;
}

.manual-search-actions[b-coac5zp5wu] {
    display: flex;
    gap: 10px;
}

.btn-manual-cancel[b-coac5zp5wu],
.btn-manual-confirm[b-coac5zp5wu] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex: 1;
    padding: 10px 16px;
    border: none;
    border-radius: 10px;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
}

.btn-manual-cancel[b-coac5zp5wu] {
    background: #334155;
    color: #E2E8F0;
}

.btn-manual-cancel:active[b-coac5zp5wu] {
    background: #475569;
}

.btn-manual-confirm[b-coac5zp5wu] {
    background: #4F8DFD;
    color: white;
}

.btn-manual-confirm:active[b-coac5zp5wu] {
    background: #3B7AE8;
}

.btn-manual-cancel:disabled[b-coac5zp5wu],
.btn-manual-confirm:disabled[b-coac5zp5wu] {
    opacity: 0.6;
    cursor: not-allowed;
}
/* /Components/Sync/IndicadorDeSincronizacao.razor.rz.scp.css */
/* SyncStatusIndicator — compact sync status display for mobile header */

.sync-indicator[b-rw678ktywo] {
    display: flex;
    align-items: center;
}

.sync-status[b-rw678ktywo] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 8px;
    font-size: 0.8rem;
    line-height: 1.2;
    transition: background-color 200ms ease, color 200ms ease;
}

/* States */
.sync-status--ok[b-rw678ktywo] {
    color: #16a34a;
    background: #f0fdf4;
}

.sync-status--pending[b-rw678ktywo] {
    color: #d97706;
    background: #fffbeb;
}

.sync-status--syncing[b-rw678ktywo] {
    color: #2563eb;
    background: #eff6ff;
}

.sync-status--success[b-rw678ktywo] {
    color: #16a34a;
    background: #f0fdf4;
}

.sync-status--error[b-rw678ktywo] {
    color: #dc2626;
    background: #fef2f2;
}

.sync-status--offline[b-rw678ktywo] {
    color: #6b7280;
    background: #f3f4f6;
}

/* Icon */
.sync-status .material-icons[b-rw678ktywo] {
    font-size: 18px;
    flex-shrink: 0;
}

/* Spinning animation for sync icon */
.sync-icon-spin[b-rw678ktywo] {
    animation: spin-b-rw678ktywo 1.5s linear infinite;
}

@keyframes spin-b-rw678ktywo {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Text */
.sync-text[b-rw678ktywo] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
}

/* Button */
.sync-btn[b-rw678ktywo] {
    padding: 4px 10px;
    border: 1px solid currentColor;
    border-radius: 6px;
    background: transparent;
    color: inherit;
    font-size: 0.75rem;
    font-weight: 500;
    cursor: pointer;
    min-height: 44px;
    min-width: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 150ms ease;
}

.sync-btn:hover[b-rw678ktywo] {
    background: rgba(0, 0, 0, 0.05);
}

.sync-btn:active[b-rw678ktywo] {
    background: rgba(0, 0, 0, 0.1);
}

.sync-btn--retry[b-rw678ktywo] {
    border-color: #dc2626;
    color: #dc2626;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .sync-icon-spin[b-rw678ktywo] {
        animation: none;
    }

    .sync-status[b-rw678ktywo] {
        transition: none;
    }
}

/* Dark mode support (preferência do sistema operacional, quando o app não
   tem tema explícito definido) */
@media (prefers-color-scheme: dark) {
    .sync-status--ok[b-rw678ktywo] {
        color: #4ade80;
        background: #052e16;
    }

    .sync-status--pending[b-rw678ktywo] {
        color: #fbbf24;
        background: #451a03;
    }

    .sync-status--syncing[b-rw678ktywo] {
        color: #60a5fa;
        background: #172554;
    }

    .sync-status--success[b-rw678ktywo] {
        color: #4ade80;
        background: #052e16;
    }

    .sync-status--error[b-rw678ktywo] {
        color: #f87171;
        background: #450a0a;
    }

    .sync-status--offline[b-rw678ktywo] {
        color: #9ca3af;
        background: #1f2937;
    }

    .sync-btn:hover[b-rw678ktywo] {
        background: rgba(255, 255, 255, 0.1);
    }
}

/* Dark mode support (toggle explícito do app via [data-theme="dark"]).
   Precisa existir separado do @media acima: o app pode estar no tema escuro
   mesmo com o SO no claro, e vice-versa. Sem isto, o indicador ficava com o
   fundo pastel do tema claro e o texto sobrescrito por .sync-status global
   de dark-mode.css (pensado para a página de Tombamentos), virando texto
   quase invisível sobre fundo quase branco. */
[data-theme="dark"] .sync-status--ok[b-rw678ktywo] {
    color: #4ade80 !important;
    background: #052e16 !important;
}

[data-theme="dark"] .sync-status--pending[b-rw678ktywo] {
    color: #fbbf24 !important;
    background: #451a03 !important;
}

[data-theme="dark"] .sync-status--syncing[b-rw678ktywo] {
    color: #60a5fa !important;
    background: #172554 !important;
}

[data-theme="dark"] .sync-status--success[b-rw678ktywo] {
    color: #4ade80 !important;
    background: #052e16 !important;
}

[data-theme="dark"] .sync-status--error[b-rw678ktywo] {
    color: #f87171 !important;
    background: #450a0a !important;
}

[data-theme="dark"] .sync-status--offline[b-rw678ktywo] {
    color: #9ca3af !important;
    background: #1f2937 !important;
}

[data-theme="dark"] .sync-btn:hover[b-rw678ktywo] {
    background: rgba(255, 255, 255, 0.1) !important;
}
/* /Pages/Bens.razor.rz.scp.css */
.search-section[b-6xpbmyopv5] {
    padding: var(--space-3, 12px) var(--space-4, 16px);
    background: var(--color-surface, #FFFFFF);
}

.cta-section[b-6xpbmyopv5] {
    padding: 0 var(--space-4, 16px) var(--space-3, 12px);
    background: var(--color-surface, #FFFFFF);
}

.primary-cta[b-6xpbmyopv5] {
    width: 100%;
    padding: var(--space-3, 12px) var(--space-4, 16px);
    background: var(--color-primary, #2F6FED);
    color: #FFFFFF;
    border: none;
    border-radius: var(--radius-xl, 16px);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2, 8px);
    box-shadow: 0 4px 12px rgba(47, 111, 237, 0.25);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--transition-fast, 150ms) var(--easing-ease-out, cubic-bezier(0, 0, 0.2, 1)),
                box-shadow var(--transition-fast, 150ms) var(--easing-ease-out, cubic-bezier(0, 0, 0.2, 1));
    font-family: var(--font-family-base, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
    min-height: var(--touch-target-min, 44px);
}

.primary-cta:active[b-6xpbmyopv5] {
    transform: scale(0.98);
    box-shadow: 0 2px 8px rgba(47, 111, 237, 0.2);
}

.primary-cta .material-symbols-outlined[b-6xpbmyopv5] {
    font-size: 20px;
}

.primary-cta-text[b-6xpbmyopv5] {
    font-size: var(--font-size-sm, 13px);
    font-weight: var(--font-weight-bold, 700);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.secondary-cta[b-6xpbmyopv5] {
    width: 100%;
    margin-top: var(--space-2, 8px);
    padding: var(--space-3, 12px) var(--space-4, 16px);
    background: transparent;
    color: var(--color-warning, #F59E0B);
    border: 1.5px dashed var(--color-warning, #F59E0B);
    border-radius: var(--radius-xl, 16px);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2, 8px);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--transition-fast, 150ms) var(--easing-ease-out, cubic-bezier(0, 0, 0.2, 1));
}

.secondary-cta:active[b-6xpbmyopv5] {
    transform: scale(0.98);
}

.secondary-cta .material-symbols-outlined[b-6xpbmyopv5] {
    font-size: 20px;
}

.secondary-cta-text[b-6xpbmyopv5] {
    font-size: var(--font-size-sm, 13px);
    font-weight: var(--font-weight-bold, 700);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.filter-chips-section[b-6xpbmyopv5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2, 8px);
    padding: var(--space-3, 12px) var(--space-4, 16px);
    background: var(--color-bg, #F8FAFC);
}

.clear-filters-btn[b-6xpbmyopv5] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1, 4px);
    padding: var(--space-2, 8px) var(--space-3, 12px);
    border: 1px solid var(--color-border, #E5E7EB);
    border-radius: var(--radius-full, 9999px);
    background: var(--color-surface, #FFFFFF);
    color: var(--color-text-secondary, #6B7280);
    font-size: var(--font-size-sm, 13px);
    font-weight: var(--font-weight-medium, 500);
    cursor: pointer;
    transition: all var(--transition-fast, 150ms) var(--easing-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
    -webkit-tap-highlight-color: transparent;
    min-height: var(--touch-target-min, 44px);
}

.clear-filters-btn:hover[b-6xpbmyopv5] {
    background: var(--color-neutral-50, #F9FAFB);
    border-color: var(--color-neutral-300, #D1D5DB);
}

.clear-filters-btn:active[b-6xpbmyopv5] {
    transform: scale(0.97);
}

.clear-filters-btn .material-symbols-outlined[b-6xpbmyopv5] {
    font-size: 16px;
}

/* Os dois blocos (Localizacao e contagem) sao Cards Flat empilhados. O stretch
   faz cada um ocupar a largura toda — sem ele o Card encolhe ate o conteudo e a
   borda fica com largura irregular entre os dois. */
.summary-bar[b-6xpbmyopv5] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-2, 8px);
    padding: var(--space-2, 8px) var(--space-3, 12px);
    background: var(--color-bg, #F8FAFC);
    /* Âncora do menu de ordenação — ele é irmão do Card (o .card tem
       overflow:hidden e cortaria um popup posicionado dentro dele). */
    position: relative;
}

/* O Card usa 16px de padding, generoso demais para uma barra de resumo em tela
   de celular. ::deep e necessario para atravessar o isolamento de CSS do Card. */
/* Neutraliza a classe .card GLOBAL do components.css:53, que colide de nome com
 * o componente Base/Card e se soma a ele:
 *   padding 16px      — o componente aplica padding no header e no body, nunca no
 *                       proprio .card; a regra global empilha um segundo padding
 *                       por fora, engordando o bloco
 *   box-shadow        — o Flat foi escolhido justamente por nao ter sombra
 *   :hover translateY — levanta o bloco 2px, e no celular isso dispara ao toque.
 *                       Container de informacao nao reage a toque.
 *
 * A colisao existia desde que o componente foi escrito e so apareceu agora,
 * porque a #161 e o primeiro uso dele. Neutralizado aqui, no escopo desta tela,
 * em vez de mexer no components.css — que outras telas podem estar usando. */
.summary-bar[b-6xpbmyopv5]  .card {
    padding: 0;
    box-shadow: none;
    transition: none;
}

.summary-bar[b-6xpbmyopv5]  .card:hover {
    box-shadow: none;
    transform: none;
}

.summary-bar[b-6xpbmyopv5]  .card__body {
    padding: var(--space-2, 8px) var(--space-3, 12px);
}

.summary-count[b-6xpbmyopv5] {
    /* Flex com alinhamento por linha de base (baseline): o sufixo "n CAPTURADOS"
       e o separador usam fontes menores; alinhar pelas baselines aproxima a
       margem inferior dos glifos uns aos outros. Com align-items:center eles
       seriam centrados na caixa de linha mais alta do "n BENS", terminando
       acima da baseline e parecendo deslocados para cima. */
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-1, 4px);
    font-size: var(--font-size-base, 14px);
    font-weight: var(--font-weight-bold, 700);
    color: var(--color-primary, #2F6FED);
}

/* Separador "|" entre "n BENS" e "n CAPTURADOS", no mesmo estilo discreto
   do grupo de capturados. line-height:1 alinha a caixa do glifo à fonte,
   permitindo que o flex centralize de forma óptica os tamanhos diferentes. */
.capturados-separador[b-6xpbmyopv5] {
    font-size: 11px;
    line-height: 1;
    font-weight: var(--font-weight-semibold, 600);
    color: var(--color-text-secondary, #6B7280);
}

/* Contagem de bens já capturados, exibida ao lado de "n BENS". Menos destacada
   que o total (fonte menor, peso menor e cor secundária), mas com ícone verde —
   o mesmo tom da borda esquerda dos cards capturados — para criar a ponte
   visual entre o número e o card. Aparece sempre, inclusive com zero. */
.capturados-contador[b-6xpbmyopv5] {
    display: inline-flex;
    /* Baseline também dentro do grupo: o ícone e o texto compartilham a mesma
       linha de base, e é ela que o flex do .summary-count usa para alinhar o
       sufixo com "n BENS" — aproximando as margens inferiores dos textos. */
    align-items: baseline;
    gap: 3px;
    font-size: 11px;
    line-height: 1;
    font-weight: var(--font-weight-semibold, 600);
    color: var(--color-text-secondary, #6B7280);
}

.capturados-contador .capturados-icone[b-6xpbmyopv5] {
    font-size: 13px;
    line-height: 1;
    color: var(--color-success, #10B981);
    /* O glifo dos Material Symbols não encosta na baseline da fonte, então o
       alinhamento baseline do flex deixa a ponta do ícone um pouco acima da
       margem inferior dos textos. translateY faz o ajuste óptico fino. */
    transform: translateY(2px);
}

/* ── Seletor de ordenação (à direita do contador de bens) ───────────────────── */

.summary-row[b-6xpbmyopv5] {
    display: flex;
    align-items: center;
    width: 100%;
    gap: var(--space-2, 8px);
}

.ordenacao-btn[b-6xpbmyopv5] {
    display: flex;
    align-items: center;
    /* Empurra o botão para a ponta direita da linha (e, por consequência, do
       Card): a margem esquerda automática absorve todo o espaço livre. */
    margin-left: auto;
    flex-shrink: 0;
    gap: 4px;
    padding: 4px 10px;
    min-height: var(--touch-target-min, 44px);
    background: none;
    border: 1px solid var(--color-border, #E5E7EB);
    border-radius: 999px;
    color: var(--color-primary, #2F6FED);
    font-size: 12px;
    font-weight: var(--font-weight-semibold, 600);
    white-space: nowrap;
    cursor: pointer;
    transition: background 150ms ease-in-out;
    -webkit-tap-highlight-color: transparent;
}

.ordenacao-btn .material-symbols-outlined[b-6xpbmyopv5] {
    font-size: 16px;
}

.ordenacao-btn:active[b-6xpbmyopv5] {
    background: var(--color-primary-light, #EEF2FF);
}

/* Backdrop transparente de tela cheia: fecha o menu ao tocar fora e — como é um
   irmão posterior do Card — também faz o segundo toque no próprio botão fechar. */
.ordenacao-backdrop[b-6xpbmyopv5] {
    position: fixed;
    inset: 0;
    z-index: 35;
    background: transparent;
}

.ordenacao-menu[b-6xpbmyopv5] {
    position: absolute;
    top: calc(100% - 4px);
    right: var(--space-3, 12px);
    z-index: 36;
    display: flex;
    flex-direction: column;
    min-width: 210px;
    background: var(--color-surface, #FFFFFF);
    border: 1px solid var(--color-border, #E5E7EB);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.16);
    overflow: hidden;
    animation: ordenacaoMenuFadeIn-b-6xpbmyopv5 150ms cubic-bezier(0, 0, 0.2, 1);
}

@keyframes ordenacaoMenuFadeIn-b-6xpbmyopv5 {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.ordenacao-item[b-6xpbmyopv5] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    min-height: var(--touch-target-min, 44px);
    background: none;
    border: none;
    font-size: 14px;
    color: var(--color-text, #111827);
    text-align: left;
    cursor: pointer;
    transition: background 150ms ease-in-out;
    -webkit-tap-highlight-color: transparent;
}

.ordenacao-item:active[b-6xpbmyopv5] {
    background: var(--color-bg, #F8FAFC);
}

.ordenacao-item.ativo[b-6xpbmyopv5] {
    color: var(--color-primary, #2F6FED);
    font-weight: var(--font-weight-semibold, 600);
}

.ordenacao-check[b-6xpbmyopv5] {
    font-size: 18px;
}

.ordenacao-check.invisivel[b-6xpbmyopv5] {
    visibility: hidden;
}

.content-area[b-6xpbmyopv5] {
    flex: 1;
    padding: var(--space-3, 12px) var(--space-3, 12px) 120px;
    display: flex;
    flex-direction: column;
    gap: var(--space-2, 8px);
    background: var(--color-bg, #F8FAFC);
}

.bens-lista[b-6xpbmyopv5] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2, 8px);
}

.loading-state[b-6xpbmyopv5] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--space-8, 32px) var(--space-6, 24px);
    text-align: center;
    gap: var(--space-3, 12px);
    min-height: 300px;
}

.spinner-ring[b-6xpbmyopv5] {
    width: 36px;
    height: 36px;
    border: 3px solid var(--color-border, #E5E7EB);
    border-top-color: var(--color-primary, #2F6FED);
    border-radius: var(--radius-full, 9999px);
    animation: spin-b-6xpbmyopv5 0.8s linear infinite;
}

@keyframes spin-b-6xpbmyopv5 {
    to { transform: rotate(360deg); }
}

.loading-text[b-6xpbmyopv5] {
    font-size: var(--font-size-sm, 13px);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--color-text-secondary, #6B7280);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.pagination[b-6xpbmyopv5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4, 16px) 0;
    margin-top: var(--space-2, 8px);
}

.pag-btn[b-6xpbmyopv5] {
    display: flex;
    align-items: center;
    gap: var(--space-1, 4px);
    padding: var(--space-2, 8px) var(--space-3, 12px);
    border: 1px solid var(--color-border, #E5E7EB);
    border-radius: var(--radius-md, 12px);
    background: var(--color-surface, #FFFFFF);
    font-size: var(--font-size-xs, 12px);
    font-weight: var(--font-weight-bold, 700);
    color: var(--color-primary, #2F6FED);
    cursor: pointer;
    transition: all var(--transition-base, 200ms) var(--easing-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1));
    -webkit-tap-highlight-color: transparent;
    min-height: var(--touch-target-min, 44px);
}

.pag-btn:hover:not(:disabled)[b-6xpbmyopv5] {
    background: var(--color-neutral-50, #F9FAFB);
    box-shadow: var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05));
}

.pag-btn:active:not(:disabled)[b-6xpbmyopv5] {
    transform: scale(0.97);
}

.pag-btn:disabled[b-6xpbmyopv5] {
    opacity: 0.4;
    cursor: not-allowed;
}

.pag-btn .material-symbols-outlined[b-6xpbmyopv5] {
    font-size: 16px;
}

.pag-info[b-6xpbmyopv5] {
    font-size: var(--font-size-sm, 13px);
    font-weight: var(--font-weight-semibold, 600);
    color: var(--color-text-secondary, #6B7280);
}

@media (prefers-reduced-motion: reduce) {
    .primary-cta[b-6xpbmyopv5],
    .secondary-cta[b-6xpbmyopv5],
    .clear-filters-btn[b-6xpbmyopv5],
    .pag-btn[b-6xpbmyopv5],
    .header-action[b-6xpbmyopv5] {
        transition: none;
    }

    .primary-cta:active[b-6xpbmyopv5],
    .secondary-cta:active[b-6xpbmyopv5],
    .clear-filters-btn:active[b-6xpbmyopv5],
    .pag-btn:active[b-6xpbmyopv5] {
        transform: none;
    }

    .spinner-ring[b-6xpbmyopv5] {
        animation: none;
        border-top-color: var(--color-border, #E5E7EB);
    }
}

@media (min-width: 768px) {
    .content-area[b-6xpbmyopv5] {
        padding: var(--space-4, 16px) var(--space-4, 16px) 120px;
    }

    .filter-chips-section[b-6xpbmyopv5] {
        padding: var(--space-4, 16px);
    }
}

/* Dark mode — botão CTA com gradiente premium */
:global([data-theme="dark"]) .primary-cta[b-6xpbmyopv5] {
    background: linear-gradient(90deg, #4F8DFD, #6AA3FF);
    box-shadow: 0 4px 12px rgba(79, 141, 253, 0.3);
}

:global([data-theme="dark"]) .primary-cta:active[b-6xpbmyopv5] {
    background: linear-gradient(90deg, #3D7AF0, #4F8DFD);
    box-shadow: 0 2px 8px rgba(79, 141, 253, 0.2);
}

:global([data-theme="dark"]) .search-section[b-6xpbmyopv5],
:global([data-theme="dark"]) .cta-section[b-6xpbmyopv5] {
    background: var(--color-bg);
}

:global([data-theme="dark"]) .section-label[b-6xpbmyopv5] {
    color: var(--color-text-secondary);
}

:global([data-theme="dark"]) .section-count[b-6xpbmyopv5] {
    color: var(--color-primary);
}
/* /Pages/ConfiguracaoSessao.razor.rz.scp.css */
.config-page[b-rwtrovg8u2] {
    width: 100%;
    max-width: 400px;
    display: flex;
    flex-direction: column;
    flex: 1;
    padding-top: 16px;
}

.header-wrapper[b-rwtrovg8u2] {
    align-self: stretch;
    margin: 0 -24px;
}

.config-header[b-rwtrovg8u2] {
    margin-top: 20px;
    margin-bottom: 40px;
    outline: none;
}

.config-title[b-rwtrovg8u2] {
    font-size: 28px;
    font-weight: 700;
    color: var(--color-text-primary, #1E293B);
    margin: 0 0 8px;
    outline: none;
}

.config-subtitle[b-rwtrovg8u2] {
    font-size: 14px;
    color: var(--color-text-secondary, #94A3B8);
    margin: 0;
}

.config-form[b-rwtrovg8u2] {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.form-group[b-rwtrovg8u2] {
    margin-bottom: 20px;
}

.input-label[b-rwtrovg8u2] {
    display: block;
    font-size: 10px;
    font-weight: 700;
    color: var(--color-text-tertiary, #94A3B8);
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.select-wrapper[b-rwtrovg8u2] {
    position: relative;
}

.input-field[b-rwtrovg8u2] {
    width: 100%;
    padding: 14px 16px;
    background: var(--color-surface, #FFFFFF);
    border: 1px solid var(--color-border, #E2E8F0);
    border-radius: 12px;
    font-size: 16px;
    color: var(--color-text-primary, #1E293B);
    appearance: none;
    cursor: pointer;
}

.input-field:focus[b-rwtrovg8u2] {
    outline: none;
    border-color: var(--color-primary, #1E3A5F);
    box-shadow: 0 0 0 4px rgba(96, 165, 250, 0.1);
}

.input-field:disabled[b-rwtrovg8u2] {
    background: var(--color-neutral-50, #F8FAFC);
    cursor: not-allowed;
    color: var(--color-text-disabled, #CBD5E1);
}

.select-icon[b-rwtrovg8u2] {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-text-secondary, #94A3B8);
    pointer-events: none;
}

.config-note[b-rwtrovg8u2] {
    font-size: 12px;
    color: var(--color-text-tertiary, #CBD5E1);
    text-align: center;
    margin: 40px 0 24px;
    line-height: 1.5;
}

.start-session-button[b-rwtrovg8u2] {
    width: 100%;
    padding: 18px;
    background: var(--color-primary, #1E293B);
    color: #FFFFFF;
    border: none;
    border-radius: 999px;
    font-size: 16px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    cursor: pointer;
    margin-top: auto;
    margin-bottom: 20px;
}

.start-session-button:disabled[b-rwtrovg8u2] {
    background: var(--color-text-disabled, #CBD5E1);
    cursor: not-allowed;
}

/* Dark mode — botão com gradiente premium */
:global([data-theme="dark"]) .start-session-button[b-rwtrovg8u2] {
    background: linear-gradient(90deg, #4F8DFD, #6AA3FF);
}

:global([data-theme="dark"]) .start-session-button:hover[b-rwtrovg8u2] {
    background: linear-gradient(90deg, #6AA3FF, #7DB5FF);
}

:global([data-theme="dark"]) .start-session-button:active[b-rwtrovg8u2] {
    background: linear-gradient(90deg, #3D7AF0, #4F8DFD);
}

:global([data-theme="dark"]) .input-field:hover[b-rwtrovg8u2] {
    background: var(--color-surface-elevated);
}
/* /Pages/DetalhesDoBem.razor.rz.scp.css */
.details-page[b-46wh19xtbt] {
    display: flex;
    flex-direction: column;
    flex: 1;
    background: #FFFFFF;
}

.app-header[b-46wh19xtbt] {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: #FFFFFF;
    border-bottom: 1px solid #E5E7EB;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.header-brand[b-46wh19xtbt] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.brand-logo[b-46wh19xtbt] {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.brand-name[b-46wh19xtbt] {
    font-size: 13px;
    font-weight: 700;
    color: #2F6FED;
    letter-spacing: 0.3px;
}

.icon-button.back[b-46wh19xtbt] {
    background: none;
    border: none;
    color: #6B7280;
    cursor: pointer;
    padding: 8px;
    margin-left: -8px;
    display: flex;
    align-items: center;
}

.header-info[b-46wh19xtbt] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.header-title[b-46wh19xtbt] {
    font-size: 12px;
    font-weight: 700;
    color: #1E293B;
}

.header-subtitle[b-46wh19xtbt] {
    font-size: 10px;
    color: #6B7280;
    letter-spacing: 0.05em;
}

.image-section[b-46wh19xtbt] {
    margin-top: 16px;
}

.details-main[b-46wh19xtbt] {
    flex: 1;
    padding-bottom: 100px;
}

.image-container[b-46wh19xtbt] {
    position: relative;
    width: 100%;
    aspect-ratio: 4/3;
    background: #F8FAFC;
    border-radius: 16px;
    border: 1px solid #E2E8F0;
    overflow: hidden;
}

.bem-image[b-46wh19xtbt] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.image-placeholder[b-46wh19xtbt] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #CBD5E1;
}

.image-placeholder .material-symbols-outlined[b-46wh19xtbt] {
    font-size: 64px;
}

.camera-fab[b-46wh19xtbt] {
    position: absolute;
    bottom: 16px;
    right: 16px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1E3A5F;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    cursor: pointer;
}

.image-dots[b-46wh19xtbt] {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 4px;
}

.dot[b-46wh19xtbt] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
}

.dot.active[b-46wh19xtbt] {
    width: 16px;
    border-radius: 3px;
    background: #FFFFFF;
}

.details-form[b-46wh19xtbt] {
    padding: 0 24px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* Card Informações do Bem (Read-Only) */
.bem-info-card[b-46wh19xtbt] {
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 16px;
    padding: 16px;
    margin: 12px 0 8px;
}

.bem-location-section[b-46wh19xtbt] {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #E2E8F0;
}

.bem-location-title[b-46wh19xtbt] {
    margin-bottom: 12px;
    color: #94A3B8;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.bem-info-header[b-46wh19xtbt] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}

.bem-info-header .material-symbols-outlined[b-46wh19xtbt] {
    font-size: 16px;
    color: #94A3B8;
}

.bem-info-title[b-46wh19xtbt] {
    font-size: 12px;
    font-weight: 700;
    color: #94A3B8;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Grid de informações — 2 colunas */
.info-grid[b-46wh19xtbt] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 24px;
}

.info-field.full-width[b-46wh19xtbt] {
    grid-column: 1 / -1;
}

/* Divisor Visual */
.section-divider[b-46wh19xtbt] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 16px 0 12px;
    color: #94A3B8;
}

.section-divider[b-46wh19xtbt]::before,
.section-divider[b-46wh19xtbt]::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #E2E8F0;
}

.section-divider-label[b-46wh19xtbt] {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.section-label[b-46wh19xtbt] {
    display: block;
    font-size: 10px;
    font-weight: 700;
    color: #94A3B8;
    margin-bottom: 2px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.description-text[b-46wh19xtbt] {
    font-size: 16px;
    font-weight: 600;
    color: #1E293B;
    margin: 0;
    line-height: 1.4;
}

.form-row[b-46wh19xtbt] {
    display: flex;
    gap: 24px;
}

.form-group[b-46wh19xtbt] {
    margin-bottom: 0;
}

.form-group.half[b-46wh19xtbt] {
    flex: 1;
}

.value-text[b-46wh19xtbt] {
    font-size: 16px;
    font-weight: 700;
    color: #1E293B;
    margin: 0;
}

.info-field.location-divergent[b-46wh19xtbt] {
    padding: 8px 12px;
    border: 1px solid #FDBA74;
    border-left: 4px solid #F97316;
    border-radius: 8px;
    background: #FFF7ED;
}

.location-divergent .value-text[b-46wh19xtbt] {
    color: #9A3412;
}

/* O alerta de localização divergente mantém o fundo âmbar claro fixo em
 * qualquer tema (é um destaque de atenção, não uma superfície comum). No
 * tema escuro, os overrides globais de dark-mode.css para .section-label e
 * .value-text (pensados para o resto da tela, com fundo escuro) forçavam
 * texto claro sobre esse fundo âmbar claro, apagando o aviso. Os seletores
 * abaixo precisam de !important e de mais classes que os overrides globais
 * para vencer essa colisão independentemente da ordem de carregamento dos
 * arquivos CSS. */
[data-theme="dark"] .info-field.location-divergent[b-46wh19xtbt] {
    background: #78350F !important;
    border-color: #F59E0B !important;
}

[data-theme="dark"] .info-field.location-divergent .section-label[b-46wh19xtbt] {
    color: #FDE68A !important;
}

[data-theme="dark"] .location-divergent .value-text[b-46wh19xtbt] {
    color: #FEF3C7 !important;
}

.value-text.value-empty[b-46wh19xtbt] {
    font-weight: 400;
    color: #94A3B8;
    font-style: italic;
}

/* Precedência maior que a regra acima: quando a localização é divergente E
   ainda assim está vazia, o estado "vazio" continua valendo no tema escuro,
   igual já acontecia no tema claro. */
[data-theme="dark"] .location-divergent .value-text.value-empty[b-46wh19xtbt] {
    color: #94A3B8 !important;
}

/* Dropdown genérico de formulário */
.form-select[b-46wh19xtbt] {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    font-size: 14px;
    color: #1E293B;
    background-color: #FFFFFF;
    min-height: 44px;
}

.form-select:focus[b-46wh19xtbt] {
    outline: none;
    border-color: #1E3A5F;
    box-shadow: 0 0 0 3px rgba(30, 58, 95, 0.1);
}

.form-select:disabled[b-46wh19xtbt] {
    opacity: 0.5;
    background-color: #F8FAFC;
    cursor: not-allowed;
}

/* Combo de Área/Subárea da localização divergente */
.divergente-selects[b-46wh19xtbt] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Checkboxes (Situação Atual) */
.checkbox-group[b-46wh19xtbt] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.checkbox-item[b-46wh19xtbt] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    cursor: pointer;
    min-height: 44px;
    transition: background 0.2s;
}

.checkbox-item:hover[b-46wh19xtbt] {
    background: #F8FAFC;
}

.checkbox-item input[type="checkbox"][b-46wh19xtbt] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: #1E3A5F;
}

.checkbox-item span[b-46wh19xtbt] {
    font-size: 14px;
    font-weight: 600;
    color: #1E293B;
    flex: 1;
}

/* Checkbox com input ao lado (#84, #85) */
.checkbox-with-input[b-46wh19xtbt] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Container de presença do bem (radio Sim/Não) */
.presence-container[b-46wh19xtbt] {
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 20px;
}

[data-theme="dark"] .presence-container[b-46wh19xtbt] {
    background: #162033;
    border-color: #24314D;
}

.radio-group[b-46wh19xtbt] {
    display: flex;
    gap: 24px;
    margin-top: 8px;
}

.radio-item[b-46wh19xtbt] {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    min-height: 44px;
}

.radio-item input[type="radio"][b-46wh19xtbt] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: #1E3A5F;
}

[data-theme="dark"] .radio-item input[type="radio"][b-46wh19xtbt] {
    accent-color: #4F8DFD;
}

.radio-item span[b-46wh19xtbt] {
    font-size: 14px;
    font-weight: 600;
    color: #1E293B;
}

[data-theme="dark"] .radio-item span[b-46wh19xtbt] {
    color: #F8FAFC;
}

.checkbox-with-input .checkbox-item[b-46wh19xtbt] {
    border: 1px solid #E2E8F0;
    border-radius: 12px;
}

.inline-input[b-46wh19xtbt] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    font-size: 14px;
    color: #1E293B;
    background: #FFFFFF;
    transition: border-color 0.2s, opacity 0.2s;
}

.inline-input:disabled[b-46wh19xtbt] {
    opacity: 0.5;
    background: #F8FAFC;
    cursor: not-allowed;
}

.inline-input:focus[b-46wh19xtbt] {
    outline: none;
    border-color: #1E3A5F;
}

/* Textarea (Justificativa) */
.form-textarea[b-46wh19xtbt] {
    width: 100%;
    min-height: 100px;
    padding: 12px 16px;
    border: 1px solid #E2E8F0;
    border-radius: 12px;
    font-size: 14px;
    color: #1E293B;
    resize: vertical;
}

.form-textarea:focus[b-46wh19xtbt] {
    outline: none;
    border-color: #1E3A5F;
    box-shadow: 0 0 0 3px rgba(30, 58, 95, 0.1);
}

.save-button[b-46wh19xtbt] {
    width: 100%;
    padding: 18px;
    background: #1E3A5F;
    color: #FFFFFF;
    border: none;
    border-radius: 16px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    margin-top: 12px;
    box-shadow: 0 8px 16px rgba(30, 58, 95, 0.15);
}

.loading-overlay[b-46wh19xtbt] {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
}

.error-state[b-46wh19xtbt] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100vh;
    gap: 16px;
}

.error-state .material-symbols-outlined[b-46wh19xtbt] {
    font-size: 64px;
    color: #CBD5E1;
}

.back-button[b-46wh19xtbt] {
    padding: 12px 24px;
    background: #1E3A5F;
    color: #FFFFFF;
    border: none;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}
/* /Pages/Login.razor.rz.scp.css */
/* =====================================================================
   Tela de login — visual escuro (navy + dourado).
   O fundo full-bleed mora em AuthMinimalLayout.razor.css via
   `.auth-layout:has(.login-page)` (regra precisa estar no escopo do
   layout: o CSS isolation do Blazor anexa o atributo do componente ao
   SELETOR, então em Login.razor.css a regra viraria
   `.auth-layout[escopo-do-login]` e nunca casaria).
   Abaixo fica apenas o fallback para navegadores sem suporte a :has().
   ===================================================================== */

.login-page[b-oli0mewb6e] {
    width: 100%;
    max-width: 400px;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    background-color: #071524;
    color: #E8EEF5;
}

@supports selector(:has(*)) {
    .login-page[b-oli0mewb6e] {
        background-color: transparent;
    }
}

/* =========================== Cabeçalho ============================ */

.login-header[b-oli0mewb6e] {
    width: 100%;
    margin-top: 48px;
    margin-bottom: 28px;
    text-align: left;
}

.login-brand[b-oli0mewb6e] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    --brand-width: min(240px, 64vw);
}

.brand-logo[b-oli0mewb6e] {
    display: flex;
    justify-content: flex-start;
    width: 100%;
}

.brand-logo-img[b-oli0mewb6e] {
    width: var(--brand-width);
    height: auto;
    display: block;
}

.brand-divider[b-oli0mewb6e] {
    width: var(--brand-width);
    height: 3px;
    margin-top: 18px;
    border-radius: 2px;
    background: linear-gradient(90deg, #F0C46B 0%, #C08A2E 100%);
}

/* Fonte do título conforme o mockup (serifa clássica de alto contraste:
   Playfair Display — pareada visualmente contra as candidatas Cormorant,
   EB Garamond, Prata, Lora e Bodoni Moda no mesmo enquadramento; 700 a
   pedido para letras mais grossas).
   Título e subtítulo têm a largura EXATA da linha dourada: os fatores
   0.14863 (1/6.7281) e 0.05322 (1/18.7897) vêm da medição em browser
   (largura por px de font-size; subtítulo com letter-spacing 0.26em) e
   escalam juntos com --brand-width em qualquer viewport. */
.login-title[b-oli0mewb6e] {
    font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
    font-size: calc(var(--brand-width) * 0.14863);
    font-weight: 700;
    line-height: 1.1;
    color: #FFFFFF;
    margin: 16px 0 0;
    letter-spacing: 0;
}

.login-subtitle[b-oli0mewb6e] {
    margin: 3px 0 0;
    font-size: calc(var(--brand-width) * 0.05322);
    font-weight: 500;
    line-height: 1.2;
    color: #9FB3C8;
    text-transform: uppercase;
    letter-spacing: 0.26em;
}

/* ========================= Card do formulário ====================== */

.login-form[b-oli0mewb6e] {
    width: 100%;
    margin-bottom: auto;
    padding: 24px 20px 20px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 18px;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 24px 48px -28px rgba(0, 0, 0, 0.9);
}

.alert[b-oli0mewb6e] {
    padding: 12px 16px;
    border-radius: 10px;
    margin-bottom: 24px;
    font-size: 14px;
}

.alert.error[b-oli0mewb6e] {
    background: rgba(220, 38, 38, 0.18);
    color: #FCA5A5;
    border: 1px solid rgba(248, 113, 113, 0.45);
}

/* Aviso que não é falha do operador: o captcha está sendo religado e basta tentar de novo.
   Sem um modificador próprio, `.alert` fica sem fundo nem cor e o texto some. */
.alert.info[b-oli0mewb6e] {
    background: rgba(37, 99, 235, 0.18);
    color: #BFDBFE;
    border: 1px solid rgba(96, 165, 250, 0.45);
}

.form-group[b-oli0mewb6e] {
    margin-bottom: 24px;
}

/* dark-mode.css força color de .input-label com !important */
.input-label[b-oli0mewb6e] {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: #B9C7D9 !important;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.input-wrapper[b-oli0mewb6e] {
    position: relative;
    display: flex;
}

.field-icon[b-oli0mewb6e] {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
    color: #8FA6BF;
    pointer-events: none;
}

/* .input-field é sobrescrito por dark-mode.css com !important em dark;
   o prefixo do card garante especificidade maior que a regra global. */
.login-form .input-field[b-oli0mewb6e] {
    width: 100%;
    padding: 15px 16px;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: 12px;
    font-size: 16px;
    color: #F2F6FA !important;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.login-form .input-wrapper .input-field[b-oli0mewb6e] {
    padding-left: 46px;
}

.login-form .input-field:focus[b-oli0mewb6e] {
    outline: none;
    border-color: #E4B45C !important;
    background: rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 0 0 3px rgba(228, 180, 92, 0.25);
}

.login-form .input-field[b-oli0mewb6e]::placeholder {
    color: rgba(233, 241, 250, 0.55) !important;
}

.login-form .input-field:disabled[b-oli0mewb6e] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Password field wrapper with toggle */
.password-wrapper[b-oli0mewb6e] {
    position: relative;
    display: flex;
    align-items: center;
}

.login-form .password-wrapper .input-field[b-oli0mewb6e] {
    padding-left: 46px;
    padding-right: 48px;
}

/* Desabilitar ícone nativo de reveal password (Edge/Chrome) */
.password-wrapper .input-field[b-oli0mewb6e]::-ms-reveal,
.password-wrapper .input-field[b-oli0mewb6e]::-webkit-credentials-auto-fill-button {
    display: none;
}

.password-toggle[b-oli0mewb6e] {
    position: absolute;
    right: 6px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    color: #8FA6BF;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
}

.password-toggle:hover[b-oli0mewb6e] {
    color: #E4B45C;
}

.validation-error[b-oli0mewb6e] {
    color: #F87171;
    font-size: 12px;
    margin-top: 4px;
    display: block;
}

.captcha-warning[b-oli0mewb6e] {
    display: block;
    margin-top: 8px;
}

/* ============================ Botão ================================ */

/* dark-mode.css força background/color com !important em dark. */
.login-form .login-button[b-oli0mewb6e] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 16px;
    background: linear-gradient(180deg, #F0C46B 0%, #DCA845 55%, #C08A2E 100%) !important;
    color: #241705 !important;
    border: none;
    border-radius: 12px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    margin-top: 12px;
    transition: filter 0.2s ease, transform 0.1s ease;
    box-shadow: 0 12px 24px -14px rgba(228, 180, 92, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

.login-form .login-button:hover:not(:disabled)[b-oli0mewb6e] {
    filter: brightness(1.06);
}

.login-form .login-button:active:not(:disabled)[b-oli0mewb6e] {
    transform: translateY(1px);
}

.login-form .login-button:disabled[b-oli0mewb6e] {
    background: rgba(255, 255, 255, 0.14) !important;
    color: rgba(255, 255, 255, 0.45) !important;
    box-shadow: none;
    cursor: not-allowed;
}

.login-button-icon[b-oli0mewb6e] {
    position: absolute;
    right: 16px;
    font-size: 22px;
}

/* ============================ Rodapé =============================== */

.login-footer[b-oli0mewb6e] {
    padding: 36px 0 8px;
    text-align: center;
}

/* dark-mode.css força color de .version-text com !important. */
.login-footer .version-text[b-oli0mewb6e] {
    font-size: 12px;
    color: #8FA6BF !important;
    font-weight: 500;
    letter-spacing: 0.05em;
}

.login-social[b-oli0mewb6e] {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding-bottom: 32px;
}

.social-link[b-oli0mewb6e] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41px;
    height: 41px;
    border-radius: 50%;
    color: rgba(255, 255, 255, 0.75);
    transition: color 0.2s ease, background 0.2s ease;
}

.social-link svg[b-oli0mewb6e] {
    width: 22px;
    height: 22px;
    fill: currentColor;
}

.social-link:hover[b-oli0mewb6e] {
    color: #F0C46B;
    background: rgba(255, 255, 255, 0.1);
}

/* ======================= Fluxo de carregamento ===================== */

.loading-workflow[b-oli0mewb6e] {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 40px 0;
}

/* dark-mode.css força background/border/color de .logo-icon com !important. */
.login-page .logo-icon[b-oli0mewb6e] {
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
    color: #B9C7D9 !important;
}

.logo-icon[b-oli0mewb6e] {
    width: 80px;
    height: 80px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.logo-icon .material-symbols-outlined[b-oli0mewb6e] {
    font-size: 40px;
}

.logo-icon.small[b-oli0mewb6e] {
    width: 60px;
    height: 60px;
    border-radius: 16px;
}

.logo-icon.small .material-symbols-outlined[b-oli0mewb6e] {
    font-size: 32px;
}

.aspec-logo[b-oli0mewb6e] {
    object-fit: contain;
    display: block;
}

.aspec-logo--small[b-oli0mewb6e] {
    width: 34px;
    height: 34px;
}

/* dark-mode.css força background/border/color/título/barra com !important. */
.login-page .progress-card[b-oli0mewb6e] {
    background: rgba(255, 255, 255, 0.07) !important;
    border: 1px solid rgba(255, 255, 255, 0.16) !important;
}

.progress-card[b-oli0mewb6e] {
    width: 100%;
    border-radius: 16px;
    padding: 24px;
}

.login-page .progress-title[b-oli0mewb6e] {
    color: #F0C46B !important;
}

.progress-title[b-oli0mewb6e] {
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 16px;
}

.login-page .progress-bar-container[b-oli0mewb6e] {
    background: rgba(255, 255, 255, 0.12) !important;
}

.progress-bar-container[b-oli0mewb6e] {
    height: 8px;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 24px;
}

.login-page .progress-bar-fill[b-oli0mewb6e] {
    background: linear-gradient(90deg, #F0C46B 0%, #C08A2E 100%) !important;
}

.progress-bar-fill[b-oli0mewb6e] {
    height: 100%;
    transition: width 0.3s ease;
}

.loading-steps[b-oli0mewb6e] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.loading-step[b-oli0mewb6e] {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
}

.loading-step.completed[b-oli0mewb6e] {
    color: #4ADE80;
}

.login-page .loading-step.pending[b-oli0mewb6e] {
    color: #8FA6BF !important;
}

.mb-xl[b-oli0mewb6e] {
    margin-bottom: 24px;
}

/* ============================ Mobile =============================== */

@media (max-width: 600px) {
    .login-header[b-oli0mewb6e] {
        margin-top: 36px;
        margin-bottom: 24px;
    }

    /* Título e subtítulo escalam automaticamente via calc(--brand-width). */
    .login-brand[b-oli0mewb6e] {
        --brand-width: min(210px, 60vw);
    }

    .login-form[b-oli0mewb6e] {
        padding: 20px 16px 18px;
    }
}
/* /Pages/TombamentosSync.razor.rz.scp.css */
.sync-page[b-neugbg3iai] {
    padding: 24px;
}

.sync-card[b-neugbg3iai] {
    padding: 24px;
    max-width: 600px;
    margin: 32px auto;
    border: 1px solid #E2E8F0;
    background: white;
    border-radius: 16px;
}

.sync-title[b-neugbg3iai] {
    font-size: 20px;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 16px 0;
}

.sync-status[b-neugbg3iai] {
    font-size: 14px;
    color: #64748b;
    margin: 0 0 16px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.progress-header[b-neugbg3iai] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
}

.progress-label[b-neugbg3iai] {
    font-size: 12px;
    color: #64748b;
}

.progress-track[b-neugbg3iai] {
    width: 100%;
    background: #f1f5f9;
    border-radius: 9999px;
    height: 12px;
    margin-bottom: 16px;
    overflow: hidden;
}

.progress-fill[b-neugbg3iai] {
    background: #003366;
    height: 100%;
    border-radius: 9999px;
}

.progress-fill:not(.progress-fill--indeterminate)[b-neugbg3iai] {
    will-change: width;
}

.progress-fill--indeterminate[b-neugbg3iai] {
    width: 100%;
    animation: indeterminate-b-neugbg3iai 1.5s ease-in-out infinite;
    transform-origin: left;
}

.error-actions[b-neugbg3iai] {
    display: flex;
    gap: 12px;
    margin-top: 16px;
}

.btn-retry[b-neugbg3iai] {
    flex: 1;
    height: 44px;
    border-radius: 10px;
    border: 1px solid #E2E8F0;
    background: #fff;
    font-weight: 700;
    cursor: pointer;
    text-align: center;
}

.btn-back[b-neugbg3iai] {
    flex: 1;
    height: 44px;
    border-radius: 10px;
    border: none;
    background: #003366;
    color: #fff;
    font-weight: 800;
    cursor: pointer;
    text-align: center;
}

@keyframes indeterminate-b-neugbg3iai {
    0% {
        transform: translateX(-100%);
        width: 60%;
    }
    50% {
        transform: translateX(60%);
        width: 60%;
    }
    100% {
        transform: translateX(200%);
        width: 60%;
    }
}

@keyframes spin-b-neugbg3iai {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.spinner-validation[b-neugbg3iai] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid #e2e8f0;
    border-top-color: #003366;
    border-radius: 50%;
    animation: spin-b-neugbg3iai 0.8s linear infinite;
    flex-shrink: 0;
}

.sync-validation-hint[b-neugbg3iai] {
    font-size: 13px;
    color: #64748b;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
