/* Research family: records to be read and checked. Same paper and ink as the front pages;
   denser type, flat surfaces, tables ruled by hairlines only. Loaded after styles.css. */

/* ---- Page head and documents ------------------------------------------- */
[data-stage="research"] .page-head { max-width:46rem; margin:var(--space-8) 0 var(--space-12); }
[data-stage="research"] .page-head h1 { margin:0 0 var(--space-4); font:500 var(--type-h1)/1.04 var(--font-sans); letter-spacing:var(--track-display); color:var(--ink-strong); }
[data-stage="research"] .page-head p { margin:0; font-size:var(--type-lead); line-height:1.5; color:var(--ink-muted); }
[data-stage="research"] .docs-section { margin-top:var(--space-16); }
[data-stage="research"] .docs-section h2,[data-stage="research"] .schema-object h2 { margin:0 0 var(--space-3); font:500 var(--type-h2)/1.15 var(--font-sans); letter-spacing:var(--track-heading); color:var(--ink-strong); }
[data-stage="research"] :is(.docs-lead,.schema-object-note) { max-width:44rem; font-size:var(--type-body); line-height:1.65; color:var(--ink-muted); }
[data-stage="research"] .docs-note { font-size:var(--type-small); color:var(--ink-muted); }
[data-stage="research"] code { font:.88em/1.4 var(--font-code); }
[data-stage="research"] .code-block { border:0; border-radius:var(--radius-media); background:var(--paper-sunk); }
[data-stage="research"] .manual-list > div { border-top:1px solid var(--line); }
[data-stage="research"] .manual-list dt { font-weight:500; color:var(--ink-strong); }
[data-stage="research"] .manual-list dd { color:var(--ink-muted); }
[data-stage="research"] .manual-tag { border-radius:var(--radius-control); background:var(--paper-sunk); color:var(--ink-muted); }

/* ---- Figures ------------------------------------------------------------ */
[data-stage="research"] .stat-figures { margin:0 0 var(--space-12); border-top:1px solid var(--line-strong); border-bottom:1px solid var(--line); }
[data-stage="research"] .stat-figures > div { padding:var(--space-4) var(--space-4) var(--space-4) 0; }
[data-stage="research"] .stat-figures dt { font-size:var(--type-small); color:var(--ink-muted); }
[data-stage="research"] .stat-figures dt::first-letter { text-transform:uppercase; }
[data-stage="research"] .stat-figures dd { margin-top:var(--space-1); font:500 var(--type-h2)/1.1 var(--font-sans); letter-spacing:var(--track-heading); color:var(--ink-strong); font-variant-numeric:tabular-nums lining-nums; }
[data-stage="research"] .stat-block h2 { font:500 var(--type-lead)/1.3 var(--font-sans); color:var(--ink-strong); }
[data-stage="research"] .stat-note { font-size:var(--type-small); color:var(--ink-muted); }
[data-stage="research"] .row-meta,[data-stage="research"] .cell-case-meta { color:var(--ink-muted); font-size:var(--type-small); }

/* ---- Tables: hairlines between rows, no cell walls, no tinted heads ---- */
[data-stage="research"] :is(.result-table,.bar-table,.schema-table,.contract-matrix,.encounter-page table) { border-collapse:collapse; border:0; background:none; }
[data-stage="research"] :is(.result-table,.bar-table,.schema-table,.contract-matrix) :is(th,td),
.encounter-page .layer-content table :is(th,td) { border:0; border-bottom:1px solid var(--line); background:none; vertical-align:top; }
[data-stage="research"] :is(.result-table,.bar-table,.schema-table,.contract-matrix) thead th,
.encounter-page .layer-content table thead th {
  border-bottom:1px solid var(--line-strong); background:none; color:var(--ink-muted); font:500 var(--type-small)/1.4 var(--font-sans); letter-spacing:0; text-transform:none;
}
[data-stage="research"] .result-table tbody tr { transition:background-color var(--motion-fast) var(--ease-out); }
[data-stage="research"] .result-table tbody tr:hover { background:var(--paper-sunk); }
[data-stage="research"] :is(.result-table,.bar-table,.schema-table) .numeric { text-align:right; font-variant-numeric:tabular-nums lining-nums; }
[data-stage="research"] .bar-track,[data-stage="research"] .bar-table .bar { border-radius:2px; }
[data-stage="research"] .schema-table :is(.field-name,.field-type) { background:none; padding:0; }
[data-stage="research"] .req-yes { color:var(--current); font-weight:500; }
[data-stage="research"] .schema-index { gap:var(--space-2); }
[data-stage="research"] .schema-index a {
  border:1px solid var(--line); border-radius:var(--radius-control); background:none; color:var(--ink); font-size:var(--type-small);
  transition:background-color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out);
}
[data-stage="research"] .schema-index a:hover { background:var(--paper-sunk); border-color:var(--line-strong); }
[data-stage="research"] .schema-object h2 code,[data-stage="research"] .schema-object h2 { font-family:var(--font-sans); }

