/* SisLavaJato - Design System (Azul profissional • Asaas/Stripe-like) */
:root{
  --sls-primary:#0A2540;
  --sls-primary-2:#12325A;
  --sls-blue:#1E88E5;
  --sls-blue-2:#1976D2;
  --sls-green:#00C48C;
  --sls-green-2:#00A97A;
  --sls-yellow:#FFB020;
  --sls-red:#EF4444;
  --sls-bg:#F5F7FA;
  --sls-surface:#FFFFFF;
  --sls-border:#E4E9F0;
  --sls-text:#0A2540;
  --sls-text-muted:#5A6B7F;
  --sls-sidebar-w:264px;
  --sls-sidebar-w-mini:76px;
  --sls-radius:14px;
  --sls-shadow:0 4px 24px rgba(10,37,64,.06);
  --sls-shadow-lg:0 20px 60px rgba(10,37,64,.10);
}
[data-theme="dark"]{
  --sls-bg:#0B1220;
  --sls-surface:#11192B;
  --sls-primary:#DDE7F5;
  --sls-primary-2:#0B1220;
  --sls-border:#1E2A44;
  --sls-text:#E7EEF9;
  --sls-text-muted:#93A2BB;
  --sls-shadow:0 4px 24px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--sls-bg);color:var(--sls-text);-webkit-font-smoothing:antialiased;
}

