Spaces:
Running
Running
| :root { | |
| --bg: #0b1220; | |
| --card: rgba(255, 255, 255, 0.06); | |
| --card2: rgba(255, 255, 255, 0.08); | |
| --text: rgba(255, 255, 255, 0.92); | |
| --muted: rgba(255, 255, 255, 0.68); | |
| --border: rgba(255, 255, 255, 0.12); | |
| --accent: #7c3aed; | |
| --accent2: #22c55e; | |
| --danger: #ef4444; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| margin: 0; | |
| min-height: 100vh; | |
| font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; | |
| color: var(--text); | |
| background: radial-gradient(1200px 600px at 10% 10%, #1b2a6b 0%, transparent 55%), | |
| radial-gradient(900px 500px at 90% 15%, #5b21b6 0%, transparent 55%), | |
| var(--bg); | |
| } | |
| .container { | |
| max-width: 860px; | |
| margin: 0 auto; | |
| padding: 28px 16px 40px; | |
| } | |
| .header h1 { | |
| margin: 0 0 6px; | |
| font-size: 28px; | |
| letter-spacing: 0.2px; | |
| } | |
| .sub { | |
| margin: 0 0 18px; | |
| color: var(--muted); | |
| } | |
| .card { | |
| background: linear-gradient(180deg, var(--card), var(--card2)); | |
| border: 1px solid var(--border); | |
| border-radius: 14px; | |
| padding: 16px; | |
| box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35); | |
| backdrop-filter: blur(8px); | |
| } | |
| .label { | |
| display: block; | |
| font-weight: 600; | |
| margin-bottom: 8px; | |
| } | |
| textarea { | |
| width: 100%; | |
| resize: vertical; | |
| border-radius: 12px; | |
| border: 1px solid var(--border); | |
| background: rgba(0, 0, 0, 0.25); | |
| color: var(--text); | |
| padding: 12px; | |
| font-size: 14px; | |
| line-height: 1.4; | |
| outline: none; | |
| } | |
| textarea:focus { | |
| border-color: rgba(124, 58, 237, 0.55); | |
| box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.22); | |
| } | |
| .row { | |
| display: flex; | |
| gap: 10px; | |
| align-items: center; | |
| margin-top: 12px; | |
| flex-wrap: wrap; | |
| } | |
| .btn { | |
| border: 1px solid rgba(124, 58, 237, 0.6); | |
| background: rgba(124, 58, 237, 0.22); | |
| color: var(--text); | |
| padding: 10px 14px; | |
| border-radius: 12px; | |
| cursor: pointer; | |
| font-weight: 600; | |
| } | |
| .btn:hover { | |
| background: rgba(124, 58, 237, 0.32); | |
| } | |
| .btn:disabled { | |
| opacity: 0.55; | |
| cursor: not-allowed; | |
| } | |
| .btn.secondary { | |
| border-color: rgba(255, 255, 255, 0.22); | |
| background: rgba(255, 255, 255, 0.06); | |
| } | |
| .status { | |
| color: var(--muted); | |
| font-size: 13px; | |
| margin-left: auto; | |
| } | |
| .result { | |
| margin-top: 14px; | |
| padding: 12px; | |
| border-radius: 12px; | |
| border: 1px solid var(--border); | |
| background: rgba(0, 0, 0, 0.18); | |
| } | |
| .resultRow { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 10px; | |
| padding: 6px 0; | |
| } | |
| .k { | |
| color: var(--muted); | |
| } | |
| .v { | |
| font-weight: 700; | |
| } | |
| .error { | |
| margin-top: 12px; | |
| white-space: pre-wrap; | |
| padding: 12px; | |
| border-radius: 12px; | |
| border: 1px solid rgba(239, 68, 68, 0.35); | |
| background: rgba(239, 68, 68, 0.12); | |
| color: rgba(255, 255, 255, 0.92); | |
| } | |
| .footer { | |
| margin-top: 14px; | |
| color: var(--muted); | |
| font-size: 13px; | |
| display: flex; | |
| gap: 10px; | |
| align-items: center; | |
| flex-wrap: wrap; | |
| } | |
| .footer a { | |
| color: rgba(255, 255, 255, 0.78); | |
| text-decoration: none; | |
| } | |
| .footer a:hover { | |
| text-decoration: underline; | |
| } | |
| .dot { | |
| opacity: 0.6; | |
| } | |
| .log-table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: 13px; | |
| } | |
| .log-table th, | |
| .log-table td { | |
| padding: 6px 8px; | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.08); | |
| text-align: left; | |
| vertical-align: top; | |
| } | |
| .log-table th { | |
| font-weight: 600; | |
| color: var(--muted); | |
| } | |
| .log-table tr:last-child td { | |
| border-bottom: none; | |
| } | |
| /* ---- Extended components for the extraction dashboard ---- */ | |
| .cardTitle { | |
| margin: 0 0 6px; | |
| font-size: 18px; | |
| } | |
| .sub.small { | |
| font-size: 13px; | |
| margin-bottom: 12px; | |
| } | |
| .card + .card { | |
| margin-top: 16px; | |
| } | |
| .resultRow.column, | |
| .statsRow.column { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: 8px; | |
| } | |
| .chips { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| } | |
| .chip { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 6px; | |
| padding: 4px 10px; | |
| border-radius: 999px; | |
| background: rgba(255, 255, 255, 0.08); | |
| border: 1px solid var(--border); | |
| font-size: 13px; | |
| } | |
| .chipType { | |
| font-size: 11px; | |
| font-weight: 700; | |
| color: var(--accent2); | |
| text-transform: uppercase; | |
| letter-spacing: 0.3px; | |
| } | |
| .pill { | |
| display: inline-block; | |
| padding: 3px 12px; | |
| border-radius: 999px; | |
| font-weight: 700; | |
| font-size: 13px; | |
| } | |
| .pill.pos { | |
| background: rgba(34, 197, 94, 0.18); | |
| color: #4ade80; | |
| border: 1px solid rgba(34, 197, 94, 0.4); | |
| } | |
| .pill.neg { | |
| background: rgba(239, 68, 68, 0.18); | |
| color: #f87171; | |
| border: 1px solid rgba(239, 68, 68, 0.4); | |
| } | |
| .pill.neu { | |
| background: rgba(148, 163, 184, 0.18); | |
| color: #cbd5e1; | |
| border: 1px solid rgba(148, 163, 184, 0.4); | |
| } | |
| .anon { | |
| display: block; | |
| width: 100%; | |
| padding: 10px 12px; | |
| border-radius: 10px; | |
| background: rgba(0, 0, 0, 0.3); | |
| border: 1px solid var(--border); | |
| font-size: 13px; | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| } | |
| .muted { | |
| color: var(--muted); | |
| font-size: 13px; | |
| } | |
| .file { | |
| color: var(--muted); | |
| font-size: 13px; | |
| max-width: 280px; | |
| } | |
| .stats { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 12px; | |
| } | |
| .statsRow { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 12px; | |
| } | |
| .modelPickers { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); | |
| gap: 14px; | |
| margin-top: 14px; | |
| } | |
| .modelPicker { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| margin-top: 6px; | |
| padding: 10px; | |
| border-radius: 12px; | |
| border: 1px solid var(--border); | |
| background: rgba(0, 0, 0, 0.18); | |
| } | |
| .modelSelect { | |
| width: 100%; | |
| border-radius: 10px; | |
| border: 1px solid var(--border); | |
| background: rgba(0, 0, 0, 0.25); | |
| color: var(--text); | |
| padding: 8px 10px; | |
| font-size: 13px; | |
| outline: none; | |
| } | |
| .modelSelect:focus { | |
| border-color: rgba(124, 58, 237, 0.55); | |
| box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.22); | |
| } | |
| .modelInput { | |
| width: 100%; | |
| margin-top: 2px; | |
| border-radius: 10px; | |
| border: 1px solid var(--border); | |
| background: rgba(0, 0, 0, 0.25); | |
| color: var(--text); | |
| padding: 8px 10px; | |
| font-size: 13px; | |
| outline: none; | |
| } | |
| .modelInput:focus { | |
| border-color: rgba(124, 58, 237, 0.55); | |
| box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.22); | |
| } | |
| .dropdown { | |
| position: relative; | |
| display: inline-block; | |
| } | |
| .dropdownMenu { | |
| position: absolute; | |
| top: calc(100% + 6px); | |
| left: 0; | |
| z-index: 10; | |
| min-width: 140px; | |
| display: flex; | |
| flex-direction: column; | |
| padding: 6px; | |
| border-radius: 12px; | |
| border: 1px solid var(--border); | |
| background: #131b30; | |
| box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45); | |
| } | |
| .dropdownItem { | |
| border: none; | |
| background: transparent; | |
| color: var(--text); | |
| padding: 8px 10px; | |
| border-radius: 8px; | |
| font-size: 13px; | |
| text-align: left; | |
| cursor: pointer; | |
| } | |
| .dropdownItem:hover { | |
| background: rgba(124, 58, 237, 0.22); | |
| } | |
| .ingestProgress { | |
| margin-top: 12px; | |
| } | |
| .progressBar { | |
| flex: 1; | |
| height: 10px; | |
| border-radius: 999px; | |
| overflow: hidden; | |
| appearance: none; | |
| } | |
| .progressBar::-webkit-progress-bar { | |
| background: rgba(0, 0, 0, 0.3); | |
| border-radius: 999px; | |
| } | |
| .progressBar::-webkit-progress-value { | |
| background: var(--accent); | |
| border-radius: 999px; | |
| transition: width 0.2s ease; | |
| } | |
| .progressBar::-moz-progress-bar { | |
| background: var(--accent); | |
| border-radius: 999px; | |
| } | |
| .timer { | |
| font-variant-numeric: tabular-nums; | |
| color: var(--muted); | |
| font-size: 13px; | |
| min-width: 56px; | |
| text-align: right; | |
| } | |