/* ── Risk Train LMS – Custom Styles ────────────────────── */
:root {
  --rt-blue:      #1B5E9B;
  --rt-blue-dark: #0d3d6b;
  --rt-red:       #D32F2F;
  --rt-sky:       #29ABE2;
  --sidebar-bg:   #12213a;
  --sidebar-text: #c8d6e5;
  --topbar-h:     58px;
  --sidebar-w:    250px;
}

/* ── Layout ─────────────────────────────────────────────── */
body { background:#f0f3f8; font-family:'Segoe UI',system-ui,sans-serif; overflow-x:hidden; }

#sidebar {
  position:fixed; top:0; left:0; height:100vh; width:var(--sidebar-w);
  background:var(--sidebar-bg); display:flex; flex-direction:column;
  z-index:1000; transition:width .25s;
}
#main-content {
  margin-left:var(--sidebar-w);
  min-height:100vh;
  transition:margin-left .25s;
}
body.sidebar-collapsed #sidebar       { width:0; overflow:hidden; }
body.sidebar-collapsed #main-content  { margin-left:0; }

/* ── Sidebar Logo ────────────────────────────────────────── */
.sidebar-logo {
  padding:18px 20px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
  text-align:center;
}
.sidebar-logo img { max-width:140px; max-height:56px; object-fit:contain; }
.sidebar-logo .text-logo {
  color:#fff; font-size:1.2rem; font-weight:700; letter-spacing:.5px;
}
.sidebar-logo .text-logo span { color:var(--rt-sky); }

/* ── Sidebar Nav ─────────────────────────────────────────── */
.sidebar-nav { flex:1; overflow-y:auto; padding:10px 0; }
.nav-section {
  font-size:.68rem; font-weight:700; letter-spacing:1.2px;
  color:rgba(255,255,255,.35); padding:14px 20px 4px;
  text-transform:uppercase;
}
.sidebar-nav .nav-link {
  color:var(--sidebar-text); padding:9px 20px; border-radius:0;
  font-size:.9rem; display:flex; align-items:center; gap:10px;
  transition:background .15s, color .15s;
}
.sidebar-nav .nav-link:hover,
.sidebar-nav .nav-link.active {
  background:rgba(255,255,255,.1); color:#fff;
}
.sidebar-nav .nav-link.active { border-left:3px solid var(--rt-sky); }
.sidebar-nav .nav-link i { width:18px; text-align:center; font-size:.85rem; }

/* ── Sidebar Footer ──────────────────────────────────────── */
.sidebar-footer {
  padding:14px 16px;
  border-top:1px solid rgba(255,255,255,.08);
}
.sidebar-footer .user-card {
  display:flex; align-items:center; gap:10px;
  color:#fff; font-size:.85rem; margin-bottom:10px;
}
.sidebar-footer .user-card .avatar {
  width:36px; height:36px; border-radius:50%;
  background:var(--rt-blue); display:flex; align-items:center;
  justify-content:center; font-weight:700; font-size:.9rem; flex-shrink:0;
}
.sidebar-footer .role-badge {
  font-size:.7rem; color:var(--rt-sky); text-transform:capitalize;
}

