/* Hallmark · shape: landing (/) + app screen (?q=, ?view=queue) · genre: editorial · theme: Grid (by request, the locked Atlas system) · redesign: full
 * hero: Counter (/), none on the app screens · nav: edge-aligned bar, red-square wordmark, two destinations and the library select · footer: mast · imagery: none, the libraries' own figures · signature: the question typed at display size on the ultramarine field
 * axes: light/grotesk-sans/cool · posture: full-palette (/), restrained (results) · job: search · contrast: pass · fold: pass · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H5 E4 S4 R5 V3 · weakest: V, the locked Atlas system repeats the last logged theme by request, so the change is compositional: a field hero, figures that open results and contents-style result rows */
/* Hallmark · hero-review: fix · 5 findings · 4 resolved 1 unresolved (headline wording is the owner's, asked in the handoff) */
/* Hallmark · reworded "Ask. Inspect. Read." to "How search works" · 19 names the triad heading */
/* Hallmark · dropped the idle list of twelve abstract previews on / · the user split the start page from the results; every abstract is reached by a question, an example or a presentation figure, and the 44.1-month figure lived in one of those previews */
/* Hallmark · waive 49b · each result title is the abstract's verbatim title from the ASH or ESMO programme, linked whole · shortening a source title would misquote the abstract */
/* Hallmark · dropped "44.1 months" · it appeared only in the MANGROVE preview on the old idle list; the abstract itself still carries it */
/* Hallmark · finish-review: subagent · 8 findings · 7 resolved 1 partial (a title-only match keeps one title passage, which the browser tests require) · gap: none */
/* Hallmark · dismissed kept · the 44.1-month figure and the 939 to 208 word drop are the idle preview list dropped above; the results URL is checked in its own app-scope run */
/* Hallmark · answered F6 · the display figures stand alone, one per cell, and tabular figures open a wide gap at the comma in Radio Canada Big */
@import url("./tokens.css");
@import url("./base.css");

@font-face { font-family: "Radio Canada Big"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("./fonts/radio-canada-big-latin.woff2") format("woff2"); }
@font-face { font-family: "Radio Canada"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("./fonts/radio-canada-latin.woff2") format("woff2"); }

body { font-size: 1.0625rem; line-height: 1.5; }
.icon { width: 1.15em; height: 1.15em; flex-shrink: 0; }
.skip-link { position: absolute; left: var(--space-md); top: calc(-1 * var(--space-3xl)); z-index: var(--z-toast); padding: var(--space-xs) var(--space-md); background: var(--color-ink); color: var(--color-paper); }
.skip-link:focus-visible { top: calc(env(safe-area-inset-top, 0px) + var(--space-md)); }

/* Controls, every state */
.button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-xs); min-height: 44px; padding: var(--space-xs) var(--space-lg); border: 0; border-radius: 0; background: var(--color-paper-2); color: var(--color-ink); font: 500 var(--text-md)/1.25 var(--font-body); text-align: center; text-decoration: none; cursor: pointer; transition: background-color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out); }
.button:hover { background: var(--color-paper-3); }
.button:active { transform: translateY(1px); }
.button:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.button:disabled { opacity: 0.55; cursor: not-allowed; transform: none; }
.button-primary { min-height: 52px; background: var(--color-accent); color: var(--color-accent-ink); }
.button-primary:hover { background: var(--color-accent-hover); }
.text-button { display: inline-flex; align-items: center; gap: var(--space-xs); min-height: 44px; padding: 0; border: 0; background: none; color: inherit; font: 500 var(--text-sm)/1.2 var(--font-body); text-align: left; text-decoration: underline var(--rule-hair); text-underline-offset: 0.32em; overflow-wrap: anywhere; cursor: pointer; transition: color var(--dur-short) var(--ease-out); }
.text-button:hover { color: var(--color-accent); }
.text-button:active { transform: translateY(1px); }
.text-button:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.text-button:disabled { opacity: 0.55; cursor: not-allowed; text-decoration: none; color: var(--color-muted); transform: none; }
select { min-height: 44px; padding: 0 var(--space-xs) 0 0; border: 0; border-bottom: 1px solid var(--color-control-border); border-radius: 0; background: transparent; color: inherit; font: 500 var(--text-sm)/1.2 var(--font-body); cursor: pointer; }
select:hover { border-bottom-color: var(--color-ink); }
select:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
select:active { border-bottom-color: var(--color-ink); }
select:disabled { opacity: 0.55; cursor: not-allowed; }
.field-label, .refinement-panel label { color: var(--color-muted); font: 500 var(--text-sm)/1.3 var(--font-body); }

