:root {
  --hub-navy: #14263f;
  --hub-navy-2: #1d3a5f;
  --hub-accent: #f58220;
  --hub-bg: #f4f6fa;
}
body { background: var(--hub-bg); font-family: "Segoe UI", system-ui, -apple-system, Arial, sans-serif; }
.min-vw-0 { min-width: 0; }

/* Sidebar */
.sidebar { width: 248px; min-height: 100vh; background: linear-gradient(180deg, var(--hub-navy) 0%, var(--hub-navy-2) 100%); color: #dbe4f0; flex-shrink: 0; }
.sidebar .nav-link { color: #c9d6e8; border-radius: .5rem; padding: .55rem .75rem; margin-bottom: .15rem; }
.sidebar .nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.sidebar .nav-link.active { background: var(--hub-accent); color: #fff; }
.sidebar-brand { font-size: 1.35rem; font-weight: 700; color: #fff; padding: .25rem .5rem 1rem; }
.sidebar-logo { max-height: 44px; max-width: 100%; }
.sidebar-org { font-size: .8rem; color: #9fb4cc; padding: 0 .5rem 1rem; }
.brand-accent { color: var(--hub-accent); }

/* Topbar */
.topbar { height: 60px; background: #fff; border-bottom: 1px solid #e3e8f0; position: sticky; top: 0; z-index: 50; }
.topbar-title { font-size: 1.15rem; font-weight: 600; }
.avatar-circle { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--hub-navy); color: #fff; font-weight: 600; }

/* Cards & stats */
.stat-card { border: none; border-left: 4px solid var(--hub-accent); box-shadow: 0 1px 3px rgba(20,38,63,.08); }
.stat-card .stat-value { font-size: 1.6rem; font-weight: 700; color: var(--hub-navy); }
.stat-card .stat-label { color: #6b7a90; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; }
.card { border: 1px solid #e3e8f0; }
.table thead th { background: #eef2f8; color: var(--hub-navy); font-size: .82rem; text-transform: uppercase; letter-spacing: .03em; }
.btn-primary { background: var(--hub-navy); border-color: var(--hub-navy); }
.btn-primary:hover { background: var(--hub-navy-2); border-color: var(--hub-navy-2); }
.btn-accent { background: var(--hub-accent); border-color: var(--hub-accent); color: #fff; }
.btn-accent:hover { background: #d96f14; color: #fff; }

/* Auth pages */
.auth-body { background: linear-gradient(135deg, var(--hub-navy) 0%, var(--hub-navy-2) 60%, #274b78 100%); min-height: 100vh; }
.auth-wrap { max-width: 440px; margin: 0 auto; padding: 6vh 1rem 2rem; }
.auth-brand { font-size: 1.8rem; font-weight: 700; color: var(--hub-navy); }
.field-error { color: #b02a37; font-size: .85rem; margin-top: .25rem; }
.form-control.is-invalid { border-color: #b02a37; background-image: none; }

@media (max-width: 767.98px) {
  .sidebar { position: fixed; left: -260px; top: 0; z-index: 100; transition: left .2s ease; }
  .sidebar.open { left: 0; box-shadow: 0 0 40px rgba(0,0,0,.35); }
}
