:root{--vermelho:#ee3f43;--cinza:#606062;--fundo:#f6f6f7;--texto:#222;--borda:#e1e3e6;--ok:#2e8b57;--alerta:#d98e04;--erro:#c0392b;--info:#2c5aa0}
*{box-sizing:border-box}body{margin:0;font-family:"Segoe UI",Arial,sans-serif;background:var(--fundo);color:var(--texto);font-size:15px}
p{text-align:justify}
.topo{display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:3px solid var(--vermelho);padding:8px 20px}
.topo img{height:40px}.topo nav{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px 18px}.topo nav a{color:var(--cinza);text-decoration:none;font-weight:600}.topo nav a:hover{color:var(--vermelho)}
.inline{display:inline}.quem{color:var(--cinza)}button.link{background:none;border:0;color:var(--vermelho);font-weight:600;cursor:pointer;margin-left:8px}
.conteudo{max-width:1200px;margin:22px auto;padding:0 16px}.rodape{text-align:center;color:var(--cinza);font-size:12px;padding:24px}
.cartao{background:#fff;border:1px solid var(--borda);border-radius:10px;padding:18px 20px;margin-bottom:16px}
h1{font-size:22px;margin:0 0 12px}h2{font-size:17px;margin:18px 0 8px;color:var(--cinza)}
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.pill{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:700;color:#fff}
.pill.sem_plano{background:#9aa0a6}.pill.programacao_atrasada,.pill.apuracao_atrasada{background:var(--erro)}.pill.programada{background:var(--info)}.pill.fechada{background:var(--ok)}
table{border-collapse:collapse;width:100%;background:#fff}th,td{border:1px solid var(--borda);padding:6px 8px;text-align:left;vertical-align:top}th{background:#fafafa;color:var(--cinza);font-size:13px}
td.num,th.num{text-align:right}input[type=text],input[type=number],input[type=date],input[type=search],input[type=email],input[type=password],select,textarea{width:100%;padding:6px;border:1px solid var(--borda);border-radius:6px;font:inherit}
label{display:block;margin:8px 0;font-weight:600;color:var(--cinza)}label input,label select{margin-top:4px;font-weight:400;color:var(--texto)}
button.primario{background:var(--vermelho);color:#fff;border:1.5px solid var(--vermelho);border-radius:8px;padding:10px 18px;min-height:44px;font:inherit;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}button.primario:hover{background:#d9333a;border-color:#d9333a}
button.secundario{background:#fff;color:var(--texto);border:1.5px solid #c9ccd1;border-radius:8px;padding:9px 16px;min-height:44px;font:inherit;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s}button.secundario:hover{border-color:var(--vermelho);color:var(--vermelho)}
button.secundario:disabled{color:#9a9ea3;border-style:dashed;cursor:not-allowed}button.secundario:disabled:hover{border-color:#c9ccd1;color:#9a9ea3}
button:focus-visible,a:focus-visible{outline:3px solid #1f6feb;outline-offset:2px}.acoes a{text-decoration:none}
.acoes{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.aviso{background:#e8f5ee;border:1px solid #bfe3cd;color:#1f5f3a;padding:10px 14px;border-radius:8px;margin-bottom:14px}.erro{background:#fdecea;border:1px solid #f5c2c0;color:#8a1c14;padding:10px 14px;border-radius:8px;margin-bottom:12px}
.entrar{display:flex;justify-content:center;padding:40px 0}.entrar-caixa{width:420px;text-align:center}.mascote{width:150px}.slogan{color:var(--cinza);font-size:13px;text-align:center}
.matriz td.c{width:44px;text-align:center}.matriz td.c span{display:inline-block;width:32px;height:22px;border-radius:5px}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.kpi{background:#fff;border:1px solid var(--borda);border-radius:10px;padding:12px}.kpi .v{font-size:24px;font-weight:700}.kpi .l{color:var(--cinza);font-size:12px;text-transform:uppercase}
.scroll{overflow-x:auto}.mut{color:var(--cinza);font-size:13px}.pre{display:flex;gap:8px;flex-wrap:wrap}.pre label{font-weight:400;margin:0;display:flex;align-items:center;gap:4px}
@media (max-width:700px){.topo{flex-direction:column;gap:8px}.topo nav{justify-content:center}.conteudo{padding:0 8px}.entrar-caixa{width:100%}}
.dia h2{margin-top:0}.dia .data{color:var(--vermelho)}
.quadro{border-collapse:collapse;width:100%;table-layout:fixed}.quadro th,.quadro td{border:2px solid #444;padding:8px;vertical-align:top;font-size:15px}
.quadro th{background:#eee;color:#222;font-size:16px}.quadro th.dia{text-align:center}.quadro td.equipe{background:#fafafa;font-weight:700}.quadro .trecho{color:var(--vermelho);font-weight:700}
.quadro .meta{color:var(--cinza);font-size:13px}.quadro .compo{font-weight:400;color:var(--cinza);font-size:12px}
.imprimir-cab{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:10px}.imprimir-cab h1{margin:0;font-size:26px}.imprimir-cab img{height:44px}
@media print{@page{size:A4 landscape;margin:10mm}.topo,.rodape,.acoes,.aviso,.so-tela{display:none!important}.conteudo{max-width:none;margin:0;padding:0}body{background:#fff}.quadro th,.quadro td{font-size:13px}}
.dia input[name$="_meta"]{min-width:90px}
details.aloc summary{cursor:pointer;color:var(--info);font-weight:600;white-space:nowrap}details.aloc .lista{max-height:180px;overflow-y:auto;border:1px solid var(--borda);border-radius:6px;padding:4px 6px;margin-top:4px;background:#fff;min-width:200px}
details.aloc .lista label{display:flex;align-items:center;gap:6px;font-weight:400;color:var(--texto);margin:2px 0;font-size:13px}
tr.atrasada td{background:#fdecea}
tr.abaixo select,tr.abaixo input[name$="_justificativa"]{border-color:var(--alerta);background:#fff8e6}
details.aloc .lista input.filtro{margin:2px 0 6px;padding:4px 6px;font-size:13px}
.quadro .fora,.fora{color:var(--alerta);font-weight:700;font-size:12px;text-transform:uppercase}
.quadro .bloco{margin-bottom:6px;padding-bottom:6px;border-bottom:1px dashed #bbb}.quadro .bloco:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
/* quadro detalhado "claro": um bloco por tarefa com ONDE (trecho), O QUE (atividade), META e espaço para anotar à mão FEITO e MOTIVO */
.quadro.claro td{padding:6px 7px}.quadro.claro td.equipe{vertical-align:top}.quadro .pacote{font-size:17px;font-weight:700;margin-bottom:4px}.quadro.claro .compo{font-size:12px;line-height:1.35}
.quadro .onde{color:var(--vermelho);font-weight:700;font-size:14px;line-height:1.3;margin-bottom:4px}.quadro .onde .rua{font-weight:400;color:#333;font-size:12px}
.quadro .oque{font-size:14px;line-height:1.3;margin-bottom:4px}.quadro .meta-grande{font-weight:700;font-size:14px;margin-bottom:6px}
.quadro .feito{border-top:1px dashed #999;padding-top:4px;font-size:11px;color:#555}.quadro .feito .linha{display:flex;gap:4px;align-items:flex-end;min-height:19px}.quadro .traco{flex:1;border-bottom:1px solid #888;height:15px}
.quadro.claro .bloco{margin-bottom:10px;padding-bottom:8px}
/* quadro resumido: bloco por pacote, uma linha por dia, X no dia */
.quadro.resumido .pacote-nome{font-size:15px;font-weight:700;margin-bottom:4px}.quadro.resumido .nomes{font-weight:400;font-size:13px}.quadro.resumido tr.linha-dia td{font-size:13px;padding:5px 7px;min-height:22px}
.quadro.resumido .dia-rotulo{display:inline-block;width:30px;font-weight:700;color:#555}.quadro.resumido td.x{text-align:center;font-weight:700;font-size:16px}
.quadro.resumido tr.linha-dia .meta{font-size:12px}

/* tela da obra: placa (cabeçalho escuro como a placa do canteiro), bancada da semana e referência do macro */
.placa{background:#2b2e31;color:#fff;border-radius:12px;padding:22px 26px 20px;margin-bottom:18px;border-bottom:4px solid var(--vermelho)}
.placa .linha1{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.placa h1{margin:0;font-size:30px;line-height:1.15;letter-spacing:-.01em;font-weight:800;color:#fff;max-width:26ch}
.placa .codigo{display:inline-block;border:2px solid rgba(255,255,255,.55);border-radius:6px;padding:6px 12px;font-weight:800;letter-spacing:.06em;color:#fff;white-space:nowrap}
.placa .cliente{color:#c9cdd2;margin-top:6px;font-size:15px}
.placa .ficha{display:flex;flex-wrap:wrap;gap:6px 36px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.18);font-size:14px}
.placa .ficha span{color:#a9aeb4}.placa .ficha b{color:#fff;font-weight:700}.placa .ficha .vencido{color:#ffb3b5}
.painel-obra{display:grid;grid-template-columns:7fr 5fr;gap:18px;align-items:start}
.bancada,.referencia{background:#fff;border:1px solid var(--borda);border-radius:12px;padding:20px 22px}
.bancada h2,.referencia h2{margin:0 0 4px;font-size:18px;color:var(--texto)}
.bancada .sub,.referencia .sub{color:var(--cinza);font-size:14px;margin:0 0 14px;text-align:left}
.semana-linha{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:16px;font-weight:600;margin-top:4px}
.semana-linha .pill{font-size:12px}.semana-prazo{color:var(--cinza);font-size:13px;margin:4px 0 14px}
.bancada .acoes{margin-top:0}.bancada .acoes button{min-width:190px}
.lista-botoes{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.lista-botoes a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:10px 12px 10px 14px;border:1.5px solid #c9ccd1;border-radius:8px;color:var(--texto);font-weight:600;text-decoration:none;background:#fff;transition:border-color .15s,color .15s}
.lista-botoes a:hover{border-color:var(--vermelho);color:var(--vermelho)}.lista-botoes svg{flex:none;width:18px;height:18px}
.bancada .titulo-lista{margin:22px 0 0;padding-top:16px;border-top:1px solid var(--borda);font-size:13px;color:var(--cinza);font-weight:700}
.referencia{background:#f7f8f9}.referencia p{margin:0 0 16px;text-align:left;color:#3c4046}
.referencia .acoes{margin-top:0}.referencia .nao{color:var(--cinza);font-size:13px;margin-top:8px}
@media (max-width:860px){.painel-obra{grid-template-columns:1fr}.placa{padding:18px 18px 16px}.placa h1{font-size:24px}.placa .ficha{gap:4px 20px}}
@media (prefers-reduced-motion:reduce){button,.lista-botoes a{transition:none}}