/* Layout */
.sls-app{display:flex;min-height:100vh}
.sls-sidebar{
  width:var(--sls-sidebar-w);background:linear-gradient(180deg,var(--sls-primary),var(--sls-primary-2));
  color:#DDE7F5;position:fixed;inset:0 auto 0 0;overflow-y:auto;transition:width .25s ease;z-index:1030;
}
.sls-sidebar .brand{padding:22px 20px;display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.sls-sidebar .brand i{background:var(--sls-blue);width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:18px;color:#fff}
.sls-sidebar .nav-section{padding:14px 20px 6px;font-size:11px;letter-spacing:1.3px;color:#7B90AD;text-transform:uppercase}
.sls-sidebar a.nav-link{display:flex;align-items:center;gap:12px;padding:11px 20px;color:#B7C6DE;border-radius:0;font-weight:500;font-size:14.5px;position:relative}
.sls-sidebar a.nav-link:hover{background:rgba(255,255,255,.05);color:#fff}
.sls-sidebar a.nav-link.active{background:rgba(30,136,229,.15);color:#fff}
.sls-sidebar a.nav-link.active::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:var(--sls-blue);border-radius:0 4px 4px 0}
.sls-sidebar a.nav-link i{width:20px;text-align:center;font-size:17px}
.sls-sidebar.mini{width:var(--sls-sidebar-w-mini)}
.sls-sidebar.mini .brand span,.sls-sidebar.mini .nav-link span,.sls-sidebar.mini .nav-section{display:none}
.sls-sidebar.mini .brand{justify-content:center;padding:22px 8px}
.sls-sidebar.mini a.nav-link{justify-content:center;padding:12px}

.sls-main{margin-left:var(--sls-sidebar-w);flex:1;min-width:0;transition:margin-left .25s ease}
.sls-main.mini{margin-left:var(--sls-sidebar-w-mini)}

.sls-topbar{
  background:var(--sls-surface);height:64px;display:flex;align-items:center;
  padding:0 24px;gap:16px;border-bottom:1px solid var(--sls-border);position:sticky;top:0;z-index:1020;
}
.sls-topbar .search{flex:1;max-width:520px;position:relative}
.sls-topbar .search input{width:100%;padding:9px 14px 9px 40px;border:1px solid var(--sls-border);border-radius:10px;background:var(--sls-bg);color:var(--sls-text)}
.sls-topbar .search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--sls-text-muted)}
.sls-topbar .icon-btn{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:transparent;color:var(--sls-text-muted);border:0;cursor:pointer}
.sls-topbar .icon-btn:hover{background:var(--sls-bg);color:var(--sls-primary)}
.sls-avatar{width:38px;height:38px;border-radius:50%;background:var(--sls-blue);color:#fff;display:grid;place-items:center;font-weight:700}

.sls-content{padding:28px 32px}
.page-title{font-size:22px;font-weight:700;margin:0 0 4px}
.page-sub{color:var(--sls-text-muted);margin:0 0 22px}

/* Cards */
.sls-card{background:var(--sls-surface);border:1px solid var(--sls-border);border-radius:var(--sls-radius);box-shadow:var(--sls-shadow)}
.sls-card .body{padding:20px 22px}
.sls-card .head{padding:16px 22px;border-bottom:1px solid var(--sls-border);display:flex;justify-content:space-between;align-items:center}
.sls-card .head h3{font-size:15px;font-weight:700;margin:0}

/* KPI */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:22px}
.kpi{background:var(--sls-surface);border:1px solid var(--sls-border);border-radius:var(--sls-radius);padding:20px;box-shadow:var(--sls-shadow);position:relative;overflow:hidden}
.kpi .label{font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--sls-text-muted)}
.kpi .value{font-size:28px;font-weight:800;margin:6px 0 2px;color:var(--sls-primary)}
.kpi .hint{font-size:12px;color:var(--sls-text-muted)}
.kpi .kpi-icon{position:absolute;right:16px;top:16px;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:20px}
.kpi.blue .kpi-icon{background:rgba(30,136,229,.12);color:var(--sls-blue)}
.kpi.green .kpi-icon{background:rgba(0,196,140,.12);color:var(--sls-green)}
.kpi.yellow .kpi-icon{background:rgba(255,176,32,.12);color:var(--sls-yellow)}
.kpi.red .kpi-icon{background:rgba(239,68,68,.12);color:var(--sls-red)}

/* Buttons */
.btn{border-radius:10px;font-weight:600;padding:9px 16px;border:1px solid transparent}
.btn-primary,.btn-primary:focus{background:var(--sls-blue);border-color:var(--sls-blue)}
.btn-primary:hover{background:var(--sls-blue-2);border-color:var(--sls-blue-2)}
.btn-success{background:var(--sls-green);border-color:var(--sls-green)}
.btn-success:hover{background:var(--sls-green-2);border-color:var(--sls-green-2)}
.btn-outline-primary{color:var(--sls-blue);border-color:var(--sls-blue)}
.btn-outline-primary:hover{background:var(--sls-blue);color:#fff}
.btn-soft{background:var(--sls-bg);color:var(--sls-text);border:1px solid var(--sls-border)}
.btn-soft:hover{background:var(--sls-border)}

/* Tables */
.sls-table{width:100%;border-collapse:separate;border-spacing:0}
.sls-table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--sls-text-muted);padding:12px 16px;border-bottom:1px solid var(--sls-border);background:var(--sls-bg)}
.sls-table td{padding:14px 16px;border-bottom:1px solid var(--sls-border);font-size:14px;color:var(--sls-text)}
.sls-table tr:hover td{background:rgba(30,136,229,.04)}

/* Forms */
.form-label{font-size:13px;font-weight:600;color:var(--sls-text);margin-bottom:6px}
.form-control,.form-select{border-radius:10px;border:1px solid var(--sls-border);padding:9px 12px;background:var(--sls-surface);color:var(--sls-text)}
.form-control:focus,.form-select:focus{border-color:var(--sls-blue);box-shadow:0 0 0 3px rgba(30,136,229,.15)}

/* Badges de status */
.badge-status{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600}
.badge-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.bs-primary{background:rgba(30,136,229,.12);color:var(--sls-blue)}
.bs-success{background:rgba(0,196,140,.14);color:var(--sls-green-2)}
.bs-warning{background:rgba(255,176,32,.14);color:#B7791F}
.bs-danger{background:rgba(239,68,68,.12);color:#B91C1C}
.bs-info{background:rgba(6,182,212,.14);color:#0E7490}
.bs-secondary{background:rgba(148,163,184,.14);color:#475569}

/* Alerts */
.alert{border-radius:12px;border:1px solid transparent}

/* Toast/flash */
.flash-msg{position:fixed;top:20px;right:20px;z-index:2000;min-width:280px;box-shadow:var(--sls-shadow-lg)}

/* Login */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--sls-bg)}
.login-hero{background:linear-gradient(135deg,var(--sls-primary),var(--sls-blue));color:#fff;padding:60px;display:flex;flex-direction:column;justify-content:space-between}
.login-hero h1{font-size:36px;font-weight:800;line-height:1.15;margin:0 0 12px}
.login-hero p{color:rgba(255,255,255,.85);font-size:15px;max-width:440px}
.login-form{display:grid;place-items:center;padding:40px}
.login-box{width:100%;max-width:400px}
.login-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:22px;color:var(--sls-primary);margin-bottom:26px}
.login-brand i{background:var(--sls-blue);width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#fff;font-size:20px}

/* Responsivo */
@media (max-width:900px){
  .login-wrap{grid-template-columns:1fr}
  .login-hero{display:none}
  .sls-sidebar{transform:translateX(-100%);transition:transform .25s ease}
  .sls-sidebar.open{transform:translateX(0)}
  .sls-main{margin-left:0}
  .sls-content{padding:20px 16px}
  .sls-topbar{padding:0 16px}
}
