/* Entrada NF-e: estilos incorporados ao arquivo padrão. */

/* CSS Modernizado e Responsivo - styles.css */
:root {
    --primary: #003093;
    --primary-hover: color-mix(in srgb, var(--primary), white 25%);
    --secondary: #4B7206;
    --secondary-hover: color-mix(in srgb, var(--secondary), white 25%);
    --whatsapp: #25D366;
    --whatsapp-hover: color-mix(in srgb, var(--whatsapp), white 25%);
    --bg-body: #F4F5F7;
    --text-table-header: #FFFFFF;
    --border-color: #E1E1E1;
    --danger: #BB2929;
    --danger-hover: color-mix(in srgb, var(--danger), white 25%);
    --warning: #FFB300;
    --required-bg: #fff7cc;
    --msg-bg: #FFDDDE;
    --font-padrao: Verdana, Arial, sans-serif;
    --font-tamanho-titulo: 20px;
    --font-tamanho-subtitulo: 14px;
    --font-tamanho-maior: 14px;
    --font-tamanho-padrao: 12px;
    --font-tamanho-menor: 10px;
    --font-tamanho-icone: 8px;
    --fundo-campos-formulario: #F4FAFF;
    --sombra-campos-furmulario: rgba(0,0,0,0.05);
    --sombra-campos-furmulario-focus: rgba(0,48,147,0.3);
    --cor-font-botoes: #FFF;
    --sombra-botoes: rgba(0,0,0,0.1);
    --sombra-botao-hover: rgba(0,0,0,0.15);
    --botao-desativado: #CCCCCC;
    --cor-fundo-container-filtros: #FFF;
    --cor-fundo-tabela-responsiva: #FFF;
    --fundo-itens: #FFFFFF;
    --fundo-itens1: #f9fbfd;
    --fundo-itens-hover: #eef3fb;
    --fundo-cabecalho-rodape: #FFF;
    --sombra-cabecalho-rodape: rgba(0,0,0,0.08);
    --fundo-coluna-acao-itens: #f0f4f8;
    --fundo-coluna-acao-itens1: #e8edf3;
    --fundo-linha-tabela-hover: #e2eaf4;
    --fundo-linha-tabela: #FFF;
    --fundo-sessao-formulario: #FFF;
    --font-label-formulario: #444;
    --font-cor-razao-social-grid: #333;
    --font-cor-cidade-grid: #666;
    --font-cor-paginacao: #555;
    --cor-font-div-consulta: #555;
    --cor-loader: #333;
    --cor-fundo-select-desativado: #ececec;
    --cor-font-select-desativado: #777;
    --cor-fundo-input-readonly: #eef1f4;
    --font-rodape: #777;
    --cor-link-hover: color-mix(in srgb, var(--primary), white 25%);
    --surface: #FFFFFF;
    --surface-muted: #F8FAFC;
    --text-color: #2F3742;
    --text-muted: #667085;
    --header-text: #FFFFFF;
    --radius-sm: 6px;
    --radius-md: 10px;
    --control-height: 38px;
    --header-height: 64px;
    --footer-height: 30px;
    --menu-width: 310px;
}

body {
    background-color: var(--bg-body);
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    font-family: var(--font-padrao);
    font-size: var(--font-tamanho-padrao);
    margin: 0;
    padding: 0;
    scrollbar-face-color: var(--primary);
}

* { box-sizing: border-box; }

/* Links */
a.Links:link, a.Links:visited {
    color: var(--primary);
    text-decoration: none;
}
a.Links:hover {
    color: var(--cor-link-hover);
}

/* Form Elements */
.form-control, .SELECT, .TextBox, .Text {
    font-family: var(--font-padrao);
    font-size: var(--font-tamanho-padrao);
    padding: 10px 14px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background-color: var(--fundo-campos-formulario);
    width: 100%;
    max-width: 300px;
    transition: all 0.3s ease;
    box-shadow: inset 0 1px 3px var(--sombra-campos-furmulario);
}
.form-control:focus, .SELECT:focus, .TextBox:focus {
    border-color: var(--border-color);
    outline: none;
    box-shadow: 0 0 5px var(--sombra-campos-furmulario-focus);
}

.TextBox-MSG, .SELECT-MSG {
    font-family: var(--font-padrao);
    font-size: var(--font-tamanho-padrao);
    padding: 10px 14px;
    width: 100%;
    max-width: 300px;
    transition: all 0.3s ease;
    box-shadow: inset 0 1px 3px var(--sombra-campos-furmulario);
    background-color: var(--msg-bg);
    border: 1px solid var(--danger);
    border-radius: 6px;
}

/* Modern Buttons */
.Botao, .Botao1, .botao0, .botaoRetornar, .botaoFechar {
    font-family: var(--font-padrao);
    font-size: var(--font-tamanho-padrao);
    font-weight: bold;
    padding: 10px 18px;
    color: var(--cor-font-botoes);
    background-color: var(--primary);
    background-repeat: no-repeat;
    background-position: 12px center;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    box-shadow: 0 2px 4px var(--sombra-botoes);
}
/* O efeito de hover só será aplicado se o botão NÃO tiver o atributo "disabled" */
.Botao:hover:not(:disabled), 
.Botao1:hover:not(:disabled), 
.botao0:hover:not(:disabled), 
.botaoRetornar:hover:not(:disabled), 
.botaoFechar:hover:not(:disabled) { 
    background-color: var(--primary-hover); 
    box-shadow: 0 4px 8px var(--sombra-botao-hover);
    transform: translateY(-1px); 
}
.Botao:active {
    transform: translateY(1px);
    box-shadow: 0 1px 2px var(--sombra-botoes);
}
.Botao:disabled { 
    background-color: var(--botao-desativado); 
    cursor: not-allowed; 
    box-shadow: none;
    transform: none;
}

/* Botão Incluir Verde */
.Botao-Verde {
    background-color: var(--secondary) !important;
}
.Botao-Verde:hover {
    background-color: var(--secondary-hover) !important;
}

.Botao-Vermelho {
    background-color: var(--danger) !important;
}
.Botao-Vermelho:hover {
    background-color: var(--danger-hover) !important;
}

/* Filter Container (Flexbox) */
.filter-container {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    align-items: flex-end;
    background: var(--cor-fundo-container-filtros);
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 4px 12px var(--sombra-campos-furmulario);
    margin-bottom: 15px;
}
.filter-group {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.filter-group label {
    font-size: var(--font-tamanho-padrao);
    font-weight: bold;
    color: var(--font-label-formulario);
}

.filter-actions {
    display: flex;
    gap: 10px;
    margin-left: auto;
    align-items: center;
}

/* Responsive Table */
.table-responsive {
    width: 100%;
    overflow-x: auto;
    background: var(--cor-fundo-tabela-responsiva);
    border-radius: 10px;
    box-shadow: 0 4px 12px var(--sombra-campos-furmulario);
}
.sys-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 900px;
}
.sys-table th {
    background-color: var(--primary);
    color: var(--text-table-header);
    padding: 15px;
    font-size: var(--font-tamanho-padrao);
    text-align: center;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.sys-table td {
    padding: 12px 15px;
    font-size: var(--font-tamanho-padrao);
    border-bottom: 1px solid var(--border-color);
    text-align: center;
    vertical-align: middle;
    transition: background-color: 0.2s;
}
.sys-table td.col-razao {
    text-align: left;
}

.razao-social {
    font-weight: bold;
    font-size: var(--font-tamanho-padrao);
    color: var(--font-cor-razao-social-grid);
    margin-bottom: 3px;
}
.cidade-uf {
    font-size: var(--font-tamanho-menor);
    font-style: italic;
    color: var(--font-cor-cidade-grid);
}

tr.Itens, .sys-table tr.Itens { background-color: var(--fundo-itens); }
tr.Itens1, .sys-table tr.Itens1 { background-color: var(--fundo-itens1); }
tr:hover, .sys-table tr:hover { background-color: var(--fundo-itens-hover); }

.sys-table img {
    transition: transform 0.2s;
}
.sys-table img:hover {
    transform: scale(1.15);
}

.actions-bar {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin: 20px 0;
}
.pagination-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin: 20px 0;
    font-size: var(--font-tamanho-padrao);
    font-weight: bold;
    color: var(--font-cor-paginacao);
}
.sys-header, .sys-footer {
    background-color: var(--fundo-cabecalho-rodape);
    padding: 15px 25px;
    box-shadow: 0 2px 5px var(--sombra-cabecalho-rodape);
}
.sys-footer {
    text-align: center;
    margin-top: 40px;
    color: var(--font-rodape);
    font-size: var(--font-tamanho-padrao);
}
.sys-container {
    padding: 25px;
    max-width: 1200px;
    margin: 0 auto;
}

.col-esquerda {
    text-align: left;
    font-size: var(--font-tamanho-padrao);
    font-weight: bold;
    font-family: var(--font-padrao);
}

.col-small {
    text-align: left;
    font-size: var(--font-tamanho-menor);
    font-style: italic;
    font-family: var(--font-padrao);
}

/* Fundo diferenciado para a coluna Ação nas linhas normais e alternadas */
.sys-table tr.Itens td:last-child {
    background-color: var(--fundo-coluna-acao-itens);
}

.sys-table tr.Itens1 td:last-child {
    background-color: var(--fundo-coluna-acao-itens1);
}

/* Mantém o destaque harmonioso ao passar o mouse sobre a linha */
.sys-table tr:hover td:last-child {
    background-color: var(--fundo-linha-tabela-hover);
}

.action-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 25px;
    flex-wrap: wrap;
}

/* SVG */
/* Classe base: Tamanho, alinhamento e animação dos ícones SVG */
.icon-sys {
    width: 18px;
    height: 18px;
    vertical-align: middle;
    transition: transform 0.2s ease, color 0.2s ease;
    cursor: pointer;
}

/* Efeito de destaque ao passar o mouse */
.icon-sys:hover {
    transform: scale(1.15);
}

/* Ícones internos de botões (ex: Filtrar, Incluir, Voltar) */
.icon-btn {
    width: 16px;
    height: 16px;
    margin-right: 6px;
    vertical-align: middle; /* Ajuda a alinhar perfeitamente com o texto */
}

/* Cor Padrão (utilizada para Alterar, Associados, Contas, etc.) */
.icon-padrao {
    color: var(--primary);
}

/* Cor Danger (utilizada exclusivamente para Excluir/Apagar) */
.icon-danger {
    color: var(--danger);
}

/* Cor Danger (utilizada exclusivamente para Excluir/Apagar) */
.icon-warning {
    color: var(--warning);
}

/* Cor Sucesso (Opcional - caso queira ícones verdes para aprovação) */
.icon-success {
    color: var(--secondary);
}

.action-container span[title], 
.action-container a[title] {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    gap: 4px; /* Espaçamento entre o ícone e o texto */
}

/* Gera o texto a partir do atributo title apenas no action-container */
.action-container span[title]::after, 
.action-container a[title]::after {
    content: attr(title);
    font-size: var(--font-tamanho-icone);
    font-family: var(--font-padrao);
    color: var(--cor-font-div-consulta);
    text-align: center;
    white-space: nowrap;
    font-weight: normal;
    text-transform: none;
    cursor: pointer;
}

.texto-paginacao {
    text-align: center;
    font-size: var(--font-tamanho-menor);
    font-family: var(--font-padrao);
    font-weight: bold;
    color: var(--font-label-formulario);
    margin: 10px 0; /* Margem adicionada para dar respiro, ajuste conforme necessário */
}

.nome-tela {
    margin-top: 5px;
    margin-bottom: 5px;
    text-align: center;
}

.nome-tela-titulo {
    color: black;
    font-size: var(--font-tamanho-padrao);
    padding-right: 2px;
}

.nome-tela-dados {
    color: red;
    font-weight: bold;
    font-size: var(--font-tamanho-padrao);
}

@media (max-width: 768px) {
    .login-form {
        flex-direction: column;
        align-items: stretch;
        gap: 15px;
    }
    .form-group {
        min-width: 100%;
        width: 100%;
    }
    .form-control, .SELECT, .TextBox, .Text {
        max-width: 100%; 
        width: 100%;
        box-sizing: border-box;
    }
    .form-group input[type="submit"], .Botao {
        width: 100%; 
        padding: 12px;
    }
    .filter-actions {
        margin-left: 0;
        width: 100%;
        flex-direction: column;
    }
    .filter-actions .Botao {
        width: 100%;
    }

    .login-form {
        flex-direction: column;
        align-items: stretch;
        gap: 15px;
    }
    .form-group {
        min-width: 100%;
        width: 100%;
    }
    .form-control, .SELECT, .TextBox, .Text {
        max-width: 100%; 
        width: 100%;
        box-sizing: border-box;
    }
    .form-group input[type="submit"], .Botao {
        width: 100%; 
        padding: 12px;
    }
    .filter-actions {
        margin-left: 0;
        width: 100%;
        flex-direction: column;
    }
    .filter-actions .Botao {
        width: 100%;
    }

    /* Transformação da tabela em cards responsivos para mobile */
    .sys-table, .sys-table tbody, .sys-table tr {
        display: block;
        width: 100%;
        min-width: unset;
    }
    
    .sys-table thead {
        display: none;
    }
    
    .sys-table tr {
        display: flex;
        flex-wrap: wrap;
        background: var(--fundo-linha-tabela);
        border: 1px solid var(--border-color);
        border-radius: 8px;
        margin-bottom: 12px;
        padding: 12px;
    }
    
    .sys-table td {
        display: block;
        border: none !important;
        padding: 4px 6px !important;
    }
    
    /* Código/REP na primeira parte da linha superior */
    .sys-table td:nth-child(1) {
        width: 35%;
        text-align: left;
    }
    
    /* Razão Social na parte restante da linha superior */
    .sys-table td:nth-child(2) {
        width: 65%;
        text-align: left;
    }
    
    /* Coluna de Ações forçada para a linha logo abaixo ocupando 100% da largura */
    .sys-table td:last-child {
        width: 100% !important;
        order: 3;
        text-align: center;
        border-top: 1px solid var(--border-color) !important;
        margin-top: 8px;
        padding-top: 10px !important;
    }

    /*Codigo na mesma coluna*/
    .login-form {
        flex-direction: column;
        align-items: stretch;
        gap: 15px;
    }
    .form-group {
        min-width: 100%;
        width: 100%;
    }
    .form-control, .SELECT, .TextBox, .Text {
        max-width: 100%; 
        width: 100%;
        box-sizing: border-box;
    }
    .form-group input[type="submit"], .Botao {
        width: 100%; 
        padding: 12px;
    }
    .filter-actions {
        margin-left: 0;
        width: 100%;
        flex-direction: column;
    }
    .filter-actions .Botao {
        width: 100%;
    }

    /* Transformação da tabela em cards responsivos empilhados */
    .sys-table, .sys-table tbody, .sys-table tr {
        display: block;
        width: 100%;
        min-width: unset;
    }
    
    .sys-table thead {
        display: none;
    }
    
    .sys-table tr {
        display: flex;
        flex-direction: column;
        background: var(--fundo-linha-tabela);
        border: 1px solid var(--border-color);
        border-radius: 8px;
        margin-bottom: 12px;
        padding: 12px;
    }
    
    .sys-table td {
        display: block;
        width: 100% !important;
        border: none !important;
        padding: 4px 0 !important;
        text-align: left;
    }
    
    /* Código/REP como a primeira linha, alinhado à esquerda com padding-bottom de 10px */
    .sys-table td:nth-child(1) {
        padding-bottom: 10px !important;
    }
    
    /* Razão Social como a segunda linha */
    .sys-table td:nth-child(2) {
        padding-bottom: 10px !important;
    }
    
    /* Coluna de Ações como a linha inferior */
    .sys-table td:last-child {
        text-align: center;
        border-top: 1px solid var(--border-color) !important;
        margin-top: 4px;
        padding-top: 10px !important;
    }
}
/* =========================================================
   Cadastro de clientes - formulário responsivo sem tabelas
   ========================================================= */
.cadastro-cliente-form {
    width: 100%;
    margin: 0;
}

.cadastro-cliente {
    width: min(100% - 30px, 1200px);
    margin: 20px auto;
}

.cadastro-secao {
    background: var(--fundo-sessao-formulario);
    border: 1px solid var(--border-color);
    border-radius: 10px;
    padding: 18px;
    margin-bottom: 14px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.04);
}

.cadastro-secao-titulo {
    font-family: var(--font-padrao);
    font-size: var(--font-tamanho-padrao);
    font-weight: bold;
    color: var(--primary);
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 9px;
    margin-bottom: 14px;
}

.cadastro-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 12px 14px;
    align-items: end;
}

.cadastro-col-1 { grid-column: span 1; }
.cadastro-col-2 { grid-column: span 2; }
.cadastro-col-3 { grid-column: span 3; }
.cadastro-col-4 { grid-column: span 4; }
.cadastro-col-5 { grid-column: span 5; }
.cadastro-col-6 { grid-column: span 6; }
.cadastro-col-7 { grid-column: span 7; }
.cadastro-col-8 { grid-column: span 8; }
.cadastro-col-9 { grid-column: span 9; }
.cadastro-col-10 { grid-column: span 10; }
.cadastro-col-11 { grid-column: span 11; }
.cadastro-col-12 { grid-column: span 12; }

.cadastro-cliente .campo {
    min-width: 0;
}

.cadastro-cliente .campo-label {
    display: block;
    font-family: var(--font-padrao);
    font-size: var(--font-tamanho-padrao);
    font-weight: bold;
    color: var(--font-cor-razao-social-grid);
    margin-bottom: 5px;
}

.cadastro-cliente .TextBox,
.cadastro-cliente .SELECT,
.cadastro-cliente .Text,
.cadastro-cliente .form-control {
    width: 100%;
    max-width: none;
    min-width: 0;
}

.cadastro-cliente input[readonly] {
    background-color: var(--cor-fundo-input-readonly);
}

.cadastro-cliente input:disabled,
.cadastro-cliente select:disabled {
    background-color: var(--cor-fundo-select-desativado);
    color: var(--cor-font-select-desativado);
    cursor: not-allowed;
}

.tipo-pessoa-opcoes {
    min-height: 39px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: center;
}

.radio-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    white-space: nowrap;
}

