:root{
  --bg:#f3f4f6;
  --panel:#ffffff;
  --panel2:#f8fafc;
  --line:#d8dee9;
  --muted:#64748b;
  --text:#111827;
  --purple:#0057d9;
  --purple2:#0b7cff;
  --green:#16a34a;
  --red:#dc2626;
  --orange:#ea580c;
  --yellow:#ca8a04;
  --blue:#2563eb;
}

*{box-sizing:border-box}

body{
  margin:0;
  background:
    radial-gradient(circle at 20% 0%,rgba(0,87,217,.10),transparent 26%),
    radial-gradient(circle at 90% 15%,rgba(37,99,235,.08),transparent 28%),
    linear-gradient(180deg,#f8fafc 0%,#eef2f7 100%);
  color:var(--text);
  font-family:Inter,Segoe UI,Arial,sans-serif;
}

a{color:inherit;text-decoration:none}

.app{
  display:grid;
  grid-template-columns:86px 1fr;
  min-height:100vh;
}

.sidebar{
  border-right:1px solid var(--line);
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(18px);
  padding:18px 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:25px;
  box-shadow:8px 0 28px rgba(15,23,42,.05);
}

.logo{
  width:42px;
  height:42px;
  border:2px solid #e5e7eb;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-weight:900;
  letter-spacing:-2px;
  background:#fff;
}

.nav-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  color:#64748b;
  font-size:23px;
  opacity:.75;
  cursor:pointer;
}

.nav-icon.active{
  color:var(--purple);
  opacity:1;
  filter:drop-shadow(0 0 8px rgba(0,87,217,.35));
}

.main{padding:22px 28px 34px}

.topbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:22px;
  flex-wrap:wrap;
}

