:root { --brand: #174ea6; --soft: #f4f7fc; }
body { background: var(--soft); min-height: 100vh; color: #182230; }
.bg-primary { background-color: var(--brand) !important; }
.btn-primary { background-color: var(--brand); border-color: var(--brand); }
.hero { background: linear-gradient(135deg, #174ea6, #4c83db); color: #fff; border-radius: 1.25rem; }
.card { border: 0; border-radius: 1rem; box-shadow: 0 .25rem 1rem rgba(17, 39, 73, .08); }
.session-card { transition: transform .15s ease, box-shadow .15s ease; }
.session-card:hover { transform: translateY(-2px); box-shadow: 0 .5rem 1.5rem rgba(17, 39, 73, .13); }
.stat-number { font-size: 2rem; font-weight: 700; color: var(--brand); }
.table > :not(caption) > * > * { padding: .85rem .75rem; vertical-align: middle; }
.required::after { content: " *"; color: #dc3545; }
@media (max-width: 767.98px) {
  .hero { border-radius: .8rem; }
  .table-responsive { font-size: .875rem; }
  .btn-mobile-full { width: 100%; }
}