/* ---- Search: a calm filter row, then the results ------------------------- */
[data-stage="research"] .filter-bar {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(11rem,1fr)); align-items:end; gap:var(--space-4) var(--space-5);
  max-width:none; margin:0 0 var(--space-8); padding:0 0 var(--space-6); border:0; border-bottom:1px solid var(--line); border-radius:0; background:none;
}
[data-stage="research"] .filter-field-term { grid-column:span 2; }
[data-stage="research"] .filter-field label { font-size:var(--type-small); font-weight:500; color:var(--ink-strong); }
[data-stage="research"] :is(.filter-field,.explorer-toolbelt) :is(input,select) {
  width:100%; min-height:44px; padding:0 var(--space-3); border:1px solid var(--line-strong); border-radius:var(--radius-control);
  background:var(--paper-raised); color:var(--ink); font:var(--type-body)/1.3 var(--font-sans);
  transition:border-color var(--motion-fast) var(--ease-out),box-shadow var(--motion-fast) var(--ease-out);
}
[data-stage="research"] :is(.filter-field,.explorer-toolbelt) :is(input,select):hover { border-color:var(--ink-muted); }
[data-stage="research"] :is(.filter-field,.explorer-toolbelt) :is(input,select):focus { outline:none; border-color:var(--action); box-shadow:0 0 0 3px var(--action-soft); }
[data-stage="research"] .filter-actions { display:flex; gap:var(--space-3); margin:0; }
[data-stage="research"] .search-form { max-width:none; }
[data-stage="research"] .bar-table tbody th::first-letter { text-transform:uppercase; }
[data-stage="research"] .result-count { margin:0 0 var(--space-4); font-size:var(--type-small); color:var(--ink-muted); }

/* ---- Buttons shared by Search and the Explorer toolbelt ----------------- */
[data-stage="research"] :is(.control-button,.btn-primary) {
  display:inline-flex; align-items:center; justify-content:center; gap:var(--space-2); min-height:44px; padding:0 var(--space-5);
  border:1px solid var(--line-strong); border-radius:var(--radius-control); background:var(--paper-raised); color:var(--ink-strong);
  font:500 var(--type-body)/1 var(--font-sans); box-shadow:none; transform:none;
  transition:background-color var(--motion-fast) var(--ease-out),border-color var(--motion-fast) var(--ease-out),color var(--motion-fast) var(--ease-out);
}
[data-stage="research"] :is(.control-button,.btn-primary):hover { background:var(--paper-sunk); border-color:var(--ink-muted); transform:none; }
[data-stage="research"] :is(.control-button-primary,.btn-primary) { border-color:var(--action); background:var(--action); color:var(--paper-raised); }
[data-stage="research"] :is(.control-button-primary,.btn-primary):hover { border-color:var(--action-strong); background:var(--action-strong); color:var(--paper-raised); }

/* ---- Explorer records: one card deep, quiet labels, flat surfaces -------- */
.encounter-page :is(.semantic-panel,.policy-section,.entity-hero,.explorer-control-panel,.json-inspector,.state-value-group,.expectation-state-card,
  .objective-group,.rule-card,.audit-summary-card,.state-snapshot-card,.state-ref-card,.context-summary-item,.codex-entry,.evidence-card,
  .npc-fact-card,.technical-details,.json-field-card,.json-raw-details,.era) {
  border-color:var(--line); border-radius:var(--radius-media); box-shadow:none;
}
.encounter-page :is(.semantic-panel,.policy-section,.entity-hero,.json-inspector,.objective-group,.audit-summary-card,.expectation-state-card,.era) { background:var(--paper-raised); }
/* A card inside a panel becomes a ruled row: cards never nest. */
.encounter-page :is(.semantic-panel,.policy-section,.objective-group,.state-value-group) :is(.codex-entry,.evidence-card,.npc-fact-card,.state-snapshot-card,.state-ref-card,.rule-card,.context-summary-item) {
  border:0; border-top:1px solid var(--line); border-radius:0; background:none; box-shadow:none; padding-inline:0;
}
.encounter-page :is(.technical-details,.json-raw-details) { border:1px solid var(--line); background:none; }
.encounter-page :is(.technical-details,.json-raw-details,.json-field-card) > summary { font-weight:500; color:var(--ink-strong); transition:color var(--motion-fast) var(--ease-out); }
.encounter-page :is(.technical-details,.json-raw-details,.json-field-card) > summary:hover { color:var(--action); }
.encounter-page .layer-content blockquote:not(.encounter-turn > blockquote) {
  margin-inline:0; padding:var(--space-3) var(--space-4); border:0; border-radius:var(--radius-media); background:var(--paper-sunk);
  font:400 var(--type-body)/1.55 var(--font-serif); color:var(--ink-strong);
}
.encounter-page .layer-content :is(dt,.codex-type,.effect-label,.panel-subhead,.era-scope,.chain-order,.json-field-kind,.apparatus h3,.entry-apparatus h3,.condition-apparatus h3) {
  letter-spacing:0; text-transform:none; font-variant:normal; font-feature-settings:normal;
}
.encounter-page .layer-content :is(dt,.codex-type,.effect-label,.era-scope,.json-field-kind) { font-size:var(--type-small); color:var(--ink-muted); }
.encounter-page .layer-content :is(.data-chip,.state-value-chip,.chip-list > span,.matching-count) {
  border:0; border-radius:var(--radius-control); background:var(--paper-sunk); color:var(--ink); font-size:var(--type-small);
}
.encounter-page .layer-content a.data-chip:hover { background:var(--action-soft); color:var(--ink-strong); }
.encounter-page .layer-content * { text-transform:none; letter-spacing:normal; }
.encounter-page .layer-content :is(.policy-count-item,.policy-artifact-meta,.policy-section div:not([class]),.context-summary-item) { border:0; border-radius:var(--radius-control); background:var(--paper-sunk); box-shadow:none; }
.encounter-page .layer-content .explorer-title { font:500 var(--type-h3)/1.25 var(--font-sans); letter-spacing:-.01em; color:var(--ink-strong); }
.encounter-page .layer-content .explorer-subtitle { color:var(--ink-muted); font-size:var(--type-small); }
.encounter-page .layer-content :is(.semantic-panel,.policy-section) > :is(h2,h3,h4) { font-family:var(--font-sans); font-weight:500; color:var(--ink-strong); letter-spacing:0; }
.encounter-page .layer-content pre { border:0; border-radius:var(--radius-media); background:var(--paper-sunk); }