/* Chrome */
.site-header { position: relative; z-index: var(--z-raised); padding-block-start: env(safe-area-inset-top, 0px); background: var(--color-paper); container-type: inline-size; }
.header-inner { display: flex; align-items: center; gap: clamp(var(--space-sm), 2.8vw, var(--space-xl)); min-height: var(--nav-height); }
.wordmark { display: inline-grid; grid-template-columns: auto auto; column-gap: var(--space-sm); align-items: center; color: var(--color-ink); font: 700 var(--text-md)/0.92 var(--font-display); letter-spacing: -0.01em; text-decoration: none; white-space: nowrap; }
.wordmark::before { content: ""; grid-row: span 2; block-size: 1.84em; aspect-ratio: 1; background: var(--color-mark); }
.wordmark span + span { font-weight: 400; }
body { --icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m15.5 15.5 5 5'/%3E%3C/svg%3E"); }
.wordmark:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 4px; }
#main-nav { display: flex; gap: clamp(var(--space-xs), 2vw, var(--space-lg)); }
#main-nav a { display: inline-flex; align-items: center; gap: var(--space-xs); min-height: 44px; color: var(--color-muted); font: 500 var(--text-sm)/1 var(--font-body); text-decoration: none; white-space: nowrap; transition: color var(--dur-short) var(--ease-out); }
#main-nav a:hover { color: var(--color-accent); }
#main-nav a[aria-current="page"] { color: var(--color-ink); text-decoration: underline 2px; text-underline-offset: 0.5em; }
#main-nav a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.nav-count { font-variant-numeric: tabular-nums; color: var(--color-ink); }
.nav-count.is-empty { display: none; }
.header-meta { display: flex; align-items: center; gap: clamp(var(--space-xs), 2vw, var(--space-lg)); margin-inline-start: auto; }
.header-icon { display: none; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
@container (max-width: 52rem) {
 .header-meta .meeting-label { display: none; }
 .header-meta .account-button { min-width: 44px; max-width: clamp(44px, 16vw, 10rem); }
}
@container (max-width: 34rem) {
 .header-inner { gap: var(--space-2xs); padding-inline: max(var(--space-xs), env(safe-area-inset-left)) max(var(--space-xs), env(safe-area-inset-right)); }
 .wordmark { flex: none; grid-template-columns: auto; place-content: center; width: 44px; height: 44px; }
 .wordmark::before { grid-row: auto; block-size: 24px; }
 .wordmark span { display: none; }
 #main-nav { flex: 1; justify-content: space-evenly; gap: var(--space-2xs); }
 #main-nav a { justify-content: center; min-width: 44px; gap: var(--space-2xs); font-size: var(--text-xs); }
 .header-meta .account-button { font-size: var(--text-xs); }
}
@container (max-width: 22rem) {
 #main-nav { gap: 0; }
 .nav-count { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}
@container (max-width: 19rem) {
 .header-icon { display: block; }
 .header-action-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
 #main-nav a[aria-current="page"] { box-shadow: inset 0 -2px currentColor; }
 .header-meta .account-button { display: grid; place-items: center; }
}

/* Landing: a centred hero over the pixel field */
.search-section { position: relative; isolation: isolate; display: flex; flex-direction: column; }
.field-art { position: absolute; inset: 0; z-index: -1; display: block; width: 100%; height: 100%; pointer-events: none; }
.page-head { display: grid; }
.title-block { display: grid; gap: var(--space-md); }
.page-head h1 { max-width: none; font-size: var(--text-display); line-height: 0.95; letter-spacing: -0.045em; }
.page-head .lead { color: var(--color-ink-2); }
.field-figure { display: block; justify-self: center; max-width: 100%; text-align: center; text-wrap: balance; margin: 0 0 var(--space-xl); padding: var(--space-2xs) var(--space-md); border: 1px solid var(--color-rule); border-radius: var(--radius-round); background: var(--color-surface); color: var(--color-muted); font: 500 var(--text-sm)/1.4 var(--font-body); }
.field-figure::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: var(--space-xs); vertical-align: 0.08em; background: var(--color-mark); }
.field-count { color: var(--color-ink); font-variant-numeric: tabular-nums; }
.field-figure-copy { position: relative; display: inline-block; max-width: 100%; }
.field-figure-copy:has(.field-typing:not([hidden])) .field-figure-text { opacity: 0; }
.field-typing { position: absolute; inset: 0; text-align: start; text-wrap: wrap; }
body[data-page="landing"] .search-section { justify-content: center; min-height: calc(100dvh - var(--nav-height)); padding-block: var(--space-2xl) var(--space-3xl); }
body[data-page="landing"] .page-head { justify-items: center; text-align: center; }
body[data-page="landing"] .title-block { justify-items: center; gap: var(--space-lg); }
body[data-page="landing"] .page-head h1 { max-width: 13ch; font: 500 clamp(2.75rem, 5.2vw + 1rem, 6.75rem)/0.98 var(--font-display); letter-spacing: -0.045em; text-wrap: balance; }
body[data-page="landing"] .page-head .lead { max-width: 36ch; font-size: var(--text-lead); }
body[data-page="landing"] #search-scope, body[data-page="landing"] #search-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
body[data-page="landing"] .question-field-inner { justify-items: center; padding-top: var(--space-xl); }
body[data-page="landing"] .search-meta { position: absolute; }

/* The search field: one white, round surface on every screen */
.question-field-inner { display: grid; gap: var(--space-lg); }
.search-form { display: grid; gap: var(--space-sm); width: min(100%, 54rem); }
#search-label { padding-inline: var(--space-lg); color: var(--color-muted); font: 500 var(--text-sm)/1.3 var(--font-body); }
/* The rest of the landing follows the hero's lighter display weight */
body[data-page="landing"] :is(.library-head h2, .figure-num, .guide-grid > h2, .guide-rows h3, .statement), .footer-mark { font-weight: 500; }
.question-box { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-sm); min-height: 72px; padding: var(--space-xs) var(--space-xs) var(--space-xs) calc(var(--space-lg) + 22px + var(--space-sm)); border: 1px solid var(--color-control-border); border-radius: var(--radius-field); background: var(--color-surface); box-shadow: var(--shadow-field); transition: border-color var(--dur-short) var(--ease-out), box-shadow var(--dur-short) var(--ease-out); }
.question-box::before { content: ""; position: absolute; left: var(--space-lg); top: 25px; width: 22px; height: 22px; background: var(--color-muted); -webkit-mask: var(--icon-search) center / contain no-repeat; mask: var(--icon-search) center / contain no-repeat; }
.question-box:hover { border-color: var(--color-ink-2); }
.question-box:focus-within { border-color: var(--color-accent); box-shadow: var(--shadow-field), 0 0 0 3px var(--color-highlight); }
#research-query { display: block; width: 100%; min-height: 0; max-height: none; padding: var(--space-xs) 0; border: 0; background: transparent; color: var(--color-ink); font: 400 clamp(1.125rem, 0.6vw + 0.95rem, 1.375rem)/1.35 var(--font-body); resize: none; field-sizing: fixed; box-sizing: border-box; outline: 0; }
#research-query::placeholder { color: var(--color-muted); opacity: 1; }
#research-query:focus-visible { outline: 0; }
#research-query:disabled { opacity: 0.55; cursor: not-allowed; }
.question-box .button-primary { align-self: end; min-height: 54px; padding: 0 var(--space-lg); border-radius: var(--radius-round); background: var(--color-accent); color: var(--color-accent-ink); }
.question-box .button-primary:hover { background: var(--color-accent-hover); }
.search-meta { padding-inline: var(--space-lg); color: var(--color-muted); font-size: var(--text-sm); }
.library-error { display: grid; justify-items: center; gap: var(--space-md); text-align: center; }
.library-error p { color: var(--color-error); }
.example-questions { display: grid; width: min(100%, 54rem); justify-items: center; gap: var(--space-sm); }
.example-label { color: var(--color-muted); font: 500 var(--text-sm)/1.3 var(--font-body); }
.example-track { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-xs); }
.example-track button { min-height: 44px; max-width: 100%; padding: var(--space-xs) var(--space-md); border: 1px solid var(--color-rule); border-radius: var(--radius-round); background: var(--color-surface); color: var(--color-ink); font: 500 var(--text-sm)/1.25 var(--font-body); overflow-wrap: anywhere; cursor: pointer; transition: border-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), transform var(--dur-micro) var(--ease-out); }
.example-track button:hover { border-color: var(--color-accent); color: var(--color-accent); }
.example-track button:active { transform: translateY(1px); }
.example-track button:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) {
 .example-track { width: 100%; flex-wrap: nowrap; justify-content: flex-start; padding: var(--space-2xs); overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; }
 .example-track::-webkit-scrollbar { display: none; }
 .example-track button { flex: none; }
}
@media (prefers-reduced-motion: reduce) {
 .example-track [data-example-repeat] { display: none; }
}

/* Landing: the library in figures */
.library-section { padding-block: var(--section-gap) var(--section-gap-s); }
.library-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap-columns); align-items: end; }
.library-head h2 { grid-column: 1 / span 6; }
.library-head .lead { grid-column: 8 / span 5; color: var(--color-ink-2); }
.library-figures { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap-columns); margin: var(--space-2xl) 0 0; padding: 0; list-style: none; }
.library-figure, .library-figure > a { display: grid; align-content: start; gap: var(--space-sm); }
.figure-num { font: 700 clamp(2.75rem, 5.4vw, 5.5rem)/0.95 var(--font-display); letter-spacing: -0.04em; font-variant-numeric: proportional-nums lining-nums; }
.figure-label { color: var(--color-muted); font: 500 var(--text-sm)/1.3 var(--font-body); }
.library-figure a { justify-self: start; color: inherit; text-decoration: none; transition: color var(--dur-short) var(--ease-out); }
.library-figure a .figure-label { color: var(--color-ink); text-decoration: underline var(--rule-hair); text-underline-offset: 0.32em; }
.library-figure a:hover, .library-figure a:hover .figure-label { color: var(--color-accent); }
.library-figure a:active { opacity: 0.8; }
.library-figure a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 4px; }

/* Landing: how a question is read */
.guide-section { padding-block: var(--section-gap-s); background: var(--color-paper-2); }
.guide-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap-columns); }
.guide-grid > h2 { grid-column: 1 / span 4; }
.guide-rows { grid-column: 5 / span 8; margin: 0; padding: 0; list-style: none; counter-reset: guide; }
.guide-rows li { display: grid; grid-template-columns: 3rem minmax(0, 5fr) minmax(0, 6fr); gap: var(--gap-columns); align-items: baseline; padding-block: var(--space-lg) var(--space-xl); border-top: 1px solid var(--color-rule); counter-increment: guide; }
.guide-rows li:first-child { border-top: 0; padding-top: 0; }
.guide-rows li::before { content: counter(guide); color: var(--color-accent); font: 700 var(--text-title)/1 var(--font-display); font-variant-numeric: tabular-nums; }
.guide-rows h3 { max-width: none; font-size: var(--text-title); }
.guide-rows p { color: var(--color-ink-2); }

/* Landing: the statement */
.statement-section { padding-block: var(--section-gap-l) var(--section-gap); }
.statement { margin-left: calc((100% + var(--gap-columns)) / 4); max-width: 22ch; font: 700 var(--text-section)/1.02 var(--font-display); letter-spacing: var(--tracking-display); text-wrap: balance; }

