/* Hallmark · macrostructure: Workbench · genre: editorial · tone: warm-paper research desk · anchor: pen green with red exceptions · structural fingerprint: source form → focused run → evidence-backed report rail · pre-emit critique: P5 H5 E4 S5 R5 V4 · contrast: pass (40–41) · slop: pass (42–45) · honest: pass (46) · chrome: pass (47) · tokens: pass (48) · responsive: pass (34, 49–57) */
@import url("tokens.css");

:root { --ri-red: #9b3a2e; --ri-green: #3a6b5c; --ri-green-dark: #254b40; --ri-paper: var(--paper); --ri-well: var(--well); --ri-ink: var(--ink); --ri-muted: var(--ink-faint); --ri-rule: var(--rule); --ri-focus: #235ec4; --ri-white: #fff; --ri-error-surface: #f4e7e1; --ri-error-ink: #57261f; --ri-error-surface-soft: #f9ebe7; --ri-backdrop: rgba(26,26,24,.32); --ri-radius: 0; --ri-space-1: .25rem; --ri-space-2: .5rem; --ri-space-3: .75rem; --ri-space-4: 1rem; --ri-space-5: 1.5rem; --ri-space-6: 2rem; --ri-space-7: 3rem; --ri-space-8: 4rem; --ri-ease: cubic-bezier(.2,.7,.2,1); }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { min-height: 100%; overflow-x: clip; }
body { margin: 0; background: var(--ri-paper); color: var(--ri-ink); font-family: var(--font-ui); font-size: 16px; line-height: 1.5; }
button, input, select { font: inherit; }
button, a, select { -webkit-tap-highlight-color: transparent; }
button, a { white-space: nowrap; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--ri-focus); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.shell { max-width: 1440px; margin: auto; padding: var(--ri-space-4); }
.masthead, .mast-actions { display: flex; justify-content: space-between; align-items: center; }.masthead { min-height: 52px; border-bottom: 1px solid var(--ri-rule); }.mast-actions { gap: var(--ri-space-4); }
.wordmark { color: var(--ri-ink); font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; text-decoration: none; }
.mastnote, .eyebrow { margin: 0; color: var(--ri-muted); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.mastnote { display: flex; align-items: center; gap: .45rem; letter-spacing: .02em; text-transform: none; }
.mast-dot { width: .5rem; height: .5rem; border-radius: 50%; background: var(--ri-muted); }
.mast-dot.is-ready { background: var(--ri-green); }.mast-dot.is-error { background: var(--ri-red); }
.workspace-grid { display: grid; gap: var(--ri-space-7); padding-block: var(--ri-space-7); }
.workbench { min-width: 0; }.workbench h1, .workbench h2, .side-column h2, .side-column h3 { font-family: var(--font-display); line-height: 1.06; overflow-wrap: anywhere; }
.workbench h1 { margin: var(--ri-space-2) 0 var(--ri-space-4); font-size: clamp(2.35rem, 7vw, 5.4rem); font-weight: 500; letter-spacing: -.04em; }.intro { max-width: 58ch; margin: 0 0 var(--ri-space-7); color: var(--ink-soft); font-size: 1.05rem; }
.setup-note { display: grid; gap: .2rem; margin-bottom: var(--ri-space-5); padding: var(--ri-space-4); border-left: 3px solid var(--ri-red); background: var(--ri-error-surface); color: var(--ri-error-ink); }.setup-note span { font-size: .9rem; }
.source-fields { display: grid; gap: var(--ri-space-4); }.field { display: grid; gap: .4rem; color: var(--ink-soft); font-size: .8rem; font-weight: 650; letter-spacing: .03em; }.field--source { position: relative; }.field input, .field select { width: 100%; min-height: 48px; padding: .65rem .8rem; border: 1px solid var(--outline-soft); border-radius: var(--ri-radius); outline: 2px solid transparent; outline-offset: 1px; background: var(--well-focus); color: var(--ri-ink); font-weight: 400; letter-spacing: 0; transition: background-color 150ms var(--ri-ease), border-color 150ms var(--ri-ease); }.field input::placeholder { color: var(--placeholder); }.field input:hover, .field select:hover { background: var(--ri-paper); }.field input:focus, .field select:focus { border-color: var(--ri-ink); outline-color: var(--ri-focus); }.field input[aria-invalid="true"] { border-color: var(--ri-red); background: var(--ri-error-surface-soft); }.field-help, .form-error { min-height: 1lh; margin: .45rem 0 0; color: var(--ri-muted); font-size: .82rem; }.form-error { color: var(--ri-red); }.app-results { position: absolute; z-index: 3; top: calc(100% - .1rem); right: 0; left: 0; max-height: 20rem; margin: 0; padding: 0; overflow: auto; border: 1px solid var(--ri-ink); background: var(--ri-paper); list-style: none; }.app-result { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .65rem; width: 100%; min-height: 52px; padding: .6rem .75rem; border: 0; border-bottom: 1px solid var(--ri-rule); background: transparent; color: var(--ri-ink); text-align: left; white-space: normal; }.app-result:hover, .app-result[aria-selected="true"] { background: var(--ri-well); }.app-result__name, .app-result__source { display: block; }.app-result__name { font-weight: 650; }.app-result__developer, .app-result__source { color: var(--ri-muted); font-size: .76rem; }.app-result__source { align-self: center; text-align: right; }
.question-picker { min-inline-size: 0; margin: var(--ri-space-6) 0 0; padding: var(--ri-space-5) 0 0; border: 0; border-top: 1px solid var(--ri-rule); }.question-picker legend { padding: 0; font-family: var(--font-display); font-size: 1.55rem; }.question-groups { display: flex; gap: .45rem; overflow-x: auto; padding-block: var(--ri-space-4); }.group-button, .text-button, .tab { border: 0; border-radius: 0; background: none; color: var(--ink-soft); }.group-button { min-height: 38px; padding: .4rem .1rem; border-bottom: 1px solid transparent; font-size: .84rem; }.group-button[aria-pressed="true"], .group-button:hover { color: var(--ri-ink); border-bottom-color: var(--ri-green); }.questions { display: grid; gap: .5rem; }.question-option { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .7rem; align-items: start; width: 100%; padding: .8rem 0; border: 0; border-bottom: 1px solid var(--ri-rule); background: none; color: inherit; text-align: left; white-space: normal; }.question-option::before { content: ""; width: .85rem; height: .85rem; margin-top: .25rem; border: 1px solid var(--outline-soft); border-radius: 50%; }.question-option.is-selected::before { border: .27rem solid var(--ri-green); }.question-option strong { display: block; font-size: .98rem; }.question-option span { display: block; margin-top: .1rem; color: var(--ri-muted); font-size: .84rem; }.sample-controls { display: flex; flex-wrap: wrap; gap: var(--ri-space-4); align-items: end; margin-top: var(--ri-space-5); }.field--limit { flex: 1 1 11rem; }.button { min-height: 48px; padding: .7rem 1rem; border: 1px solid var(--ri-green-dark); background: var(--ri-green); color: var(--ri-white); font-weight: 650; transition: background-color 150ms var(--ri-ease), transform 150ms var(--ri-ease); }.button:hover { background: var(--ri-green-dark); }.button:active { transform: translateY(1px); }.button:disabled { opacity: .52; cursor: not-allowed; }.button--quiet { background: transparent; color: var(--ri-ink); border-color: var(--ri-ink); }.button--quiet:hover { background: var(--ri-ink); color: var(--ri-paper); }
.sample-panel, .run-panel { margin-top: var(--ri-space-7); padding-top: var(--ri-space-5); border-top: 1px solid var(--ri-rule); }.section-line { display: flex; justify-content: space-between; gap: var(--ri-space-4); align-items: start; }.section-line h2, .run-panel h2 { margin: .15rem 0 0; font-size: 1.7rem; font-weight: 500; }.text-button { min-height: 40px; padding: .3rem 0; color: var(--ri-green-dark); font-size: .85rem; text-decoration: underline; text-underline-offset: .22rem; }.text-button:hover { color: var(--ri-ink); }.sample-facts { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--ri-space-3); margin: var(--ri-space-5) 0 var(--ri-space-3); }.sample-facts div { padding-bottom: .45rem; border-bottom: 1px solid var(--ri-rule); }.sample-facts dt { color: var(--ri-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }.sample-facts dd { margin: .15rem 0 0; font-family: var(--font-display); font-size: 1.15rem; }.sample-caption { margin: 0; color: var(--ri-muted); font-size: .86rem; }.run-panel { display: grid; gap: var(--ri-space-4); }.run-panel > div:first-child p:last-child { margin-bottom: 0; color: var(--ri-muted); }.run-actions { display: flex; flex-wrap: wrap; gap: .7rem 1rem; align-items: center; }.trial-note { margin: 0; color: var(--ri-muted); font-size: .82rem; }.notice { margin: 0; padding: .7rem .8rem; border-left: 2px solid var(--ri-red); background: var(--ri-error-surface-soft); color: var(--ri-error-ink); font-size: .84rem; }.privacy-note { grid-column: 1 / -1; margin: 0; color: var(--ri-muted); font-size: .78rem; }
.side-column { min-width: 0; }.tab-nav { display: flex; gap: 1rem; border-bottom: 1px solid var(--ri-rule); }.tab { min-height: 43px; padding: .35rem 0; border-bottom: 2px solid transparent; font-size: .86rem; }.tab.is-active { color: var(--ri-ink); border-bottom-color: var(--ri-green); }.panel { min-height: 25rem; padding-top: var(--ri-space-5); }.empty-state { padding-block: var(--ri-space-6); }.empty-mark { display: block; color: var(--ri-green); font-family: var(--font-hand); font-size: 3rem; line-height: 1; transform: rotate(-14deg); }.empty-state h2 { max-width: 12ch; margin: .5rem 0; font-size: clamp(2rem, 6vw, 3.2rem); font-weight: 500; }.empty-state p { max-width: 39ch; color: var(--ri-muted); }.report-header { padding-bottom: var(--ri-space-5); border-bottom: 1px solid var(--ri-rule); }.report-header h2 { margin: .2rem 0 .6rem; font-size: clamp(2rem, 5vw, 3rem); font-weight: 500; }.report-meta { color: var(--ri-muted); font-size: .8rem; }.report-answer { margin: var(--ri-space-5) 0; font-family: var(--font-display); font-size: 1.35rem; line-height: 1.3; }.coverage { margin: 0 0 var(--ri-space-5); color: var(--ri-muted); font-size: .86rem; }.finding { padding-block: var(--ri-space-5); border-top: 1px solid var(--ri-rule); }.finding:first-of-type { border-top: 0; }.finding h3 { margin: .35rem 0 .45rem; font-size: 1.25rem; font-weight: 500; }.finding p { margin: 0 0 .7rem; color: var(--ink-soft); }.finding-tags { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }.finding-status, .finding-strength { display: inline-block; color: var(--ri-green-dark); font-size: .75rem; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }.finding-strength { color: var(--ri-muted); }.finding-status[data-status="NEEDS ANALYTICS"], .finding-status[data-status="weak"] { color: var(--ri-red); }.finding-quote { margin: .8rem 0; padding-left: .85rem; border-left: 2px solid var(--ri-rule); color: var(--ink-soft); font-family: var(--font-display); }.evidence-button { min-height: 40px; padding: .3rem 0; border: 0; background: none; color: var(--ri-green-dark); font-size: .84rem; text-decoration: underline; text-underline-offset: .22rem; }.report-actions { display: flex; gap: 1rem; margin-top: var(--ri-space-5); }.panel-note { color: var(--ri-muted); font-size: .85rem; }.history-list { display: grid; gap: 0; }.history-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .75rem; padding: var(--ri-space-4) 0; border-top: 1px solid var(--ri-rule); }.history-row strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.history-row span { display: block; color: var(--ri-muted); font-size: .78rem; }.pricing-list { margin: var(--ri-space-5) 0; }.pricing-list div { display: grid; grid-template-columns: minmax(7rem, .7fr) 1fr; gap: var(--ri-space-4); padding-block: var(--ri-space-4); border-top: 1px solid var(--ri-rule); }.pricing-list dt { color: var(--ri-muted); font-size: .85rem; }.pricing-list dd { margin: 0; }.pricing-list strong, .pricing-list span { display: block; }.pricing-list strong { font-family: var(--font-display); font-size: 1.3rem; font-weight: 500; }.pricing-list span { margin-top: .15rem; color: var(--ri-muted); font-size: .82rem; }
.workspace-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 1.5rem; max-width: 1440px; margin: 0 auto; padding: var(--ri-space-5) var(--ri-space-4); border-top: 1px solid var(--ri-rule); color: var(--ri-muted); font-size: .78rem; }
.workspace-footer nav { display: flex; flex-wrap: wrap; gap: .75rem 1rem; }
.workspace-footer a { color: var(--ri-green-dark); text-underline-offset: .18rem; }
dialog { width: min(32rem, calc(100% - 2rem)); max-height: min(80dvh, 40rem); margin: auto; padding: var(--ri-space-5); border: 1px solid var(--ri-ink); background: var(--ri-paper); color: var(--ri-ink); }dialog::backdrop { background: var(--ri-backdrop); }dialog h2 { margin: .2rem 0 .7rem; font-family: var(--font-display); font-size: 2rem; font-weight: 500; }dialog p { color: var(--ri-muted); }.dialog-actions, .dialog-head { display: flex; justify-content: space-between; gap: var(--ri-space-4); align-items: center; margin-top: var(--ri-space-5); }.dialog-head { margin-top: 0; padding-bottom: var(--ri-space-3); border-bottom: 1px solid var(--ri-rule); }.icon-button { width: 44px; height: 44px; border: 0; background: none; color: var(--ri-ink); font-size: 2rem; line-height: 1; }.evidence-list { display: grid; gap: var(--ri-space-4); padding-top: var(--ri-space-4); }.evidence-review { padding-bottom: var(--ri-space-4); border-bottom: 1px solid var(--ri-rule); }.evidence-review p { margin: .45rem 0 0; color: var(--ink-soft); }.evidence-review small { color: var(--ri-muted); }
@media (min-width: 40rem) { .shell { padding: var(--ri-space-6); }.source-fields { grid-template-columns: minmax(0,1fr) minmax(13rem,.45fr); }.run-panel { grid-template-columns: minmax(0,1fr) minmax(12rem,.5fr); align-items: end; }.run-actions, .notice { grid-column: 1 / -1; }.sample-facts { grid-template-columns: repeat(4,minmax(0,1fr)); } }
@media (min-width: 64rem) { .workspace-grid { grid-template-columns: minmax(0, 1.15fr) minmax(24rem, .85fr); align-items: start; }.side-column { position: sticky; top: 0; }.shell { padding: var(--ri-space-7); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }
