Spaces:
Running on Zero
Running on Zero
| :root { | |
| --bg-app: #f8fafc; | |
| --bg-card: #ffffff; | |
| --border: #e2e8f0; | |
| --border-hover: #cbd5e1; | |
| --text-main: #0f172a; | |
| --text-muted: #64748b; | |
| --text-subtle: #94a3b8; | |
| --green-primary: #16a34a; | |
| --green-bg: #f0fdf4; | |
| --green-border: #bbf7d0; | |
| --font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; | |
| --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| html, body { | |
| height: 100%; | |
| margin: 0; | |
| padding: 0; | |
| } | |
| body { | |
| background-color: var(--bg-app); | |
| color: var(--text-main); | |
| font-family: var(--font-sans); | |
| -webkit-font-smoothing: antialiased; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .container { | |
| width: 100%; | |
| margin: 0; | |
| padding: 14px 16px 20px 16px; | |
| box-sizing: border-box; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 14px; | |
| height: 100vh; | |
| } | |
| /* Controls Bar */ | |
| .controls-bar { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| gap: 14px; | |
| padding: 6px 0 2px 0; | |
| width: 100%; | |
| } | |
| select { | |
| background: #ffffff; | |
| border: 1px solid var(--border); | |
| color: var(--text-main); | |
| padding: 9px 14px; | |
| border-radius: 8px; | |
| font-family: var(--font-sans); | |
| font-size: 0.88rem; | |
| cursor: pointer; | |
| outline: none; | |
| font-weight: 500; | |
| transition: border-color 0.15s ease; | |
| } | |
| select:hover { | |
| border-color: var(--border-hover); | |
| } | |
| select:focus { | |
| border-color: var(--text-main); | |
| } | |
| .btn-primary { | |
| background: var(--text-main); | |
| color: #ffffff; | |
| border: none; | |
| padding: 9px 18px; | |
| border-radius: 8px; | |
| font-size: 0.88rem; | |
| font-weight: 600; | |
| cursor: pointer; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 6px; | |
| transition: all 0.15s ease; | |
| box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); | |
| } | |
| .btn-primary:hover { | |
| background: #1e293b; | |
| transform: translateY(-1px); | |
| } | |
| .btn-primary:disabled { | |
| opacity: 0.6; | |
| cursor: not-allowed; | |
| transform: none; | |
| } | |
| /* Summary Pill */ | |
| .summary-bar { | |
| display: flex; | |
| justify-content: center; | |
| padding: 4px 0 2px 0; | |
| transition: all 0.2s ease; | |
| } | |
| .summary-bar.hidden { | |
| display: none; | |
| } | |
| .summary-pill { | |
| background: var(--green-bg); | |
| border: 2px solid var(--green-border); | |
| padding: 14px 34px; | |
| border-radius: 9999px; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 16px; | |
| box-shadow: 0 4px 16px rgba(22, 163, 74, 0.14); | |
| } | |
| .summary-highlight { | |
| font-family: var(--font-mono); | |
| font-size: 1.65rem; | |
| font-weight: 900; | |
| color: #14532d; | |
| letter-spacing: -0.02em; | |
| } | |
| .summary-sep { | |
| color: #4ade80; | |
| font-size: 1.6rem; | |
| font-weight: 900; | |
| } | |
| #sum-times { | |
| font-family: var(--font-mono); | |
| font-weight: 800; | |
| font-size: 1.35rem; | |
| color: #15803d; | |
| letter-spacing: -0.01em; | |
| } | |
| /* Main Grid */ | |
| .grid { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 16px; | |
| flex: 1; | |
| min-height: 0; | |
| } | |
| .card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border); | |
| border-radius: 12px; | |
| display: flex; | |
| flex-direction: column; | |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03); | |
| overflow: hidden; | |
| height: 100%; | |
| min-height: 0; | |
| } | |
| .card-header { | |
| padding: 18px 24px; | |
| border-bottom: 1px solid var(--border); | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| } | |
| .card-header h2 { | |
| font-size: 1.35rem; | |
| font-weight: 800; | |
| color: var(--text-main); | |
| letter-spacing: -0.02em; | |
| } | |
| .title-with-badge { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .badge-red { | |
| background: #fef2f2; | |
| color: #dc2626; | |
| border: 1.5px solid #fecaca; | |
| font-size: 0.85rem; | |
| font-weight: 700; | |
| padding: 4px 10px; | |
| border-radius: 6px; | |
| letter-spacing: -0.01em; | |
| display: inline-flex; | |
| align-items: center; | |
| white-space: nowrap; | |
| } | |
| .badge-red.hidden { | |
| display: none; | |
| } | |
| .timer-badge { | |
| font-family: var(--font-mono); | |
| font-size: 1.5rem; | |
| font-weight: 800; | |
| padding: 8px 18px; | |
| border-radius: 10px; | |
| background: #f8fafc; | |
| color: #0f172a; | |
| border: 1.5px solid #cbd5e1; | |
| letter-spacing: -0.02em; | |
| box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04); | |
| } | |
| .badge-green { | |
| background: var(--green-bg); | |
| color: #14532d; | |
| border: 2px solid #86efac; | |
| font-weight: 900; | |
| box-shadow: 0 1px 4px rgba(22, 163, 74, 0.12); | |
| } | |
| .card-body { | |
| padding: 18px 20px; | |
| flex: 1; | |
| min-height: 0; | |
| overflow-y: auto; | |
| } | |
| /* Code Box */ | |
| .code-box { | |
| font-family: var(--font-mono); | |
| font-size: 0.82rem; | |
| color: #1e293b; | |
| line-height: 1.6; | |
| white-space: pre; | |
| overflow-x: auto; | |
| margin: 0; | |
| } | |
| /* JSON Syntax Highlighting & Interactive Rows */ | |
| .json-row { | |
| display: block; | |
| padding: 1.5px 8px; | |
| border-radius: 4px; | |
| line-height: 1.6; | |
| white-space: pre; | |
| border-left: 2.5px solid transparent; | |
| transition: background-color 0.12s ease, border-left-color 0.12s ease; | |
| } | |
| .json-row:hover, | |
| .json-row.row-hover { | |
| background-color: #f8fafc; | |
| border-left-color: #2563eb; | |
| } | |
| .json-key { | |
| color: #2563eb; | |
| font-weight: 600; | |
| letter-spacing: -0.01em; | |
| } | |
| .json-sub { | |
| color: var(--text-main); | |
| font-weight: 500; | |
| } | |
| .json-punct { | |
| color: var(--text-main); | |
| } | |
| .json-val-str { | |
| color: var(--text-main); | |
| font-weight: 500; | |
| } | |
| .json-val-bool { | |
| color: var(--text-main); | |
| font-weight: 600; | |
| } | |
| .json-val-bool.bool-true, | |
| .json-val-bool.bool-false { | |
| color: var(--text-main); | |
| } | |
| .json-val-num { | |
| color: var(--text-main); | |
| font-weight: 500; | |
| } | |
| .json-val-prob { | |
| color: var(--text-main); | |
| font-weight: 500; | |
| font-family: var(--font-mono); | |
| } | |
| .json-val-null { | |
| color: var(--text-main); | |
| font-style: italic; | |
| } | |
| .placeholder-text { | |
| color: var(--text-subtle); | |
| font-style: italic; | |
| } | |
| /* Parallel Results List */ | |
| .results-list { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .empty-state { | |
| color: var(--text-subtle); | |
| font-size: 0.88rem; | |
| text-align: center; | |
| padding-top: 100px; | |
| } | |
| .item-row { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 8px 12px; | |
| background: #f8fafc; | |
| border: 1px solid var(--border); | |
| border-radius: 8px; | |
| font-size: 0.82rem; | |
| } | |
| .item-key { | |
| font-family: var(--font-mono); | |
| font-weight: 600; | |
| color: #334155; | |
| } | |
| .item-right { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .item-val { | |
| font-family: var(--font-mono); | |
| font-weight: 600; | |
| padding: 2px 6px; | |
| border-radius: 4px; | |
| } | |
| .val-true { | |
| background: #dcfce7; | |
| color: #15803d; | |
| } | |
| .val-false { | |
| background: #fee2e2; | |
| color: #b91c1c; | |
| } | |
| .val-enum { | |
| background: #f1f5f9; | |
| color: #0f172a; | |
| } | |
| .item-prob { | |
| font-family: var(--font-mono); | |
| font-size: 0.74rem; | |
| color: #16a34a; | |
| background: var(--green-bg); | |
| padding: 2px 6px; | |
| border-radius: 4px; | |
| font-weight: 600; | |
| min-width: 48px; | |
| text-align: center; | |
| } | |
| /* Card Footer */ | |
| .card-footer { | |
| padding: 12px 20px; | |
| border-top: 1px solid var(--border); | |
| background: #f8fafc; | |
| font-size: 0.78rem; | |
| color: var(--text-muted); | |
| display: flex; | |
| justify-content: space-between; | |
| } | |
| .text-green { | |
| color: var(--green-primary); | |
| } | |
| @media (max-width: 800px) { | |
| .grid { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |