*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--azul:#0c447c;--azul-claro:#185fa5;--azul-bg:#e6f1fb;--verde:#3b6d11;--verde-bg:#eaf3de;--vermelho:#a32d2d;--vermelho-bg:#fcebeb;--amarelo:#854f0b;--amarelo-bg:#faeeda;--cinza:#5f5e5a;--cinza-bg:#f1efe8;--lilas:#3c3489;--lilas-bg:#eeedfe;--borda:#e0ddd6;--fundo:#f8f7f4;--branco:#fff;--texto:#2c2c2a;--texto-sec:#5f5e5a;--texto-ter:#888780}body{color:var(--texto);background:var(--fundo);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}button{cursor:pointer;font-family:inherit;font-size:13px}input,select,textarea{font-family:inherit;font-size:13px}.btn{border:.5px solid var(--borda);background:var(--branco);color:var(--texto);border-radius:8px;padding:7px 14px;font-weight:500;transition:background .15s}.btn:hover{background:var(--cinza-bg)}.btn-primary{background:var(--azul);color:#fff;border-color:var(--azul)}.btn-primary:hover{background:var(--azul-claro)}.btn-success{background:var(--verde);color:#fff;border-color:var(--verde);padding:5px 10px;font-size:12px}.btn-sm{padding:4px 8px;font-size:11px}.btn-danger{background:var(--vermelho);color:#fff;border-color:var(--vermelho);padding:4px 8px;font-size:11px}.badge{border-radius:6px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.badge-urgente{background:var(--vermelho-bg);color:var(--vermelho)}.badge-atencao{background:var(--amarelo-bg);color:var(--amarelo)}.badge-preventivo{background:var(--verde-bg);color:var(--verde)}.badge-baixa{background:var(--azul-bg);color:var(--azul)}.badge-benfeitoria{background:var(--lilas-bg);color:var(--lilas)}.badge-pendente{background:var(--amarelo-bg);color:var(--amarelo)}.badge-andamento{background:var(--azul-bg);color:var(--azul)}.badge-realizado{background:var(--verde-bg);color:var(--verde)}.badge-nrealizado{background:var(--cinza-bg);color:var(--cinza)}.card{background:var(--branco);border:.5px solid var(--borda);border-radius:12px;margin-bottom:12px;padding:16px}table{border-collapse:collapse;width:100%;font-size:12px}th{background:var(--cinza-bg);text-align:left;color:var(--texto-sec);border-bottom:.5px solid var(--borda);padding:8px 10px;font-weight:500}td{border-bottom:.5px solid var(--borda);vertical-align:middle;padding:8px 10px}tr:last-child td{border-bottom:none}.form-group{margin-bottom:12px}.form-group label{color:var(--texto-sec);margin-bottom:4px;font-size:12px;display:block}.form-group input,.form-group select,.form-group textarea{border:.5px solid var(--borda);background:var(--branco);width:100%;color:var(--texto);border-radius:8px;padding:8px 10px}.form-group textarea{resize:vertical;height:80px}.modal-overlay{z-index:200;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--branco);border:.5px solid var(--borda);border-radius:12px;width:440px;max-width:95vw;max-height:90vh;padding:24px;overflow-y:auto}.modal h3{margin-bottom:16px;font-size:16px;font-weight:500}.page-title{margin-bottom:4px;font-size:18px;font-weight:500}.page-sub{color:var(--texto-sec);margin-bottom:16px;font-size:12px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;display:grid}.stat{background:var(--cinza-bg);border-radius:8px;padding:12px}.stat-n{font-size:24px;font-weight:500}.stat-l{color:var(--texto-sec);margin-top:2px;font-size:11px}.alert-info{background:var(--azul-bg);color:var(--azul);border:.5px solid #b5d4f4;border-radius:8px;margin-bottom:14px;padding:10px 14px;font-size:12px}.cal-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.cal-item{background:var(--cinza-bg);border:.5px solid var(--borda);cursor:pointer;border-radius:8px;padding:10px;transition:border-color .15s}.cal-item:hover{border-color:var(--azul)}.cal-item.done{background:var(--verde-bg);border-color:var(--verde)}.cal-num{color:var(--texto-ter);font-size:10px}.cal-desc{margin-top:3px;font-size:11px;font-weight:500;line-height:1.3}.cal-status{margin-top:6px;font-size:10px}.cal-item.done .cal-status{color:var(--verde)}.cal-item:not(.done) .cal-status{color:var(--texto-ter)}
