:root { --bg: #09111f; --panel: rgba(16, 25, 40, 0.92); --panel-strong: rgba(12, 20, 34, 0.98); --text: #eef3ff; --muted: #a8b4ca; --border: rgba(255, 255, 255, 0.08); --warning: #ff6f3c; --warning-soft: rgba(255, 111, 60, 0.14); --success: #38d39f; --shadow: 0 24px 60px rgba(0, 0, 0, 0.4); } * { box-sizing: border-box; } body { margin: 0; min-height: 100vh; background: radial-gradient(circle at top left, rgba(255, 111, 60, 0.18), transparent 30%), radial-gradient(circle at top right, rgba(56, 211, 159, 0.14), transparent 26%), linear-gradient(180deg, #08101d 0%, #050a14 100%); color: var(--text); font-family: "Space Grotesk", sans-serif; } .page-shell { width: min(1280px, calc(100% - 32px)); margin: 32px auto 48px; } .hero, .panel { border: 1px solid var(--border); background: var(--panel); box-shadow: var(--shadow); backdrop-filter: blur(16px); } .hero { display: grid; grid-template-columns: 1.6fr 1fr; gap: 24px; padding: 28px; border-radius: 28px; } .eyebrow { display: inline-block; margin-bottom: 12px; color: var(--warning); font-size: 0.9rem; letter-spacing: 0.12em; text-transform: uppercase; } h1, h2, h3 { margin: 0; } h1 { font-size: clamp(2.4rem, 6vw, 4.8rem); line-height: 0.95; } .hero-text, .panel-header p, .task-summary p, .link-list, .all-results, .episode-log { color: var(--muted); } .hero-text { max-width: 60ch; font-size: 1.08rem; line-height: 1.6; } .badge-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; } .badge { padding: 8px 12px; border-radius: 999px; background: rgba(255, 255, 255, 0.06); border: 1px solid var(--border); font-size: 0.92rem; } .hero-panel { display: grid; gap: 14px; } .metric-card, .score-card { padding: 18px; border-radius: 20px; background: var(--panel-strong); border: 1px solid var(--border); } .metric-card strong, .score-card strong { display: block; margin-top: 8px; font-size: 1.25rem; line-height: 1.3; } .metric-label, .score-card span, .field span { color: var(--muted); font-size: 0.95rem; } .dashboard-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 20px; margin-top: 20px; } .panel { padding: 24px; border-radius: 24px; } .panel-accent { background: linear-gradient(180deg, rgba(255, 111, 60, 0.12), transparent 55%), var(--panel); } .panel-wide { grid-column: 1 / -1; } .panel-header { margin-bottom: 18px; } .panel-header p { margin-top: 8px; } .controls { display: grid; gap: 18px; } .field { display: grid; gap: 8px; } select, button { font: inherit; } select { padding: 14px 16px; border-radius: 16px; border: 1px solid var(--border); background: rgba(7, 13, 24, 0.96); color: var(--text); font-weight: 600; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03); } select:focus { outline: 2px solid rgba(255, 111, 60, 0.45); outline-offset: 2px; } select option { background: #0d1525; color: var(--text); } .button-row { display: flex; flex-wrap: wrap; gap: 12px; } .button { border: none; border-radius: 16px; padding: 14px 18px; cursor: pointer; transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease; } .button:hover { transform: translateY(-1px); } .button-primary { background: linear-gradient(135deg, #ff934f 0%, #ff6f3c 100%); color: #fff; box-shadow: 0 14px 32px rgba(255, 111, 60, 0.24); } .button-secondary { background: rgba(255, 255, 255, 0.07); color: var(--text); border: 1px solid var(--border); } .button-ghost { background: rgba(56, 211, 159, 0.12); color: #dffff4; border: 1px solid rgba(56, 211, 159, 0.24); } .task-summary { margin-top: 18px; padding: 18px; border-radius: 18px; background: rgba(255, 255, 255, 0.04); border: 1px solid var(--border); } .task-summary h3 { margin: 0 0 8px; } .score-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .empty-state { padding: 18px; border: 1px dashed rgba(255, 255, 255, 0.16); border-radius: 18px; background: rgba(255, 255, 255, 0.03); } .episode-layout { display: grid; grid-template-columns: 460px minmax(0, 1fr); gap: 22px; align-items: start; } .episode-visuals { display: grid; gap: 18px; position: sticky; top: 16px; } .mini-panel { padding: 18px; border-radius: 20px; background: var(--panel-strong); border: 1px solid var(--border); } .episode-log, .all-results { font-family: "IBM Plex Mono", monospace; font-size: 0.93rem; line-height: 1.6; white-space: pre-wrap; } .episode-log { max-height: 760px; min-height: 760px; overflow-y: auto; overflow-x: hidden; padding: 22px; border-radius: 20px; background: var(--panel-strong); border: 1px solid var(--border); } .all-results { max-height: 240px; overflow-y: auto; padding-right: 10px; } .reward-chart { min-height: 240px; padding: 12px 8px 8px; border-radius: 18px; background: rgba(255, 255, 255, 0.03); border: 1px solid var(--border); } .reward-chart svg { display: block; width: 100%; height: 240px; } .chart-axis { stroke: rgba(255, 255, 255, 0.15); stroke-width: 1; } .chart-grid { stroke: rgba(255, 255, 255, 0.08); stroke-width: 1; stroke-dasharray: 4 4; } .chart-line { fill: none; stroke: #38d39f; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; } .chart-point { fill: #ff6f3c; stroke: #fff; stroke-width: 2; } .chart-label { fill: #a8b4ca; font-size: 11px; font-family: "IBM Plex Mono", monospace; } .final-summary { display: grid; gap: 12px; } .summary-card { padding: 14px; border-radius: 16px; background: rgba(255, 255, 255, 0.04); border: 1px solid var(--border); } .summary-card strong { display: block; margin-bottom: 6px; font-size: 0.96rem; } .summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .summary-pill { padding: 12px; border-radius: 14px; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--border); } .summary-pill span { display: block; color: var(--muted); font-size: 0.82rem; margin-bottom: 6px; } .summary-pill strong { font-size: 1rem; } .episode-log::-webkit-scrollbar, .all-results::-webkit-scrollbar { width: 10px; } .episode-log::-webkit-scrollbar-thumb, .all-results::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.14); border-radius: 999px; } .log-step { padding: 18px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.06); } .log-step:first-child { padding-top: 0; } .log-step:last-child { border-bottom: none; padding-bottom: 0; } .log-step strong { color: var(--text); } .log-title { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 10px; } .action-chip { padding: 4px 10px; border-radius: 999px; background: var(--warning-soft); color: #ffd6c5; border: 1px solid rgba(255, 111, 60, 0.22); font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.08em; white-space: nowrap; } .action-meta { display: grid; gap: 8px; color: var(--muted); } .highlight-stack { display: grid; gap: 12px; } .highlight-card { padding: 16px; border-radius: 18px; background: rgba(255, 255, 255, 0.04); border: 1px solid var(--border); } .highlight-card p { margin: 8px 0 0; color: var(--muted); line-height: 1.6; } .highlight-title { color: var(--text); font-weight: 700; } .link-list { display: grid; gap: 12px; } .link-list a { color: #ffd7c7; text-decoration: none; } .link-list a:hover { text-decoration: underline; } @media (max-width: 1100px) { .episode-layout { grid-template-columns: 1fr; } .episode-visuals { position: static; } } @media (max-width: 960px) { .hero, .dashboard-grid, .summary-grid, .score-grid { grid-template-columns: 1fr; } .episode-log { min-height: 520px; max-height: 520px; } }