/* Results: the screen someone works in */
.results-shell { padding-block: var(--space-md) var(--space-3xl); }
.search-workspace { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); max-width: 60rem; }
.results-controls { display: grid; gap: var(--space-sm); container-type: inline-size; }
.interpretation { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs); }
.interpretation-label { color: var(--color-muted); font: 500 var(--text-sm)/1.3 var(--font-body); }
.query-chip { display: inline-flex; align-items: center; gap: var(--space-xs); min-height: 32px; max-width: 100%; padding: var(--space-2xs) var(--space-sm); border: 0; background: var(--color-paper-2); color: var(--color-ink); font: 500 var(--text-sm)/1.3 var(--font-body); text-align: left; overflow-wrap: anywhere; }
.query-chip-action { display: inline-grid; align-items: center; min-width: 44px; min-height: 44px; max-width: 100%; padding: 0; border: 0; background: none; cursor: pointer; }
.query-chip-action .query-chip { transition: background-color var(--dur-short) var(--ease-out); }
.query-chip-action:hover .query-chip { background: var(--color-paper-3); }
.query-chip-action:active { transform: translateY(1px); }
.query-chip-action:disabled { opacity: 0.55; cursor: not-allowed; }
.search-toolbar { display: flex; align-items: center; gap: var(--space-lg); min-width: 0; white-space: nowrap; }
.search-toolbar > button { flex: none; }
.sort-controls { display: flex; align-items: center; gap: var(--space-xs); min-width: 0; }
.sort-controls select { min-width: 0; }
.refinement-panel { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr)); gap: var(--space-sm) var(--space-xs); }
.refinement-panel label { display: grid; gap: var(--space-2xs); min-width: 0; }
.refinement-panel select { width: 100%; min-width: 0; color: var(--color-ink); }
@container (max-width: 36rem) {
 .search-toolbar { gap: var(--space-sm); }
 .search-toolbar > button { min-width: 44px; }
 .search-toolbar :is(#sort-label, .export-suffix) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}

.results-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--space-sm) var(--space-xl); padding-bottom: var(--space-lg); }
.results-heading h2 { font-size: var(--text-title); }
#reading-caption { margin-top: var(--space-2xs); color: var(--color-muted); font-size: var(--text-sm); }
#reading-caption:empty { display: none; }
.result-status { color: var(--color-muted); font: 500 var(--text-md)/1.3 var(--font-body); font-variant-numeric: tabular-nums; }
.abstract-row { display: grid; grid-template-columns: var(--space-xl) minmax(0, 1fr); gap: var(--space-lg); padding-block: var(--space-xl); border-top: 1px solid var(--color-rule); }
.shortlist-delete { color: var(--color-error); }
.shortlist-delete:hover { color: var(--color-error-hover); }
.shortlist-actions, .shortlist-confirm-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md); }
.shortlist-confirm-actions { justify-content: flex-end; margin-top: var(--space-lg); }
.shortlist-confirm-delete { background: var(--color-error); color: white; }
.shortlist-confirm-delete:hover { background: var(--color-error-hover); }
.result-number { padding-top: var(--space-3xs); color: var(--color-muted); font: 500 var(--text-sm)/1.3 var(--font-body); font-variant-numeric: tabular-nums; }
.abstract-number { color: var(--color-accent); font-weight: 500; font-variant-numeric: tabular-nums; }
.result-content { display: grid; gap: var(--space-sm); min-width: 0; overflow-wrap: anywhere; container-type: inline-size; }
.result-meta { display: flex; flex-wrap: wrap; gap: var(--space-2xs) var(--space-md); color: var(--color-muted); font-size: var(--text-sm); }
.conference-badge { color: var(--color-ink); font-weight: 500; }
.read-flag { color: var(--color-accent); }
.abstract-row h3 { max-width: 62ch; font: 400 var(--text-title)/1.22 var(--font-display); letter-spacing: -0.015em; }
.result-title { color: var(--color-ink); text-decoration: none; transition: color var(--dur-short) var(--ease-out); }
button.result-title { padding: 0; border: 0; background: none; font: inherit; text-align: left; }
.result-title:hover { color: var(--color-accent); text-decoration: underline var(--rule-hair); text-underline-offset: 0.2em; }
.result-title:active { opacity: 0.8; }
.result-title:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.match-reasons { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin: 0; padding: 0; list-style: none; }
.match-reasons > * { display: inline-flex; align-items: center; min-height: 28px; padding: var(--space-2xs) var(--space-xs); background: var(--color-paper-2); font-size: var(--text-sm); line-height: 1.3; }
.evidence-snippet, .result-topic, .result-preview, .queue-note { max-width: 75ch; color: var(--color-ink-2); font-size: var(--text-sm); line-height: 1.55; }
.evidence-snippet > span:first-child { margin-right: var(--space-2xs); color: var(--color-ink); font-weight: 500; }
mark { padding-inline: 0.1em; background: var(--color-highlight); color: var(--color-highlight-ink); }
.result-links { display: flex; align-items: center; gap: var(--space-md); white-space: nowrap; }
.result-links > :is(a, button) { flex: none; min-width: 44px; justify-content: center; }
.result-links :is(.row-open, .source-link) .icon { display: none; }
.abstract-copy { min-width: 44px; }
.save-result { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2xs); min-height: 44px; align-self: start; padding: 0 var(--space-sm); border: 1px solid var(--color-control-border); border-radius: var(--space-2xs); background: var(--color-surface); color: var(--color-ink); font: 500 var(--text-sm)/1.2 var(--font-body); cursor: pointer; transition: background-color var(--dur-short) var(--ease-out); }
.save-result:hover { background: var(--color-paper-2); }
.save-result:active { transform: translateY(1px); }
.save-result:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.save-result:disabled { opacity: 0.55; cursor: not-allowed; }
@container (max-width: 27rem) {
 .result-links { gap: var(--space-xs); }
 .result-links .save-result { padding-inline: var(--space-xs); }
 .result-action-extra { display: none; }
 .source-link .result-action-label { text-transform: capitalize; }
}
@container (max-width: 13rem) {
 .result-links { gap: var(--space-2xs); }
 .result-links :is(.save-result > span, .result-action-label) { display: none; }
 .result-links :is(.row-open, .source-link) .icon { display: block; }
}
.save-result.is-saved { color: var(--color-accent); background: var(--color-highlight); border-color: var(--color-accent); }
.empty-state { display: grid; justify-items: start; gap: var(--space-md); padding-block: var(--space-2xl); border-top: 1px solid var(--color-rule); }
.empty-state h2, .empty-state h3 { font-size: var(--text-title); font-variant-numeric: proportional-nums; }
.empty-state p { max-width: 60ch; color: var(--color-ink-2); }
.search-loading { display: flex; align-items: center; gap: var(--space-sm); padding-block: var(--space-2xl); color: var(--color-muted); }
.search-loading span { width: 12px; height: 12px; background: var(--color-mark); animation: atlas-pulse 900ms var(--ease-in-out) infinite alternate; }
@keyframes atlas-pulse { from { opacity: 0.25; } to { opacity: 1; } }

/* Which screen is showing: the landing, the results or the shortlist */
.results-shell { display: none; }
body[data-page="results"] .results-shell, body[data-page="queue"] .results-shell { display: block; }
body[data-page="results"] .landing-only, body[data-page="queue"] .landing-only { display: none; }
body[data-page="results"] .search-section, body[data-page="queue"] .search-section { min-height: 0; }
body[data-page="results"] .title-block { padding: 0; }
body[data-page="results"] .title-block > * { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
body[data-page="queue"] .title-block { padding-block: var(--space-xl) var(--space-lg); }
body[data-page="queue"] .page-head h1 { font-size: var(--text-display-s); letter-spacing: var(--tracking-display); line-height: 1; }
body[data-page="results"] .question-field, body[data-page="queue"] .question-field { padding-block: var(--space-lg); border-bottom: 1px solid var(--color-rule); }
body[data-page="results"] .search-form, body[data-page="queue"] .search-form { width: min(100%, 60rem); }
body[data-page="results"] .question-box, body[data-page="queue"] .question-box { min-height: 60px; padding-block: var(--space-2xs); box-shadow: none; }
body[data-page="results"] .question-box::before, body[data-page="queue"] .question-box::before { top: 19px; }
body[data-page="results"] .question-box .button-primary, body[data-page="queue"] .question-box .button-primary { min-height: 48px; }

/* Footer */
.site-footer { padding-block: var(--space-3xl) var(--space-xl); background: var(--color-paper-2); }
.footer-inner { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-xl) var(--gap-columns); align-items: end; }
.footer-mark { grid-column: 1 / span 7; font: 700 clamp(2.5rem, 6vw, 6rem)/0.9 var(--font-display); letter-spacing: -0.045em; }
.footer-facts { grid-column: 8 / span 5; display: grid; gap: var(--space-sm); color: var(--color-ink-2); font-size: var(--text-sm); }
.sample-label { color: var(--color-ink); font-weight: 500; }
.footer-links { display: flex; flex-wrap: wrap; gap: 0 var(--space-lg); }
body[data-page="results"] .site-footer, body[data-page="queue"] .site-footer { padding-block: var(--space-2xl) var(--space-xl); }
body[data-page="results"] .footer-mark, body[data-page="queue"] .footer-mark { font-size: var(--text-2xl); }

