body { font-family: sans-serif; background:#f0f2f5; margin:0; color:#333; padding-bottom:54px; }
    nav { background:#004085; color:white; padding:15px; display:flex; justify-content:space-between; align-items:center; position:relative; }
    nav a { color:white; margin-right:12px; text-decoration:none; font-weight:600; }
    .nav-user-center { position:absolute; left:50%; transform:translateX(-50%); font-size:12px; opacity:.95; white-space:nowrap; background:rgba(255,255,255,.12); padding:5px 10px; border-radius:999px; }
    nav a:hover { text-decoration:underline; }

    .card { background:white; padding:20px; border-radius:8px; box-shadow:0 2px 5px rgba(0,0,0,0.1); max-width:1050px; margin:20px auto; }
    .card-small { max-width:650px; }

    input, select, textarea {
        width:100%;
        padding:10px;
        margin:5px 0 15px;
        border:1px solid #ccc;
        border-radius:4px;
        box-sizing:border-box;
    }

    textarea { min-height:90px; resize:vertical; }
    input[readonly] { background:#f1f1f1; color:#555; }
    .upper { text-transform: uppercase; }

    button, .btn {
        background:#28a745;
        color:white;
        padding:10px 14px;
        border:none;
        border-radius:4px;
        cursor:pointer;
        text-decoration:none;
        display:inline-block;
        margin:2px 0;
    }

    .btn-danger { background:#dc3545; }
    .btn-warning { background:#ffc107; color:#222; }
    .btn-primary { background:#004085; }
    .btn-secondary { background:#6c757d; }
    .btn-small { padding:6px 9px; font-size:13px; }

    /* ------------------------------------------------------
       PADRÃO DE BOTÕES POR FUNÇÃO
       Verde = salvar/confirmar/finalizar
       Azul = visualizar/pesquisar/abrir/relatórios
       Azul escuro = PDF/documentos oficiais
       Cinza = limpar/secundário
       Amarelo = cancelar/voltar/atenção
       Vermelho = excluir/cancelar ata/ação perigosa
       ------------------------------------------------------ */
    button, .btn { min-height:38px; line-height:18px; font-weight:600; box-sizing:border-box; }
    .btn-small { min-height:30px; line-height:16px; }
    .btn-salvar, .btn-success { background:#198754 !important; color:#fff !important; }
    .btn-finalizar { background:#157347 !important; color:#fff !important; }
    .btn-visualizar, .btn-pesquisar, .btn-abrir, .btn-acao { background:#004085 !important; color:#fff !important; }
    .btn-pdf, .btn-documento { background:#003366 !important; color:#fff !important; }
    .btn-limpar { background:#6c757d !important; color:#fff !important; }
    .btn-voltar, .btn-cancelar { background:#ffc107 !important; color:#222 !important; }
    .btn-editar { background:#0d6efd !important; color:#fff !important; }
    .btn-excluir, .btn-cancelar-ata, .btn-danger { background:#dc3545 !important; color:#fff !important; }
    .btn-group-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:12px; }
    .acoes-dropdown details { position:relative; display:inline-block; }
    .acoes-dropdown summary { user-select:none; }
    .acoes-dropdown .acoes-lista {
        margin-top:6px;
        min-width:180px;
        background:#fff;
        border:1px solid #ddd;
        border-radius:6px;
        box-shadow:0 4px 12px rgba(0,0,0,.12);
        padding:6px;
        z-index:10;
    }
    .acoes-dropdown .acoes-lista .btn { display:block; width:100%; text-align:left; margin:3px 0; }

    table { width:100%; border-collapse:collapse; margin-top:10px; background:white; }
    th, td { border:1px solid #ddd; padding:8px; text-align:left; vertical-align:top; }
    th { background:#f5f5f5; }

    .row { display:flex; gap:10px; width:100%; box-sizing:border-box; }
    .col { flex:1; min-width:0; }
    .linha-data-hora { align-items:flex-start; gap:10px; flex-wrap:wrap; }
    .linha-data-hora .col { min-width:120px; }
    .linha-data-hora .data-col { flex:1; min-width:155px; max-width:210px; }
    .linha-data-hora .hora-col { flex:.75; min-width:115px; max-width:155px; }
    .linha-data-hora input { width:100%; min-height:38px; height:38px; line-height:20px; margin-bottom:10px; }
    .linha-data-hora input[type="time"] { appearance:auto; -webkit-appearance:auto; }


    /* v2.8.71.8 - Novo Documento: localização cidade-primeiro.
       Ordem visual: UF -> Cidade -> Regional -> Superintendência.
       A cidade carrega Regional/Superintendência pelo cadastro de localidade. */
    .linha-localizacao {
        display:grid !important;
        grid-template-columns:minmax(78px, .38fr) minmax(220px, 1.25fr) minmax(170px, 1.05fr) minmax(220px, 1.35fr);
        gap:10px;
        align-items:start;
        width:100%;
    }
    .linha-localizacao .col { width:100%; min-width:0; }
    .linha-localizacao label { white-space:nowrap; }
    .linha-localizacao select { width:100%; min-height:38px; height:38px; }
    .linha-localizacao .local-uf { max-width:96px; }
    .textarea-compacta { min-height:58px !important; height:58px; resize:vertical; }
    .textarea-media { min-height:74px !important; height:74px; resize:vertical; }

    @media (max-width: 900px) {
        .linha-localizacao {
            grid-template-columns:repeat(2, minmax(0, 1fr));
        }
        .linha-localizacao .local-uf { max-width:none; }
    }
    @media (max-width: 640px) {
        .linha-localizacao {
            grid-template-columns:1fr;
        }
        .linha-localizacao label { white-space:normal; }
    }

    .alert { padding:10px; border-radius:4px; margin-bottom:15px; background:#e9f7ef; border:1px solid #28a745; }
    .alert-danger { background:#f8d7da; border-color:#dc3545; }
    .alert-warning { background:#fff3cd; border-color:#ffc107; }
    .muted { color:#777; font-size:13px; }
    .tag { display:inline-block; border-radius:999px; padding:3px 8px; font-size:11px; font-weight:700; margin:2px 3px 2px 0; }
    .tag-ok { background:#d1e7dd; color:#0f5132; }
    .tag-warn { background:#fff3cd; color:#664d03; }
    .tag-info { background:#cff4fc; color:#055160; }

    .menu-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:12px; }
    .menu-item { background:#f8f9fa; border:1px solid #ddd; border-radius:8px; padding:14px; }
    .menu-item h4 { margin:0 0 6px; font-size:16px; }
    .menu-item p { margin:4px 0 9px; font-size:13px; line-height:1.35; }
    .menu-item .btn { padding:7px 10px; font-size:13px; font-weight:600; }

    .logo-preview {
        max-width:180px;
        max-height:100px;
        border:none;
        border-radius:0;
        padding:0;
        background:transparent;
        object-fit:contain;
        box-shadow:none;
    }

    .nav-logo {
        height:38px;
        max-width:105px;
        object-fit:contain;
        border:none;
        border-radius:0;
        padding:0;
        background:transparent;
        box-shadow:none;
    }

    .system-footer {
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        background:rgba(255,255,255,.96);
        color:#555;
        font-size:11px;
        padding:7px 12px;
        border-top:1px solid #ddd;
        text-align:center;
        z-index:9999;
    }

    .system-footer b { color:#004085; }

    .box-opcional {
        background:#f8f9fa;
        padding:8px 10px;
        border-radius:6px;
        border:1px solid #ddd;
        margin-bottom:8px;
    }
    .box-opcional > label { display:flex; align-items:center; gap:6px; margin:0; line-height:1.25; flex-wrap:wrap; }
    .box-opcional input[type="checkbox"] { width:auto !important; margin:0 6px 0 0 !important; }
    .box-opcional .muted { margin:6px 0; }
    .info-inline { color:#777; font-size:12px; font-weight:400; line-height:1.25; }

    /* v2.8.69.10 - Campos criados por Grupo: seleção lado a lado, com remoção. */
    .grupo-operacional-grid {
        display:grid;
        grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
        gap:8px 10px;
        align-items:start;
        margin-top:8px;
    }
    .grupo-operacional-item {
        display:flex;
        align-items:center;
        gap:6px;
        min-width:0;
        background:#fff;
        border:1px solid #dde6ef;
        border-radius:8px;
        padding:6px;
        box-sizing:border-box;
    }
    .grupo-operacional-item select {
        flex:1;
        min-width:0;
        margin:0 !important;
        height:38px;
        min-height:38px;
    }
    .btn-remover-presenca {
        width:32px;
        min-width:32px;
        height:32px;
        min-height:32px !important;
        padding:0 !important;
        border-radius:999px;
        font-size:18px !important;
        line-height:30px !important;
        display:inline-flex;
        align-items:center;
        justify-content:center;
    }
    .grupo-operacional-ajuda { margin:6px 0 0; }
    @media (min-width: 1100px) {
        .grupo-operacional-grid { grid-template-columns:repeat(4, minmax(190px, 1fr)); }
    }
    @media (max-width: 640px) {
        .grupo-operacional-grid { grid-template-columns:1fr; }
        .grupo-operacional-item { padding:6px 7px; }
    }

    .form-section {
        margin:10px 0;
        padding:9px 10px;
        border:1px solid #dfe5ec;
        border-radius:7px;
        background:#fbfcfe;
    }
    .form-section h4 {
        margin:0 0 6px;
        color:#004085;
        font-size:15px;
        line-height:1.2;
    }
    .form-section .section-help {
        margin:0 0 6px;
        color:#666;
        font-size:12px;
        line-height:1.25;
    }
    .perfil-grid {
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:6px;
        margin:4px 0 4px;
    }
    .perfil-card {
        display:flex;
        gap:6px;
        align-items:flex-start;
        padding:7px 8px;
        border:1px solid #d8dee8;
        border-radius:7px;
        background:#fff;
        cursor:pointer;
        min-height:0;
    }
    .perfil-card:hover { border-color:#004085; background:#f6f9ff; }
    .perfil-card input[type="checkbox"] { width:auto !important; margin:2px 4px 0 0 !important; flex:0 0 auto; }
    .perfil-card strong { display:block; color:#222; margin-bottom:1px; font-size:13px; line-height:1.2; }
    .perfil-card span { display:block; color:#666; font-size:11px; line-height:1.2; }
    .permissao-extra { border-left:4px solid #004085; }
    .permissao-alerta { border-left:4px solid #ffc107; }

    .chart-wrap {
        max-width:520px;
        margin:20px auto;
        background:#fff;
        border:1px solid #ddd;
        border-radius:8px;
        padding:15px;
    }

    .chart-grid-clima {
        display:grid;
        grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
        gap:12px;
        margin-top:14px;
        align-items:start;
    }

    .chart-wrap-barras {
        background:#fff;
        border:1px solid #ddd;
        border-radius:8px;
        padding:12px;
        min-height:0;
        page-break-inside:avoid;
    }

    .chart-wrap-barras canvas {
        width:100% !important;
        max-width:210px !important;
        height:170px !important;
        max-height:170px !important;
        margin:0 auto 8px auto;
        display:block;
    }

    .grafico-clima-canvas {
        display:none;
    }

    .grafico-css-barras {
        margin-top:6px;
    }

    .legenda-clima-compacta {
        display:grid;
        grid-template-columns:1fr;
        gap:3px;
        margin-top:5px;
        font-size:10.5px;
    }

    .legenda-clima-item {
        display:flex;
        align-items:center;
        gap:5px;
        line-height:1.2;
        overflow-wrap:anywhere;
    }

    .legenda-clima-cor {
        width:9px;
        height:9px;
        border-radius:2px;
        border:1px solid rgba(0,0,0,.18);
        flex:0 0 auto;
    }

    .legenda-clima-nome { flex:1; }

    .legenda-clima-valor {
        font-weight:700;
        min-width:22px;
        text-align:right;
    }

    .barra-clima-linha { font-size:11px; }

    .resumo-clima-compacto {
        display:grid;
        grid-template-columns:repeat(auto-fit, minmax(110px, 1fr));
        gap:3px 8px;
        margin:4px 0 2px;
        font-size:9.5px;
        line-height:1.15;
        color:#334155;
    }
    .resumo-clima-compacto span {
        display:block;
        white-space:nowrap;
        padding:2px 4px;
        border:1px solid #eef2f7;
        border-radius:4px;
        background:#fbfcfe;
    }
    .resumo-clima-compacto b {
        color:#004085;
    }
    .grafico-part-sind-inline {
        margin-top:8px;
        border-top:1px solid #e6eaf0;
        padding-top:7px;
    }
    .grafico-part-sind-inline h5 {
        margin:0 0 5px;
        color:#004085;
        font-size:12px;
        line-height:1.2;
    }
    .grafico-part-sind-inline .grafico-colunas-pequeno {
        height:112px;
        padding:7px 6px 4px;
        gap:20px;
    }
    .grafico-part-sind-inline .coluna-grafico-item {
        min-width:76px;
        font-size:10.5px;
    }
    .grafico-part-sind-inline .barra-coluna {
        width:26px;
    }

    .tabela-compacta-relatorio {
        font-size:12px;
    }

    .tabela-compacta-relatorio th,
    .tabela-compacta-relatorio td {
        padding:5px 6px;
        text-align:center;
        vertical-align:middle;
    }

    @media (max-width: 768px) {
        .row { flex-direction:column; gap:0; }
        .col { width:100%; }

        .card {
            margin:10px;
            padding:15px;
            max-width:none;
        }

        nav {
            flex-direction:column;
            align-items:flex-start;
            gap:10px;
        }

        nav div {
            display:flex;
            flex-wrap:wrap;
            gap:8px;
        }

        nav a { margin-right:8px; }
        .nav-user-center { position:static; transform:none; display:inline-block; margin:4px 0; }

        table {
            font-size:12px;
            display:block;
            overflow-x:auto;
            white-space:nowrap;
        }

        .menu-grid { grid-template-columns:1fr; }
        .perfil-grid { grid-template-columns:1fr; }
        .form-section { padding:12px; }
        .btn-group-actions { flex-direction:column; align-items:stretch; }
        .btn-group-actions .btn, .btn-group-actions button { width:100%; text-align:center; }
    }


    /* ------------------------------------------------------
       REFINAMENTO v2.8.60 - BOTÕES TÉCNICOS E COMPACTOS
       ------------------------------------------------------
       Objetivo:
       - padronizar altura, alinhamento e espaçamento dos botões;
       - reduzir botões altos demais nas telas de Configurações e Backup;
       - melhorar a barra superior sem alterar o visual clássico do sistema;
       - preservar a linguagem de cores por função para futura troca de tema.
       ------------------------------------------------------ */
    :root {
        --ga-azul: #004085;
        --ga-azul-escuro: #003366;
        --ga-verde: #198754;
        --ga-verde-escuro: #157347;
        --ga-amarelo: #ffc107;
        --ga-cinza: #6c757d;
        --ga-vermelho: #dc3545;
        --ga-borda: #bfc8d2;
    }

    nav {
        min-height:44px;
        padding:9px 14px;
        gap:10px;
        box-shadow:0 1px 3px rgba(0,0,0,.12);
    }
    nav strong {
        min-height:34px;
        line-height:1.1;
        font-size:15px;
    }
    nav div {
        display:flex;
        flex-wrap:wrap;
        align-items:center;
        justify-content:flex-end;
        gap:5px;
    }
    nav a {
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-height:30px;
        padding:5px 8px;
        margin-right:0;
        border-radius:4px;
        line-height:16px;
        font-size:13px;
        white-space:nowrap;
        border:1px solid rgba(255,255,255,.13);
        background:rgba(255,255,255,.05);
    }
    nav a:hover {
        text-decoration:none;
        background:rgba(255,255,255,.14);
        border-color:rgba(255,255,255,.25);
    }
    .nav-logo { height:32px; max-width:92px; }
    .nav-user-center {
        padding:4px 9px;
        font-size:11.5px;
        line-height:15px;
        min-height:22px;
        display:inline-flex;
        align-items:center;
    }

    button, .btn {
        display:inline-flex !important;
        align-items:center;
        justify-content:center;
        gap:5px;
        min-height:32px;
        padding:6px 11px;
        margin:2px 2px;
        border-radius:4px;
        border:1px solid rgba(0,0,0,.08);
        font-size:13px;
        font-weight:600;
        line-height:16px;
        vertical-align:middle;
        text-align:center;
        white-space:nowrap;
        box-shadow:none;
        box-sizing:border-box;
    }
    button:hover, .btn:hover { filter:brightness(.96); text-decoration:none; }
    button:active, .btn:active { transform:translateY(1px); }

    .btn-small {
        min-height:26px !important;
        padding:4px 7px !important;
        font-size:12px !important;
        line-height:15px !important;
        border-radius:4px !important;
    }
    .menu-item .btn {
        min-height:30px !important;
        padding:5px 10px !important;
        font-size:12.5px !important;
        line-height:15px !important;
    }
    .menu-item { padding:12px; }
    .menu-item p { margin-bottom:8px; }

    .btn-salvar, .btn-success { background:var(--ga-verde) !important; color:#fff !important; }
    .btn-finalizar { background:var(--ga-verde-escuro) !important; color:#fff !important; }
    .btn-primary, .btn-visualizar, .btn-pesquisar, .btn-abrir, .btn-acao { background:var(--ga-azul) !important; color:#fff !important; }
    .btn-pdf, .btn-documento { background:var(--ga-azul-escuro) !important; color:#fff !important; }
    .btn-limpar, .btn-secondary { background:var(--ga-cinza) !important; color:#fff !important; }
    .btn-voltar, .btn-cancelar, .btn-warning { background:var(--ga-amarelo) !important; color:#222 !important; }
    .btn-editar { background:#0d6efd !important; color:#fff !important; }
    .btn-excluir, .btn-cancelar-ata, .btn-danger { background:var(--ga-vermelho) !important; color:#fff !important; }

    .btn-group-actions {
        display:flex;
        flex-wrap:wrap;
        gap:6px;
        align-items:center;
        margin-top:10px;
    }
    .btn-group-actions .btn,
    .btn-group-actions button {
        min-width:116px;
    }

    .acoes-dropdown details { position:relative; display:inline-block; }
    .acoes-dropdown summary.btn {
        min-width:74px;
        list-style:none;
    }
    .acoes-dropdown summary.btn::-webkit-details-marker { display:none; }
    .acoes-dropdown .acoes-lista {
        min-width:170px;
        padding:5px;
        border-radius:5px;
        border:1px solid #cfd6de;
        box-shadow:0 4px 10px rgba(0,0,0,.14);
    }
    .acoes-dropdown .acoes-lista .btn,
    .acoes-dropdown .acoes-lista form,
    .acoes-dropdown .acoes-lista form button {
        width:100%;
    }
    .acoes-dropdown .acoes-lista .btn,
    .acoes-dropdown .acoes-lista form button {
        justify-content:flex-start;
        text-align:left;
        margin:2px 0;
        min-height:28px !important;
    }

    .card > p .btn,
    .card > div .btn {
        vertical-align:middle;
    }

    @media (max-width: 768px) {
        nav { padding:10px; gap:7px; }
        nav div { justify-content:flex-start; gap:6px; }
        nav a { width:auto; min-height:32px; padding:6px 8px; }
        button, .btn { min-height:36px; padding:8px 10px; white-space:normal; }
        .btn-small { min-height:32px !important; padding:6px 8px !important; }
        .menu-item .btn { width:100%; }
        .btn-group-actions .btn, .btn-group-actions button { width:100%; min-width:0; }
    }


    .grafico-part-sind { min-height:180px; }
    .grafico-colunas-pequeno {
        display:flex; align-items:flex-end; justify-content:center; gap:28px;
        height:155px; padding:10px 8px 4px; border:1px solid #e1e5ef; border-radius:8px; background:#f8fafc;
    }
    .coluna-grafico-item { display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:4px; min-width:95px; font-size:12px; color:#1f2a44; }
    .barra-coluna { width:34px; min-height:4px; border-radius:5px 5px 0 0; box-shadow:inset 0 -2px 0 rgba(0,0,0,.08); }
    .barra-participantes { background:#004085; }
    .barra-sindicalizados { background:#28a745; }


    /* ------------------------------------------------------
       REFINAMENTO v2.8.68.8 - USABILIDADE E LEGIBILIDADE
       ------------------------------------------------------
       Ajustes globais e seguros: não mudam regras, rotas nem dados.
       Melhoram leitura, foco dos campos, proporção de botões, cartões,
       tabelas e navegação em desktop/mobile.
       ------------------------------------------------------ */
    :root {
        --ga-bg: #f3f6fa;
        --ga-card: #ffffff;
        --ga-texto: #243044;
        --ga-texto-suave: #64748b;
        --ga-borda-suave: #d8e0ea;
        --ga-sombra-card: 0 8px 24px rgba(15, 23, 42, .08);
        --ga-radius-card: 14px;
        --ga-radius-campo: 8px;
    }

    html { font-size:15px; }
    body {
        font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
        background:var(--ga-bg);
        color:var(--ga-texto);
        line-height:1.45;
    }
    .container {
        width:100%;
        max-width:1180px;
        margin:0 auto;
        padding:0 14px 72px;
        box-sizing:border-box;
    }
    .card {
        border:1px solid rgba(216,224,234,.85);
        border-radius:var(--ga-radius-card);
        box-shadow:var(--ga-sombra-card);
        padding:22px;
        margin:18px auto;
    }
    .card-small { max-width:620px; }
    .card h3, .card h4 {
        color:#12385f;
        line-height:1.22;
    }
    .card h3 { font-size:21px; margin:0 0 14px; }
    .card h4 { font-size:16px; margin:18px 0 8px; }
    label {
        display:block;
        color:#26364d;
        font-size:13px;
        font-weight:700;
        margin:2px 0 4px;
    }
    input, select, textarea {
        min-height:38px;
        padding:9px 10px;
        margin:4px 0 12px;
        border:1px solid var(--ga-borda-suave);
        border-radius:var(--ga-radius-campo);
        background:#fff;
        color:#182235;
        font-size:14px;
        line-height:1.35;
        transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
    }
    textarea { min-height:104px; }
    input[type="file"] { min-height:auto; padding:8px; }
    input:focus, select:focus, textarea:focus {
        outline:none;
        border-color:#5b8ec8;
        box-shadow:0 0 0 3px rgba(0, 64, 133, .12);
    }
    /* v2.8.69.11 - checkboxes/radios não devem herdar caixa/sombra dos campos de texto. */
    input[type="checkbox"], input[type="radio"] {
        width:auto !important;
        min-width:0 !important;
        height:auto !important;
        min-height:auto !important;
        padding:0 !important;
        margin:0 6px 0 0 !important;
        border:0 !important;
        border-radius:0 !important;
        background:transparent !important;
        box-shadow:none !important;
        vertical-align:middle;
    }
    input[type="checkbox"]:focus, input[type="radio"]:focus {
        border-color:transparent !important;
        box-shadow:none !important;
        outline:2px solid rgba(0,64,133,.22);
        outline-offset:2px;
    }
    input[readonly], textarea[readonly] {
        background:#f4f6f8;
        color:#536173;
    }
    .muted { color:var(--ga-texto-suave); font-size:13px; }
    .alert {
        border-radius:10px;
        padding:11px 12px;
        line-height:1.35;
    }
    button, .btn {
        min-height:36px;
        padding:8px 13px;
        border-radius:8px;
        font-size:13.5px;
        line-height:17px;
    }
    .btn-small {
        min-height:30px !important;
        padding:5px 8px !important;
        font-size:12.5px !important;
    }
    .btn-group-actions {
        gap:8px;
        padding-top:4px;
    }
    .btn-group-actions .btn,
    .btn-group-actions button {
        min-width:132px;
    }
    table {
        border:1px solid var(--ga-borda-suave);
        border-radius:10px;
        overflow:hidden;
        font-size:13px;
    }
    th {
        background:#eef4fb;
        color:#12385f;
        font-size:12.5px;
        text-transform:none;
    }
    th, td { padding:9px 8px; }
    tr:nth-child(even) td { background:#fbfdff; }
    .menu-grid { gap:14px; }
    .menu-item {
        border-color:var(--ga-borda-suave);
        border-radius:12px;
        background:#fbfdff;
    }
    .menu-item h4 { font-size:15.5px; }
    .box-opcional, .form-section, .filtros-relatorio-card {
        border-color:var(--ga-borda-suave);
        border-radius:12px;
    }
    nav {
        align-items:center;
    }
    nav strong span { letter-spacing:.1px; }
    .system-footer {
        font-size:10.5px;
        line-height:1.25;
    }

    @media (max-width: 768px) {
        html { font-size:14.5px; }
        .container { padding:0 8px 78px; }
        .card { margin:10px 0; padding:14px; border-radius:12px; }
        .card h3 { font-size:18px; }
        .card h4 { font-size:15px; }
        input, select, textarea { font-size:14px; min-height:40px; margin-bottom:10px; }
        button, .btn { min-height:40px; font-size:13.5px; }
        .row { gap:0; }
        table { border-radius:8px; }
        th, td { padding:8px 7px; }
        .nav-user-center { max-width:100%; white-space:normal; }
        nav strong { font-size:14px; }
        nav a { min-height:34px; }
    }


    /* v2.8.68.9 - Relatórios: corrige alinhamento/bug visual dos filtros, principalmente perto de Empresa. */
    .filtros-relatorio-card {
        padding:14px;
        background:#f8fafc;
        border:1px solid #dbe4ee;
        border-radius:14px;
    }
    .filtros-relatorio-card .row {
        display:grid;
        grid-template-columns:repeat(3, minmax(180px, 1fr));
        gap:10px 14px;
        align-items:end;
        margin-bottom:12px;
    }
    .filtros-relatorio-card .linha-data-hora {
        grid-template-columns:minmax(145px, .75fr) minmax(145px, .75fr) minmax(210px, 1.2fr);
    }
    .filtros-relatorio-card .relatorio-linha-localizacao {
        grid-template-columns:minmax(220px, 1.25fr) minmax(190px, 1fr) minmax(96px, .45fr) minmax(220px, 1.25fr);
    }
    .filtros-relatorio-card .col { min-width:0; width:100%; }
    .filtros-relatorio-card label {
        display:block;
        margin:0 0 5px;
        font-size:13px;
        line-height:1.2;
        color:#334155;
        font-weight:700;
    }
    .filtros-relatorio-card input,
    .filtros-relatorio-card select {
        width:100%;
        max-width:100%;
        min-width:0;
        margin:0;
        min-height:42px;
        font-size:14px;
    }
    .filtros-relatorio-card select[name="empresa"] { font-weight:600; color:#0f172a; }
    .filtros-relatorio-card .texto-livre-relatorio { margin-top:4px; }
    .filtros-relatorio-card .texto-livre-relatorio input { margin-top:0; }
    @media (max-width: 980px) {
        .filtros-relatorio-card .row,
        .filtros-relatorio-card .linha-data-hora,
        .filtros-relatorio-card .relatorio-linha-localizacao {
            grid-template-columns:repeat(2, minmax(160px, 1fr));
        }
    }
    @media (max-width: 640px) {
        .filtros-relatorio-card { padding:12px; }
        .filtros-relatorio-card .row,
        .filtros-relatorio-card .linha-data-hora,
        .filtros-relatorio-card .relatorio-linha-localizacao {
            grid-template-columns:1fr;
            gap:9px;
        }
    }


/* v2.8.71.6 - upload/anexos em português no Novo Documento */
.arquivo-upload-custom {
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin:8px 0 14px;
}
.arquivo-upload-botao {
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    min-height:36px;
    margin:0;
}
.arquivo-upload-nome {
    display:inline-flex;
    align-items:center;
    min-height:36px;
    padding:8px 10px;
    border:1px dashed #cbd5e1;
    border-radius:10px;
    background:#f8fafc;
    color:#334155;
    font-size:0.92rem;
    min-width:220px;
    max-width:100%;
}
.arquivo-upload-input {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
    opacity:0.01;
}
.arquivo-upload-input:focus + .arquivo-upload-nome,
.arquivo-upload-custom:focus-within .arquivo-upload-botao {
    outline:2px solid rgba(37,99,235,.25);
    outline-offset:2px;
}
@media (max-width: 700px) {
    .arquivo-upload-custom { align-items:stretch; }
    .arquivo-upload-botao, .arquivo-upload-nome { width:100%; justify-content:center; }
    .arquivo-upload-nome { min-width:0; justify-content:flex-start; }
}


/* v2.8.71.8 - ajustes finais Novo Documento */
.linha-localizacao-cidade-primeiro {
    grid-template-columns:minmax(78px, .38fr) minmax(220px, 1.25fr) minmax(170px, 1.05fr) minmax(220px, 1.35fr) !important;
}
.textarea-compacta { min-height:58px !important; height:58px; resize:vertical; }
.textarea-media { min-height:74px !important; height:74px; resize:vertical; }
@media (max-width:900px) {
    .linha-localizacao-cidade-primeiro { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width:640px) {
    .linha-localizacao-cidade-primeiro { grid-template-columns:1fr !important; }
}
