/* Legacy page-specific styles kept separate from the shared foundation. */

.main-nickname { min-height: calc(100vh - 56px); display: flex; align-items: center; justify-content: center; }
.nickname-card { min-width: 320px; max-width: 480px; width: 100%; }
.card-soft { background: #f8f9fa; border: 0; border-radius: .35rem; box-shadow: 0 1px 2px rgba(0,0,0,.1); min-height: 120px; }
.section-title { text-align: center; font-weight: 500; margin: 1.25rem 0 .75rem; }
.stats-title { text-align: center; font-weight: 500; margin-bottom: .75rem; }
.stat-single, .stat-grid { text-align: center; }
.stat-grid { display: flex; justify-content: center; gap: 2rem; }
.label { font-size: .9rem; color: #444; }
.value { font-size: 1.5rem; font-weight: 600; }
.screenshots { display: block; height: 500px; width: auto; border: 3px solid black; margin: 0 50px; }
.instructions { margin: 0 50px; }
.title-main { margin: 0; }
.register-row { margin-top: 1rem; }
.register-title { text-align: center; text-shadow: 0 2px 6px rgba(0,0,0,.3), 0 8px 20px rgba(100,120,255,.25); }
.mistake-block { margin: 1rem 0; }
.mistake-label { font-weight: 600; margin-bottom: .5rem; color: #333; }
.mistake-code { background: #f8f9fa; padding: 1rem; border-radius: 4px; border-left: 4px solid #dc3545; overflow-x: auto; font-family: 'Courier New', Courier, monospace; font-size: .9rem; line-height: 1.5; margin: 0; }
.mistake-code code { background: transparent; padding: 0; color: #212529; white-space: pre; }

.task_set-content .task-set-item {
  cursor: pointer;
  transition: all 0.2s ease;
  border: 2px solid #dee2e6;
  margin-bottom: 1rem;
  padding: 1.25rem;
  background-color: #fff;
  border-radius: 0.35rem;
  box-shadow: 0 1px 3px rgba(0,0,0,.12);
  display: flex;
  align-items: flex-start;
  gap: 1.5rem;
}
.task_set-content .task-set-item:hover {
  border-color: #007bff;
  box-shadow: 0 4px 8px rgba(0,123,255,.2);
  transform: translateY(-2px);
}
.task_set-content .task-set-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: .5rem;
  color: #333;
}
.task-set-code {
  font-family: 'Courier New', monospace;
  background-color: #f8f9fa;
  padding: .25rem .5rem;
  border-radius: 4px;
  font-size: .875rem;
  display: inline-block;
  border: 1px solid #dee2e6;
}
.task_set-content .task-set-meta {
  font-size: .875rem;
  color: #676e75;
  line-height: 1.5;
}
.task_set-content .task-set-description {
  margin-top: .5rem;
  padding: .6rem .8rem;
  background: #f9f9f9;
  border-left: 4px solid #007bff;
  border-radius: 4px;
  font-style: italic;
}

/* Teacher task-set selector */
.teacher-dashboard-layout { display: flex; gap: 2rem; align-items: flex-start; }
.task-sets-column { flex: 1; order: 1; }
.add-button-column { width: 300px; flex-shrink: 0; order: 2; }
.task-set-item-left { flex: 1 1 0; min-width: 0; }
.task-set-item-right { flex: 2 2 0; min-width: 0; display: flex; flex-direction: column; gap: .5rem; }
.task-set-item-header, .task-item-header { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.task-favorite-button { flex-shrink: 0; border: 0; background: transparent; color: #adb5bd; padding: .25rem .35rem; border-radius: 999px; line-height: 1; cursor: pointer; transition: color .2s, background-color .2s, transform .2s; }
.task-favorite-button:hover { color: #f0ad4e; background: rgba(240,173,78,.12); transform: scale(1.05); }
.task-favorite-button.is-favorite { color: #f0ad4e; }
.task-set-teacher-description { border-left-color: #0f766e; background: #f0fdf9; color: #374151; font-style: normal; font-size: .875rem; margin-top: .5rem; }
.create-new-card { border: 2px dashed #28a745; background: #f8f9fa; cursor: pointer; transition: all .2s; border-radius: .35rem; text-align: center; padding: 2rem; color: #28a745; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.create-new-card:hover { border-style: solid; background: #e9f7ef; box-shadow: 0 4px 8px rgba(40,167,69,.2); transform: translateY(-2px); }
.create-new-card i { font-size: 2rem; margin-bottom: .5rem; display: block; }
.loading-spinner { text-align: center; padding: 3rem; }
.test-details-line-pass { color: #218838; font-weight: 600; }
.test-details-line-fail { color: #c82333; font-weight: 600; }

/* Student problem and test results */
.student-problem-page { padding-bottom: 30px; }
.top-info-card { display: flex; flex-direction: column; }
.top-info-card .card-header, .test-results-card .card-header { min-height: 64px; display: flex; align-items: center; }
.top-info-card .card-header h3, .top-info-card .card-header h4, .test-results-card .card-header h4 { margin: 0; }
.top-info-card .card-body { display: flex; flex-direction: column; flex: 1 1 auto; justify-content: space-between; }
.demo-info-note {
  margin-top: auto;
  padding: 0.75rem 1rem;
  border: 1.5px dashed #64b5f6;
  background-color: #f0f7ff;
  border-radius: 6px;
  color: #1e3a8a;
  font-style: italic;
  font-size: 0.95rem;
  line-height: 1.5;
}
.starter { width: 40%; }
.solution { width: 58%; margin-left: 2%; }
.test-results-card { display: flex; flex-direction: column; overflow: hidden; }
.test-results-card > .card-body { display: flex; flex-direction: column; flex: 1 1 auto; height: 100%; min-height: 0; overflow-y: auto; }
.guidance-summary { cursor: pointer; position: relative; list-style: none; outline: none; }
.guidance-summary::-webkit-details-marker { display: none; }
.guidance-summary::after { content: "▼"; position: absolute; right: 1.25rem; top: 50%; transform: translateY(-50%) rotate(-90deg); font-size: .8rem; transition: transform .2s; color: #6c757d; }
details[open] > .guidance-summary::after { transform: translateY(-50%) rotate(0deg); }
test-results-element, .test-results-panel { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }
.flex-grow-1 { flex-grow: 1 !important; }
.test-result-summary { flex: 0 0 auto; padding: .75rem 1rem; border-radius: .25rem; font-weight: 700; margin-bottom: .75rem; border: 1px solid #dee2e6; background: #f8f9fa; }
.test-result-summary.full-pass, .test-result-badge.full-pass { background: #d4edda; border-color: #b7df9f; color: #155724; }
.test-result-summary.partial-pass, .test-result-badge.partial-pass { background: #fff9c4; border-color: #f4e28a; color: #856404; }
.test-result-summary.no-pass, .test-result-badge.no-pass { background: #f8d7da; border-color: #f5c6cb; color: #721c24; }
.test-result-badge { padding: .25em .6em; font-size: .75em; font-weight: 700; border-radius: .25rem; border: 1px solid transparent; margin-left: .5rem; }
.teacher-hint-box { padding: .6rem 1rem; margin-bottom: .5rem; background: #cce5ff; border-left: 4px solid #004085; color: #004085; }
.test-results-details { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: .5rem .75rem; }
.test-summary-block { margin-bottom: 1rem; font-weight: 500; color: #333; }
.test-card { border: 1px solid #e0e0e0; border-radius: 8px; margin-bottom: 1rem; overflow: hidden; background: #fff; box-shadow: 0 2px 4px rgba(0,0,0,.05); }
.test-card-pass { border-left: 4px solid #28a745; }
.test-card-fail { border-left: 4px solid #dc3545; }
.test-card-header { padding: .75rem 1rem; background: #f8f9fa; border-bottom: 1px solid #e0e0e0; display: flex; align-items: center; font-weight: 600; font-size: 1.05rem; }
.test-card-pass .test-card-header { color: #28a745; background: #f0fff4; }
.test-card-fail .test-card-header { color: #dc3545; background: #fff5f5; }
.test-icon { margin-right: .5rem; font-size: 1.2rem; }
.test-card-body { padding: 1rem; display: flex; flex-direction: column; gap: .75rem; }
.test-section-title { font-size: .85rem; font-weight: 600; color: #6c757d; text-transform: uppercase; margin-bottom: .25rem; letter-spacing: .5px; }
.test-code-block { margin: 0; padding: .75rem; background: #f8f9fa; border-radius: 4px; font-family: monospace; font-size: .9rem; color: #333; border: 1px solid #e9ecef; white-space: pre-wrap; word-break: break-word; }
.test-error-block { background: #fff3cd; border-left: 4px solid #ffc107; padding: 1rem; border-radius: 4px; margin-bottom: 1rem; font-family: monospace; white-space: pre-wrap; word-break: break-word; }

/* Legacy student attempts and task-set statistics */
.attempts-column { flex: 1; order: 1; }
.statistics-column { width: 400px; flex-shrink: 0; order: 2; position: sticky; top: calc(80px + 1rem); align-self: flex-start; }
.statistics-sticky { position: static; }
.attempts-header { cursor: pointer; padding: 1rem 1.25rem; background: #f8f9fa; border: 2px solid #dee2e6; border-radius: .35rem; margin-bottom: 1rem; transition: all .2s; }
.attempts-header:hover { background: #e9ecef; border-color: #007bff; }
.attempts-header-title { display: flex; align-items: center; position: relative; }
.attempts-header-title h4 { flex: 1; text-align: center; margin: 0; }
.attempts-header-title .expand-icon { position: absolute; right: 0; }
.attempts-header h4 { margin: 0; font-size: 1.1rem; font-weight: 600; }
.expand-icon { transition: transform .2s; }
.expand-icon.expanded { transform: rotate(180deg); }
.attempts-list { display: none; margin-top: .5rem; }
.attempts-list.expanded { display: block; }
.attempt-item { border: 2px solid #dee2e6; padding: 1rem; margin-bottom: .75rem; background: #fff; border-radius: .35rem; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.attempt-item.success { border-left: 4px solid #28a745; }
.attempt-item.failure { border-left: 4px solid #dc3545; }
.attempt-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }
.attempt-number { font-weight: 600; font-size: 1rem; }
.attempt-meta { font-size: .875rem; color: #6c757d; margin-bottom: .5rem; }
.attempt-code { background: #f8f9fa; padding: .75rem; border-radius: .25rem; font-family: 'Courier New', monospace; font-size: .875rem; white-space: pre-wrap; word-wrap: break-word; border: 1px solid #dee2e6; max-height: 200px; overflow-y: auto; }
.model-answer-code { background: #eaf8ee; border: 1px solid #9ed6ac; border-left: 4px solid #28a745; }
.model-answer-code code { color: #155724; }
.stat-box { background: #f8f9fa; border: 2px solid #dee2e6; border-radius: .35rem; padding: 1rem; margin-bottom: 1rem; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.stat-box h5 { font-size: 1rem; font-weight: 600; margin-bottom: .75rem; color: #333; }
.stat-item { display: flex; justify-content: space-between; padding: .5rem 0; border-bottom: 1px solid #dee2e6; }
.stat-item:last-child { border-bottom: none; }
.stat-label { font-size: .875rem; color: #6c757d; }
.stat-value { font-size: .875rem; font-weight: 600; color: #333; }

/* Create task set form */
.create-task-set-container { width: 100%; }
.task-set-form { width: 100%; }
.form-section { background: var(--card, #fff); padding: 1.5rem; border-radius: var(--radius, 8px); box-shadow: var(--shadow); border: 1px solid var(--border); margin-bottom: 1.5rem; }
.form-section h5 { font-weight: 700; margin-bottom: 1rem; color: var(--text); border-bottom: 2px solid var(--brand); padding-bottom: .5rem; }
.task-selector { display: flex; flex-direction: column; gap: 1rem; }
.task-item { background: white; border: 1px solid #dee2e6; border-radius: 6px; padding: 1rem; cursor: pointer; transition: all .2s; display: flex; align-items: center; gap: 1rem; }
.task-item:hover { border-color: #007bff; box-shadow: 0 2px 8px rgba(0,123,255,.15); }
.task-item input[type="checkbox"] { width: 20px; height: 20px; cursor: pointer; flex-shrink: 0; }
.task-item.selected { background: #e7f3ff; border-color: #007bff; }
.task-item-content { flex: 1; }
.task-item-title { font-weight: 500; margin-bottom: .25rem; }
.task-item-type { font-size: .875rem; color: #6c757d; }
.task-item-actions, .selected-task-item-controls { display: flex; gap: .5rem; flex-shrink: 0; }
.preview-btn, .remove-task-btn { background: none; border: none; color: #0056b3; cursor: pointer; padding: .25rem .5rem; font-size: .9rem; }
.selected-tasks-list { background: white; border: 1px solid #dee2e6; border-radius: 6px; padding: 1rem; min-height: 100px; }
.selected-task-item { background: #e7f3ff; border-left: 4px solid #007bff; padding: .75rem; margin-bottom: .5rem; border-radius: 4px; display: flex; justify-content: space-between; align-items: center; cursor: move; user-select: none; }
.selected-task-item:last-child { margin-bottom: 0; }
.selected-task-item-content { flex: 1; }
.selected-task-item-title { font-weight: 500; margin-bottom: .25rem; }
.selected-task-item-type, .empty-selected { font-size: .875rem; color: #6c757d; }
.drag-handle { cursor: grab; color: #6c757d; padding: 0 .5rem; }
.empty-selected { font-style: italic; padding: 2rem 1rem; text-align: center; }
.form-group label { font-weight: 500; color: #333; }
.form-control:focus { border-color: #007bff; box-shadow: 0 0 0 .2rem rgba(0,123,255,.25); }
.btn-submit { display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; background: var(--green); border: none; border-radius: var(--radius); padding: .75rem 1rem; font-size: .95rem; font-weight: 700; color: #fff; cursor: pointer; text-decoration: none; box-shadow: var(--shadow); }
.btn-cancel, a.btn-cancel:link, a.btn-cancel:visited { display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; background: var(--card); border: 1px solid var(--red); border-radius: var(--radius); padding: .75rem 1rem; font-size: .95rem; font-weight: 600; color: var(--red); cursor: pointer; text-decoration: none; }
.button-group { display: flex; flex-direction: row; gap: .75rem; margin-top: 1.5rem; }
.error-message, .success-message { padding: 1rem; border-radius: 6px; margin-bottom: 1rem; }
.error-message { background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; }
.success-message { background: #d4edda; border: 1px solid #c3e6cb; color: #155724; }

/* Admin token management */
.admin-section { background: #f8f9fa; padding: 2rem; border-radius: 8px; border: 1px solid #dee2e6; }
.admin-section h3 { color: #333; font-weight: 600; margin-bottom: 1.5rem; display: flex; align-items: center; gap: .75rem; }
.admin-card { border: 1px solid #dee2e6; border-radius: 6px; box-shadow: 0 1px 3px rgba(0,0,0,.08); transition: box-shadow .2s; }
.admin-card:hover { box-shadow: 0 2px 6px rgba(0,0,0,.12); }
.admin-card .card-body { padding: 1.5rem; }
.admin-card .card-title { color: #333; font-weight: 600; margin-bottom: .5rem; }
#token-display { background: #cfe2ff; border: 1px solid #b6d4fe; border-radius: 6px; padding: 1.25rem; color: #084298; }
#token-value { background: white !important; border: 1px solid #dee2e6 !important; padding: .75rem !important; border-radius: 4px !important; font-family: 'Courier New', monospace; font-size: .875rem; word-break: break-all; user-select: all; margin-bottom: .75rem; }
.token-items { max-height: 350px; overflow-y: auto; }
.token-item { padding: .75rem; border-bottom: 1px solid #dee2e6; display: flex; justify-content: space-between; align-items: center; }
.token-item:last-child { border-bottom: none; }
.tokens-list { border: 1px solid #dee2e6; border-radius: 4px; background: white; }
#create-token-btn, #copy-token-btn { transition: all .2s; }
#create-token-btn:hover:not(:disabled), #copy-token-btn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 2px 6px rgba(0,0,0,.15); }
.btn-outline-danger:hover { background: #dc3545; border-color: #dc3545; }

/* Student task-set page and replay viewer */
.task_set-layout { display: flex; min-height: calc(100vh - 56px); }
.task_set-sidebar { width: 480px; flex-shrink: 0; background: #f8f9fa; border-right: 1px solid #dee2e6; padding: 2rem 1.5rem; }
.task_set-sidebar-sticky { position: sticky; top: 2rem; }
.task_set-sidebar-heading { margin-bottom: 1.5rem; font-weight: 700; font-size: 1.1rem; text-transform: uppercase; letter-spacing: .06em; color: #495057; }
.progress-card { background: white; border: 1px solid #dee2e6; border-radius: .5rem; padding: 1.5rem; margin-bottom: 2rem; box-shadow: 0 1px 4px rgba(0,0,0,.06); }
.progress-count-row { margin-bottom: 1.25rem; }
.progress-count-label { font-size: .75rem; color: #6c757d; margin-bottom: .5rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.progress-count-value { font-size: 2.75rem; font-weight: 700; color: #333; line-height: 1; }
.progress-count-done { color: #0056b3; }
.progress-count-sep { color: #adb5bd; font-weight: 400; }
.task_set-progress-bar-wrap { height: 1.25rem; margin-bottom: 1rem; background: #e9ecef; border-radius: 1rem; overflow: hidden; }
.task_set-progress-bar { width: 0%; transition: width .4s; display: flex; align-items: center; background: #1e7e34 !important; justify-content: center; color: white; font-weight: 600; font-size: .75rem; border-radius: 1rem; }
.progress-percentage-row { font-size: .8rem; color: #6c757d; text-align: center; font-weight: 500; }
.task_set-divider { margin: 1.75rem 0; border: none; border-top: 1px solid #dee2e6; }
#info-section { max-height: 300px; overflow-y: auto; padding-right: .5rem; }
.info-heading { font-weight: 600; margin-bottom: 1rem; font-size: 1rem; margin-top: 0; }
.info-description { font-size: .875rem; color: #555; line-height: 1.6; margin: 0; }
.task-completed { color: #1e7e34; font-weight: 600; }
.task-completed i, .task-in-progress i { margin-right: .5rem; }
.task-completed i { color: #1e7e34; }
.task-in-progress { color: #b35a00; }
.task-in-progress i { color: #b35a00; }
.task_set-info-heading { font-weight: 700; margin-bottom: .75rem; font-size: .875rem; text-transform: uppercase; letter-spacing: .06em; color: #495057; margin-top: 0; }
.task_set-info-text { font-size: 1rem; color: #6c757d; line-height: 1.65; margin: 0; }
.task_set-content { flex: 1; padding: 3rem 2.5rem 2rem; min-width: 0; }
.task_set-title { font-size: 2rem; font-weight: 700; color: #212529; }
.task_set-content .task-set-item { display: flex; align-items: center; gap: 1rem; border-width: 1px; margin-bottom: .5rem; padding: .75rem 1rem; box-shadow: 0 1px 2px rgba(0,0,0,.06); }
.task_set-content .task-set-title { font-size: 1rem; margin-bottom: .25rem; }
.task-set-item-number { flex-shrink: 0; width: 2rem; height: 2rem; border-radius: 50%; background: #e9ecef; color: #6c757d; font-size: .8rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.task-set-item-number.completed { background: #28a745; color: white; }
.task-set-item-body { flex: 1; min-width: 0; }
.task-set-item-chevron { flex-shrink: 0; color: #ced4da; font-size: .9rem; }
.replay-board { display: flex; gap: 12px; margin-top: 8px; align-items: stretch; }
.replay-column-inner { height: 300px; overflow-y: auto; }
.replay-controls { display: flex; flex-direction: column; gap: 6px; }
.replay-slider { width: 100%; cursor: pointer; accent-color: #6c757d; }
.replay-controls-buttons { display: flex; align-items: center; justify-content: center; gap: 12px; }
.replay-column { flex: 1; min-height: 60px; background: #efefff; border: 1px solid #efefff; border-radius: 4px; padding: 8px; }
.replay-column:last-child { background: #ffffaa; border-color: #ffffaa; }
.replay-column-header { font-size: .8rem; font-weight: 600; color: #6c757d; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 6px; }
.replay-block { background: #efefef; border: 1px solid lightgray; border-radius: 10px; padding: 3px 8px; margin: 3px 0; font-family: monospace; font-size: .82rem; white-space: pre; }
.replay-block.highlight { background: #fff3cd; border-color: #ffc107; box-shadow: 0 0 0 2px rgba(255,193,7,.3); }
.replay-block.given { opacity: .55; }
.replay-blank { display: inline-block; background: #e9f5ff; border-bottom: 1px solid #74b9ff; min-width: 2ch; padding: 0 2px; color: #0984e3; }
.replay-block.debug { opacity: .35; font-style: italic; }
.replay-block-inline { display: inline; padding: 1px 6px; vertical-align: baseline; }
.replay-run-badge { display: inline-block; padding: 3px 10px; border-radius: 4px; font-weight: 600; font-size: .85rem; }
.replay-run-success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.replay-run-fail { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }

/* Student task statistics legacy summary */
.sts-outer { padding-left: 6rem; padding-right: 6rem; }
.sts-page-header { background: white; border-radius: .5rem; padding: 1.25rem 1.5rem; display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; border-left: 5px solid rgb(168,180,247); box-shadow: 0 2px 6px rgba(0,0,0,.07); }
.sts-task-title { margin: 0; font-size: 1.6rem; font-weight: 700; color: #212529; flex: 1; }
.sts-student-badge { background: rgb(168,180,247); color: #2d3148; padding: .4rem 1.1rem; border-radius: 2rem; font-size: .9rem; font-weight: 700; white-space: nowrap; }
.sts-summary-grid, .sts-metrics-cols { display: flex; gap: .5rem; }
.sts-summary-cell { flex: 1; display: flex; flex-direction: column; align-items: center; background: #f8f9fa; border-radius: .4rem; padding: .8rem .5rem .65rem; border: 1px solid #e9ecef; }
.sts-summary-cell.sts-cell-success { background: #f0fbf3; border-color: #c3e6cb; }
.sts-summary-cell.sts-cell-fail { background: #fff5f5; border-color: #f5c6cb; }
.sts-big-num { font-size: 2.1rem; font-weight: 800; line-height: 1; color: #343a40; }
.sts-cell-success .sts-big-num { color: #28a745; }
.sts-cell-fail .sts-big-num { color: #dc3545; }
.sts-cell-label, .sts-metric-sub { font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: #6c757d; margin-top: .3rem; }
.sts-metric-col { flex: 1; display: flex; flex-direction: column; }
.sts-metric-box { text-align: center; }
.sts-green-box { border-top: 3px solid #28a745; }
.sts-red-box { border-top: 3px solid #dc3545; }
.sts-blue-box { border-top: 3px solid #4a90e2; }
.sts-gray-box { border-top: 3px solid #adb5bd; }
.sts-metric-value { font-size: 1.85rem; font-weight: 800; color: #343a40; line-height: 1.1; margin: .2rem 0 .1rem; }

/* Admin dashboard legacy cards */
.stat-card { text-align: center; padding: 1.5rem; }
.stat-card .stat-label { font-size: .9rem; color: #666; margin-bottom: .5rem; }
.stat-card .stat-value { font-size: 2.5rem; font-weight: bold; color: #007bff; }
.main-page-text-block { border: 2px solid #cbced2; border-radius: 5px; padding: .5rem; }
.welcome_text_student { margin-top: 100px; }

@media (max-width: 768px) {
  .admin-section { padding: 1.5rem; }
  .admin-section h3 { font-size: 1.25rem; }
  .admin-card .card-body { padding: 1rem; }
  .token-items { max-height: 250px; }
}
@media (min-width: 992px) {
  .model-answer-sticky { position: sticky; top: 1rem; }
  .model-answer-sticky .model-answer-code { max-height: 70vh; overflow-y: auto; }
}