/* ---- Papers: a list that grows one entry at a time, newest first -------- */
.paper-list { display:grid; gap:0; margin-top:var(--space-4); border-top:1px solid var(--line); }
.paper { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-3); max-width:52rem; padding-block:var(--space-10); border-bottom:1px solid var(--line); }
.paper-status { margin:0; font-size:var(--type-small); color:var(--ink-muted); }
.paper h2 { margin:0; font:500 var(--type-h2)/1.15 var(--font-sans); letter-spacing:var(--track-heading); color:var(--ink-strong); }
.paper-summary { margin:0; max-width:44rem; font-size:var(--type-lead); line-height:1.5; color:var(--ink); }
.paper-abstract { max-width:44rem; margin-top:var(--space-2); }
.paper-abstract > summary {
  display:inline-flex; align-items:center; gap:var(--space-2); cursor:pointer; list-style:none;
  font-weight:500; color:var(--ink-strong); text-decoration:underline; text-decoration-color:var(--line-strong); text-underline-offset:5px;
  transition:color var(--motion-fast) var(--ease-out);
}
.paper-abstract > summary::-webkit-details-marker { display:none; }
.paper-abstract > summary::after { content:'+'; font-weight:400; color:var(--ink-muted); transition:transform var(--motion-normal) var(--ease-out); }
.paper-abstract[open] > summary::after { transform:rotate(45deg); }
.paper-abstract > summary:hover { color:var(--action); }
.paper-abstract > p { margin:var(--space-4) 0 0; font-size:var(--type-body); line-height:1.7; color:var(--ink-muted); }
.paper-abstract[open] > p { animation:bank-fade-up var(--motion-slow) var(--ease-out) both; }
.paper-note { margin:var(--space-2) 0 0; font-size:var(--type-small); color:var(--ink-muted); }
.paper-links { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-3) var(--space-6); margin-top:var(--space-4); }
.paper-link { font-weight:500; color:var(--ink-strong); text-decoration:underline; text-decoration-color:var(--line-strong); text-underline-offset:5px; transition:color var(--motion-fast) var(--ease-out); }
.paper-link:hover { color:var(--action); }
.paper-link.is-primary {
  display:inline-flex; align-items:center; gap:var(--space-2); min-height:44px; padding:0 var(--space-5);
  border-radius:var(--radius-control); background:var(--action); color:var(--paper-raised); text-decoration:none;
  transition:background-color var(--motion-normal) var(--ease-out);
}
.paper-link.is-primary:hover { background:var(--action-strong); color:var(--paper-raised); }
.paper-link-detail { font-weight:400; opacity:.8; font-size:var(--type-small); }

@media(max-width:700px) {
  [data-stage="research"] .page-head { margin:var(--space-6) 0 var(--space-8); }
  [data-stage="research"] .filter-bar { grid-template-columns:1fr 1fr; }
  [data-stage="research"] .filter-field-term { grid-column:1/-1; }
  [data-stage="research"] .filter-actions { grid-column:1/-1; }
}
