:root{
  --bg: #0b1220;
  --panel: rgba(255,255,255,.06);
  --panel2: rgba(255,255,255,.08);
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.65);
  --border: rgba(255,255,255,.10);
  --shadow: 0 12px 30px rgba(0,0,0,.25);
  --radius: 18px;
  --primary: #0ea5e9;
}
[data-theme="light"]{
  --bg: #f5f7fb;
  --panel: rgba(10,20,40,.05);
  --panel2: rgba(10,20,40,.07);
  --text: rgba(10,20,40,.92);
  --muted: rgba(10,20,40,.60);
  --border: rgba(10,20,40,.12);
  --shadow: 0 10px 26px rgba(10,20,40,.12);
}

html, body { height: 100%; }
body{
  background: radial-gradient(1200px 800px at 10% 10%, rgba(14,165,233,.18), transparent 60%),
              radial-gradient(900px 600px at 90% 0%, rgba(99,102,241,.14), transparent 50%),
              var(--bg);
  color: var(--text);
}

.app-shell{
  min-height: 100vh;
  display: flex;
}

.sidebar{
  width: 280px;
  padding: 18px;
  border-right: 1px solid var(--border);
  background: rgba(0,0,0,.06);
  backdrop-filter: blur(10px);
}
[data-theme="light"] .sidebar{ background: rgba(255,255,255,.55); }

.brand{
  display:flex; align-items:center; gap:10px;
  padding: 10px 12px;
  border-radius: 16px;
  background: var(--panel);
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  margin-bottom: 14px;
}
.brand img{ height: 30px; width:auto; }
.brand .title{ font-weight: 700; line-height:1.1; }
.brand .subtitle{ font-size: 12px; color: var(--muted); }

.nav-section{ margin-top: 12px; }
.nav-title{
  font-size: 12px; text-transform: uppercase;
  letter-spacing: .08em; color: var(--muted);
  padding: 10px 12px 6px;
}
.nav-pills .nav-link{
  color: var(--text);
  border-radius: 14px;
  padding: 10px 12px;
  display:flex; align-items:center; gap:10px;
  border: 1px solid transparent;
}
.nav-pills .nav-link:hover{
  background: var(--panel2);
  border-color: var(--border);
}
.nav-pills .nav-link.active{
  background: linear-gradient(135deg, rgba(14,165,233,.22), rgba(99,102,241,.16));
  border-color: rgba(14,165,233,.35);
}

.content{
  flex: 1;
  padding: 18px;
}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: var(--radius);
  background: var(--panel);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  margin-bottom: 16px;
}

.card-soft{
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.kpi{
  display:flex; align-items:center; gap:12px;
  padding: 14px;
}
.kpi .icon{
  height: 42px; width: 42px;
  display:grid; place-items:center;
  border-radius: 14px;
  background: rgba(14,165,233,.18);
  border: 1px solid rgba(14,165,233,.25);
  color: var(--text);
}
[data-theme="light"] .kpi .icon{ background: rgba(14,165,233,.12); }
.kpi .label{ color: var(--muted); font-size: 12px; }
.kpi .value{ font-weight: 800; font-size: 18px; line-height: 1.1; }

.table{
  color: var(--text);
}
.table thead th{
  color: var(--muted);
  border-bottom: 1px solid var(--border);
}
.table td, .table th{
  border-color: var(--border);
  vertical-align: middle;
}

.form-control, .form-select, .input-group-text{
  background: var(--panel2);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 14px;
}
.form-control::placeholder{ color: rgba(255,255,255,.45); }
[data-theme="light"] .form-control::placeholder{ color: rgba(10,20,40,.45); }
.form-control:focus, .form-select:focus{
  border-color: rgba(14,165,233,.55);
  box-shadow: 0 0 0 .2rem rgba(14,165,233,.18);
  background: var(--panel2);
  color: var(--text);
}

.btn{
  border-radius: 14px;
}

.badge-soft{
  background: rgba(14,165,233,.16);
  border: 1px solid rgba(14,165,233,.26);
  color: var(--text);
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 600;
  font-size: 12px;
}
.muted{ color: var(--muted); }
.small-muted{ font-size: 12px; color: var(--muted); }

.codebox{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 13px;
  white-space: pre;
  overflow: auto;
  padding: 14px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: rgba(0,0,0,.18);
  color: rgba(255,255,255,.93);
}
[data-theme="light"] .codebox{
  background: rgba(255,255,255,.7);
  color: rgba(10,20,40,.95);
}

.footer{
  padding: 18px 6px 6px;
  color: var(--muted);
  font-size: 12px;
  text-align: center;
}

@media (max-width: 992px){
  .sidebar{ display:none; }
  .content{ padding: 14px; }
}