/* ── Topbar ──────────────────────────────────────────────── */
.topbar {
  height:var(--topbar-h); background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
  display:flex; align-items:center; padding:0 24px;
  position:sticky; top:0; z-index:900;
}
.topbar .btn-toggle { background:none; border:none; color:#555; font-size:1.1rem; cursor:pointer; }
.topbar .page-title { font-size:1.05rem; font-weight:600; color:#1a2332; margin:0 0 0 16px; }
.topbar .topbar-right { margin-left:auto; display:flex; align-items:center; gap:16px; }
.topbar .date-chip { font-size:.82rem; color:#888; }

/* ── Page Content ────────────────────────────────────────── */
.page-content { padding:24px; }

/* ── Stat Cards ──────────────────────────────────────────── */
.stat-card {
  background:#fff; border-radius:10px; padding:20px 22px;
  box-shadow:0 1px 6px rgba(0,0,0,.07); display:flex; align-items:center; gap:16px;
}
.stat-card .icon {
  width:52px; height:52px; border-radius:12px;
  display:flex; align-items:center; justify-content:center; font-size:1.3rem;
  flex-shrink:0;
}
.stat-card .icon.blue   { background:#e3f0fb; color:var(--rt-blue); }
.stat-card .icon.red    { background:#fdecea; color:var(--rt-red); }
.stat-card .icon.sky    { background:#e1f5fd; color:var(--rt-sky); }
.stat-card .icon.green  { background:#e8f5e9; color:#388e3c; }
.stat-card .icon.orange { background:#fff3e0; color:#e65100; }
.stat-card .num  { font-size:1.8rem; font-weight:700; color:#1a2332; line-height:1; }
.stat-card .lbl  { font-size:.8rem; color:#888; margin-top:2px; }

/* ── Content Card ────────────────────────────────────────── */
.content-card {
  background:#fff; border-radius:10px;
  box-shadow:0 1px 6px rgba(0,0,0,.07); overflow:hidden;
}
.content-card .card-header {
  padding:16px 22px; border-bottom:1px solid #eef0f4;
  display:flex; align-items:center; justify-content:space-between;
}
.content-card .card-header h5 { margin:0; font-size:.95rem; font-weight:600; color:#1a2332; }
.content-card .card-body { padding:22px; }

/* ── Form Sections ───────────────────────────────────────── */
.form-section {
  background:#fff; border-radius:10px;
  box-shadow:0 1px 6px rgba(0,0,0,.07);
  margin-bottom:20px; overflow:hidden;
}
.form-section-header {
  background:linear-gradient(135deg,var(--rt-blue),var(--rt-blue-dark));
  color:#fff; padding:13px 20px; font-size:.88rem; font-weight:600;
  display:flex; align-items:center; gap:8px;
}
.form-section-body { padding:22px; }

.form-label { font-size:.85rem; font-weight:600; color:#444; margin-bottom:4px; }
.form-control, .form-select {
  font-size:.88rem; border-color:#dce1e9; border-radius:6px;
}
.form-control:focus, .form-select:focus {
  border-color:var(--rt-blue); box-shadow:0 0 0 .2rem rgba(27,94,155,.15);
}
.required-star { color:var(--rt-red); margin-left:2px; }

/* ── Badges ──────────────────────────────────────────────── */
.badge-paid    { background:#e8f5e9; color:#2e7d32; }
.badge-unpaid  { background:#fdecea; color:#c62828; }
.badge-po      { background:#fff8e1; color:#e65100; }
.badge-c       { background:#e8f5e9; color:#2e7d32; }
.badge-nyc     { background:#fdecea; color:#c62828; }
.badge-pending { background:#fff8e1; color:#e65100; }
.badge-issued  { background:#e3f0fb; color:var(--rt-blue); }

/* ── Tables ──────────────────────────────────────────────── */
.table thead th { background:#f5f7fb; font-size:.8rem; font-weight:700;
  color:#555; text-transform:uppercase; letter-spacing:.4px; border-bottom:2px solid #e5e9f0; }
.table tbody td { font-size:.88rem; vertical-align:middle; }
.table tbody tr:hover { background:#f9fbff; }

/* ── Search Bar ──────────────────────────────────────────── */
.search-bar { position:relative; }
.search-bar .fa-search { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:#aaa; font-size:.85rem; }
.search-bar input { padding-left:34px; }

/* ── Login Page ──────────────────────────────────────────── */
.login-page { min-height:100vh; background:linear-gradient(135deg,var(--rt-blue-dark) 0%,var(--rt-blue) 60%,var(--rt-sky) 100%); display:flex; align-items:center; justify-content:center; }
.login-card { background:#fff; border-radius:14px; padding:44px 40px; width:100%; max-width:420px; box-shadow:0 20px 60px rgba(0,0,0,.25); }
.login-card .logo-wrap { text-align:center; margin-bottom:28px; }
.login-card .logo-wrap img { max-width:160px; }
.login-card h4 { font-size:1.1rem; font-weight:700; color:#1a2332; margin-bottom:6px; }
.login-card .sub { font-size:.85rem; color:#888; margin-bottom:24px; }

/* ── Upload Zone ─────────────────────────────────────────── */
.upload-zone {
  border:2px dashed #dce1e9; border-radius:8px; padding:20px;
  text-align:center; cursor:pointer; transition:border-color .2s, background .2s;
  font-size:.85rem; color:#888;
}
.upload-zone:hover, .upload-zone.dragover { border-color:var(--rt-blue); background:#f0f6ff; }
.upload-zone .fa-cloud-upload-alt { font-size:2rem; color:#c8d6e5; margin-bottom:8px; }
.upload-zone.has-file { border-color:#388e3c; background:#f1faf1; color:#388e3c; }

/* ── Buttons ─────────────────────────────────────────────── */
.btn-primary { background:var(--rt-blue); border-color:var(--rt-blue); }
.btn-primary:hover { background:var(--rt-blue-dark); border-color:var(--rt-blue-dark); }
.btn-danger  { background:var(--rt-red); border-color:var(--rt-red); }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width:768px) {
  #sidebar { width:0; overflow:hidden; }
  #main-content { margin-left:0; }
  body.sidebar-open #sidebar { width:var(--sidebar-w); }
}

/* ── Print (in-app report pages) ─────────────────────────── */
@media print {
  #sidebar, .topbar, .breadcrumb, .btn, .no-print, .alert { display: none !important; }
  #main-content { margin-left: 0 !important; }
  .page-content { padding: 0 !important; }
  .content-card { box-shadow: none !important; border: 1px solid #ccc; }
  body { background: #fff !important; }
  .print-only { display: block !important; }
}
.print-only { display: none; }
