:root{
  --navy:#24206a; --navy-2:#342f8b; --gold:#f8c32c; --gold-dark:#e5aa02; --gold-bg:#fff8e1;
  --ok:#1db24e; --ok-bg:#eafcf1; --danger:#dc2626; --danger-bg:#fef2f2;
  --ink:#1e2130; --ink-muted:#6b7280; --border:#e5e7eb; --surface:#ffffff; --bg:#f5f6fa;
}
*{box-sizing:border-box;}
body{margin:0; font-family:'Plus Jakarta Sans',sans-serif; background:var(--bg); color:var(--ink); font-size:14px;}
a{text-decoration:none; color:inherit;}

.tela-login{display:flex; align-items:center; justify-content:center; min-height:100vh; background:linear-gradient(135deg,var(--navy),var(--navy-2));}
.login-card{background:var(--surface); border-radius:16px; padding:36px 40px; width:100%; max-width:380px; box-shadow:0 20px 60px rgba(0,0,0,.25);}
.login-titulo{margin:0 0 4px; font-size:22px; font-weight:800; color:var(--navy);}
.login-sub{margin:0 0 20px; color:var(--ink-muted); font-size:13px;}

.field{margin-bottom:14px;}
.field label{display:block; font-size:12.5px; font-weight:600; color:var(--ink-muted); margin-bottom:5px;}
.field input, .field select{width:100%; padding:9px 11px; border:1px solid var(--border); border-radius:8px; font-size:14px; font-family:inherit;}
.field input:focus, .field select:focus{outline:2px solid var(--navy-2); outline-offset:-1px;}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:9px 16px; border-radius:8px; font-weight:700; font-size:13px; cursor:pointer; border:none; transition:filter .15s;}
.btn:hover{filter:brightness(.95);}
.btn-primary{background:var(--navy); color:#fff;}
.btn-secondary{background:#eef0f5; color:var(--ink);}
.btn-danger{background:var(--danger-bg); color:var(--danger);}
.btn-sm{padding:6px 12px; font-size:12px;}

.alert{padding:10px 14px; border-radius:8px; font-size:13px; margin-bottom:14px;}
.alert.erro{background:var(--danger-bg); color:var(--danger);}
.alert.ok{background:var(--ok-bg); color:var(--ok);}

.app-shell{min-height:100vh; display:flex; flex-direction:column;}
.topbar{display:flex; align-items:center; gap:24px; padding:0 24px; height:60px; background:var(--navy); color:#fff;}
.topbar-brand{font-weight:800; font-size:16px;}
.topbar-nav{display:flex; gap:6px; flex:1;}
.topbar-link{padding:8px 14px; border-radius:8px; font-size:13.5px; font-weight:600; color:#d8d6f0;}
.topbar-link:hover, .topbar-link.active{background:rgba(255,255,255,.12); color:#fff;}
.topbar-user{display:flex; align-items:center; gap:10px; font-size:13px;}

.content-area{padding:28px 32px; max-width:1280px; width:100%; margin:0 auto;}
.page-title{margin:0 0 4px; font-size:22px; font-weight:800;}
.page-sub{margin:0 0 22px; color:var(--ink-muted); font-size:13.5px;}

.panel{background:var(--surface); border:1px solid var(--border); border-radius:14px; margin-bottom:20px; overflow:hidden;}
.panel-head{padding:16px 20px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;}
.panel-head h2{margin:0; font-size:15px; font-weight:800;}
.panel-body{padding:20px;}
.muted{color:var(--ink-muted); font-size:12.5px;}

.filtros-inline{display:flex; align-items:end; gap:12px; flex-wrap:wrap;}
.filtros-inline .field{margin-bottom:0; min-width:160px;}

.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:20px;}
.stat-card{background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:16px 18px;}
.stat-card-label{font-size:12px; font-weight:700; color:var(--ink-muted); text-transform:uppercase; letter-spacing:.3px;}
.stat-card-n{font-size:28px; font-weight:800; margin-top:6px;}
.stat-card-sub{font-size:12px; color:var(--ink-muted); margin-top:2px;}
.pill{display:inline-flex; padding:4px 10px; border-radius:999px; font-size:12px; font-weight:700;}

.tabela-wrap{overflow-x:auto;}
table.tbl{width:100%; border-collapse:collapse; font-size:13px;}
table.tbl th{background:#fafbfc; text-align:center; font-size:11px; font-weight:800; text-transform:uppercase; color:var(--ink-muted); padding:9px 8px; border-bottom:1px solid var(--border);}
table.tbl td{text-align:center; padding:8px; border-bottom:1px solid #f0f1f5;}

.dia-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:4px;}
.dia-cell{border-radius:6px; padding:6px 4px; text-align:center; font-size:11px;}
.dia-cell .dia-num{font-weight:700; font-size:10px; color:var(--ink-muted);}
.dia-cell .dia-val{font-weight:800; font-size:13px;}
.dia-cell .dia-irr{font-size:9.5px; font-weight:700; margin-top:2px;}

@media (max-width:900px){ .stat-grid{grid-template-columns:repeat(2,1fr);} }
