.question-hall{max-width:1440px}.hall-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.hall-library-tabs{display:flex;padding:4px;gap:4px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px}.hall-library-tabs a{padding:10px 22px;border-radius:8px;color:var(--text-secondary);font-size:14px;text-decoration:none}.hall-library-tabs a[aria-current]{background:var(--brand-cyan-dim);color:var(--brand-cyan);font-weight:600;box-shadow:inset 0 0 0 1px #00d4ff30}.hall-library-tabs a:hover{color:var(--text-primary)}.hall-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:24px}.hall-eyebrow{color:var(--brand-cyan);font-size:12px;letter-spacing:.1em;margin-bottom:8px}.hall-heading p{max-width:740px;margin-bottom:0}.hall-progress{display:flex;gap:10px;margin:0;flex-shrink:0}.hall-progress div{min-width:86px;padding:14px 16px;border-radius:12px;border:1px solid var(--border-color);background:linear-gradient(145deg,var(--bg-card),var(--bg-secondary))}.hall-progress dt{font-size:12px;color:var(--text-secondary)}.hall-progress dd{margin:6px 0 0;font-size:25px;font-weight:600;font-variant-numeric:tabular-nums}.hall-scenarios{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:20px}.hall-scenarios button{border:1px solid var(--border-color);border-radius:18px;background:var(--bg-secondary);color:var(--text-secondary);padding:7px 13px;cursor:pointer}.hall-scenarios button.selected{border-color:var(--brand-cyan);color:var(--brand-cyan);background:var(--brand-cyan-dim)}.hall-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:18px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary)}.hall-filter,.hall-search{display:grid;gap:7px;font-size:12px;color:var(--text-secondary)}.hall-filter{flex:1 1 115px}.hall-search{flex:3 1 260px}.hall-filter .prd-input,.hall-search .prd-input{width:100%;min-width:0}.hall-table-heading{display:flex;justify-content:space-between;align-items:center;padding:20px 0 12px;font-size:13px;color:var(--text-secondary);gap:12px}.hall-table-heading select{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:5px;color:var(--text-primary);padding:6px}.hall-text-button{border:none;background:transparent;color:var(--brand-cyan);cursor:pointer;margin-left:12px}.hall-table-panel{padding:0}.hall-table th{white-space:nowrap}.hall-table td{padding-top:18px;padding-bottom:18px}.hall-question-link{display:flex;gap:10px;align-items:flex-start;flex-direction:column-reverse;gap:5px;text-decoration:none}.hall-question-link strong{font-weight:600;line-height:1.6;font-size:14px;color:var(--text-primary)}.hall-question-link:hover strong{color:var(--brand-cyan)}.hall-question-number{font-size:11px;color:var(--text-secondary);font-family:monospace}.hall-question-meta{color:var(--text-secondary);font-size:11px;margin-top:6px;line-height:1.5;font-weight:400}.hall-state,.hall-role,.hall-difficulty{font-size:12px;white-space:nowrap}.hall-state{color:var(--text-secondary)}.hall-state-scored,.hall-difficulty-L1{color:#47c79b}.hall-state-running,.hall-role-defense{color:var(--brand-cyan)}.hall-state-error,.hall-role-attack,.hall-difficulty-L3{color:#ed8b91}.hall-difficulty-L2{color:#dfb86c}.hall-score{font-variant-numeric:tabular-nums;font-weight:600;font-size:16px}.hall-table thead{background:var(--bg-secondary)}.hall-table tbody tr:hover{background:var(--bg-card-hover)}.hall-empty{text-align:center;padding:44px 18px}.hall-empty p{color:var(--text-secondary);font-size:13px}.hall-footer{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-top:18px}.hall-footer nav{display:flex;align-items:center;gap:16px;white-space:nowrap;font-size:13px}.question-hall button:focus-visible,.question-hall a:focus-visible{outline:2px solid var(--brand-cyan);outline-offset:3px}@media (max-width: 1100px){.hall-heading{align-items:flex-start;flex-direction:column}.hall-progress{gap:10px}.hall-question-link{flex-direction:column-reverse;gap:3px}}@media (max-width: 700px){.hall-library-tabs a{padding:9px 13px}.hall-progress{width:100%}.hall-progress div{flex:1;min-width:0;padding:12px}.hall-controls{padding:12px}.hall-footer{align-items:stretch;flex-direction:column}.hall-footer nav{justify-content:center}.hall-table{min-width:620px}}.student-scores-actions{display:flex;gap:8px;flex-wrap:wrap}.student-scores-secondary{margin-top:5px;color:var(--text-secondary);font-size:12px;line-height:1.6}.student-scores-value{color:var(--brand-cyan);font-size:18px;white-space:nowrap}.student-scores-questions{min-width:940px}.student-scores-questions td:first-child{min-width:210px;max-width:360px;overflow-wrap:anywhere}.student-scores-students{min-width:750px}.student-scores-empty{padding:36px 14px!important;text-align:center!important;color:var(--text-secondary)}.student-scores-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(180px,1.4fr);gap:18px;margin-top:22px}.student-scores-summary span{display:block;margin-bottom:8px;color:var(--text-secondary);font-size:12px}.student-scores-summary strong{font-size:23px;color:var(--brand-cyan)}.student-scores-summary .student-scores-date{font-size:14px;color:var(--text-primary)}.student-scores-search{margin-top:0}.student-scores-search label{font-size:13px}.student-scores-search .prd-input{flex:1;max-width:400px}.student-scores-pagination{margin-top:20px}@media (max-width: 1000px){.student-scores-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 600px){.student-scores-summary{grid-template-columns:1fr}.student-scores-search .prd-input{flex-basis:100%}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--bg-primary: #0a0e17;--bg-secondary: #0d1221;--bg-card: #111827;--bg-card-hover: #161f33;--border-color: #1e2d45;--border-color-light: #2a3a55;--text-primary: #c8d6e5;--text-secondary: #8899aa;--text-muted: #5a6a7a;--brand-cyan: #00d4ff;--brand-cyan-dim: rgba(0, 212, 255, .15);--color-m1: #00d4ff;--color-m2: #ff6b6b;--color-m3: #48db80;--color-m4: #ffb84d;--color-m5: #a87cff;--tier-platinum: #a87cff;--tier-gold: #ffb84d;--tier-silver: #c0c0c0;--tier-bronze: #cd7f32;--success: #48db80;--warning: #ffb84d;--danger: #ff6b6b;--info: #00d4ff;--topbar-height: 48px;--sidebar-width: 180px;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--shadow-card: 0 2px 8px rgba(0, 0, 0, .3);--shadow-card-hover: 0 4px 20px rgba(0, 0, 0, .5);--transition-fast: .15s ease;--transition-normal: .25s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;overflow-x:hidden}a{color:var(--brand-cyan);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--info)}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-body{display:flex;flex:1;padding-top:var(--topbar-height)}.main-content{flex:1;margin-left:var(--sidebar-width);padding:24px 32px 44px;min-height:calc(100vh - var(--topbar-height));overflow-y:auto}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-color-light)}.text-muted{color:var(--text-secondary)}.text-cyan{color:var(--brand-cyan)}.mono{font-family:var(--font-mono)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 24px;border:none;border-radius:6px;background:var(--brand-cyan);color:#0a0e17;font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.btn-primary:hover{background:#3df;box-shadow:0 0 16px #00d4ff4d}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 20px;border:1px solid var(--border-color);border-radius:6px;background:transparent;color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-ghost:hover{border-color:var(--border-color-light);background:var(--bg-card-hover)}.form-input{width:100%;padding:10px 14px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;font-family:var(--font-sans);outline:none;transition:border-color var(--transition-fast)}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--brand-cyan);box-shadow:0 0 0 2px var(--brand-cyan-dim)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary)}.login-card{width:400px;padding:40px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-card)}.markdown-body{font-size:14px;line-height:1.8;color:var(--text-primary)}.markdown-body h1{font-size:22px;font-weight:700;color:var(--text-primary);margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.markdown-body h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:20px 0 10px}.markdown-body h3{font-size:15px;font-weight:600;color:var(--text-secondary);margin:16px 0 8px}.markdown-body p{margin:8px 0;color:var(--text-secondary)}.markdown-body strong{color:var(--text-primary);font-weight:600}.markdown-body ul,.markdown-body ol{padding-left:20px;margin:8px 0}.markdown-body li{margin:4px 0;color:var(--text-secondary)}.markdown-body code{font-family:var(--font-mono);font-size:12px;background:var(--bg-secondary);padding:2px 6px;border-radius:3px;color:var(--brand-cyan);border:1px solid var(--border-color)}.markdown-body pre{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:14px 16px;overflow-x:auto;margin:12px 0}.markdown-body pre code{background:none;padding:0;border:none;color:var(--text-primary);font-size:12px}.markdown-body blockquote{border-left:3px solid var(--brand-cyan);padding:8px 14px;margin:12px 0;background:var(--brand-cyan-dim);border-radius:0 4px 4px 0;color:var(--text-secondary)}.markdown-body table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px}.markdown-body th{background:var(--bg-secondary);border:1px solid var(--border-color);padding:8px 12px;text-align:left;font-weight:600;color:var(--text-primary);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.markdown-body td{border:1px solid var(--border-color);padding:8px 12px;color:var(--text-secondary)}.markdown-body hr{border:none;border-top:1px solid var(--border-color);margin:20px 0}.markdown-body img{max-width:100%;border-radius:6px}@keyframes spin{to{transform:rotate(360deg)}}.prd-page{max-width:1500px;margin:0 auto}.prd-page h1{font-size:25px;margin-bottom:8px}.prd-page h2{font-size:17px;margin-bottom:14px}.prd-page p{line-height:1.7}.prd-muted{color:var(--text-secondary);font-size:13px}.prd-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:18px 0}.prd-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:20px;margin-bottom:18px}.prd-table-wrap{overflow-x:auto}.prd-table{width:100%;border-collapse:collapse}.prd-table th,.prd-table td{padding:15px 14px;border-bottom:1px solid var(--border-color);text-align:left;font-size:13px}.prd-table th{color:var(--text-secondary);font-weight:500;white-space:nowrap}.prd-table tbody tr:last-child td{border-bottom:0}.prd-table tbody tr:hover{background:var(--brand-cyan-dim)}.prd-table a{color:var(--brand-cyan);font-weight:600}.prd-button{border:1px solid var(--border-color);border-radius:6px;padding:8px 13px;background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font:inherit;font-size:13px}.prd-button.primary{background:var(--brand-cyan);border-color:var(--brand-cyan);color:#07111c;font-weight:600}.prd-button.danger{color:var(--danger)}.prd-button:disabled{cursor:not-allowed;opacity:.5}.prd-input{width:100%;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);padding:10px 12px;font:inherit;font-size:13px}.prd-toolbar .prd-input{width:auto;min-width:180px}.prd-input:focus{outline:1px solid var(--brand-cyan)}.prd-label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--text-secondary)}.prd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.prd-grid .full{grid-column:1 / -1}.prd-check{display:flex;align-items:center;gap:8px;font-size:13px}.prd-error,.prd-notice{padding:13px 16px;border-radius:6px;margin:12px 0;line-height:1.7;font-size:13px}.prd-error{background:#ff6b6b1a;color:var(--danger);border:1px solid rgba(255,107,107,.3)}.prd-notice{background:var(--brand-cyan-dim);color:var(--text-secondary);border:1px solid var(--border-color)}.prd-badge{display:inline-block;border:1px solid var(--border-color);border-radius:4px;padding:3px 7px;font-size:11px;color:var(--text-secondary);margin-right:6px}.prd-solve{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.prd-markdown{line-height:1.85;font-size:14px;overflow-wrap:anywhere}.prd-markdown h1,.prd-markdown h2,.prd-markdown h3{margin:20px 0 12px}.prd-markdown p{margin-bottom:12px}.prd-markdown ul,.prd-markdown ol{padding-left:24px;margin-bottom:12px}.prd-markdown pre{padding:12px;background:var(--bg-secondary);border-radius:6px;overflow-x:auto}.prd-markdown img{max-width:100%}.prd-markdown table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}.prd-markdown td,.prd-markdown th{border:1px solid var(--border-color);padding:8px}.prd-markdown a{color:var(--brand-cyan)}.prd-editor{min-height:360px;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.prd-score{font-size:28px;color:var(--brand-cyan);font-weight:700}.prd-secret{width:100%;font-family:var(--font-mono);resize:vertical}.prd-panel details{margin-top:12px}.prd-panel summary{cursor:pointer;color:var(--text-secondary);font-size:13px}.prd-panel pre{white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.7}.prd-loading{padding:50px 20px;color:var(--text-secondary);text-align:center}.prd-section{margin:20px 0;padding-top:20px;border-top:1px solid var(--border-color)}.prd-split{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}@media (max-width: 1100px){.prd-solve{grid-template-columns:1fr}}@media (max-width: 700px){.prd-grid{grid-template-columns:1fr}.prd-panel{padding:14px}.prd-page h1{font-size:21px}.prd-toolbar .prd-input{width:100%}}@media (max-width: 850px){.app-layout>header>nav{display:none}}@media (max-width: 600px){:root{--sidebar-width: 135px}.app-layout>header{padding:0 12px!important}.app-layout>header>div:last-child>span{display:none}.main-content{padding:16px}}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand-cyan);outline-offset:3px}.app-sidebar a:hover{box-shadow:inset 0 0 0 1px var(--border-color);color:var(--text-primary)!important}@media (max-width: 600px){:root{--sidebar-width: 0px}.app-sidebar{position:sticky!important;top:var(--topbar-height)!important;width:100%!important;bottom:auto!important;padding:8px 12px!important;border-right:0!important;border-bottom:1px solid var(--border-color)}.app-sidebar nav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin}.app-sidebar nav a{flex-shrink:0;margin-bottom:0!important;padding:9px 12px!important}.app-sidebar nav[aria-label=管理员功能]{margin-top:6px!important}.app-sidebar nav>.prd-muted{display:none}.app-body{display:block}.main-content:has(>.solve-workbench){height:calc(100dvh - var(--topbar-height) - 56px)}.app-body:has(.app-sidebar nav[aria-label=管理员功能]) .main-content:has(>.solve-workbench){height:calc(100dvh - var(--topbar-height) - 104px)}}
