Spaces:
Running
Running
| @import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=Space+Grotesk:wght@500;700&display=swap"); | |
| :root { | |
| --bg: #eef2f4; | |
| --surface: #f7fafc; | |
| --ink: #101a25; | |
| --muted: #5c6b79; | |
| --accent: #0b7a68; | |
| --line: #d5dce3; | |
| --critical: #bf2d3f; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| html, | |
| body, | |
| #root { | |
| margin: 0; | |
| min-height: 100%; | |
| background: | |
| radial-gradient(circle at 0% 0%, #ffffff 0%, transparent 50%), | |
| radial-gradient(circle at 100% 20%, #e7f5f1 0%, transparent 45%), | |
| var(--bg); | |
| color: var(--ink); | |
| font-family: "IBM Plex Sans", system-ui, sans-serif; | |
| } | |
| .app-shell { | |
| display: grid; | |
| grid-template-columns: 250px 1fr; | |
| min-height: 100vh; | |
| } | |
| .sidebar { | |
| border-right: 1px solid var(--line); | |
| padding: 18px 14px; | |
| background: linear-gradient(180deg, #f8fbfd, #eef2f5); | |
| } | |
| .brand { | |
| font-family: "Space Grotesk", sans-serif; | |
| font-size: 1.2rem; | |
| font-weight: 700; | |
| letter-spacing: 0.02em; | |
| margin-bottom: 14px; | |
| } | |
| .sidebar nav { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .sidebar button { | |
| text-align: left; | |
| border: none; | |
| background: transparent; | |
| padding: 8px 10px; | |
| color: var(--muted); | |
| border-left: 2px solid transparent; | |
| cursor: pointer; | |
| } | |
| .sidebar button.active { | |
| color: var(--ink); | |
| border-left-color: var(--accent); | |
| background: #e8f2ec; | |
| } | |
| .workspace { | |
| padding: 24px; | |
| } | |
| .page h1 { | |
| margin: 0 0 8px; | |
| font-family: "Space Grotesk", sans-serif; | |
| font-size: clamp(1.4rem, 1.8vw, 2rem); | |
| } | |
| .muted { | |
| color: var(--muted); | |
| } | |
| .hero-line { | |
| height: 6px; | |
| max-width: 360px; | |
| margin: 14px 0; | |
| background: linear-gradient(90deg, var(--accent), #8ec7a8); | |
| } | |
| .actions { | |
| display: flex; | |
| gap: 10px; | |
| margin-bottom: 14px; | |
| } | |
| .page { | |
| animation: reveal 320ms ease-out; | |
| } | |
| button { | |
| border: 1px solid var(--line); | |
| background: var(--surface); | |
| color: var(--ink); | |
| padding: 8px 12px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| border-radius: 8px; | |
| transition: background 120ms ease, transform 120ms ease; | |
| } | |
| button:hover { | |
| background: #edf3f8; | |
| transform: translateY(-1px); | |
| } | |
| .grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(260px, 1fr)); | |
| gap: 12px; | |
| } | |
| .panel { | |
| background: var(--surface); | |
| border: 1px solid var(--line); | |
| padding: 12px; | |
| border-radius: 14px; | |
| box-shadow: 0 10px 24px -20px rgba(16, 26, 37, 0.45); | |
| } | |
| .panel h3 { | |
| margin: 0 0 8px; | |
| font-size: 0.95rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| color: #2b3f36; | |
| } | |
| pre { | |
| margin: 0; | |
| overflow: auto; | |
| font-size: 0.78rem; | |
| } | |
| table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| } | |
| th, | |
| td { | |
| padding: 4px 6px; | |
| border-bottom: 1px solid var(--line); | |
| text-align: left; | |
| font-size: 0.82rem; | |
| } | |
| .list { | |
| margin: 0; | |
| padding-left: 16px; | |
| } | |
| .kpi { | |
| font-family: "Space Grotesk", sans-serif; | |
| font-size: 1.6rem; | |
| margin: 0; | |
| } | |
| .grid-mini { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 8px; | |
| margin-bottom: 10px; | |
| } | |
| .grid-mini p { | |
| margin: 2px 0 0; | |
| font-weight: 700; | |
| } | |
| .workbench-page { | |
| max-width: 1480px; | |
| } | |
| .workbench-header { | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: space-between; | |
| gap: 16px; | |
| margin-bottom: 14px; | |
| } | |
| .workbench-header p { | |
| margin: 0; | |
| } | |
| .range-chip, | |
| .status-chip, | |
| .panel-heading span { | |
| border: 1px solid var(--line); | |
| background: #edf6f3; | |
| color: #24564d; | |
| border-radius: 999px; | |
| padding: 5px 9px; | |
| font-size: 0.78rem; | |
| font-weight: 700; | |
| white-space: nowrap; | |
| } | |
| .control-strip { | |
| display: grid; | |
| grid-template-columns: minmax(180px, 1fr) 140px minmax(240px, 1.2fr) auto; | |
| gap: 10px; | |
| align-items: end; | |
| margin-bottom: 12px; | |
| } | |
| .field { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 5px; | |
| min-width: 0; | |
| } | |
| .field span { | |
| color: var(--muted); | |
| font-size: 0.76rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| } | |
| select, | |
| input { | |
| min-height: 38px; | |
| width: 100%; | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| background: #fff; | |
| color: var(--ink); | |
| padding: 8px 10px; | |
| font: inherit; | |
| } | |
| select:focus, | |
| input:focus, | |
| button:focus { | |
| outline: 2px solid rgba(11, 122, 104, 0.24); | |
| outline-offset: 1px; | |
| } | |
| button:disabled { | |
| cursor: not-allowed; | |
| opacity: 0.55; | |
| transform: none; | |
| } | |
| button.secondary { | |
| color: #24564d; | |
| background: #eef7f4; | |
| } | |
| .workbench-grid { | |
| display: grid; | |
| grid-template-columns: minmax(300px, 1.1fr) minmax(300px, 0.9fr); | |
| gap: 12px; | |
| align-items: start; | |
| } | |
| .panel-wide { | |
| grid-column: 1 / -1; | |
| } | |
| .panel-tall { | |
| min-height: 310px; | |
| } | |
| .panel-heading { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 12px; | |
| margin-bottom: 10px; | |
| } | |
| .panel-heading h3 { | |
| margin-bottom: 0; | |
| } | |
| .kpi-grid { | |
| display: grid; | |
| grid-template-columns: repeat(6, minmax(110px, 1fr)); | |
| gap: 8px; | |
| } | |
| .kpi-grid div, | |
| .selected-action div { | |
| min-height: 68px; | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| background: #fff; | |
| padding: 10px; | |
| } | |
| .kpi-grid span, | |
| .selected-action span { | |
| display: block; | |
| color: var(--muted); | |
| font-size: 0.76rem; | |
| font-weight: 700; | |
| text-transform: uppercase; | |
| letter-spacing: 0.04em; | |
| } | |
| .kpi-grid strong, | |
| .selected-action strong { | |
| display: block; | |
| margin-top: 6px; | |
| overflow-wrap: anywhere; | |
| } | |
| .candidate-list, | |
| .history-list, | |
| .event-log { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 7px; | |
| max-height: 264px; | |
| overflow: auto; | |
| } | |
| .candidate-row { | |
| display: grid; | |
| grid-template-columns: minmax(130px, 1fr) minmax(90px, 0.8fr) 64px; | |
| align-items: center; | |
| gap: 8px; | |
| width: 100%; | |
| min-height: 52px; | |
| text-align: left; | |
| background: #fff; | |
| } | |
| .candidate-row span { | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .candidate-row strong { | |
| display: block; | |
| color: #24564d; | |
| } | |
| .candidate-row.selected { | |
| border-color: var(--accent); | |
| background: #edf8f5; | |
| box-shadow: inset 3px 0 0 var(--accent); | |
| } | |
| .selected-action { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 8px; | |
| margin-bottom: 10px; | |
| } | |
| .action-console .field { | |
| margin-bottom: 8px; | |
| } | |
| .button-row { | |
| display: flex; | |
| gap: 8px; | |
| flex-wrap: wrap; | |
| } | |
| .reward-panel { | |
| overflow: hidden; | |
| } | |
| .reward-bars { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 7px; | |
| max-height: 264px; | |
| overflow: auto; | |
| } | |
| .reward-row { | |
| display: grid; | |
| grid-template-columns: minmax(150px, 0.8fr) minmax(120px, 1fr) 56px; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: 0.78rem; | |
| } | |
| .reward-row span { | |
| color: var(--muted); | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| white-space: nowrap; | |
| } | |
| .reward-row strong { | |
| text-align: right; | |
| font-family: "Space Grotesk", sans-serif; | |
| } | |
| .reward-track { | |
| height: 7px; | |
| border-radius: 999px; | |
| background: #dfe7ed; | |
| overflow: hidden; | |
| } | |
| .reward-fill { | |
| height: 100%; | |
| border-radius: 999px; | |
| background: linear-gradient(90deg, var(--accent), #4f9f8d); | |
| transition: width 260ms ease; | |
| } | |
| .history-item, | |
| .event-log div { | |
| border: 1px solid var(--line); | |
| border-radius: 8px; | |
| background: #fff; | |
| padding: 9px 10px; | |
| font-size: 0.82rem; | |
| } | |
| .history-item strong { | |
| display: block; | |
| margin-bottom: 4px; | |
| } | |
| .history-item span { | |
| color: var(--muted); | |
| } | |
| .event-log { | |
| max-height: 170px; | |
| } | |
| .error-banner { | |
| margin-bottom: 12px; | |
| border: 1px solid rgba(191, 45, 63, 0.35); | |
| border-radius: 8px; | |
| background: #fff1f3; | |
| color: var(--critical); | |
| padding: 10px 12px; | |
| font-weight: 700; | |
| } | |
| @keyframes reveal { | |
| from { | |
| opacity: 0; | |
| transform: translateY(6px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @media (max-width: 900px) { | |
| .app-shell { | |
| grid-template-columns: 1fr; | |
| } | |
| .sidebar { | |
| border-right: none; | |
| border-bottom: 1px solid var(--line); | |
| } | |
| .grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .workbench-header, | |
| .button-row { | |
| align-items: stretch; | |
| flex-direction: column; | |
| } | |
| .control-strip, | |
| .workbench-grid, | |
| .kpi-grid, | |
| .selected-action { | |
| grid-template-columns: 1fr; | |
| } | |
| .range-chip { | |
| align-self: flex-start; | |
| } | |
| } | |