Spaces:
Running
Running
| :root { | |
| color-scheme: dark; | |
| --bg: #0b0d17; | |
| --panel: #121521; | |
| --panel-2: #171b29; | |
| --border: #2a3042; | |
| --text: #f3f5fb; | |
| --muted: #929bb7; | |
| --blue: #3f86ff; | |
| --green: #39d98a; | |
| --red: #ff5f70; | |
| --amber: #ffbf47; | |
| } | |
| * { box-sizing: border-box; } | |
| body { | |
| margin: 0; | |
| min-height: 100vh; | |
| background: var(--bg); | |
| color: var(--text); | |
| font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |
| letter-spacing: 0; | |
| } | |
| button, input { font: inherit; } | |
| .app-shell { | |
| width: min(1180px, calc(100% - 32px)); | |
| margin: 0 auto; | |
| padding: 34px 0; | |
| } | |
| .app-header, | |
| .report-heading, | |
| .file-row { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 18px; | |
| } | |
| .app-header { margin-bottom: 22px; } | |
| h1, h2, p { margin-top: 0; } | |
| h1 { margin-bottom: 0; font-size: clamp(1.65rem, 3vw, 2.35rem); } | |
| h2 { margin-bottom: 0; font-size: 1.25rem; } | |
| .eyebrow { | |
| margin-bottom: 6px; | |
| color: #7997d5; | |
| font-size: 0.72rem; | |
| font-weight: 800; | |
| } | |
| .status, | |
| .verdict { | |
| min-width: max-content; | |
| border: 1px solid var(--border); | |
| border-radius: 999px; | |
| padding: 8px 11px; | |
| color: var(--muted); | |
| background: var(--panel); | |
| font-size: 0.78rem; | |
| font-weight: 800; | |
| } | |
| .status.online { color: var(--green); border-color: rgba(57, 217, 138, 0.38); } | |
| .status.offline { color: var(--red); border-color: rgba(255, 95, 112, 0.38); } | |
| .workspace { | |
| display: grid; | |
| grid-template-columns: minmax(0, 1fr) minmax(340px, 0.9fr); | |
| border: 1px solid var(--border); | |
| border-radius: 8px; | |
| overflow: hidden; | |
| background: var(--panel); | |
| } | |
| .upload-panel, | |
| .report-panel { padding: 24px; } | |
| .upload-panel { border-right: 1px solid var(--border); } | |
| .drop-zone { | |
| position: relative; | |
| display: grid; | |
| place-items: center; | |
| width: 100%; | |
| aspect-ratio: 4 / 3; | |
| overflow: hidden; | |
| border: 1px dashed #3d4864; | |
| border-radius: 6px; | |
| background: #0d1019; | |
| cursor: pointer; | |
| } | |
| .drop-zone:hover, | |
| .drop-zone.dragging { border-color: var(--blue); background: #101727; } | |
| .drop-content { display: grid; gap: 7px; text-align: center; } | |
| .drop-content strong { font-size: 1.05rem; } | |
| .drop-content small, .report-note, .disclaimer { color: var(--muted); } | |
| #preview { | |
| display: none; | |
| width: 100%; | |
| height: 100%; | |
| object-fit: contain; | |
| background: #090b12; | |
| } | |
| .drop-zone.has-preview #preview { display: block; } | |
| .drop-zone.has-preview .drop-content { display: none; } | |
| #imageInput { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; } | |
| .file-row { margin-top: 16px; } | |
| #fileName { min-width: 0; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; } | |
| button { | |
| min-width: 154px; | |
| border: 1px solid #5b98ff; | |
| border-radius: 6px; | |
| padding: 11px 15px; | |
| background: var(--blue); | |
| color: white; | |
| font-weight: 800; | |
| cursor: pointer; | |
| } | |
| button:hover { background: #3177ee; } | |
| button:disabled { cursor: wait; opacity: 0.6; } | |
| .verdict.approved { color: var(--green); border-color: rgba(57, 217, 138, 0.42); } | |
| .verdict.rejected, .verdict.error { color: var(--red); border-color: rgba(255, 95, 112, 0.42); } | |
| .verdict.running { color: var(--amber); border-color: rgba(255, 191, 71, 0.42); } | |
| .report-note { min-height: 42px; margin: 17px 0; line-height: 1.5; } | |
| .test-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; } | |
| .test-list li { | |
| display: grid; | |
| grid-template-columns: 34px minmax(0, 1fr) auto; | |
| align-items: center; | |
| gap: 10px; | |
| min-height: 54px; | |
| border: 1px solid var(--border); | |
| border-radius: 6px; | |
| padding: 9px 12px; | |
| background: var(--panel-2); | |
| } | |
| .test-index { color: #6f7893; font-size: 0.74rem; font-weight: 900; } | |
| .test-list b { color: var(--muted); font-size: 0.76rem; } | |
| .test-list li.passed b { color: var(--green); } | |
| .test-list li.rejected b, .test-list li.error b { color: var(--red); } | |
| .test-list li.running b { color: var(--amber); } | |
| .test-list li.skipped { opacity: 0.55; } | |
| .disclaimer { margin: 16px 0 0; font-size: 0.78rem; line-height: 1.5; } | |
| @media (max-width: 800px) { | |
| .app-shell { width: min(100% - 20px, 620px); padding: 20px 0; } | |
| .app-header { align-items: flex-start; } | |
| .workspace { grid-template-columns: 1fr; } | |
| .upload-panel { border-right: 0; border-bottom: 1px solid var(--border); } | |
| .upload-panel, .report-panel { padding: 16px; } | |
| .file-row { align-items: stretch; flex-direction: column; } | |
| button { width: 100%; } | |
| } | |