:root{--bg: #0a0a14;--bg2: #101020;--card: rgba(20, 21, 40, .62);--hair: rgba(148, 163, 216, .16);--ink: #eceef8;--fg: #eceef8;--muted: #9aa3c2;--accent: #a3e635;--accent-ink: #121804;--blue: #60a5fa;--danger: #f87171;--warning: #fbbf24;--ok: #34d399;--verde: #34d399;--amarelo: #fbbf24;--vermelho: #f87171;--s1: 6px;--s2: 12px;--s3: 20px;--s4: 32px;--r1: 10px;--r2: 16px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(1100px 700px at 12% -8%,rgba(124,92,255,.14) 0%,transparent 55%),radial-gradient(900px 650px at 108% 12%,rgba(45,212,191,.09) 0%,transparent 55%),linear-gradient(180deg,#0a0a14,#12121f);background-attachment:fixed;color:var(--ink);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}*{scrollbar-width:thin;scrollbar-color:rgba(154,163,194,.28) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#9aa3c238;border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:#9aa3c266}::selection{background:#a3e6354d}.app{display:flex;min-height:100vh}.rail{width:64px;background:#0a0a16b8;backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border-right:1px solid var(--hair);display:flex;flex-direction:column;gap:var(--s1);padding:var(--s2) 0;transition:width .15s ease;overflow:hidden}.rail:hover{width:210px}.rail .brand{display:flex;align-items:center;gap:10px;padding:0 18px var(--s2);font-weight:800;letter-spacing:.2px}.rail a{display:flex;align-items:center;gap:14px;padding:10px 20px;color:var(--muted);text-decoration:none;white-space:nowrap;font-size:14px;transition:color .15s ease,background .15s ease}.rail a:hover,.rail a.active{color:var(--ink);background:#a3e6350f}.rail a.active{box-shadow:inset 3px 0 0 var(--accent);color:var(--accent);text-shadow:0 0 18px rgba(163,230,53,.35)}.content{flex:1;padding:var(--s3);max-width:1200px;margin:0 auto;width:100%}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s3)}.hello{font-size:20px;font-weight:700;letter-spacing:.2px}.card{background:var(--card);border:1px solid var(--hair);border-radius:var(--r2);padding:var(--s3);margin-bottom:var(--s2);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 1px #ffffff08 inset,0 8px 28px #04051059;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.card:hover{border-color:#a3e63538;box-shadow:0 1px #ffffff0a inset,0 12px 36px #04051080;transform:translateY(-1px)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s2)}.tile{background:linear-gradient(180deg,#ffffff09,#ffffff03);border:1px solid var(--hair);border-radius:var(--r1);padding:var(--s2);transition:border-color .18s ease,transform .18s ease}.tile:hover{border-color:#a3e63540;transform:translateY(-1px)}.tile .big{font-size:27px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.tile .lbl{color:var(--muted);font-size:12px;margin-top:2px}.btn{background:linear-gradient(180deg,#b9f159 0%,var(--accent) 55%,#8fd420 100%);color:var(--accent-ink);border:none;border-radius:var(--r1);padding:10px 16px;font-weight:700;cursor:pointer;font-size:14px;box-shadow:0 2px 12px #a3e6352e,0 1px #ffffff40 inset;transition:box-shadow .18s ease,transform .12s ease,filter .12s ease}.btn:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 4px 20px #a3e63559,0 1px #ffffff40 inset}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn.ghost{background:#ffffff08;color:var(--ink);border:1px solid var(--hair);box-shadow:none}.btn.ghost:hover{border-color:#a3e63559;box-shadow:0 0 14px #a3e6351a;filter:none}.btn.danger{background:linear-gradient(180deg,#fb8f8f,var(--danger));color:#23090b;box-shadow:0 2px 12px #f8717138}.inp,select.inp,textarea.inp{width:100%;background:#080914a6;border:1px solid var(--hair);color:var(--ink);border-radius:var(--r1);padding:10px 12px;font-size:14px;transition:border-color .15s ease,box-shadow .15s ease;font-variant-numeric:tabular-nums}.inp:focus,select.inp:focus,textarea.inp:focus{outline:none;border-color:#a3e6358c;box-shadow:0 0 0 3px #a3e6351f}.inp::placeholder{color:#9aa3c28c}.slabel{display:block;color:var(--muted);font-size:12px;margin:var(--s2) 0 6px}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#ffffff0d;color:var(--muted);border:1px solid rgba(255,255,255,.05)}.semaforo{display:inline-block;width:12px;height:12px;border-radius:50%}.semaforo.verde{background:var(--verde);box-shadow:0 0 10px var(--verde),0 0 22px #34d39959}.semaforo.amarelo{background:var(--amarelo);box-shadow:0 0 10px var(--amarelo),0 0 22px #fbbf2459}.semaforo.vermelho{background:var(--vermelho);box-shadow:0 0 10px var(--vermelho),0 0 22px #f8717159}.pill.verde{color:var(--verde);background:#34d3991a;border-color:#34d3994d;box-shadow:0 0 12px #34d3991f}.pill.amarelo{color:var(--amarelo);background:#fbbf241a;border-color:#fbbf244d;box-shadow:0 0 12px #fbbf241f}.pill.vermelho{color:var(--vermelho);background:#f871711a;border-color:#f871714d;box-shadow:0 0 12px #f871711f}.muted{color:var(--muted)}.row{display:flex;gap:var(--s2);align-items:center}.grow{flex:1}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--hair);font-size:14px}th{color:var(--muted);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.6px}tbody tr{transition:background .12s ease}tbody tr:hover{background:#ffffff06}.prog-track{height:8px;background:#ffffff12;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.04)}.prog-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#8fd420,var(--accent) 40%,#d9ff8a 50%,var(--accent) 60%,#8fd420);background-size:200% 100%;animation:progShine 1.6s linear infinite;box-shadow:0 0 12px #a3e6358c;transition:width .6s ease}@keyframes progShine{0%{background-position:200% 0}to{background-position:0% 0}}.toast-wrap{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:9999}.toast{background:#121324e0;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border:1px solid var(--hair);border-left:4px solid var(--blue);padding:12px 16px;border-radius:var(--r1);max-width:340px;box-shadow:0 10px 30px #0405108c}.toast.ok{border-left-color:var(--ok);box-shadow:0 10px 30px #0405108c,0 0 18px #34d3991f}.toast.err{border-left-color:var(--danger);box-shadow:0 10px 30px #0405108c,0 0 18px #f871711f}.mobile{max-width:480px;margin:0 auto;padding:var(--s2)}.mobile .big-btn{width:100%;padding:18px;font-size:18px;border-radius:var(--r2);margin-top:var(--s2)}.menu-btn,.menu-close{display:none;background:transparent;border:0;color:var(--ink);cursor:pointer;padding:6px}.menu-overlay{display:none}@media(max-width:640px){.content{padding:var(--s2)}.rail{position:fixed;top:0;left:0;height:100vh;width:230px;transform:translate(-100%);transition:transform .22s ease;z-index:60;box-shadow:2px 0 18px #0000008c;background:#0a0a16eb}.rail.aberto{transform:translate(0)}.rail{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:24px}.rail,.rail:hover{width:230px}.rail .brand{justify-content:space-between;padding:0 14px var(--s2);gap:10px}.rail .brand span{display:inline!important}.rail a{justify-content:flex-start!important;padding:13px 18px!important;gap:14px!important}.rail a span{display:inline!important}.rail a.sair{margin-top:8px}.menu-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#02020899;z-index:55;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.menu-btn,.menu-close{display:inline-flex;align-items:center}.top{gap:10px}.card:hover,.tile:hover,.btn:hover{transform:none}}.rail{width:68px;align-items:stretch}.rail:hover{width:216px}.rail .brand{justify-content:center;padding:0 0 var(--s2);gap:0}.rail:hover .brand{justify-content:flex-start;padding:0 18px var(--s2);gap:10px}.rail:not(:hover) .brand span{display:none}.rail a{justify-content:center;padding:11px 0;gap:0;position:relative}.rail:hover a{justify-content:flex-start;padding:11px 20px;gap:14px}.rail:not(:hover) a span{display:none}.rail a svg{flex-shrink:0}.rail a.sair{margin-top:auto}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .9s linear infinite}.card[style*=dashed]{border-color:#a3e63547}
