:root{--bg:#f4f6f8;--card:#fff;--txt:#1b2430;--mut:#667085;--bord:#d5dbe3;--pri:#0b6bcb;--ok:#0a7a4b;--warn:#b26a00;--err:#c0262d}@media (prefers-color-scheme:dark){:root{--bg:#11161c;--card:#1a212a;--txt:#e6ebf1;--mut:#98a2b3;--bord:#2c3642;--pri:#4da3ff;--ok:#3ccf91;--warn:#f0a63a;--err:#ff6b6b}}*{box-sizing:border-box}body{background:var(--bg);color:var(--txt);margin:0;font:14px/1.4 system-ui,sans-serif}header{background:var(--card);border-bottom:1px solid var(--bord);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 20px;display:flex}header h1{margin:0;font-size:18px}header .sp{flex:1}main{gap:16px;max-width:1280px;margin:0 auto;padding:16px;display:grid}.card{background:var(--card);border:1px solid var(--bord);border-radius:8px;padding:14px}.card h2{margin:0 0 10px;font-size:15px}.grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}label{color:var(--mut);gap:3px;font-size:12px;display:grid}input,select,button{font:inherit;border:1px solid var(--bord);background:var(--card);height:28px;color:var(--txt);border-radius:6px;padding:0 8px}input[type=number]{text-align:right}button{cursor:pointer}button.pri{background:var(--pri);border-color:var(--pri);color:#fff}button.lnk{color:var(--err);background:0 0;border:0;padding:0 4px}.tabela{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--bord);text-align:left;white-space:nowrap;padding:4px 6px}th{color:var(--mut);font-size:12px;font-weight:600}td.n,th.n{text-align:right}td input,td select{width:100%;min-width:60px}td.desc input{min-width:150px}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.tabs button.on{background:var(--pri);color:#fff;border-color:var(--pri)}.al{border-left:4px solid var(--mut);background:var(--bg);border-radius:6px;margin:4px 0;padding:6px 10px}.al.erro{border-color:var(--err)}.al.aviso{border-color:var(--warn)}.al.info{border-color:var(--pri)}.kpis{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:10px;display:grid}.kpi{background:var(--bg);border-radius:6px;padding:8px 10px}.kpi b{font-size:18px;display:block}.kpi span{color:var(--mut);font-size:12px}.svgbox{background:#fff;border-radius:6px;padding:6px;overflow-x:auto}.msg{color:var(--err)}.mut{color:var(--mut)}@media print{header,.noprint,.editor{display:none!important}body{color:#000;background:#fff}.card{break-inside:avoid;border:0;padding:0}.printall>div{display:block!important}}.barra{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.barra button.on{background:var(--pri);color:#fff;border-color:var(--pri)}.barra .sp{flex:1}.plantawrap{grid-template-columns:1fr 280px;gap:10px;display:grid}svg.planta{background:var(--bg);border:1px solid var(--bord);-webkit-user-select:none;user-select:none;border-radius:6px;width:100%}.lateral{max-height:600px;overflow:auto}.pn{gap:8px;display:grid}.pn h3{margin:0;font-size:14px}.pn .res{background:var(--bg);border-radius:6px;gap:3px;padding:8px;font-size:13px;display:grid}@media (width<=900px){.plantawrap{grid-template-columns:1fr}}.xy{grid-template-columns:1fr 1fr;gap:6px;display:grid}.linha{gap:6px;display:flex}.legenda{border-top:1px solid var(--bord);color:var(--mut);flex-wrap:wrap;gap:4px 14px;margin-top:8px;padding-top:8px;font-size:12px;display:flex}.legenda b{color:var(--txt)}.pn select optgroup{font-style:normal}.lista{border:1px solid var(--bord);border-radius:6px;gap:3px;max-height:190px;padding:6px;display:grid;overflow:auto}.lista b{font-size:12px}label.chk{color:var(--txt);align-items:center;gap:6px;font-size:12px;display:flex}label.chk input{width:auto;height:auto}.chip{border-radius:2px;flex:none;width:10px;height:10px;display:inline-block}button.lnk.mini{height:auto;color:var(--pri);padding:0 2px;font-size:11px}label.chk .sp{flex:1}tr.grupo td{background:var(--bg);letter-spacing:.02em;font-size:12px;font-weight:700}.abas{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.abas button{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.abas button.on{background:var(--pri);color:#fff;border-color:var(--pri)}tr.sel td{background:color-mix(in srgb, var(--pri) 12%, transparent)}.dc{border-top:1px solid var(--bord);margin-top:12px;padding-top:10px}.dc h3{margin:0 0 8px;font-size:13px}.dc table input{width:90px}.simb{border-top:1px solid var(--bord);margin-top:8px;padding-top:6px}.simb-grade{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2px 14px;margin-top:4px;display:grid}.simb-item{color:var(--txt);align-items:center;gap:8px;font-size:12.5px;display:flex}.simb-item span{line-height:1.25}.simb-item svg{flex:none}.blocos{gap:8px;max-height:420px;padding-right:4px;display:grid;overflow:auto}.blocos section{gap:4px;display:grid}.blocos section>b{color:var(--mut);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px}.blocos-grade{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:4px;display:grid}.bloco{text-align:center;height:auto;color:var(--txt);background:var(--bg);justify-items:center;gap:2px;padding:4px 2px;font-size:10.5px;line-height:1.15;display:grid}.bloco.largo{grid-column:span 2}.bloco:hover{border-color:var(--pri)}.bloco.on{border-color:var(--pri);background:var(--card);box-shadow:inset 0 0 0 1px var(--pri);color:var(--pri)}.bloco svg{color:inherit}.bloco span{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.login{place-items:center;min-height:100vh;padding:20px;display:grid}.login form{gap:10px;width:min(360px,100%);display:grid}.login h1{margin:0;font-size:22px}.login p{margin:0 0 6px;font-size:13px}.login label{gap:4px;font-size:13px;display:grid}.login input{height:32px}.tab th{text-align:left;color:var(--mut);border-bottom:1px solid var(--bord);padding:6px 8px;font-weight:600}.tab td{border-bottom:1px solid var(--bord);padding:5px 8px}.tab .acoes{justify-content:flex-end;gap:6px;display:flex}.modal{z-index:50;background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal form{gap:8px;width:min(420px,100%);max-height:90vh;display:grid;overflow:auto}.modal h3{margin:0;font-size:15px}.modal label{gap:4px;font-size:13px;display:grid}.modal label.chk{align-items:center;gap:6px;display:flex}
