:root {
  --nexus-blue: #448aff;
  --nexus-blue-dark: #1f6fe5;
  --nexus-cyan: #11cdef;
  --nexus-green: #1abc9c;
  --nexus-orange: #ffb64d;
  --nexus-red: #ff5370;
  --nexus-ink: #263544;
  --nexus-ink-2: #1f2d3a;
  --nexus-muted: #7c8a97;
  --nexus-bg: #f3f7fb;
  --nexus-card: #ffffff;
  --sidebar-w: 268px;
}
* { box-sizing: border-box; }
body { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #37474f; background: var(--nexus-bg); }
.nexus-body { min-height: 100vh; background: linear-gradient(180deg, #eef5ff 0, #f6f8fb 240px, #f3f7fb 100%); }
.login-wrap { background: radial-gradient(circle at top, #448aff, #263544 55%, #111820); }
.login-card { width: 100%; max-width: 440px; border-radius: 1.25rem; box-shadow: 0 18px 45px rgba(31,45,58,.22); }
.login-logo { max-width: 210px; height: auto; }
.brand-mark { width: 64px; height: 64px; border-radius: 18px; background: var(--nexus-blue); color: #fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.35rem; }
.nexus-shell { min-height: 100vh; display: flex; }
.nexus-sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-w); z-index: 1040; display:flex; flex-direction:column; background: linear-gradient(180deg, #263544 0%, #202d3a 48%, #182330 100%); color:#d7e0ea; box-shadow: 10px 0 24px rgba(31,45,58,.12); transition: transform .22s ease; }
.sidebar-brand { min-height: 76px; display:flex; align-items:center; justify-content:space-between; padding: 1rem 1.05rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.brand-tile { width: 48px; height: 42px; border-radius: 12px; display:flex; align-items:center; justify-content:center; background:#fff; padding: .35rem; box-shadow: 0 8px 18px rgba(0,0,0,.15); }
.brand-tile img { max-width: 100%; max-height: 100%; object-fit:contain; }
.brand-text { display:flex; flex-direction:column; line-height:1.1; color:#fff; letter-spacing:.01em; }
.brand-text small { color:#a9b8c8; font-size:.72rem; margin-top:.22rem; font-weight:500; }
.btn-sidebar-close { color:#d7e0ea; background: rgba(255,255,255,.08); border:0; }
.sidebar-nav { padding: .85rem .75rem; overflow-y:auto; flex:1; }
.sidebar-section { font-size:.68rem; color:#8090a0; letter-spacing:.12em; text-transform:uppercase; padding:.65rem .75rem .45rem; font-weight:700; }
.sidebar-nav .nav-link { width:100%; border:0; display:flex; align-items:center; gap:.72rem; min-height: 42px; padding:.65rem .75rem; margin:.12rem 0; border-radius:12px; color:#b8c7d8; text-decoration:none; background:transparent; font-weight:600; font-size:.94rem; transition: background .16s ease, color .16s ease, transform .16s ease; }
.sidebar-nav .nav-link i { width: 21px; text-align:center; font-size:1.05rem; color:#8ea4bb; }
.sidebar-nav .nav-link:hover { color:#fff; background: rgba(255,255,255,.08); transform: translateX(2px); }
.sidebar-nav .nav-link:hover i { color:#fff; }
.sidebar-nav .nav-link.active { color:#fff; background: linear-gradient(90deg, var(--nexus-blue), #65a2ff); box-shadow: 0 8px 20px rgba(68,138,255,.28); }
.sidebar-nav .nav-link.active i { color:#fff; }
.nav-parent { justify-content:space-between; cursor:pointer; }
.nav-parent span { display:flex; align-items:center; gap:.72rem; }
.nav-parent .chevron { width:auto; font-size:.75rem; transition: transform .18s ease; }
.nav-parent:not(.collapsed) .chevron { transform: rotate(180deg); }
.nav-children { padding:.15rem 0 .35rem 1rem; border-left: 1px solid rgba(255,255,255,.08); margin-left: 1.2rem; }
.sidebar-nav .nav-child { min-height:36px; font-size:.88rem; padding:.52rem .65rem; }
.sidebar-footer { padding:.9rem; border-top:1px solid rgba(255,255,255,.08); }
.user-mini { display:flex; align-items:center; gap:.75rem; padding:.75rem; border-radius: 14px; background: rgba(255,255,255,.07); }
.avatar-mini, .avatar-dot { display:inline-flex; align-items:center; justify-content:center; background: linear-gradient(135deg, var(--nexus-blue), var(--nexus-cyan)); color:#fff; font-weight:800; text-transform:uppercase; }
.avatar-mini { width:38px; height:38px; border-radius:12px; }
.avatar-dot { width:32px; height:32px; border-radius:50%; flex:0 0 auto; }
.user-name { color:#fff; font-weight:700; font-size:.92rem; }
.user-logout { color:#a9b8c8; text-decoration:none; font-size:.78rem; }
.user-logout:hover { color:#fff; }
.nexus-main { margin-left: var(--sidebar-w); width: calc(100% - var(--sidebar-w)); min-height:100vh; display:flex; flex-direction:column; }
.nexus-topbar { min-height:76px; position: sticky; top:0; z-index:1030; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding: .9rem 1.35rem; background: rgba(255,255,255,.9); border-bottom: 1px solid rgba(31,45,58,.08); backdrop-filter: blur(14px); }
.page-title { margin:0; font-size:1.22rem; line-height:1.25; font-weight:800; color:#263544; }
.page-subtitle { color:#7c8a97; font-size:.82rem; margin-top:.1rem; }
.topbar-actions { display:flex; align-items:center; gap:.85rem; min-width:0; }
.topbar-user { align-items:center; gap:.55rem; max-width:220px; color:#455a64; font-weight:600; font-size:.9rem; }
.btn-icon { width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; border-radius:12px; }
.nexus-content { padding: 1.35rem; flex:1; }
.card, .nexus-card { border:0; border-radius: 18px; background: var(--nexus-card); box-shadow: 0 8px 24px rgba(31,45,58,.07); }
.card-header { background: transparent; border-bottom:1px solid #edf1f5; padding:1rem 1.15rem; }
.card-body { padding:1.15rem; }
.btn { border-radius: 10px; font-weight:650; }
.btn-primary { background: var(--nexus-blue); border-color: var(--nexus-blue); box-shadow: 0 6px 14px rgba(68,138,255,.22); }
.btn-primary:hover { background: var(--nexus-blue-dark); border-color: var(--nexus-blue-dark); }
.btn-outline-primary { color: var(--nexus-blue-dark); border-color: rgba(68,138,255,.45); }
.btn-outline-primary:hover { background: var(--nexus-blue); border-color: var(--nexus-blue); }
.table { --bs-table-color:#455a64; }
.table thead th { color:#78909c; text-transform:uppercase; font-size:.72rem; letter-spacing:.05em; border-bottom: 1px solid #e8eef4; background: #f8fbff; }
.table tbody td { vertical-align:middle; border-color:#eef2f6; }
.table-hover tbody tr:hover { background-color:#f6faff; }
.badge { border-radius: 999px; font-weight:700; padding:.42rem .62rem; }
.badge.bg-light, .badge.text-bg-light { background:#eef4fa!important; color:#455a64!important; }
.form-control, .form-select { border-radius: 11px; border-color:#dfe7ef; }
.form-control:focus, .form-select:focus { border-color: rgba(68,138,255,.55); box-shadow:0 0 0 .22rem rgba(68,138,255,.14); }
.stat-icon { width: 52px; height: 52px; border-radius: 16px; background: #eef5ff; display:flex; align-items:center; justify-content:center; font-size:1.5rem; color:var(--nexus-blue); }
.list-group { border-radius: 16px; overflow: hidden; }
.alert { border:0; border-radius:14px; }
.modal-content { border:0; border-radius:18px; box-shadow:0 18px 50px rgba(31,45,58,.2); }
.dropdown-menu { border:0; border-radius:14px; box-shadow:0 12px 35px rgba(31,45,58,.16); padding:.5rem; }
.dropdown-item { border-radius:10px; }
.pipeline-board { display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap:1rem; align-items:start; }
.kanban-column { background:#f7faff; border:1px solid #e6eef7; border-radius:18px; padding:.85rem; }
.kanban-card { background:#fff; border:1px solid #edf1f5; border-radius:14px; box-shadow:0 6px 15px rgba(31,45,58,.06); }
.sidebar-backdrop { display:none; }
.min-w-0 { min-width:0; }
@media (max-width: 991.98px) {
  .nexus-sidebar { transform: translateX(-102%); }
  body.sidebar-open .nexus-sidebar { transform: translateX(0); }
  .sidebar-backdrop { position:fixed; inset:0; z-index:1035; background:rgba(15,23,42,.45); }
  body.sidebar-open .sidebar-backdrop { display:block; }
  .nexus-main { margin-left:0; width:100%; }
  .nexus-topbar { padding:.75rem 1rem; min-height:68px; }
  .nexus-content { padding:1rem; }
  .page-title { font-size:1.05rem; }
}
@media (max-width: 576px) {
  .nexus-content { padding:.85rem; }
  .card, .nexus-card { border-radius:16px; }
  .card-body { padding:1rem; }
  .display-6 { font-size:1.85rem; }
  .table-responsive { border-radius:14px; }
  .topbar-actions { gap:.5rem; }
}

/* RTS Nexus 1.9.23 - mobile profile/navigation refinements */
.topbar-user {
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  max-width:240px;
  color:#455a64;
  font-weight:700;
  font-size:.9rem;
  text-decoration:none;
  padding:.25rem .45rem;
  border-radius:999px;
  transition:background .16s ease, color .16s ease;
}
.topbar-user:hover { background:#eef5ff; color:var(--nexus-blue-dark); }
.sidebar-quick-actions { display:grid; grid-template-columns:1fr 1fr; gap:.55rem; }
.sidebar-action {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  min-height:38px;
  border-radius:12px;
  color:#d7e0ea;
  background:rgba(255,255,255,.07);
  text-decoration:none;
  font-size:.85rem;
  font-weight:700;
}
.sidebar-action:hover { color:#fff; background:rgba(255,255,255,.12); }
.topbar-new-request { display:inline-flex; white-space:nowrap; }
.profile-card .form-label { font-weight:700; color:#52616f; }
.profile-avatar-xl {
  width:74px;
  height:74px;
  border-radius:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:1.7rem;
  font-weight:900;
  background:linear-gradient(135deg, var(--nexus-blue), var(--nexus-cyan));
  box-shadow:0 12px 28px rgba(68,138,255,.25);
}
@media (max-width: 991.98px) {
  :root { --sidebar-w: 286px; }
  .nexus-topbar { min-height:62px; }
  .brand-text strong { font-size:.95rem; }
  .brand-text small { font-size:.66rem; }
  .sidebar-nav .nav-link { min-height:40px; font-size:.92rem; }
}
@media (max-width: 576px) {
  .nexus-topbar { padding:.62rem .72rem; gap:.55rem; }
  .nexus-content { padding:.72rem; }
  .page-title { font-size:1rem; max-width: calc(100vw - 184px); }
  .btn-icon { width:36px; height:36px; }
  .topbar-actions { gap:.35rem; }
  .topbar-new-request { width:36px; height:36px; padding:0; justify-content:center; border-radius:12px; }
  .topbar-user { padding:.1rem; max-width:42px; }
  .avatar-dot { width:34px; height:34px; }
  .nexus-sidebar { width:min(86vw, 304px); }
  .sidebar-brand { min-height:66px; padding:.8rem .9rem; }
  .brand-tile { width:44px; height:38px; }
  .sidebar-nav { padding:.7rem .65rem; }
  .sidebar-section { padding:.45rem .65rem .32rem; }
  .sidebar-footer { padding:.7rem; }
  .sidebar-action span { font-size:.8rem; }
  .table-responsive { margin-left:-.2rem; margin-right:-.2rem; width:auto; }
  .card-header, .card-body { padding:.88rem; }
}