.title-wrap{display:flex;gap:16px;align-items:center}
.rocket{font-size:28px;color:var(--purple)}
h1{font-size:31px;line-height:1;margin:0;font-weight:850;color:#111827}

.actions{display:flex;align-items:center;gap:16px;color:#475569}

.update{
  border:1px solid var(--purple);
  color:var(--purple);
  border-radius:10px;
  padding:12px 23px;
  background:rgba(0,87,217,.08);
  font-weight:700;
  cursor:pointer;
}

.pausebtn{
  border:1px solid var(--line);
  color:#334155;
  border-radius:10px;
  padding:12px 18px;
  background:rgba(255,255,255,.7);
  font-weight:700;
  cursor:pointer;
}

.tabs{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  border-bottom:1px solid var(--line);
  margin-bottom:20px;
}

.tab{
  min-height:58px;
  border:1px solid var(--line);
  border-bottom:0;
  border-radius:13px 13px 0 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  color:#475569;
  font-size:18px;
  letter-spacing:.3px;
  background:linear-gradient(180deg,#ffffff,#f3f6fb);
  position:relative;
  cursor:pointer;
}

.tab.active{color:var(--purple);font-weight:800}

.tab.active:after{
  content:"";
  position:absolute;
  bottom:0;
  width:66%;
  height:3px;
  border-radius:99px;
  background:linear-gradient(90deg,#0057d9,#0b7cff);
}

.kpis{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:16px;
  margin-bottom:18px;
}

.card,.chart-card,.bottom-card{
  border:1px solid var(--line);
  border-radius:12px;
  background:linear-gradient(180deg,#ffffff,#f8fafc);
  box-shadow:0 18px 50px rgba(15,23,42,.08),inset 0 1px 0 rgba(255,255,255,.85);
}

.kpi{
  padding:18px 16px;
  display:flex;
  gap:14px;
  align-items:center;
  min-height:105px;
}

.icon-circle{
  width:58px;
  height:58px;
  border-radius:50%;
  border:2px solid var(--purple);
  display:grid;
  place-items:center;
  font-size:30px;
  color:var(--purple);
  background:rgba(0,87,217,.08);
  box-shadow:0 0 0 5px rgba(0,87,217,.06),0 0 18px rgba(0,87,217,.22);
}

.kpi-title{
  font-size:12px;
  color:#64748b;
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:.5px;
}

.kpi-value{
  font-size:23px;
  font-weight:900;
  margin:8px 0;
  color:#111827;
}

.grid-main{
  display:grid;
  grid-template-columns:1fr 1fr 1.43fr;
  gap:18px;
  margin-bottom:16px;
}

.grid-wide{
  display:grid;
  grid-template-columns:1.45fr 1fr;
  gap:18px;
  margin-bottom:20px;
}

.chart-card{padding:18px;position:relative}

.chart-title{
  color:#003f9e;
  font-size:16px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.8px;
  margin-bottom:18px;
}

.rank-row{
  display:grid;
  grid-template-columns:24px minmax(120px,1fr) 1.25fr 82px;
  gap:11px;
  align-items:center;
  margin:11px 0;
  font-size:12px;
  color:#334155;
}

.rank-num{font-size:15px;color:#111827}
.rank-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.rank-bar{
  height:15px;
  background:rgba(0,87,217,.12);
  border-radius:2px;
  overflow:hidden;
}

.rank-bar span,.thin-progress span{
  display:block;
  height:100%;
  background:linear-gradient(90deg,#0057d9,#0b7cff);
  border-radius:2px;
}

.rank-value{text-align:right;color:#111827;font-size:12px}

.export-btn{
  position:absolute;
  top:10px;
  right:10px;
  width:24px;
  height:24px;
  border-radius:50%;
  border:1px solid var(--line);
  background:rgba(255,255,255,.8);
  color:#64748b;
  font-size:12px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:.55;
  transition:opacity .15s,background .15s;
  z-index:5;
  padding:0;
}

.export-btn:hover{opacity:1;background:rgba(0,87,217,.12);color:#111827}
.export-btn:disabled{opacity:.25;cursor:wait}

.export-page-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 18px;
  margin-bottom:14px;
  font-size:13px;
  color:#475569;
}

.export-page-btn{
  border:1px solid var(--purple);
  color:var(--purple);
  border-radius:10px;
  padding:9px 16px;
  background:rgba(0,87,217,.08);
  font-weight:700;
  cursor:pointer;
  font-size:13px;
}

.export-page-btn:hover{background:rgba(0,87,217,.15)}
.export-page-btn:disabled{opacity:.5;cursor:wait}

.vchart,.month-chart{
  height:240px;
  display:flex;
  align-items:flex-end;
  gap:22px;
  padding:5px 4px 0;
  border-left:1px solid #cbd5e1;
  border-bottom:1px solid #cbd5e1;
}

.month-chart{height:195px;gap:18px;padding:8px 14px}

.vbar-item,.month-bar{
  flex:1;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-end;
  min-width:34px;
  text-align:center;
}

.vbar-value,.month-value{
  font-size:12px;
  font-weight:800;
  margin-bottom:6px;
  white-space:nowrap;
  color:#111827;
}

.vbar-track{
  height:170px;
  width:50px;
  display:flex;
  align-items:flex-end;
}

.vbar-track span,.month-fill{
  display:block;
  width:100%;
  border-radius:4px 4px 0 0;
  background:linear-gradient(180deg,#0b7cff,#0057d9);
}

.vbar-label,.month-label{
  font-size:12px;
  color:#475569;
  text-align:center;
  margin-top:8px;
  min-height:30px;
}

.pay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pay-grid-2col{grid-template-columns:repeat(2,1fr)}

.pay-card{
  border:1px solid var(--line);
  border-radius:10px;
  background:#ffffff;
  padding:17px 14px;
  text-align:center;
}

.mini-icon{color:var(--purple);font-size:27px;margin-bottom:14px}
.pay-label{font-size:13px;color:#334155;margin-bottom:14px}
.pay-value{font-size:20px;font-weight:900;margin-bottom:18px;color:#111827}

.thin-progress{
  height:5px;
  background:#e2e8f0;
  border-radius:99px;
  overflow:hidden;
}

.bottom{display:grid;grid-template-columns:1.2fr repeat(5,1fr);gap:16px}

.bottom-card{
  padding:20px 18px;
  min-height:118px;
  display:flex;
  align-items:center;
  gap:16px;
}

.alert{
  background:linear-gradient(180deg,#fff1f2,#ffe4e6);
  border-color:#fecdd3;
}

.bottom-icon{font-size:42px;color:var(--purple)}
.bottom-title{font-size:12px;color:#475569;text-transform:uppercase;font-weight:850}
.bottom-value{font-size:23px;font-weight:900;margin:8px 0;color:#111827}
.bottom-sub{font-size:13px;color:#64748b}

.empty{
  border:1px dashed var(--line);
  border-radius:10px;
  padding:18px;
  color:#64748b;
  text-align:center;
}

.list-table{
  width:100%;
  font-size:12px;
  border-collapse:collapse;
}

.list-table th{
  text-align:left;
  color:#64748b;
  font-weight:700;
  padding:4px 0 4px 0;
  font-size:11px;
  text-transform:uppercase;
  position:sticky;
  top:0;
  background:#ffffff;
}

.list-table td{
  padding:7px 6px 7px 0;
  border-top:1px solid #e2e8f0;
  color:#1e293b;
}

.list-table td.num{text-align:right;font-weight:700}

.scroll-list{
  max-height:320px;
  overflow-y:auto;
  padding-right:12px;
  scrollbar-gutter:stable;
}

.scroll-section{max-height:640px;overflow-y:auto;padding-right:8px}
.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid-1col{display:grid;grid-template-columns:1fr;gap:14px}
.grupo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}

.pending-card{
  border:1px dashed var(--line);
  border-radius:10px;
  background:#f8fafc;
  padding:17px 14px;
  text-align:center;
}

.pending-card .pay-label{font-size:13px;color:#334155;margin-bottom:10px}
.pending-card .pay-value{font-size:14px;color:#64748b;font-style:italic}

.page{display:none}
.page.active{display:block}

.login-overlay{
  position:fixed;
  inset:0;
  z-index:3000;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at top,rgba(0,87,217,.18),transparent 40%),
    linear-gradient(180deg,#f8fafc,#e5e7eb);
}

.login-box{
  width:min(92vw,420px);
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,#ffffff,#f8fafc);
  padding:30px;
  text-align:center;
  box-shadow:0 24px 80px rgba(15,23,42,.18);
}

.login-box h1{font-size:22px;margin:0 0 8px;color:#111827}
.login-box p{color:var(--muted);font-size:13px;margin:0 0 16px}

.login-box input{
  width:100%;
  padding:14px;
  border-radius:10px;
  border:1px solid #cbd5e1;
  background:#ffffff;
  color:#111827;
  font-size:16px;
  text-align:center;
  outline:none;
  margin-bottom:10px;
}

.login-box button{
  width:100%;
  border:0;
  border-radius:10px;
  background:linear-gradient(90deg,#0057d9,#0b7cff);
  color:white;
  padding:14px;
  font-size:16px;
  font-weight:800;
  cursor:pointer;
}

#erroLogin{
  min-height:20px;
  color:#dc2626;
  font-weight:700;
  margin-top:8px;
  font-size:13px;
}

.loading-overlay{
  position:fixed;
  inset:0;
  z-index:2500;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f8fafc;
  color:#111827;
  font-size:16px;
}

@media(max-width:1350px){
  .kpis{grid-template-columns:repeat(3,1fr)}
  .grid-main,.grid-wide,.bottom{grid-template-columns:1fr}
  .grupo-grid{grid-template-columns:1fr}
  .pay-grid{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:1024px){
  .grid-2col{grid-template-columns:1fr}
}

@media(max-width:760px){
  .app{grid-template-columns:1fr}
  .sidebar{display:none}
  .main{padding:18px 14px}
  .tabs{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr}
  .scroll-list{max-height:260px}
  .scroll-section{max-height:480px}
  .pay-grid,.pay-grid-2col{grid-template-columns:1fr}
}

.race-list{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.race-row{
  display:grid;
  grid-template-columns:28px minmax(130px,220px) 1fr 96px;
  gap:12px;
  align-items:center;
  font-size:12px;
  color:#334155;
}

.race-pos{
  font-weight:900;
  color:#111827;
  font-size:15px;
}

.race-name{
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.race-track{
  position:relative;
  height:34px;
  border-radius:99px;
  background:linear-gradient(180deg,#f1f5f9,#e2e8f0);
  border:1px solid #d8dee9;
  overflow:hidden;
}

.race-track:before{
  content:"";
  position:absolute;
  inset:0;
  background:repeating-linear-gradient(90deg,rgba(100,116,139,.18) 0 1px,transparent 1px 28px);
}

.race-fill{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  border-radius:99px;
  background:linear-gradient(90deg,rgba(0,87,217,.22),rgba(168,85,247,.34));
}

.race-car{
  position:absolute;
  top:50%;
  transform:translate(-50%,-50%);
  font-size:24px;
  filter:drop-shadow(0 2px 3px rgba(15,23,42,.22));
}

.race-value{
  text-align:right;
  font-weight:900;
  color:#111827;
}

.entrega-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:32px;
  padding:3px 7px;
  border-radius:99px;
  background:rgba(0,87,217,.10);
  color:#6d28d9;
  font-weight:800;
  font-size:11px;
}

.compra-alerta{
  color:#dc2626;
  font-weight:900;
}

@media(max-width:760px){
  .race-row{
    grid-template-columns:24px 1fr;
    gap:8px;
  }
  .race-track,.race-value{
    grid-column:2;
  }
  .race-value{
    text-align:left;
  }
}


.lista-header-info{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin:-6px 0 12px;
  color:#64748b;
  font-size:12px;
}

.pill-info{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid #d8dee9;
  background:#ffffff;
  border-radius:99px;
  padding:5px 10px;
  font-weight:700;
}

.race-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.race-row{
  display:grid;
  grid-template-columns:30px minmax(140px,230px) 1fr 122px;
  gap:12px;
  align-items:center;
  font-size:12px;
  color:#334155;
}

.race-pos{
  font-weight:900;
  color:#111827;
  font-size:15px;
}

.race-name{
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.race-track{
  position:relative;
  height:34px;
  border-radius:99px;
  background:linear-gradient(180deg,#f1f5f9,#e2e8f0);
  border:1px solid #d8dee9;
  overflow:hidden;
}

.race-track:before{
  content:"";
  position:absolute;
  inset:0;
  background:repeating-linear-gradient(90deg,rgba(100,116,139,.18) 0 1px,transparent 1px 28px);
}

.race-fill{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  border-radius:99px;
  opacity:.85;
}

.race-car{
  position:absolute;
  top:50%;
  transform:translate(-50%,-50%);
  font-size:24px;
  filter:drop-shadow(0 2px 3px rgba(15,23,42,.24));
}

.race-value{
  text-align:right;
  font-weight:900;
  color:#111827;
  line-height:1.25;
}

.race-sub{
  display:block;
  color:#64748b;
  font-weight:700;
  font-size:11px;
}

.entrega-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:32px;
  padding:3px 7px;
  border-radius:99px;
  background:rgba(0,87,217,.10);
  color:#6d28d9;
  font-weight:800;
  font-size:11px;
}

.compra-alerta{
  color:#dc2626;
  font-weight:900;
}

@media(max-width:760px){
  .race-row{
    grid-template-columns:24px 1fr;
    gap:8px;
  }
  .race-track,.race-value{
    grid-column:2;
  }
  .race-value{
    text-align:left;
  }
}


/* ===== Página 3 — Listas e Corridas ===== */
