/* Research workbench. Loaded after the legacy component sheets. Layout preserves the existing rail, mobile detents and construct tabs. Color expresses hierarchy; scientific status retains its semantic tokens. */ :root { --gray-0: #ffffff; --gray-1: #f5f6f8; --gray-2: #eef1f4; --gray-3: #dfe4e9; --gray-4: #c9d1da; --gray-5: #aeb8c4; --gray-6: #637080; --gray-7: #526071; --gray-8: #293544; --gray-9: #172331; --brand: #293e52; --brand-deep: #172331; --brand-light: #526071; --brand-50: #eef3f8; --brand-100: #e1eaf3; --brand-200: #c4d3e2; --brand-ring: rgba(40, 86, 133, .22); --ink-disabled: #697788; --hover-fill: #172331; --hover-text: #ffffff; --on-ink: #ffffff; --on-accent: #ffffff; --font-display: var(--font-ui); --font-body: var(--font-ui); --workspace-accent: #285b88; --workspace-wash: #e9f0f7; } :root[data-theme="dark"] { --gray-0: #19212b; --gray-1: #111820; --gray-2: #202b37; --gray-3: #303d4c; --gray-4: #46576b; --gray-5: #607287; --gray-6: #a1adbc; --gray-7: #b4bfcd; --gray-8: #d5dde7; --gray-9: #edf2f8; --brand: #b8cde2; --brand-deep: #e1ebf5; --brand-light: #a1b5cb; --brand-50: #202e3c; --brand-100: #293e52; --brand-200: #425b75; --ink-disabled: #99a6b8; --on-ink: #111820; --on-accent: #111820; --workspace-accent: #a9cbee; --workspace-wash: #24394d; } body { font-family: var(--font-ui); } .bg-atmos { display: none; } .topbar-title, .mc-h, .view-title, .view-title em, .hero h1, .card-title, .card-title em, .disclaimer-title, .disclaimer-title em, .brand-word, .cp-empty-h, .bench-spec-name { font-family: var(--font-ui); font-style: normal; font-weight: 600; letter-spacing: -.025em; } .topbar { background: var(--bg-card); } .topbar-title { font-size: var(--t-3); letter-spacing: -.01em; } .topbar-sub { font-family: var(--font-ui); font-size: var(--t-2); } .research-strip { background: var(--bg-card); border-left: 0; border-bottom: 1px solid var(--line); color: var(--ink-soft); font-family: var(--font-ui); } .research-strip strong { font-style: normal; font-weight: 500; } .research-strip-dot { color: var(--ink-faint); } .research-strip-link { font-family: var(--font-ui); text-transform: none; letter-spacing: 0; } .view--mission { padding: 32px 36px 48px; } .mc { width: 100%; max-width: 1120px; } /* The heading owns the gap under itself. This file loads after app.css and its `margin: 0` was silently beating app.css's `0 0 22px`, so the pill that follows sat flush against the title with a measured gap of ZERO. */ .mc-h { font-size: var(--t-5); line-height: 1.2; margin: 0 0 22px; } .mc-enter { margin: 20px 0 0; gap: 10px; flex-wrap: wrap; } .mc-enter-cta, .mc-enter-find { min-height: 40px; border-radius: var(--r-2); font-size: var(--t-2); font-family: var(--font-ui); } .mc-enter-cta { padding: 10px 16px; background: var(--ink-strong); color: var(--on-ink); } .mc-enter-find { padding: 10px 14px; background: var(--bg-card); } .mc-sec { margin-top: 28px; } .mc-sec-h { align-items: center; margin-bottom: 14px; padding-bottom: 12px; gap: 12px; flex-wrap: wrap; } /* Section heads speak the page titles' kicker: a short ink rule, then mono capitals. They name a section; they are not headlines competing with it. */ .mc-sec-h h2, .mc-sec-h .micro { display: flex; align-items: center; gap: 12px; margin: 0; font: 600 var(--t-1)/1.3 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink-strong); } .mc-sec-h h2::before, .mc-sec-h .micro::before { content: ""; flex: 0 0 22px; height: 1px; background: currentColor; } .mc-sec-r { font-family: var(--font-mono); font-size: var(--t-1); color: var(--ink-faint); letter-spacing: .04em; } .mc-sec-r { text-decoration: none; cursor: pointer; } .mc-sec-r:hover { color: var(--workspace-accent); text-decoration: underline; } .mc-work-empty { grid-column: 1 / -1; padding: 20px; border: 1px solid var(--line); border-radius: var(--r-3); background: var(--bg-card); display: flex; align-items: center; flex-wrap: wrap; gap: 14px 24px; } .mc-work-empty > div { flex: 1 1 260px; } .mc-work-empty h3 { margin: 0 0 5px; font-size: var(--t-3); font-weight: 500; } .mc-work-empty p { margin: 0; color: var(--ink-soft); font-size: var(--t-2); line-height: 1.6; } .mc-work-empty .mc-ex-note { flex-basis: 100%; } .mc-empty-action { display: inline-flex; align-items: center; gap: 12px; min-height: 36px; color: var(--workspace-accent); font-size: var(--t-2); font-weight: 500; text-decoration: none; } .mc-empty-action:hover { text-decoration: underline; } /* The same link-styled action, as a