:root{
  --tb-bg:#0b1220;
  --tb-card:#111a2c;
  --tb-text:#e5e7eb;
  --tb-muted:#94a3b8;
  --tb-border:#1f2a44;
  --tb-primary:#0ea5e9;
}
[data-theme="light"]{
  --tb-bg:#f5f7fb;
  --tb-card:#ffffff;
  --tb-text:#0f172a;
  --tb-muted:#475569;
  --tb-border:#e5e7eb;
  --tb-primary:#0ea5e9;
}
body{background:var(--tb-bg);color:var(--tb-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,"Helvetica Neue",Arial;}
a{color:var(--tb-primary)}
.tb-card{background:var(--tb-card);border:1px solid var(--tb-border);border-radius:16px;}
.tb-sidebar{width:260px;min-height:100vh;background:var(--tb-card);border-right:1px solid var(--tb-border);}
.tb-topbar{background:var(--tb-card);border-bottom:1px solid var(--tb-border);}
.tb-link{color:var(--tb-text);text-decoration:none}
.tb-link:hover{color:var(--tb-primary)}
.tb-muted{color:var(--tb-muted)}
.table{color:var(--tb-text)}
.table > :not(caption) > * > * {background-color:transparent;border-color:var(--tb-border)}
.form-control,.form-select{background:transparent;color:var(--tb-text);border-color:var(--tb-border)}
.form-control:focus,.form-select:focus{box-shadow:none;border-color:var(--tb-primary)}
.btn-primary{background:var(--tb-primary);border-color:var(--tb-primary)}
.badge-soft{background:rgba(14,165,233,.15);color:var(--tb-primary);border:1px solid rgba(14,165,233,.35)}
.kpi-icon{width:40px;height:40px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(14,165,233,.15);border:1px solid rgba(14,165,233,.35)}
