*{box-sizing:border-box}
body{margin:0;background:#eef3f7;color:#172e43;font:16px system-ui,sans-serif}
main{width:100%;max-width:1440px;margin:auto;padding:32px 20px}
header{background:#103553;color:white;padding:36px;border-radius:16px;margin-bottom:20px}
header span{font-size:.8rem;letter-spacing:.18em;color:#a7e5e3}
h1{font-size:clamp(2rem,5vw,3rem);margin:10px 0}
h2{overflow-wrap:anywhere}
p{margin:8px 0 14px}
.panel,details{background:white;border:1px solid #ccdbe5;border-radius:12px;padding:18px;margin:12px 0}
label{display:block;font-weight:700;margin-bottom:10px}
input{max-width:100%;margin-bottom:4px}
button{background:#126364;color:white;border:0;border-radius:7px;padding:10px 14px;font:inherit;cursor:pointer}
button[hidden]{display:none}
summary{cursor:pointer;font-weight:700;overflow-wrap:anywhere}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}
.metric{padding:15px;background:#eef6f7;border-radius:8px}
.metric strong{display:block;font-size:1.2rem;margin-top:4px}
.scroll{overflow:auto}
table{width:100%;border-collapse:collapse;text-align:left}
/* Detalhes dos relatórios: 15% menores, inclusive na impressão.
   Aplicar à célula evita reduzir novamente textos e listas internos. */
.lote-table tbody td,.tabela-financeira tbody td{font-size:85%}
th,td{padding:9px;border-bottom:1px solid #dce6ed;white-space:nowrap}
#error,.warning{color:#8a3910}
@media print{body,header{background:white;color:black}main{padding:0}header{padding:0}.controls{display:none}.panel,details{border-color:#bbb}header span{color:black}}

.lote{background:#fff;border:1px solid #d6dce0;border-radius:10px;padding:16px;margin:18px 0}
.lote-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px}
.lote-header h3{margin:0;font-size:1rem}
.transmissao{margin-left:auto}
.lote-meta{margin:6px 0 10px}
.lote-table th,.lote-table td{border:1px solid #b9bfc3}
.lote-table thead{background:#d5d9dc}
.lote-table tfoot{background:#f3f5f6;font-weight:600}
.lote-table tfoot td{white-space:normal}
.lote-table td:nth-child(3){white-space:normal;min-width:12rem}
.lote-table td:nth-child(6){text-align:right;font-variant-numeric:tabular-nums}
@media print{main{max-width:none}.lote{padding:8px}.lote-table{font-size:9pt}.lote-table th,.lote-table td{white-space:normal;padding:4px}.lote-table td:nth-child(3){min-width:0}.scroll{overflow:visible}}

/* Fit all columns within the available width, including the CNAB details. */
.lote .scroll{overflow:visible}
.lote table{table-layout:fixed}
.lote th,.lote td{white-space:normal;overflow-wrap:anywhere}
.lote .lote-table td:nth-child(3){min-width:0}
.lote-table th:nth-child(3),.lote-table th:nth-child(4),.lote-table th:nth-child(8){width:16%}

@media screen and (max-width:850px){
    .lote-table,.lote-table tbody,.lote-table tfoot{display:block}
    .lote-table thead{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
    .lote-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid #b9bfc3;margin-bottom:8px}
    .lote-table td{display:block;border:0;border-bottom:1px solid #e2e8ec}
    .lote-table td::before{content:attr(data-label);display:block;font-weight:700}
    .lote-table td:nth-child(6){text-align:left}
    .lote-table tfoot tr,.lote-table tfoot td{display:block}
}
@media screen and (max-width:480px){
    .lote-table tbody tr{grid-template-columns:minmax(0,1fr)}
}

.link-comprovante{color:#1555a0;text-decoration:underline}
#comprovante{width:min(880px,calc(100% - 24px));max-height:90vh;border:1px solid #b9bfc3;border-radius:10px;color:#172e43;padding:20px}
#comprovante::backdrop{background:#0007}
.recibo{font-size:85%}
.recibo h2{margin:0}
.recibo h3{font-size:1em;margin:12px 0 4px}
.recibo dl{margin:0;border:1px solid #b9bfc3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:#f5f6f7}
.recibo dl div{padding:6px 10px;overflow-wrap:anywhere}
.recibo dt{font-weight:700}
.recibo dd{margin:0}
.acoes-comprovante{display:flex;justify-content:flex-end;gap:8px}
@media screen and (max-width:520px){.recibo dl{grid-template-columns:minmax(0,1fr)}}
@media print{
    body:has(#comprovante[open]) main,.acoes-comprovante{display:none}
    #comprovante[open]{position:static;width:100%;max-width:none;max-height:none;margin:0;border:0;padding:0;overflow:visible}
    #comprovante::backdrop{display:none}
    .recibo section{break-inside:avoid}
}

.titulo-agendamentos{text-align:center;text-transform:uppercase;font-size:1.25rem}
.empresa-remessa{display:grid;grid-template-columns:2fr 1.2fr 1fr 1fr 1.25fr;border:1px solid #b9bfc3}
.empresa-remessa div{min-width:0;overflow-wrap:anywhere}
.empresa-remessa dt,.empresa-remessa dd{margin:0;padding:9px}
.empresa-remessa dt{background:#d5d9dc;font-weight:600}
.remessa-table th:nth-child(3){width:21%}
@media screen and (max-width:700px){.empresa-remessa{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media screen and (max-width:420px){.empresa-remessa{grid-template-columns:1fr}}

.tabela-financeira{margin-top:10px}
.tabela-financeira th,.tabela-financeira td{border:1px solid #b9bfc3}
.tabela-financeira thead,.tabela-financeira tfoot{background:#f3f5f6}
.tabela-financeira tfoot{font-weight:600}

.area-arquivo {
    margin-bottom: 16px;
    padding: 24px 16px;
    border: 2px dashed #698b9d;
    border-radius: 12px;
    background: #f4f9fb;
    text-align: center;
}

.area-arquivo.arrastando {
    border-color: #126364;
    background: #dff4f1;
}

.area-arquivo input {
    font: inherit;
}

.area-arquivo input::file-selector-button {
    margin-right: 10px;
    padding: 8px 12px;
    border: 1px solid #126364;
    border-radius: 7px;
    background: white;
    color: #126364;
    font: inherit;
    cursor: pointer;
}

.arquivo-selecionado,
.erro-arquivo {
    margin: 8px 0 0;
    overflow-wrap: anywhere;
}

.arquivo-selecionado:empty,
.erro-arquivo:empty {
    margin: 0;
}

.erro-arquivo {
    color: #8a3910;
}

.acoes-arquivo {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* Layout fluido: textos longos nunca ampliam a página. */
.seletor-centralizado{position:relative;display:flex;justify-content:center}
.area-arquivo .entrada-arquivo{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.botao-arquivo{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:0;padding:8px 12px;border:1px solid #126364;border-radius:7px;background:white;color:#126364;font-weight:400;cursor:pointer}
.entrada-arquivo:focus-visible+.botao-arquivo{outline:3px solid #168587;outline-offset:3px}
body{line-height:1.5}
main,.panel,.lote,.metric,.lote-header>*{min-width:0}
header,p,dt,dd,button,.metric,.lote-header{overflow-wrap:anywhere}
input[type=file]{display:block;width:100%;min-width:0;font:inherit}
button{min-height:44px;white-space:normal}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #168587;outline-offset:3px}
.ocorrencias{margin:0;padding:0;list-style:none;text-align:left}
.ocorrencias li+li{margin-top:6px}
.lote-table th:nth-child(8){width:21%}
.tabela-financeira{table-layout:fixed}
.tabela-financeira th,.tabela-financeira td{white-space:normal;overflow-wrap:anywhere}
#comprovante{font:inherit;max-width:calc(100% - 24px);max-height:90dvh;overflow:auto}
.recibo,.recibo section,.recibo dl,.recibo dl div{min-width:0}
.acoes-comprovante{flex-wrap:wrap;margin-top:16px}
@media screen and (max-width:1100px){
    main{padding:24px 16px}
    header{padding:24px}
    .lote-table,.lote-table tbody,.lote-table tfoot{display:block;width:100%}
    .lote-table thead{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
    .lote-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #b9bfc3;margin-bottom:12px}
    .lote-table td{display:block;min-width:0;border:0;border-bottom:1px solid #e2e8ec}
    .lote-table td::before{content:attr(data-label);display:block;font-weight:700;margin-bottom:3px}
    .lote-table td:nth-child(6){text-align:left}
    .lote-table tfoot tr,.lote-table tfoot td{display:block}
}
@media screen and (max-width:600px){
    main{padding:12px 8px}
    header{padding:20px 14px;border-radius:10px}
    .panel,.lote{padding:12px}
    h1{font-size:clamp(1.4rem,7vw,2rem)}
    h2{font-size:1.2em}
    .lote-header{align-items:stretch;gap:6px}
    .lote-header>*{flex-basis:100%}
    .transmissao{margin-left:0}
    .lote-table tbody tr{grid-template-columns:minmax(0,1fr)}
    .acoes-arquivo{flex-direction:column}
    .acoes-arquivo button{width:100%}
    .area-arquivo{padding:16px 10px}
    .empresa-remessa,.recibo dl{grid-template-columns:minmax(0,1fr)}
    #comprovante{padding:12px;width:calc(100% - 16px);max-width:calc(100% - 16px);max-height:calc(100dvh - 16px)}
    .acoes-comprovante>*{flex:1}
    .acoes-comprovante form button{width:100%}
    .tabela-financeira,.tabela-financeira tbody,.tabela-financeira tfoot{display:block;width:100%}
    .tabela-financeira thead{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
    .tabela-financeira tbody tr{display:block;margin-bottom:10px;border:1px solid #b9bfc3}
    .tabela-financeira td{display:block;border:0;border-bottom:1px solid #e2e8ec}
    .tabela-financeira td[data-label]::before{content:attr(data-label);display:block;font-weight:700}
    .tabela-financeira tfoot tr{display:block}
}
@media print{
    .ocorrencias{font-size:inherit}
    #comprovante[open]{max-height:none;overflow:visible}
}

/* Protocolo de processamento SIACC: mensagem livre, sem tabela de pagamentos. */
#resultado-relatorio .protocolo h2{text-align:center;font-size:clamp(1.2rem,2.2vw,2rem);font-weight:500;margin:12px 0}
.protocolo-empresa{table-layout:fixed;text-align:center;font-size:14px}
.protocolo-empresa th,.protocolo-empresa td{border:1px solid #b9bfc3;padding:10px;white-space:normal;overflow-wrap:anywhere}
.protocolo-empresa th{background:#ccc;color:#333;font-weight:500}
.protocolo-empresa th:first-child{width:30%}.protocolo-empresa th:nth-child(4){width:10%}
.protocolo-mensagens{padding:24px 0;min-height:110px;border-bottom:1px solid #eee;font-size:14px}
.protocolo-mensagens p{white-space:pre-wrap;overflow-wrap:anywhere}
.protocolo-acoes{display:flex;align-items:end;gap:10px;margin-top:24px;flex-wrap:wrap}
.protocolo-filtro{margin:0 auto 0 0;font-weight:400;font-size:12px;width:min(100%,450px)}
.protocolo-filtro select{display:block;width:100%;padding:10px;border:1px solid #ccc;border-radius:5px;background:white;font:inherit;font-size:16px}
.protocolo-fechar{display:inline-block;padding:9px 15px;border:1px solid #d9e2ef;border-radius:7px;color:#344054;text-decoration:none;font-size:14px}
@media print{body:has(.protocolo) .topbar,.protocolo-acoes{display:none}#resultado-relatorio .protocolo{box-shadow:none;border:0;padding:0}.protocolo-mensagens{min-height:0}.protocolo-empresa th{print-color-adjust:exact}}
