:root{
  --bg:#1a1a1a; --card:#2a2a2a; --card-2:#232323; --border:#3a3a3a;
  --accent:#ff8c42; --accent-2:#ffb347; --text:#f0f0f0; --text-dim:#a8a8a8;
  --text-faint:#707070; --green:#3ddc84; --yellow:#ffd166; --red:#ff5d5d;
  --blue:#4ea1ff; --purple:#b18cff;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:'Segoe UI',Roboto,Arial,sans-serif;}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}

/* Top bar */
.topbar{display:flex;justify-content:space-between;align-items:center;
  padding:14px 24px;background:var(--card);border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:50;flex-wrap:wrap;gap:12px;}
.brand{font-size:18px;font-weight:600;}
.brand span{color:var(--accent);}
.nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.nav a{color:var(--text-dim);padding:8px 14px;border-radius:8px;font-size:14px;font-weight:500;}
.nav a:hover{background:var(--card-2);color:var(--text);text-decoration:none;}
.nav a.active{background:rgba(255,140,66,.15);color:var(--accent);}
.user-chip{font-size:13px;color:var(--text-dim);display:flex;align-items:center;gap:10px;}
.user-chip .role{background:var(--card-2);border:1px solid var(--border);
  padding:2px 8px;border-radius:20px;font-size:11px;text-transform:uppercase;}
.btn-logout{color:var(--red);border:1px solid var(--red);border-radius:8px;
  padding:6px 12px;font-size:12px;background:transparent;cursor:pointer;}
.btn-logout:hover{background:rgba(255,93,93,.12);}

.container{padding:24px;max-width:1500px;margin:0 auto;}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:8px;
  padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid transparent;}
.btn-primary{background:var(--accent);color:#1a1a1a;border-color:var(--accent);}
.btn-primary:hover{background:var(--accent-2);text-decoration:none;}
.btn-ghost{background:transparent;color:var(--accent);border-color:var(--accent);}
.btn-ghost:hover{background:rgba(255,140,66,.12);text-decoration:none;}
.btn-danger{background:transparent;color:var(--red);border-color:var(--red);}
.btn-danger:hover{background:rgba(255,93,93,.12);}
.btn-sm{padding:5px 10px;font-size:12px;}

/* Cards / panels */
.panel{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px;}
.panel-title{font-size:13px;text-transform:uppercase;letter-spacing:.5px;
  color:var(--text-dim);margin:0 0 14px;font-weight:600;}

/* Forms */
label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:5px;}
input,select,textarea{width:100%;background:var(--card-2);color:var(--text);
  border:1px solid var(--border);border-radius:6px;padding:9px 11px;font-size:14px;outline:none;
  font-family:inherit;}
input:focus,select:focus,textarea:focus{border-color:var(--accent);}
textarea{resize:vertical;min-height:60px;}
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.form-row{margin-bottom:14px;}
.field{margin-bottom:4px;}
.help{font-size:11px;color:var(--text-faint);margin-top:4px;}

/* Tables */
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:13px;}
thead th{text-align:left;color:var(--text-dim);font-weight:600;text-transform:uppercase;
  font-size:11px;letter-spacing:.3px;padding:9px 10px;border-bottom:1px solid var(--border);white-space:nowrap;}
tbody td{padding:9px 10px;border-bottom:1px solid #2f2f2f;white-space:nowrap;}
tbody tr:hover{background:#313131;}
.num{text-align:right;font-variant-numeric:tabular-nums;}
.pos{color:var(--green);} .neg{color:var(--red);} .zero{color:var(--text-faint);}

/* Badges */
.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;}
.badge-ATIVO{background:rgba(61,220,132,.15);color:var(--green);}
.badge-ENCERRADO{background:rgba(255,93,93,.12);color:var(--red);}
.badge-SUSPENSO{background:rgba(255,209,102,.15);color:var(--yellow);}
.badge-OUTRO{background:rgba(78,161,255,.15);color:var(--blue);}

/* Month tabs */
.month-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px;}
.month-tabs a{padding:8px 14px;border-radius:8px;font-size:13px;color:var(--text-dim);
  background:var(--card);border:1px solid var(--border);}
.month-tabs a:hover{color:var(--text);text-decoration:none;border-color:var(--accent);}
.month-tabs a.active{background:var(--accent);color:#1a1a1a;border-color:var(--accent);font-weight:600;}

/* Flash */
.flash{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;}
.flash-ok{background:rgba(61,220,132,.12);color:var(--green);border:1px solid rgba(61,220,132,.3);}
.flash-erro{background:rgba(255,93,93,.12);color:var(--red);border:1px solid rgba(255,93,93,.3);}

/* KPI grid */
.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px;}
.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:12px;
  padding:16px 18px;position:relative;overflow:hidden;}
.kpi-accent-bar{position:absolute;top:0;left:0;right:0;height:3px;}
.kpi-label{font-size:11.5px;color:var(--text-dim);margin:0;font-weight:500;}
.kpi-value{font-size:24px;font-weight:700;margin:6px 0 0;line-height:1.1;}
.kpi-sub{font-size:11px;color:var(--text-faint);margin:5px 0 0;}

/* Charts */
.charts-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px;margin-bottom:18px;}
.chart-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;}
.chart-title{font-size:14px;font-weight:600;margin:0 0 12px;}

/* Filters bar */
.filters{display:grid;grid-template-columns:repeat(5,1fr) auto;gap:12px;align-items:end;margin-bottom:18px;}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;}
.login-box{width:100%;max-width:380px;background:var(--card);border:1px solid var(--border);
  border-radius:14px;padding:32px;}
.login-box h1{font-size:20px;margin:0 0 4px;}
.login-box h1 span{color:var(--accent);}
.login-box p.sub{color:var(--text-dim);font-size:13px;margin:0 0 24px;}

.empty{text-align:center;color:var(--text-faint);padding:40px;font-size:14px;}
::-webkit-scrollbar{height:9px;width:9px;}
::-webkit-scrollbar-track{background:var(--card-2);}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px;}

@media(max-width:1100px){
  .form-grid{grid-template-columns:repeat(2,1fr);}
  .kpi-grid{grid-template-columns:repeat(2,1fr);}
  .charts-row{grid-template-columns:1fr;}
  .filters{grid-template-columns:1fr 1fr;}
}