/* Dialogs */
dialog { width: min(56rem, calc(100% - 2 * var(--space-md))); max-height: calc(100dvh - 2 * var(--space-xl)); padding: 0; border: 0; background: var(--color-paper); color: var(--color-ink); overflow-x: clip; overflow-y: auto; }
dialog::backdrop { background: var(--color-backdrop); }
.small-dialog { width: min(42rem, calc(100% - 2 * var(--space-md))); padding: var(--space-xl); }
.abstract-dialog { overflow: hidden; }
#abstract-detail { display: flex; flex-direction: column; max-height: inherit; }
.abstract-scroll { display: grid; gap: var(--space-lg); min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: var(--space-xl); }
.dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--space-md); }
.small-dialog .dialog-heading { margin-bottom: var(--space-lg); }
#photos-dialog { width: min(40rem, calc(100% - 24px)); }
#photos-dialog .dialog-heading { margin-bottom: var(--space-xs); }
.photo-target { color: var(--color-ink-2); font-size: var(--text-sm); overflow-wrap: anywhere; }
.photo-usage { margin-block: var(--space-xs); color: var(--color-muted); font-size: var(--text-sm); }
.photo-actions { display: flex; gap: var(--space-xs) var(--space-sm); flex-wrap: wrap; align-items: center; margin-block: var(--space-sm); }
.photo-actions .button { min-height: 44px; padding-inline: var(--space-md); font-size: var(--text-sm); }
#photo-status { color: var(--color-ink-2); font-size: var(--text-sm); }
.photo-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: var(--space-sm); list-style: none; margin: var(--space-sm) 0; padding: 0; }
.photo-gallery:empty { display: none; }
.photo-gallery .text-button { justify-content: center; width: 100%; }
.photo-thumbnail { display: block; width: 100%; aspect-ratio: 1; padding: 0; border: 1px solid var(--color-rule); background: var(--color-paper-2); cursor: pointer; }
.photo-thumbnail:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.photo-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; }
.photo-viewer { border-top: 1px solid var(--color-rule); }
.photo-viewer-scroll { max-height: min(53dvh, 540px); overflow: auto; background: var(--color-paper-2); }
.photo-viewer img { display: block; max-width: 100%; height: auto; margin-inline: auto; }
.photo-viewer.is-zoomed img { max-width: none; }
.calendar-event-actions { display: flex; align-items: center; gap: var(--space-xs) var(--space-md); flex-wrap: wrap; margin-top: var(--space-sm); }
.calendar-event-actions:empty { display: none; }
.personal-calendar-event .calendar-event-card { border-left-color: var(--color-success); }
.personal-calendar-event.has-overlap .calendar-event-card { border-left-color: var(--color-mark); }
.personal-meeting-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-xs); overflow-wrap: anywhere; }
.remove-meeting { min-width: 44px; }
#calendar-import-dialog .file-label { margin-block: var(--space-md) var(--space-xs); }
#personal-calendar-file { min-width: 0; max-width: 100%; }
.personal-calendar-source { border-top: 1px solid var(--color-rule); padding-block: var(--space-md); }
.personal-calendar-source h3 { margin-bottom: var(--space-sm); font-size: var(--text-lg); }
.personal-calendar-source .fine-print { margin-top: var(--space-sm); }
.personal-calendar-source .text-button { margin-inline-end: var(--space-sm); }
#google-calendar-chooser { min-width: 0; margin: 0; padding: 0; border: 0; }
#google-calendar-chooser legend { color: var(--color-muted); font-size: var(--text-sm); }
#google-calendar-options { max-height: 12rem; overflow: auto; margin-block: var(--space-xs) var(--space-sm); }
#google-calendar-options label { display: flex; align-items: center; gap: var(--space-xs); min-height: 44px; overflow-wrap: anywhere; }
.calendar-programme { display: inline-block; min-height: 24px; text-underline-offset: 0.16em; }
.calendar-programme:hover { color: var(--color-accent); }
.calendar-programme .icon { display: inline-block; width: 1em; height: 1em; vertical-align: -0.12em; }
.calendar-session-details { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2xs) var(--space-xs); margin-top: var(--space-xs); }
.calendar-session-details :is(.calendar-location, .calendar-zone) { margin: 0; }
.icon-button.photo-trigger { border-radius: var(--radius-round); background: var(--color-ink); color: var(--color-paper); }
.icon-button.photo-trigger:hover { background: var(--color-ink-2); }
.photo-trigger .icon { width: 21px; height: 21px; }
.calendar-abstract-actions { display: flex; flex-shrink: 0; align-self: end; align-items: center; justify-content: flex-end; gap: var(--space-xs); }
#saved-sessions { margin-bottom: var(--space-lg); }
#saved-sessions > h3 { margin-bottom: var(--space-xs); font-size: var(--text-lg); }
.saved-session { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-sm); padding-block: var(--space-sm); border-top: 1px solid var(--color-rule); }
.saved-session h4 { font-size: var(--text-md); }
.saved-session p { color: var(--color-muted); font-size: var(--text-sm); }
.saved-session .calendar-event-actions { align-self: end; margin-block-start: 0; margin-inline-start: auto; }
.export-options { display: grid; gap: var(--space-sm); }
.export-options .button { justify-content: space-between; padding: var(--space-xs) var(--space-md); text-align: left; white-space: normal; line-height: 1.3; }
.export-options .text-button { justify-self: start; }
.export-count { color: var(--color-muted); font-variant-numeric: tabular-nums; }
.dialog-heading h2 { font-size: var(--text-2xl); }
.detail-id { color: var(--color-muted); font: 500 var(--text-sm)/1.3 var(--font-body); }
.icon-button { display: inline-grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; padding: 0; border: 0; background: var(--color-paper-2); color: var(--color-ink); font: 400 var(--text-xl)/1 var(--font-body); cursor: pointer; transition: background-color var(--dur-short) var(--ease-out); }
.icon-button:hover { background: var(--color-paper-3); }
.icon-button:active { transform: translateY(1px); }
.icon-button:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.icon-button:disabled { opacity: 0.55; cursor: not-allowed; }
.abstract-detail-title { max-width: 32ch; font-size: var(--text-2xl); line-height: 1.08; }
.abstract-meta { display: grid; gap: var(--space-2xs); color: var(--color-muted); font-size: var(--text-sm); }
.abstract-copy-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--space-sm); color: var(--color-ink); }
#abstract-copy-dialog .field-label { display: block; margin-block: var(--space-md) var(--space-2xs); }
.detail-notice { padding: var(--space-md) var(--space-lg); background: var(--color-paper-2); color: var(--color-ink-2); font-size: var(--text-sm); }
.detail-section { display: grid; gap: var(--space-sm); }
.detail-section h3 { font-size: var(--text-lg); }
.detail-section p { max-width: 70ch; color: var(--color-ink-2); }
.detail-metadata { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--gap-columns); margin: 0; }
.detail-metadata > div { padding-block: var(--space-sm); border-top: 1px solid var(--color-rule); }
.detail-metadata dt { color: var(--color-muted); font-size: var(--text-sm); }
.detail-metadata dd { margin: 0; overflow-wrap: anywhere; }
.notes-input { width: 100%; min-height: 7rem; padding: var(--space-sm); border: 1px solid var(--color-muted); border-radius: 0; background: var(--color-paper); color: var(--color-ink); font: 400 var(--text-md)/1.5 var(--font-body); resize: vertical; outline: 2px solid transparent; outline-offset: -3px; }
.notes-input:hover { border-color: var(--color-ink); }
.notes-input:focus-visible { outline-color: var(--color-focus); }
.notes-input:disabled { opacity: 0.55; cursor: not-allowed; }
.fine-print, .import-status, .quiet { color: var(--color-muted); font-size: var(--text-sm); }
.detail-footer { flex-shrink: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-md); padding: var(--space-md) var(--space-xl); background: var(--color-paper-2); border-top: 1px solid var(--color-rule); }
.abstract-dialog #detail-save { min-height: 44px; }
.abstract-dialog #detail-save[aria-pressed="true"] { background: var(--color-highlight); color: var(--color-accent); }
.dialog-intro { color: var(--color-ink-2); }
.data-summary { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin-block: var(--space-md); }
.data-summary span { padding: var(--space-2xs) var(--space-sm); background: var(--color-paper-2); font-size: var(--text-sm); }
#coverage-source { display: flex; flex-wrap: wrap; gap: 0 var(--space-lg); margin-bottom: var(--space-xl); }
.data-dialog h3, .prose h3 { margin-top: var(--space-lg); font-size: var(--text-lg); }
.data-dialog p, .prose p { margin-top: var(--space-sm); color: var(--color-ink-2); }
.file-label { display: grid; gap: var(--space-xs); margin-top: var(--space-md); font-weight: 500; }
.file-label input { font-size: var(--text-sm); }
.file-label input:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.data-actions { display: flex; flex-wrap: wrap; gap: 0 var(--space-lg); margin-top: var(--space-md); }