.campo-com-acoes,
.campo-sufixo {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.campo-com-acoes > .TextBox,
.campo-com-acoes > .SELECT,
.campo-com-acoes > .ramo-select-wrap {
    flex: 1 1 auto;
    min-width: 0;
}

.ramo-select-wrap,
.ramo-select-wrap .SELECT {
    width: 100%;
}

.botao-lupa {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    background: color-mix(in srgb, var(--primary), white 75%);
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;

}

.botao-lupa:hover:not(:disabled) {
    background: var(--primary-hover);
    border-color: var(--border-color);
    transform: translateY(-1px);
}

.botao-lupa:disabled {
    opacity: 0.55;
    cursor: wait;
}

.botao-lupa img {
    max-width: 18px;
    max-height: 18px;
    border: 0;
}

.botao-icon-only {
    flex: 0 0 38px;
    width: 38px;
    min-width: 38px;
    height: 38px;
    padding: 0 !important;
    background-position: center !important;
}

.campo-sufixo .TextBox {
    flex: 1 1 auto;
}

.campo-sufixo span {
    flex: 0 0 auto;
    font-weight: bold;
}

.consulta-cnpj-status {
    min-height: 15px;
    margin-top: 4px;
    font-size: var(--font-tamanho-menor);
}

.consulta-cnpj-status.consultando { color: var(--cor-font-div-consulta); }
.consulta-cnpj-status.sucesso { color: var(--secondary); }
.consulta-cnpj-status.erro { color: var(--danger); }

.cadastro-passo {
    text-align: center;
    margin: 18px 0 10px;
    font-size: var(--font-tamanho-menor);
    font-weight: bold;
}

.cadastro-acoes {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-bottom: 25px;
}

.label-checkbox {
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:5px;
    font-weight:normal;
    font-size: var(--font-tamanho-padrao);
}

/*Loader*/
.mm-modal-loader {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: var(--font-tamanho-maior);
    color: var(--cor-loader);
    width: 100%;
    height: 100%;
    min-height: 150px; /* Garante uma altura vertical adequada enquanto o modal abre */
    box-sizing: border-box;
}

/* Criação do ícone de spinner animado */
.mm-modal-loader::before {
    content: "";
    width: 24px;
    height: 24px;
    border: 3px solid var(--border-color);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: modal-spin 1s linear infinite;
}

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

@media (max-width: 1000px) {
    .cadastro-col-1,
    .cadastro-col-2,
    .cadastro-col-3,
    .cadastro-col-4 {
        grid-column: span 4;
    }

    .cadastro-col-5,
    .cadastro-col-6,
    .cadastro-col-7,
    .cadastro-col-8,
    .cadastro-col-9,
    .cadastro-col-10,
    .cadastro-col-11,
    .cadastro-col-12 {
        grid-column: span 6;
    }
}

@media (max-width: 768px) {
    .cadastro-cliente {
        width: min(100% - 20px, 1200px);
        margin-top: 10px;
    }

    .cadastro-secao {
        padding: 14px;
        border-radius: 8px;
    }

    .cadastro-grid {
        grid-template-columns: 1fr;
        gap: 11px;
    }

    .cadastro-col-1,
    .cadastro-col-2,
    .cadastro-col-3,
    .cadastro-col-4,
    .cadastro-col-5,
    .cadastro-col-6,
    .cadastro-col-7,
    .cadastro-col-8,
    .cadastro-col-9,
    .cadastro-col-10,
    .cadastro-col-11,
    .cadastro-col-12 {
        grid-column: 1 / -1;
    }

    .tipo-pessoa-opcoes {
        align-items: flex-start;
        flex-direction: column;
    }

    .cadastro-acoes {
        flex-direction: column;
    }

    .cadastro-acoes .Botao {
        width: 100%;
    }

    .ramo-acoes {
        flex-wrap: wrap;
    }

    .ramo-acoes .ramo-select-wrap {
        flex-basis: calc(100% - 90px);
    }
}

/* Sycom Retaguarda PHP v1.0.1 - fundação responsiva */
.icon-btn { width: 18px; height: 18px; display: inline-block; vertical-align: middle; }

/* =========================================================
   Sycom Retaguarda PHP v1.0.1 - base responsiva global
   Aplicável ao shell e a todos os módulos PHP que carregam styles.css.
   ========================================================= */
html {
    max-width: 100%;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
}

img, video, canvas {
    max-width: 100%;
    height: auto;
}

svg {
    flex-shrink: 0;
}

input, select, textarea, button {
    min-width: 0;
}

fieldset {
    min-width: 0;
    max-width: 100%;
}

pre, code {
    max-width: 100%;
}

pre {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.table-responsive {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.sys-container,
.cadastro-cliente,
.filter-container,
.cadastro-secao {
    min-width: 0;
}

.actions-bar,
.action-container,
.pagination-bar,
.cadastro-acoes,
.filter-actions {
    max-width: 100%;
}

/* Evita que textos/identificadores longos estourem cards e grids. */
.sys-table td,
.card,
.hero,
.cadastro-secao,
.filter-group,
.campo {
    overflow-wrap: anywhere;
}

@media (max-width: 768px) {
    body {
        overflow-x: hidden;
    }

    .sys-container {
        width: 100%;
        max-width: none;
        padding: 12px 10px;
    }

    .sys-header,
    .sys-footer {
        padding: 12px 10px;
    }

    .filter-container {
        padding: 14px 12px;
        gap: 10px;
    }

    .filter-group {
        flex: 1 1 100%;
        min-width: 0;
    }

    .filter-group .form-control,
    .filter-group .SELECT,
    .filter-group .TextBox,
    .filter-group .Text {
        width: 100%;
        max-width: none;
    }

    .actions-bar,
    .pagination-bar,
    .cadastro-acoes {
        width: 100%;
        flex-wrap: wrap;
        gap: 8px;
    }

    .action-container {
        gap: 14px;
    }

    .action-container .Botao,
    .actions-bar .Botao,
    .pagination-bar .Botao {
        width: auto;
        max-width: 100%;
    }

    /* Tabelas legadas que ainda não usam .sys-table permanecem acessíveis
       por rolagem horizontal, sem alterar a ordem/semântica das células. */
    table:not(.sys-table) {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 480px) {
    .sys-container {
        padding-left: 8px;
        padding-right: 8px;
    }

    .cadastro-secao,
    .filter-container {
        border-radius: 7px;
    }

    .pagination-bar {
        font-size: var(--font-tamanho-menor);
    }

    .campo-com-acoes,
    .campo-sufixo {
        flex-wrap: wrap;
    }

    .campo-com-acoes > .TextBox,
    .campo-com-acoes > .SELECT,
    .campo-com-acoes > .ramo-select-wrap,
    .campo-sufixo .TextBox {
        flex-basis: calc(100% - 46px);
    }
}


/* ==========================================================
   Sycom Retaguarda PHP - componentes globais
   Todas as cores, tipografia e dimensoes visuais partem do :root.
   ========================================================== */
html, body { color: var(--text-color); }

.sy-top {
    height: var(--header-height);
    background: var(--primary);
    color: var(--header-text);
    display: grid;
    grid-template-columns: 42px minmax(0,1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));
    box-shadow: 0 2px 6px var(--sombra-cabecalho-rodape);
    overflow: hidden;
}
.sy-menu-btn, .sy-logout {
    border: 1px solid color-mix(in srgb, var(--header-text), transparent 55%);
    color: var(--header-text);
    border-radius: var(--radius-sm);
    height: var(--control-height);
    cursor: pointer;
    transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.sy-menu-btn { width: 42px; font-size: 22px; background: color-mix(in srgb, var(--primary), white 10%); }
.sy-menu-btn:hover { background: var(--primary-hover); }
.sy-title { text-align:center; min-width:0; overflow:hidden; }
.sy-title strong,.sy-title span { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sy-title strong { font-size:var(--font-tamanho-maior); }
.sy-title span { font-size:var(--font-tamanho-menor); margin-top:3px; }
.sy-logout-form { margin:0; justify-self:end; }
.sy-logout {
    padding:0 12px;
    font-weight:bold;
    white-space:nowrap;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    background:var(--danger);
}
.sy-logout:hover { background:var(--danger-hover); }
.sy-logout svg { width:15px; height:15px; margin:0; }

.sy-foot {
    height:var(--footer-height);
    background:var(--fundo-cabecalho-rodape);
    border-top:1px solid var(--border-color);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 8px;
    font-size:var(--font-tamanho-menor);
    color:var(--font-rodape);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

/* Menu lateral */
.sy-menu { padding:12px; background:var(--surface); min-height:100dvh; }
.sy-menu-item, .sy-menu-group-button, .sy-submenu-item {
    font:inherit;
    color:var(--text-color);
    width:100%;
    border:0;
    cursor:pointer;
    text-align:left;
}
.sy-menu-item, .sy-menu-group-button {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:42px;
    padding:10px 11px;
    background:var(--surface);
    border-radius:var(--radius-sm);
    font-weight:bold;
}
.sy-menu-item:hover, .sy-menu-group-button:hover { background:color-mix(in srgb, var(--primary), white 92%); color:var(--primary); }
.sy-menu-item svg, .sy-menu-group-button svg { width:20px; height:20px; flex:0 0 20px; color:var(--primary); }
.sy-menu-group-button .sy-chevron { margin-left:auto; width:14px; height:14px; transition:transform .2s ease; }
.sy-menu-group.is-open > .sy-menu-group-button .sy-chevron { transform:rotate(90deg); }
.sy-menu-children { display:none; margin:2px 0 5px 18px; padding-left:11px; border-left:1px solid var(--border-color); }
.sy-menu-group.is-open > .sy-menu-children { display:block; }
.sy-submenu-item { display:flex; align-items:center; gap:8px; padding:9px 10px; background:transparent; border-radius:var(--radius-sm); }
.sy-submenu-item:hover { background:color-mix(in srgb, var(--primary), white 92%); color:var(--primary); }
.sy-submenu-item svg { width:17px; height:17px; color:var(--primary); }
.sy-menu-version { margin:14px 8px 0; color:var(--text-muted); font-size:var(--font-tamanho-menor); line-height:1.5; }

/* Paginas de cadastro/listagem */
.sy-page { width:min(1180px, calc(100% - 28px)); margin:18px auto 28px; }
.sy-page-header { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.sy-page-title { margin:0; color:var(--primary); font-size:var(--font-tamanho-titulo); }
.sy-breadcrumb { color:var(--text-muted); font-size:var(--font-tamanho-menor); margin-top:3px; }
.sy-panel { background:var(--surface); border:1px solid var(--border-color); border-radius:var(--radius-md); box-shadow:0 3px 12px var(--sombra-campos-furmulario); padding:16px; }
.sy-search { display:grid; grid-template-columns:minmax(130px,180px) minmax(220px,1fr) auto; gap:10px; align-items:end; }
.sy-search .TextBox,.sy-search .SELECT { max-width:none; }
.sy-table-wrap { width:100%; overflow:auto; margin-top:14px; border:1px solid var(--border-color); border-radius:var(--radius-sm); background:var(--surface); }
.sy-table { width:100%; border-collapse:collapse; min-width:720px; }
.sy-table th { background:var(--primary); color:var(--text-table-header); font-size:var(--font-tamanho-menor); padding:10px; text-align:left; }
.sy-table td { padding:10px; border-top:1px solid var(--border-color); vertical-align:middle; }
.sy-table tbody tr:hover { background:var(--fundo-linha-tabela-hover); }
.sy-status { display:inline-flex; padding:3px 8px; border-radius:999px; font-size:var(--font-tamanho-menor); font-weight:bold; }
.sy-status-ok { color:var(--secondary); background:color-mix(in srgb, var(--secondary), white 88%); }
.sy-status-off { color:var(--danger); background:color-mix(in srgb, var(--danger), white 88%); }
.sy-actions { display:flex; gap:6px; justify-content:flex-end; }
.sy-icon-button { width:34px; height:34px; border:0; border-radius:var(--radius-sm); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; background:var(--primary); color:var(--cor-font-botoes); transition:background-color .2s ease; }
.sy-icon-button:hover { background:var(--primary-hover); }
.sy-icon-button.danger { background:var(--danger); }
.sy-icon-button.danger:hover { background:var(--danger-hover); }
.sy-icon-button svg { width:17px; height:17px; }
.sy-empty { padding:24px; text-align:center; color:var(--text-muted); }
.sy-pagination { display:flex; justify-content:center; align-items:center; gap:6px; margin-top:14px; flex-wrap:wrap; }
.sy-pagination a,.sy-pagination span { min-width:32px; padding:7px 9px; text-align:center; border:1px solid var(--border-color); border-radius:var(--radius-sm); text-decoration:none; color:var(--primary); background:var(--surface); }
.sy-pagination .active { color:var(--header-text); background:var(--primary); border-color:var(--primary); }
.sy-alert { margin-bottom:12px; padding:10px 12px; border-radius:var(--radius-sm); border:1px solid var(--border-color); background:var(--surface); }
.sy-alert-success { border-color:color-mix(in srgb, var(--secondary), white 55%); color:var(--secondary); background:color-mix(in srgb, var(--secondary), white 92%); }
.sy-alert-error { border-color:color-mix(in srgb, var(--danger), white 55%); color:var(--danger); background:color-mix(in srgb, var(--danger), white 92%); }
.sy-form-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:12px; }
.sy-field { display:flex; flex-direction:column; gap:5px; min-width:0; grid-column:span 3; }
.sy-field.span-1{grid-column:span 1}.sy-field.span-2{grid-column:span 2}.sy-field.span-3{grid-column:span 3}.sy-field.span-4{grid-column:span 4}.sy-field.span-5{grid-column:span 5}.sy-field.span-6{grid-column:span 6}.sy-field.span-8{grid-column:span 8}.sy-field.span-12{grid-column:span 12}
.sy-field label { font-weight:bold; color:var(--font-label-formulario); font-size:var(--font-tamanho-menor); }
.sy-field .TextBox,.sy-field .SELECT { max-width:none; }
.sy-form-section { border:1px solid var(--border-color); border-radius:var(--radius-md); padding:14px; margin-bottom:14px; background:var(--surface); }
.sy-form-section h2 { margin:0 0 12px; font-size:var(--font-tamanho-subtitulo); color:var(--primary); }
.sy-checks { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.sy-checks label { display:inline-flex; gap:6px; align-items:center; }
.sy-form-actions { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; margin-top:14px; }
.sy-button-link { text-decoration:none; }

@media(max-width:760px){
    .sy-search{grid-template-columns:1fr}.sy-page{width:min(100% - 18px,1180px);margin-top:10px}
    .sy-field,.sy-field.span-1,.sy-field.span-2,.sy-field.span-3,.sy-field.span-4,.sy-field.span-5,.sy-field.span-6,.sy-field.span-8{grid-column:span 6}
}
@media(max-width:560px){
    :root{--header-height:58px;--footer-height:24px;}
    .sy-top{grid-template-columns:38px minmax(0,1fr) 38px;gap:7px;padding-left:8px;padding-right:8px}
    .sy-menu-btn,.sy-logout{height:36px}.sy-menu-btn{width:38px}.sy-title strong{font-size:12px}.sy-title span{font-size:9px}.sy-logout{width:38px;padding:0;font-size:0}.sy-logout svg{width:17px;height:17px}
    .sy-foot{font-size:9px}
    .sy-field,.sy-field.span-1,.sy-field.span-2,.sy-field.span-3,.sy-field.span-4,.sy-field.span-5,.sy-field.span-6,.sy-field.span-8,.sy-field.span-12{grid-column:1/-1}
    .sy-form-actions .Botao,.sy-form-actions .Botao-Verde,.sy-form-actions .Botao-Vermelho{width:100%}
}

/* v1.0.4 - cadastros relacionados a Clientes */
.sy-related-nav { display:flex; gap:8px; flex-wrap:wrap; margin:14px 0 28px; }
.sy-related-nav a { display:inline-flex; align-items:center; min-height:var(--control-height); padding:0 12px; border-radius:var(--radius-sm); background:var(--primary); color:var(--cor-font-botoes); text-decoration:none; }
.sy-related-nav a:hover { background:var(--primary-hover); color:var(--cor-font-botoes); }
.sy-check { display:flex; align-items:center; gap:7px; min-height:var(--control-height); }
.sy-check input { width:16px; height:16px; }
.sy-subheader { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.sy-client-name { font-weight:700; color:var(--text-muted); font-size:var(--font-tamanho-menor); margin-top:3px; }
.sy-inline-form { display:flex; gap:8px; align-items:end; flex-wrap:wrap; }
.sy-inline-form .sy-field { min-width:160px; flex:1 1 180px; }
.sy-inline-form .sy-field.wide { flex-basis:300px; }
@media (max-width:700px){ .sy-related-nav a{flex:1 1 100%;justify-content:center}.sy-inline-form{display:grid;grid-template-columns:1fr;width:100%}.sy-inline-form .sy-field{min-width:0}.sy-inline-form .Botao{width:100%;justify-content:center} }


/* =========================================================
   v1.0.6 - responsividade global / paginação / SVG
   ========================================================= */
.sy-svg-sprite {
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}
.Botao .icon-btn, .btnPag svg, .sy-related-nav svg { flex: 0 0 auto; }
.Botao:hover:not(:disabled) { background-color: color-mix(in srgb, var(--primary), white 25%); }
.Botao-Verde:hover:not(:disabled) { background-color: color-mix(in srgb, var(--secondary), white 25%) !important; }
.Botao-Vermelho:hover:not(:disabled) { background-color: color-mix(in srgb, var(--danger), white 25%) !important; }

.filter-grow { flex: 1 1 280px; }
.filter-grow .TextBox { max-width: none; }
.filter-checks { display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; min-height:var(--control-height); }
.filter-checks .label-checkbox { display:inline-flex; align-items:center; gap:6px; cursor:pointer; white-space:nowrap; }

.pagination-bar {
    flex-direction: column;
    gap: 10px;
    padding: 4px 0 0;
}
.pagination-controls, .pagination-size { display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:wrap; }
.pagination-size .SELECT { width:auto; min-width:76px; max-width:100px; padding:7px 9px; }
.btnPag {
    min-width:38px; height:36px; padding:7px 10px; border:0; border-radius:var(--radius-sm);
    display:inline-flex; align-items:center; justify-content:center; gap:0;
    background:var(--primary); color:var(--cor-font-botoes); cursor:pointer; font:700 var(--font-tamanho-padrao) var(--font-padrao);
    box-shadow:0 2px 4px var(--sombra-botoes); transition:.2s ease;
}
.btnPag:hover:not(:disabled) { background:color-mix(in srgb, var(--primary), white 25%); transform:translateY(-1px); }
.btnPag:disabled { background:var(--botao-desativado); cursor:not-allowed; box-shadow:none; transform:none; }
.btnPag svg { width:16px; height:16px; }
.pag-double { font-size:12px; line-height:1; }

.sy-action-link {
    appearance:none; -webkit-appearance:none; border:0; background:transparent; padding:5px; margin:0;
    display:inline-flex; flex-direction:column; align-items:center; justify-content:center; cursor:pointer;
    color:var(--primary); border-radius:var(--radius-sm); min-width:34px; min-height:34px;
}
.sy-action-link:hover { color:color-mix(in srgb, var(--primary), white 25%); background:color-mix(in srgb, var(--primary), white 92%); }
.sy-action-link .icon-sys { width:19px; height:19px; }
.texto-danger { color:var(--danger) !important; }

.sy-textarea { width:100%; max-width:none; min-height:90px; resize:vertical; line-height:1.45; }
.sy-related-nav button {
    border:0; cursor:pointer; font:700 var(--font-tamanho-padrao) var(--font-padrao);
    display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:var(--control-height);
    padding:0 12px; border-radius:var(--radius-sm); background:var(--primary); color:var(--cor-font-botoes);
}
.sy-related-nav button:hover { background:color-mix(in srgb, var(--primary), white 25%); }
.sy-related-nav button svg { width:17px; height:17px; }

/* Show.php compatível com o recurso do Sistema Adiantado. */
.sy-show-body { margin:0; min-width:0; width:100%; height:100dvh; overflow:hidden; background:var(--bg-body); }
.sy-show-shell { height:100%; display:flex; flex-direction:column; min-width:0; }
.sy-show-head { flex:0 0 auto; background:var(--primary); color:var(--header-text); padding:10px 14px; min-height:52px; }
.sy-show-title { font-weight:bold; font-size:var(--font-tamanho-maior); text-align:center; }
/* Apenas o caminho da barra das janelas; mantém títulos e breadcrumbs das páginas. */
.mm-modal-header .mm-modal-local, .sy-show-head .sy-show-local { display:none; }
.sy-show-local { font-size:var(--font-tamanho-menor); margin-top:4px; opacity:.9; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.sy-show-body-frame { flex:1 1 auto; min-height:0; background:var(--surface); }
.sy-show-body-frame iframe { width:100%; height:100%; border:0; display:block; }
.sy-show-foot { flex:0 0 auto; display:flex; justify-content:flex-end; padding:8px 10px; background:var(--surface); border-top:1px solid var(--border-color); }

/* Formulários sempre respeitam o espaço do iframe/tela. */
.sy-page, .sys-container { min-width:0; }
.sy-form-grid > *, .filter-container > *, .sy-page-header > * { min-width:0; }
.sy-form-section .TextBox, .sy-form-section .SELECT, .sy-form-section textarea { max-width:none; width:100%; }

@media (max-width: 900px) {
    .sys-container { padding:16px; }
    .filter-container { padding:14px; }
    .filter-actions { margin-left:0; }
    .sy-field, .sy-field.span-1, .sy-field.span-2, .sy-field.span-3, .sy-field.span-4,
    .sy-field.span-5, .sy-field.span-6, .sy-field.span-8 { grid-column:span 6; }
}

@media (max-width: 768px) {
    /* Neutraliza regras antigas que deixavam todo botão com 100% de largura. */
    .Botao, .Botao1, .botao0, .botaoRetornar, .botaoFechar { width:auto; padding:10px 14px; }
    .filter-container { display:grid; grid-template-columns:1fr; gap:12px; }
    .filter-actions { width:100%; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .filter-actions .Botao { width:100%; }
    .filter-checks { justify-content:flex-start; }

    /* Cards com rótulos reais via data-label; não depende da posição da coluna. */
    .table-responsive { overflow:visible; box-shadow:none; background:transparent; }
    .sys-table.responsive-cards, .sys-table.responsive-cards tbody,
    .sy-table.responsive-cards, .sy-table.responsive-cards tbody { display:block; width:100%; min-width:0; }
    .sys-table.responsive-cards thead, .sy-table.responsive-cards thead { display:none; }
    .sys-table.responsive-cards tr, .sy-table.responsive-cards tr { display:block; width:100%; padding:0; margin:0 0 12px; border:1px solid var(--border-color); border-radius:var(--radius-md); overflow:hidden; background:var(--surface); box-shadow:0 2px 8px var(--sombra-campos-furmulario); }
    .sys-table.responsive-cards td, .sy-table.responsive-cards td { display:grid; grid-template-columns:minmax(108px,36%) minmax(0,1fr); align-items:start; gap:10px; width:100% !important; padding:9px 11px !important; border:0 !important; border-bottom:1px solid var(--border-color) !important; text-align:left !important; margin:0 !important; background:transparent !important; }
    .sys-table.responsive-cards td:last-child, .sy-table.responsive-cards td:last-child { border-bottom:0 !important; }
    .sys-table.responsive-cards td::before, .sy-table.responsive-cards td::before { content:attr(data-label); font-weight:bold; color:var(--text-muted); font-size:var(--font-tamanho-menor); text-transform:uppercase; letter-spacing:.2px; }
    .sys-table.responsive-cards td.sy-empty, .sy-table.responsive-cards td.sy-empty { display:block; text-align:center !important; padding:20px !important; }
    .sys-table.responsive-cards td.sy-empty::before, .sy-table.responsive-cards td.sy-empty::before { display:none; }
    .sys-table.responsive-cards .action-container, .sy-table.responsive-cards .sy-actions { justify-content:flex-start; gap:6px; }

}

@media (max-width: 560px) {
    .sys-container { padding:10px; }
    .sy-page { width:calc(100% - 16px); margin:8px auto 18px; }
    .sy-page-header { align-items:stretch; }
    .sy-page-header > .Botao, .sy-page-header > .sy-actions { width:100%; }
    .sy-page-header > .Botao { justify-content:center; }
    .sy-field, .sy-field.span-1, .sy-field.span-2, .sy-field.span-3, .sy-field.span-4,
    .sy-field.span-5, .sy-field.span-6, .sy-field.span-8, .sy-field.span-12 { grid-column:1/-1; }
    .sy-form-section { padding:11px; }
    .sy-form-actions { display:grid; grid-template-columns:1fr; }
    .sy-form-actions .Botao { width:100%; justify-content:center; }
    .filter-actions { grid-template-columns:1fr; }
    .pagination-controls { gap:5px; }
    .btnPag { min-width:34px; height:34px; padding:6px 8px; }
    .sys-table.responsive-cards td, .sy-table.responsive-cards td { grid-template-columns:1fr; gap:3px; }
    .sys-table.responsive-cards td::before, .sy-table.responsive-cards td::before { margin-bottom:1px; }
    .sy-related-nav { display:grid; grid-template-columns:1fr; }
    .sy-related-nav button, .sy-related-nav a { width:100%; }
    .sy-show-foot .Botao { width:100%; }
}


/* Clientes: grid consolidado e seis ações por linha (v1.1.30). */
.sy-clientes-index .sys-table { min-width: 760px; }
.sy-clientes-index .sys-table th:nth-child(1) { width: 48%; }
.sy-clientes-index .sys-table th:nth-child(2) { width: 32%; }
.sy-clientes-index .sys-table th:nth-child(3) { width: 20%; text-align: center; }
.sy-client-cell, .sy-client-detail-cell { vertical-align: top; }
.sy-grid-line { display: block; line-height: 1.45; min-height: 1.45em; }
.sy-grid-line + .sy-grid-line { margin-top: 3px; }
.sy-grid-label { color: var(--text-muted); font-size: var(--font-tamanho-menor); font-weight: bold; }
.sy-clientes-index .sy-client-actions {
    display: grid;
    grid-template-columns: repeat(6,36px);
    gap: 7px;
    align-items: center;
    justify-content: center;
    width: 251px;
    margin-inline: auto;
}
.sy-clientes-index .sy-action-link {
    width: 36px;
    height: 36px;
    min-width: 36px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--surface);
    color: var(--primary);
    cursor: pointer;
    transition: background-color .2s ease, transform .2s ease;
}
.sy-clientes-index .sy-action-link:hover {
    background: color-mix(in srgb, var(--surface), var(--primary) 12%);
    transform: translateY(-1px);
}
.sy-clientes-index .sy-action-link .icon-sys { cursor: inherit; }
@media (max-width: 768px) {
    .sy-clientes-index .sys-table { min-width: 0; }
    .sy-clientes-index .sy-client-actions { justify-content: center; margin-inline: auto; }
}


/* =========================================================
   Clientes v1.0.8: identificação compacta e atalho WhatsApp
   ========================================================= */
.sy-clientes-index .sy-client-cell {
    text-align: left !important;
}
.sy-clientes-index .sy-client-main-line {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0;
}
.sy-clientes-index .sy-client-code {
    color: var(--text-color);
    white-space: nowrap;
}
.sy-clientes-index .sy-client-separator {
    white-space: pre;
}
.sy-clientes-index .sy-client-razao {
    font-weight: 700;
    color: var(--font-cor-razao-social-grid);
}
.sy-clientes-index .sy-client-fantasia {
    font-size: var(--font-tamanho-menor);
    color: var(--text-muted);
}
.sy-clientes-index .sy-client-phone-line {
    margin-top: 5px;
}
.sy-whatsapp-badge,
.sy-phone-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    width: fit-content;
    max-width: 100%;
    padding: 4px 8px;
    border-radius: 999px;
    font-size: var(--font-tamanho-menor);
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    color: var(--cor-font-botoes);
    background: var(--whatsapp);
}
.sy-fornecedores-index .sy-client-phone-line { margin-top: 5px; }
.sy-whatsapp-badge:hover {
    color: var(--cor-font-botoes);
    background: var(--whatsapp-hover);
}
.sy-whatsapp-badge .icon-sys,
.sy-phone-badge .icon-sys {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    cursor: inherit;
}
.sy-clientes-index .sy-client-document strong {
    font-weight: 700;
}
.sy-clientes-index .sy-client-city {
    color: var(--text-muted);
}

/* Alertas de erro são persistentes: somente o botão X os encerra. */
.sy-alerta.sy-alerta-erro .sy-alerta-trilha {
    display: none !important;
}

/* v1.0.9 - Clientes: organização condicional e normalização visual */
.sy-client-form-page input:not([type="email"]):not([type="password"]):not([type="date"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.sy-client-form-page select {
    text-transform: uppercase;
}
.sy-client-form-page input[type="email"] { text-transform: lowercase; }
.sy-client-form-page textarea { text-transform: none; }

.sy-ident-line { display:grid; gap:12px; align-items:end; margin-bottom:12px; }
.sy-ident-line-first { grid-template-columns:minmax(130px, 220px) minmax(170px, 220px); }
.sy-ident-line-docs {
    grid-template-columns:minmax(115px,1fr) minmax(190px,2fr) minmax(100px,1.1fr) minmax(90px,.8fr) minmax(100px,1fr) minmax(160px,1.7fr) minmax(105px,1fr) minmax(105px,1fr);
}
.sy-ident-line-docs .sy-field { min-width:0; }
.sy-ident-check { align-self:end; padding-bottom:9px; }
.sy-ident-line-main { margin-top:2px; }
.sy-card-toggle { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; }
.sy-card-toggle h2 { margin:0; }
.sy-card-toggle .sy-check { margin:0; white-space:nowrap; }
.sy-address-extra[hidden], [data-person][hidden], [data-hide-fisica][hidden], [data-card-hide-fisica][hidden] { display:none !important; }

@media (max-width: 1180px) {
    .sy-ident-line-docs { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width: 760px) {
    .sy-ident-line-first { grid-template-columns:1fr 1fr; }
    .sy-ident-line-docs { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .sy-card-toggle { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 480px) {
    .sy-ident-line-first, .sy-ident-line-docs { grid-template-columns:1fr; }
}


/* v1.0.10 - usabilidade global de formulários */
.sy-check, .sy-check *, .label-checkbox, .label-checkbox * { cursor: pointer !important; }
.sy-required-missing,
.TextBox-MSG,
.SELECT-MSG {
    background-color: var(--required-bg, #fff7cc) !important;
}
.sy-client-form-page .sy-field.sy-size-1 { grid-column: span 2; max-width: 190px; }
.sy-client-form-page .sy-field.sy-size-1 .TextBox,
.sy-client-form-page .sy-field.sy-size-1 .SELECT { max-width: 190px; }
.sy-client-form-page input[type="date"]::placeholder { text-transform: uppercase; }
.sy-client-form-page .sy-readonly-null[readonly] { background: color-mix(in srgb, var(--fundo-campos-formulario), #000 4%); cursor: not-allowed; }
@media (max-width: 760px) {
    .sy-client-form-page .sy-field.sy-size-1 { grid-column: span 6; max-width: none; }
    .sy-client-form-page .sy-field.sy-size-1 .TextBox,
    .sy-client-form-page .sy-field.sy-size-1 .SELECT { max-width: none; }
}
@media (max-width: 480px) {
    .sy-client-form-page .sy-field.sy-size-1 { grid-column: 1 / -1; }
}

.sy-client-form-page .sy-ident-line-first {
    grid-template-columns: minmax(120px,190px) minmax(320px,1fr) minmax(160px,190px);
}
.sy-client-form-page .sy-ident-line-first .sy-ident-razao { min-width:0; }
@media (max-width:900px) {
    .sy-client-form-page .sy-ident-line-first { grid-template-columns: minmax(120px,170px) 1fr; }
    .sy-client-form-page .sy-ident-line-first .sy-ident-razao { grid-column:2; grid-row:1 / span 2; }
}
@media (max-width:600px) {
    .sy-client-form-page .sy-ident-line-first { grid-template-columns:1fr; }
    .sy-client-form-page .sy-ident-line-first .sy-ident-razao { grid-column:auto; grid-row:auto; }
}
.sy-client-form-page input[type="date"],
.sy-client-form-page input[type="date"]::-webkit-datetime-edit,
.sy-client-form-page input[type="date"]::-webkit-datetime-edit-text,
.sy-client-form-page input[type="date"]::-webkit-datetime-edit-day-field,
.sy-client-form-page input[type="date"]::-webkit-datetime-edit-month-field,
.sy-client-form-page input[type="date"]::-webkit-datetime-edit-year-field {
    text-transform: uppercase;
}


/* v1.0.11 - documentos, checkbox e validações */
.sy-alert-warning {
    border-color: color-mix(in srgb, var(--warning), white 42%);
    color: #6b4b00;
    background: color-mix(in srgb, var(--warning), white 84%);
}
.sy-check {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 7px;
    min-height: var(--control-height);
    line-height: 1.2;
}
.sy-check input[type="checkbox"] {
    margin: 0;
    align-self: center;
}
.sy-ident-check {
    display: flex;
    align-items: end;
}
.sy-ident-check .sy-check {
    width: 100%;
    align-items: center;
}
.sy-client-form-page .sy-ident-docs-row {
    display: grid;
    grid-template-columns: minmax(120px, .8fr) minmax(250px, 2fr) minmax(150px, 1fr) minmax(95px, .7fr) minmax(150px, 1fr);
    gap: 12px;
    align-items: end;
    margin-top: 12px;
}
.sy-client-form-page .sy-ident-docs-row > * { min-width: 0; max-width: none; }
.sy-client-form-page .sy-ident-docs-row .sy-ident-check { height: 100%; }
@media (max-width: 1050px) {
    .sy-client-form-page .sy-ident-docs-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
    .sy-client-form-page .sy-ident-docs-row { grid-template-columns: 1fr; }
}


/* Ajustes v1.0.11 - título do cabeçalho e identificação de Clientes */
.sy-title .sy-current-page-title {
    font-size: calc(var(--font-tamanho-maior) + 2px);
    text-shadow: 1px 1px 2px #000;
}
.sy-client-form-page .sy-ident-person-row {
    display:grid;
    grid-template-columns:minmax(120px,160px) minmax(250px,2fr) minmax(120px,1fr) minmax(90px,.65fr) minmax(120px,1fr) minmax(220px,2fr);
    gap:12px;
    align-items:end;
    margin-top:12px;
}
.sy-client-form-page .sy-ident-person-row > * { min-width:0; max-width:none; }
.sy-client-form-page .sy-ident-person-row.is-fisica {
    /* Pessoa, CPF, RG, Órgão e Apelido permanecem na mesma linha em desktop. */
    grid-template-columns:minmax(110px,.8fr) minmax(135px,1fr) minmax(120px,.9fr) minmax(120px,.9fr) minmax(170px,1.25fr);
}
.sy-client-form-page .sy-ident-person-row .sy-ident-check { height:100%; }
@media (max-width:1100px) {
    .sy-client-form-page .sy-ident-person-row:not(.is-fisica) { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .sy-client-form-page .sy-ident-person-row.is-fisica {
        grid-template-columns:minmax(95px,.8fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.2fr);
        gap:8px;
    }
}
@media (max-width:680px) {
    .sy-client-form-page .sy-ident-person-row,
    .sy-client-form-page .sy-ident-person-row.is-fisica { grid-template-columns:1fr; }
}

/* Hotfix v1.0.11 - Clientes/Identificação: respeita as colunas dos grids específicos.
   As regras globais de .sy-field (grid-column: span ...) não podem atuar dentro
   das duas linhas personalizadas de Identificação. */
.sy-client-form-page .sy-ident-line-first > .sy-field,
.sy-client-form-page .sy-ident-person-row > .sy-field {
    grid-column: auto !important;
}

/* A Razão Social ocupa a coluna central flexível da primeira linha. */
.sy-client-form-page .sy-ident-line-first > .sy-ident-razao {
    width: 100%;
    max-width: none;
}

/* Nos campos condicionais, a largura é controlada pelo grid da linha e não
   pelos tamanhos genéricos usados no restante do formulário. */
.sy-client-form-page .sy-ident-person-row > .sy-field,
.sy-client-form-page .sy-ident-person-row > .sy-field.sy-size-1,
.sy-client-form-page .sy-ident-person-row > .sy-field.sy-size-2 {
    width: 100%;
    max-width: none;
}
.sy-client-form-page .sy-ident-person-row > .sy-field .TextBox,
.sy-client-form-page .sy-ident-person-row > .sy-field .SELECT {
    width: 100%;
    max-width: none;
}
.sy-client-form-page .sy-ident-person-row > .sy-ident-check {
    width: 100%;
}

/* Hotfix v1.0.11 - alinhamento da linha Pessoa Jurídica em Clientes/Identificação.
   Mantém o layout de Pessoa Física sem alterações. */
@media (min-width: 1101px) {
    /* O status da consulta de CNPJ não participa da altura da célula; assim
       CNPJ, IE, Isento, IM e Nome Fantasia usam a mesma linha de base. */
    .sy-client-form-page .sy-ident-person-row:not(.is-fisica) > [data-person="cnpj"] {
        position: relative;
        overflow: visible;
    }
    .sy-client-form-page .sy-ident-person-row:not(.is-fisica) > [data-person="cnpj"] .consulta-cnpj-status {
        position: absolute;
        left: 0;
        right: 0;
        top: calc(100% + 3px);
        min-height: 0;
        margin-top: 0;
        line-height: 1.15;
        z-index: 2;
        pointer-events: none;
    }
    .sy-client-form-page .sy-ident-person-row:not(.is-fisica) > [data-person="cnpj"] .consulta-cnpj-status:empty {
        display: none;
    }

    /* Campo e lupa do CNPJ têm exatamente a mesma altura visual. */
    .sy-client-form-page .sy-ident-person-row:not(.is-fisica) > [data-person="cnpj"] .campo-com-acoes {
        align-items: stretch;
    }
    .sy-client-form-page .sy-ident-person-row:not(.is-fisica) > [data-person="cnpj"] .botao-lupa {
        width: var(--control-height);
        min-width: var(--control-height);
        height: auto;
        min-height: var(--control-height);
        flex: 0 0 var(--control-height);
        align-self: stretch;
    }

    /* A célula Isento é uma coluna do mesmo grid. O conteúdo deve encostar
       na mesma base dos inputs, e não no topo da altura total da linha. */
    .sy-client-form-page .sy-ident-person-row:not(.is-fisica) > .sy-ident-check {
        justify-content: flex-end;
        align-items: stretch;
        padding-bottom: 0 !important;
        height: auto;
        min-height: 0;
    }
    .sy-client-form-page .sy-ident-person-row:not(.is-fisica) > .sy-ident-check .sy-check {
        min-height: var(--control-height);
        height: var(--control-height);
        width: 100%;
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        margin: 0;
        padding: 0;
        line-height: 1;
    }
    .sy-client-form-page .sy-ident-person-row:not(.is-fisica) > .sy-ident-check .sy-check input[type="checkbox"] {
        margin: 0;
        vertical-align: middle;
    }
}

/* =========================================================
   Padrão global de Grid View - baseado no Index.php de Clientes
   Use .sy-grid-index em todas as telas de listagem do projeto.
   ========================================================= */
.sy-grid-index {
    min-width: 0;
}

.sy-grid-index .table-responsive {
    width: 100%;
    max-width: 100%;
}

.sy-grid-index .sys-table {
    width: 100%;
    min-width: 720px;
}

.sy-grid-index .sys-table th:last-child,
.sy-grid-index .sys-table td:last-child {
    text-align: center;
}

:is(.sy-grid-index, .dashboard-margin-card) .sy-grid-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex-wrap: wrap;
}

/* Botões de ação seguem o mesmo padrão visual do grid de Clientes:
   fundo neutro, borda discreta e somente o glifo recebe a cor da ação. */
:is(.sy-grid-index, .dashboard-margin-card) .sy-action-link {
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
    line-height: 1;
    box-sizing: border-box;
    text-decoration: none;
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--surface);
    color: var(--primary);
    cursor: pointer;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

:is(.sy-grid-index, .dashboard-margin-card) .sy-action-link:hover {
    color: var(--primary-hover);
    background: color-mix(in srgb, var(--surface), var(--primary) 12%);
    transform: translateY(-1px);
}

:is(.sy-grid-index, .dashboard-margin-card) .sy-action-link.danger {
    color: var(--danger);
    background: var(--surface);
}

:is(.sy-grid-index, .dashboard-margin-card) .sy-action-link.danger .icon-sys {
    color: var(--danger);
}

:is(.sy-grid-index, .dashboard-margin-card) .sy-action-link.danger:hover {
    color: var(--danger-hover);
    background: color-mix(in srgb, var(--surface), var(--danger) 10%);
}

:is(.sy-grid-index, .dashboard-margin-card) .sy-action-link.danger:hover .icon-sys {
    color: var(--danger-hover);
}

:is(.sy-grid-index, .dashboard-margin-card) .sy-action-link .icon-sys {
    width: 19px;
    height: 19px;
    cursor: inherit;
}

/* Formulários auxiliares acima do grid usam o mesmo container visual
   dos filtros do Index.php de Clientes. */
.sy-grid-index .sy-grid-toolbar {
    margin-bottom: 15px;
}

.sy-grid-index .sy-grid-inline-form {
    width: 100%;
}

@media (max-width: 768px) {
    .sy-grid-index .sys-table {
        min-width: 0;
    }

    .sy-grid-index .sy-grid-actions {
        justify-content: flex-start;
    }
}

/* =========================================================
   Hotfix v1.0.11 - normalização visual das ações dos grids
   O CSS legado gerava o texto do atributo title somente para <a>,
   deixando "Alterar" diferente dos <button>. Nos grids padronizados
   todas as ações permanecem somente com o ícone.
   ========================================================= */
.sy-grid-index .action-container .sy-action-link[title] {
    flex-direction: row !important;
    gap: 0 !important;
}

.sy-grid-index .action-container .sy-action-link[title]::after {
    content: none !important;
    display: none !important;
}

/* =========================================================
   Padrão global de lookups - formulários de cadastro
   Select + limpar + abrir cadastro relacionado.
   ========================================================= */
.sy-lookup-control {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-width: 0;
}
.sy-lookup-select {
    flex: 1 1 auto;
    min-width: 0;
}
.sy-lookup-select .SELECT,
.sy-lookup-select .TextBox {
    width: 100%;
    max-width: none;
}
.sy-lookup-button {
    appearance: none;
    -webkit-appearance: none;
    flex: 0 0 var(--control-height);
    width: var(--control-height);
    height: var(--control-height);
    padding: 0;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 1px 3px var(--sombra-botoes);
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.sy-lookup-button .icon-sys {
    width: 18px;
    height: 18px;
    cursor: inherit;
}
.sy-lookup-clear {
    color: var(--danger);
    background: color-mix(in srgb, var(--danger), white 84%);
}
.sy-lookup-clear:hover {
    color: var(--danger);
    background: color-mix(in srgb, var(--danger), white 72%);
    transform: translateY(-1px);
}
.sy-lookup-edit {
    color: var(--primary);
    background: color-mix(in srgb, var(--primary), white 78%);
}
.sy-lookup-edit:hover {
    color: var(--primary);
    background: color-mix(in srgb, var(--primary), white 66%);
    transform: translateY(-1px);
}
.sy-lookup-button:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--primary), white 35%);
    outline-offset: 1px;
}
@media (max-width: 560px) {
    .sy-lookup-control { flex-wrap: nowrap; }
    .sy-lookup-select { flex: 1 1 calc(100% - 84px); }
}



/* =========================================================
   Datas - padrão global de formulário
   ========================================================= */
input[type="date"]::placeholder { text-transform: uppercase; }
input[type="date"],
input[type="date"]::-webkit-datetime-edit,
input[type="date"]::-webkit-datetime-edit-text,
input[type="date"]::-webkit-datetime-edit-day-field,
input[type="date"]::-webkit-datetime-edit-month-field,
input[type="date"]::-webkit-datetime-edit-year-field {
    text-transform: uppercase;
}


/* Produto com foto cadastrada: destaque suave da ação de upload. */
.sy-grid-index .sy-action-link.has-photo {
    background: color-mix(in srgb, var(--secondary), white 82%);
    border-color: color-mix(in srgb, var(--secondary), white 58%);
}
.sy-grid-index .sy-action-link.has-photo:hover {
    background: color-mix(in srgb, var(--secondary), white 72%);
}

/* Ação de atenção sem semântica de erro. */
.Botao-Amarelo {
    background-color: var(--warning) !important;
    color: #332500 !important;
}
.Botao-Amarelo:hover:not(:disabled) {
    background-color: color-mix(in srgb, var(--warning), white 25%) !important;
}

/* Pedidos em atraso substituem o texto "NOVO!" por destaque de linha. */
.sys-table tr.sy-row-warning,
.sys-table tr.sy-row-warning > td {
    background-color: color-mix(in srgb, var(--warning), white 78%) !important;
}


/* v1.0.12 R1 - ações relacionadas, checkbox e itens de pedidos */
.sy-related-nav form.sy-related-delete-form { margin:0; display:inline-flex; }
.sy-related-nav .sy-related-danger {
    border:0; cursor:pointer; font:700 var(--font-tamanho-padrao) var(--font-padrao);
    display:inline-flex; align-items:center; justify-content:center; gap:7px;
    min-height:var(--control-height); padding:0 12px; border-radius:var(--radius-sm);
    background:var(--danger); color:var(--cor-font-botoes);
}
.sy-related-nav .sy-related-danger:hover { background:color-mix(in srgb, var(--danger), white 25%); }
.sy-related-nav .sy-related-danger svg { width:17px; height:17px; }
.sy-checkbox-field { display:flex; align-items:center; min-height:calc(var(--control-height) + 18px); }
.sy-checkbox-field .sy-check { margin:0; align-self:center; }
.sy-order-items-box { max-height:310px; min-height:170px; overflow:auto; border:1px solid var(--border-color); border-radius:var(--radius-sm); background:var(--surface); }
.sy-order-items-box .table-responsive { overflow:visible; }
.sy-order-totals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:10px; }
.sy-order-total-card { padding:10px 12px; border:1px solid var(--border-color); border-radius:var(--radius-sm); background:var(--surface); }
.sy-order-total-card span { display:block; color:var(--text-muted); font-size:var(--font-tamanho-menor); }
.sy-order-total-card strong { display:block; margin-top:3px; font-size:var(--font-tamanho-maior); color:var(--primary); }
.mm-modal-pdf { width:100%; height:100%; min-height:60vh; border:0; display:block; background:#fff; }
@media (max-width:700px){
  .sy-related-nav form.sy-related-delete-form,.sy-related-nav .sy-related-danger{width:100%}
  .sy-order-totals{grid-template-columns:1fr}
}

/* v1.0.12 R1 - pedidos: itens integrados */
.sy-order-items-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.sy-order-items-header h2{margin:0}
.sy-order-items-box .sys-table{margin:0;border:0}
.sy-order-items-box .sys-table thead{position:sticky;top:0;z-index:2}
.sy-related-nav form{margin:0;display:inline-flex}
.sy-related-nav form>button{height:100%}
@media(max-width:700px){.sy-order-items-header{align-items:stretch;flex-direction:column}.sy-order-items-header .Botao{width:100%;justify-content:center}.sy-related-nav form{width:100%}.sy-related-nav form>button{width:100%;justify-content:center}}


/* R1 - alinhamento vertical uniforme dos checkboxes em Dados.php */
.sy-form-grid > .sy-checkbox-field,
.sy-client-form-page .sy-ident-check {
    align-self: stretch;
    display: flex;
    align-items: center;
    padding-top: 0;
    padding-bottom: 0;
}
.sy-form-grid > .sy-checkbox-field .sy-check,
.sy-client-form-page .sy-ident-check .sy-check {
    min-height: var(--control-height);
    align-items: center;
    margin: 0;
}

/* R1 - visualização da foto atual do produto no upload */
.sy-product-photo-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 180px;
    padding: 12px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--surface);
}
.sy-product-photo-preview img {
    display: block;
    max-width: 100%;
    max-height: 360px;
    width: auto;
    height: auto;
    object-fit: contain;
}


/* Produtos: estoque em linha secundária e indicador ST do NCM. */
.sy-product-stock {
    font-size: var(--font-tamanho-menor);
    color: var(--text-muted);
}
.sy-ncm-st-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 5px;
    padding: 2px 7px;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--warning), #000 12%);
    background: color-mix(in srgb, var(--warning), white 35%);
    color: #5f4600;
    font-size: var(--font-tamanho-menor);
    font-weight: 700;
    line-height: 1.2;
    vertical-align: middle;
}


/* v1.0.12 R4 - Produtos: miniatura no grid e foto no formulário. */
.sy-product-grid-cell {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.sy-product-thumb-wrap {
    width: 58px;
    min-width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--surface);
    overflow: hidden;
}
.sy-product-thumb {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}
.sy-product-no-photo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    text-align: center;
    color: var(--text-muted);
    font-size: var(--font-tamanho-menor);
    line-height: 1.15;
}
.sy-product-grid-text { min-width: 0; }
.sy-product-photo-form-box {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 220px;
}
.sy-product-photo-open {
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
    max-width: 100%;
}
.sy-product-photo-open img {
    display: block;
    max-width: min(100%, 420px);
    max-height: 360px;
    width: auto;
    height: auto;
    object-fit: contain;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--surface);
}
.sy-product-photo-empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    min-height: 150px;
    padding: 18px;
    border: 1px dashed var(--border-color);
    border-radius: var(--radius-sm);
    background: var(--surface);
    color: var(--text-muted);
    font-size: var(--font-tamanho-padrao);
}
.sy-product-photo-empty-button {
    cursor: pointer;
    font: inherit;
}
.sy-product-photo-empty-button:hover {
    border-color: var(--primary);
    color: var(--primary);
}

/* R6: o aviso de foto ausente somente aparece quando a imagem falhar. */
.sy-product-no-photo[hidden], .sy-product-photo-empty[hidden] { display: none !important; }
/* R6: edição direta dos preços, restrita ao grid Tabela_Preco/Precos. */
.sy-preco-produto-link {border:0;padding:0;background:transparent;color:var(--primary);font:inherit;font-weight:700;text-align:left;cursor:pointer;}
.sy-preco-produto-link:hover {text-decoration:underline;}
.sy-preco-inline-wrap {display:flex;align-items:center;justify-content:flex-start;gap:6px;margin-top:6px;text-align:left;}
.sy-preco-inline {width:145px;max-width:100%;text-align:left;font:inherit;font-weight:700;padding:6px 8px;}
.sy-preco-inline:focus {outline:2px solid var(--primary);outline-offset:1px;}
.sy-preco-inline.sy-preco-erro {border-color:var(--danger);}
.sy-preco-badge-sugerido {display:inline-flex;padding:3px 8px;border-radius:999px;font-weight:700;font-size:var(--font-tamanho-menor);white-space:nowrap;}
.sy-preco-sugerido-ok {background:#d7f4df;color:#176735;}
.sy-preco-sugerido-off {background:#ffe0df;color:#9d2121;}
.sy-classificacao-index .sys-table {table-layout:fixed;}
.sy-classificacao-index .sys-table th:nth-child(1){width:25%;}
.sy-classificacao-index .sys-table th:nth-child(2),.sy-classificacao-index .sys-table td:nth-child(2){width:50%;max-width:50%;overflow-wrap:anywhere;white-space:normal;}
.sy-classificacao-index .sys-table th:nth-child(3){width:25%;}

@media(max-width:768px){.sy-classificacao-index .sys-table{table-layout:auto;}.sy-classificacao-index .sys-table td:nth-child(2){width:auto;max-width:none;}}

/* v1.0.13: tipo de fornecedor */
.sy-radio-person{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border:0;padding:0;margin:0;min-width:0}.sy-radio-person legend{font-weight:600;margin-bottom:8px}.sy-radio-person label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.sy-radio-person input{cursor:pointer;accent-color:var(--primary)}

/* Pedidos: layout de pagamento próprio, sem interferência do grid genérico. */
.sy-order-payment-card .sy-order-payment-top{margin-bottom:12px;}
.sy-order-payment-card .sy-order-payment-layout{
    display:grid;grid-template-columns:minmax(160px,190px) minmax(0,1fr);
    gap:14px;align-items:center;min-width:0;
}
.sy-order-payment-card .sy-order-payment-count{min-width:0;align-self:center;}
.sy-order-payment-card .sy-order-payment-count>.sy-field,
.sy-order-payment-card .sy-order-payment-row>.sy-field{
    display:flex;flex-direction:column;min-width:0;width:auto;grid-column:auto;
}
.sy-order-payment-card .sy-order-payment-count .SELECT,
.sy-order-payment-card .sy-order-payment-row .TextBox{width:100%;max-width:none;min-width:0;}
.sy-order-payment-card .sy-order-payment-terms{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;}
.sy-order-payment-card .sy-order-payment-row{
    display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;min-width:0;
}
.sy-order-totals{grid-template-columns:repeat(4,minmax(0,1fr));}
.sy-order-total-card.sy-order-total-subtotal,
.sy-order-total-card.sy-order-total-value{text-align:right;}
/* Os dois grids de itens seguem o padrão global Excluir/Apagar (danger). */
.sy-order-items-box .sy-grid-actions .sy-action-link.danger,
.sy-order-items-box .sy-grid-actions .sy-action-link.danger .icon-sys{color:var(--danger);}
.sy-order-items-box .sy-grid-actions .sy-action-link.danger:hover,
.sy-order-items-box .sy-grid-actions .sy-action-link.danger:hover .icon-sys{color:var(--danger-hover);}
.sy-order-form-actions{margin:14px 0 12px;}
@media(max-width:960px){
  .sy-order-payment-card .sy-order-payment-layout{grid-template-columns:1fr;}
  .sy-order-payment-card .sy-order-payment-count{max-width:220px;}
  .sy-order-payment-card .sy-order-payment-row{grid-template-columns:repeat(3,minmax(0,1fr));}
  .sy-order-totals{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){
  .sy-order-payment-card .sy-order-payment-row{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sy-order-totals{grid-template-columns:1fr;}
  .sy-order-form-actions .Botao{flex:1 1 auto;}
}

/* Cores do menu: camada de branco aplicada sobre o nível anterior. */
:root {
 --menu-dashboard: #245a81;
 --menu-vendas: #246d53;
 --menu-depositos: #566b30;
 --menu-financeiro: #6e4693;
 --menu-faturamento: #a15a20;
 --menu-compras: #246d79;
 --menu-contabilidade: var(--primary);
 --menu-configuracoes: #596273;
 --menu-branco-subgrupo: 15%;
 --menu-branco-item-impar: 55%;
 --menu-branco-item-par: 75%;
}
.sy-menu-dashboard { --menu-cor: var(--menu-dashboard); }
.sy-menu-vendas { --menu-cor: var(--menu-vendas); }
.sy-menu-depositos { --menu-cor: var(--menu-depositos); }
.sy-menu-financeiro { --menu-cor: var(--menu-financeiro); }
.sy-menu-faturamento { --menu-cor: var(--menu-faturamento); }
.sy-menu-compras { --menu-cor: var(--menu-compras); }
.sy-menu-contabilidade { --menu-cor: var(--menu-contabilidade); }
.sy-menu-configuracoes { --menu-cor: var(--menu-configuracoes); }
.sy-menu > .sy-menu-group { --menu-subcor: color-mix(in srgb, var(--menu-cor), white var(--menu-branco-subgrupo)); margin-bottom:5px; }
.sy-menu > .sy-menu-item, .sy-menu > .sy-menu-group > .sy-menu-group-button { background:var(--menu-cor); color:white; }
.sy-menu > .sy-menu-group > .sy-menu-children > .sy-menu-group > .sy-menu-group-button { background:var(--menu-subcor); color:white; }
.sy-menu .sy-submenu-item:nth-child(odd) { background:color-mix(in srgb, var(--menu-subcor), white var(--menu-branco-item-impar)); color:#101828; }
.sy-menu .sy-submenu-item:nth-child(even) { background:color-mix(in srgb, var(--menu-subcor), white var(--menu-branco-item-par)); color:#101828; }
.sy-menu .sy-menu-item svg, .sy-menu .sy-menu-group-button svg, .sy-menu .sy-submenu-item svg { color:inherit; }
.sy-menu .sy-submenu-item { border-radius:4px; margin:2px 0; }
.sy-menu button:hover { filter:brightness(1.07); }
.sy-menu button:focus-visible { outline:2px solid #101828; outline-offset:2px; }


/* Hotfix: espaçamento em todos os níveis, inclusive Dashboard e grupos fechados. */
:root { --menu-espaco-grupo: 5px; --menu-espaco-item: 2px; }
.sy-menu { display:flex; flex-direction:column; gap:var(--menu-espaco-grupo); }
.sy-menu > .sy-menu-group, .sy-menu > .sy-menu-item { margin:0; }
.sy-menu .sy-menu-group.is-open > .sy-menu-children { display:flex; flex-direction:column; gap:var(--menu-espaco-grupo); }
.sy-menu .sy-menu-children > .sy-menu-group { margin:0; }
.sy-menu .sy-menu-children .sy-menu-children { gap:var(--menu-espaco-item); }
.sy-menu .sy-submenu-item { margin:0; }

/* NF-e e conferência seguem as cores, botões e painéis dos formulários padrão. */
:root { --fechamento-pendente: color-mix(in srgb,var(--danger),white 88%); --fechamento-completo: color-mix(in srgb,var(--secondary),white 88%); }
.sy-grid-index .sy-action-link.sy-fechamento-pendente { background:var(--fechamento-pendente); color:var(--danger); }
.sy-grid-index .sy-action-link.sy-fechamento-completo { background:var(--fechamento-completo); color:var(--secondary); }
.sy-grid-index .sy-action-link.sy-fechamento-pendente:hover { background:color-mix(in srgb,var(--danger),white 78%); }
.sy-grid-index .sy-action-link.sy-fechamento-completo:hover { background:color-mix(in srgb,var(--secondary),white 78%); }
.sy-fechamento-table { table-layout:fixed; }
.sy-fechamento-table .sy-fechamento-produto { width:40%; text-align:left; overflow-wrap:anywhere; }
.sy-fechamento-table .sy-fechamento-pedido { width:10%; }
.sy-fechamento-table .sy-fechamento-un { width:6%; }
.sy-fechamento-table .sy-fechamento-numero { width:12%; }
.sy-fechamento-table .sy-fechamento-obs { width:20%; }
.sy-form-section .sy-fechamento-qtd { width:100%; max-width:7.5rem; min-width:0; text-align:right; }
.nfe-dialog { width:min(760px,94vw); max-height:90dvh; border:0; border-radius:var(--radius-md); padding:0; background:var(--surface); color:var(--text-color); box-shadow:0 16px 50px rgba(0,0,0,.3); }
.nfe-dialog::backdrop { background:rgba(0,0,0,.55); }
.nfe-faturamento-dialog form { display:flex; flex-direction:column; max-height:90dvh; margin:0; }
.nfe-dialog-conteudo { padding:14px; min-height:0; overflow:auto; background:var(--bg-body); }
.nfe-dialog-conteudo .sy-form-section { margin:0; }
.nfe-dialog-conteudo label { display:block; margin-top:12px; }
.nfe-dialog-conteudo .SELECT,.nfe-dialog-conteudo .TextBox { width:100%; }
.nfe-dialog .sy-show-title { margin:0; }
.nfe-dialog .sy-show-foot { margin:0; gap:10px; }
.nfe-pdf-dialog { width:95vw; padding:12px; }
.nfe-pdf-dialog .mm-modal-pdf { height:75vh; }
@media(max-width:700px) {
 .sy-fechamento-table { table-layout:auto; }
 .sy-fechamento-table td.sy-fechamento-produto { width:auto; }
 .nfe-dialog .sy-show-foot { display:flex; flex-wrap:wrap; }
}

/* v1.0.14 — ajustes restritos às telas de pedidos e NF-e. */
.sy-pedidos-filtros { display:grid; grid-template-columns:auto minmax(120px,1fr) auto auto; }
.sy-pedidos-filtros .sy-filter-primary { margin-left:0; }
.sy-pedidos-filtros .sy-filter-secondary { grid-column:1/-1; justify-self:end; }
.sy-status-warning { color:var(--text-color); background:color-mix(in srgb,var(--warning),white 65%); }
.sy-nfe-index .filter-actions { flex-basis:100%; justify-content:flex-end; }
.nfe-faturamento-dialog .mm-modal-header { position:relative; flex:0 0 auto; background:var(--primary); color:var(--header-text); padding:10px 46px 10px 14px; min-height:46px; box-sizing:border-box; }
.nfe-faturamento-dialog .mm-modal-title { font:700 15px Verdana,Arial,sans-serif; line-height:1.2; margin:0; text-align:left; }
.nfe-faturamento-dialog .mm-modal-local { font:700 10px Verdana,Arial,sans-serif; opacity:.9; margin-top:3px; }
.nfe-faturamento-dialog .mm-modal-close { position:absolute; top:8px; right:8px; width:30px; height:30px; border:0; border-radius:6px; background:var(--danger); color:var(--header-text); font:bold 18px/30px Arial,sans-serif; cursor:pointer; }
.nfe-faturamento-dialog .mm-modal-close:hover { background:color-mix(in srgb,var(--danger),white 25%); }
@media(max-width:1050px) {
 .sy-pedidos-filtros { grid-template-columns:auto minmax(120px,1fr); }
 .sy-pedidos-filtros .filter-checks { grid-column:1; }
 .sy-pedidos-filtros .sy-filter-primary { grid-column:2; justify-self:end; }
}
@media(max-width:600px) {
 .sy-pedidos-filtros { grid-template-columns:minmax(0,1fr); }
 .sy-pedidos-filtros .filter-checks,.sy-pedidos-filtros .sy-filter-primary { grid-column:1; }
}

/* v1.0.15 — formulário fiscal com o grid padrão de cadastros. */
.nfe-dialog-conteudo .sy-field label { margin-top:0; }
#nfeXPagCampo[hidden] { display:none !important; }

/* v1.0.16: Pedidos / Balcão / NF-e */
.sy-typeahead{position:relative}.sy-typeahead-list{position:absolute;top:100%;left:0;right:0;z-index:1000;max-height:280px;overflow:auto;background:var(--surface,#fff);border:1px solid var(--border-color,#ccc);box-shadow:0 4px 10px #0002}
.sy-typeahead-option{display:block;width:100%;padding:10px;border:0;text-align:left;background:transparent;color:inherit;cursor:pointer;font:inherit}.sy-typeahead-option:hover,.sy-typeahead-option.is-active{background:var(--primary);color:#fff}
.sy-order-totals-complete{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.sy-order-total-card .TextBox{width:100%;box-sizing:border-box;text-align:right;font-weight:bold}.sy-order-payment-terms input:disabled{opacity:.5;background:var(--surface-alt,#eee)}
@media(min-width:769px){.sy-nfe-index .sys-table th:first-child,.sy-nfe-index .sys-table td:first-child{width:22%;min-width:0}.sy-nfe-index .sys-table th:nth-child(2),.sy-nfe-index .sys-table td:nth-child(2){width:55%}.sy-nfe-index .sys-table th:last-child{width:23%}}
@media(max-width:900px){.sy-order-totals-complete{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.sy-order-totals-complete{grid-template-columns:1fr}}
.sy-order-totals-complete > .sy-order-total-card{grid-column:auto;min-width:0;}
.sy-order-items-header{flex-wrap:wrap;}

/* v1.0.17: uma linha de totais no pedido; rolagem local em telas estreitas. */
.sy-pedido-totals-row.sy-order-totals-complete {
    grid-template-columns:repeat(7,minmax(118px,1fr));
    gap:10px; overflow-x:auto; padding-bottom:4px;
}
.sy-pedido-totals-row > .sy-order-total-card { padding:10px 8px; box-sizing:border-box; }
.sy-pedido-totals-row #pedidoTotalValor { font-size:calc(var(--font-tamanho-maior,16px) + 3px); font-weight:700; white-space:nowrap; }
.nfe-dialog-conteudo .sy-nfe-totals-card { margin-top:14px; }
.sy-nfe-totals-card [data-nfe-total] { text-align:right; }
.sy-nfe-totals-card [data-nfe-total="total"] { font-size:calc(var(--font-tamanho-maior,16px) + 3px); font-weight:700; }
.sy-pedidos-index input[type="checkbox"] { cursor:pointer; }
.sy-pedidos-index input[type="checkbox"]:disabled { cursor:not-allowed; pointer-events:auto; }

/* Ajustes pontuais: pesos e faturamento de pedidos. */
.sy-pesos-page .TextBox,.sy-pesos-page td:nth-child(n+3),.sy-pesos-page th:nth-child(n+3){text-align:right}
#nfePedidoDialog.nfe-faturamento-dialog{width: min(1500px,96vw);max-width:96vw}
#nfePedidoDialog .sy-nfe-operation-grid{grid-template-columns:minmax(240px,2fr) repeat(4,minmax(140px,1fr))}
#nfePedidoDialog .sy-nfe-operation-grid>.sy-field{grid-column:auto;min-width:0}
#nfePedidoDialog #nfeXPagCampo{grid-column:1/-1}
#nfePedidoDialog .sy-nfe-grand-total{grid-column:10 / span 3}
@media(max-width:1000px){#nfePedidoDialog .sy-nfe-operation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#nfePedidoDialog .sy-nfe-operation-grid{grid-template-columns:1fr}#nfePedidoDialog .sy-nfe-grand-total{grid-column:1/-1;margin-left:auto;width:100%}}

/* v1.0.18: componentes dos relatórios convertidos, padrão Pedidos. */

.sy-report-filter-page .sy-report-filters{align-items:flex-end;gap:14px 16px}
.sy-report-filter-page .sy-report-filters>.filter-group{flex:1 1 210px;min-width:0}
.sy-report-filter-page .sy-report-filters>.sy-report-period{flex:0 1 185px}
.sy-report-filter-page .sy-report-filters>.sy-report-selection{flex:0 1 250px}
.sy-report-filter-page .sy-report-filters>.sy-report-wide{flex:2 1 360px}
.sy-report-filter-page .sy-report-filters .TextBox,.sy-report-filter-page .sy-report-filters .SELECT{width:100%;max-width:none}
.sy-report-filter-page .sy-report-choice{display:flex;gap:18px;flex-wrap:wrap;min-height:38px;align-items:center}
.sy-report-filter-page .sy-report-choice label{display:inline-flex;align-items:center;gap:6px;font-weight:700}
.sy-report-filter-page .sy-report-check{min-height:38px;display:flex;align-items:center}
.sy-report-filter-page .filter-actions{align-self:flex-end}.sy-report-filter-page .filter-actions .Botao{white-space:nowrap}
.sy-report-filter-page [hidden]{display:none!important}
@media(max-width:768px){.sy-report-filter-page .sy-report-filters>.filter-group,.sy-report-filter-page .sy-report-filters>.sy-report-period,.sy-report-filter-page .sy-report-filters>.sy-report-selection,.sy-report-filter-page .sy-report-filters>.sy-report-wide{flex:1 1 100%}.sy-report-filter-page .filter-actions{width:100%}.sy-report-filter-page .filter-actions .Botao{width:100%;justify-content:center}}

.sy-etiquetas-page .sys-table th.etiqueta-produto,.sy-etiquetas-page .sys-table td.etiqueta-produto{text-align:left}
.sy-etiquetas-page .sys-table th.etiqueta-preco,.sy-etiquetas-page .sys-table td.etiqueta-preco{text-align:right}

.sy-balcao-config-page #sumatra{text-transform:none}

/* v1.0.19 — financeiro e listas de sugestões. */
.sy-financeiro-index .sy-fin-actions-row{flex:0 0 100%;width:100%;display:flex;justify-content:flex-end;flex-wrap:wrap;margin-top:8px}
.sy-financeiro-index .sy-grid-actions{display:grid;grid-template-columns:repeat(5,32px);gap:5px;width:max-content;min-width:180px}
.sy-financeiro-index .sys-table th:last-child,.sy-financeiro-index .sys-table td:last-child{width:195px}
.sy-typeahead-list[hidden]{display:none!important}
.sy-typeahead-empty{padding:10px}
.sy-typeahead-option.is-active{background:var(--primary);color:#fff}
.sy-pdf-viewer{width:100%;height:calc(100vh - 175px);min-height:420px;border:0;display:block}
@media(max-width:768px){.sy-financeiro-index .sy-fin-actions-row .Botao{width:auto;flex:1 1 auto}.sy-financeiro-index .sys-table td:last-child{width:auto}}

/* v1.0.20 — ajustes restritos aos módulos solicitados. */
.sy-financeiro-index .sys-table .sy-fin-pessoa{text-align:left}
.sy-orcamento-itens .sys-table th:nth-child(2),.sy-orcamento-itens .sys-table td[data-label="Produto"],
.sy-orcamento-dinheiro .sys-table th:nth-child(3),.sy-orcamento-dinheiro .sys-table td[data-label="Produto"]{text-align:left}
.sy-orcamento-itens .sys-table th:nth-child(n+4),.sy-orcamento-itens .sys-table td[data-label="Unitário"],.sy-orcamento-itens .sys-table td[data-label="Desconto"],.sy-orcamento-itens .sys-table td[data-label="Total"],
.sy-orcamento-dinheiro .sys-table th:nth-child(n+6),.sy-orcamento-dinheiro .sys-table td[data-label="Unitário"],.sy-orcamento-dinheiro .sys-table td[data-label="Total do item"]{text-align:right}
.sy-orcamento-dinheiro input[type="checkbox"]{cursor:pointer}
.sy-orcamento-selection-actions{display:flex;justify-content:flex-end;align-items:flex-end;gap:12px;margin:16px 0}
.sy-orcamento-selection-actions input{text-align:right}
.sy-grid-index .sy-v20-period-filters{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(165px,1.3fr) minmax(120px,1fr) auto minmax(138px,1fr) minmax(138px,1fr);align-items:end;gap:14px}
.sy-grid-index .sy-v20-period-filters>.filter-group{min-width:0;width:100%;max-width:none}
.sy-grid-index .sy-v20-period-filters .TextBox,.sy-grid-index .sy-v20-period-filters .SELECT{width:100%;min-width:0;max-width:none;box-sizing:border-box}
.sy-grid-index .sy-v20-period-filters .filter-checks{min-width:0;white-space:nowrap;gap:8px}
.sy-grid-index .sy-v20-period-filters .sy-v20-buttons{grid-column:1/-1;justify-content:flex-end;display:flex;width:100%;margin-top:4px}
@media(max-width:1050px){.sy-grid-index .sy-v20-period-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.sy-grid-index .sy-v20-period-filters{grid-template-columns:1fr}.sy-orcamento-selection-actions{flex-wrap:wrap}}

/* v1.0.22: balcão e sinalização de peso, nos componentes padrão. */
.sy-balcao-form .sy-order-payment-layout{grid-template-columns:minmax(70px,95px) minmax(780px,1fr);gap:7px;overflow-x:auto;padding-bottom:4px}
.sy-balcao-form .sy-order-payment-row{grid-template-columns:repeat(12,minmax(58px,1fr));gap:6px}
.sy-balcao-form .sy-order-payment-count{align-self:start}
.sy-balcao-form #BalcaoTroco{font-size:calc(var(--font-tamanho-maior) + 10px);color:var(--danger);font-weight:bold}
.sy-order-items-box tr.texto-danger>td,.sys-table tr.texto-danger>td{color:var(--danger)}

/* Ajustes restritos a Pedidos, Balcão e seleção de orçamentos. */
.sy-pedidos-index .sy-client-fantasia,.sy-balcao-index .sy-client-fantasia{font-size:var(--font-tamanho-menor);color:var(--text-muted);font-weight:400}
.sy-pedidos-index .sy-client-razao,.sy-balcao-index .sy-client-razao{font-size:var(--font-tamanho-menor);color:var(--text-muted);font-weight:400}
.sy-pedidos-index .sys-table tr.sy-row-warning > td.sy-pedido-cadastrado-acoes,.sy-pedidos-index .sys-table td.sy-pedido-cadastrado-acoes{background-color:color-mix(in srgb,var(--warning),white 68%) !important}
.sy-venda-item-form .sy-fiscal-details>summary{cursor:pointer;color:var(--primary);font-weight:700;list-style-position:inside}
.sy-venda-item-form .sy-fiscal-details[open]>summary{margin-bottom:10px}
.sy-venda-item-form .sy-fiscal-note{margin:0 0 12px;color:var(--text-muted);font-size:var(--font-tamanho-menor)}
.sy-pedido-form .sy-order-payment-layout{grid-template-columns:90px minmax(0,1fr);gap:7px;align-items:start}
.sy-pedido-form .sy-order-payment-row{grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:6px}
.sy-pedido-form .sy-order-payment-row>.sy-field[hidden]{display:none!important}
.sy-pedido-form .sy-order-payment-count{align-self:start}
.sy-pedido-form textarea[name="Obs"]{min-height:0;height:3.9em}
.sy-balcao-visualizar .sy-order-totals{grid-template-columns:repeat(5,minmax(0,1fr))}
.sy-balcao-visualizar .sy-order-total-card strong{text-align:right;display:block}
.sy-orcamento-dinheiro-itens th:first-child,.sy-orcamento-dinheiro-itens td:first-child{width:36px;text-align:center}
.sy-orcamento-dinheiro-itens th:nth-child(3){width:42%}
.sy-orcamento-dinheiro-itens td:nth-child(n+5){text-align:right;white-space:nowrap}
@media(max-width:640px){.sy-balcao-visualizar .sy-order-totals{grid-template-columns:repeat(5,minmax(115px,1fr));overflow-x:auto}}

@media(min-width:561px){
.sy-venda-item-form .sy-field.span-2{grid-column:span 2}
.sy-venda-item-form .sy-field.span-3{grid-column:span 3}
.sy-venda-item-form .sy-field.span-4{grid-column:span 4}
.sy-venda-item-form .sy-field.span-12{grid-column:span 12}
}

/* Ajustes pontuais: identificação de fornecedores e PDFs dos relatórios. */
.sy-fornecedor-form .sy-field[hidden] { display:none !important; }
.sy-fornecedor-form .sy-fornecedor-nome { min-width:0; }
/* O modal injeta apenas o conteúdo do body: o painel deve se dimensionar
   pelo corpo do modal, sem depender da altura percentual do wrapper HTML. */
.mm-modal-body:has(.sy-report-pdf-panel) { min-height:0; overflow:hidden; }
.sy-report-pdf-panel { position:absolute; inset:0; overflow:hidden; }
.sy-report-pdf-panel > .sy-pdf-viewer { width:100%; height:100%; min-height:0; border:0; display:block; }
@media (max-width:640px) { .sy-fornecedor-form .sy-fornecedor-nome { grid-column:1 / -1; } }

.sy-report-pdf-body { margin:0; height:100dvh; overflow:hidden; }
.sy-report-pdf-body > .sy-pdf-viewer { height:100%; min-height:0; }

/* Consulta de NCM: estilos transferidos para a folha global. */

.ncm-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0}
.ncm-stat{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:13px;box-shadow:0 3px 12px var(--sombra-campos-furmulario)}
.ncm-stat strong{display:block;color:var(--primary);font-size:20px;margin-bottom:3px}.ncm-stat span{color:var(--text-muted);font-size:var(--font-tamanho-menor)}
.ncm-source{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.ncm-source p{margin:4px 0;color:var(--text-muted)}
.ncm-note{margin:10px 0 0;padding:10px 12px;border-left:4px solid var(--primary);background:color-mix(in srgb,var(--primary),white 94%);border-radius:var(--radius-sm);line-height:1.55}
.ncm-warning-box{border-left-color:var(--warning);background:color-mix(in srgb,var(--warning),white 90%)}
.ncm-update-options{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:12px}.ncm-update-options label{display:inline-flex;gap:7px;align-items:center;cursor:pointer}
.ncm-status-warn{color:#7a5600;background:color-mix(in srgb,var(--warning),white 78%)}
.ncm-table-desc{max-width:560px;white-space:normal;line-height:1.45}.ncm-muted{color:var(--text-muted);font-size:var(--font-tamanho-menor)}
.ncm-actions-cell{white-space:nowrap}.ncm-actions-cell .action-container{justify-content:center}.ncm-produtos-col{text-align:center!important}.ncm-local-desc{margin-top:4px;font-weight:normal}.ncm-actions-cell .sy-action-link:disabled{color:var(--botao-desativado)!important;background:var(--surface)!important;border-color:var(--border-color)!important;cursor:not-allowed!important;opacity:.65;transform:none!important}.ncm-results-title{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:14px}
.ncm-panel-gap{margin-top:14px}.ncm-search-form{display:grid;grid-template-columns:minmax(250px,1fr) auto;gap:10px;align-items:end}.ncm-search-form .TextBox{max-width:none}
@media(max-width:900px){.ncm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.ncm-stats{grid-template-columns:1fr}.ncm-search-form{grid-template-columns:1fr}.ncm-search-form .Botao{width:100%}}

.sy-menu-body { margin:0; background:var(--surface); }
.sy-balcao-form .sy-order-totals-complete { grid-template-columns:repeat(5,minmax(0,1fr)); }
.sy-balcao-form #BalcaoDinheiro { font-size:calc(var(--font-tamanho-maior) + 10px); font-weight:bold; }
@media(max-width:700px){.sy-balcao-form .sy-order-totals-complete{grid-template-columns:repeat(5,minmax(120px,1fr));overflow-x:auto}}

.sy-ncm-page .ncm-title { margin:0; color:var(--primary); font-size:var(--font-tamanho-subtitulo); }
.sy-ncm-page .ncm-title-source { margin-bottom:6px; }
.sy-ncm-page .ncm-title-search { margin-bottom:12px; }
.sy-ncm-page .ncm-delete-form { display:inline-flex; margin:0; }
.sy-ncm-page .ncm-create-form { display:inline; }

/* v1.0.23 — alterações restritas ao formulário de balcão e ao grid de pedidos. */
.sy-balcao-form .sy-balcao-group { margin-bottom:14px; }
.sy-balcao-form .sy-balcao-checkout { margin:12px 0 18px; }
.sy-balcao-form .sy-balcao-checkout-actions { display:flex; align-items:end; gap:8px; flex-wrap:wrap; }
.sy-pedidos-index .sy-client-fantasia { font-size:var(--font-tamanho-menor); font-weight:700; }
.sy-pedidos-index .sy-client-cidade,.sy-pedidos-index .sy-client-pagamento { font-size:var(--font-tamanho-menor); color:var(--text-muted); }
.sy-pedidos-index .sy-client-pagamento,.sy-pedidos-index .sy-client-total { text-align:right; }
.sy-pedidos-index .sy-cliente-link { color:inherit; font-weight:700; }
.sy-order-items-table .sy-peso-inline { min-width:85px; max-width:120px; }

.sy-balcao-single-card .sy-order-total-card { border:0; border-radius:0; background:transparent; }

/* v1.0.25 — somente fornecedores, balcão, dashboard e permissões. */
@media(min-width:701px){
 .sy-fornecedor-form .sy-form-section:first-of-type .sy-field.span-2{grid-column:span 2;}
 .sy-fornecedor-form .sy-form-section:first-of-type .sy-field.span-4{grid-column:span 4;}
 .sy-fornecedor-form .sy-form-section:first-of-type .sy-field.span-6{grid-column:span 6;}
 .sy-fornecedor-form .sy-form-section:first-of-type .sy-field.span-10{grid-column:span 10;}
 .sy-fornecedor-form.sy-fornecedor-juridica .sy-fornecedor-nome{grid-column:span 4;}
}
.sy-balcao-form .sy-balcao-checkout{grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) max-content;align-items:end;overflow-x:auto;gap:12px;}
.sy-balcao-form .sy-balcao-checkout>.sy-field{grid-column:auto;}
.sy-balcao-form .sy-balcao-checkout>.sy-balcao-checkout-actions{flex-direction:row;align-items:center;flex-wrap:nowrap;gap:8px;}
.sy-balcao-checkout-actions>.Botao{flex:0 0 auto;white-space:nowrap;}
.sy-balcao-fechamento .action-container,.sy-balcao-fechamento .action-container form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;}
.sy-balcao-pix{background:var(--surface);color:var(--primary);}
.sy-balcao-pix:hover:not(:disabled){background:color-mix(in srgb,var(--surface),var(--primary) 12%);color:var(--primary-hover);}
.sy-balcao-form #pedidoItensBox .sys-table tr.texto-danger>td{color:var(--danger)!important;}
.sy-balcao-form #pedidoItensBox tr.texto-danger .TextBox{color:var(--danger);}
#BalcaoPesoAviso[hidden]{display:none;}
.sy-permissoes-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.sy-permissoes-column{min-width:0;}
.sy-permissoes-column h3{font-size:var(--font-tamanho-padrao);color:var(--primary);margin:0 0 10px;}
.sy-permissoes-column .sy-checkbox-field{margin-bottom:8px;}
.sy-permissoes-column .sy-check{display:flex;align-items:center;gap:7px;}
.sy-permissoes-page .sy-checkbox-field{align-items:flex-start;text-align:left;}
.sy-permissoes-page .sy-checkbox-field .sy-check{align-self:stretch;justify-content:flex-start;text-align:left;}
.sy-dashboard-clientes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.sy-dashboard-clientes .sy-field{grid-column:auto;}
.sy-dashboard-clientes .TextBox{font-weight:bold;text-align:right;}
.sy-dashboard-clientes .sy-clientes-ativos .TextBox{background-color:#fff4c2;}
.sy-dashboard-clientes .sy-clientes-positivo .TextBox{background-color:#d9efdf;}
.sy-dashboard-clientes .sy-clientes-total .TextBox{background-color:#dcecff;}
@media(max-width:640px){.sy-permissoes-columns{grid-template-columns:1fr;}.sy-dashboard-clientes{grid-template-columns:1fr;}}

.sy-balcao-index .sy-grid-actions .sy-balcao-pix{width:36px;height:36px;min-width:36px;min-height:36px;padding:0;background:var(--surface);color:var(--primary);gap:0;}
.sy-balcao-index .sy-grid-actions .sy-balcao-pix:hover:not(:disabled){background:color-mix(in srgb,var(--surface),var(--primary) 12%);color:var(--primary-hover);}

/* v1.0.36 — modal PIX Mercado Pago: QR e Copia e Cola lado a lado. */
.sy-balcao-mp-modal .sy-balcao-mp-qr-layout{display:flex!important;flex-flow:row nowrap;gap:16px;align-items:flex-start;margin-top:12px;width:100%;min-width:0;}
.sy-balcao-mp-modal .sy-balcao-mp-qr-image{appearance:none;border:0;background:#fff;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);flex:0 0 218px;}
.sy-balcao-mp-modal .sy-balcao-mp-qr-image img{display:block;width:210px;height:210px;max-width:100%;object-fit:contain;}
.sy-balcao-mp-modal .sy-balcao-mp-copy-field{flex:1 1 auto;min-width:0;width:auto!important;}
.sy-balcao-mp-modal .sy-balcao-mp-copy-field textarea{width:100%;min-width:0;min-height:105px;height:105px;resize:none;cursor:pointer;text-transform:none;}
.sy-balcao-mp-modal .sy-balcao-mp-copy-field small{display:block;margin-top:5px;color:var(--text-muted);}
.sy-balcao-mp-modal .sy-balcao-mp-expira{margin-top:8px;font-size:var(--font-tamanho-padrao);color:var(--text);}
.sy-balcao-mp-modal .sy-balcao-mp-expira strong{font-weight:700;}
.sy-balcao-form textarea[name="Obs"]{font-size:calc(var(--font-tamanho-padrao) + 1px);}
.sy-balcao-paid-badge{margin-left:5px;vertical-align:middle;}
@media(max-width:560px){.sy-balcao-mp-modal .sy-balcao-mp-qr-layout{flex-direction:column}.sy-balcao-mp-modal .sy-balcao-mp-qr-image{flex-basis:auto;justify-content:flex-start}.sy-balcao-mp-modal .sy-balcao-mp-copy-field{width:100%!important}.sy-balcao-mp-modal .sy-balcao-mp-copy-field textarea{min-height:90px;height:90px}}

/* v1.0.47 - Fechamento de Pedidos: usa os mesmos componentes de Pedidos/Clientes. */
.sy-fechamento-form .sy-number-right,
.sy-fechamento-form .num{text-align:right!important;font-variant-numeric:tabular-nums}
.sy-fechamento-form select.sy-number-right{text-align-last:right}
.sy-fechamento-form .sy-fechamento-add-pedido{margin-bottom:3px}
.sy-fechamento-form .sy-fechamento-add-button{align-self:end;display:flex;justify-content:flex-start}
.sy-fechamento-form .sy-fechamento-identificacao{width:100%}
.sy-fechamento-form .sy-fechamento-obs{min-height:var(--control-height)!important;height:var(--control-height)!important;resize:vertical}
.sy-fechamento-form .sy-fechamento-cliente-razao{display:block}
.sy-fechamento-form .sy-fechamento-cliente-fantasia{margin-top:3px;font-size:var(--font-tamanho-menor);color:var(--text-muted);font-weight:400}
.sy-fechamento-form .sys-table tr.texto-danger .TextBox{color:var(--danger)!important}

/* v1.0.46 - arquivos contábeis */
.sy-file-preview{display:block;max-height:58vh;overflow:auto;margin:0;padding:12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-alt,#f7f9fb);font:12px/1.45 Consolas,"Courier New",monospace;white-space:pre;tab-size:4}
.sy-file-download-field .Botao{width:100%;justify-content:center}


/* v1.0.48 - Contabilidade: botoes no padrao do sistema e Consulta de Preco. */
.sy-accounting-report .sy-report-filters{display:flex;align-items:flex-end;width:100%}
.sy-accounting-report .sy-report-filters>.filter-group{flex:0 1 275px}
.sy-accounting-report .sy-report-filters>.filter-actions{flex:0 0 auto;width:auto;margin-left:0;display:flex;align-items:center;gap:8px}
.sy-accounting-report .sy-report-filters>.filter-actions .Botao{width:auto;min-width:120px;justify-content:center;white-space:nowrap}
.sy-accounting-report .sy-grid-actions{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap}
.sy-accounting-report .sy-action-link{appearance:none;-webkit-appearance:none;font:inherit;line-height:1;box-sizing:border-box;text-decoration:none;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface);color:var(--primary);cursor:pointer;transition:all .18s ease}
.sy-accounting-report .sy-action-link:hover{background:color-mix(in srgb,var(--surface),var(--primary) 10%);border-color:color-mix(in srgb,var(--border-color),var(--primary) 34%);color:var(--primary-hover);transform:translateY(-1px)}
.sy-accounting-report .sy-action-link .icon-sys{width:18px;height:18px;color:currentColor}

.sy-price-query-page{max-width:1180px;margin:0 auto}
.sy-price-query-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;margin-bottom:16px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface);box-shadow:0 4px 12px var(--sombra-campos-furmulario)}
.sy-price-query-brand{display:flex;align-items:center;gap:18px;min-width:0}
.sy-price-query-logo{width:112px;height:76px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:var(--radius-sm);overflow:hidden;background:#fff}
.sy-price-query-logo img{max-width:100%;max-height:100%;display:block;object-fit:contain}
.sy-price-query-brand-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.sy-price-query-brand-text span,.sy-price-query-clock span{font-size:var(--font-tamanho-menor);color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.sy-price-query-brand-text strong{font-size:clamp(20px,2.4vw,30px);line-height:1.15;color:var(--primary);overflow-wrap:anywhere}
.sy-price-query-clock{text-align:right;display:flex;flex-direction:column;gap:5px;white-space:nowrap}
.sy-price-query-clock strong{font-size:18px;font-variant-numeric:tabular-nums;color:var(--text)}
.sy-price-query-search{padding:22px 24px}
.sy-price-query-search form>label{display:block;margin-bottom:7px;font-weight:700;color:var(--font-label-formulario)}
.sy-price-query-search-row{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:9px;align-items:center}
.sy-price-query-search-row .TextBox{width:100%;max-width:none;min-height:var(--control-height);font-size:calc(var(--font-tamanho-padrao) + 2px)}
.sy-price-query-search-row .Botao{min-height:var(--control-height);white-space:nowrap}
.sy-price-query-camera-button{background:var(--surface)!important;color:var(--primary)!important;border:1px solid var(--border-color)!important;box-shadow:none!important}
.sy-price-query-camera-button:hover:not(:disabled){background:color-mix(in srgb,var(--surface),var(--primary) 10%)!important;color:var(--primary-hover)!important;border-color:color-mix(in srgb,var(--border-color),var(--primary) 34%)!important}
.sy-price-camera-panel{margin-top:16px;padding:14px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-alt,#f7f9fb)}
.sy-price-camera-panel[hidden]{display:none!important}
.sy-price-camera-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.sy-price-camera-head span{color:var(--text-muted);font-size:var(--font-tamanho-menor)}
.sy-price-camera-stage{position:relative;max-width:720px;margin:0 auto;aspect-ratio:16/9;border-radius:var(--radius-md);overflow:hidden;background:#101114}
.sy-price-camera-stage video{width:100%;height:100%;display:block;object-fit:cover}
.sy-price-camera-guide{position:absolute;left:12%;right:12%;top:36%;height:28%;border:2px solid rgba(255,255,255,.9);border-radius:8px;box-shadow:0 0 0 9999px rgba(0,0,0,.18)}
.sy-price-camera-guide:after{content:"";position:absolute;left:5%;right:5%;top:50%;height:2px;background:rgba(255,255,255,.88)}
.sy-price-camera-actions{display:flex;justify-content:flex-end;margin-top:10px}

.sy-price-result-page{padding-bottom:76px}
.sy-price-result-summary{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px;padding:12px 14px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface)}
.sy-price-result-summary>div:first-child{min-width:0;display:flex;flex-direction:column;gap:3px}
.sy-price-result-summary span{font-size:var(--font-tamanho-menor);color:var(--text-muted)}
.sy-price-result-summary strong{overflow-wrap:anywhere}
.sy-price-result-status{display:inline-flex!important;align-items:center;padding:5px 9px;border-radius:999px;font-weight:700;color:var(--text)!important;background:var(--surface-alt,#f2f4f7)}
.sy-price-result-status.success{background:color-mix(in srgb,var(--secondary),white 84%);color:color-mix(in srgb,var(--secondary),black 30%)!important}
.sy-price-result-status.warning{background:color-mix(in srgb,var(--warning),white 80%);color:#6d5100!important}
.sy-price-result-status.error{background:color-mix(in srgb,var(--danger),white 86%);color:var(--danger)!important}
.sy-price-result-list{display:grid;gap:12px}
.sy-price-result-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface);overflow:hidden;box-shadow:0 3px 10px var(--sombra-campos-furmulario)}
.sy-price-result-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,auto);gap:18px;align-items:center;padding:16px}
.sy-price-result-code{display:inline-block;margin-bottom:4px;padding:3px 7px;border-radius:999px;background:var(--surface-alt,#f2f4f7);color:var(--text-muted);font-size:var(--font-tamanho-menor);font-weight:700}
.sy-price-result-description h2{margin:0 0 6px;color:var(--primary);font-size:20px;line-height:1.2}
.sy-price-result-meta{color:var(--text-muted);font-size:var(--font-tamanho-menor)}
.sy-price-result-price{text-align:right;display:flex;flex-direction:column;gap:2px}
.sy-price-result-price span{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:var(--font-tamanho-menor);font-weight:700}
.sy-price-result-price strong{font-size:clamp(26px,4vw,38px);color:var(--secondary);white-space:nowrap}
.sy-price-result-match{margin:0 16px 12px;padding:9px 11px;border-left:4px solid var(--secondary);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--secondary),white 94%);display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:baseline}
.sy-price-result-match span{color:var(--text-muted);font-size:var(--font-tamanho-menor);font-weight:700}
.sy-price-result-match strong{color:var(--text)}
.sy-price-result-match small{grid-column:1/-1;color:var(--text-muted)}
.sy-price-result-pack-actions{padding:0 16px 14px}
.sy-price-result-pack-actions .Botao{background:var(--surface)!important;color:var(--primary)!important;border:1px solid var(--border-color)!important;box-shadow:none!important;padding:8px 12px}
.sy-price-pack-list{border-top:1px solid var(--border-color);padding:12px 16px 16px;background:var(--surface-alt,#fafbfc)}
.sy-price-pack-list[hidden]{display:none!important}
.sy-price-pack-list .sys-table{min-width:650px}
.sy-price-pack-current>td{background:color-mix(in srgb,var(--secondary),white 92%)!important}
.sy-price-pack-current .badge{display:inline-flex;margin-left:5px;padding:2px 6px;border-radius:999px;background:var(--secondary);color:#fff;font-size:10px;font-weight:700;vertical-align:middle}
.sy-price-pack-empty,.sy-price-result-empty{padding:24px;text-align:center;color:var(--text-muted)}
.sy-price-result-empty{border:1px dashed var(--border-color);border-radius:var(--radius-md);background:var(--surface);display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;min-height:180px}
.sy-price-result-empty .icon-sys{width:34px;height:34px;color:var(--primary)}
.sy-price-result-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:14px;padding:12px 14px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface),transparent 3%);box-shadow:0 -3px 12px rgba(0,0,0,.08);backdrop-filter:blur(8px)}
.sy-price-result-timer{margin-right:auto;color:var(--text-muted);font-size:var(--font-tamanho-menor)}
.sy-price-result-timer strong{color:var(--primary);font-size:var(--font-tamanho-padrao);font-variant-numeric:tabular-nums}
.sy-price-result-footer .Botao{min-width:110px}
@media(max-width:768px){.sy-accounting-report .sy-report-filters>.filter-group{flex:1 1 100%}.sy-accounting-report .sy-report-filters>.filter-actions{width:100%}.sy-accounting-report .sy-report-filters>.filter-actions .Botao{width:100%}.sy-price-query-hero{align-items:flex-start}.sy-price-query-clock{white-space:normal}.sy-price-query-search-row{grid-template-columns:minmax(0,1fr) auto}.sy-price-query-search-row .Botao-Verde{grid-column:1/-1;width:100%}.sy-price-result-main{grid-template-columns:1fr}.sy-price-result-price{text-align:left}.sy-price-result-match{grid-template-columns:1fr}.sy-price-result-match small{grid-column:auto}}
@media(max-width:560px){.sy-price-query-hero{flex-direction:column}.sy-price-query-clock{text-align:left}.sy-price-query-logo{width:92px;height:64px}.sy-price-query-search{padding:16px}.sy-price-query-search-row{grid-template-columns:1fr}.sy-price-query-search-row .Botao{width:100%}.sy-price-query-search-row .Botao-Verde{grid-column:auto}.sy-price-camera-head{align-items:flex-start;flex-direction:column}.sy-price-result-summary{align-items:flex-start;flex-direction:column}.sy-price-result-footer{align-items:stretch;flex-direction:column}.sy-price-result-timer{margin-right:0}.sy-price-result-footer .Botao{width:100%}}

/* v1.0.49 - Consulta de Preço em kiosk/câmera HTTP e foto do produto. */
.sy-price-query-page.sy-price-query-kiosk{max-width:none;min-height:100vh;padding:clamp(18px,2vw,32px)}
.sy-price-query-kiosk .sy-page-header{margin-bottom:18px}
.sy-price-query-kiosk .sy-price-query-hero{padding:clamp(22px,3vw,36px)}
.sy-price-query-kiosk .sy-price-query-search{padding:clamp(22px,3vw,36px)}
.sy-price-query-kiosk .sy-price-query-search-row .TextBox{min-height:54px;font-size:18px}
.sy-price-query-kiosk .sy-price-query-search-row .Botao{min-height:54px;font-size:15px}
.sy-price-camera-hint{margin:10px 0 0;color:var(--text-muted)}
.sy-price-result-main{grid-template-columns:138px minmax(0,1fr) minmax(170px,auto)}
.sy-price-result-photo{width:138px;height:118px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;background:#fff}
.sy-price-result-photo img{width:100%;height:100%;display:block;object-fit:contain}
.sy-price-result-photo-empty{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--text-muted);font-size:var(--font-tamanho-menor);background:var(--surface-alt,#f7f9fb)}
.sy-price-result-photo-empty[hidden]{display:none!important}
.sy-price-result-photo-empty .icon-sys{width:28px;height:28px;color:var(--primary)}
@media(max-width:768px){.sy-price-result-main{grid-template-columns:110px minmax(0,1fr)}.sy-price-result-photo{width:110px;height:96px}.sy-price-result-price{grid-column:1/-1;text-align:left}}
@media(max-width:480px){.sy-price-result-main{grid-template-columns:1fr}.sy-price-result-photo{width:100%;height:160px}.sy-price-result-price{grid-column:auto}}

/* v1.0.50 - ação Gerar PDF dos relatórios contábeis na segunda linha. */
.sy-accounting-report .sy-report-filters>.sy-accounting-generate-actions{flex:0 0 100%;width:100%;margin-left:0;margin-top:2px;display:flex;justify-content:flex-end;align-items:center}
.sy-accounting-report .sy-report-filters>.sy-accounting-generate-actions .Botao{width:auto;min-width:140px}
@media(max-width:768px){.sy-accounting-report .sy-report-filters>.sy-accounting-generate-actions{justify-content:stretch}.sy-accounting-report .sy-report-filters>.sy-accounting-generate-actions .Botao{width:100%}}

/* Financeiro v1.0.56 */
.sy-text-right{text-align:right!important}
.sy-fin-check-center{display:flex;align-items:center;min-height:68px}
.sy-fin-check-center .label-checkbox{margin-top:18px}

/* v1.0.78 — resumo e ações da venda de balcão. */
.sy-balcao-form .sy-balcao-checkout{display:block;overflow:visible}
.sy-balcao-form .sy-balcao-checkout-actions{width:100%;display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.sy-balcao-form .sy-balcao-action-spacer{flex:1 1 24px}
.sy-produtos-index .sy-action-link.sy-validade-atencao,.sy-action-link.sy-validade-atencao{background:#fff0bd!important;color:#755000!important}
.sy-produtos-index .sy-action-link.sy-validade-critica,.sy-action-link.sy-validade-critica{background:#f6c4c4!important;color:#8c1717!important}
.sy-balcao-form .sy-order-total-value{text-align:right}
.sy-balcao-form #pedidoTotalValor{font-size:calc(var(--font-tamanho-maior) + 8px);line-height:1.4}
@media(max-width:700px){.sy-balcao-form .sy-balcao-checkout-actions{flex-wrap:wrap}}
.sy-balcao-form .sy-balcao-checkout>.sy-balcao-checkout-actions #BalcaoAgentStatus{flex:0 0 auto;white-space:nowrap;text-align:left;writing-mode:horizontal-tb}
.sy-balcao-form .sy-balcao-checkout>.sy-balcao-checkout-actions .sy-balcao-action-spacer{flex:1 1 24px}
@media(max-width:700px){.sy-balcao-form .sy-balcao-checkout>.sy-balcao-checkout-actions{flex-wrap:wrap}}

/* v1.0.80 — Observações à esquerda e três linhas comerciais à direita. */
.sy-balcao-form .sy-balcao-details{overflow-x:auto}
.sy-balcao-form .sy-balcao-details-grid{display:grid;grid-template-columns:minmax(0,35fr) minmax(0,65fr);gap:14px;align-items:stretch;min-width:740px}
.sy-balcao-form .sy-balcao-details .sy-field{grid-column:auto;min-width:0;width:auto}
.sy-balcao-form .sy-balcao-observacoes{display:flex;flex-direction:column;align-self:stretch}
.sy-balcao-form .sy-balcao-observacoes textarea{flex:1;min-height:0;height:100%;width:100%;resize:vertical}
.sy-balcao-form .sy-balcao-details-right{display:grid;grid-template-rows:repeat(3,auto);gap:8px;min-width:0}
.sy-balcao-form .sy-balcao-details-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 90px;gap:7px;align-items:end}
.sy-balcao-form .sy-balcao-details-terms{display:grid;gap:7px;align-items:end;min-width:0}
.sy-balcao-form .sy-balcao-details-first{grid-template-columns:repeat(6,minmax(0,1fr))}
.sy-balcao-form .sy-balcao-details-last{grid-template-columns:repeat(7,minmax(0,1fr))}
.sy-balcao-form .sy-balcao-details .sy-field label{white-space:nowrap}
.sy-balcao-form .sy-balcao-details .TextBox,.sy-balcao-form .sy-balcao-details .SELECT{width:100%;min-width:0}
.sy-balcao-form .sy-balcao-details-terms .TextBox{text-align:center;padding-inline:3px}
.sy-balcao-form .sy-order-total-value{grid-column:5;justify-self:end;width:100%;text-align:right}
.sy-balcao-form .sy-order-total-value label{display:block;text-align:right}
.sy-balcao-form .sy-order-total-value #pedidoTotalValor{width:100%;text-align:right;font-size:calc(var(--font-tamanho-maior) + 8px);font-weight:700}

/* v1.0.81 — Campos comerciais da entrada em uma única linha. */
.sy-entrada-nfe-page .mapping-fields .mapping-commercial-row{display:grid;grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;width:100%;max-width:none;align-items:end}
.sy-entrada-nfe-page .mapping-fields .mapping-commercial-row>.sy-field{grid-column:auto;min-width:0;width:auto}
.sy-entrada-nfe-page .mapping-fields .mapping-commercial-row label{white-space:nowrap}
.sy-entrada-nfe-page .mapping-fields .mapping-commercial-row .TextBox{width:100%;min-width:0}
/* Ocultar os prazos excedentes sem alterar o comportamento de Pedidos. */
.sy-balcao-form .sy-balcao-details .sy-field[hidden]{display:none}
.sy-balcao-form .sy-order-totals-complete{grid-template-columns:repeat(7,minmax(0,1fr))}
.sy-balcao-form .sy-order-totals-complete>.sy-order-total-value{grid-column:-2/-1}
@media(max-width:900px){.sy-balcao-form .sy-order-totals-complete{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:560px){.sy-balcao-form .sy-order-totals-complete{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Dashboard — v1.0.82 */
.sy-dashboard-page .home{width:min(1180px,calc(100% - 28px));margin:24px auto}
.sy-dashboard-page .hero{background:#fff;border-radius:10px;padding:24px;box-shadow:0 4px 12px rgba(0,0,0,.05);border:1px solid var(--border-color)}
.sy-dashboard-page .hero h1{color:var(--primary);margin-top:0}
.sy-dashboard-page .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}
.sy-dashboard-page .card,.sy-dashboard-page .chart-card{background:#fff;border:1px solid var(--border-color);border-radius:9px;padding:18px}
.sy-dashboard-page .card svg{width:28px;height:28px;color:var(--primary)}
.sy-dashboard-page .card h2,.sy-dashboard-page .chart-card h2{font-size:13px;color:var(--primary);margin-top:0}
.sy-dashboard-page .card p{font-size:11px;line-height:1.55;color:#555}
.sy-dashboard-page .sy-clientes-bloqueados .TextBox{background:#fde8e8;border-color:#f3b8b8;color:#9f1c1c;font-weight:700}
.sy-dashboard-page .charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.sy-dashboard-page .dashboard-chart{width:100%;height:auto;display:block}
.sy-dashboard-page .chart-axis{stroke:#5d6672;stroke-width:1.3}
.sy-dashboard-page .chart-grid{stroke:#e3e7ed;stroke-width:1}
.sy-dashboard-page .chart-bar{fill:var(--primary)}
.sy-dashboard-page .chart-label{font:10px var(--font-padrao);fill:#555}
.sy-dashboard-page .chart-x{font-size:9px}
.sy-dashboard-page .chart-empty{color:var(--text-muted);font-size:11px}
.sy-dashboard-page .dashboard-margin-card{margin-top:16px;background:#fff;border:1px solid var(--border-color);border-radius:9px;padding:18px}
.sy-dashboard-page .dashboard-margin-card h2{font-size:13px;color:var(--primary);margin:0 0 12px}
.sy-dashboard-page .dashboard-margin-card .table-responsive{margin-top:0}
.sy-dashboard-page .dashboard-margin-card .sys-table{min-width:760px}
.sy-dashboard-page .dashboard-margin-card .col-money{text-align:right;white-space:nowrap}.sy-dashboard-page .dashboard-preco-input{width:115px;max-width:100%;text-align:right}
.sy-dashboard-page .dashboard-margin-empty{margin:0;color:var(--text-muted);font-size:11px}
.sy-dashboard-page .dashboard-margin-pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin-top:14px;font-size:var(--font-tamanho-menor)}
.sy-dashboard-page .dashboard-margin-pages{display:flex;gap:6px}.sy-dashboard-page .dashboard-margin-pages a,.sy-dashboard-page .dashboard-margin-pages span{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:30px;border:1px solid var(--border-color);border-radius:5px;text-decoration:none;color:var(--primary)}
.sy-dashboard-page .dashboard-margin-pages span[aria-disabled="true"]{opacity:.4;background:#eee}.sy-dashboard-page .dashboard-margin-pages a:hover{background:var(--primary);color:white}
@media(max-width:760px){.sy-dashboard-page .grid{grid-template-columns:1fr}.sy-dashboard-page .chart-card{overflow-x:auto}.sy-dashboard-page .dashboard-chart{min-width:760px}}
@media (max-width:900px){.sy-dashboard-page .charts{grid-template-columns:1fr}}
.sy-dashboard-page .charts-single{grid-template-columns:1fr}

/* Consulta de itens NF-e */
.sy-nfe-itens .sy-nfe-item{margin:18px 0;padding:16px;border:1px solid var(--border-color);border-radius:8px;background:var(--surface)}
.sy-nfe-itens .sy-nfe-item h2{margin:0 0 10px;font-size:var(--font-tamanho-padrao);overflow-wrap:anywhere}
.sy-nfe-itens .sy-nfe-campos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px;margin:12px 0}
.sy-nfe-itens .sy-nfe-campos>div{min-width:0;overflow-wrap:anywhere}
.sy-nfe-itens .sy-nfe-campos .sy-grid-label{display:block;color:var(--text-muted);margin-bottom:3px}
.sy-nfe-itens .sys-table{min-width:600px}
.sy-nfe-itens .sys-table td:nth-child(n+3),.sy-nfe-itens .sys-table th:nth-child(n+3){text-align:right}
.sy-nfe-itens .sys-table td:first-child,.sy-nfe-itens .sys-table th:first-child{text-align:left}
.sy-nfe-itens details{margin-top:12px;border-top:1px solid var(--border-color);padding-top:10px}
.sy-nfe-itens summary{cursor:pointer;font-weight:bold}
@media(max-width:768px){.sy-nfe-itens .sy-nfe-campos{grid-template-columns:repeat(2,minmax(0,1fr))}.sy-nfe-itens .sys-table{min-width:0}.sy-nfe-itens .sy-nfe-item{padding:12px}}
@media(max-width:480px){.sy-nfe-itens .sy-nfe-campos{grid-template-columns:1fr}}

/* Câmera frontal — correção da orientação da prévia, sem alterar a leitura. */
.sy-price-camera-front video{transform:scaleX(-1)}

/* v1.0.84 */
.sy-credit-limit{text-align:right}
.sy-entrada-nfe-page .mapping-commercial-row{overflow-x:auto}
.sy-entrada-nfe-page .mapping-fields .mapping-commercial-row>.sy-field{min-width:90px}

.sy-validity-product-options{display:grid;gap:8px}
.sy-validity-product-option{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit;margin:0}
.sy-validity-product-option:hover{background:var(--surface-hover,#f1f5f9)}

/* v1.0.85: resumo da entrada, identificação/tributação e comercial do cliente. */
.sy-entrada-nfe-page .summary-grid .sy-nfe-charges{grid-column:span 3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
.sy-entrada-nfe-page .summary-grid .sy-nfe-freight{grid-column:auto;width:100%;max-width:150px;min-width:0}
.sy-entrada-nfe-page .sy-nfe-freight .TextBox{width:100%;min-width:0}
.sy-entrada-nfe-page .sy-nfe-total span{font-weight:800;font-size:18px;color:var(--text-color)}
.sy-entrada-nfe-page .sy-supplier-section{margin:9px 0;padding-top:8px;border-top:1px solid var(--border-color)}
.sy-entrada-nfe-page .sy-supplier-section h3{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}
.sy-entrada-nfe-page .sy-supplier-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px}
.sy-entrada-nfe-page .sy-supplier-details .supplier-detail{margin:0;overflow-wrap:anywhere}
.sy-entrada-nfe-page .supplier-column .supplier-total{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px;margin-top:10px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface),#23965c 12%);font-size:15px;font-weight:700}
.sy-client-credit-row{grid-template-columns:minmax(120px,170px) minmax(150px,190px);margin-top:12px;justify-content:start}
.sy-client-credit-row>.sy-field{grid-column:auto;min-width:0;width:100%}
.sy-client-block-row{grid-template-columns:minmax(120px,170px) minmax(0,1fr);margin-top:12px}
.sy-client-block-row>.sy-field{grid-column:auto;min-width:0}
@media(max-width:800px){.sy-entrada-nfe-page .summary-grid .sy-nfe-charges{grid-column:1/-1;gap:10px}}
@media(max-width:420px){.sy-client-credit-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.sy-client-block-row{grid-template-columns:1fr}}

/* v1.0.86 - funcionários, fotos e cartão. */
.sy-employee-form .sy-field.sy-employee-block{grid-column:1/span 3}
.sy-employee-form .sy-employee-password[hidden]{display:none}
.sy-employee-identity{display:flex;gap:12px;align-items:center}
.sy-employee-photo-button{padding:0;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;flex:0 0 52px;width:52px;height:64px;overflow:hidden}
.sy-employee-photo-button img{display:block;width:100%;height:100%;object-fit:contain}
.sy-employee-photo-preview{max-width:180px;max-height:230px;object-fit:contain;border:1px solid var(--border-color);border-radius:var(--radius-sm)}
@media(max-width:560px){.sy-employee-form .sy-field.sy-employee-block{grid-column:1/-1}}

/* Configurações / Empresa e Outras — formulário padrão de cadastro. */
.sy-configuracoes-page .sy-config-number{text-align:right;}

/* MDF-e: formulários e ações, no padrão Clientes. */
.sy-mdfe-fieldset{border:0;padding:0;margin:0;min-width:0}
.sy-mdfe-links{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:0}
.sy-mdfe-key{overflow-wrap:anywhere;font-size:.85em}
.sy-mdfe-page .sy-form-section>p{color:#64748b;font-size:.875rem;margin:12px 0 0}
.sy-mdfe-page input[type=checkbox]{accent-color:#15803d;width:18px;height:18px}

/* Sycom Retaguarda v1.0.46 - complemento visual do módulo Entrada de Produtos. */
.sy-entrada-nfe-page{max-width:1500px}.sy-entrada-nfe-page .entrada-source-section{margin-bottom:16px}.sy-entrada-nfe-page .source-tabs{display:flex;gap:6px;margin:14px 0 10px;border-bottom:1px solid var(--border,#d7e0e6);padding-bottom:8px}.sy-entrada-nfe-page .source-tab{background-color:var(--botao-desativado)!important;color:var(--text-color)!important;box-shadow:none}.sy-entrada-nfe-page .source-tab:hover:not(:disabled){background-color:color-mix(in srgb,var(--botao-desativado),#000 10%)!important;color:var(--text-color)!important}.sy-entrada-nfe-page .source-tab.active{background-color:var(--secondary)!important;color:var(--cor-font-botoes)!important;box-shadow:inset 0 -3px 0 rgba(255,255,255,.65)}.sy-entrada-nfe-page .source-tab.active:hover:not(:disabled){background-color:var(--secondary-hover)!important;color:var(--cor-font-botoes)!important}.sy-entrada-nfe-page .source-panel{display:none}.sy-entrada-nfe-page .source-panel.active{display:block}.sy-entrada-nfe-page .source-row{display:flex;gap:10px;align-items:center}.sy-entrada-nfe-page .source-row .TextBox{flex:1}.sy-entrada-nfe-page .entrada-hint{margin:6px 0 0;color:#667783;font-size:12px}.sy-entrada-nfe-page .section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.sy-entrada-nfe-page .section-head h2{margin:0}.sy-entrada-nfe-page .summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 18px}.sy-entrada-nfe-page .summary-item{min-width:0}.sy-entrada-nfe-page .summary-item b{display:block;font-size:11px;text-transform:uppercase;color:#758692;margin-bottom:2px}.sy-entrada-nfe-page .summary-item span{display:block;overflow-wrap:anywhere}.sy-entrada-nfe-page .pill{display:inline-block;border-radius:999px;padding:5px 9px;background:#e9f5ec;color:#21683b;font-size:12px;font-weight:700}.sy-entrada-nfe-page .pill.warn{background:#fff3d6;color:#805a00}.sy-entrada-nfe-page .pill.error{background:#fde7e5;color:#9e2922}.sy-entrada-nfe-page .table-wrap{overflow-x:auto}.sy-entrada-nfe-page .products-table,.sy-entrada-nfe-page .finance-table{width:100%;border-collapse:collapse}.sy-entrada-nfe-page .products-table{--entrada-qtd:72px;--entrada-unit:92px;--entrada-ipi:72px;--entrada-st:72px;--entrada-total:100px;min-width:1640px;table-layout:fixed}.sy-entrada-nfe-page .finance-table{min-width:1050px}.sy-entrada-nfe-page .products-table th:nth-child(1),.sy-entrada-nfe-page .products-table td:nth-child(1){width:330px}.sy-entrada-nfe-page .products-table th:nth-child(2),.sy-entrada-nfe-page .products-table td:nth-child(2){width:900px}.sy-entrada-nfe-page .products-table th:nth-child(3),.sy-entrada-nfe-page .products-table td:nth-child(3){width:var(--entrada-qtd)}.sy-entrada-nfe-page .products-table th:nth-child(4),.sy-entrada-nfe-page .products-table td:nth-child(4){width:var(--entrada-unit)}.sy-entrada-nfe-page .products-table th:nth-child(5),.sy-entrada-nfe-page .products-table td:nth-child(5){width:var(--entrada-ipi)}.sy-entrada-nfe-page .products-table th:nth-child(6),.sy-entrada-nfe-page .products-table td:nth-child(6){width:var(--entrada-st)}.sy-entrada-nfe-page .products-table th:nth-child(7),.sy-entrada-nfe-page .products-table td:nth-child(7){width:var(--entrada-total)}.sy-entrada-nfe-page .products-table td,.sy-entrada-nfe-page .finance-table td{vertical-align:top}.sy-entrada-nfe-page .num{text-align:right!important}.sy-entrada-nfe-page .supplier-product{font-weight:700}.sy-entrada-nfe-page .item-meta{font-size:11px;color:#667783;margin-top:3px}.sy-entrada-nfe-page .mapping{min-width:330px}.sy-entrada-nfe-page .mapping-mode{display:flex;gap:14px;margin-bottom:6px}.sy-entrada-nfe-page .mapping-mode label{font-size:12px;font-weight:700;cursor:pointer}.sy-entrada-nfe-page .mapping-mode input{width:auto;min-height:0;cursor:pointer}.sy-entrada-nfe-page .mapping-search{display:flex;gap:6px;margin-bottom:6px;align-items:center}.sy-entrada-nfe-page .mapping-search .TextBox{flex:1}.sy-entrada-nfe-page .mapping-fields{display:grid;grid-template-columns:290px minmax(240px,1fr);gap:6px;align-items:end}.sy-entrada-nfe-page .mapping-commercial-row{grid-column:2;display:grid;grid-template-columns:calc(var(--entrada-qtd) + var(--entrada-unit) + 6px) calc(var(--entrada-ipi) + var(--entrada-st) + 6px);gap:6px;justify-content:start;align-items:end}.sy-entrada-nfe-page .mapping-fields[hidden]{display:none}.sy-entrada-nfe-page .mapping-fields .sy-field{min-width:0}.sy-entrada-nfe-page .mapping-fields .sy-field label{display:block;margin:0 0 4px;text-align:left}.sy-entrada-nfe-page .mapping-fields .TextBox,.sy-entrada-nfe-page .mapping-fields .SELECT{width:100%;min-width:0}.sy-entrada-nfe-page .mapping-fields .mapping-search{margin-bottom:0}.sy-entrada-nfe-page .mapping-fields .mapping-search .Botao{flex:0 0 auto}.sy-entrada-nfe-page .commercial-number{text-align:right!important;font-variant-numeric:tabular-nums}.sy-entrada-nfe-page .auto-match{font-size:11px;color:#287046;margin:4px 0}.sy-entrada-nfe-page .needs-match{font-size:11px;color:#a13b2d;margin:4px 0}.sy-entrada-nfe-page .money{font-variant-numeric:tabular-nums;white-space:nowrap}.sy-entrada-nfe-page .total-line{display:flex;justify-content:flex-end;font-weight:700;padding:12px 6px 0}.sy-entrada-nfe-page .finance-table .remove{appearance:none;-webkit-appearance:none;font:inherit;line-height:1;box-sizing:border-box;text-decoration:none;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface);color:var(--danger);cursor:pointer;transition:background-color .2s ease,color .2s ease,transform .2s ease}.sy-entrada-nfe-page .finance-table .remove .icon-sys{width:19px;height:19px;color:var(--danger);cursor:inherit}.sy-entrada-nfe-page .finance-table .remove:hover{color:var(--danger-hover);background:color-mix(in srgb,var(--surface),var(--danger) 10%);transform:translateY(-1px)}.sy-entrada-nfe-page .finance-table .remove:hover .icon-sys{color:var(--danger-hover)}.sy-entrada-nfe-page .entrada-save-bar{position:sticky;bottom:0;background:#fff;z-index:2;justify-content:space-between}body.loading .sy-entrada-nfe-page{opacity:.65;pointer-events:none}@media(max-width:1000px){.sy-entrada-nfe-page .mapping-fields{grid-template-columns:240px minmax(220px,1fr)}.sy-entrada-nfe-page .mapping-commercial-row{grid-template-columns:170px 150px}}@media(max-width:800px){.sy-entrada-nfe-page .summary-grid{grid-template-columns:1fr}.sy-entrada-nfe-page .source-row,.sy-entrada-nfe-page .section-head{align-items:stretch;flex-direction:column}.sy-entrada-nfe-page .entrada-save-bar{align-items:stretch;flex-direction:column}.sy-entrada-nfe-page .entrada-save-bar .Botao{width:100%}}
/* v1.0.49 - fator de estoque e contenção das larguras do formulário. */
.sy-entrada-nfe-page{max-width:1320px}
.sy-entrada-nfe-page .products-table{min-width:1206px}
.sy-entrada-nfe-page .products-table th:nth-child(1),.sy-entrada-nfe-page .products-table td:nth-child(1){width:300px}
.sy-entrada-nfe-page .products-table th:nth-child(2),.sy-entrada-nfe-page .products-table td:nth-child(2){width:500px}
.sy-entrada-nfe-page .mapping{min-width:0;max-width:500px}
.sy-entrada-nfe-page .mapping-fields{grid-template-columns:120px minmax(240px,1fr);gap:6px;align-items:end;max-width:500px}
.sy-entrada-nfe-page .mapping-commercial-row{grid-column:1/-1;grid-template-columns:92px calc(var(--entrada-qtd) + var(--entrada-unit) + 6px) calc(var(--entrada-ipi) + var(--entrada-st) + 6px);gap:6px;justify-content:start;max-width:430px}
.sy-entrada-nfe-page .mapping-factor-field,.sy-entrada-nfe-page .mapping-margin-field,.sy-entrada-nfe-page .mapping-sale-price-field{width:100%}
.sy-entrada-nfe-page .finance-table{min-width:900px}
@media(max-width:1000px){.sy-entrada-nfe-page .mapping-fields{grid-template-columns:110px minmax(220px,1fr)}.sy-entrada-nfe-page .mapping-commercial-row{grid-template-columns:86px 150px 140px}}

/* v1.0.50 - grid de produtos em duas colunas equivalentes. */
.sy-entrada-nfe-page .products-table{min-width:920px;table-layout:fixed}
.sy-entrada-nfe-page .products-table th:nth-child(1),.sy-entrada-nfe-page .products-table td:nth-child(1),.sy-entrada-nfe-page .products-table th:nth-child(2),.sy-entrada-nfe-page .products-table td:nth-child(2){width:50%;text-align:left}
.sy-entrada-nfe-page .supplier-column,.sy-entrada-nfe-page .mapping-column{text-align:left!important}
.sy-entrada-nfe-page .supplier-product{margin-bottom:6px;text-align:left}
.sy-entrada-nfe-page .supplier-detail{display:block;margin:2px 0;font-size:11px;color:#667783;text-align:left}
.sy-entrada-nfe-page .supplier-detail span{display:inline;color:#667783}
.sy-entrada-nfe-page .supplier-detail strong{font-weight:600;color:var(--text-color);font-variant-numeric:tabular-nums}
.sy-entrada-nfe-page .supplier-total{margin-top:5px}
.sy-entrada-nfe-page .supplier-total strong{font-weight:700}
.sy-entrada-nfe-page .mapping{width:100%;max-width:none;min-width:0;text-align:left}
.sy-entrada-nfe-page .mapping-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;max-width:none;width:100%;align-items:end}
.sy-entrada-nfe-page .mapping-code-field,.sy-entrada-nfe-page .mapping-product-field{grid-column:1/-1;width:100%}
.sy-entrada-nfe-page .mapping-commercial-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:none;width:100%;justify-content:stretch;align-items:end}
.sy-entrada-nfe-page .mapping-fields .sy-field label,.sy-entrada-nfe-page .mapping-mode,.sy-entrada-nfe-page .auto-match,.sy-entrada-nfe-page .needs-match{text-align:left}
@media(max-width:1000px){.sy-entrada-nfe-page .mapping-fields{grid-template-columns:minmax(0,1fr)}.sy-entrada-nfe-page .mapping-commercial-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.sy-entrada-nfe-page .mapping-commercial-row{grid-template-columns:1fr}}
.sy-entrada-nfe-page .mapping-commercial-row{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:680px){.sy-entrada-nfe-page .mapping-commercial-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v1.0.78 — captura e controle de validade por produto e lote. */
.sy-entrada-nfe-page .validity-controls{margin-top:12px;padding:12px;border:1px solid var(--border-color,#d8dde6);border-radius:8px}.sy-entrada-nfe-page .validity-controls .mapping-mode{flex-wrap:wrap}.sy-entrada-nfe-page .validity-lots{margin-top:10px}.sy-entrada-nfe-page .validity-lot{margin-bottom:8px;align-items:end}.sy-entrada-nfe-page .validity-lot .lot-remove{width:100%}

/* Ações dos lotes: mesmos ícones e cores do grid padrão. */
.sy-entrada-nfe-page .validity-lot .lot-remove{width:36px;height:36px;min-width:36px;padding:0;align-self:flex-start;color:var(--danger)}
.sy-entrada-nfe-page .validity-lot .lot-remove .icon-sys{color:var(--danger);width:19px;height:19px}

/* v1.0.90: ações secundárias do MDF-e e detalhamento da entrada. */
.sy-mdfe-filter-actions{flex:1 0 100%;grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.sy-entrada-visualizacao .sys-table .sy-entrada-produto{text-align:left}
.sy-entrada-descricao-fornecedor{font-size:75%;font-weight:400;margin-top:4px}
.sy-entrada-visualizacao .sys-table .sy-entrada-numero{text-align:right}
.sy-entrada-visualizacao .sy-entrada-unitario{font-weight:700}
.sy-dashboard-lote-excluir{display:inline-flex;margin:0}

/* v1.0.91: detalhes dos preços, sem CSS inline. */
.sy-grid-index .sy-preco-detalhe{text-align:right}
.sy-grid-index .sys-table tr.sy-preco-produto-bloqueado,
.sy-grid-index .sys-table tr.sy-preco-produto-bloqueado > td{background-color:#fde2e2!important}

/* Orçamentos 1.0.92: mesmos componentes de grid e formulário do cadastro. */
.sy-orcamento-preparando{background:#fff3cd;color:#775b08;border-color:#ffe69c}
.sy-orcamento-valor{text-align:right}
.sy-orcamento-totais{display:flex;justify-content:flex-end;gap:1.5rem;flex-wrap:wrap;margin-top:1rem}
.sy-orcamento-selection-actions{flex-wrap:wrap}
.sy-orcamento-selection-actions .filter-group{min-width:160px;flex:1}

/* Orçamentos 1.0.93: totais sincronizados durante a rolagem da seleção. */
.sy-orcamento-dinheiro{padding-bottom:120px}
.sy-orcamento-float{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:90;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:calc(100% - 32px);max-width:900px;box-sizing:border-box;padding:14px 18px;background:var(--surface,#fff);border:1px solid var(--border-color,#d7e0e6);border-top:3px solid var(--primary,#003399);border-radius:var(--radius-sm,8px);box-shadow:0 6px 24px #0003}
.sy-orcamento-float[hidden]{display:none}
.sy-orcamento-float .filter-group{min-width:0}
.sy-orcamento-float label{display:block;margin-bottom:4px;font-weight:600}
.sy-orcamento-float .TextBox{width:100%;min-width:0;box-sizing:border-box;text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:600px){.sy-orcamento-float{bottom:8px;width:calc(100% - 16px);gap:8px;padding:10px}.sy-orcamento-float label{font-size:11px;min-height:28px}.sy-orcamento-float .TextBox{font-size:12px;padding:6px}}
@media print{.sy-orcamento-float{display:none}}

/* Orçamentos: filtro e forma de pagamento de origem. */
.sy-orcamento-pagamento-filtro{align-items:flex-end}
.sy-orcamento-pagamento-filtro .filter-group{flex:1;max-width:360px}
.sy-orcamento-com-pagamento th:nth-child(3){width:auto}
.sy-orcamento-com-pagamento th:nth-child(4){width:34%}
.sy-orcamento-com-pagamento td:nth-child(3){text-align:left;white-space:normal}
.sy-orcamento-com-pagamento td:nth-child(5){text-align:center;white-space:normal}
.sy-orcamento-com-pagamento th:nth-child(n+5){white-space:nowrap}
/* Download XML fiscal: reutiliza os cards, campos e botões padrão. */
.sy-fiscal-xml-card .filter-actions{width:100%;justify-content:flex-end}
.sy-fiscal-xml-form .filter-group{flex:1 1 180px}
.sy-fiscal-xml-hint{flex:1 0 100%;margin:0;color:var(--text-color);font-size:var(--font-tamanho-padrao)}
.sy-fiscal-xml-status{flex:1 0 100%;margin:0}
.sy-fiscal-xml-status[hidden]{display:none}

/* v1.1.3: seletor de empresa restrito à barra superior. */
.sy-top-company-line{display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;margin-top:3px;font-size:var(--font-tamanho-menor)}
.sy-top-company-button{border:0;background:transparent;color:inherit;font:inherit;padding:2px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.sy-top-company-button:hover{text-decoration:underline}
.sy-top-company-button:focus-visible{outline:2px solid currentColor;outline-offset:-2px}
.sy-top-company-button:disabled{cursor:default}
.sy-top-company-select{max-width:calc(100% - 65px);min-width:0;height:24px;font:inherit;color:#102f6e;background:#fff;border:1px solid #8ea9df;border-radius:4px}
.sy-top-company-line [hidden]{display:none!important}
.sy-title .sy-top-company-user{display:inline;margin:0;flex-shrink:0}
@media(max-width:600px){.sy-top-company-line{font-size:9px}}

/* v1.1.10: razão social na segunda linha dos grids ajustados. */
.sys-table .sy-grid-secondary-name { font-size:var(--font-tamanho-menor); color:var(--text-muted); font-weight:400; }

/* v1.1.14: alterações visuais restritas às telas solicitadas. */
.sys-table tbody tr.sy-item-sem-peso > td { background-color: #fff0f0 !important; }
.sys-table tbody tr.sy-item-sem-peso:hover > td { background-color: #ffe5e5 !important; }
/* v1.1.23: bloqueado prevalece no fundo; falta de peso mantém a fonte vermelha. */
.sys-table.sy-order-items-table tbody tr.sy-item-bloqueado > td { background-color: #fff8db !important; }
.sys-table.sy-order-items-table tbody tr.sy-item-bloqueado:hover > td { background-color: #fff1bb !important; }
/* v1.1.22: acompanha o destaque de peso nos grids de Pedidos e Venda de Balcão. */
.sy-order-items-table tbody tr.sy-item-sem-peso > td,
.sy-order-items-table tbody tr.sy-item-sem-peso > td strong,
.sy-order-items-table tbody tr.sy-item-sem-peso > td .TextBox { color: var(--danger) !important; }
.sy-preco-embalagem > td { background: #f4f7fc; }
.sys-table .sy-preco-embalagem-identificacao { padding-left: 2.5rem; border-left: 3px solid #c4d3e9; }
.sy-preco-embalagem .sy-text-secondary,.sy-pesos-table .sy-text-secondary,.sy-nfce-itens-page .sy-text-secondary { font-size: .85em; font-weight: 400; color: #58667a; }
.sy-pesos-table { table-layout: fixed; width: 100%; }
.sy-pesos-table .sy-pesos-produto { width: 55%; }
.sy-pesos-table .sy-pesos-valor { width: 15%; }
.sy-pesos-table th:not(.sy-pesos-produto),.sy-pesos-table td:not(.col-razao) { text-align: right; }
.sy-pesos-table td.col-razao { text-align: left; overflow-wrap: anywhere; }
.sy-pesos-table td:last-child .TextBox { width: 7.5rem; max-width: 100%; min-width: 0; text-align: right; box-sizing: border-box; }
.sy-pesos-page textarea.sy-pesos-observacoes { text-align: justify; text-align-last: left; }
.sy-nfce-itens-page .sy-nfce-venda-resumo { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; margin-bottom: 1rem; }
.sy-nfce-venda-resumo > div { display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; }
.sy-nfce-venda-resumo > div > span:first-child { font-size: .85rem; color: #58667a; }
.sy-nfce-venda-rodape { display: grid; grid-template-columns: minmax(0,2fr) minmax(13rem,1fr); gap: 1rem; margin-top: 1rem; }
.sy-nfce-venda-rodape .sy-form-section { margin: 0; }
.sy-nfce-pagamento { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid #e3e8ef; }
.sy-nfce-pagamento:last-child { border-bottom: 0; }
.sy-nfce-itens-page .sy-nfce-venda-total { display: flex; flex-direction: column; justify-content: center; align-items: flex-end; gap: .5rem; background: #edf4ff; }
.sy-nfce-venda-total > strong { font-size: 1.6rem; color: #00378e; }
@media(max-width:640px) {
 .sy-nfce-itens-page .sy-nfce-venda-resumo { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .sy-nfce-venda-rodape { grid-template-columns: 1fr; }
 .sy-pesos-table { min-width: 540px; }
}


/* v1.1.16: pesos dos itens e cards exclusivos da tabela de preços. */
.sy-pedido-form .sy-order-items-table [data-label="Peso"],
.sy-balcao-form .sy-order-items-table [data-label="Peso"],
.sy-pedido-form .sy-order-items-table .sy-peso-inline,
.sy-balcao-form .sy-order-items-table .sy-balcao-peso { text-align:right; }
.sy-precos-cards .table-responsive { overflow:visible; border:0; background:transparent; }
.sy-precos-cards .sys-table { display:block; width:100%; min-width:0; background:transparent; border:0; }
.sy-precos-cards .sys-table > thead { display:none; }
.sy-precos-cards .sys-table > tbody { display:grid; gap:14px; width:100%; }
.sy-precos-cards .sys-table .sy-preco-card-row { display:block; margin:0; border:0; box-shadow:none; background:transparent; }
.sy-precos-cards .sys-table .sy-preco-card-cell { display:block; padding:0!important; border:0; background:transparent!important; text-align:left; width:auto; }
.sy-precos-cards .sys-table .sy-preco-card-cell::before { display:none; }
.sy-preco-card { border:1px solid var(--border-color); border-radius:var(--radius-md); background:var(--surface); overflow:hidden; box-shadow:0 2px 8px var(--sombra-campos-furmulario); }
.sy-preco-item { display:grid; grid-template-columns:minmax(0,1fr) minmax(190px,auto) 72px; gap:16px; padding:16px; align-items:center; }
.sy-preco-identificacao { min-width:0; overflow-wrap:anywhere; }
.sy-preco-acoes { align-self:start; }
.sy-preco-card-bloqueado .sy-preco-produto { background:#fde2e2; }
.sy-precos-cards .sy-preco-embalagem { margin:0 16px 12px 32px; border-left:3px solid #c4d3e9; border-radius:var(--radius-sm); background:#f4f7fc; grid-template-columns:minmax(0,1fr) minmax(190px,auto); }
.sy-precos-cards .sy-preco-inline-wrap { flex-wrap:wrap; }
.sy-precos-cards .sy-preco-detalhe { font-size:var(--font-tamanho-menor); }
@media(max-width:680px) {
 .sy-preco-item { grid-template-columns:minmax(0,1fr) auto; gap:10px; }
 .sy-preco-detalhes { grid-column:1/-1; grid-row:2; }
 .sy-precos-cards .sy-preco-detalhe { text-align:left; }
 .sy-precos-cards .sy-preco-embalagem { margin-left:18px; margin-right:10px; grid-template-columns:minmax(0,1fr); }
}

/* Alinhamento exclusivo das descrições e identificação das embalagens nos cards. */
.sy-precos-cards .sy-preco-identificacao > .sy-grid-line {
    text-align: left;
}
.sy-precos-cards .sy-preco-embalagem .sy-preco-identificacao > strong {
    display: block;
    text-align: left;
}


/* v1.1.17: componentes do kit dentro do card principal, após as embalagens. */
.sy-precos-cards .sy-preco-kit { margin:0 16px 12px 32px; border:1px solid #eadca4; border-left:3px solid #d7bd57; border-radius:var(--radius-sm); background:#fff8db; grid-template-columns:minmax(0,1fr) minmax(190px,auto); }
.sy-precos-cards .sy-preco-kit .sy-text-secondary { font-size:.85em; font-weight:400; color:#58667a; }
.sy-precos-cards .sy-preco-kit .sy-preco-identificacao > strong { display:block; text-align:left; }
@media(max-width:680px) { .sy-precos-cards .sy-preco-kit { margin-left:18px; margin-right:10px; grid-template-columns:minmax(0,1fr); } }

/* v1.1.27 - cursor dos controles de seleção em todos os formulários. */
input[type="checkbox"],
input[type="radio"] { cursor: pointer !important; }

/* v1.1.28 - alinhamento do grid de NF-es do MDF-e. */
.sy-mdfe-page .sys-table td.sy-mdfe-nfe-col,
.sy-mdfe-page .sys-table td.sy-mdfe-destino-col { text-align:left !important; }
.sy-mdfe-page .sys-table td.sy-mdfe-valor-col { text-align:right !important; }


/* v1.1.29 R1 — Pedidos: disposição comercial do formulário de Venda de Balcão. */
.sy-pedido-form .sy-pedido-details{overflow-x:auto}
.sy-pedido-form .sy-pedido-details-grid{display:grid;grid-template-columns:minmax(0,35fr) minmax(0,65fr);gap:14px;align-items:stretch;min-width:740px}
.sy-pedido-form .sy-pedido-details .sy-field{grid-column:auto;min-width:0;width:auto}
.sy-pedido-form .sy-pedido-observacoes{display:flex;flex-direction:column;align-self:stretch}
.sy-pedido-form .sy-pedido-observacoes textarea{flex:1;min-height:108px;height:100%;width:100%;resize:vertical}
.sy-pedido-form .sy-pedido-details-right{display:grid;grid-template-rows:repeat(3,auto);gap:8px;min-width:0}
.sy-pedido-form .sy-pedido-details-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 90px;gap:7px;align-items:end}
.sy-pedido-form .sy-pedido-details-terms{display:grid;gap:7px;align-items:end;min-width:0}
.sy-pedido-form .sy-pedido-details-first{grid-template-columns:repeat(6,minmax(0,1fr))}
.sy-pedido-form .sy-pedido-details-last{grid-template-columns:repeat(7,minmax(0,1fr))}
.sy-pedido-form .sy-pedido-details .sy-field label{white-space:nowrap}
.sy-pedido-form .sy-pedido-details .TextBox,.sy-pedido-form .sy-pedido-details .SELECT{width:100%;min-width:0}
.sy-pedido-form .sy-pedido-details-terms .TextBox{text-align:center;padding-inline:3px}
.sy-pedido-form .sy-pedido-details .sy-field[hidden]{display:none!important}

/* v1.1.30 — Histórico de envio de boletos. */
.sy-envio-boletos .sy-envio-secundario{font-size:var(--font-tamanho-menor,11px);font-weight:400}
.sy-envio-boletos .sy-envio-email{text-transform:none!important;overflow-wrap:anywhere}

/* v1.1.30 R1 — Cursor dos seletores e campos de data em todos os formulários. */
select,
input[type="date"],
input[type="datetime-local"],
input[type="month"],
input[type="week"] { cursor:pointer!important; }
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator,
input[type="week"]::-webkit-calendar-picker-indicator { cursor:pointer!important; }

/* v1.1.32: dados de transporte e totais na mesma linha. */
.sy-nfe-carga-scroll { overflow-x:auto; }
.sy-form-grid.sy-nfe-carga-grid { grid-template-columns:repeat(7,minmax(125px,1fr)); min-width:960px; }
.sy-form-grid.sy-nfe-carga-grid > .sy-field { grid-column:auto; min-width:0; }
.sy-nfe-carga-grid label { white-space:nowrap; }
.sy-nfe-carga-scroll + .sy-form-grid { margin-top:12px; }
