:root {
  --dash-bg: #07111d;
  --dash-bg-2: #0b1727;
  --dash-panel: rgba(11, 24, 42, 0.88);
  --dash-line: rgba(255,255,255,.08);
  --dash-text: #eef4ff;
  --dash-muted: #96a8c5;
  --dash-accent: #72f1c8;
  --dash-accent-2: #86a7ff;
  --dash-danger: #ff9090;
  --dash-shadow: 0 18px 50px rgba(0,0,0,.32);
  --dash-radius: 24px;
}
* { box-sizing: border-box; }
body.dashboard-body {
  margin: 0;
  font-family: 'Inter', sans-serif;
  color: var(--dash-text);
  background:
    radial-gradient(circle at 0% 0%, rgba(114,241,200,.08), transparent 30%),
    radial-gradient(circle at 100% 0%, rgba(134,167,255,.12), transparent 26%),
    linear-gradient(180deg, #06101b 0%, #08131f 100%);
}
.dashboard-shell { display: grid; grid-template-columns: 280px 1fr; min-height: 100vh; }
.sidebar { padding: 28px 20px; border-right: 1px solid var(--dash-line); background: rgba(5,10,18,.65); backdrop-filter: blur(16px); position: sticky; top: 0; height: 100vh; }
.sidebar-brand { display: flex; gap: 14px; align-items: center; margin-bottom: 28px; }
.sidebar-brand .mark { width: 52px; height: 52px; border-radius: 18px; display:grid; place-items:center; font-weight:800; color:#021014; background:linear-gradient(135deg,var(--dash-accent),#ddfff6); }
.sidebar-brand small, .muted { color: var(--dash-muted); }
.side-links { display: grid; gap: 8px; }
.side-links a {
  color: var(--dash-muted); padding: 13px 14px; border: 1px solid transparent; border-radius: 16px; transition: .2s ease;
}
.side-links a:hover, .side-links a.active { background: rgba(255,255,255,.04); color: var(--dash-text); border-color: var(--dash-line); }
.sidebar-card, .dash-card, .auth-card { background: var(--dash-panel); border: 1px solid var(--dash-line); border-radius: var(--dash-radius); box-shadow: var(--dash-shadow); }
.sidebar-card { margin-top: 24px; padding: 18px; }
.sidebar-logout { margin-top: auto; display:block; }
.main { padding: 28px; }
.topbar { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-bottom: 24px; }
.page-title h1 { margin: 0 0 6px; font-size: clamp(1.8rem, 3vw, 2.8rem); }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding: 13px 18px; border-radius: 16px; text-decoration:none; border:1px solid var(--dash-line); color: var(--dash-text); background: rgba(255,255,255,.04); font-weight: 700; }
.btn-primary { background: linear-gradient(135deg, var(--dash-accent), #d2fff1); color:#041015; border: none; }
.btn-secondary { background: linear-gradient(135deg, rgba(134,167,255,.18), rgba(255,255,255,.04)); }
.grid-4, .grid-2, .stats-grid, .dash-grid { display:grid; gap: 18px; }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-2 { grid-template-columns: 1.2fr .8fr; }
.stats-grid { grid-template-columns: repeat(4, 1fr); margin-bottom: 22px; }
.stat-card { padding: 22px; }
.stat-card .kicker { color: var(--dash-muted); font-size: .88rem; }
.stat-card strong { display:block; margin-top: 10px; font-size: 2rem; }
.dash-card { padding: 22px; }
.table-wrap { overflow: auto; }
.dash-table { width:100%; border-collapse: collapse; }
.dash-table th, .dash-table td { padding: 14px 10px; border-bottom: 1px solid var(--dash-line); text-align:left; }
.badge { display:inline-flex; padding: 7px 10px; border-radius: 999px; font-size: .8rem; background: rgba(255,255,255,.06); }
.badge.pending { background: rgba(255, 215, 102, .12); color: #ffe39c; }
.badge.approved, .badge.completed, .badge.reviewed { background: rgba(114,241,200,.12); color: #c8fff1; }
.badge.cancelled, .badge.closed { background: rgba(255,144,144,.12); color: #ffc9c9; }
.badge.new { background: rgba(134,167,255,.16); color: #d5e0ff; }
.form-grid { display:grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.form-grid .full { grid-column: 1 / -1; }
.dash-input, .dash-textarea, .dash-select {
  width:100%; padding: 14px 16px; border-radius: 14px; border:1px solid var(--dash-line); background: rgba(255,255,255,.03); color: var(--dash-text); outline:none;
}
.dash-textarea { min-height: 140px; }
.dash-input:focus, .dash-textarea:focus, .dash-select:focus { border-color: rgba(114,241,200,.35); box-shadow: 0 0 0 4px rgba(114,241,200,.08); }
.form-stack { display:grid; gap: 14px; }
label { display:block; margin-bottom: 8px; font-weight: 600; }
.flash-stack { display:grid; gap:10px; margin-bottom: 18px; }
.flash { padding: 14px 16px; border-radius: 16px; border:1px solid var(--dash-line); background: rgba(255,255,255,.04); }
.flash.success { border-color: rgba(114,241,200,.32); }
.flash.error { border-color: rgba(255,144,144,.32); }
.auth-shell { min-height: 100vh; display:grid; place-items:center; padding: 24px; }
.auth-card { width:min(520px,100%); padding: 34px; }
.auth-card h1 { margin: 0 0 10px; font-size: 2.2rem; }
.kpi-row { display:grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 18px; }
.kpi-pill { border:1px solid var(--dash-line); border-radius: 16px; padding: 14px; background: rgba(255,255,255,.03); }
.panel-list { display:grid; gap:14px; }
.panel-item { padding: 16px; border:1px solid var(--dash-line); border-radius: 18px; background: rgba(255,255,255,.03); }
.panel-item h4 { margin: 0 0 6px; }
.action-row { display:flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 1100px) {
  .dashboard-shell, .grid-2, .stats-grid, .grid-4, .form-grid { grid-template-columns: 1fr; }
  .sidebar { position: relative; height: auto; }
}