.toast { position: fixed; left: var(--space-md); bottom: var(--space-md); z-index: var(--z-toast); max-width: min(28rem, calc(100% - 2 * var(--space-md))); padding: var(--space-sm) var(--space-md); background: var(--color-ink); color: var(--color-paper); font-size: var(--text-sm); }
.no-script { padding-block: var(--space-xl); }

/* Phones and tablets */
@media (max-width: 60rem) {
 .search-section { min-height: 0; }
 body[data-page="landing"] .search-section { min-height: 0; padding-block: var(--space-2xl); }
 body[data-page="landing"] .question-field-inner { padding-top: var(--space-xl); }
 .library-head h2, .library-head .lead { grid-column: 1 / -1; }
 .library-figures { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-xl); }
 .guide-grid > h2, .guide-rows { grid-column: 1 / -1; }
 .guide-rows li { grid-template-columns: 2rem minmax(0, 1fr); }
 .guide-rows li p { grid-column: 2; }
 .statement { margin-left: 0; }
 .abstract-row { grid-template-columns: var(--space-xl) minmax(0, 1fr); gap: var(--space-xs) var(--space-sm); }
 .footer-mark, .footer-facts { grid-column: 1 / -1; }
}
@media (max-width: 40rem) {
 .site-header { padding-block-start: calc(env(safe-area-inset-top, 0px) + var(--space-sm)); }
 .field-figure { border-radius: var(--space-lg); }
 .question-box { min-height: 60px; padding-left: var(--space-lg); }
 #research-query { font-size: var(--text-md); }
 #search-label { padding-inline: var(--space-md); }
 .question-box::before { display: none; }
 .question-box .button-primary, body[data-page="results"] .question-box .button-primary, body[data-page="queue"] .question-box .button-primary { min-height: 44px; padding-inline: var(--space-md); }
 .search-meta { padding-inline: var(--space-md); }
 @media (prefers-reduced-motion: reduce) {
  .example-track { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
 }
 .example-track button { padding-inline: var(--space-sm); }
 .search-workspace { gap: var(--space-md); }
 .interpretation { align-items: center; gap: var(--space-2xs) var(--space-xs); }
 .interpretation-label, .interpretation .query-chip { font-size: var(--text-xs); }
 .interpretation .query-chip { min-height: 24px; padding-inline: var(--space-xs); }
 .abstract-row { grid-template-columns: minmax(0, 1fr); padding-block: var(--space-lg); }
 .abstract-row .result-number { display: none; }
 .detail-metadata { grid-template-columns: minmax(0, 1fr); }
 .small-dialog { padding: var(--space-lg); }
 .abstract-scroll { padding: var(--space-lg) 16px; }
 .abstract-dialog { width: calc(100% - 16px); max-height: calc(100dvh - 24px); }
 .detail-footer { gap: var(--space-xs) var(--space-sm); padding: var(--space-xs) var(--space-md); }
 .detail-footer .button, .detail-footer .text-button { min-width: 44px; min-height: 44px; font-size: 14px; }
 .detail-footer .button { padding-inline: 12px; }
 .detail-footer .text-button { justify-content: center; }
 .detail-footer > .quiet { white-space: normal; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
 #example-motion { display: none; }
 .search-loading span { animation: none; opacity: 1; }
 .button, .text-button, .save-result, .icon-button, .example-questions button, .query-chip-action .query-chip, .question-box { transition: none; }
}


/* A daily conference agenda generated from the user's saved abstracts. */
.shortlist-view-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin:1.5rem 0 2rem}.shortlist-view-controls[hidden],.shortlist-calendar[hidden],#reading-list[hidden]{display:none}
.shortlist-view-switch{display:inline-flex;flex:none;padding:3px;border:1px solid var(--color-rule);border-radius:.65rem;background:var(--color-paper-2);gap:3px}.shortlist-view-switch button{white-space:nowrap;font:inherit;font-size:.9rem;border:0;min-height:44px;padding:.5rem 1.25rem;background:none;color:var(--color-muted);cursor:pointer;border-radius:.45rem}.shortlist-view-switch button[aria-pressed="true"]{background:var(--color-ink);color:var(--color-paper)}.shortlist-view-switch button:focus-visible,.calendar-day:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
.calendar-export{font-size:.875rem}
.calendar-days{display:flex;gap:.65rem;flex-wrap:wrap;margin:1.5rem 0 2rem}.calendar-day{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;min-width:5.5rem;min-height:6rem;padding:.7rem 1rem;border:1px solid var(--color-rule);border-radius:.6rem;background:var(--color-surface);font:inherit;cursor:pointer}.calendar-day>span{font-size:.75rem;color:var(--color-muted)}.calendar-day>strong{font-family:var(--font-display);font-size:1.8rem;line-height:1.1;font-weight:650}.calendar-day[aria-pressed="true"]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.calendar-day[aria-pressed="true"]>span{color:var(--color-accent-ink)}.calendar-undated{margin-left:auto;min-width:7.5rem}
.calendar-day-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.calendar-day-heading h3{font-size:1.25rem;font-weight:650;letter-spacing:-.02em}.calendar-day-heading p{font-size:.8rem;color:var(--color-muted)}.calendar-overlap-notice{padding:.8rem 1rem;border-left:3px solid var(--color-mark);background:var(--color-paper-2);font-size:.85rem;line-height:1.6;margin-bottom:1.5rem}
.calendar-event{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:1rem;position:relative;padding-bottom:1.5rem}.calendar-time{display:flex;flex-direction:column;gap:.25rem;font-variant-numeric:tabular-nums;padding-top:1.2rem}.calendar-time time{font-size:1.1rem;font-weight:600;color:var(--color-accent)}.calendar-time>span{font-size:.75rem;color:var(--color-muted)}.calendar-event-card{border:1px solid var(--color-rule);border-left:3px solid var(--color-accent);border-radius:.5rem;background:var(--color-surface);padding:1.25rem 1.5rem;min-width:0}.calendar-event.has-overlap .calendar-event-card{border-left-color:var(--color-mark)}.calendar-event-meta{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center;font-size:.75rem;color:var(--color-muted);margin-bottom:.6rem}.calendar-event-meta>span:first-child{font-weight:600;color:var(--color-ink)}.calendar-event-card h4{font-size:1rem;line-height:1.5;overflow-wrap:anywhere}.calendar-location{font-size:.875rem;font-weight:500;line-height:1.5;margin-top:.55rem}.calendar-zone{font-size:.75rem;color:var(--color-muted);margin-top:.2rem}.calendar-overlap-badge{color:var(--color-error);font-weight:600}.calendar-abstracts{list-style:none;padding:0;margin:1rem 0 0}.calendar-abstracts li{display:flex;gap:1rem;align-items:start;justify-content:space-between;padding:.85rem 0;border-top:1px solid var(--color-rule);min-width:0}.calendar-abstracts li>div{min-width:0}.calendar-abstract-meta{display:flex;gap:.65rem;flex-wrap:wrap;font-size:.75rem;color:var(--color-muted);margin-bottom:.3rem}.calendar-abstract-meta>span:first-child{color:var(--color-accent);font-weight:600}.calendar-abstract-title{font:inherit;font-size:.95rem;line-height:1.5;text-align:left;background:none;border:0;padding:0;color:var(--color-ink);cursor:pointer;overflow-wrap:anywhere}.calendar-abstract-title:hover{text-decoration:underline}.calendar-abstracts .shortlist-delete{font-size:.75rem;min-height:44px;flex-shrink:0}.calendar-has-note{font-size:.75rem;color:var(--color-muted);margin-top:.3rem}.calendar-missing{font-size:.8rem;color:var(--color-muted);line-height:1.5}.calendar-unscheduled{padding:1.25rem 1.5rem;border:1px dashed var(--color-rule);border-radius:.5rem;margin-bottom:1rem}.calendar-unscheduled .calendar-source-time{font-size:.8rem;margin-top:.5rem;color:var(--color-muted)}.calendar-unscheduled>a{display:inline-block;font-size:.8rem;margin-top:.75rem}.calendar-footnote{border-top:1px solid var(--color-rule);padding-top:1.25rem;margin-top:.5rem;display:grid;gap:.5rem}.calendar-footnote p{font-size:.8rem;color:var(--color-muted);line-height:1.6}
@media(max-width:760px){.shortlist-view-controls{gap:.5rem}.shortlist-view-switch button{padding:.5rem .8rem}.calendar-export{padding:.65rem .8rem;font-size:.8rem}.calendar-days{gap:.5rem;margin-bottom:1.5rem}.calendar-day{min-width:4.5rem;padding:.6rem;min-height:5.5rem}.calendar-undated{margin-left:0}.calendar-day-heading{flex-direction:column;gap:.35rem}.calendar-day-heading h3{font-size:1.1rem}.calendar-event{grid-template-columns:3.8rem minmax(0,1fr);gap:.5rem}.calendar-time{padding-top:1rem}.calendar-time time{font-size:1rem}.calendar-time>span{font-size:.65rem}.calendar-event-card{padding:1rem .85rem}.calendar-event-card h4{font-size:.9rem}.calendar-event-meta{font-size:.7rem;gap:.5rem}.calendar-abstract-title{font-size:.875rem}.calendar-abstracts li{flex-direction:column;gap:.2rem}.calendar-abstracts .shortlist-delete{min-height:44px}.calendar-unscheduled{padding:1rem}.calendar-location{font-size:.8rem}}

#conference-selector[hidden]{display:none}.meeting-label{font-size:var(--text-sm);font-weight:500;color:var(--color-ink);white-space:nowrap}

.search-correction { color: var(--color-muted); font-size: var(--text-sm); margin: var(--space-sm) 0; overflow-wrap: anywhere; }

.author-choices { display:grid; gap:0; border-top:1px solid var(--color-rule); }
.author-choices[hidden] { display:none; }
.author-choice { display:flex; justify-content:space-between; gap:1rem; width:100%; padding:1rem 0; background:transparent; border:0; border-bottom:1px solid var(--color-rule); color:var(--color-ink); text-align:left; font:inherit; cursor:pointer; }
.author-choice:hover, .author-choice:focus-visible { color:var(--color-accent); background:var(--color-paper); }
.author-choice span:first-child { font-weight:600; overflow-wrap:anywhere; }
.author-choice span:last-child { color:var(--color-muted); font-size:var(--text-sm); white-space:nowrap; }

.author-choice:focus-visible { outline:2px solid var(--color-focus); outline-offset:2px; }

.shortlist-sync-status { margin:0 0 var(--space-lg); color:var(--color-muted); font-size:var(--text-sm); line-height:1.5; overflow-wrap:anywhere; }
.shortlist-sync-status[hidden] { display:none; }
.shortlist-sync-status a { color:var(--color-ink); text-underline-offset:.2em; }

.account-button{display:block;max-width:15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.google-link-current{display:flex;gap:.6rem;align-items:flex-start;font-size:var(--text-sm);margin:1rem 0}.google-link-current[hidden],#google-signout[hidden],#google-signin-area[hidden]{display:none}#google-signin-button{margin:1.25rem 0}#google-account-error{margin:1rem 0}.shortlist-sync-status .text-button{font-size:inherit;min-height:32px;white-space:normal;text-align:left;line-height:1.5}



@media(max-width:40rem){
 .question-box,body[data-page="results"] .question-box,body[data-page="queue"] .question-box{min-height:60px;padding:7px 7px 7px 18px;gap:10px}
 #research-query{font-size:16px;line-height:1.4;padding:8px 0;min-width:0}
 .question-box .button-primary{align-self:center}

 body[data-page="queue"] .title-block { padding-block: var(--space-lg) 0; }
 body[data-page="queue"] .question-field { padding-block: var(--space-sm) var(--space-md); }
 body[data-page="queue"] :is(#search-label, #search-scope) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
 body[data-page="queue"] .search-meta { position: absolute; }
 body[data-page="queue"] .question-box { min-height: 50px; padding-block: var(--space-3xs); padding-right: var(--space-2xs); }
 body[data-page="queue"] #research-query { min-height: 44px; padding-block: 10px; }

 body[data-page="queue"] .results-shell { padding-top: var(--space-xs); }
 body[data-page="queue"] .search-workspace { gap: var(--space-xs); }
 body[data-page="queue"] .results-heading { position: relative; padding-bottom: var(--space-xs); }
 .shortlist-view-controls { margin: 0 0 var(--space-sm); }
 .shortlist-view-switch button { padding-inline: var(--space-sm); }
 .shortlist-actions { gap: var(--space-sm); }
 .shortlist-actions .calendar-export { padding-inline: var(--space-xs); }
 .calendar-days { margin-top: var(--space-sm); }
}

.account-error{color:var(--color-error);font-size:var(--text-sm);line-height:1.5}

/* Official ASH category hierarchy. Only the selected group's page is shown. */
body[data-page="browse"] .landing-only, body[data-page="browse"] .question-field { display: none; }
body[data-page="browse"] .page-head { padding-block: var(--space-xl) var(--space-lg); }
body[data-page="browse"] .page-head h1 { font-size: var(--text-display-s); letter-spacing: var(--tracking-display); line-height: 1; }
.category-browser { padding-block: var(--space-lg) var(--space-3xl); }
.category-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-height: 44px; color: var(--color-muted); font-size: var(--text-sm); }
.category-breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; color: var(--color-ink); }
.category-context { padding-top: var(--space-sm); }
.category-browser-head { display: flex; align-items: end; justify-content: space-between; gap: var(--space-lg); margin-block: var(--space-sm) var(--space-lg); }
.category-browser-head h2 { font-size: var(--text-xl); line-height: 1.2; text-wrap: pretty; margin-bottom: var(--space-xs); }
.category-browser-head p, .category-source { color: var(--color-muted); font-size: var(--text-sm); }
.category-finder { display: grid; gap: var(--space-xs); width: min(100%, 22rem); flex-shrink: 0; }
.category-finder input { min-height: 44px; width: 100%; min-width: 0; padding: 10px 12px; border: 1px solid var(--color-control-border); border-radius: 4px; background: var(--color-surface); color: var(--color-ink); font-size: 16px; }
.category-finder input:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.category-group-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md); }
.category-group-card { position: relative; display: grid; align-content: start; gap: var(--space-sm); padding: var(--space-lg); border: 1px solid var(--color-rule); text-decoration: none; }
.category-code { color: var(--color-accent); font-size: var(--text-sm); font-weight: 600; font-variant-numeric: tabular-nums; }
.category-group-title { font-size: var(--text-lg); line-height: 1.3; padding-right: 20px; }
.category-group-meta { font-size: var(--text-sm); color: var(--color-muted); }
.category-group-card .icon { position: absolute; right: 16px; top: 24px; width: 18px; height: 18px; }
.category-group-card:hover, .category-item:hover { background: var(--color-paper-2); }
.category-group-card:focus-visible, .category-item:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.category-list { display: grid; }
.category-item { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto 18px; align-items: center; gap: var(--space-md); padding: 16px 4px; min-height: 72px; border-top: 1px solid var(--color-rule); text-decoration: none; line-height: 1.35; }
.category-item-title { font-size: var(--text-md); }
.category-item-count { color: var(--color-muted); font-size: var(--text-sm); font-variant-numeric: tabular-nums; white-space: nowrap; }
.category-item .icon { width: 18px; height: 18px; }
.category-pagination, .result-pagination { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-block: var(--space-lg); font-size: var(--text-sm); }
.category-pagination button, .result-pagination button { min-width: 44px; justify-content: center; }
.category-source { margin-top: var(--space-xl); }
.category-browser-empty { padding-block: var(--space-xl); }
@media(max-width:60rem){.category-group-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.category-browser-head { align-items: stretch; flex-direction: column; }}
@media(max-width:40rem){
 .category-group-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-sm); }
 .category-group-card { grid-template-columns: 3rem minmax(0, 1fr); gap: 4px 12px; padding: 14px; }
 .category-group-card .category-code { grid-column: 1; grid-row: 1 / span 2; }
 .category-group-title { grid-column: 2; font-size: 16px; padding-right: 16px; }
 .category-group-meta { grid-column: 2; font-size: 12px; }
 .category-group-card .icon { top: 16px; right: 12px; }
 .category-finder { width: 100%; }
 .category-item { grid-template-columns: 2rem minmax(0, 1fr) auto; gap: 8px 12px; }
 .category-item-title { font-size: 16px; }
 .category-item-count { grid-column: 2; grid-row: 2; font-size: 12px; }
 .category-item .icon { grid-column: 3; grid-row: 1 / span 2; }
 .category-pagination, .result-pagination { flex-wrap: wrap; font-size: 12px; }
 body[data-page="browse"] .page-head h1 { font-size: clamp(2rem, 8vw, 3rem); }
}

