/* Scoped interaction details extend the supplied NPTEL stylesheet. */
[hidden] { display: none !important; }
.candidate-content { min-height: 280px; }
.candidate-loading { padding: 60px 20px; text-align: center; color: #6c757d; }
.candidate-profile-photo { width: 140px; height: 165px; object-fit: cover; border-radius: 6px; }
.candidate-avatar-placeholder { width: 140px; height: 165px; display: flex; align-items: center; justify-content: center; background: #f1f1f1; border-radius: 6px; font-size: 64px; color: #6c757d; }
.candidate-feedback-button { position: fixed; right: 20px; bottom: 20px; z-index: 1020; border-radius: 24px; }
.candidate-form-error { scroll-margin-top: 80px; }
.candidate-summary-score { font-size: 2rem; font-weight: 600; color: #800020; }
.candidate-chart-bars { display: flex; align-items: end; gap: 12px; height: 210px; padding: 20px 0 30px; border-bottom: 1px solid #dee2e6; }
.candidate-chart-column { min-width: 0; flex: 1; display: flex; flex-direction: column; justify-content: end; height: 100%; text-align: center; }
.candidate-chart-column span { font-size: 12px; }
.candidate-chart-bar { background: #800020; min-height: 3px; border-radius: 4px 4px 0 0; }
.candidate-file-preview { max-width: 100%; max-height: 220px; object-fit: contain; }
.candidate-login { max-width: 480px; margin: 40px auto; }
.candidate-footer-logo { max-height: 65px; max-width: 130px; }
.candidate-alert { border-radius: 0; margin-bottom: 0; background: #fff0f3; color: #800020; border-bottom: 1px solid #f2d5dd; font-size: 14px; padding: 10px; text-align: center; }
.candidate-toolbar a { white-space: nowrap; }
.candidate-pdf-preview { width: 100%; min-height: 600px; border: 0; }
.candidate-account { max-width: 340px; overflow-wrap: anywhere; text-align: left; }
.candidate-content .card.bg-info, .candidate-content .card.bg-warning, .candidate-content .card-header.bg-warning { color: #171717 !important; }
.candidate-content .btn-outline-warning { color: #725300; border-color: #946c00; }
.candidate-content .btn-outline-warning:hover { background: #725300; color: white; }
.candidate-content :focus-visible, .navbar :focus-visible { outline: 3px solid #b46578; outline-offset: 3px; }
.candidate-summary-score { font-size: clamp(1.1rem, 2.5vw, 2rem); overflow-wrap: anywhere; }
.candidate-content h1 { font-size: clamp(1.6rem, 3vw, 2.5rem); }
.candidate-archive-table { min-width: 1050px; }
.candidate-archive-table th { vertical-align: middle; }
@media (max-width: 767px) {
  .candidate-content { padding-inline: 24px; }
  .candidate-content .card-header { flex-wrap: wrap; gap: 12px; }
  .candidate-course-banner { flex-direction: column; }
  .candidate-feedback-button { position: static; align-self: flex-end; margin: 0 24px 20px; font-size: 13px; }
  .candidate-chart-bars { gap: 6px; }
  .candidate-chart-column span { font-size: 10px; }
  .candidate-toolbar { gap: 8px; }
}
