*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f7fb;color:#172033}button,input,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:10px;padding:10px 15px;background:#1d4ed8;color:#fff;font-weight:600}button:disabled{opacity:.55;cursor:not-allowed}.secondary{background:#64748b}.danger{background:#dc2626}.linkbtn{background:transparent;color:inherit;padding:6px}.center{min-height:100vh;display:grid;place-items:center;padding:20px}.card{background:#fff;border-radius:18px;padding:28px;box-shadow:0 10px 35px #00000012}.auth{width:min(420px,100%);display:grid;grid-gap:16px;gap:16px}.auth label,.form label{display:grid;grid-gap:6px;gap:6px;font-weight:600}.auth input,.form input,.form textarea,.live>textarea{padding:11px;border:1px solid #cbd5e1;border-radius:9px}.muted{color:#64748b}header{height:60px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:-webkit-sticky;position:sticky;top:0;z-index:30}.brand{font-weight:800;color:#172033;text-decoration:none}nav{display:flex;align-items:center;gap:12px}nav a{color:#334155;text-decoration:none}.layout{display:grid;grid-template-columns:300px 1fr;min-height:calc(100vh - 60px)}.sidebar{padding:18px;overflow:auto}.unit>b{display:block;margin-bottom:6px}.topic button{width:100%;text-align:left;background:transparent;color:#334155;padding:8px}.topic button.active{background:#dbeafe;color:#1d4ed8}.topic .sub{padding-left:26px;font-size:13px}.menuBtn,.mobileClose{display:none}.content{padding:30px;max-width:1100px;width:100%;margin:auto}.content h1{font-size:clamp(24px,4vw,36px)}.prose{line-height:1.75;background:#fff;padding:22px;border-radius:14px}.practice{display:grid;grid-gap:10px;gap:10px;margin:12px 0}.simpleEditor{width:100%;min-height:230px;background:#0f172a;color:#e2e8f0;border-radius:12px;padding:16px;font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.output{background:#020617;color:#d1fae5;border-radius:12px;min-height:70px;padding:14px;white-space:pre-wrap}.editor{border-radius:10px;overflow:hidden;border:1px solid #334155}.admin,.live{padding:25px;max-width:1400px;margin:auto}.adminGrid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(400px,1fr);grid-gap:25px;gap:25px}.form{display:grid;grid-gap:12px;padding:18px;border-radius:14px}.form,.listRow,.student{gap:12px;background:#fff}.listRow,.student{display:flex;align-items:center;justify-content:space-between;border:1px solid #e2e8f0;border-radius:12px;padding:12px;margin:8px 0}.listRow small,.student small{display:block;color:#64748b}.listRow>div:last-child,.student>button{display:flex;gap:6px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.monitor{display:grid;grid-template-columns:1fr 1.5fr;grid-gap:20px;gap:20px}.sharePopup{position:fixed;inset:10%;background:#fff;z-index:50;border-radius:18px;padding:20px;box-shadow:0 20px 60px #0008;overflow:auto}@media(max-width:800px){header{padding:0 12px}.layout{display:block}.sidebar{position:fixed;left:0;top:60px;bottom:0;width:min(88vw,340px);height:auto;z-index:40;transform:translateX(-105%);transition:.2s;box-shadow:10px 0 30px #0002}.sidebar.open{transform:translateX(0)}.mobileClose{display:block;margin-left:auto;background:#e2e8f0;color:#334155}.menuBtn{display:block;margin:12px}.admin,.content,.live{padding:16px}.adminGrid,.monitor{grid-template-columns:1fr}.listRow{align-items:flex-start;flex-direction:column}.listRow>div:last-child{width:100%}.listRow button{flex:1 1}.simpleEditor{min-height:190px}nav a{display:none}}.sidebar{padding:18px 10px 18px 12px;overflow:hidden;color:#172033}.sidebarHeader{padding:0 6px 12px}.sidebarHeader h3{margin:0;text-transform:uppercase;font-size:13px;letter-spacing:.08em;color:#64748b;font-weight:800}.sidebarScroll{height:calc(100% - 35px);overflow-y:auto;overflow-x:hidden;padding-right:4px}.sidebarScroll::-webkit-scrollbar{width:6px}.sidebarScroll::-webkit-scrollbar-track{background:transparent}.sidebarScroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.sidebarScroll::-webkit-scrollbar-thumb:hover{background:#94a3b8}.sidebarUnit{margin-bottom:8px;position:relative}.unitRow{display:flex;align-items:flex-start;min-height:38px;padding:3px 4px 3px 0;border-left:4px solid #2563eb}.sidebarUnit:nth-child(2) .unitRow{border-left-color:#7c3aed}.sidebarUnit:nth-child(3) .unitRow{border-left-color:#f97316}.sidebarUnit:nth-child(4) .unitRow{border-left-color:#06b6d4}.sidebarUnit:nth-child(5) .unitRow{border-left-color:#ec4899}.unitExpand{flex:0 0 30px;width:30px;height:30px;padding:0;margin:0;background:transparent;color:#64748b;display:flex;align-items:center;justify-content:center}.unitExpand:hover{background:#f1f5f9;color:#1d4ed8}.unitTitle{flex:1 1;min-width:0;padding:3px 4px;line-height:1.25}.unitCode{margin-right:5px}.unitName{text-transform:uppercase}.arrow{display:inline-block;font-size:24px;line-height:18px;transform:rotate(0deg);transition:transform .18s ease}.arrow.open{transform:rotate(90deg)}.unitChildren{margin-left:20px}.sidebarTopic{position:relative}.sidebarTopicRow{display:flex;align-items:center;min-width:0;margin:2px 0;border-radius:9px}.sidebarTopicRow.selected{background:#dbeafe}.expandButton{flex:0 0 28px;width:28px;height:30px;padding:0;background:transparent;color:#2563eb;display:flex;align-items:center;justify-content:center}.expandButton:hover{background:#eff6ff}.topicSpacer{flex:0 0 28px;width:28px}.level-1>.sidebarTopicRow .sidebarTopicButton{color:#1d4ed8;font-weight:800}.level-1>.sidebarTopicRow.selected .sidebarTopicButton{color:#1d4ed8}.level-1>.sidebarTopicRow{padding:1px 2px}.level-2{margin-left:8px}.level-2>.sidebarTopicRow .sidebarTopicButton{color:#047857;font-weight:650}.level-2>.sidebarTopicRow{padding:1px 2px}.level-3{margin-left:16px}.level-3>.sidebarTopicRow .sidebarTopicButton{color:#7e22ce;font-weight:600}.level-4{margin-left:24px}.level-4>.sidebarTopicRow .sidebarTopicButton{color:#9333ea;font-weight:600}.sidebarTopicButton{flex:1 1;min-width:0;min-height:34px;padding:6px 7px 6px 2px;background:transparent;border-radius:8px;color:#334155;display:flex;align-items:center;gap:9px;text-align:left;line-height:1.35}.sidebarTopicButton:hover{background:#f1f5f9}.sidebarTopicRow.selected .sidebarTopicButton:hover{background:transparent}.topicText{min-width:0;word-break:normal}.topicCode{font-weight:800}.topicTitle{font-weight:inherit}.topicDot{flex:0 0 9px;width:9px;height:9px;border-radius:50%;display:inline-block}.levelDot-1{background:#2563eb}.levelDot-2{background:#059669}.levelDot-3,.levelDot-4{background:#9333ea}.sidebarChildren{position:relative}.level-1>.sidebarChildren{margin-left:8px}.level-2>.sidebarChildren,.level-3>.sidebarChildren{margin-left:10px}.legendItem{display:flex;align-items:center;gap:10px;font-size:14px;color:#334155;margin:9px 0}.legendDot{width:10px;height:10px;border-radius:50%;display:inline-block}.legendDot.blue{background:#2563eb}.legendDot.green{background:#059669}.legendDot.purple{background:#9333ea}@media (max-width:800px){.sidebar{position:fixed;left:0;top:60px;bottom:0;width:min(88vw,340px);height:auto;z-index:40;transform:translateX(-105%);transition:transform .2s ease;box-shadow:10px 0 30px rgba(0,0,0,.12)}.sidebar.open{transform:translateX(0)}.mobileClose{display:block;margin-left:auto;margin-bottom:5px;background:#e2e8f0;color:#334155}.unitTitle{font-size:14px}.sidebarTopicButton{font-size:13px}}.adminTitleRow{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.adminTitleRow h1{margin-bottom:6px}.adminMessage{padding:13px 16px;border-radius:10px;margin-bottom:18px;font-weight:600}.adminMessage.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.adminMessage.success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.cmsEditorHeader,.topicListHeader{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:14px}.cmsEditorHeader h2,.topicListHeader h2{margin:0}.lessonForm{gap:0}.formSection{display:grid;grid-gap:10px;gap:10px;padding:20px;margin-bottom:15px;background:#fff;border:1px solid #e2e8f0;border-radius:14px}.formSection h3{margin:0 0 4px;color:#172033}.fieldHint{margin:0;color:#64748b;font-size:13px}.formSection textarea{resize:vertical;min-height:100px;line-height:1.6}.cmsActions{display:flex;gap:10px;margin-top:5px}.selectedTopic{border:2px solid #2563eb;background:#eff6ff}.topicActions{display:flex;gap:6px;flex-shrink:0}.lessonPreview{background:#fff;border-radius:16px;padding:30px;box-shadow:0 5px 25px #0000000d}.lessonHeader{border-bottom:1px solid #e2e8f0;padding-bottom:20px;margin-bottom:25px}.lessonHeader small{color:#2563eb;font-weight:700}.lessonHeader h1{margin:8px 0 0;font-size:30px}.lessonPreview section{margin:28px 0}.lessonPreview section h2{color:#1d4ed8;margin-bottom:12px}.lessonText{white-space:pre-wrap}.lessonPreview ul{line-height:1.8;color:#334155}.lessonCode,.lessonOutput{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:18px;overflow-x:auto;white-space:pre-wrap;font:14px/1.6 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.lessonOutput{color:#d1fae5}.lessonPractice{border:2px solid #bfdbfe;background:#eff6ff;padding:20px;border-radius:14px}.lessonPractice h3{color:#172033}@media (max-width:800px){.adminTitleRow,.cmsEditorHeader{flex-direction:column}.cmsEditorHeader{align-items:flex-start}.topicActions{width:100%}.topicActions button{flex:1 1}.lessonPreview{padding:18px}.lessonHeader h1{font-size:24px}}.lesson{width:100%;max-width:950px;margin:0 auto}.lessonHeader{background:#fff;border-radius:18px;padding:28px 30px;margin-bottom:22px;border:1px solid #e2e8f0;box-shadow:0 8px 25px #00000008}.lessonHeader h1{margin:6px 0 0;font-size:clamp(26px,4vw,38px);line-height:1.2;color:#172033}.lessonCode{font-size:14px;font-weight:800;color:#2563eb;letter-spacing:.04em}.lessonSection{background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin:18px 0;overflow:hidden}.lessonSectionTitle{margin:0;padding:16px 22px;font-size:20px;color:#172033;background:#f8fafc;border-bottom:1px solid #e2e8f0}.lessonSectionBody{padding:20px 22px}.lessonText{line-height:1.8;color:#334155}.lessonText p{margin:0 0 14px}.lessonText p:last-child{margin-bottom:0}.lessonBullets{margin:0;padding-left:24px;line-height:1.8;color:#334155}.lessonBullets li{margin:7px 0}.exampleSection{border-left:5px solid #2563eb}.codeSection{border-left:5px solid #7c3aed}.outputSection{border-left:5px solid #059669}.practiceSection{border-left:5px solid #ea580c}.notesSection{border-left:5px solid #ca8a04}.summarySection{border-left:5px solid #0f766e}.expectedOutput{margin:0;padding:18px;background:#020617;color:#d1fae5;border-radius:10px;overflow-x:auto;white-space:pre-wrap;font:14px/1.6 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.practiceInstructions,.practiceQuestion,.practiceStarter{margin-bottom:20px}.practiceInstructions:last-child,.practiceQuestion:last-child,.practiceStarter:last-child{margin-bottom:0}.practiceInstructions h3,.practiceQuestion h3,.practiceStarter h3{margin:0 0 8px;font-size:16px;color:#172033}.practiceQuestion p{margin:0;line-height:1.7;color:#334155}.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;border-radius:12px;padding:14px 16px;margin-bottom:18px}@media (max-width:800px){.lessonHeader{padding:22px}.lessonSectionTitle{font-size:18px}.lessonSectionBody{padding:17px}.lessonText{line-height:1.7}}.sidebar{background:#fff;border-right:1px solid #e2e8f0;padding:18px 12px 24px 18px;overflow-y:auto;position:-webkit-sticky;position:sticky;top:60px;height:calc(100vh - 60px)}.sidebar h3{margin:0 0 14px;text-transform:uppercase;font-size:13px;letter-spacing:.08em;color:#64748b}.unit{margin-bottom:18px}.unitTitle{display:flex;align-items:flex-start;gap:7px;padding:3px 4px 8px 0;color:#172033;font-size:15px;font-weight:800;line-height:1.2;text-transform:uppercase}.unitArrow{color:#64748b;font-size:17px;line-height:16px;flex-shrink:0}.topic{margin:0}.topicBtn{width:100%;display:flex;align-items:flex-start;gap:7px;text-align:left;background:transparent;color:#2563eb;padding:7px 8px 7px 20px;border-radius:9px;font-size:15px;font-weight:750;line-height:1.25}.topicBtn:hover{background:#eff6ff}.topicBtn.active{background:#dbeafe;color:#1d4ed8}.topicArrow{font-size:15px;line-height:18px;flex-shrink:0}.subBtn{width:100%;display:block;text-align:left;background:transparent;color:#3f8f68;padding:7px 8px 7px 48px;border-radius:9px;font-size:14px;font-weight:700;line-height:1.25}.subBtn:hover{background:#f0fdf4}.subBtn.active{background:#dbeafe;color:#2563eb}.subBtn:after,.subBtn:before,.topic button:after,.topic button:before{content:none!important}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.sidebar::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width:800px){.sidebar{padding:18px 12px 24px 18px}.topicBtn{font-size:15px}.subBtn{font-size:14px;padding-left:48px}}.labAdminPanel{margin-top:25px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:20px}.labAdminHeader{margin-bottom:18px}.labAdminHeader h2{margin:0 0 5px}.labAdminCard{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:16px;margin:12px 0}.labAdminProblem{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.labAdminProblem strong{display:block;color:#172033;font-size:16px;margin-bottom:6px}.labAdminProblem p{margin:0;color:#64748b;line-height:1.5}.solutionControls{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}.solutionOn{background:#16a34a}.solutionOff{background:#64748b}.solutionEditor{margin-top:18px;padding-top:18px;border-top:1px solid #e2e8f0;display:grid;grid-gap:12px;gap:12px}.solutionEditor h3{margin:0}.solutionEditor input,.solutionEditor textarea{width:100%;padding:11px;border:1px solid #cbd5e1;border-radius:9px}@media (max-width:800px){.labAdminProblem{flex-direction:column}.solutionControls{width:100%}.solutionControls button{flex:1 1}}.labPractice{width:100%;margin-top:24px;padding:20px;background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-sizing:border-box}.labHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.labHeader h2{margin:0 0 6px;font-size:20px}.labHeader h3{margin:0;font-size:17px}.saveStatus{font-size:13px;color:#64748b;white-space:nowrap}.labProblem{margin-bottom:18px;padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}.labProblem h3,.programInput h3,.programOutput h3,.testResults h3{margin-top:0;margin-bottom:10px}.labProblem p{line-height:1.6}.labEditor{margin-bottom:16px}.labEditor .simpleEditor,.programInput .simpleEditor{width:100%;min-height:180px;padding:14px;box-sizing:border-box;font-family:monospace;font-size:14px;line-height:1.5;border:1px solid #cbd5e1;border-radius:10px;resize:vertical}.programInput{margin-bottom:16px}.programInput .simpleEditor{min-height:110px}.labActions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.labActions button{min-height:40px}.programOutput{margin-top:18px}.programOutput .output{min-height:70px;margin:0;padding:14px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;background:#0f172a;color:#f8fafc;border-radius:10px;font-family:monospace}.testResults{margin-top:20px;padding-top:18px;border-top:1px solid #e2e8f0}.testResult{margin:8px 0;padding:12px 14px;border-radius:10px;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;gap:12px}.testResult.passed{border-left:4px solid #16a34a}.testResult.failed{border-left:4px solid #dc2626}.testResult strong{font-size:14px}.testResultDetails{width:100%;margin-top:10px}.testResultDetails p{margin:8px 0 4px}.testResultDetails pre{margin:0 0 10px;padding:10px;overflow-x:auto;white-space:pre-wrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.testSummary{margin-top:14px;font-weight:600}@media (max-width:800px){.labPractice{padding:14px}.labActions,.labHeader{flex-direction:column}.labActions button{width:100%}.testResult{align-items:flex-start;flex-direction:column}}.testCasePanel{margin-top:24px;padding:20px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px}.testCaseHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.testCaseHeader h3{margin:0 0 5px;font-size:20px}.testCaseHeader p{margin:0;color:#64748b}.testCaseCount{padding:7px 12px;border-radius:20px;background:#e2e8f0;color:#334155;font-size:13px;font-weight:600}.testCaseGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:16px;gap:16px}.testCaseCard{background:#fff;border:1px solid #cbd5e1;border-radius:14px;padding:16px;transition:.2s ease}.testCaseCard:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(15,23,42,.08)}.testCaseCard.passed{border-color:#22c55e}.testCaseCard.failed{border-color:#ef4444}.testCaseCardHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.testCaseCardHeader strong{font-size:14px;color:#172033}.testCaseCardHeader span{font-size:13px;font-weight:600}.testCaseSection{margin-top:16px}.testCaseLabel{margin-bottom:7px;font-size:13px;font-weight:700;color:#475569}.testCaseInput{margin:0;padding:12px;background:#0f172a;color:#f8fafc;border-radius:9px;font-family:monospace;white-space:pre-wrap}.testCaseCondition{margin:0;padding:11px 12px;background:#f1f5f9;border-radius:9px;color:#334155;line-height:1.5}.testCaseHidden{margin-top:16px;padding:12px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:9px;color:#64748b;font-size:13px}.testCaseHidden small{display:block;margin-top:4px;color:#94a3b8}.testCaseResult{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:16px}.testCaseResult>div{min-width:0}.testCaseResult span{display:block;margin-bottom:5px;font-size:12px;font-weight:700;color:#64748b}.testCaseResult pre{margin:0;padding:10px;background:#f1f5f9;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere}.testSummaryCard{margin-top:20px;padding:20px;background:#fff;border:1px solid #cbd5e1;border-radius:16px}.testSummaryHeader{display:flex;align-items:center;justify-content:space-between;gap:20px}.testSummaryHeader h3{margin:0 0 5px}.testSummaryHeader p{margin:0;color:#64748b}.testPercentage{font-size:30px}.testProgress{height:12px;margin-top:18px;overflow:hidden;background:#e2e8f0;border-radius:20px}.testProgressBar{height:100%;background:#16a34a;border-radius:20px;transition:width .4s ease}.testSummaryMessage{color:#475569}@media (max-width:700px){.testCaseHeader{align-items:flex-start;flex-direction:column}.testCaseResult{grid-template-columns:1fr}.testSummaryHeader{align-items:flex-start}}.testResultBox{min-width:0}.testResultBox span{display:block;margin-bottom:6px;font-size:12px;font-weight:700;color:#64748b}.testResultBox pre{margin:0;min-height:42px;padding:11px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere}.testResultMessage{margin-top:14px;padding:11px 12px;border-radius:9px;font-size:13px;line-height:1.5;font-weight:600}.testResultMessage.success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.testResultMessage.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.testCaseCard.passed
.testCaseCardHeader span{color:#15803d}.testCaseCard.failed
.testCaseCardHeader span{color:#b91c1c}@media (max-width:700px){.testCaseResult{grid-template-columns:1fr}}.testCaseTitle{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.testCaseType{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.4px;white-space:nowrap}.testCaseType.basic{background:#dcfce7;color:#166534;border:1px solid #86efac}.testCaseType.boundary{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.testCaseType.edge{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.testCaseType.special{background:#f3e8ff;color:#6b21a8;border:1px solid #d8b4fe}.testResultCount{margin:6px 0 0;font-size:15px;font-weight:700}.testPercentage{font-size:32px;font-weight:800}.testSummaryMessage{margin-top:14px;padding:12px 14px;border-radius:10px;font-weight:600;text-align:center}.testFailureHint{margin-top:10px;padding:10px 12px;border-radius:8px;background:#fffbeb;border:1px solid #fcd34d;color:#92400e;font-size:14px;font-weight:600;line-height:1.5}.testCaseCategorySummary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 18px}.categoryBadge{display:inline-flex;align-items:center;padding:6px 11px;border-radius:999px;font-size:12px;font-weight:700;line-height:1;white-space:nowrap}.categoryBadge.basic{background:#dcfce7;color:#166534;border:1px solid #86efac}.categoryBadge.boundary{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.categoryBadge.edge{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.categoryBadge.special{background:#f3e8ff;color:#7e22ce;border:1px solid #d8b4fe}@media (max-width:700px){.testCaseCategorySummary{gap:6px}.categoryBadge{font-size:11px;padding:5px 9px}}.labProblemItem{margin-bottom:24px}.labProgressCard{margin-bottom:12px;padding:14px 16px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.labProgressHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.labProgressHeader strong{font-size:14px;color:#374151}.labProgressStatus{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.labProgressStatus.completed{background:#dcfce7;color:#166534;border:1px solid #86efac}.labProgressStatus.progress{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.labProgressStatus.notAttempted{background:#f3f4f6;color:#4b5563;border:1px solid #d1d5db}.labProgressStats{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px;color:#6b7280}.labProgressStats strong{font-size:14px;color:#111827}.labProgressTrack{width:100%;height:8px;overflow:hidden;border-radius:999px;background:#e5e7eb}.labProgressFill{height:100%;border-radius:999px;background:#16a34a;transition:width .3s ease}@media (max-width:700px){.labProgressHeader{align-items:flex-start;flex-direction:column}.labProgressStatus{font-size:10px}.labProgressStats{font-size:11px}}.topicCompletionCard{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0;padding:18px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}.topicCompletionCard strong{display:block;margin-bottom:5px;font-size:15px;color:#111827}.topicCompletionCard p{margin:0;font-size:13px;color:#6b7280}.topicCompletionCard button{flex-shrink:0}@media (max-width:700px){.topicCompletionCard{align-items:stretch;flex-direction:column}}.studentProgressDashboard{margin:0 0 28px;padding:24px;background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 8px 30px #0000000d}.studentProgressDashboard .adminSectionHeader{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.studentProgressDashboard .adminSectionHeader h2{margin:0;font-size:25px}.studentProgressDashboard .adminSectionHeader p{margin:6px 0 0}.adminStatsGrid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));grid-gap:14px;gap:14px;margin-bottom:24px}.adminStatCard{min-height:100px;padding:17px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;display:flex;flex-direction:column;justify-content:space-between;gap:8px}.adminStatLabel{color:#475569;font-size:14px;font-weight:600}.adminStatValue{font-size:28px;line-height:1;color:#172033}.studentProgressTableWrapper{width:100%;overflow-x:auto;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.studentProgressTable{width:100%;min-width:760px;border-collapse:collapse;font-size:14px}.studentProgressTable th{padding:14px 15px;background:#f8fafc;color:#475569;font-size:13px;font-weight:700;text-align:left;border-bottom:1px solid #e2e8f0;white-space:nowrap}.studentProgressTable td{padding:15px;border-bottom:1px solid #eef2f7;vertical-align:middle}.studentProgressTable tbody tr:last-child td{border-bottom:0}.studentProgressTable tbody tr:hover{background:#f8fafc}.studentProgressTable td:first-child,.studentProgressTable th:first-child{width:50px;text-align:center}.studentProgressTable td:nth-child(3),.studentProgressTable th:nth-child(3){min-width:210px}.studentProgressTable td strong{color:#172033}.studentProgressCell{min-width:180px;display:flex;align-items:center;gap:10px}.studentProgressTrack{flex:1 1;height:9px;background:#e2e8f0;border-radius:999px;overflow:hidden}.studentProgressFill{height:100%;background:#2563eb;border-radius:999px;transition:width .25s ease}.studentProgressCell>span{min-width:42px;text-align:right;font-weight:700;color:#334155}.studentProgressDashboard .card{margin-top:10px}@media (max-width:1100px){.adminStatsGrid{grid-template-columns:repeat(3,minmax(140px,1fr))}}@media (max-width:700px){.studentProgressDashboard{padding:16px;border-radius:14px}.studentProgressDashboard .adminSectionHeader{align-items:flex-start;flex-direction:column;gap:8px}.adminStatsGrid{grid-template-columns:repeat(2,minmax(130px,1fr))}.adminStatCard{min-height:90px;padding:14px}.adminStatValue{font-size:24px}}@media (max-width:430px){.adminStatsGrid{grid-template-columns:1fr}}