*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--cor-primaria: #1B3A5C;--cor-secundaria: #E8961A;--cor-fundo: #F0F2F5;--cor-card: #FFFFFF;--cor-texto: #1a1a2e;--cor-texto-mudo: #6B7280;--cor-borda: #E5E7EB;--cor-sidebar: #0F2340;--cor-hover: rgba(255,255,255,.08);--cor-ativo: rgba(232,150,26,.15);--raio: 10px;--sombra: 0 1px 4px rgba(0,0,0,.08);--sombra-md: 0 4px 16px rgba(0,0,0,.12);--fonte: "Segoe UI", system-ui, sans-serif}body{font-family:var(--fonte);background:var(--cor-fundo);color:var(--cor-texto);min-height:100vh;font-size:14px}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--fonte)}input,select,textarea{font-family:var(--fonte);font-size:14px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.flex{display:flex}.flex-1{flex:1}.col{flex-direction:column}.gap-4{gap:1rem}.gap-2{gap:.5rem}.items-center{align-items:center}.justify-between{justify-content:space-between}.text-muted{color:var(--cor-texto-mudo)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card{background:var(--cor-card);border-radius:var(--raio);box-shadow:var(--sombra);padding:1.25rem}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge-verde{background:#dcfce7;color:#16a34a}.badge-vermelho{background:#fee2e2;color:#dc2626}.badge-amarelo{background:#fef9c3;color:#ca8a04}.badge-cinza{background:#f3f4f6;color:#6b7280}.badge-azul{background:#dbeafe;color:#2563eb}.badge-roxo{background:#ede9fe;color:#7c3aed}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:600;border:none;transition:all .15s}.btn-primario{background:var(--cor-primaria);color:#fff}.btn-primario:hover{background:#234d7a}.btn-secundario{background:var(--cor-fundo);color:var(--cor-texto);border:1px solid var(--cor-borda)}.btn-secundario:hover{background:var(--cor-borda)}.btn-perigo{background:#fee2e2;color:#dc2626}.btn-perigo:hover{background:#fecaca}.btn-sm{padding:5px 10px;font-size:12px}.input{width:100%;padding:9px 12px;border:1px solid var(--cor-borda);border-radius:8px;background:#fff;font-size:14px;outline:none;transition:border-color .15s}.input:focus{border-color:var(--cor-primaria)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.modal{background:#fff;border-radius:12px;padding:1.5rem;width:100%;max-width:480px;box-shadow:var(--sombra-md)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--cor-borda)}th{font-size:12px;font-weight:700;color:var(--cor-texto-mudo);text-transform:uppercase;letter-spacing:.5px}tr:hover td{background:#f9fafb}.spinner{width:28px;height:28px;border:3px solid var(--cor-borda);border-top-color:var(--cor-primaria);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.switch{position:relative;display:inline-block;width:40px;height:22px}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:#cbd5e1;border-radius:22px;transition:.2s}.switch-slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+.switch-slider{background:#22c55e}.switch input:checked+.switch-slider:before{transform:translate(18px)}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{padding:12px 20px;border-radius:10px;background:#1b3a5c;color:#fff;font-size:13px;font-weight:500;box-shadow:var(--sombra-md);animation:slideIn .2s ease}.toast.erro{background:#dc2626}.toast.sucesso{background:#16a34a}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}
