| | .problem-header { |
| | display: flex; |
| | justify-content: space-between; |
| | align-items: center; |
| | margin-bottom: 15px; |
| | } |
| |
|
| | .problem-meta { |
| | margin-bottom: 20px; |
| | } |
| |
|
| | .meta-item { |
| | display: inline-block; |
| | margin-right: 15px; |
| | margin-bottom: 10px; |
| | } |
| |
|
| | .meta-label { |
| | font-weight: 600; |
| | color: #7f8c8d; |
| | margin-right: 5px; |
| | } |
| |
|
| | .meta-value { |
| | color: #2c3e50; |
| | } |
| |
|
| | .task-selector { |
| | margin: 20px 0; |
| | display: flex; |
| | gap: 10px; |
| | flex-wrap: wrap; |
| | } |
| |
|
| | .task-btn { |
| | padding: 10px 20px; |
| | background: #ecf0f1; |
| | border: 2px solid transparent; |
| | border-radius: 4px; |
| | cursor: pointer; |
| | transition: all 0.3s; |
| | font-size: 0.95rem; |
| | } |
| |
|
| | .task-btn:hover { |
| | background: #bdc3c7; |
| | } |
| |
|
| | .task-btn.active { |
| | background: #3498db; |
| | color: white; |
| | border-color: #2980b9; |
| | } |
| |
|
| | .task-details { |
| | margin-top: 20px; |
| | } |
| |
|
| | .task-section { |
| | margin-bottom: 25px; |
| | padding: 15px; |
| | background: #f8f9fa; |
| | border-left: 4px solid #3498db; |
| | border-radius: 4px; |
| | } |
| |
|
| | .task-section h3 { |
| | margin-bottom: 10px; |
| | color: #2c3e50; |
| | font-size: 1.1rem; |
| | } |
| |
|
| | .code-block { |
| | background: #f8f9fa; |
| | padding: 15px; |
| | border-radius: 4px; |
| | overflow-x: auto; |
| | font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; |
| | font-size: 0.9rem; |
| | border: 1px solid #e1e4e8; |
| | } |
| |
|
| | .task-items-list { |
| | list-style: none; |
| | } |
| |
|
| | .task-items-list li { |
| | padding: 10px; |
| | margin-bottom: 8px; |
| | background: white; |
| | border-radius: 4px; |
| | border: 1px solid #e1e4e8; |
| | } |
| |
|
| | .line-ref { |
| | display: inline-block; |
| | padding: 2px 8px; |
| | background: #3498db; |
| | color: white; |
| | border-radius: 3px; |
| | font-family: monospace; |
| | font-size: 0.85rem; |
| | margin-right: 8px; |
| | } |
| |
|
| | .var-name { |
| | display: inline-block; |
| | padding: 2px 8px; |
| | background: #9b59b6; |
| | color: white; |
| | border-radius: 3px; |
| | font-family: monospace; |
| | font-size: 0.85rem; |
| | } |
| |
|
| | .io-section { |
| | display: grid; |
| | grid-template-columns: 1fr 1fr; |
| | gap: 15px; |
| | } |
| |
|
| | @media (max-width: 768px) { |
| | .io-section { |
| | grid-template-columns: 1fr; |
| | } |
| | } |
| |
|
| | .navigation-hint { |
| | margin-top: 20px; |
| | padding: 15px; |
| | background: #e8f4f8; |
| | border-radius: 4px; |
| | color: #2c3e50; |
| | font-size: 0.9rem; |
| | } |
| |
|
| | .test-code-section { |
| | margin-top: 20px; |
| | } |
| |
|
| | |
| | .code-with-tasks { |
| | position: relative; |
| | } |
| |
|
| | .task-marker { |
| | display: inline-block; |
| | margin-left: 10px; |
| | padding: 2px 8px; |
| | background: #9b59b6; |
| | color: white; |
| | border-radius: 3px; |
| | font-size: 0.75rem; |
| | font-weight: 600; |
| | cursor: crosshair; |
| | } |
| |
|
| | |
| | td.linenos .normal.line-executed { |
| | background-color: #d4edda !important; |
| | color: #155724 !important; |
| | } |
| |
|
| | td.linenos .normal.line-not-executed { |
| | background-color: #f8d7da !important; |
| | color: #721c24 !important; |
| | } |
| |
|
| | |
| | .coverage-legend { |
| | margin: 10px 0; |
| | padding: 10px 15px; |
| | background: #f8f9fa; |
| | border-left: 4px solid #28a745; |
| | border-radius: 4px; |
| | font-size: 0.85rem; |
| | display: none; |
| | } |
| |
|
| | .coverage-legend-item { |
| | display: inline-block; |
| | margin-right: 18px; |
| | } |
| |
|
| | .coverage-swatch { |
| | display: inline-block; |
| | width: 12px; |
| | height: 12px; |
| | border-radius: 2px; |
| | margin-right: 4px; |
| | vertical-align: middle; |
| | } |
| |
|
| | |
| | .gt-answer { |
| | display: inline-block; |
| | margin-left: 10px; |
| | padding: 2px 8px; |
| | background: #17a2b8; |
| | color: white; |
| | border-radius: 3px; |
| | font-family: monospace; |
| | font-size: 0.82rem; |
| | font-weight: 600; |
| | } |
| |
|
| | .gt-answer.loading { |
| | background: #6c757d; |
| | } |
| |
|
| | |
| | #arrow-overlay { |
| | position: absolute; |
| | top: 0; |
| | left: 0; |
| | width: 100%; |
| | height: 100%; |
| | pointer-events: none; |
| | overflow: visible; |
| | z-index: 10; |
| | } |
| |
|
| | .exec-arrow { |
| | fill: none; |
| | stroke: #e67e22; |
| | stroke-width: 2.5; |
| | stroke-dasharray: none; |
| | opacity: 0.9; |
| | } |
| |
|
| | .exec-arrow-head { |
| | fill: #e67e22; |
| | opacity: 0.9; |
| | } |
| |
|
| | |
| | .crux-answer { |
| | border-left: 4px solid #17a2b8 !important; |
| | background: #e8f6f8 !important; |
| | } |
| |
|
| | |
| | .diff-container { |
| | display: grid; |
| | grid-template-columns: 1fr 1fr; |
| | gap: 20px; |
| | } |
| |
|
| | @media (max-width: 1024px) { |
| | .diff-container { |
| | grid-template-columns: 1fr; |
| | } |
| | } |
| |
|
| | .diff-panel { |
| | overflow-x: auto; |
| | } |
| |
|
| | .diff-panel h3 { |
| | margin-bottom: 10px; |
| | font-size: 1.1rem; |
| | } |
| |
|
| | .diff-panel h3 .diff-label-buggy { |
| | color: #e74c3c; |
| | } |
| |
|
| | .diff-panel h3 .diff-label-fixed { |
| | color: #27ae60; |
| | } |
| |
|
| | .bug-info { |
| | margin-bottom: 15px; |
| | padding: 12px 15px; |
| | border-left: 4px solid #e74c3c; |
| | background: #fdf2f2; |
| | border-radius: 4px; |
| | } |
| |
|
| | .bug-info .bug-category { |
| | display: inline-block; |
| | padding: 2px 8px; |
| | background: #e74c3c; |
| | color: white; |
| | border-radius: 3px; |
| | font-size: 0.82rem; |
| | font-weight: 600; |
| | margin-right: 8px; |
| | } |
| |
|
| | .bug-info .bug-subtype { |
| | display: inline-block; |
| | padding: 2px 8px; |
| | background: #c0392b; |
| | color: white; |
| | border-radius: 3px; |
| | font-size: 0.82rem; |
| | font-weight: 600; |
| | } |
| |
|
| | |
| | .lang-tabs { |
| | display: flex; |
| | gap: 0; |
| | border-bottom: 2px solid #e1e4e8; |
| | margin-bottom: 0; |
| | } |
| |
|
| | .lang-tab { |
| | padding: 10px 20px; |
| | background: #f8f9fa; |
| | border: 1px solid #e1e4e8; |
| | border-bottom: none; |
| | cursor: pointer; |
| | font-size: 0.95rem; |
| | font-weight: 500; |
| | transition: all 0.2s; |
| | border-radius: 4px 4px 0 0; |
| | margin-right: 2px; |
| | } |
| |
|
| | .lang-tab:hover { |
| | background: #e8f4f8; |
| | } |
| |
|
| | .lang-tab.active { |
| | background: white; |
| | border-bottom: 2px solid white; |
| | margin-bottom: -2px; |
| | color: #3498db; |
| | font-weight: 600; |
| | } |
| |
|
| | .lang-code-panel { |
| | display: none; |
| | } |
| |
|
| | .lang-code-panel.active { |
| | display: block; |
| | } |
| |
|
| | |
| | .complexity-badges { |
| | display: flex; |
| | gap: 20px; |
| | flex-wrap: wrap; |
| | } |
| |
|
| | .complexity-item { |
| | display: flex; |
| | align-items: center; |
| | gap: 10px; |
| | } |
| |
|
| | .complexity-label { |
| | font-weight: 600; |
| | color: #7f8c8d; |
| | font-size: 0.95rem; |
| | } |
| |
|
| | .complexity-value { |
| | display: inline-block; |
| | padding: 6px 16px; |
| | background: #2c3e50; |
| | color: #f1c40f; |
| | border-radius: 4px; |
| | font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; |
| | font-size: 1.1rem; |
| | font-weight: 600; |
| | } |
| |
|
| | |
| | .diff-view { |
| | font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; |
| | font-size: 0.85rem; |
| | line-height: 1.5; |
| | overflow-x: auto; |
| | border: 1px solid #e1e4e8; |
| | border-radius: 4px; |
| | } |
| |
|
| | .diff-table { |
| | border-collapse: collapse; |
| | width: 100%; |
| | } |
| |
|
| | .diff-table td { |
| | padding: 0 8px; |
| | white-space: pre; |
| | vertical-align: top; |
| | } |
| |
|
| | .diff-ln { |
| | width: 1%; |
| | min-width: 40px; |
| | color: #959da5; |
| | text-align: right; |
| | user-select: none; |
| | font-size: 0.8rem; |
| | padding: 0 6px !important; |
| | border-right: 1px solid #e1e4e8; |
| | } |
| |
|
| | .diff-tr-add td { background: #e6ffec; } |
| | .diff-td-add { color: #24292e; } |
| | .diff-tr-add .diff-ln { background: #ccffd8; color: #22863a; } |
| |
|
| | .diff-tr-del td { background: #ffebe9; } |
| | .diff-td-del { color: #24292e; } |
| | .diff-tr-del .diff-ln { background: #ffd7d5; color: #cb2431; } |
| |
|
| | .diff-tr-ctx td { background: white; } |
| | .diff-td-ctx { color: #586069; } |
| |
|
| | .diff-tr-hunk td { |
| | background: #f1f8ff; |
| | color: #0366d6; |
| | font-weight: 600; |
| | padding: 4px 8px; |
| | } |
| |
|
| | .diff-tr-header td { |
| | background: #fafbfc; |
| | color: #6a737d; |
| | font-weight: 600; |
| | padding: 4px 8px; |
| | border-bottom: 1px solid #e1e4e8; |
| | } |
| |
|
| | |
| | .diff-file-section { |
| | margin-bottom: 16px; |
| | border: 1px solid #d0d7de; |
| | border-radius: 6px; |
| | overflow: hidden; |
| | } |
| |
|
| | .diff-file-section .diff-view { |
| | border: none; |
| | border-radius: 0; |
| | } |
| |
|
| | .diff-file-header { |
| | display: flex; |
| | justify-content: space-between; |
| | align-items: center; |
| | padding: 8px 12px; |
| | background: #f6f8fa; |
| | border-bottom: 1px solid #d0d7de; |
| | font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; |
| | font-size: 0.85rem; |
| | } |
| |
|
| | .diff-file-path { |
| | color: #24292f; |
| | font-weight: 600; |
| | word-break: break-all; |
| | } |
| |
|
| | .diff-file-stats { |
| | white-space: nowrap; |
| | margin-left: 12px; |
| | font-size: 0.8rem; |
| | } |
| |
|
| | .diff-stat-add { color: #1a7f37; font-weight: 600; } |
| | .diff-stat-del { color: #cf222e; font-weight: 600; margin-left: 6px; } |
| |
|
| | |
| | .gh-links-bar { |
| | display: flex; |
| | gap: 12px; |
| | align-items: center; |
| | flex-wrap: wrap; |
| | } |
| |
|
| | .gh-link { |
| | display: inline-block; |
| | padding: 6px 14px; |
| | background: #f6f8fa; |
| | border: 1px solid #d0d7de; |
| | border-radius: 6px; |
| | color: #0969da; |
| | text-decoration: none; |
| | font-size: 0.9rem; |
| | font-weight: 500; |
| | transition: background 0.15s, border-color 0.15s; |
| | } |
| |
|
| | .gh-link:hover { |
| | background: #ddf4ff; |
| | border-color: #0969da; |
| | } |
| |
|
| | |
| | .issue-statement { |
| | line-height: 1.7; |
| | padding: 10px; |
| | white-space: pre-wrap; |
| | word-wrap: break-word; |
| | max-height: 500px; |
| | overflow-y: auto; |
| | background: #f8f9fa; |
| | border: 1px solid #e1e4e8; |
| | border-radius: 4px; |
| | font-size: 0.9rem; |
| | } |
| |
|
| | .test-id-list { |
| | list-style: none; |
| | padding: 0; |
| | } |
| |
|
| | .test-id-list li { |
| | padding: 4px 8px; |
| | margin-bottom: 4px; |
| | background: #f8f9fa; |
| | border-radius: 3px; |
| | font-family: monospace; |
| | font-size: 0.82rem; |
| | border-left: 3px solid #e74c3c; |
| | } |
| |
|
| | .test-id-list li.pass-to-pass { |
| | border-left-color: #27ae60; |
| | } |
| |
|
| | |
| | .fim-hole-marker { |
| | display: inline-block; |
| | padding: 4px 16px; |
| | background: #e74c3c; |
| | color: white; |
| | border-radius: 4px; |
| | font-family: monospace; |
| | font-weight: 600; |
| | font-size: 0.9rem; |
| | margin: 4px 0; |
| | } |
| |
|
| | .fim-answer { |
| | padding: 15px; |
| | background: #e8f6e8; |
| | border-left: 4px solid #27ae60; |
| | border-radius: 4px; |
| | font-family: monospace; |
| | font-size: 0.9rem; |
| | } |
| |
|
| | .fim-merged-legend { |
| | margin: 8px 0; |
| | padding: 6px 12px; |
| | background: #f8f9fa; |
| | border-radius: 4px; |
| | font-size: 0.85rem; |
| | color: #555; |
| | } |
| |
|
| | |
| | .vuln-status { |
| | display: inline-block; |
| | padding: 4px 12px; |
| | border-radius: 4px; |
| | font-size: 0.85rem; |
| | font-weight: 600; |
| | } |
| |
|
| | .vuln-status-vulnerable { |
| | background: #e74c3c; |
| | color: white; |
| | } |
| |
|
| | .vuln-status-patched { |
| | background: #27ae60; |
| | color: white; |
| | } |
| |
|
| | .cwe-badge { |
| | display: inline-block; |
| | padding: 4px 12px; |
| | background: #2c3e50; |
| | color: #e74c3c; |
| | border-radius: 4px; |
| | font-family: monospace; |
| | font-size: 0.85rem; |
| | font-weight: 600; |
| | } |
| |
|