body { background: #f6f7f9; }
.CodeMirror { height: 100%; font-family: "Fira Mono", Consolas, Menlo, monospace; font-size: 14px; border: 1px solid #dee2e6; border-radius: .375rem; }
.editor-wrap { height: 520px; }
.cm-locked { background: #e9ecef; color: #495057; }
.statement pre, .statement code { background: #f1f3f5; }
.statement pre { padding: .6rem .8rem; border-radius: .375rem; }
pre.io { background: #212529; color: #e9ecef; padding: .5rem .75rem; border-radius: .375rem; max-height: 220px; overflow: auto; font-size: 13px; white-space: pre-wrap; margin: 0; }
.problem-page .card { box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.stat { font-size: 1.8rem; font-weight: 700; }
.result-row { border-left: 4px solid #dee2e6; }
.result-row.pass { border-left-color: #198754; }
.result-row.fail { border-left-color: #dc3545; }
.quiz-q pre { background: #f1f3f5; padding: .5rem .75rem; border-radius: .375rem; }
.form-check-input:checked + .form-check-label { font-weight: 600; }
.table-sm td, .table-sm th { vertical-align: middle; }
.sticky-side { position: sticky; top: 1rem; }
.progress { height: 10px; }
.bn-text { font-family: "Noto Sans Bengali", "Hind Siliguri", "Vrinda", "Shonar Bangla", sans-serif; font-size: 1.05em; line-height: 1.7; }
@media print { .d-print-none, nav, footer, .btn { display: none !important; } body { background: #fff; } .card { border: 1px solid #ccc !important; break-inside: avoid; } main { max-width: 100% !important; } }
