:root {
  --bg-main: #11141a;
  --bg-panel: #1a1d24;
  --bg-panel-light: #20242c;
  --border-color: #2a2f3a;
  --text-main: #e8eaed;
  --text-muted: #9aa3b2;
  --accent: #2dd4bf;
  --accent-blue: #3b82f6;
  --danger: #f87171;
  --warning: #fbbf24;
  --success: #34d399;
}
* { box-sizing: border-box; }
body {
  background: var(--bg-main);
  color: var(--text-main);
  font-family: 'Segoe UI', Roboto, Arial, sans-serif;
}
.install-body { display:flex; align-items:center; justify-content:center; min-height:100vh; background:var(--bg-main); }
.install-wrapper { width:100%; max-width:460px; padding:20px; }
.install-card { background:var(--bg-panel); border:1px solid var(--border-color); border-radius:12px; padding:32px; }
.install-card .form-control, .install-card label { color: var(--text-main); }
.install-card .form-control { background:var(--bg-panel-light); border:1px solid var(--border-color); color:var(--text-main); }
.install-card .form-control:focus { background:var(--bg-panel-light); color:var(--text-main); border-color:var(--accent); box-shadow:0 0 0 .2rem rgba(45,212,191,.2); }

a { text-decoration:none; }

.app-sidebar {
  position:fixed; top:0; left:0; bottom:0; width:250px;
  background:var(--bg-panel); border-right:1px solid var(--border-color);
  overflow-y:auto; z-index:1000; transition:transform .25s ease;
}
.app-sidebar .brand { padding:20px 18px; font-weight:700; font-size:1.05rem; border-bottom:1px solid var(--border-color); color:var(--accent); }
.app-sidebar .nav-link { color:var(--text-muted); padding:10px 18px; font-size:.92rem; border-left:3px solid transparent; }
.app-sidebar .nav-link:hover { background:var(--bg-panel-light); color:var(--text-main); }
.app-sidebar .nav-link.active { background:var(--bg-panel-light); color:var(--accent); border-left-color:var(--accent); }
.app-sidebar .nav-heading { padding:14px 18px 4px; font-size:.7rem; letter-spacing:.08em; color:#5c6577; text-transform:uppercase; }

.app-main { margin-left:250px; min-height:100vh; }
.app-topbar { background:var(--bg-panel); border-bottom:1px solid var(--border-color); padding:14px 24px; display:flex; align-items:center; justify-content:space-between; }
.app-content { padding:24px; }

.card-stat { background:var(--bg-panel); border:1px solid var(--border-color); border-radius:10px; padding:18px; }
.card-stat .stat-icon { width:46px;height:46px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.3rem; }
.card-stat .stat-value { font-size:1.6rem; font-weight:700; }
.card-stat .stat-label { color:var(--text-muted); font-size:.82rem; }

.panel { background:var(--bg-panel); border:1px solid var(--border-color); border-radius:10px; padding:20px; }
.table { color:var(--text-main); }
.table > :not(caption) > * > * { background-color:transparent; color:var(--text-main); border-color:var(--border-color); }
.table thead { color:var(--text-muted); font-size:.8rem; text-transform:uppercase; }

.form-control, .form-select { background:var(--bg-panel-light); border:1px solid var(--border-color); color:var(--text-main); }
.form-control:focus, .form-select:focus { background:var(--bg-panel-light); color:var(--text-main); border-color:var(--accent); box-shadow:0 0 0 .2rem rgba(45,212,191,.15); }
.form-control::placeholder { color:#6b7280; }

.modal-content { background:var(--bg-panel); border:1px solid var(--border-color); color:var(--text-main); }
.btn-info { background:var(--accent); border-color:var(--accent); color:#06231f; font-weight:600; }
.btn-info:hover { background:#26b8a4; border-color:#26b8a4; }
.badge-role-admin { background:var(--danger); }
.badge-role-manager { background:var(--accent-blue); }
.badge-role-researcher { background:var(--success); }

.login-body { display:flex; align-items:center; justify-content:center; min-height:100vh; background:radial-gradient(circle at top, #182030, #0b0d11); }
.login-card { width:100%; max-width:400px; background:var(--bg-panel); border:1px solid var(--border-color); border-radius:14px; padding:36px; }

.sidebar-toggle { display:none; }
@media (max-width: 991px) {
  .app-sidebar { transform: translateX(-100%); }
  .app-sidebar.show { transform: translateX(0); }
  .app-main { margin-left:0; }
  .sidebar-toggle { display:inline-block; }
}
.activity-item { border-bottom:1px solid var(--border-color); padding:10px 0; font-size:.88rem; }
.activity-item:last-child { border-bottom:none; }