/* Shortlist venue map */
.shortlist-venue { container-type: inline-size; }
.venue-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--space-xs) var(--space-lg); padding-block:var(--space-xs); }
.venue-heading h3 { font-size:var(--text-lg); }
.venue-map-key,.venue-stop-meta,.venue-route-header p { color:var(--color-muted); font-size:var(--text-sm); }
.venue-days { margin-block:var(--space-xs) var(--space-lg); }
.venue-days .calendar-day { min-height:66px; padding:8px 14px; gap:2px; }
.venue-days .calendar-day strong { font-size:24px; }
.venue-layout { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(17rem,1fr); gap:var(--space-lg); align-items:start; }
.venue-visual { min-width:0; background:var(--color-surface); border:1px solid var(--color-rule); }
.venue-map-controls { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px var(--space-sm); padding:6px 8px; border-bottom:1px solid var(--color-rule); }
.venue-floor-switch,.venue-zoom { display:flex; flex-wrap:wrap; gap:4px; }
.venue-map-controls button { min-width:44px; min-height:44px; padding:0 9px; border:0; border-radius:4px; background:none; color:var(--color-muted); font-size:var(--text-sm); cursor:pointer; }
.venue-map-controls button:hover,.venue-map-controls button[aria-pressed="true"] { color:var(--color-accent); background:var(--color-highlight); }
.venue-viewport { height:clamp(250px,40vw,410px); overflow:auto; overscroll-behavior-x:contain; touch-action:none; background:#fff; }
.venue-viewport.is-fit { height:auto; }
.venue-canvas { position:relative; margin:auto; }
.venue-canvas img { display:block; width:100%; height:auto; }
.venue-canvas>svg { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.venue-route-line,.venue-route-halo { fill:none; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.venue-route-line { stroke:var(--color-accent); stroke-width:3; }
.venue-route-halo { stroke:white; stroke-width:6; }
.venue-pin { position:absolute; display:grid; place-items:center; width:44px; height:44px; transform:translate(-50%,-50%); padding:0; border:0; background:none; color:var(--color-accent); font-size:16px; font-weight:700; z-index:1; cursor:pointer; isolation:isolate; }
.venue-pin::before { content:""; position:absolute; z-index:-1; inset:6px; border:2px solid var(--color-accent); border-radius:50%; background:white; box-shadow:0 1px 6px #12203938; }
.venue-pin.is-route { color:white; }
.venue-pin.is-route::before { background:var(--color-accent); border-color:white; }
.venue-pin[aria-pressed="true"]::before { outline:2px solid var(--color-accent); outline-offset:2px; }
.venue-pin:focus-visible { outline-offset:-3px; border-radius:50%; }
.venue-conflict-mark { display:inline-grid; place-items:center; flex:none; width:17px; height:17px; border-radius:50%; background:#8c400e; color:white; font:700 12px/1 var(--font-body); }
.venue-pin-conflict { position:absolute; top:1px; right:1px; box-shadow:0 0 0 2px white; }
.venue-pin.has-overlap { z-index:2; }
.venue-pin[aria-pressed="true"] { z-index:3; }
.venue-room-window summary .venue-window-conflict { display:inline-block; padding:2px 6px; border-radius:4px; background:#fff0d9; color:#743408; font-weight:600; }
.venue-conflict-picker { margin:0 0 var(--space-sm); padding:var(--space-sm); border:1px solid #e4bd8c; border-radius:5px; background:#fff8ec; }
.venue-conflict-heading { display:flex; align-items:center; gap:8px; font-weight:600; color:#743408; }
.venue-conflict-options { list-style:none; margin:8px 0 0; padding:0; max-height:18rem; overflow:auto; }
.venue-conflict-options li { display:flex; flex-wrap:wrap; align-items:center; gap:4px var(--space-sm); padding:8px 0; border-top:1px solid #e4bd8c; font-size:var(--text-sm); }
.venue-conflict-options li>div { flex:1 1 16rem; min-width:0; }
.venue-choice-location { font-weight:600; }
.venue-attend { min-height:44px; padding:6px 12px; font-size:var(--text-sm); white-space:normal; }
.venue-attend[aria-pressed="true"] { background:var(--color-accent); color:white; }

.venue-map-key { display:flex; flex-wrap:wrap; align-items:center; gap:5px var(--space-md); padding:10px var(--space-md); border-top:1px solid var(--color-rule); }
.venue-map-key span { display:inline-flex; align-items:center; gap:6px; }
.venue-key-dot { display:inline-block; width:10px; height:10px; border-radius:50%; border:1px solid var(--color-accent); }
.venue-key-dot.is-route { background:var(--color-accent); }
.venue-room-detail,.venue-map-empty { padding:var(--space-md); border-top:1px solid var(--color-rule); }
.venue-room-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:var(--space-sm); margin-bottom:var(--space-sm); }
.venue-room-heading h4,.venue-route-header h4 { margin:0; font:600 var(--text-lg)/1.25 var(--font-display); }
.venue-room-heading span { color:var(--color-muted); font-size:var(--text-sm); }
.venue-room-window summary,.venue-alternatives summary,.venue-unmapped summary { min-height:44px; padding:8px 0; cursor:pointer; }
.venue-room-window summary span { margin-right:8px; }
.venue-room-window summary span+span { color:var(--color-muted); font-size:var(--text-sm); }
.venue-papers { list-style:none; margin:0; padding:0; max-height:16rem; overflow:auto; }
.venue-papers button { display:block; width:100%; min-height:44px; padding:8px 0; background:none; border:0; border-top:1px solid var(--color-rule); text-align:left; font-size:var(--text-sm); color:var(--color-ink); cursor:pointer; }
.venue-papers button span { margin-right:8px; color:var(--color-accent); font-variant-numeric:tabular-nums; }
.venue-papers button:hover { text-decoration:underline; }
.venue-itinerary { padding:var(--space-md); background:var(--color-paper-2); border:1px solid var(--color-rule); min-width:0; }
.venue-route-header { padding-bottom:var(--space-sm); border-bottom:1px solid var(--color-rule); }
.venue-stops { list-style:none; margin:0; padding:0; }
.venue-stop-row { display:grid; grid-template-columns:27px minmax(0,1fr); gap:var(--space-sm); padding-block:var(--space-sm); }
.venue-stop-number { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:var(--color-accent); color:white; font-size:13px; font-weight:600; }
.venue-stop-time { color:var(--color-ink); font-size:var(--text-sm); font-weight:600; }
.venue-room-button { display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:0; border:0; background:none; color:var(--color-accent); text-align:left; font-weight:600; cursor:pointer; }
.venue-room-button:hover { text-decoration:underline; }
.venue-leg { margin-left:11px; padding:6px 0 6px 18px; border-left:1px dashed var(--color-accent); color:var(--color-muted); font-size:var(--text-sm); }
.venue-alternatives,.venue-unmapped { margin-top:var(--space-md); border-top:1px solid var(--color-rule); }
.venue-alternatives p,.venue-unmapped p { color:var(--color-muted); font-size:var(--text-sm); }
.venue-alternative { padding:var(--space-sm) 0; border-top:1px solid var(--color-rule); }
.venue-unmapped ul { padding-left:var(--space-lg); }
.personal-meetings { padding-top: var(--space-sm); }
.venue-unmapped .text-button { white-space:normal; text-align:left; }
@container (max-width: 44rem) { .venue-layout { grid-template-columns: minmax(0, 1fr); } }
@media(max-width:40rem){.venue-map-controls{align-items:start}.venue-floor-switch{gap:0}.venue-map-controls button{padding-inline:7px;font-size:13px}.venue-heading h3{font-size:var(--text-md)}}
/* Installed app: clear the notch and home bar when Atlas runs full screen, and the banner for install, update and offline notices. */
body { padding-inline: env(safe-area-inset-left) env(safe-area-inset-right); padding-bottom: env(safe-area-inset-bottom); }
.toast { bottom: calc(var(--space-md) + env(safe-area-inset-bottom)); }
.app-banner { position: fixed; right: var(--space-md); bottom: calc(var(--space-md) + env(safe-area-inset-bottom)); z-index: var(--z-toast); display: grid; gap: var(--space-sm); width: min(26rem, calc(100% - 2 * var(--space-md))); padding: var(--space-md); background: var(--color-ink); color: var(--color-paper); font-size: var(--text-sm); line-height: 1.45; box-shadow: var(--shadow-field); }
.app-banner[hidden] { display: none; }
.app-banner p { margin: 0; }
.app-banner-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md); }
.app-banner .button-primary { min-height: 44px; background: var(--color-paper); color: var(--color-ink); }
.app-banner .button-primary:hover { background: var(--color-paper-2); }
.app-banner .text-button { color: var(--color-paper); }
.app-banner .button:focus-visible, .app-banner .text-button:focus-visible { outline: 2px solid var(--color-paper); outline-offset: 2px; }
@media (max-width: 40rem) { .app-banner { right: var(--space-sm); left: var(--space-sm); width: auto; } }
/* Calendar links in the personal calendar dialog. */
.calendar-links-form { display: grid; gap: var(--space-xs); margin-top: var(--space-md); }
.calendar-links-row { display: flex; gap: var(--space-xs); min-width: 0; }
.calendar-links-row input { flex: 1; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid var(--color-muted); border-radius: 0; background: var(--color-surface); color: var(--color-ink); font: 400 16px/1.3 var(--font-body); }
.calendar-links-row input:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 1px; }
.calendar-links-list { display: grid; gap: var(--space-xs); margin: var(--space-md) 0 0; padding: 0; list-style: none; }
.calendar-links-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-md); align-items: center; padding: var(--space-xs) 0; border-bottom: 1px solid var(--color-rule); }
.calendar-links-list strong { min-width: 0; font-weight: 500; overflow-wrap: anywhere; }
.calendar-links-list span { grid-column: 1; color: var(--color-muted); font-size: var(--text-sm); }
.calendar-links-list .calendar-link-error { color: var(--color-error); }
.calendar-links-list .text-button { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
.calendar-link-help { margin-top: var(--space-sm); font-size: var(--text-sm); }
.calendar-link-help summary { min-height: 44px; padding-block: var(--space-sm); cursor: pointer; text-decoration: underline var(--rule-hair); text-underline-offset: 0.32em; }
.calendar-link-help summary:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.calendar-link-help dl { display: grid; gap: var(--space-2xs); margin: 0; }
.calendar-link-help dt { font-weight: 500; margin-top: var(--space-xs); }
.calendar-link-help dd { margin: 0; color: var(--color-ink-2); }
.calendar-link-help dd :is(p, ol) + :is(p, ol) { margin-top: var(--space-xs); }
.calendar-link-help dd ol { padding-inline-start: var(--space-lg); }
@media (max-width: 40rem) { .calendar-links-row { flex-direction: column; } .calendar-links-row .button { width: 100%; } }
/* Subscribe in your calendar. */
.calendar-feed-ready { display: grid; gap: var(--space-xs); margin-top: var(--space-md); }
.calendar-feed-ready > .button-primary { justify-self: start; margin-bottom: var(--space-sm); }
#calendar-feed-create, #calendar-feed-guest .button { margin-top: var(--space-md); }
#calendar-feed-url { color: var(--color-ink-2); }
@media (max-width: 40rem) { .calendar-feed-ready > .button-primary { justify-self: stretch; } }
#calendar-feed-status { margin-block: var(--space-sm) 0; color: var(--color-ink); font-weight: 500; }
#calendar-feed-status:empty { display: none; }
#calendar-feed-dialog .fine-print { margin-top: var(--space-sm); }
/* Agenda: the plan and the map, outside Saved. Not filtered by search. */
body[data-page="agenda"] :is(.landing-only, .question-field, .results-shell) { display: none; }
body[data-page="agenda"] .search-section { min-height: 0; }
body[data-page="agenda"] .title-block { padding-block: var(--space-xl) var(--space-sm); }
body[data-page="agenda"] .page-head h1 { font-size: var(--text-display-s); letter-spacing: var(--tracking-display); line-height: 1; }
body[data-page="agenda"] .site-footer { padding-block: var(--space-2xl) var(--space-xl); }
body[data-page="agenda"] .footer-mark { font-size: var(--text-2xl); }
.agenda-section { padding-bottom: var(--space-2xl); }
.agenda-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-xs) var(--space-md); padding-block: var(--space-xs); border-bottom: 1px solid var(--color-rule); }
.agenda-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--space-md); }
.agenda-tools .calendar-export { padding: 0; font-size: var(--text-sm); }
.calendar-about { color: var(--color-muted); font-size: var(--text-xs); font-weight: 500; }
.calendar-choice { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs) var(--space-sm); margin-top: var(--space-md); }
.calendar-choice span { color: var(--color-muted); font-size: var(--text-sm); }
.agenda-choose { min-height: 44px; }
.agenda-choose[aria-pressed="true"] { background: var(--color-ink); color: var(--color-paper); }
.agenda-choose:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.calendar-overlap-badge.is-chosen { color: var(--color-ink); }
.calendar-overlap-badge.is-skipped { color: var(--color-muted); }
.calendar-event.is-skipped .calendar-event-card { border-left-color: var(--color-rule); background: var(--color-paper-2); }
.calendar-overlap-notice.is-settled { border-left-color: var(--color-rule); color: var(--color-ink-2); }
.calendar-time time { overflow-wrap: normal; }
.calendar-abstract-title { min-height: 44px; }
.calendar-abstract-actions .shortlist-delete { min-width: 44px; justify-content: center; }
.calendar-event.has-overlap:has(.agenda-choose[aria-pressed="true"]) .calendar-event-card { border-left-color: var(--color-ink); }
@media (max-width: 760px) { .calendar-event { grid-template-columns: 4.9rem minmax(0, 1fr); } .calendar-time time { font-size: 0.95rem; } }
.calendar-about { display: block; }
/* Compact Agenda header: title, switch, tools, summary and days fit in about a third of a phone screen. */
body[data-page="agenda"] .title-block { gap: var(--space-2xs); padding-block: var(--space-md) var(--space-xs); }
body[data-page="agenda"] .page-head h1 { font-size: var(--text-2xl); }
body[data-page="agenda"] #page-description { margin: 0; color: var(--color-muted); font-size: var(--text-sm); }
.agenda-switch { max-width: 100%; flex-wrap: wrap; }
.agenda-switch button { min-width: 44px; padding-inline: var(--space-md); }
.agenda-switch button:hover:not([aria-pressed="true"]), .calendar-day:hover:not([aria-pressed="true"]) { background: var(--color-highlight); color: var(--color-accent); }
.agenda-switch button:active, .calendar-day:active { box-shadow: inset 0 0 0 2px currentColor; }
.agenda-section .calendar-days { gap: var(--space-xs); margin: var(--space-xs) 0 var(--space-md); }
.agenda-section .calendar-day { flex-direction: row; gap: var(--space-2xs); min-width: 0; min-height: 44px; padding: var(--space-2xs) var(--space-sm); border-radius: var(--radius-round); }
.agenda-section .calendar-day strong { font-size: var(--text-md); }
.agenda-section .calendar-days:not(.has-months) .calendar-day span:last-child { display: none; }
@media (max-width: 40rem) {
 .agenda-bar { flex-direction: column; align-items: flex-start; }
 .agenda-switch button { padding-inline: var(--space-sm); }
}
